Imports System.ComponentModel
Imports GrapeCity.ActiveReports.ReportsCore.Tools

Public Class usrcntlKundeBearbeitenFull

    Dim KUNDE As VERAG_PROG_ALLGEMEIN.cKunde = Nothing
    Dim KUNDE_ERW As VERAG_PROG_ALLGEMEIN.cKundenErweitert = Nothing
    Dim ADRESSE As VERAG_PROG_ALLGEMEIN.cAdressen = Nothing
    Dim FISKAL As cFiskal_Daten = Nothing
    ' Dim USRCNTL_FISK As usrCntlKundeFiskaldaten
    Dim EMAIL_ANKUNFT As VERAG_PROG_ALLGEMEIN.cEmailBenachrichtigungList = Nothing
    Dim EMAIL_FREIGABE As VERAG_PROG_ALLGEMEIN.cEmailBenachrichtigungList = Nothing
    Dim sql As New SQL
    Dim WunschKdNr As Integer = -1
    Public Filiale As Integer = -1
    '  Dim kdnr = -1

    Public Event KD_SAVED(kdnr)
    Dim FUNC As New cProgramFunctions

    '  Public BERECHTIGUNEN As List(Of cBerechtigungen) = Nothing
    Sub New()
        ' Dieser Aufruf ist für den Designer erforderlich.
        InitializeComponent()
        loadControls()
    End Sub
    Sub New(kdnr)
        InitializeComponent()
        loadControls()
        init(kdnr)
        'If kdnr > 0 Then
        '    init(kdnr)
        'End If
    End Sub


    Function loadValue(o As Object, o2 As Object) As Object
        'If  <> Nothing Then Return o
        If o IsNot Nothing Then Return o Else Return o2
    End Function




    Public Sub init(kdnr)
        txtERROR.Text = ""
        KUNDE = New VERAG_PROG_ALLGEMEIN.cKunde(kdnr)
        ADRESSE = New VERAG_PROG_ALLGEMEIN.cAdressen(kdnr)
        FISKAL = New cFiskal_Daten(kdnr)
        KUNDE_ERW = New VERAG_PROG_ALLGEMEIN.cKundenErweitert(kdnr)

        cboFiliale.changeItem(loadValue(KUNDE.FilialenNr, "")) 'zuerst Filiale, dmait Kundennummernkreis später den Wert überschreiben kann!

        Select Case VERAG_PROG_ALLGEMEIN.cAllgemein.FIRMA
            Case "IMEX"
                cbxFiBuLG.Visible = True
        End Select

        If ADRESSE.AdressenNr <= 0 Then

            KUNDE_ERW.kde_BesonderheitenNeu = 1
            cboKundenkreis.Items.Clear()
            If VERAG_PROG_ALLGEMEIN.cBerechtignunen.CHECK_BERECHTIGUNG_bool("OFFERTE_FREMD_VERAGIMEX", "SDL") Then
                cboKundenkreis.Items.Add(New VERAG_PROG_ALLGEMEIN.MyListItem("  500000-599999: EV - Kunden", "500000-599999"))
                cboKundenkreis.Items.Add(New VERAG_PROG_ALLGEMEIN.MyListItem("  700000-799999: ZOLL Abrechnung", "728000-799999"))
                cboKundenkreis.Items.Add(New VERAG_PROG_ALLGEMEIN.MyListItem("  5-stellig: Fiskal (keine Abrechnung)", "30000-49999"))
                cboKundenkreis.Items.Add(New VERAG_PROG_ALLGEMEIN.MyListItem("  800000-899999: BREXIT", "800000-899999"))
                cboKundenkreis.Items.Add(New VERAG_PROG_ALLGEMEIN.MyListItem("  900000-999999: Sonstige", "900000-999999"))
                cboKundenkreis.Items.Add(New VERAG_PROG_ALLGEMEIN.MyListItem("1000000-1099999: IMEX", "1080000-1099990"))

            Else

                Select Case VERAG_PROG_ALLGEMEIN.cAllgemein.FIRMA
                    Case "IMEX"
                        cboKundenkreis.Items.Add(New VERAG_PROG_ALLGEMEIN.MyListItem("1000000-1099999: IMEX", "1080000-1099990"))
                        cboKundenkreis.changeItem("1080000-1099990")
                    Case "UNISPED"
                        cboKundenkreis.Items.Add(New VERAG_PROG_ALLGEMEIN.MyListItem("2000000-2099999: UNISPED", "2000000-2099990"))
                        cboKundenkreis.changeItem("2000000-2099990")
                    Case "AMBAR"
                        cboKundenkreis.Items.Add(New VERAG_PROG_ALLGEMEIN.MyListItem("3000000-3099999: AMBAR", "3000000-3099990"))
                        cboKundenkreis.changeItem("3000000-3099990")
                    Case "ATILLA"
                        cboKundenkreis.Items.Add(New VERAG_PROG_ALLGEMEIN.MyListItem("  100000-199999: ATILLA", "100000-199999"))
                        cboKundenkreis.Items.Add(New VERAG_PROG_ALLGEMEIN.MyListItem("  900000-999999: Sonstige", "900000-999999"))
                        'ComboBox2.Items.Add(New VERAG_PROG_ALLGEMEIN.MyListItem("  700000-799999: ZOLL Abrechnung", "728000-799999"))
                        ' ComboBox2.Items.Add(New VERAG_PROG_ALLGEMEIN.MyListItem("  900000-999999: Sonstige", "900000-999999"))
                        cboKundenkreis.changeItem("100000-199999")

                    Case Else
                        If VERAG_PROG_ALLGEMEIN.cBerechtignunen.CHECK_BERECHTIGUNG_bool("ATILLA_VERWALTUNG", "AVISO") Then
                            cboKundenkreis.Items.Add(New VERAG_PROG_ALLGEMEIN.MyListItem("  100000-199999: ATILLA", "100000-199999"))
                        End If
                        cboKundenkreis.Items.Add(New VERAG_PROG_ALLGEMEIN.MyListItem("  500000-599999: EV - Kunden", "500000-599999"))
                        cboKundenkreis.Items.Add(New VERAG_PROG_ALLGEMEIN.MyListItem("  700000-799999: ZOLL Abrechnung", "728000-799999"))
                        cboKundenkreis.Items.Add(New VERAG_PROG_ALLGEMEIN.MyListItem("  5-stellig: Fiskal (keine Abrechnung)", "30000-49999"))
                        '  ComboBox2.Items.Add(New VERAG_PROG_ALLGEMEIN.MyListItem("  800000-899999: XXXXXX", "800000-899999"))
                        cboKundenkreis.Items.Add(New VERAG_PROG_ALLGEMEIN.MyListItem("  800000-899999: BREXIT", "800000-899999"))
                        cboKundenkreis.Items.Add(New VERAG_PROG_ALLGEMEIN.MyListItem("  900000-999999: Sonstige", "900000-999999"))

                        ' ComboBox2.Items.Add(New VERAG_PROG_ALLGEMEIN.MyListItem("1000000-1099999: IMEX", "1080000-1099990"))
                        cboKundenkreis.changeItem("728000-799999")
                End Select
            End If

            If VERAG_PROG_ALLGEMEIN.cBerechtignunen.CHECK_BERECHTIGUNG_bool("OFFERTE_FREMD_AWOR", "SDL") Then
                cboKundenkreis.Items.Add(New VERAG_PROG_ALLGEMEIN.MyListItem("4000000-4099999: AWOR", "4001000-4099999"))
            End If
            If VERAG_PROG_ALLGEMEIN.cBerechtignunen.CHECK_BERECHTIGUNG_bool("OFFERTE_FREMD_UNISPED_BREXIT", "SDL") Then
                cboKundenkreis.Items.Add(New VERAG_PROG_ALLGEMEIN.MyListItem("2800000-2899999: UNISPED BREXIT", "2800000-2899999"))
            End If
            If VERAG_PROG_ALLGEMEIN.cAllgemein.FIRMA <> "AMBAR" And VERAG_PROG_ALLGEMEIN.cBerechtignunen.CHECK_BERECHTIGUNG_bool("OFFERTE_FREMD_AMBAR", "SDL") Then
                cboKundenkreis.Items.Add(New VERAG_PROG_ALLGEMEIN.MyListItem("3000000-3099999: AMBAR", "3000000-3099990"))

            End If

            pnlNeukunde.Visible = True
            btnUIDPruef.Visible = False
        Else
            btnUIDPruef.Visible = True
        End If


        If VERAG_PROG_ALLGEMEIN.cAllgemein.FIRMA = "FRONTOFFICE" Then
            cboKundenkreis.Items.Add(New VERAG_PROG_ALLGEMEIN.MyListItem(" 9900000-9999999: FRONT-OFFICE - Kunden", "9900000-9999999"))
        End If

        usrCntlAufschubkonten.initMe(kdnr)

        ucKundenKontakte.btn.Visible = (kdnr > 0)

        Me.Cursor = Cursors.WaitCursor

        ' tbFiskal.Controls.Clear()
        UsrCntlKundeFiskaldaten1.initFiskal(FISKAL, KUNDE_ERW)
        'USRCNTL_FISK.Dock = DockStyle.Fill
        'tbFiskal.Controls.Add(USRCNTL_FISK)

        checkEORI_Aufschub()

        ' ----- Adressdaten -----
        lblKundennr.Text = If(ADRESSE.AdressenNr > 0, ADRESSE.AdressenNr, "-")
        txtKurzname.Text = loadValue(ADRESSE.Ordnungsbegriff, "")
        cboAuswahl.changeItem(ADRESSE.Auswahl)

        txtFirmenname1.Text = loadValue(ADRESSE.Name_1, "")
        txtFirmenname2.Text = loadValue(ADRESSE.Name_2, "")

        txtStrasse.Text = loadValue(ADRESSE.Straße, "")
        txtPlz.Text = loadValue(ADRESSE.PLZ, "")
        txtOrt.Text = loadValue(ADRESSE.Ort, "")
        cbxLandKz._value = loadValue(ADRESSE.LandKz, "")
        txtPostfachPlz.Text = loadValue(ADRESSE.PLZPF, "")
        txtPostfachOrt.Text = loadValue(ADRESSE.Postfach, "")

        txtTel.Text = loadValue(ADRESSE.Telefon, "")
        txtFax.Text = loadValue(ADRESSE.Telefax, "")
        txtMobil.Text = loadValue(ADRESSE.Mobiltelefon, "")
        txtEmail.Text = loadValue(ADRESSE.E_Mail, "")
        txtEmail2.Text = loadValue(ADRESSE.E_Mail2, "")

        txtAnsprechpartner.Text = loadValue(ADRESSE.Ansprechpartner, "")
        txtAnsprechpartnerAnrede.Text = loadValue(ADRESSE.Anrede, "")

        ' txtUStID.Text = loadValue(ADRESSE.UstIdNr, "")
        'txtUStID.Text=loadValue(ADRESSE.UStIdKz")
        'txtUStIDGeprueftAm._value = loadValue(ADRESSE.UstIdGeprüft, "")
        txtSteuernummer.Text = loadValue(ADRESSE.Steuernummer, "")

        '  txtBank.Text=loadValue(ADRESSE.Bankverbindung")
        txtBank_Blz.Text = loadValue(ADRESSE.BLZ, "")
        txtBank_Kto.Text = loadValue(ADRESSE.KTO, "")

        lblErfassung.Text = loadValue(ADRESSE.Eingegeben_am, "")
        lblAenderung.Text = loadValue(ADRESSE.Geändert_am, "")
        lblSachbearbeiter.Text = loadValue(ADRESSE.Sachbearbeiter, "")





        Label28.Text = If(KUNDE.DakosyExport, "-")
        If KUNDE.KundenNr > 0 Then
            cbxFiBu.Checked = KUNDE.FiBuSchnittstelle
            cbxFiBuLG.Checked = KUNDE_ERW.FiBuSchnittstelleLG
            cboFirma.changeItem(If(KUNDE.FiBuSchnittstelleNr, ""))
        End If
        ' ----- Abfertigung -----
        rtbAbf_Besonderheiten.Text = loadValue(KUNDE.Besonderheiten, "")
        rtbLKWFreigabeSenden.Text = loadValue(KUNDE.DokumenteLKWFreigabe, "")
        cbxAbf_EinmaligeAbfertigung.Checked = loadValue(KUNDE.Einmalige_Abfertigung, False)
        cbxAbf_ZollVM.Checked = loadValue(KUNDE.Zollvollmacht, False)
        txtAbf_ZollVmVom._value = loadValue(KUNDE.Zollvollmacht_vom, "")
        txtAbf_Planzahl.Text = loadValue(KUNDE.Planzahl, "")

        cbxAbf_Lastschrift.Checked = loadValue(KUNDE.Lastschrift, False)
        txtAbf_LastschriftVon._value = loadValue(KUNDE.Lastschrift_von, "")
        txtAbf_LastschriftBis._value = loadValue(KUNDE.Lastschrift_bis, "")

        cbxAbf_Fiskal.Checked = loadValue(KUNDE.Fiskal, False)
        cbxAbf_Ausfuhr.Checked = loadValue(KUNDE.Ausfuhr, False)
        cbxAbf_Vorkasse.Checked = loadValue(KUNDE.Vorkasse, False)
        cbxAbf_Rabattstaffel.Checked = loadValue(KUNDE.Rabattstaffel, False)
        cbxAbf_SvsRvs.Checked = loadValue(KUNDE.SVS, False)
        txtAbf_ErsteAbfertigung._value = loadValue(KUNDE.Erste_Abfertigung, "")

        txtAbf_Vorlageprovision._value = loadValue(KUNDE.Vorlageprovision, "")
        txtDebKdNr.Text = loadValue(KUNDE.KundenNrZentrale, KUNDE.KundenNr)

        txtAbf_Kreditaufwendungen._value = loadValue(KUNDE.Kreditaufwendungen, "")
        txtAbf_Bankspesen._value = loadValue(KUNDE.Bankspesen, "")
        txtAbf_BankspesenMindestbetrag._value = loadValue(KUNDE.Bankspesen_Mindestbetrag, "")
        txtVers_Kreditlimit.Text = loadValue(KUNDE.Kreditlimit, "")
        txtAbf_Zahlungsziel.Text = loadValue(KUNDE.Zahlungsziel, "")
        txtAbf_Zahlungsziel2.Text = loadValue(KUNDE_ERW.Zahlungsziel2, "")
        txtAbf_Zahlungsziel3.Text = loadValue(KUNDE_ERW.Zahlungsziel3, "")

        txtAbf_Euroeinführung._value = loadValue(KUNDE.Euroeinführung, "")

        cboAbf_Steuerschluessel._value = loadValue(KUNDE.Steuerschlüssel, "")
        cboAbf_Waehrung._value = loadValue(KUNDE.Währungscode, "EUR")
        cbxSammelrechnungBerichtLeistungsdetails.Checked = loadValue(KUNDE_ERW.kde_FakturierungSR_Details, False)
        cboAbf_Sammelrechnung._value = loadValue(KUNDE.Sammelrechnung, "")


        txtEORI.Text = If(KUNDE.EORITIN, "")
        txtEORINL.Text = If(KUNDE.EORITIN_NL, "")

        ' If Not AvisBinding Is Nothing Then Me.DataBindings.Remove(AvisBinding)
        ' If Not NeutralisierungBinding Is Nothing Then Me.DataBindings.Remove(NeutralisierungBinding)
        ' AvisBinding = New Binding("rbtnAAfb_Aviso=loadValue(KUNDE.Avis")
        '  NeutralisierungBinding = New Binding("rbtnAAfb_Neutralisierung=loadValue(KUNDE.Neutralisierung")

        ' Me.DataBindings.Add(AvisBinding)
        '  Me.DataBindings.Add(NeutralisierungBinding)


        ' ----- Neutralisierung -----
        RadioButton1.Checked = False
        RadioButton2.Checked = False
        RadioButton3.Checked = False
        Select Case KUNDE.Neutralisierung
            Case 0 : RadioButton1.Checked = True
            Case 1 : RadioButton2.Checked = True
            Case 2 : RadioButton3.Checked = True
        End Select

        ' ----- Avis -----
        RadioButton6.Checked = False
        RadioButton5.Checked = False
        RadioButton4.Checked = False
        RadioButton7.Checked = False
        Select Case KUNDE.Avis
            Case 0 : RadioButton6.Checked = True
            Case 1 : RadioButton5.Checked = True
            Case 2 : RadioButton4.Checked = True
            Case 3 : RadioButton7.Checked = True
        End Select


        ' ----- Versicherung -----
        txtVers_HermesRefNr.Text = loadValue(KUNDE.Referenznummer, "")
        txtVers_Versicherungssumme._value = loadValue(KUNDE.Versicherungssumme, "")
        txtVers_VersicherungssummeVon._value = loadValue(KUNDE.Entscheidung_vom, "")
        txtVers_Antragssumme._value = loadValue(KUNDE.Antragssumme, "")
        txtVers_AntragssummeVon._value = loadValue(KUNDE.Antrag_vom, "")
        txtVers_Kreditlimit._value = loadValue(KUNDE.Kreditlimit, "")
        txtVers_KreditlimitVon._value = loadValue(KUNDE.Kreditlimit_vom, "")
        txtVers_Bankgarantiebetrag._value = loadValue(KUNDE.BankgarantieBetrag, "")
        txtVers_BankgarantiebetragGueltigBis._value = loadValue(KUNDE.BankgarantieGültigBis, "")
        txtVers_Information.Text = loadValue(KUNDE.Info, "")
        txtVers_Saldo._value = loadValue(KUNDE.LfdSaldo, "")
        cbxDeckungsstopp.Checked = KUNDE_ERW.kde_Versicherung_Deckungsstopp
        txtDeckungsstoppDatum._value = loadValue(KUNDE_ERW.kde_Versicherung_DeckungsstoppDatum, "")
        cbxVersicherungUebergeben.Checked = KUNDE_ERW.kde_Versicherung_Uebergeben
        txtVersicherungUebergebenAm._value = loadValue(KUNDE_ERW.kde_Versicherung_UebergebenAm, "")
        cbxAnerkVersFall.Checked = KUNDE_ERW.kde_Versicherung_AnerkennungVersicherungsfall
        txtAnerkVersFallAm._value = loadValue(KUNDE_ERW.kde_Versicherung_AnerkennungVersicherungsfallAm, "")
        txtAnerkVersFallAb._value = loadValue(KUNDE_ERW.kde_Versicherung_AnerkennungVersicherungsfallAb, "")
        txtVersicherungDeckungsquote._value = loadValue(KUNDE_ERW.kde_txtVersicherungDeckungsquote, "")
        cbxNichtVersicherbar.Checked = loadValue(KUNDE_ERW.kde_txtVersicherungNichtVersicherbar, False)
        txtVersicherung_GemeldeterBetrag._value = loadValue(KUNDE_ERW.kde_Versicherung_GemeldeterBetrag, "")
        txtVers_EHNr.Text = loadValue(KUNDE_ERW.kde_txtVersicherungEHNr, "").ToString

        cbxInkassoUebergeben.Checked = KUNDE_ERW.kde_Inkasso_Uebergeben
        txtInkassoUebergebenAm._value = loadValue(KUNDE_ERW.kde_Inkasso_UebergebenAm, "")
        txtInkasso_GemeldeterBetrag._value = KUNDE_ERW.[kde_Inkasso_GemeldeterBetrag]



        cboProvisionStaffelArt.changeItem(loadValue(KUNDE_ERW.kde_Leihgeld_ProvisionPreisstaffel, ""))
        cboProvisionStaffel.changeItem(loadValue(KUNDE_ERW.kde_Leihgeld_Provision, ""))
        txtProvAuftraggeber._value = loadValue(KUNDE_ERW.kde_Leihgeld_ProvisionAuftraggeber, "")

        cbxDepot.Checked = KUNDE_ERW.Depot_Kunde
        cbxAutoFakturierung.Checked = KUNDE_ERW.AutoFakturierung
        cbxVeranlagungskunde.Checked = KUNDE_ERW.Veranlagungskunde

        cbxAPITradeshift.Checked = loadValue(KUNDE_ERW.kde_API_Tradeshift, False)

        cboRechnungSprache._value = loadValue(KUNDE_ERW.kde_Fakturierung_Sprache, "")

        txtVERAG_Schnittstellen_ID.Text = If(KUNDE_ERW.kde_VERAG_INTERFACE_ID, "")
        ' ----- Abfertigungsverbot -----
        ' cboAbfVerb_Kreditlimit.Checked=loadValue(KUNDE.Kreditlimit, "")
        ' txtVers_Kreditlimit._value=loadValue(KUNDE.Kreditlimit vom, "")
        ' txtVers_KreditlimitVon.Checked=loadValue(KUNDE.Kreditlimit vom, "")
        cboAbfVerb_Abfertigungsverbot.Checked = loadValue(KUNDE.Abfertigungsverbot, False)
        txtAbfVerb_AbfertigungsverbotSeit._value = loadValue(KUNDE.Abfertigungsverbot_seit, "")
        rtbAbfVerb_Grund.Text = loadValue(KUNDE.Abfertigungsverbot_Grund, "")
        cboAbfVerb_Rechtsanwalt.Checked = loadValue(KUNDE.Rechtsanwalt, False)
        txtAbfVerb_RechtsanwaltSeit._value = loadValue(KUNDE.Rechtsanwalt_seit, "")

        '   AddHandler txtVers_Kreditlimit.BindingContextChanged, (Sub(sender As Object, e As EventArgs)
        'cboAbfVerb_Kreditlimit.Checked = (sender.text <> ", "")
        '                                                         End Sub)

        ' ----- Offene Posten -----
        txtBonitaet.Text = loadValue(KUNDE.Bonität, "")
        txtBonitaetsDatum._value = loadValue(KUNDE.Bonitätsdatum, "")
        ' txtHoechstkredit._value = loadValue(KUNDE_ERW.kde_Hoechstkredit, "")
        txtHoechstkredit._value = loadValue(KUNDE.Höchstkredit, "")


        ' ----- Bank -----
        txtBank_Blz.Text = loadValue(ADRESSE.BLZ, "")
        txtBank_Kto.Text = loadValue(ADRESSE.KTO, "")

        ' ----- USTV -----
        cboUSt_UstIdNrLand._value = loadValue(ADRESSE.UstIdKz, "")
        txtUSt_UstIdNr.Text = loadValue(ADRESSE.UstIdNr, "")
        txtUSt_UstIdNrGeprueftAm._value = loadValue(ADRESSE.UstIdGeprüft, "")
        txtUSt_Steuernummer.Text = loadValue(ADRESSE.Steuernummer, "")
        txtUSt_GVAngefordertAm._value = loadValue(ADRESSE.UStV_GVAnfDat, "")
        txtUSt_GVAusgestelltAm._value = loadValue(ADRESSE.UStV_GVAusDat, "")
        initUStID()

        ' ----- Sonstiges -----
        cboSonst_Rechnungsdruck._value = loadValue(ADRESSE.Rechnungsdruck, "")
        txtSonst_KdNrIDS.Text = loadValue(ADRESSE.IDSKundenNr, "")
        txtSonst_KdNrWOELFL.Text = loadValue(ADRESSE.WölflKundenNr, "")
        txtSonst_KdNrMSE.Text = loadValue(ADRESSE.MSEKundenNr, "")
        txtSonst_KdNrTelepass.Text = loadValue(ADRESSE.TELEPASS_Kd_Nr, "")
        txtSonst_KdNrPLOSE.Text = loadValue(ADRESSE.PLOSEKundenNr, "")
        txtSonst_KdNrUTA.Text = loadValue(ADRESSE.UTAKundenNr, "")
        txtSonst_KdNrTOBB.Text = loadValue(KUNDE_ERW.kde_TOBB_KundenNr, "")

        cbxSonst_CsvAsfinag.Checked = loadValue(ADRESSE.ASFINAGExportCSV, False)
        cbxSonst_CsvMautbericht.Checked = loadValue(ADRESSE.ExportMautberichtCSV, False)
        cbxSonst_CsvMSE.Checked = loadValue(ADRESSE.MSEExportCSV, False)
        cbxSonst_CsvUTA.Checked = loadValue(ADRESSE.UTAExportCSV, False)


        txtAbf_ZollVmVom.Enabled = cbxAbf_ZollVM.Checked
        txtAbf_LastschriftVon.Enabled = cbxAbf_Lastschrift.Checked
        txtAbf_LastschriftBis.Enabled = cbxAbf_Lastschrift.Checked
        txtAbfVerb_AbfertigungsverbotSeit.Enabled = cboAbfVerb_Abfertigungsverbot.Checked
        txtAbfVerb_RechtsanwaltSeit.Enabled = cboAbfVerb_Rechtsanwalt.Checked



        ' -------- EMAIL --------


        ' UsrCntlKundenAvisoMailBenachrichtigung1.init(KUNDE, KUNDE_ERW) ' es wird beim Speichern KUNDE_ERW gespeichert, wenn zwischendurch UsrCntlKundenAvisoMailBenachrichtigung Änderugnen gemacht hat, sind diese verworfen.

        cbxBesonderheitenNEU.Checked = KUNDE_ERW.kde_BesonderheitenNeu

        cbxVerzolltBei.Checked = KUNDE_ERW.kde_KundeFremdspedition
        cboFremdspedition.Text = If(KUNDE_ERW.kde_verzolltBei, "")
        'cboFremdspedition.changeItem(If(KUNDE_ERW.kde_verzolltBei, ""))
        cbxVerzolltBeiExport.Checked = KUNDE_ERW.kde_KundeFremdspeditionExport
        'cboFremdspeditionExport.changeItem(If(KUNDE_ERW.kde_verzolltBeiExport, ""))
        cboFremdspeditionExport.Text = (If(KUNDE_ERW.kde_verzolltBeiExport, ""))
        '   MsgBox(If(KUNDE_ERW.kde_verzolltBeiExport, ""))
        initBesonderheitenNEU()

        initKdKontakSpeziell()

        Me.Cursor = Cursors.Default
    End Sub


    Function isLeerNothing(o) As Object
        Return IIf(o = "", Nothing, o)
    End Function
    Function isLeerNothingDbl(o, Optional retValue = Nothing) As Object
        If o = "" Then Return retValue
        If IsNumeric(o) Then Return CDbl(o)
        Return retValue
    End Function

    Function loadDataInKdAd() As Boolean

        If ADRESSE.AdressenNr <= 0 Then

            If cboFiliale.Text = "" Then MsgBox("Bitte geben Sie die zuständige Filiale an!") : Return False
            If Not cboKundenkreis._value.Contains("-") Then MsgBox("Bitte geben Sie den Kundenkreis an!") : Return False

            Dim kundenkreis = cboKundenkreis._value
            Select Case VERAG_PROG_ALLGEMEIN.cAllgemein.FIRMA
                Case "UNISPED"
                    If cbxLandKz._value = "A" Then
                        kundenkreis = "2200250-2209999" 'AT-Kundenkreis
                    Else
                        kundenkreis = "2256000-2259990" 'ausl.Kundenkreis
                    End If
            End Select

            Dim s_KdNr = kundenkreis.Split("-")
            Dim kdnr = WunschKdNr 'Wenn Wunschkdnr, sonst neue vergeben:

            If WunschKdNr <= 0 Then

                kdnr = VERAG_PROG_ALLGEMEIN.cAdressen.getHoechsteKdNr(s_KdNr(0), s_KdNr(1)) '+ 1

            End If

            If kdnr > 0 Then
                ' Dim ADRESSE As New VERAG_PROG_ALLGEMEIN.cAdressen(kdnr)
                ADRESSE.AdressenNr = kdnr
                ADRESSE.Eingegeben_am = Now.ToShortDateString
                ADRESSE.Sachbearbeiter = VERAG_PROG_ALLGEMEIN.cAllgemein.USRKURZNAME
                ADRESSE.INIT_NEWKD_DATA()

                ' Dim KUNDE As New VERAG_PROG_ALLGEMEIN.cKunde(kdnr)
                KUNDE.KundenNr = kdnr
                KUNDE.KundenNrZentrale = kdnr
                KUNDE.FilialenNr = cboFiliale._value
                KUNDE.Sachbearbeiter = VERAG_PROG_ALLGEMEIN.cAllgemein.USRKURZNAME
                KUNDE.Eingegeben_am = Now.ToShortDateString
                KUNDE.INIT_NEWKD_DATA()

                KUNDE_ERW.kde_KundenNr = kdnr
            Else
                MsgBox("Err Kd-Vergabe!")
                Return False
            End If

        End If

        ADRESSE.Auswahl = cboAuswahl._value
        ADRESSE.Ordnungsbegriff = isLeerNothing(txtKurzname.Text)

        ADRESSE.Name_1 = isLeerNothing(txtFirmenname1.Text)
        ADRESSE.Name_2 = isLeerNothing(txtFirmenname2.Text)

        ADRESSE.Straße = isLeerNothing(txtStrasse.Text)
        ADRESSE.PLZ = isLeerNothing(txtPlz.Text)
        ADRESSE.Ort = isLeerNothing(txtOrt.Text)
        ADRESSE.LandKz = isLeerNothing(cbxLandKz._value)
        ADRESSE.PLZPF = isLeerNothing(txtPostfachPlz.Text)
        ADRESSE.Postfach = isLeerNothing(txtPostfachOrt.Text)

        ADRESSE.Telefon = isLeerNothing(txtTel.Text)
        ADRESSE.Telefax = isLeerNothing(txtFax.Text)
        ADRESSE.Mobiltelefon = isLeerNothing(txtMobil.Text)
        ADRESSE.E_Mail = isLeerNothing(txtEmail.Text)
        ADRESSE.E_Mail2 = isLeerNothing(txtEmail2.Text)

        ADRESSE.Ansprechpartner = isLeerNothing(txtAnsprechpartner.Text)
        ADRESSE.Anrede = isLeerNothing(txtAnsprechpartnerAnrede.Text)


        '  txtBank.Text=ADRESSE.Bankverbindung"
        ADRESSE.BLZ = isLeerNothing(txtBank_Blz.Text)
        ADRESSE.KTO = isLeerNothing(txtBank_Kto.Text)

        ADRESSE.Eingegeben_am = lblErfassung.Text
        ADRESSE.Geändert_am = Now 'lblAenderung.Text
        ADRESSE.Sachbearbeiter = VERAG_PROG_ALLGEMEIN.cAllgemein.USRKURZNAME 'lblSachbearbeiter.Text


        ' ----- Abfertigung -----
        KUNDE.FiBuSchnittstelle = cbxFiBu.Checked
        KUNDE_ERW.FiBuSchnittstelleLG = cbxFiBuLG.Checked
        KUNDE.FiBuSchnittstelleNr = isLeerNothing(cboFirma._value)
        KUNDE.Besonderheiten = isLeerNothing(rtbAbf_Besonderheiten.Text)
        KUNDE.DokumenteLKWFreigabe = isLeerNothing(rtbLKWFreigabeSenden.Text)
        KUNDE.Einmalige_Abfertigung = cbxAbf_EinmaligeAbfertigung.Checked
        KUNDE.Zollvollmacht = cbxAbf_ZollVM.Checked
        KUNDE.Zollvollmacht_vom = isLeerNothing(txtAbf_ZollVmVom._value)
        KUNDE.Planzahl = isLeerNothing(txtAbf_Planzahl.Text)
        KUNDE.Lastschrift = cbxAbf_Lastschrift.Checked
        KUNDE.Lastschrift_von = isLeerNothing(txtAbf_LastschriftVon._value)
        KUNDE.Lastschrift_bis = isLeerNothing(txtAbf_LastschriftBis._value)

        KUNDE.Fiskal = cbxAbf_Fiskal.Checked
        KUNDE.Ausfuhr = cbxAbf_Ausfuhr.Checked
        KUNDE.Vorkasse = cbxAbf_Vorkasse.Checked
        KUNDE.Rabattstaffel = cbxAbf_Rabattstaffel.Checked
        KUNDE.SVS = cbxAbf_SvsRvs.Checked
        KUNDE.Erste_Abfertigung = isLeerNothing(txtAbf_ErsteAbfertigung.Text)

        KUNDE.Vorlageprovision = isLeerNothingDbl(txtAbf_Vorlageprovision._value, 0)
        KUNDE.KundenNrZentrale = If(txtDebKdNr.Text = "", KUNDE.KundenNr, txtDebKdNr.Text)
        KUNDE.Kreditaufwendungen = isLeerNothingDbl(txtAbf_Kreditaufwendungen._value, 0)
        KUNDE.Bankspesen = isLeerNothingDbl(txtAbf_Bankspesen._value, 0)

        KUNDE.Bankspesen_Mindestbetrag = If(IsNumeric(txtAbf_BankspesenMindestbetrag._value), CDbl(txtAbf_BankspesenMindestbetrag._value), 0)

        KUNDE.Kreditlimit = txtVers_Kreditlimit.Text
        KUNDE.Zahlungsziel = txtAbf_Zahlungsziel.Text

        KUNDE_ERW.Zahlungsziel2 = isLeerNothing(txtAbf_Zahlungsziel2.Text)
        KUNDE_ERW.Zahlungsziel3 = isLeerNothing(txtAbf_Zahlungsziel3.Text)

        KUNDE.Euroeinführung = isLeerNothing(txtAbf_Euroeinführung._value)

        KUNDE.Steuerschlüssel = cboAbf_Steuerschluessel._value
        KUNDE.Währungscode = isLeerNothing(cboAbf_Waehrung._value)
        KUNDE.Sammelrechnung = cboAbf_Sammelrechnung._value

        KUNDE_ERW.kde_FakturierungSR_Details = cbxSammelrechnungBerichtLeistungsdetails.Checked
        KUNDE.EORITIN = isLeerNothing(txtEORI.Text)

        If IsNumeric(txtEORINL.Text) Then
            KUNDE.EORITIN_NL = isLeerNothing(txtEORINL.Text)
        End If


        ' ----- Neutralisierung -----
        KUNDE.Neutralisierung = 0
        If RadioButton1.Checked = True Then KUNDE.Neutralisierung = 0
        If RadioButton2.Checked = True Then KUNDE.Neutralisierung = 1
        If RadioButton3.Checked = True Then KUNDE.Neutralisierung = 2

        ' ----- Avis -----
        KUNDE.Avis = 0
        If RadioButton6.Checked = True Then KUNDE.Avis = 0
        If RadioButton5.Checked = True Then KUNDE.Avis = 1
        If RadioButton4.Checked = True Then KUNDE.Avis = 2
        If RadioButton7.Checked = True Then KUNDE.Avis = 3


        ' ----- Versicherung -----
        KUNDE.Referenznummer = isLeerNothing(txtVers_HermesRefNr.Text)
        'MsgBox(txtVers_Versicherungssumme._value)
        'If txtVers_Versicherungssumme._value <> "" Then
        '        KUNDE.Versicherungssumme = IIf(IsNumeric(txtVers_Versicherungssumme._value), CDbl(txtVers_Versicherungssumme._value), 0)
        'End If
        KUNDE.Versicherungssumme = isLeerNothingDbl(txtVers_Versicherungssumme._value)


        KUNDE.Entscheidung_vom = isLeerNothing(txtVers_VersicherungssummeVon._value)
        KUNDE.Antragssumme = isLeerNothingDbl(txtVers_Antragssumme._value)
        KUNDE.Antrag_vom = isLeerNothing(txtVers_AntragssummeVon._value)
        KUNDE.Kreditlimit = isLeerNothingDbl(txtVers_Kreditlimit._value)
        KUNDE.Kreditlimit_vom = isLeerNothing(txtVers_KreditlimitVon._value)
        KUNDE.BankgarantieBetrag = isLeerNothingDbl(txtVers_Bankgarantiebetrag._value)
        KUNDE.BankgarantieGültigBis = isLeerNothing(txtVers_BankgarantiebetragGueltigBis._value)
        KUNDE.Info = isLeerNothing(txtVers_Information.Text)
        KUNDE.LfdSaldo = isLeerNothingDbl(txtVers_Saldo._value)
        KUNDE_ERW.kde_Versicherung_Deckungsstopp = cbxDeckungsstopp.Checked
        KUNDE_ERW.kde_Versicherung_DeckungsstoppDatum = isLeerNothing(txtDeckungsstoppDatum._value)
        KUNDE_ERW.kde_Versicherung_Uebergeben = cbxVersicherungUebergeben.Checked
        KUNDE_ERW.kde_Versicherung_UebergebenAm = isLeerNothing(txtVersicherungUebergebenAm._value)
        KUNDE_ERW.kde_Versicherung_AnerkennungVersicherungsfall = cbxAnerkVersFall.Checked
        KUNDE_ERW.kde_Versicherung_AnerkennungVersicherungsfallAm = isLeerNothing(txtAnerkVersFallAm._value)
        KUNDE_ERW.kde_Versicherung_AnerkennungVersicherungsfallAb = isLeerNothing(txtAnerkVersFallAb._value)

        KUNDE_ERW.kde_txtVersicherungDeckungsquote = isLeerNothingDbl(txtVersicherungDeckungsquote._value)
        KUNDE_ERW.kde_txtVersicherungNichtVersicherbar = cbxNichtVersicherbar.Checked
        KUNDE_ERW.kde_Versicherung_GemeldeterBetrag = isLeerNothingDbl(txtVersicherung_GemeldeterBetrag._value)
        KUNDE_ERW.kde_txtVersicherungEHNr = isLeerNothing(txtVers_EHNr._value)

        KUNDE_ERW.kde_Inkasso_Uebergeben = cbxInkassoUebergeben.Checked
        KUNDE_ERW.kde_Inkasso_UebergebenAm = isLeerNothing(txtInkassoUebergebenAm._value)
        KUNDE_ERW.kde_Inkasso_GemeldeterBetrag = isLeerNothingDbl(txtInkasso_GemeldeterBetrag._value)

        KUNDE_ERW.kde_Leihgeld_ProvisionPreisstaffel = isLeerNothing(cboProvisionStaffelArt._value)
        KUNDE_ERW.kde_Leihgeld_Provision = isLeerNothing(cboProvisionStaffel._value)
        KUNDE_ERW.kde_Leihgeld_ProvisionAuftraggeber = isLeerNothingDbl(txtProvAuftraggeber._value)

        KUNDE_ERW.Depot_Kunde = cbxDepot.Checked
        KUNDE_ERW.AutoFakturierung = cbxAutoFakturierung.Checked
        KUNDE_ERW.Veranlagungskunde = cbxVeranlagungskunde.Checked
        KUNDE_ERW.kde_VERAG_INTERFACE_ID = isLeerNothing(txtVERAG_Schnittstellen_ID.Text)
        KUNDE_ERW.kde_BesonderheitenNeu = cbxBesonderheitenNEU.Checked

        KUNDE_ERW.kde_API_Tradeshift = cbxAPITradeshift.Checked
        KUNDE_ERW.kde_Fakturierung_Sprache = isLeerNothing(cboRechnungSprache._value)


        ' ----- Fremdsped -----
        KUNDE_ERW.kde_KundeFremdspedition = cbxVerzolltBei.Checked
        If KUNDE_ERW.kde_KundeFremdspedition Then
            KUNDE_ERW.kde_verzolltBei = cboFremdspedition.Text
        Else
            KUNDE_ERW.kde_verzolltBei = Nothing
        End If

        ' ----- Fremdsped -----
        KUNDE_ERW.kde_KundeFremdspeditionExport = cbxVerzolltBeiExport.Checked
        If KUNDE_ERW.kde_KundeFremdspeditionExport Then
            KUNDE_ERW.kde_verzolltBeiExport = cboFremdspeditionExport.Text
        Else
            KUNDE_ERW.kde_verzolltBeiExport = Nothing
        End If


        ' ----- Abfertigungsverbot -----
        KUNDE.Abfertigungsverbot = cboAbfVerb_Abfertigungsverbot.Checked
        KUNDE.Abfertigungsverbot_seit = isLeerNothing(txtAbfVerb_AbfertigungsverbotSeit._value)
        KUNDE.Abfertigungsverbot_Grund = isLeerNothing(rtbAbfVerb_Grund.Text)
        KUNDE.Rechtsanwalt = cboAbfVerb_Rechtsanwalt.Checked()
        KUNDE.Rechtsanwalt_seit = isLeerNothing(txtAbfVerb_RechtsanwaltSeit._value)

        '   AddHandler txtVers_Kreditlimit.BindingContextChanged, (Sub(sender As Object, e As EventArgs
        'cboAbfVerb_Kreditlimit.Checked = (sender.text <> "
        '                                                         End Sub

        ' ----- Offene Posten -----
        KUNDE.Bonität = txtBonitaet.Text
        KUNDE.Bonitätsdatum = isLeerNothing(txtBonitaetsDatum._value)
        KUNDE.Höchstkredit = isLeerNothingDbl(txtHoechstkredit._value)
        'KUNDE. = IIf(txtHoechstkredit._value Is Nothing, 0, CDbl(txtHoechstkredit._value)) 


        ' ----- Bank -----
        ADRESSE.BLZ = isLeerNothing(txtBank_Blz.Text)
        ADRESSE.KTO = isLeerNothing(txtBank_Kto.Text)

        ' ----- USTV -----
        ADRESSE.UstIdKz = isLeerNothing(cboUSt_UstIdNrLand._value)
        ADRESSE.UstIdNr = isLeerNothing(txtUSt_UstIdNr.Text)
        ADRESSE.UstIdGeprüft = isLeerNothing(txtUSt_UstIdNrGeprueftAm._value)
        ADRESSE.Steuernummer = isLeerNothing(txtUSt_Steuernummer.Text)
        ADRESSE.UStV_GVAnfDat = isLeerNothing(txtUSt_GVAngefordertAm._value)
        ADRESSE.UStV_GVAusDat = isLeerNothing(txtUSt_GVAusgestelltAm._value)

        ' ----- Sonstiges -----
        ADRESSE.Rechnungsdruck = isLeerNothing(cboSonst_Rechnungsdruck._value)
        ADRESSE.IDSKundenNr = isLeerNothing(txtSonst_KdNrIDS.Text)
        ADRESSE.WölflKundenNr = isLeerNothing(txtSonst_KdNrWOELFL.Text)
        ADRESSE.MSEKundenNr = isLeerNothing(txtSonst_KdNrMSE.Text)
        ADRESSE.TELEPASS_Kd_Nr = isLeerNothing(txtSonst_KdNrTelepass.Text)
        ADRESSE.PLOSEKundenNr = isLeerNothing(txtSonst_KdNrPLOSE.Text)
        ADRESSE.UTAKundenNr = isLeerNothing(txtSonst_KdNrUTA.Text)
        KUNDE_ERW.kde_TOBB_KundenNr = isLeerNothing(txtSonst_KdNrTOBB.Text)
        ADRESSE.ASFINAGExportCSV = cbxSonst_CsvAsfinag.Checked
        ADRESSE.ExportMautberichtCSV = cbxSonst_CsvMautbericht.Checked
        ADRESSE.MSEExportCSV = cbxSonst_CsvMSE.Checked
        ADRESSE.UTAExportCSV = cbxSonst_CsvUTA.Checked








        UsrCntlKundeFiskaldaten1.loadinClass(FISKAL, KUNDE_ERW)

        Return True
    End Function

    Private Sub btnFirmendatenFormularSpeichern_Click(sender As Object, e As EventArgs) Handles btnFirmendatenFormularSpeichern.Click
        txtERROR.Text = ""

        If Not VERAG_PROG_ALLGEMEIN.cBerechtignunen.CHECK_BERECHTIGUNG_bool("Kundendaten_bearbeiten", Me.FindForm) Then
            MsgBox("Keine Berechtigung!")
            Exit Sub
        End If
        Try

            If loadDataInKdAd() Then


                Dim err = ""
                If Not ADRESSE.VALID(err, KUNDE) Then
                    txtERROR.Text = err : Exit Sub
                End If
                If Not KUNDE.VALID(err) Then
                    txtERROR.Text = err : Exit Sub
                End If

                Dim allowdelete = Not (KUNDE.hasEntry And ADRESSE.hasEntry) ' wenn der Eintrag bereits existiert
                If ADRESSE.SAVE() Then
                    If KUNDE.SAVE() Then
                        If FISKAL.SAVE AndAlso KUNDE_ERW.SAVE Then
                            If usrCntlAufschubkonten.SAVE() Then
                                pnlNeukunde.Visible = False
                                btnUIDPruef.Visible = True
                                RaiseEvent KD_SAVED(ADRESSE.AdressenNr)
                                init(KUNDE.KundenNr)
                            End If
                        End If
                    Else
                        If allowdelete Then sql.doSQL("DELETE FROM Adressen WHERE AdressenNr=" & ADRESSE.AdressenNr, "FMZOLL")
                        txtERROR.Text = "FEHLER beim Eintragen in die Tabelle 'Kunden'!"
                    End If
                Else
                    txtERROR.Text = "FEHLER beim Eintragen in die Tabelle 'Adressen'!"
                End If
            End If
            initBesonderheitenNEU()
        Catch ex As Exception
            MsgBox(ex.Message & ex.StackTrace)
        End Try
    End Sub


    Sub checkEORI_Aufschub()
        If usrCntlAufschubkonten.AUFSCHUB IsNot Nothing Then
            For Each a In usrCntlAufschubkonten.AUFSCHUB
                If a.kdAkto_eori IsNot Nothing AndAlso (a.kdAkto_eori & If(a.kdAkto_eoriNL, "")).replace(" ", "") <> (KUNDE.EORITIN & If(KUNDE.EORITIN_NL, "")).replace(" ", "") Then
                    txtERROR.Text = "EORI in Kundenstamm stimmt nicht mit EORI in Aufschubdaten überein!"
                End If
            Next
        End If
    End Sub

    Private Sub loadControls()
        cboAbf_Waehrung.fillWithSQL("SELECT [Währungscode],[Land] FROM Währungstabelle ORDER BY Währungscode",  , "FMZOLL", False)
        cboAbf_Steuerschluessel.fillWithSQL("SELECT [Steuerschlüssel], isnull(cast(cast( [Steuersatz %]*100 as decimal(2))as varchar(5)) + '% - ' +Steuerbezeichnung,'') as Bezeichnung FROM [Steuertabelle] ORDER BY Steuerschlüssel", False, "FMZOLL", True)


        cboUSt_UstIdNrLand.fillWithSQL(" SELECT [Länderverzeichnis für die Außenhandelsstatistik].LandKz,[Länderverzeichnis für die Außenhandelsstatistik].LandBez  " &
                                      " FROM [Länderverzeichnis für die Außenhandelsstatistik] LEFT JOIN [Währungstabelle] ON [Länderverzeichnis für die Außenhandelsstatistik].LandNr = [Währungstabelle].[Währungsschlüssel] " &
                                      " WHERE ([Währungstabelle].[MitgliedslandEU] = 1) " &
                                      " ORDER BY [Länderverzeichnis für die Außenhandelsstatistik].LandKz ", , "FMZOLL", True)
        '  cbxLandKz.fillWithSQL(" SELECT [Länderverzeichnis für die Außenhandelsstatistik].LandKz,[Länderverzeichnis für die Außenhandelsstatistik].LandBez  " & _
        '                               " FROM [Länderverzeichnis für die Außenhandelsstatistik] LEFT JOIN [Währungstabelle] ON [Länderverzeichnis für die Außenhandelsstatistik].LandNr = [Währungstabelle].[Währungsschlüssel] " & _
        '                             " WHERE [Währungstabelle].[MitgliedslandEU] = 1 " & _
        '                             " ORDER BY [Länderverzeichnis für die Außenhandelsstatistik].LandKz ", , "FMZOLL", True)
        'cbxLandKz.fillWithSQL(" select distinct adressen.landkz, Währungstabelle.Land  from adressen inner join Währungstabelle  ON Währungstabelle.LandKz=adressen.LandKz where adressen.landkz is not null  order by LandKz", , "FMZOLL", True)
        cbxLandKz.fillWithSQL(" select distinct landkz, Währungstabelle.Land  from   Währungstabelle  where landkz is not null  order by LandKz", , "FMZOLL", True)


        cboRechnungSprache.Items.Clear()
        cboRechnungSprache.Items.Add(New VERAG_PROG_ALLGEMEIN.MyListItem("Deutsch", "DE"))
        cboRechnungSprache.Items.Add(New VERAG_PROG_ALLGEMEIN.MyListItem("Englisch", "EN"))
        cboRechnungSprache.changeItem(0)

        cboProvisionStaffelArt.fillWithSQL("SELECT [PreislistenNr],[PreislistenBez]  FROM [VERAG].[dbo].[tblPreislisten] WHERE Art='E' ORDER BY Preislistenbez", False, "FMZOLL", True)
        cboFirma.fillWithSQL("SELECT tblFirma.Firma_ID, tblFirma.Firma_Bez FROM tblFirma ORDER BY tblFirma.Firma_ID",  , "FMZOLL", True)

        cboFiliale.fillWithSQL("SELECT [FilialenNr],[Grenzstelle] FROM [Filialen] ORDER BY FilialenNr", True, "FMZOLL")


        Select Case VERAG_PROG_ALLGEMEIN.cAllgemein.FIRMA
            Case "IMEX"
                cboFiliale.changeItem("5501")
            Case "UNISPED"
                cboFiliale.changeItem("5601")
            Case "AMBAR"
                cboFiliale.changeItem("5701")
                cboFiliale.changeItem("5701")
            Case "ATILLA"
                cboFiliale.changeItem("4801")
            Case Else
                cboFiliale.changeItem("4803")
        End Select


        cboAuswahl.Items.Clear()
        cboAuswahl.Items.Add(New VERAG_PROG_ALLGEMEIN.MyListItem("AKTIV", "A"))
        cboAuswahl.Items.Add(New VERAG_PROG_ALLGEMEIN.MyListItem("INAKTIV", "I"))
        cboAuswahl.changeItem("A")


        cboSonst_Rechnungsdruck.Items.Clear()
        cboSonst_Rechnungsdruck.Items.Add(New VERAG_PROG_ALLGEMEIN.MyListItem("Formular", "0"))
        cboSonst_Rechnungsdruck.Items.Add(New VERAG_PROG_ALLGEMEIN.MyListItem("Fax", "1"))
        cboSonst_Rechnungsdruck.Items.Add(New VERAG_PROG_ALLGEMEIN.MyListItem("E-Mail", "2"))

        cboAbf_Sammelrechnung.Items.Clear()
        cboAbf_Sammelrechnung.Items.Add(New VERAG_PROG_ALLGEMEIN.MyListItem("0 - nein", "0"))
        cboAbf_Sammelrechnung.Items.Add(New VERAG_PROG_ALLGEMEIN.MyListItem("1 - täglich", "1"))
        cboAbf_Sammelrechnung.Items.Add(New VERAG_PROG_ALLGEMEIN.MyListItem("2 - halbmonatlich", "2"))
        cboAbf_Sammelrechnung.Items.Add(New VERAG_PROG_ALLGEMEIN.MyListItem("3 - monatlich", "3"))
        cboAbf_Sammelrechnung.Items.Add(New VERAG_PROG_ALLGEMEIN.MyListItem("4 - Dekade", "4"))
        cboAbf_Sammelrechnung.Items.Add(New VERAG_PROG_ALLGEMEIN.MyListItem("5 - wöchentlich", "5"))
        cboAbf_Sammelrechnung.Items.Add(New VERAG_PROG_ALLGEMEIN.MyListItem("6 - Maut/Diesel", "6"))
        cboAbf_Sammelrechnung.Items.Add(New VERAG_PROG_ALLGEMEIN.MyListItem("7 - LKW", "7"))

    End Sub

    Private Sub cboProvisionStaffelArt_SelectedIndexChanged(sender As Object, e As EventArgs) Handles cboProvisionStaffelArt.SelectedIndexChanged
        cboProvisionStaffel.Items.Clear()
        If IsNumeric(cboProvisionStaffelArt._value) Then
            cboProvisionStaffel.fillWithSQL("SELECT [PreislistenPos],[Leistungsbeschreibung] FROM [VERAG].[dbo].[tblPreislistenpositionen]  where LeistungsNr IN (357,355) AND PreislistenNr='" & cboProvisionStaffelArt._value & "'", False, "FMZOLL", True)
        End If

    End Sub

    Private Sub txtUSt_UstIdNr_TextChanged(sender As Object, e As EventArgs) Handles txtUSt_UstIdNr.TextChanged, txtUSt_UstIdNrGeprueftAm.TextChanged, cboUSt_UstIdNrLand.SelectedIndexChanged
        initUStID()
    End Sub

    Sub initUStID()
        txtUStID.Text = cboUSt_UstIdNrLand._value & txtUSt_UstIdNr.Text
        txtUStIDGeprueftAm.Text = txtUSt_UstIdNrGeprueftAm.Text
    End Sub



    Private Sub txtUSt_Steuernummer_TextChanged(sender As Object, e As EventArgs) Handles txtUSt_Steuernummer.TextChanged
        txtSteuernummer.Text = txtUSt_Steuernummer.Text
    End Sub

    Private Sub tbcntrDetails_MouseWheel(sender As Object, e As MouseEventArgs) Handles tbcntrDetails.MouseWheel

    End Sub



    Private Sub TabControl2_SelectedIndexChanged(sender As Object, e As EventArgs) Handles tbcntrDetails.SelectedIndexChanged
        If KUNDE Is Nothing OrElse KUNDE.KundenNr <= 0 Then Exit Sub

        If tbcntrDetails.SelectedTab Is tbUmsatz Then
            With dgvUmsatzbericht
                .DataSource = sql.loadDgvBySql("SELECT [KundenNr],[Jahr],[steuerpflichtig],[steuerfrei],[Nettoumsatz],[MwSt],[Bruttoumsatz],[Währung],[Rechnungen],[Gutschriften],[Datum],[Nummer]" &
                                                               " FROM [tblKundenumsatz] " &
                                                               " WHERE [KundenNr]='" & KUNDE.KundenNr & "' ORDER BY Jahr DESC", "FMZOLL")
                .Columns(0).Visible = False
                .Columns(11).Visible = False
                .Columns(1).Width = 40
                .Columns(1).DefaultCellStyle.Alignment = DataGridViewContentAlignment.TopCenter
                .Columns(2).Width = 75
                .Columns(2).DefaultCellStyle.Format = "N2"
                .Columns(2).DefaultCellStyle.Alignment = DataGridViewContentAlignment.TopRight
                .Columns(3).Width = 75
                .Columns(3).DefaultCellStyle.Format = "N2"
                .Columns(3).DefaultCellStyle.Alignment = DataGridViewContentAlignment.TopRight
                .Columns(4).Width = 75
                .Columns(4).DefaultCellStyle.Format = "N2"
                .Columns(4).DefaultCellStyle.Alignment = DataGridViewContentAlignment.TopRight
                .Columns(5).Width = 55
                .Columns(5).DefaultCellStyle.Format = "N2"
                .Columns(5).DefaultCellStyle.Alignment = DataGridViewContentAlignment.TopRight
                .Columns(6).Width = 75
                .Columns(6).DefaultCellStyle.Format = "N2"
                .Columns(6).DefaultCellStyle.Alignment = DataGridViewContentAlignment.TopRight
                .Columns(7).Width = 60
                .Columns(7).DefaultCellStyle.Alignment = DataGridViewContentAlignment.TopCenter
                .Columns(8).Width = 55
                .Columns(8).DefaultCellStyle.Alignment = DataGridViewContentAlignment.TopCenter
                .Columns(8).HeaderText = "Rechng."
                .Columns(9).Width = 53
                .Columns(9).DefaultCellStyle.Alignment = DataGridViewContentAlignment.TopCenter
                .Columns(9).HeaderText = "Gutschr."
                .Columns(10).MinimumWidth = 65
                .Columns(10).AutoSizeMode = DataGridViewAutoSizeColumnMode.Fill
                .Columns(10).DefaultCellStyle.Alignment = DataGridViewContentAlignment.TopCenter

                ' If .RowCount > 0 Then
                'txtUmsatzJahr.Text = String.Format("{0:n}", .Rows(0).Cells("Nettoumsatz").Value)
                '  Label29.Text = "Umsatz " & .Rows(0).Cells("Jahr").Value & ":"
                '  Else
                '  txtUmsatzJahr.Text = ""
                ' End If
            End With

        End If
        If tbcntrDetails.SelectedTab Is tbOP Then
            With dgvOffenePosten
                .DataSource = sql.loadDgvBySql("SELECT [Kontonummer] as KdNr,[Belegdatum] as Datum,[Belegnummer] as Nummer,[Bruttobetrag] as Betrag,[Gesamtausstand] as [OP-Saldo],[Waehrung] as Währung,[KumSaldoEUR] ,[Buchungstext] as Referenz " &
                                                               " FROM [Offene Posten] " &
                                                               " WHERE [Kontonummer]='" & KUNDE.KundenNr & "' ORDER BY Belegdatum DESC", "FMZOLL")
                .Columns(0).Visible = False

                .Columns(1).Width = 65
                .Columns(1).DefaultCellStyle.Alignment = DataGridViewContentAlignment.TopCenter

                .Columns(3).Width = 75
                .Columns(3).DefaultCellStyle.Format = "N2"
                .Columns(3).DefaultCellStyle.Alignment = DataGridViewContentAlignment.TopRight

                .Columns(4).Width = 75
                .Columns(4).DefaultCellStyle.Format = "N2"
                .Columns(4).DefaultCellStyle.Alignment = DataGridViewContentAlignment.TopRight

                .Columns(5).Width = 60
                .Columns(5).DefaultCellStyle.Alignment = DataGridViewContentAlignment.TopCenter

                .Columns(6).Width = 80
                .Columns(6).DefaultCellStyle.Format = "N2"
                .Columns(6).DefaultCellStyle.Alignment = DataGridViewContentAlignment.TopRight

                .Columns(7).AutoSizeMode = DataGridViewAutoSizeColumnMode.Fill

                '   If .RowCount > 0 Then
                '  txtOffenePosten.Text = String.Format("C2", .Rows(0).Cells("KumSaldoEUR").Value)
                ' txtOffenePosten.Text = String.Format("{0:n}", .Rows(0).Cells("KumSaldoEUR").Value)
                'Else
                ' txtOffenePosten.Text = ""
                ' End If
            End With
        End If

        If tbcntrDetails.SelectedTab Is tbBank Then
            With dgvKreditkarten
                .DataSource = sql.loadDgvBySql("SELECT [AdressenNr],KartenNr,Kartenfreischaltungsdatum as [Freisch.Dat.],CAST(Kartenablaufmonat AS varchar(2)) + '/' + CAST(Kartenablaufjahr  AS varchar(2))as [Ablauf-Dat.],Kartensperre as Sperre,Kartensperrdatum as [Sperrdat.],NeueKartenNr,NeueKartenNrGemeldet as Gemeldet" &
                                                               " FROM [Kreditkarten] " &
                                                               " WHERE [AdressenNr]='" & KUNDE.KundenNr & "' ORDER BY Kartensperre, Kartenablaufjahr DESC,Kartenablaufmonat DESC", "FMZOLL")
                .Columns(0).Visible = False

                .Columns(1).MinimumWidth = 120
                .Columns(1).AutoSizeMode = DataGridViewAutoSizeColumnMode.Fill

                .Columns(2).Width = 70
                '.Columns(3).DefaultCellStyle.Format = "N2"
                .Columns(2).DefaultCellStyle.Alignment = DataGridViewContentAlignment.TopCenter
                .Columns(3).Width = 70
                .Columns(3).DefaultCellStyle.Alignment = DataGridViewContentAlignment.TopCenter
                .Columns(4).Width = 50
                .Columns(4).DefaultCellStyle.Alignment = DataGridViewContentAlignment.TopCenter
                .Columns(5).Width = 70
                .Columns(5).DefaultCellStyle.Alignment = DataGridViewContentAlignment.TopCenter
                .Columns(6).Width = 160
                .Columns(7).Width = 70
            End With

        End If

        If tbcntrDetails.SelectedTab Is tbUmsatzsteuer Then
            With dgvUstv_LaenderUndSteuernummern

                cBinding_dgvUStV.initBinding(" SELECT  [AdressenNr],LandNr,[StNrFürRückerstattungUSt],[StNrGültigkeitsdatum] ,[UStV],[VertretungsvollmachtAusgestelltAm],[VertretungsvollmachtErhaltenAm],[AuszahlungsvollmachtAusgestelltAm],[AuszahlungsvollmachtErhaltenAm] ,[Bemerkung] " &
                                               " FROM [tblSteuernummern] " &
                                               " WHERE AdressenNr = '" & KUNDE.KundenNr & "'  ", "tblSteuernummern")


                AddHandler btnUStVAendSpeichern.Click,
                    Sub(send As Object, evnt As EventArgs)
                        If cBinding_dgvUStV.updateBinding() Then
                            send.Enabled = False
                        End If
                    End Sub

                AddHandler cBinding_dgvUStV.bindingdataTable.ColumnChanged,
                  Sub(send As Object, evnt As EventArgs)
                      btnUStVAendSpeichern.Enabled = True
                  End Sub

                AddHandler .UserDeletedRow,
                          Sub(send As Object, evnt As DataGridViewRowEventArgs)
                              btnUStVAendSpeichern.Enabled = True
                          End Sub


                .DataSource = cBinding_dgvUStV.bindingdataTable

                FUNC.dgvCellToCbo(dgvUstv_LaenderUndSteuernummern, 1, "Land", "LandNr", "SELECT LandNr, LandBez  FROM [Länderverzeichnis für die Außenhandelsstatistik] ORDER BY LandBez ", "FMZOLL")


                .DataSource.Columns("AdressenNr").DefaultValue = KUNDE.KundenNr
                .DataSource.Columns("UStV").DefaultValue = False

                .Columns(0).Visible = False

                .Columns(1).Width = 120
                .Columns(1).HeaderText = "Land"
                '     .Columns(1).CellType = DataGridViewComboBoxColumn
                .Columns(2).Width = 120
                .Columns(2).HeaderText = "Steuernummer"
                '     .Columns(2).AutoSizeMode = DataGridViewAutoSizeColumnMode.Fill
                .Columns(3).Width = 75
                .Columns(3).HeaderText = "gültig bis"
                .Columns(4).Width = 40

                .Columns(5).Width = 80
                .Columns(5).HeaderText = "Vetret.-VM" & vbNewLine & "ausgestellt am"
                .Columns(6).Width = 80
                .Columns(6).HeaderText = "Vetret.-VM" & vbNewLine & "erhalten am"
                .Columns(7).Width = 80
                .Columns(7).HeaderText = "Auszzahl.-VM" & vbNewLine & "ausgestellt am"
                .Columns(8).Width = 80
                .Columns(8).HeaderText = "Auszzahl.-VM" & vbNewLine & "erhalten am"
                .Columns(9).Width = 200

            End With
        End If

        If tbcntrDetails.SelectedTab Is tbSonstiges Then
            With dgvSonst_IDSKunden

                cBinding_dgvSonst_IDSKunden.initBinding(" SELECT  [KdNrVERAG],[CustomerCode],[KdNrAlt],[Zeitstempel],[Sachbearbeiter] " &
                                               " FROM [tbl_IDS_Kunden] " &
                                               " WHERE KdNrVERAG = '" & KUNDE.KundenNr & "'  ", "tbl_IDS_Kunden")

                AddHandler btnSonstAendSpeichern.Click,
                         Sub(send As Object, evnt As EventArgs)
                             If cBinding_dgvSonst_IDSKunden.updateBinding() Then
                                 send.Enabled = False
                             End If
                         End Sub

                AddHandler cBinding_dgvSonst_IDSKunden.bindingdataTable.ColumnChanged,
                          Sub(send As Object, evnt As EventArgs)
                              btnSonstAendSpeichern.Enabled = True
                          End Sub

                AddHandler .UserDeletedRow,
                          Sub(send As Object, evnt As DataGridViewRowEventArgs)
                              btnSonstAendSpeichern.Enabled = True

                          End Sub



                .DataSource = cBinding_dgvSonst_IDSKunden.bindingdataTable

                '  dgvCellToCbo(dgvUstv_LaenderUndSteuernummern, "Land", "LandNr", "SELECT LandNr, LandBez  FROM [VERAG].[dbo].[Länderverzeichnis für die Außenhandelsstatistik] ORDER BY LandBez ")


                .DataSource.Columns("KdNrVERAG").DefaultValue = KUNDE.KundenNr
                .DataSource.Columns("Zeitstempel").DefaultValue = Now
                .DataSource.Columns("Sachbearbeiter").DefaultValue = VERAG_PROG_ALLGEMEIN.cAllgemein.USRKURZNAME

                .Columns(0).Visible = False
                .Columns(1).HeaderText = "IDS-Kunden-Nummer"

                .Columns(2).ReadOnly = False
                .Columns(3).ReadOnly = False
                .Columns(4).ReadOnly = False
                .Columns(4).AutoSizeMode = DataGridViewAutoSizeColumnMode.Fill
            End With
        End If


    End Sub
    Dim cBinding_dgvUStV As New cBinding("FMZOLL")
    Dim cBinding_dgvSonst_IDSKunden As New cBinding("FMZOLL")



    Private Sub dgvUmsatzbericht_CellFormatting(ByVal sender As Object, ByVal e As System.Windows.Forms.DataGridViewCellFormattingEventArgs)

        If e.ColumnIndex = 1 Or e.ColumnIndex = 2 Or e.ColumnIndex = 3 Or e.ColumnIndex = 4 Or e.ColumnIndex = 5 Or e.ColumnIndex = 6 Then
            If CInt(e.Value) < 0 Then
                e.CellStyle.ForeColor = Color.Red
                'ElseIf CInt(e.Value) >= 0 Then
            End If
        End If
    End Sub
    Private Sub dgvOffenePosten_CellFormatting(ByVal sender As Object, ByVal e As System.Windows.Forms.DataGridViewCellFormattingEventArgs)

        If e.ColumnIndex = 3 Or e.ColumnIndex = 4 Or e.ColumnIndex = 6 Then
            If CInt(e.Value) < 0 Then
                e.CellStyle.ForeColor = Color.Red
            End If
        End If
    End Sub

    Private Sub dgvKreditkarten_CellFormatting(ByVal sender As Object, ByVal e As System.Windows.Forms.DataGridViewCellFormattingEventArgs)

        If e.ColumnIndex = 4 Then
            If Not e.Value Is Nothing AndAlso IsNumeric(e.Value) AndAlso e.Value > 0 Then
                sender.Rows(e.RowIndex).DefaultCellStyle.ForeColor = Color.Red
            End If
        End If
    End Sub

    Private Sub usrcntlKundeBearbeitenFull_Load(sender As Object, e As EventArgs) Handles Me.Load
        Me.tbcntrDetails.Controls.Remove(tbUmsatz)
        Me.tbcntrDetails.Controls.Remove(tbOP)

        If Not VERAG_PROG_ALLGEMEIN.cBerechtignunen.CHECK_BERECHTIGUNG_bool("Kundendaten_bearbeiten", Me.FindForm) Then
            btnFirmendatenFormularSpeichern.Enabled = False
        End If

        If VERAG_PROG_ALLGEMEIN.cBerechtignunen.CHECK_BERECHTIGUNG_bool("DAKOSY_KD_Uebertragen", "SDL") Then
            Button1.Visible = True
            Label29.Visible = True
            Label28.Visible = True
        End If

        If VERAG_PROG_ALLGEMEIN.cBerechtignunen.CHECK_BERECHTIGUNG_bool("SYSKA_UPDATE", "SDL") Then
            Label97.Visible = True
            Button4.Visible = True
            CheckBox1.Visible = True
        End If
        tbcntrAbf.TabPages.Remove(TabPage4)

        If Filiale > 0 Then
            cboFiliale.changeItem(Filiale)
        End If

        If VERAG_PROG_ALLGEMEIN.cAllgemein.USRKURZNAME = "DANIEL" Then
            Button5.Visible = True
        Else
            Button5.Visible = False
        End If

    End Sub


    Private Sub cbxDeckungsstopp_CheckedChanged(sender As Object, e As EventArgs) Handles cbxDeckungsstopp.CheckedChanged
        txtDeckungsstoppDatum.Enabled = cbxDeckungsstopp.Checked
        If cbxDeckungsstopp.Checked Then
            txtDeckungsstoppDatum._value = Now.ToShortDateString
        Else
            txtDeckungsstoppDatum._value = ""
        End If
    End Sub

    Private Sub Button1_Click(sender As Object, e As EventArgs)
        tbcntrDetails.TabPages.Add(tbOP)
        tbcntrDetails.TabPages.Add(tbUmsatz)
    End Sub
    Private Sub Button5_Click(sender As Object, e As EventArgs)
        tbcntrDetails.TabPages.Remove(tbOP)
        tbcntrDetails.TabPages.Remove(tbUmsatz)
    End Sub

    Private Sub cbxAbf_ZollVM_CheckedChanged(sender As Object, e As EventArgs) Handles cbxAbf_ZollVM.CheckedChanged
        If Not sender.Checked Then txtAbf_ZollVmVom.Text = ""
        txtAbf_ZollVmVom.Enabled = sender.Checked

    End Sub

    Private Sub cbxAbf_Lastschrift_CheckedChanged(sender As Object, e As EventArgs) Handles cbxAbf_Lastschrift.CheckedChanged
        If Not sender.Checked Then txtAbf_LastschriftVon.Text = "" : txtAbf_LastschriftBis.Text = ""
        txtAbf_LastschriftVon.Enabled = sender.Checked
        txtAbf_LastschriftBis.Enabled = sender.Checked

    End Sub

    Private Sub cboAbfVerb_Abfertigungsverbot_CheckedChanged(sender As Object, e As EventArgs) Handles cboAbfVerb_Abfertigungsverbot.CheckedChanged
        txtAbfVerb_AbfertigungsverbotSeit.Enabled = sender.Checked

    End Sub

    Private Sub cboAbfVerb_Rechtsanwalt_CheckedChanged(sender As Object, e As EventArgs) Handles cboAbfVerb_Rechtsanwalt.CheckedChanged
        txtAbfVerb_RechtsanwaltSeit.Enabled = sender.Checked

    End Sub

    Private Sub cbxVersicherungUebergeben_CheckedChanged(sender As Object, e As EventArgs) Handles cbxVersicherungUebergeben.CheckedChanged
        txtVersicherungUebergebenAm.Enabled = cbxVersicherungUebergeben.Checked
        If cbxVersicherungUebergeben.Checked Then
            txtVersicherungUebergebenAm._value = Now.ToShortDateString
            txtVersUebergebenOPSaldo.Text = sql.getValueTxtBySql("Select sum(Gesamtausstand) FROM [VERAG].[dbo].[Offene Posten]  where Kontonummer=100009 /*group by firma_id*/", "FMZOLL")

        Else
            txtVersicherungUebergebenAm._value = ""
        End If
    End Sub

    Private Sub cbxAnerkVersFall_CheckedChanged(sender As Object, e As EventArgs) Handles cbxAnerkVersFall.CheckedChanged
        txtAnerkVersFallAm.Enabled = cbxAnerkVersFall.Checked
        '  txtAnerkVersFallAb.Enabled = cbxAnerkVersFall.Checked
        If cbxAnerkVersFall.Checked Then
            txtAnerkVersFallAm._value = Now.ToShortDateString
        Else
            txtAnerkVersFallAm._value = ""
        End If
    End Sub

    Private Sub cbxNichtVersicherbar_CheckedChanged(sender As Object, e As EventArgs) Handles cbxNichtVersicherbar.CheckedChanged
        If cbxNichtVersicherbar.Checked Then
            cbxNichtVersicherbar.Font = New Font(Me.Font, FontStyle.Bold)
            cbxNichtVersicherbar.ForeColor = Color.Red
        Else
            cbxNichtVersicherbar.Font = New Font(Me.Font, FontStyle.Regular)
            cbxNichtVersicherbar.ForeColor = Color.Black
        End If
    End Sub

    Private Sub Button1_Click_1(sender As Object, e As EventArgs) Handles Button1.Click
        If VERAG_PROG_ALLGEMEIN.cBerechtignunen.CHECK_BERECHTIGUNG_bool("DAKOSY_KD_Uebertragen", "SDL") Then
            If If(KUNDE.EORITIN, "") = "" Then
                MsgBox("Bitte EORI-Nr. eintragen!")
                Exit Sub
            End If
            If DAKOSY_Worker.cDakosyFunftions.sendDataByKdNr(KUNDE.KundenNr) Then ' Application.StartupPath & "\Dakosy_SEND\")
                init(KUNDE.KundenNr)
            End If
        End If
    End Sub

    Private Sub CheckBox1_CheckedChanged(sender As Object, e As EventArgs) Handles cbxDepot.CheckedChanged
        Label36.Visible = sender.checked
    End Sub

    Sub initKdKontakSpeziell()
        'TabPage11.Controls.Clear() 
        ucKundenKontakte.init(KUNDE.KundenNr)
    End Sub

    Private Sub cboAuswahl_SelectedIndexChanged(sender As Object, e As EventArgs) Handles cboAuswahl.SelectedIndexChanged
        If cboAuswahl._value = "A" Then
            cboAuswahl.BackColor = Color.FromArgb(224, 224, 224)
            cboAuswahl.ForeColor = Color.Black
        Else
            cboAuswahl.BackColor = Color.Red
            cboAuswahl.ForeColor = Color.White
        End If
        btnFirmendatenFormularSpeichern.Focus()    'Damit bg nicht selectiert
    End Sub

    Private Sub Label80_Click(sender As Object, e As EventArgs) Handles Label80.Click

    End Sub

    Private Sub ComboBox2_SelectedIndexChanged(sender As Object, e As EventArgs) Handles cboKundenkreis.SelectedIndexChanged

        If ADRESSE Is Nothing OrElse ADRESSE.AdressenNr <= 0 Then

            Select Case cboKundenkreis._value
                Case "1080000-1099990" : cbxFiBu.Checked = True : cboFirma.changeItem("20") : cboFiliale.changeItem("5501")
                Case "2000000-2099990" : cbxFiBu.Checked = True : cboFirma.changeItem("21") : cboFiliale.changeItem("5601")
                Case "2800000-2899999" : cbxFiBu.Checked = True : cboFirma.changeItem("26") : cboFiliale.changeItem("7003")
                Case "3000000-3099990" : cbxFiBu.Checked = True : cboFirma.changeItem("24") : cboFiliale.changeItem("5701")
                Case "4001000-4099999" : cbxFiBu.Checked = True : cboFirma.changeItem("26") : cboFiliale.changeItem("7002")
                Case "728000-799999" : cbxFiBu.Checked = True : cboFirma.changeItem("1") : cboFiliale.changeItem("4803")
                Case "30000-49999" : cbxFiBu.Checked = True : cboFirma.changeItem("11") : cboFiliale.changeItem("4803")
                Case "500000-599999" : cbxFiBu.Checked = True : cboFirma.changeItem("1") : cboFiliale.changeItem("4803")
                Case "900000-999999" : cbxFiBu.Checked = False : cboFirma.changeItem("1") : cboFiliale.changeItem("4803")
                Case "800000-899999" : cbxFiBu.Checked = False : cboFirma.changeItem("1") : cboFiliale.changeItem("4803")
                Case "100000-199999" : cbxFiBu.Checked = False : cboFirma.changeItem("1") : cboFiliale.changeItem("4803")
                Case "9900000-9999999" : cbxFiBu.Checked = False : cboFirma.changeItem("17") : cboFiliale.changeItem("5801")

            End Select
        End If

        Select Case VERAG_PROG_ALLGEMEIN.cAllgemein.FIRMA
            Case "VERAG"
                If cboKundenkreis._value = "100000-199999" Then
                    cboFiliale.changeItem("4801")
                ElseIf cboKundenkreis._value = "1000000-1099999" Then
                    cboFiliale.changeItem("5501")
                Else
                    If cboFiliale._value = "4801" Then cboFiliale.changeItem("4803")
                End If

        End Select
    End Sub

    Dim selCheck = True
    Private Sub cboFirma_SelectedIndexChanged(sender As Object, e As EventArgs) Handles cboFirma.SelectedIndexChanged
        cbxFiBu.Enabled = cboFiliale._value <> ""
        cbxFiBuLG.Enabled = cboFiliale._value <> ""
        If selCheck Then
            '  cbxFiBu.Checked = (cboFirma._value <> "") --> unterschiedlich
        End If
    End Sub

    Private Sub txtKurzname_Leave(sender As Object, e As EventArgs) Handles txtKurzname.Leave
        If txtKurzname.Text.Contains(";") Then
            Dim s = txtKurzname.Text.Split(";")
            If txtFirmenname1.Text = "" Then txtFirmenname1.Text = CutLen(s(0), txtFirmenname1.MaxLength)
            If txtOrt.Text = "" Then txtOrt.Text = CutLen(s(1), txtOrt.MaxLength)
        End If
    End Sub

    Function CutLen(s As String, len As Integer)
        If s.Length > len Then
            s = s.Substring(0, len)
        End If
        Return s
    End Function

    Private Sub cbxFiBu_CheckedChanged(sender As Object, e As EventArgs) Handles cbxFiBu.CheckedChanged, cbxFiBuLG.CheckedChanged
        If sender.checked Then
            ' Select Case VERAG_PROG_ALLGEMEIN.cAllgemein.FIRMA
            Dim FirmaTmp = VERAG_PROG_ALLGEMEIN.cAllgemein.FIRMA
            If KUNDE IsNot Nothing And KUNDE.hasEntry Then
                FirmaTmp = VERAG_PROG_ALLGEMEIN.cAllgemein.getFirmaFromFiliale2(KUNDE.FilialenNr, False)
            End If
            Select Case FirmaTmp
                Case "IMEX"
                    If cboFiliale._value = "5501" Then
                        selCheck = False
                        cboFirma._value = 20
                        selCheck = True
                    End If
                Case "AMBAR"
                    If cboFiliale._value = "5701" Then
                        selCheck = False
                        cboFirma._value = 24
                        selCheck = True
                    End If
                Case "FRONTOFFICE"
                    If cboFiliale._value = "5801" Then
                        selCheck = False
                        cboFirma._value = 17
                        selCheck = True
                    End If
            End Select
        End If
    End Sub

    Private Sub cbxInkassoUebergeben_CheckedChanged(sender As Object, e As EventArgs) Handles cbxInkassoUebergeben.CheckedChanged
        txtInkassoUebergebenAm.Enabled = cbxInkassoUebergeben.Checked
        If cbxInkassoUebergeben.Checked Then
            txtInkassoUebergebenAm._value = Now.ToShortDateString
        Else
            txtInkassoUebergebenAm._value = ""
        End If
    End Sub

    Private Sub cbxBesonderheitenNEU_CheckedChanged(sender As Object, e As EventArgs) Handles cbxBesonderheitenNEU.Click
        initBesonderheitenNEU()
    End Sub

    Sub initBesonderheitenNEU()

        lblHinweisKdNr.Visible = False
        If cbxBesonderheitenNEU.Checked Then

            UsrCntlKundenBesonderheiten1.Size = rtbAbf_Besonderheiten.Size
            If KUNDE.KundenNr > 0 Then
                UsrCntlKundenBesonderheiten1.init(KUNDE.KundenNr)
                UsrCntlKundenBesonderheiten1.Visible = True
                UsrCntlKundenBesonderheiten1.Enabled = True
            Else
                UsrCntlKundenBesonderheiten1.Visible = True
                UsrCntlKundenBesonderheiten1.Enabled = False
                lblHinweisKdNr.Visible = True
            End If
        Else
            UsrCntlKundenBesonderheiten1.Visible = False
        End If
        rtbAbf_Besonderheiten.Visible = Not UsrCntlKundenBesonderheiten1.Visible

    End Sub

    Private Sub cbxVerzolltBei_CheckedChanged(sender As Object, e As EventArgs) Handles cbxVerzolltBei.CheckedChanged
        cboFremdspedition.Enabled = cbxVerzolltBei.Checked
    End Sub

    Private Sub cbxVerzolltBeiExport_CheckedChanged(sender As Object, e As EventArgs) Handles cbxVerzolltBeiExport.CheckedChanged
        cboFremdspeditionExport.Enabled = cbxVerzolltBeiExport.Checked
    End Sub

    Private Sub Button2_Click(sender As Object, e As EventArgs) Handles Button2.Click
        Dim WunschKdnr = InputBox("Bitte geben Sie die gewünschte Kundennummer ein:")

        If WunschKdnr <> "" Then
            If Not IsNumeric(WunschKdnr) Then MsgBox("Falsches Format!") : Exit Sub
            If CInt(WunschKdnr) < 100000 Or CInt(WunschKdnr) > 9999999 Then MsgBox("Falsches Format!") : Exit Sub

            Select Case VERAG_PROG_ALLGEMEIN.cAllgemein.FIRMA
                Case "IMEX"
                    If CInt(WunschKdnr) < 1000000 Or CInt(WunschKdnr) > 1999999 Then MsgBox("Falscher Nummernkreis!") : Exit Sub
                Case "UNISPED"
                    If CInt(WunschKdnr) < 2000000 Or CInt(WunschKdnr) > 2999999 Then MsgBox("Falscher Nummernkreis!") : Exit Sub
                Case "AMBAR"
                    If CInt(WunschKdnr) < 3000000 Or CInt(WunschKdnr) > 3999999 Then MsgBox("Falscher Nummernkreis!") : Exit Sub
                Case Else
                    If CInt(WunschKdnr) < 100000 Or CInt(WunschKdnr) > 999999 Then MsgBox("Falscher Nummernkreis!") : Exit Sub
            End Select


            Dim SQL As New VERAG_PROG_ALLGEMEIN.SQL
            If SQL.DLookup("COUNT(*)", "Adressen", "AdressenNr='" & WunschKdnr & "'", "FMZOLL", 0) > 0 Then
                MsgBox("Kundennummer existiert bereits!") : Exit Sub
            End If
            Me.WunschKdNr = CInt(WunschKdnr)
            lblKundennr.Text = WunschKdnr
            pnlNeukunde.Visible = False
        End If

    End Sub

    Private Sub cboFiliale_SelectedIndexChanged(sender As Object, e As EventArgs) Handles cboFiliale.SelectedIndexChanged
        If cboFiliale._value = 7002 Then
            cboKundenkreis.changeItem("4001000-4099999")
        End If
        If cboFiliale._value = 7003 Then
            cboKundenkreis.changeItem("2800000-2899999")
        End If
    End Sub

    Private Sub Button4_Click(sender As Object, e As EventArgs) Handles Button4.Click
        If KUNDE Is Nothing Then Exit Sub
        If CheckBox1.Checked Then btnFirmendatenFormularSpeichern.PerformClick() 'Speichern!
        If VERAG_PROG_ALLGEMEIN.cBerechtignunen.CHECK_BERECHTIGUNG_bool("SYSKA_UPDATE", "SDL") Then
            Dim f As New frmKundenSyska_DatenÜbertragen(KUNDE.KundenNr)
            f.ShowDialog(Me)
        End If
    End Sub

    Private Sub Button5_Click_1(sender As Object, e As EventArgs) Handles btnUIDPruef.Click
        If ADRESSE.AdressenNr <= 0 Then Exit Sub
        If ADRESSE.UstIdNr Is Nothing Then Exit Sub
        If ADRESSE.UstIdKz Is Nothing Then Exit Sub
        If ADRESSE.UstIdKz = "" Then Exit Sub
        If ADRESSE.UstIdNr = "" Then Exit Sub

        sender.BackgroundImage = My.Resources.wait

        Dim FO As New VERAG_PROG_ALLGEMEIN.cFinanzOnlineWebService
        FO.initValues()

        If FO.Call_Web_Service_MethodUID_Login_NEU2020() = 0 Then
            Dim UID_TMP = FO.Call_Web_Service_MethodUID_Abfrage_NEU2020(ADRESSE.AdressenNr,, , , 2)
            If UID_TMP IsNot Nothing Then
                If UID_TMP.uid_valid Then
                    init(ADRESSE.AdressenNr)
                    sender.BackgroundImage = My.Resources.ok
                Else
                    sender.BackgroundImage = My.Resources.del
                End If
            Else
                sender.BackgroundImage = My.Resources.fragezeichen
            End If

            FO.Call_Web_Service_MethodUID_Logout_NEU2020()

        End If

        ' '  If cProgramFunctions.validUID(ADRESSE.UstIdKz, ADRESSE.UstIdNr) Then
        'Dim UID = VERAG_PROG_ALLGEMEIN.cUIDPruefung.doUIDPruefung(ADRESSE.AdressenNr, True)
        'If UID IsNot Nothing Then
        '    If UID.uid_valid Then
        '        init(ADRESSE.AdressenNr)
        '        sender.BackgroundImage = My.Resources.ok
        '    Else
        '        sender.BackgroundImage = My.Resources.del
        '    End If
        'Else
        '    sender.BackgroundImage = My.Resources.fragezeichen
        'End If
    End Sub

    Private Sub Button13_Click(sender As Object, e As EventArgs) Handles Button13.Click
        genUIDEORIList(KUNDE.KundenNr, "UID")

    End Sub

    Sub genUIDEORIList(kdNr, typeListe)
        If kdNr <= 0 Then Exit Sub
        Dim frmList As New frmKundenUIDEORI_List
        Select Case typeListe
            Case "UID"
                Dim dt = sql.loadDgvBySql("SELECT [uid_id],[uid_KundenNr] KundenNr,[uid_UstIdKz]UstIdKz,[uid_UstIdNr]UstIdNr,[uid_Datum]Datum,[uid_valid]Gültig,[uid_Sachbearbeiter]Sachbearbeiter,[uid_stufe]Stufe FROM [tblUIDPruefung]where uid_KundenNr='" & kdNr & "' ORDER BY uid_Datum desc", "FMZOLL")
                If dt IsNot Nothing Then
                    frmList.dgv.DataSource = dt
                    frmList.dgv.Columns("uid_id").Visible = False
                    AddHandler frmList.dgv.CellDoubleClick, Sub()
                                                                Dim PdfTmp = SDL.FormularManagerNEU.UID_PRUEFUNG_PROTOKOLL(frmList.dgv.SelectedRows(0).Cells("uid_id").Value)
                                                                If PdfTmp <> "" Then
                                                                    Process.Start(PdfTmp)

                                                                End If
                                                            End Sub
                    frmList.Show(Me)
                End If
            Case "EORI"
        End Select


    End Sub

    Private Sub Button5_Click_2(sender As Object, e As EventArgs) Handles Button5.Click
        VERAG_PROG_ALLGEMEIN.cDatev_Interface.genDatensatzCSV_ALL(False, True, True)

    End Sub
End Class
