Public Class frmBesuchsberichte

    Public KdNr As Integer = -1
    Public bb_id As Integer = -1

    Dim BB As New VERAG_PROG_ALLGEMEIN.cBesuchsbericht
    Sub New(bb_id, Optional kdNr = -1)

        InitializeComponent()
        Me.bb_id = bb_id
        Me.KdNr = kdNr


    End Sub

    Private Sub KdSearchBox1_TextChanged(sender As Object, e As EventArgs) Handles kdFirma.TextChanged

        If kdFirma.KdNr_value > 0 AndAlso kdFirma.KdNr IsNot Nothing Then
            Dim AD = kdFirma.KdData_ADRESSEN
            Dim KD = kdFirma.KdData_KUNDE

            txtFirma.Enabled = True
            BB.bb_KundenNr = kdFirma.KdNr_value


            txtFirma.Text = If(AD.Name_1, "") & If(AD.Name_2, "")
            txtFirma.Text &= vbNewLine & If(AD.Straße, "")
            txtFirma.Text &= vbNewLine & If(AD.LandKz, "") & If(AD.PLZ, "") & If(AD.Ort, "")
            BB.bb_Kunde = If(txtFirma.Text, "-")
            txtFirma.Enabled = False
        Else
            txtFirma.Enabled = True
        End If

    End Sub

    Private Sub frmBesuchsberichte_Load(sender As Object, e As EventArgs) Handles Me.Load
        kdFirma.initKdBox(Me)
        cboKontaktart.Items.Clear()
        cboKontaktart.Items.Add(New VERAG_PROG_ALLGEMEIN.MyListItem("", ""))
        cboKontaktart.Items.Add(New VERAG_PROG_ALLGEMEIN.MyListItem("Persönlich", "PERSON"))
        cboKontaktart.Items.Add(New VERAG_PROG_ALLGEMEIN.MyListItem("Telefonisch", "TELEFON"))
        cboKontaktart.Items.Add(New VERAG_PROG_ALLGEMEIN.MyListItem("Videomeeting", "VIDEO"))
        cboKontaktart.changeItem("")

        cboZufrieden.Items.Clear()
        cboZufrieden.Items.Add(New VERAG_PROG_ALLGEMEIN.MyListItem("", ""))
        cboZufrieden.Items.Add(New VERAG_PROG_ALLGEMEIN.MyListItem("JA", "True"))
        cboZufrieden.Items.Add(New VERAG_PROG_ALLGEMEIN.MyListItem("NEIN", "False"))
        cboZufrieden.changeItem("")

        If KdNr > 0 Then
            Me.kdFirma.KdNr = KdNr
            kdFirma.Enabled = False
            txtFirma.ReadOnly = True

        Else
            kdFirma.Enabled = True
            txtFirma.ReadOnly = False
        End If

        If bb_id > 0 Then
            BB = New VERAG_PROG_ALLGEMEIN.cBesuchsbericht(bb_id)
            setvalues(BB)

            UsrcntlPDFScanList1.Enabled = True
            'UsrcntlPDFScanList1.INIT(-1, "BESUCHSBERICHTE", VERAG_PROG_ALLGEMEIN.cAllgemein.FIRMA, bb_id)
            UsrcntlPDFScanList1.INIT(BB.bb_KundenNr, "BESUCHSBERICHTE", bb_id)
        Else
            UsrcntlPDFScanList1.Enabled = False
        End If


    End Sub

    Sub setvalues(BB As VERAG_PROG_ALLGEMEIN.cBesuchsbericht)

        kdFirma.Enabled = BB.bb_KundenNr <= 0
        kdFirma.KdNr = BB.bb_KundenNr
        datBesuchtAm._value = BB.bb_DatumBesuch
        txtTeilgenommen.Text = If(BB.bb_Teilnehmer, "")
        cboKontaktart.changeItem(If(BB.bb_Kontaktart, ""))
        If If(BB.bb_KundenNr, -1) <= 0 Then
            txtFirma.Text = If(BB.bb_Kunde, "")
        End If

        txtGF.Text = If(BB.bb_Geschaeftsfuehrer, "")
        txtAnsprechpartner.Text = If(BB.bb_Anpsprechpartner, "")
        txtMail.Text = If(BB.bb_Mail, "")
        txtTel.Text = If(BB.bb_Telefon, "")
        txtUmsatz._value = If(BB.bb_Umsatz, "")
        txtFuhrparkEigene.Text = If(BB.bb_FuhrparkEigentum, "")
        txtFuhrparkLeasing.Text = If(BB.bb_FuhrparkLeasing, "")
        cbxPlane.Checked = BB.bb_LKW_Plane
        cbxKuehltransporte.Checked = BB.bb_LKW_Kuehltranporte
        cbxSondertransporte.Checked = BB.bb_LKW_Sondertransporte
        cbxSprinter.Checked = BB.bb_LKW_Sprinter
        cbxSiloTank.Checked = BB.bb_LKW_SiloTank

        txtAuftraggeber.Text = If(BB.bb_Auftraggeber, "")
        txtTransportRoute.Text = If(BB.bb_Route, "")
        txtDerzeitigerLieferant.Text = If(BB.bb_DerzeitigerLieferant, "")
        cboZufrieden.changeItem(If(BB.bb_Zufrieden.ToString, ""))

        txtZufriedenNEIN.Text = If(BB.bb_ZufriedenNEIN, "")
        txtGarantie.Text = If(BB.bb_Garantie, "")
        txtVermerk.Text = If(BB.bb_Vermerk, "")

        cbxZollabfertigung.Checked = BB.bb_Interesse_Zollabfertigung
        cbxBrexit.Checked = BB.bb_Interesse_Zollabfertigung
        cbxParkplatz.Checked = BB.bb_Interesse_Parkplatz
        cbxLagerUmschlag.Checked = BB.bb_Interesse_LagerUmschlag
        cbxRola.Checked = BB.bb_Interesse_Rola
        cbxYesMonex.Checked = BB.bb_Interesse_YesMoney
        cbxFerry.Checked = BB.bb_Interesse_Ferry
    End Sub
    Function getvalues(ByRef BB As VERAG_PROG_ALLGEMEIN.cBesuchsbericht) As Boolean
        If Not checkValid() Then Return False

        BB.bb_DatumBesuch = datBesuchtAm._value
        BB.bb_Teilnehmer = txtTeilgenommen.Text
        BB.bb_Kontaktart = cboKontaktart._value
        If If(BB.bb_KundenNr, -1) <= 0 Then
            If txtFirma.Text <> "" Then
                If txtFirma.Text.Length > 35 Then
                    BB.bb_Kunde = txtFirma.Text.Substring(0, 35)
                Else
                    BB.bb_Kunde = txtFirma.Text
                End If
            Else
                BB.bb_Kunde = "-" 'diese Fall kann nicht eintreten, wird im Formular abgefangen.
            End If
        End If
        BB.bb_Geschaeftsfuehrer = txtGF.Text
        BB.bb_Anpsprechpartner = txtAnsprechpartner.Text
        BB.bb_Mail = txtMail.Text
        BB.bb_Telefon = txtTel.Text
        BB.bb_Umsatz = If(txtUmsatz._value = "" Or Not IsNumeric(txtUmsatz._value), Nothing, CDbl(txtUmsatz._value))
        BB.bb_FuhrparkEigentum = txtFuhrparkEigene.Text
        BB.bb_FuhrparkLeasing = txtFuhrparkLeasing.Text
        BB.bb_LKW_Plane = cbxPlane.Checked
        BB.bb_LKW_Kuehltranporte = cbxKuehltransporte.Checked
        BB.bb_LKW_Sondertransporte = cbxSondertransporte.Checked
        BB.bb_LKW_Sprinter = cbxSprinter.Checked
        BB.bb_LKW_SiloTank = cbxSiloTank.Checked

        BB.bb_Auftraggeber = txtAuftraggeber.Text
        BB.bb_Route = txtTransportRoute.Text
        BB.bb_DerzeitigerLieferant = txtDerzeitigerLieferant.Text
        BB.bb_Zufrieden = IIf(cboZufrieden._value = "", Nothing, cboZufrieden._value)

        BB.bb_ZufriedenNEIN = txtZufriedenNEIN.Text
        BB.bb_Garantie = txtGarantie.Text
        BB.bb_Vermerk = txtVermerk.Text

        BB.bb_Interesse_Zollabfertigung = cbxZollabfertigung.Checked
        BB.bb_Interesse_Brexit = cbxBrexit.Checked
        BB.bb_Interesse_Parkplatz = cbxParkplatz.Checked
        BB.bb_Interesse_LagerUmschlag = cbxLagerUmschlag.Checked
        BB.bb_Interesse_Rola = cbxRola.Checked
        BB.bb_Interesse_YesMoney = cbxYesMonex.Checked
        BB.bb_Interesse_Ferry = cbxFerry.Checked

        BB.bb_Firma = VERAG_PROG_ALLGEMEIN.cAllgemein.FIRMA
        BB.bb_Sachbearbeiter = VERAG_PROG_ALLGEMEIN.cAllgemein.USRKURZNAME
        BB.bb_SachbearbeiterId = VERAG_PROG_ALLGEMEIN.cAllgemein.USRID
        Return BB.SAVE()
    End Function

    Private Sub btnSave_Click(sender As Object, e As EventArgs) Handles btnSave.Click
        If getvalues(BB) Then
            UsrcntlPDFScanList1.Enabled = True
            'UsrcntlPDFScanList1.INIT(-1, "BESUCHSBERICHTE", VERAG_PROG_ALLGEMEIN.cAllgemein.FIRMA, bb_id)

            UsrcntlPDFScanList1.INIT(BB.bb_KundenNr, "BESUCHSBERICHTE")
        End If
    End Sub

    Private Sub btnOK_Click(sender As Object, e As EventArgs) Handles btnOK.Click
        If getvalues(BB) Then
            Me.Close()
        End If
    End Sub

    Private Sub btnCancel_Click(sender As Object, e As EventArgs) Handles btnCancel.Click
        Me.Close()
    End Sub

    Function checkValid() As Boolean
        lblErr_BesuchtAm.Visible = False
        lblErr_Kontaktart.Visible = False
        lblErr_Teilgenommen.Visible = False
        lblErr_Firma.Visible = False
        If datBesuchtAm._value = "" Then lblErr_BesuchtAm.Visible = True : Return False
        If cboKontaktart._value = "" Then lblErr_Kontaktart.Visible = True : Return False
        If txtTeilgenommen.Text = "" Then lblErr_Teilgenommen.Visible = True : Return False
        If txtFirma.Text = "" Then lblErr_Firma.Visible = True : Return False
        Return True
    End Function

    Private Sub UsrcntlPDFScanList1_Load(sender As Object, e As EventArgs) Handles UsrcntlPDFScanList1.Load

    End Sub

    Private Sub btnPDFReport_Click(sender As Object, e As EventArgs) Handles btnPDFReport.Click
        'Erstellung der BerichtsPDF

        btnSave_Click(sender, e)

        Dim fm As New VERAG_PROG_ALLGEMEIN.cFormularManager
        Dim list As New List(Of VERAG_PROG_ALLGEMEIN.MyListItem)

        list.Add(New VERAG_PROG_ALLGEMEIN.MyListItem("Datum", BB.bb_DatumBesuch.ToString))

        list.Add(New VERAG_PROG_ALLGEMEIN.MyListItem("Teilnehmer", BB.bb_Teilnehmer.ToString))

        list.Add(New VERAG_PROG_ALLGEMEIN.MyListItem("Geschäftsführer", BB.bb_Geschaeftsfuehrer.ToString))

        list.Add(New VERAG_PROG_ALLGEMEIN.MyListItem("Ansprechpartner", BB.bb_Anpsprechpartner.ToString))

        list.Add(New VERAG_PROG_ALLGEMEIN.MyListItem("Firma", txtFirma.Text))

        list.Add(New VERAG_PROG_ALLGEMEIN.MyListItem("Umatz", BB.bb_Umsatz)) 'ACHTUNG -> im Formular wurde das Feld "Umatz" benannt, nicht korrigieren!

        list.Add(New VERAG_PROG_ALLGEMEIN.MyListItem("Telefon", BB.bb_Telefon.ToString))

        list.Add(New VERAG_PROG_ALLGEMEIN.MyListItem("Mail", BB.bb_Mail.ToString))

        list.Add(New VERAG_PROG_ALLGEMEIN.MyListItem("LKWEigentum", BB.bb_FuhrparkEigentum.ToString))

        list.Add(New VERAG_PROG_ALLGEMEIN.MyListItem("LKWLeasing", BB.bb_FuhrparkLeasing.ToString))

        list.Add(New VERAG_PROG_ALLGEMEIN.MyListItem("Auftraggeber", BB.bb_Auftraggeber.ToString))

        list.Add(New VERAG_PROG_ALLGEMEIN.MyListItem("TransportRouten", BB.bb_Route.ToString))

        list.Add(New VERAG_PROG_ALLGEMEIN.MyListItem("DerzeitigerAnbieter", BB.bb_DerzeitigerLieferant.ToString))

        list.Add(New VERAG_PROG_ALLGEMEIN.MyListItem("Bericht", BB.bb_Vermerk.ToString))

        list.Add(New VERAG_PROG_ALLGEMEIN.MyListItem("Garentie", BB.bb_Garantie)) 'ACHTUNG -> im Formular wurde das Feld "Garentie" benannt, nicht korrigieren!

        list.Add(New VERAG_PROG_ALLGEMEIN.MyListItem("Plane", IIf(BB.bb_LKW_Plane = True, "On", "Off")))

        list.Add(New VERAG_PROG_ALLGEMEIN.MyListItem("Kühltransporte", IIf(BB.bb_LKW_Kuehltranporte = True, "On", "Off")))

        list.Add(New VERAG_PROG_ALLGEMEIN.MyListItem("Sondertransporte", IIf(BB.bb_LKW_Sondertransporte = True, "On", "Off")))

        list.Add(New VERAG_PROG_ALLGEMEIN.MyListItem("Sprinter", IIf(BB.bb_LKW_Sprinter = True, "On", "Off")))

        list.Add(New VERAG_PROG_ALLGEMEIN.MyListItem("SiloTank", IIf(BB.bb_LKW_SiloTank = True, "On", "Off")))

        list.Add(New VERAG_PROG_ALLGEMEIN.MyListItem("Zollabfertigung", IIf(BB.bb_Interesse_Zollabfertigung = True, "On", "Off")))

        list.Add(New VERAG_PROG_ALLGEMEIN.MyListItem("Brexit", IIf(BB.bb_Interesse_Brexit = True, "On", "Off")))

        list.Add(New VERAG_PROG_ALLGEMEIN.MyListItem("Parkplatz", IIf(BB.bb_Interesse_Parkplatz = True, "On", "Off")))

        list.Add(New VERAG_PROG_ALLGEMEIN.MyListItem("LagerUmladung", IIf(BB.bb_Interesse_LagerUmschlag = True, "On", "Off")))

        list.Add(New VERAG_PROG_ALLGEMEIN.MyListItem("Rola", IIf(BB.bb_Interesse_Rola = True, "On", "Off")))

        list.Add(New VERAG_PROG_ALLGEMEIN.MyListItem("YesMoney", IIf(BB.bb_Interesse_YesMoney = True, "On", "Off")))

        list.Add(New VERAG_PROG_ALLGEMEIN.MyListItem("Ferry", IIf(BB.bb_Interesse_Ferry = True, "On", "Off")))



        If BB.bb_Zufrieden = "" Or IsNothing(BB.bb_Zufrieden) Then

            list.Add(New VERAG_PROG_ALLGEMEIN.MyListItem("JA", "Off"))
            list.Add(New VERAG_PROG_ALLGEMEIN.MyListItem("NEIN", "Off"))


        ElseIf BB.bb_Zufrieden = True Then

            list.Add(New VERAG_PROG_ALLGEMEIN.MyListItem("JA", "On"))
            list.Add(New VERAG_PROG_ALLGEMEIN.MyListItem("NEIN", "Off"))
        ElseIf BB.bb_Zufrieden = False Then

            list.Add(New VERAG_PROG_ALLGEMEIN.MyListItem("JA", "Off"))
            list.Add(New VERAG_PROG_ALLGEMEIN.MyListItem("NEIN", "On"))
            list.Add(New VERAG_PROG_ALLGEMEIN.MyListItem("ZufriedenNEIN", IIf(BB.bb_ZufriedenNEIN <> "", BB.bb_ZufriedenNEIN.ToString, "")))

        End If

        Select Case BB.bb_Kontaktart.ToString
            Case "PERSON"
                list.Add(New VERAG_PROG_ALLGEMEIN.MyListItem("persönlich", "On"))
            Case "TELEFON"
                list.Add(New VERAG_PROG_ALLGEMEIN.MyListItem("telefonisch", "On"))
            Case "VIDEO"
                list.Add(New VERAG_PROG_ALLGEMEIN.MyListItem("Videomeeting", "On"))
            Case Else

        End Select

        fm.fillPDF("Besuchsbericht_MDM", list, Nothing, , , , , , "VERAG")

    End Sub

    Private Sub kdFirma_PropertyChanged(sender As Object, e As EventArgs) Handles kdFirma.PropertyChanged

        If kdFirma.KdNr_value > 0 AndAlso kdFirma.KdData_ADRESSEN IsNot Nothing AndAlso kdFirma.KdData_KUNDE IsNot Nothing Then

            Dim AD = kdFirma.KdData_ADRESSEN
            Dim KD = kdFirma.KdData_KUNDE

            txtFirma.Text = If(AD.Name_1, "") & If(AD.Name_2, "")
            txtFirma.Text &= vbNewLine & If(AD.Straße, "")
            txtFirma.Text &= vbNewLine & If(AD.LandKz, "") & If(AD.PLZ, "") & If(AD.Ort, "")
            txtFirma.ReadOnly = True
        Else
            txtFirma.ReadOnly = False
        End If
    End Sub

    Private Sub cboZufrieden_SelectedValueChanged(sender As Object, e As EventArgs) Handles cboZufrieden.SelectedValueChanged
        If (cboZufrieden.SelectedIndex = 2) Then
            txtZufriedenNEIN.Enabled = True
        Else
            txtZufriedenNEIN.Enabled = False
            txtZufriedenNEIN.Clear()

        End If

    End Sub
End Class