Imports System.Web.UI.WebControls.Expressions
Imports com.sun.tools.internal.ws.wsdl.document.mime
Imports com.sun.xml.internal.ws.client
Imports VERAG_PROG_ALLGEMEIN

Public Class frmBonitaet

    Public KdNR As Integer
    Dim ADRESSE As VERAG_PROG_ALLGEMEIN.cAdressen
    Dim SQL As New VERAG_PROG_ALLGEMEIN.SQL
    Sub New(KdNR As Integer)

        ' Dieser Aufruf ist für den Designer erforderlich.
        InitializeComponent()
        Me.KdNR = KdNR
        ADRESSE = New VERAG_PROG_ALLGEMEIN.cAdressen(KdNR)
        ' Fügen Sie Initialisierungen nach dem InitializeComponent()-Aufruf hinzu.

    End Sub

    Private Sub btnStandardPreiseLaden_Click(sender As Object, e As EventArgs) Handles btnStandardPreiseLaden.Click

        If checkValues() = False Then Exit Sub

        Try
            Dim cBonitaetsauskunft As VERAG_PROG_ALLGEMEIN.cBonitaetsauskunft = VERAG_PROG_ALLGEMEIN.cBonitaetsauskunft.LOADByKdNrDate(KdNR, Now)


            If cBonitaetsauskunft Is Nothing Then
                cBonitaetsauskunft = New VERAG_PROG_ALLGEMEIN.cBonitaetsauskunft
            ElseIf vbYes <> MsgBox("Es wurde heute um '" & cBonitaetsauskunft.ba_Datum.ToShortTimeString & "' bereits eine Bonitätsauskunft für den Kunden eingeholt, möchten Sie diese überschreiben?", vbYesNoCancel) Then
                Exit Sub
            Else
                cBonitaetsauskunft.ba_datenarchivId = Nothing
            End If

            cBonitaetsauskunft.ba_KundenNr = (KdNR)
            cBonitaetsauskunft.ba_Datum = cProgramFunctions.isLeerNothing(txtCRDatum._value)

            'Initual alle Stufen/Scores/Index-Variablen auf Nohting setzen
            cBonitaetsauskunft.ba_BonitaetsIndex = Nothing
            cBonitaetsauskunft.ba_Risikostufe = Nothing

            cBonitaetsauskunft.ba_CreditSaveBonitaetsScore = Nothing
            cBonitaetsauskunft.ba_CreditSaveBonitaetsIndex = Nothing
            cBonitaetsauskunft.ba_CreditSaveRisikoklasse = Nothing

            Select Case cboTool._value
                Case "creditsafe"
                    cBonitaetsauskunft.ba_CreditSaveBonitaetsIndex = If(IsNumeric(txtBonitaetsindex.Text), CDbl(txtBonitaetsindex.Text), 0)

                Case "creditsafe AT"
                    cBonitaetsauskunft.ba_CreditSaveBonitaetsScore = If(IsNumeric(txtBonitaetsindex.Text), CInt(txtBonitaetsindex.Text), 0)

                Case Else : cBonitaetsauskunft.ba_BonitaetsIndex = If(IsNumeric(txtBonitaetsindex.Text), CInt(txtBonitaetsindex.Text), 0)

            End Select


            If isCreditSave() Then
                cBonitaetsauskunft.ba_CreditSaveRisikoklasse = cboRisikostufe._value

            Else
                cBonitaetsauskunft.ba_Risikostufe = If(IsNumeric(cboRisikostufe._value), cboRisikostufe._value, Nothing)

            End If

            cBonitaetsauskunft.ba_Pruefungstool = cboTool._value

            cBonitaetsauskunft.ba_MaId = VERAG_PROG_ALLGEMEIN.cAllgemein.USRID
            cBonitaetsauskunft.ba_Sachbearbeiter = VERAG_PROG_ALLGEMEIN.cAllgemein.USRKURZNAME
            cBonitaetsauskunft.ba_Hoechstkredit = cProgramFunctions.isLeerNothingDbl(txtHoechstkredit._value)
            cBonitaetsauskunft.ba_Bankverbindung = ""
            cBonitaetsauskunft.ba_Zahlungsweise = ""
            cBonitaetsauskunft.ba_GFName = ""
            cBonitaetsauskunft.ba_Sonstiges = ""
            cBonitaetsauskunft.ba_GruendundsDatum = cProgramFunctions.isLeerNothing(txtGruendungsdatum._value)

            If cBonitaetsauskunft.SAVE Then
                SQL.doSQL("UPDATE Kunden SET Bonität='" & cBonitaetsauskunft.ba_BonitaetsIndex & "', Bonitätsdatum='" & cBonitaetsauskunft.ba_Datum & "', Höchstkredit=" & If(cBonitaetsauskunft.ba_Hoechstkredit Is Nothing, "null", "'" & cBonitaetsauskunft.ba_Hoechstkredit & "'") & " WHERE KundenNr='" & cBonitaetsauskunft.ba_KundenNr & "'", "FMZOLL")

                Dim KDERW As New VERAG_PROG_ALLGEMEIN.cKundenErweitert(KdNR)

                KDERW.kde_CreditSaveBonitaetsIndex = cBonitaetsauskunft.ba_CreditSaveBonitaetsIndex
                KDERW.kde_CreditSaveBonitaetsScore = cBonitaetsauskunft.ba_CreditSaveBonitaetsScore
                KDERW.kde_CreditSaveBonitaetsklasse = cBonitaetsauskunft.ba_CreditSaveRisikoklasse
                KDERW.kde_BonitaetsStufe = cBonitaetsauskunft.ba_Risikostufe
                KDERW.SAVE()
                Me.Close()
            End If

        Catch ex As Exception
            MsgBox(ex.Message)
        End Try


    End Sub

    Private Sub frmBonitaet_Load(sender As Object, e As EventArgs) Handles Me.Load



        cboTool.Items.Clear()
        cboTool.Items.Add(New VERAG_PROG_ALLGEMEIN.MyListItem("CreditSafe AT", "creditsafe AT"))
        cboTool.Items.Add(New VERAG_PROG_ALLGEMEIN.MyListItem("CreditSafe", "creditsafe"))
        cboTool.Items.Add(New VERAG_PROG_ALLGEMEIN.MyListItem("Creditreform", "creditreform"))
        cboTool.Items.Add(New VERAG_PROG_ALLGEMEIN.MyListItem("Boniteti.rs", "boniteti"))

        Select Case VERAG_PROG_ALLGEMEIN.cAllgemein.FIRMA

            'Case "IMEX" : cboTool.changeItem("CreditSafe")

            Case "UNISPED" : cboTool.changeItem("Creditreform")



            Case Else : If Now.ToShortDateString >= DateTime.Parse("01/12/2022") Then

                    If VERAG_PROG_ALLGEMEIN.cAllgemein.FIRMA_ID = 19 Then
                        cboTool.changeItem("Boniteti.rs")

                    Else

                        If ADRESSE.LandKz = "A" Or ADRESSE.LandKz = "AT" Then
                            cboTool.changeItem("CreditSafe AT")
                            lblBonitätsindex.Text = "Boni-Score"
                            Label2.Visible = False
                        Else
                            cboTool.changeItem("CreditSafe")
                            lblBonitätsindex.Text = "Bonitätsindex:"
                            Label2.Visible = False
                        End If

                    End If

                Else
                    cboTool.changeItem("Creditreform")
                    lblBonitätsindex.Text = "Bonitätsindex:"
                    Label2.Visible = True
                End If

        End Select

        txtCRDatum._value = Now
        setRisikostufeList()

    End Sub

    Private Sub cboTool_SelectedValueChanged(sender As Object, e As EventArgs) Handles cboTool.SelectedValueChanged
        setCboItem()
        setRisikostufeList()
    End Sub

    Private Sub setRisikostufeList()

        If isCreditSave() Then ' Creditsave verwendet als Risikostufe ein CHAR, Altsystem CreditReform einen INT-Wert!

            cboRisikostufe.Items.Clear()
            cboRisikostufe.Items.Add(New VERAG_PROG_ALLGEMEIN.MyListItem("", ""))
            cboRisikostufe.Items.Add(New VERAG_PROG_ALLGEMEIN.MyListItem("A", "A"))
            cboRisikostufe.Items.Add(New VERAG_PROG_ALLGEMEIN.MyListItem("B", "B"))
            cboRisikostufe.Items.Add(New VERAG_PROG_ALLGEMEIN.MyListItem("C", "C"))
            cboRisikostufe.Items.Add(New VERAG_PROG_ALLGEMEIN.MyListItem("D", "D"))
            cboRisikostufe.Items.Add(New VERAG_PROG_ALLGEMEIN.MyListItem("E", "E"))
            cboRisikostufe.Items.Add(New VERAG_PROG_ALLGEMEIN.MyListItem("F", "F"))
            cboRisikostufe.changeItem("")

        Else

            cboRisikostufe.Items.Clear()
            cboRisikostufe.Items.Add(New VERAG_PROG_ALLGEMEIN.MyListItem("", ""))
            cboRisikostufe.Items.Add(New VERAG_PROG_ALLGEMEIN.MyListItem("1", 1))
            cboRisikostufe.Items.Add(New VERAG_PROG_ALLGEMEIN.MyListItem("2", 2))
            cboRisikostufe.Items.Add(New VERAG_PROG_ALLGEMEIN.MyListItem("3", 3))
            cboRisikostufe.Items.Add(New VERAG_PROG_ALLGEMEIN.MyListItem("4", 4))
            cboRisikostufe.Items.Add(New VERAG_PROG_ALLGEMEIN.MyListItem("5", 5))
            cboRisikostufe.Items.Add(New VERAG_PROG_ALLGEMEIN.MyListItem("6", 6))
            cboRisikostufe.changeItem("")

        End If

    End Sub

    Private Function isCreditSave() As Boolean

        If cboTool._value = "creditsafe" Or cboTool._value = "creditsafe AT" Then
            Return True
        Else
            Return False
        End If

    End Function

    Private Sub setCboItem()

        If cboTool._value = "creditsafe AT" Then
            lblBonitätsindex.Text = "Boni-Score"
            Label2.Visible = False
        ElseIf cboTool._value = "creditsafe" Then
            lblBonitätsindex.Text = "Bonitätsindex:"
            Label2.Visible = False

        Else
            lblBonitätsindex.Text = "Bonitätsindex:"
            Label2.Visible = True
        End If


    End Sub

    Private Function checkValues() As Boolean

        lblWarning.Text = ""
        lblWarning2.Text = ""
        If txtBonitaetsindex.Text = "" And cboRisikostufe.Text = "" Then Return False

        If txtBonitaetsindex.Text = "" And Not cboTool._value = "creditreform" Then
            lblWarning.Text = "Bitte Boni-Score/Bonitätsindex angeben!"
            Return False
        End If

        If cboRisikostufe.Text = "" And Not cboTool._value = "creditreform" Then
            lblWarning2.Text = "Bitte Risikostufe angegeben!"
            Return False
        End If

        If txtBonitaetsindex.Text <> "" Then
            If Not IsNumeric(txtBonitaetsindex.Text) Then
                lblWarning.Text = "eingetragener Bonitätsindex ist kein Zahlenwert!"
                Return False
            End If

        End If



        Select Case ADRESSE.LandKz.ToString

            Case "AT", "A"
                If txtBonitaetsindex.Text <> "" Then
                    If (CInt(txtBonitaetsindex.Text) < 100 Or CInt(txtBonitaetsindex.Text) > 700) And cboTool._value = "creditsafe AT" Then
                        lblWarning.Text = "B-Score muss zwischen 100 und 700 liegen"
                        Return False
                    End If
                End If


                If cboTool._value = "creditsafe" Then
                    lblWarning.Text = "falsches Prüfungstool, bitte AT auswählen"
                    Return False
                End If

                If txtBonitaetsindex.Text <> "" Then
                    If CInt(txtBonitaetsindex.Text) < 10 And CInt(txtBonitaetsindex.Text) <> 0 And cboTool._value = "creditreform" Then
                        lblWarning.Text = "B-Index muss größer als 10 sein"
                        Return False
                    End If
                End If







            Case "DE", "D"
                If txtBonitaetsindex.Text <> "" Then
                    If (CDbl(txtBonitaetsindex.Text) < 1.0 Or CDbl(txtBonitaetsindex.Text) > 6.0) And cboTool._value = "creditsafe" Then
                        lblWarning.Text = "B-Index muss zwischen 1.0 und 6.0 liegen"
                        Return False
                    End If
                End If


                If cboTool._value = "creditsafe AT" Then
                    lblWarning.Text = "falsches Prüfungstool, bitte Creditsafe auswählen"
                    Return False
                End If

                If txtBonitaetsindex.Text <> "" Then
                    If CInt(txtBonitaetsindex.Text) < 10 And CInt(txtBonitaetsindex.Text) <> 0 And cboTool._value = "creditreform" Then
                        lblWarning.Text = "B-Index muss größer als 10 sein"
                        Return False
                    End If
                End If



            Case Else
                If txtBonitaetsindex.Text <> "" Then
                    If (CDbl(txtBonitaetsindex.Text) < 1.0 Or CDbl(txtBonitaetsindex.Text) > 1000.0) And cboTool._value = "creditsafe" Then
                        lblWarning.Text = "B-Index muss zwischen 1.0 und 1000.0 liegen"
                        Return False
                    End If
                End If


                If cboTool._value = "creditsafe AT" Then
                    lblWarning.Text = "falsches Prüfungstool, bitte Creditsafe auswählen"
                    Return False
                End If

                If txtBonitaetsindex.Text <> "" Then
                    If CInt(txtBonitaetsindex.Text) < 10 And CInt(txtBonitaetsindex.Text) <> 0 And cboTool._value = "creditreform" Then
                        lblWarning.Text = "B-Index muss größer als 10 sein"
                        Return False
                    End If
                End If



        End Select

        lblWarning.Text = ""
        lblWarning2.Text = ""
        Return True


    End Function

End Class