Imports MDM_Worker
Imports VERAG_PROG_ALLGEMEIN

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 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 dgvKKLoaded As Boolean = False
    Public Event KD_SAVED(kdnr)
    Dim FUNC As New cProgramFunctions
    Dim isVerag360 As Boolean = False
    Dim bankverbindungBearbeiten As Boolean = False

    '  Public BERECHTIGUNEN As List(Of cBerechtigungen) = Nothing
    Sub New()
        ' Dieser Aufruf ist für den Designer erforderlich.
        InitializeComponent()
        loadControls()
        Me.DoubleBuffered = True
        SetStyle(ControlStyles.OptimizedDoubleBuffer Or ControlStyles.UserPaint Or ControlStyles.AllPaintingInWmPaint Or ControlStyles.ResizeRedraw, True)
        UpdateStyles()

    End Sub
    Sub New(kdnr)
        InitializeComponent()
        loadControls()
        init(kdnr)
        'If kdnr > 0 Then
        '    init(kdnr)
        'End If
        Me.DoubleBuffered = True
        SetStyle(ControlStyles.OptimizedDoubleBuffer Or ControlStyles.UserPaint Or ControlStyles.AllPaintingInWmPaint Or ControlStyles.ResizeRedraw, True)
        UpdateStyles()

    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 As Integer, Optional _isVerag360 As Boolean = False)
        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)

        If Not isVerag360 Then isVerag360 = _isVerag360

        pnlverag360.Visible = isVerag360
        pnlKundenUIDveranlagt.Visible = Not isVerag360

        bankverbindungBearbeiten = VERAG_PROG_ALLGEMEIN.cBerechtignunen.CHECK_BERECHTIGUNG_bool("Bankverbindung_bearbeiten", "SDL")

        If VERAG_PROG_ALLGEMEIN.cBerechtignunen.CHECK_BERECHTIGUNG_bool("FAKTURIERUNG", "SDL") Or VERAG_PROG_ALLGEMEIN.cBerechtignunen.CHECK_BERECHTIGUNG("BH_Hauptmenü", "SDL") = 0 Then
            btnAddKundeUID.Enabled = True
            Button6.Enabled = True
        Else
            btnAddKundeUID.Enabled = False
            Button6.Enabled = False
        End If

        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()

            initKundennummernkreise()

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

        If VERAG_PROG_ALLGEMEIN.cAllgemein.FIRMA = "VERIMEX" And Not isVerag360 Then
            If Not cboKundenkreis.hasItem("3000000-3099990") Then cboKundenkreis.Items.Add(New VERAG_PROG_ALLGEMEIN.MyListItem("3000000-3099999: AMBAR", "3000000-3099990"))
        End If

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

        End If

        If isVerag360 Then
            cbxErstattungsart.Items.Add(New VERAG_PROG_ALLGEMEIN.MyListItem("", 0))
            cbxErstattungsart.Items.Add(New VERAG_PROG_ALLGEMEIN.MyListItem("1.Gegenrechnen", 1))
            cbxErstattungsart.Items.Add(New VERAG_PROG_ALLGEMEIN.MyListItem("2.Überweisung", 2))
            cbxErstattungsart.Items.Add(New VERAG_PROG_ALLGEMEIN.MyListItem("3.Bankverbindung", 3))
            cbxErstattungsart.Items.Add(New VERAG_PROG_ALLGEMEIN.MyListItem("4.Auf Sicherheit", 4))

        End If

        bntGOBOXUmstellung.Enabled = isVerag360
        btnKKhinzufuegen.Enabled = isVerag360
        Button9.Enabled = isVerag360
        cbxkeineMWSt.Visible = isVerag360
        cbxBetreuer.Visible = isVerag360
        cbxVorauszahlung.Visible = isVerag360
        cbxAbf_Vorkasse.Visible = Not isVerag360


        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)

        If Not isVerag360 Then 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, "")
        txtAdresseZusatz.Text = loadValue(KUNDE_ERW.kde_AdressZusatz, "")

        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, "")
        txtAbf_Vorlageprovision_Mindestbetrag._value = loadValue(KUNDE.Vorlageprovision_Mindestbetrag, "")
        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, "")
        txtAbwZZVL.Text = loadValue(KUNDE_ERW.kde_abweichendesZZVL, "")
        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, "")
        txtCreditsafe.Text = loadValue(KUNDE_ERW.kde_CreditSaveId, "")
        cboAbf_Steuerschluessel._value = loadValue(KUNDE.Steuerschlüssel, "")
        cboAbf_Waehrung._value = loadValue(KUNDE.Währungscode, "EUR")
        txtKapital.Text = loadValue(KUNDE_ERW.kde_Kapital, "")
        cbxKapitalWaehrung._value = loadValue(KUNDE_ERW.kde_KapitalWaehrung, "EUR")
        cbxSammelrechnungBerichtLeistungsdetails.Checked = loadValue(KUNDE_ERW.kde_FakturierungSR_Details, False)
        cbxSammelrechnung_IM_EX.Checked = loadValue(KUNDE_ERW.kde_SR_IM_EX, False)
        cboAbf_Sammelrechnung._value = loadValue(KUNDE.Sammelrechnung, "")
        txtGruendungsDatum.Text = loadValue(KUNDE_ERW.kde_GruendungsDatum, "")
        txtHandelsregisterNr.Text = loadValue(KUNDE_ERW.kde_HRNr, "")
        cbxVorauszahlung.Checked = loadValue(KUNDE_ERW.kde_VZ, False)
        txtVorauszahlung.Text = loadValue(KUNDE_ERW.kde_AnmerkungVZ, "")
        cbxFR.Checked = loadValue(KUNDE_ERW.kde_FR, False)
        cbxCS_Added.Checked = loadValue(KUNDE_ERW.kde_CSPortfolioAdded, False)
        cbxCSInsolvent.Checked = IIf(Not IsDBNull(KUNDE_ERW.kde_CSinsolventAm) AndAlso KUNDE_ERW.kde_CSinsolventAm IsNot Nothing, True, False)
        txtFR.Text = loadValue(KUNDE_ERW.kde_AnmerkungFR, "")
        cbpKopfsammelrechnung.Checked = KUNDE_ERW.kde_Kopfsammelrechnung
        txtAnmerkungAntraege.Text = loadValue(KUNDE_ERW.kde_AnmerkungAntrag, "")

        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



        ' ----- MWST-Abrechnnung -----
        rbJ.Checked = False
        rbHJ.Checked = False
        rbQ.Checked = False
        Select Case KUNDE_ERW.kde_MWStAbrechnung
            Case "Q" : rbQ.Checked = True
            Case "H" : rbHJ.Checked = True
            Case "J" : rbJ.Checked = True
        End Select

        cbxErstattungsart.changeItem(loadValue(KUNDE_ERW.kde_Erstattungsart, ""))

        ' ----- Versicherung -----
        txtVers_HermesRefNr.Text = loadValue(KUNDE.Referenznummer, "")
        txtVers_Versicherungssumme._value = loadValue(KUNDE.Versicherungssumme, "")
        txtVers_VersicherungssummeVon._value = loadValue(KUNDE.Entscheidung_vom, "")
        txtSEG_Summe._value = loadValue(KUNDE_ERW.kde_SEG_Summe, "")
        txtSEG_vom._value = loadValue(KUNDE_ERW.kde_SEG_Datum, "")
        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, "")

        txtBankgarantieErhaltenAm._value = loadValue(KUNDE_ERW.kde_BankgarantielErhaltenAm, "")
        txtWechsel._value = loadValue(KUNDE_ERW.kde_WechselBetrag, "")
        txtWechselGueltigBis._value = loadValue(KUNDE_ERW.kde_WechselGueltigBis, "")
        txtWechselErhaltenAm._value = loadValue(KUNDE_ERW.kde_WechselErhaltenAm, "")
        cbxBlanko.Checked = KUNDE_ERW.kde_WechselBlanko

        txtVers_Information.Text = loadValue(KUNDE.Info, "")
        rtb_Zahlungsinfo.Text = loadValue(KUNDE.Zahlungsinformationen, "")
        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


        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
        cbxSndDatenAusSTB.Checked = KUNDE_ERW.kde_Abrechnung_SendungsdatenAusSTB

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

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

        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()

        ' ----- Vorschausummen -----

        txtSumIDS._value = loadValue(KUNDE.UStV_SummeVorschaubetragEUR_IDS, 0)
        txtSumPLOSE._value = loadValue(KUNDE_ERW.kde_UStV_SummeVorschaubetragEUR_PLOSE, 0)
        txtSumMSE._value = loadValue(KUNDE.UStV_SummeVorschaubetragEUR_MSE, 0)
        txtSumUTA._value = loadValue(KUNDE.UStV_SummeVorschaubetragEUR_UTA, 0)
        txtSumVerag._value = loadValue(KUNDE.UStV_SummeVorschaubetragEUR_VERAG, 0)

        ' ----- Sonstiges -----
        cboSonst_Rechnungsdruck._value = loadValue(ADRESSE.Rechnungsdruck, "")
        txtSonst_KdNrIDS.Text = loadValue(ADRESSE.IDSKundenNr, "")
        txtSonst_KdNrWOELFL.Text = loadValue(ADRESSE.WölflKundenNr, "")
        txtSonst_weitereKdNrWOELFL.Text = loadValue(ADRESSE.weitereWö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, "")
        txtSonst_KdNrVerag.Text = loadValue(KUNDE.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)
        cbxUIDMehrfachverwendung.Checked = KUNDE_ERW.kde_UIDMehrfachverwendung
        cbxkeineMWSt.Checked = loadValue(KUNDE_ERW.kde_keineMWSt, False)

        ' ----- Provision Dienstleistungen -----
        cbxProvDL.Checked = KUNDE_ERW.kde_Provisionsverguetung
        txtProvDLProzent._value = loadValue(KUNDE_ERW.kde_Provisionsverguetung_ProzentDL, Nothing)
        kdProvDLProzentGSAn.KdNr = If(KUNDE_ERW.kde_Provisionsverguetung_GSAnKdNr, -1)



        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

        txtATEZ_LogicustID.Text = If(KUNDE_ERW.kde_ATEZ_LogicustID, "")
        txtATEZ_GreenpulseID.Text = If(KUNDE_ERW.kde_ATEZ_GreenpulseID, "")


        ' -------- 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()

        btnCreditsafe.Visible = VERAG_PROG_ALLGEMEIN.cBerechtignunen.CHECK_BERECHTIGUNG_bool("CREDITSAFE_Prüfung", "SDL")
        PictureBox5.Visible = VERAG_PROG_ALLGEMEIN.cBerechtignunen.CHECK_BERECHTIGUNG_bool("CREDITSAFE_Prüfung", "SDL")

        initTabs()

        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

    Sub initKundennummernkreise()

        If isVerag360 Then
            cboKundenkreis.Items.Add(New VERAG_PROG_ALLGEMEIN.MyListItem("  100000-199999: TR - KUNDEN", "100000-199999"))
            cboKundenkreis.Items.Add(New VERAG_PROG_ALLGEMEIN.MyListItem("  130000-139999: 360 TR - KUNDEN", "130000-139999"))
            cboKundenkreis.Items.Add(New VERAG_PROG_ALLGEMEIN.MyListItem("  150000-159999: 360 RMC - KUNDEN", "150000-159999"))
            cboKundenkreis.Items.Add(New VERAG_PROG_ALLGEMEIN.MyListItem("  140000-149999: 360 DURMAZ - KUNDEN", "140000-149999"))
            cboKundenkreis.Items.Add(New VERAG_PROG_ALLGEMEIN.MyListItem("  160000-169999: AT - KUNDEN", "160000-169999"))
            cboKundenkreis.Items.Add(New VERAG_PROG_ALLGEMEIN.MyListItem("  200000-299999: RO - KUNDEN", "200000-299999"))
            cboKundenkreis.Items.Add(New VERAG_PROG_ALLGEMEIN.MyListItem("  300000-302999: BG - KUNDEN", "300000-302999"))
            cboKundenkreis.Items.Add(New VERAG_PROG_ALLGEMEIN.MyListItem("  303000-303999: DE - KUNDEN", "303000-303999"))
            cboKundenkreis.Items.Add(New VERAG_PROG_ALLGEMEIN.MyListItem("  400000-499999: YU - KUNDEN", "400000-499999"))

        Else

            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")
                        KUNDE.Zahlungsziel = 0
                        ADRESSE.Rechnungsdruck = 2
                        KUNDE.Vorkasse = True
                    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

        End If

    End Sub

    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 = "2262630-2291290" 'ausl.Kundenkreis
                    End If
                Case "AMBAR"
                    cbxFiBu.Checked = True
            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), isVerag360) '+ 1 ' bei VERA360 soll zusätzlich auf abweichendeDEbitorenNr geprüft werden!

                If isVerag360 AndAlso Not vbYes = MsgBox("Nächste freie Kundennummer " & kdnr & " verwenden?" & vbNewLine & "Fortfahren? Andernfalls bitte Wunschkundenummer verwenden!", vbYesNo) Then
                    Return False
                End If

            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.Trim)

        ADRESSE.Name_1 = isLeerNothing(txtFirmenname1.Text.Trim)
        ADRESSE.Name_2 = isLeerNothing(txtFirmenname2.Text.Trim)
        KUNDE_ERW.kde_AdressZusatz = (txtAdresseZusatz.Text)

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

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

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


        '  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.Vorlageprovision_Mindestbetrag = If(IsNumeric(txtAbf_Vorlageprovision_Mindestbetrag._value), CDbl(txtAbf_Vorlageprovision_Mindestbetrag._value), 0)

        KUNDE.Kreditlimit = txtVers_Kreditlimit.Text
        KUNDE_ERW.kde_abweichendesZZVL = If(txtAbwZZVL._value <> "" And IsNumeric(txtAbwZZVL._value), txtAbwZZVL._value, Nothing)
        KUNDE.Zahlungsziel = txtAbf_Zahlungsziel.Text

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

        KUNDE_ERW.kde_Kapital = isLeerNothing(txtKapital._value)
        KUNDE_ERW.kde_KapitalWaehrung = isLeerNothing(cbxKapitalWaehrung._value)
        KUNDE_ERW.kde_HRNr = isLeerNothing(txtHandelsregisterNr.Text)
        KUNDE_ERW.kde_VZ = cbxVorauszahlung.Checked
        KUNDE_ERW.kde_AnmerkungVZ = txtVorauszahlung.Text
        KUNDE_ERW.kde_AnmerkungAntrag = txtAnmerkungAntraege.Text
        KUNDE_ERW.kde_FR = cbxFR.Checked
        KUNDE_ERW.kde_AnmerkungFR = txtFR.Text
        KUNDE_ERW.kde_Kopfsammelrechnung = cbpKopfsammelrechnung.Checked

        If isLeerNothing(txtGruendungsDatum.Text) IsNot Nothing AndAlso IsDate(txtGruendungsDatum.Text) Then
            KUNDE_ERW.kde_GruendungsDatum = CDate(txtGruendungsDatum.Text)
        End If

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

        KUNDE.Währungscode = isLeerNothing(cboAbf_Waehrung._value)

        KUNDE.Sammelrechnung = cboAbf_Sammelrechnung._value

        KUNDE_ERW.kde_FakturierungSR_Details = cbxSammelrechnungBerichtLeistungsdetails.Checked
        KUNDE_ERW.kde_SR_IM_EX = cbxSammelrechnung_IM_EX.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



        ' ----- MWST-Abrechnung -----
        KUNDE_ERW.kde_MWStAbrechnung = "Q"
        If rbJ.Checked = True Then KUNDE_ERW.kde_MWStAbrechnung = "J"
        If rbHJ.Checked = True Then KUNDE_ERW.kde_MWStAbrechnung = "H"
        If rbQ.Checked = True Then KUNDE_ERW.kde_MWStAbrechnung = "Q"

        KUNDE_ERW.kde_Erstattungsart = cbxErstattungsart._value

        ' ----- 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_ERW.kde_SEG_Summe = isLeerNothingDbl(txtSEG_Summe._value)
        KUNDE_ERW.kde_SEG_Datum = isLeerNothing(txtSEG_vom._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.Zahlungsinformationen = isLeerNothing(rtb_Zahlungsinfo.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_BankgarantielErhaltenAm = isLeerNothing(txtBankgarantieErhaltenAm._value)
        KUNDE_ERW.kde_WechselBlanko = cbxBlanko.Checked
        KUNDE_ERW.kde_WechselBetrag = isLeerNothing(txtWechsel._value)
        KUNDE_ERW.kde_WechselErhaltenAm = isLeerNothing(txtWechselErhaltenAm._value)
        KUNDE_ERW.kde_WechselGueltigBis = isLeerNothing(txtWechselGueltigBis._value)



        KUNDE_ERW.kde_txtVersicherungDeckungsquote = isLeerNothingDbl(txtVersicherungDeckungsquote._value)
        KUNDE_ERW.kde_txtVersicherungNichtVersicherbar = cbxNichtVersicherbar.Checked
        KUNDE_ERW.kde_CSPortfolioAdded = cbxCS_Added.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_Abrechnung_SendungsdatenAusSTB = cbxSndDatenAusSTB.Checked
        KUNDE_ERW.kde_UIDMehrfachverwendung = cbxUIDMehrfachverwendung.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)
        KUNDE_ERW.kde_CreditSaveId = isLeerNothing(txtCreditsafe.Text)

        If KUNDE_ERW.kde_CreditSaveId = "" Then KUNDE_ERW.kde_CSPortfolioAdded = False

        KUNDE_ERW.kde_keineMWSt = cbxkeineMWSt.Checked

        ' ----- Provision Dienstleistungen -----
        KUNDE_ERW.kde_Provisionsverguetung = cbxProvDL.Checked
        KUNDE_ERW.kde_Provisionsverguetung_ProzentDL = isLeerNothingDbl(txtProvDLProzent._value)
        KUNDE_ERW.kde_Provisionsverguetung_GSAnKdNr = If(kdProvDLProzentGSAn.KdNr_value > 0, kdProvDLProzentGSAn.KdNr_value, Nothing)



        ' ----- 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

        ' ----- ATEZ -----
        KUNDE_ERW.kde_ATEZ_LogicustID = txtATEZ_LogicustID.Text
        KUNDE_ERW.kde_ATEZ_GreenpulseID = txtATEZ_GreenpulseID.Text

        ' ----- 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.weitereWölflKundenNr = isLeerNothing(txtSonst_weitereKdNrWOELFL.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

        KUNDE_ERW.kde_betreuer = isLeerNothing(cbxBetreuer.Text)


        KUNDE.Steuerschlüssel = cboAbf_Steuerschluessel._value

        'Andere Lösung überlegen!!!!!
        'If cboAbf_Steuerschluessel._value IsNot Nothing AndAlso IsNumeric(cboAbf_Steuerschluessel._value) Then
        '    Dim check As Integer
        '    check = cAllgemein.checkSteuerschluessel(cboFiliale._value, ADRESSE.LandKz, ADRESSE.UstIdNr, ADRESSE.UstIdNr, ADRESSE.UstIdGeprüft)
        '    If check >= 0 Then
        '        If CInt(cboAbf_Steuerschluessel._value) <> check Then
        '            If vbYes = MsgBox("Falscher Steuertyp!" & vbNewLine & " Steuerschlüssel mit " & IIf(check = 2, "20 %", check & " %") & " sollte hinterlegt werden." & vbNewLine & "Trotzdem speichern?", vbYesNo) Then
        '                KUNDE.Steuerschlüssel = cboAbf_Steuerschluessel._value
        '            Else
        '                KUNDE.Steuerschlüssel = Nothing
        '            End If
        '        End If

        '    End If

        'End If

        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, cbxUIDMehrfachverwendung.Checked) Then
                    txtERROR.Text = err : Exit Sub
                End If
                If Not KUNDE.VALID(err) Then
                    txtERROR.Text = err : Exit Sub
                End If

                Dim Email1 As String = VERAG_PROG_ALLGEMEIN.cProgramFunctions.checkifMailisOK(txtEmail.Text)
                If Email1 <> "" Then
                    txtERROR.Text = Email1 & " ist keine gültige Email!" : Exit Sub
                End If

                Dim Email2 As String = VERAG_PROG_ALLGEMEIN.cProgramFunctions.checkifMailisOK(txtEmail2.Text)
                If Email2 <> "" Then
                    txtERROR.Text = Email2 & " ist keine gültige Email!" : Exit Sub
                End If


                Dim allowdelete = Not (KUNDE.hasEntry And ADRESSE.hasEntry) ' wenn der Eintrag bereits existiert

                If Not checkAbfertigungsverbot() Then
                    txtERROR.Text = "Grund für Abfertigungsverbot angeben!" : Exit Sub
                End If


                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()

            pnlverag360.Visible = isVerag360

        Catch ex As Exception
            VERAG_PROG_ALLGEMEIN.cErrorHandler.ERR(ex.Message, ex.StackTrace, System.Reflection.MethodInfo.GetCurrentMethod.Name)
        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)

        cbxKapitalWaehrung.fillWithSQL("SELECT fw_iso3,  fw_land FROM [VERAG].[dbo].[tblWahrungtabelleNEU] order by fw_iso3 ",  , "FMZOLL", False)




        cboAbf_Steuerschluessel.fillWithSQL("SELECT [Steuerschlüssel], isnull(cast(cast( [Steuersatz %]*100 as decimal(2))as varchar(5)) + '% - ' +AuswahlSteuerbezeichnung,'') as Bezeichnung FROM [Steuertabelle] ORDER BY Steuerschlüssel", False, "FMZOLL", True)


        cboUSt_UstIdNrLand.fillWithSQL(" SELECT [Länderverzeichnis für die Außenhandelsstatistik].UIDLandz,[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)

        cboUSt_UstIdNrLand2.Items.AddRange(cboUSt_UstIdNrLand.Items.Cast(Of VERAG_PROG_ALLGEMEIN.MyListItem).ToArray())

        cboRechnungSprache.Items.Clear()
        cboRechnungSprache.Items.Add(New VERAG_PROG_ALLGEMEIN.MyListItem("Deutsch", "DE"))
        cboRechnungSprache.Items.Add(New VERAG_PROG_ALLGEMEIN.MyListItem("Englisch", "EN"))
        cboRechnungSprache.Items.Add(New VERAG_PROG_ALLGEMEIN.MyListItem("Rumänisch", "RO"))
        cboRechnungSprache.Items.Add(New VERAG_PROG_ALLGEMEIN.MyListItem("Türkisch", "TR"))
        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")
            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"))
        cboSonst_Rechnungsdruck.Items.Add(New VERAG_PROG_ALLGEMEIN.MyListItem("Mail+Kopie", "5"))

        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"))

        cbxBetreuer.Items.Clear()
        cbxBetreuer.fillWithSQL("select mit_id, mit_nname FROM [ADMIN].[dbo].[tblMitarbeiter] where tblMitarbeiter.mit_Funktion = 'VK' and mit_gekuendigt = 0 and mit_abteilung = 'MDM'", False, "ADMIN", True)



    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

        initTabs()

    End Sub

    Dim cBinding_dgvUStV As New cBinding("FMZOLL")
    Dim cBinding_dgvSonst_IDSKunden As New cBinding("FMZOLL")
    Dim cBinding_dgvBankverbindungen As New cBinding("FMZOLL")
    Dim cBinding_dgvMWST As New cBinding("FMZOLL")
    Dim cBinding_dgvKreditkaten 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 isVerag360 Then
            Me.tbcntrDetails.Controls.Remove(tbFiskal)
            Me.tbcntrDetails.Controls.Remove(tbSchnittstellen)
        Else
            Me.tbcntrDetails.Controls.Remove(tbBankverbindungen)
        End If
        kdProvDLProzentGSAn.initKdBox(Me.FindForm)

        For Each c As Control In Me.tbcntrDetails.Controls
            If c.Name = "tbBank" Then
                If Not isVerag360 Then
                    c.Text = "Bankverb./Kreditkarten"
                Else
                    c.Text = "Asfinag"
                    tbcntrAbf.TabPages.Remove(TabPage1)
                    tbcntrAbf.TabPages.Remove(tbAufschub)

                End If
            End If

        Next


        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.cBerechtignunen.CHECK_BERECHTIGUNG_bool("DATEV_EXPORT", "SDL") Then
            Label98.Visible = True
            btnDatevExport.Visible = True
        Else
            Label98.Visible = False
            btnDatevExport.Visible = False
        End If


        Select Case VERAG_PROG_ALLGEMEIN.cAllgemein.FIRMA
            Case "AMBAR"
                cboFremdspedition.Items.Clear()
                cboFremdspedition.Items.Add("")
                cboFremdspedition.Items.Add("AMBAR")
                cboFremdspedition.Items.Add("VERAG")
                cboFremdspedition.Items.Add("IMEX")
                cboFremdspedition.Items.Add("EIGENE ZOLLABTEILUNG")
                cboFremdspedition.Items.Add("T1 DIREKT")

            Case Else
                cboFremdspedition.Items.Clear()
                cboFremdspedition.Items.Add("")
                cboFremdspedition.Items.Add("SEBERT")
                cboFremdspedition.Items.Add("SCHENKER")
                cboFremdspedition.Items.Add("AS-SPED")
                cboFremdspedition.Items.Add("NIETEN")
                cboFremdspedition.Items.Add("BUCHAUER")
                cboFremdspedition.Items.Add("ZLS")
        End Select
        cboFremdspeditionExport.Items.AddRange(cboFremdspedition.Items.Cast(Of Object).ToArray())

        '        SEBERT
        '        SCHENKER
        'AS-SPED
        'NIETEN
        '        BUCHAUER


        '        AMBAR
        '        VERAG
        '        IMEX
        '        EIGENE ZOLLABTEILUNG
        '    t1 DIREKT
    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 "9900000-9999999" : cbxFiBu.Checked = False : cboFirma.changeItem("17") : cboFiliale.changeItem("5801")

                    '--------------------- VERAG360----------------------------

                Case "400000-499999" : cbxFiBu.Checked = True : cboFirma.changeItem("19") : cboFiliale.changeItem("8001")
                Case "200000-299999" : cbxFiBu.Checked = True : cboFirma.changeItem("19") : cboFiliale.changeItem("8001")
                Case "160000-169999" : cbxFiBu.Checked = True : cboFirma.changeItem("19") : cboFiliale.changeItem("8001")
                Case "303000-303999" : cbxFiBu.Checked = True : cboFirma.changeItem("19") : cboFiliale.changeItem("8001")
                Case "130000-139999" : cbxFiBu.Checked = True : cboFirma.changeItem("19") : cboFiliale.changeItem("8001")
                Case "150000-159999" : cbxFiBu.Checked = True : cboFirma.changeItem("19") : cboFiliale.changeItem("8001")
                Case "140000-149999" : cbxFiBu.Checked = True : cboFirma.changeItem("19") : cboFiliale.changeItem("8001")


                Case "100000-199999"

                    If isVerag360 Then
                        cbxFiBu.Checked = True : cboFirma.changeItem("19") : cboFiliale.changeItem("8001") : cbxErstattungsart.changeItem("1")
                    Else
                        cbxFiBu.Checked = False : cboFirma.changeItem("1") : cboFiliale.changeItem("4803") : cbxErstattungsart.changeItem("0")
                    End If

            End Select
        End If

        If Not isVerag360 Then
            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 If

    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
        btnUIDPruef.Enabled = False

        doUIDPruefung(ADRESSE.AdressenNr, sender, btnUIDPruef)


        ' '  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

        SDL.cProgramFunctions.genUIDEORIList(KUNDE.KundenNr, "UID")

    End Sub

    Private Sub Button13_new_Click(sender As Object, e As EventArgs) Handles Button5.Click

        SDL.cProgramFunctions.genUIDEORIList(KUNDE.KundenNr, "UID", True)

    End Sub

    Private Sub doUIDPruefung(Kdnr As Integer, sender As Object, btn As Button, Optional Veranlagungskunden As Boolean = False, Optional dgv_UIDVeranlagungskunden As DataGridView = Nothing)

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

        If FO.Call_Web_Service_MethodUID_Login_NEU2020() = 0 Then
            Dim UID_TMP As cUIDPruefung = Nothing

            If Veranlagungskunden Then

                If dgv_UIDVeranlagungskunden IsNot Nothing AndAlso dgv_UIDVeranlagungskunden.Rows.Count > 0 Then
                    For Each r As DataGridViewRow In dgv_UIDVeranlagungskunden.Rows
                        UID_TMP = FO.Call_Web_Service_MethodUID_Abfrage_NEU2020_UIDVeranlagungskunden(r.Cells("KdNr").Value, r.Cells("UstIdKz").Value, r.Cells("UstIdNr").Value, r.Cells("UstIdGeprüft").Value, ,,, 2)
                    Next

                End If

            Else
                UID_TMP = FO.Call_Web_Service_MethodUID_Abfrage_NEU2020(Kdnr,, , , 2)
            End If

            If UID_TMP IsNot Nothing Then
                If UID_TMP.uid_valid Then
                    init(Kdnr)
                    sender.BackgroundImage = My.Resources.ok
                    btn.Enabled = True
                Else
                    sender.BackgroundImage = My.Resources.del
                    btn.Enabled = True
                End If
            Else
                sender.BackgroundImage = My.Resources.fragezeichen
                btn.Enabled = True
            End If

            FO.Call_Web_Service_MethodUID_Logout_NEU2020()
            btn.Enabled = True

            If Veranlagungskunden Then
                initdgvKUNDENUID(Kdnr)
            End If

        End If
    End Sub

    Sub genUIDEORIList(kdNr, typeListe, Optional UIDVeranldgungskunden = False)
        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 & "' AND ISNULL(uid_typ, 'UID') = '" & IIf(UIDVeranldgungskunden, "VAK", "UID") & "' 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"

                Dim dt = sql.loadDgvBySql("SELECT [eori_id],[eori_KdNr] KundenNr,[eori_Datum]Datum,[eori_valid]Gültig,[eori_sachbearbeiter]Sachbearbeiter FROM [tblEORIPruefung] where eori_KdNr='" & kdNr & "' ORDER BY eori_Datum desc", "FMZOLL")
                If dt IsNot Nothing Then
                    frmList.dgv.DataSource = dt
                    frmList.dgv.Columns("eori_id").Visible = False

                    '--------------------------
                    AddHandler frmList.dgv.CellDoubleClick, Sub()
                                                                Dim eoripruef As New cEORIPruefung(frmList.dgv.SelectedRows(0).Cells("eori_id").Value)
                                                                Dim msgErgebnis
                                                                If eoripruef.eori_valid Then
                                                                    msgErgebnis = "EORI-Nr. GÜLTIG   -   OK"
                                                                Else
                                                                    msgErgebnis = "EORI-Nr. UNGÜLTIG"
                                                                End If

                                                                Dim PdfTmp = SDL.FormularManagerNEU.EORI_PRUEFUNG(msgErgebnis, eoripruef.eori_firma, eoripruef.eori_sessionID, KUNDE.EORITIN,, eoripruef.eori_sendungsid, eoripruef.eori_datum, eoripruef.eori_sachbearbeiter, eoripruef.eori_FirmaID)
                                                                If PdfTmp <> "" Then
                                                                    Process.Start(PdfTmp)

                                                                End If
                                                            End Sub
                    '--------------------------

                    frmList.Show(Me)
                End If

        End Select


    End Sub

    Private Sub btnDatevExport_Click(sender As Object, e As EventArgs) Handles btnDatevExport.Click
        If VERAG_PROG_ALLGEMEIN.cBerechtignunen.CHECK_BERECHTIGUNG_bool("DATEV_EXPORT", "SDL") And VERAG_PROG_ALLGEMEIN.cAllgemein.FIRMA = "AMBAR" Then
            If VERAG_PROG_ALLGEMEIN.cDatev_Interface.genDatensatzCSV_ALL(VERAG_PROG_ALLGEMEIN.cAllgemein.FIRMA, False, True, False, ,, False, "ftp") Then
                MsgBox("Stammdaten wurden erfolgreich exportiert unf auf FTP geladen!")
            Else
                MsgBox("Es wurden keine Stammdaten exportiert!")
            End If
        End If

    End Sub

    Private Sub btnCreditsafe_Click(sender As Object, e As EventArgs) Handles btnCreditsafe.Click

        Cursor = Cursors.WaitCursor

        Dim f As New frmCreditSafeSearch

        If f.ShowDialog = DialogResult.OK Then

            txtKurzname.Text = f.UsrcntlCreditsafe1.comp.name & ";" & f.UsrcntlCreditsafe1.comp.city
            txtFirmenname1.Text = f.UsrcntlCreditsafe1.comp.name
            txtCreditsafe.Text = f.UsrcntlCreditsafe1.comp.credissafeId
            txtStrasse.Text = f.UsrcntlCreditsafe1.comp.street
            txtOrt.Text = f.UsrcntlCreditsafe1.comp.city
            txtPlz.Text = f.UsrcntlCreditsafe1.comp.postCode
            txtTel.Text = f.UsrcntlCreditsafe1.comp.phoneNo

            If f.UsrcntlCreditsafe1.comp.country IsNot Nothing Then
                cbxLandKz.changeItem(f.UsrcntlCreditsafe1.comp.country.Substring(0, 1))
            End If


            If f.UsrcntlCreditsafe1.comp.vatNo <> "" Then
                cboUSt_UstIdNrLand.changeItem(f.UsrcntlCreditsafe1.comp.vatNo.Substring(0, 2))

                If f.UsrcntlCreditsafe1.comp.country <> "" Then
                    txtUSt_UstIdNr.Text = f.UsrcntlCreditsafe1.comp.vatNo.Replace(f.UsrcntlCreditsafe1.comp.country, "").Replace(" ", "")
                Else
                    txtUSt_UstIdNr.Text = f.UsrcntlCreditsafe1.comp.vatNo
                End If
            End If



        End If

        Cursor = Cursors.Default

    End Sub

    Private Sub PictureBox5_Click(sender As Object, e As EventArgs) Handles PictureBox5.Click
        Dim webAddress As String = "https://wiki.verag.ag/software/aviso/howtos/Creditsafe"
        Process.Start(webAddress)
    End Sub

    Private Sub Button7_Click(sender As Object, e As EventArgs) Handles btnKKhinzufuegen.Click



        If ADRESSE.AdressenNr < 0 Then Exit Sub

        Try


            Dim kkNr As String
            Dim SQL As New VERAG_PROG_ALLGEMEIN.SQL

            For i = 1 To 9999

                kkNr = 990001
                Dim adr As String = ""

                If ADRESSE.AdressenNr.ToString.Length > 6 Then
                    adr = ADRESSE.AdressenNr.ToString.Substring(ADRESSE.AdressenNr.ToString.Length - 6, 6)
                Else
                    adr = ADRESSE.AdressenNr
                End If

                kkNr &= CInt(adr).ToString.PadLeft(6, "0")
                kkNr &= i.ToString.PadLeft(4, "0")
                kkNr = kkNr & (fktMod10Prüfziffer(kkNr))

                If SQL.DLookup("COUNT(*)", "Kreditkarten", "KartenNr='" & kkNr & "'", "FMZOLL", 0) > 0 Then
                    If i = 1 Then
                        If vbNo = MsgBox("Eine Karte mit der Kartennummer " & kkNr & " existiert bereits." & vbNewLine & "Soll eine Folgekarte erzeugt werden?", vbYesNo) Then
                            Exit Sub
                        End If
                    End If
                Else
                    'Anlage KK
                    Dim Kartenablaufmonat As Integer = 12
                    Dim Kartenablaufjahr As Integer = 99
                    Dim Kartensperre As Integer = 0
                    Dim strList = "AdressenNr, KartenNr,Kartenfreischaltungsdatum,Kartenablaufmonat,Kartenablaufjahr,Kartensperre,Zeitstempel,Sachbearbeiter"
                    Dim values = "" & ADRESSE.AdressenNr & "," & kkNr & ",'" & Today() & "'," & Kartenablaufmonat & "," & Kartenablaufjahr & "," & Kartensperre & ",'" & Now() & "','" & VERAG_PROG_ALLGEMEIN.cAllgemein.USRKURZNAME & "'"

                    If SQL.doSQL("INSERT INTO [Kreditkarten] (" & strList & ") VALUES(" & values & ")  ", "FMZOLL") Then
                        MsgBox("Kreditkarte " & kkNr & " angelegt.")
                        initdgvKreditkarten()
                        Exit Sub
                    End If

                End If


            Next

        Catch ex As Exception
            VERAG_PROG_ALLGEMEIN.cErrorHandler.ERR(ex.Message, ex.StackTrace, System.Reflection.MethodInfo.GetCurrentMethod.Name)
        End Try


        '' Kartennummer mit Prüfziffer erzeugen.
        'For intZlr = 1 To 9999
        '    strCardNum = "990001" & Format(Right(Me!AdressenNr, 6), "000000") & Format(Right(intZlr, 4), "0000")
        '    strCardNum = strCardNum & (fktMod10(strCardNum))
        ' Set qry = dbs.QueryDefs("qry_GO_BOX_KreditkartenVerwalten")
        ' qry.Parameters("[Bitte AdressenNr eingeben]") = Me!AdressenNr
        '    qry.Parameters("[Bitte KartenNr eingeben]") = strCardNum
        ' Set rst = qry.OpenRecordset(dbOpenDynaset)
        ' If rst.EOF Then
        '        ' Kreditkarte in die Tabelle eintragen.
        '        rst.AddNew
        '        rst!AdressenNr = Me!AdressenNr
        '        rst!KartenNr = strCardNum
        '        rst!Kartenfreischaltungsdatum = Date
        '        rst!Kartenablaufmonat = 12
        '        rst!Kartenablaufjahr = 99
        '        rst!Kartensperre = 0
        '        rst!Zeitstempel = Now
        '        rst!Sachbearbeiter = UCase(CurrentUser())
        '        rst.Update
        '        rst.Close
        '        qry.Close
        '        Me!Kreditkarten.Requery
        '        Exit For
        '    End If
        '    rst.Close
        '    qry.Close


        '    If intZlr = 1 Then
        '        strPrompt = "Eine Kreditkarte mit der Kartennummer " & strCardNum & " existiert bereits." & vbCrLf &
        '         "Soll eine Folgekarte erzeugt werden?"
        '        strTitle = "Kreditkarte hinzufügen"
        '        If (MsgBox(strPrompt, vbYesNo + vbDefaultButton2 + vbInformation, strTitle)) = vbNo Then
        '            Exit For
        '        End If
        '    End If
        'Next intZlr




    End Sub

    Private Sub Button8_Click(sender As Object, e As EventArgs) Handles bntGOBOXUmstellung.Click
        If KUNDE Is Nothing Then Exit Sub

        Try
            Dim f As New frmGoMautBoxen(KUNDE, ADRESSE, KUNDE_ERW)
            f.ShowDialog()

        Catch ex As Exception
            VERAG_PROG_ALLGEMEIN.cErrorHandler.ERR(ex.Message, ex.StackTrace, System.Reflection.MethodInfo.GetCurrentMethod.Name)
        End Try

    End Sub

    Private Sub Button9_Click(sender As Object, e As EventArgs) Handles Button9.Click


        If ADRESSE.AdressenNr < 0 Then Exit Sub
        Try


            Dim frm As New Form
            Dim dgv As New DataGridView()
            Dim SQL As New VERAG_PROG_ALLGEMEIN.SQL

            Dim dt As DataTable = SQL.loadDgvBySql("Select Kreditkarten.KartenNr FROM Kreditkarten WHERE Kreditkarten.AdressenNr=" & ADRESSE.AdressenNr, "FMZOLL")

            If dt.Rows.Count < 1 Then
                MsgBox("Keine Kreditkarte für diesen Kunden vorhanden.")
                Exit Sub
            End If

            dgv.DataSource = dt
            If dgv IsNot Nothing Then
                frm.Size = New Size(500, 500)
                dgv.Size = New Size(frm.Size.Width - 10, frm.Size.Height - 10)
                dgv.Dock = DockStyle.Fill
                dgv.Anchor = AnchorStyles.Left
                dgv.Anchor = AnchorStyles.Top
                dgv.ReadOnly = True
                frm.Controls.Add(dgv)
                frm.StartPosition = FormStartPosition.CenterScreen
                frm.ShowDialog()
            End If


        Catch ex As Exception
            VERAG_PROG_ALLGEMEIN.cErrorHandler.ERR(ex.Message, ex.StackTrace, System.Reflection.MethodInfo.GetCurrentMethod.Name)
        End Try

    End Sub

    Shared Function fktMod10Prüfziffer(strNummer As String) As String
        ' Der Funktion wird im Feld strNummer der Wert ohne Prüfziffer übergeben.
        ' Die Funktion berechnet und liefert die Prüfziffer zurück.

        Dim intIX As Integer
        Dim intZSum As Integer
        Dim intSum As Integer
        Dim boo1 As Boolean

        For intIX = Len(strNummer) To 1 Step -1
            intZSum = IIf(boo1, Mid(strNummer, intIX, 1) * 1, Mid(strNummer, intIX, 1) * 2)
            If intZSum < 10 Then
                intSum = intSum + intZSum
            Else
                intSum = intSum + ((intZSum Mod 10) + ((intZSum - (intZSum Mod 10)) / 10))
            End If
            boo1 = Not boo1
        Next intIX

        fktMod10Prüfziffer = CStr((10 - (intSum Mod 10)) Mod 10)

    End Function


    Sub initdgvKreditkarten()

        dgvKKLoaded = False

        With dgvKreditkarten

            cBinding_dgvKreditkaten.initBinding("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")

            .DataSource = cBinding_dgvKreditkaten.bindingdataTable
            '.DataSource = sql.loadDgvBySql()
            .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

            .Columns(1).ReadOnly = True
            .Columns(2).ReadOnly = True
            .Columns(3).ReadOnly = True
            .Columns(5).ReadOnly = True
            .Columns(6).ReadOnly = True
            .Columns(7).ReadOnly = True

            FUNC.dgvCellToCbo(dgvKreditkarten, 4, "Kartensperre", "Sperre", "select distinct(Kartensperre) as Kartensperre, case when Kartensperre = 0 then 'ensperren' else 'Stopped for Post-Pay' end as Grund from Kreditkarten ", "FMZOLL", 150)



            AddHandler btnKKSave.Click,
                         Sub(send As Object, evnt As EventArgs)
                             If cBinding_dgvKreditkaten.updateBinding() Then
                                 send.Enabled = False
                                 initdgvKreditkarten()
                             End If
                         End Sub

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


        End With

    End Sub

    Private Sub cbxBlanko_CheckedChanged(sender As Object, e As EventArgs) Handles cbxBlanko.CheckedChanged
        If cbxBlanko.Checked Then
            txtWechsel.Text = ""
            txtWechsel.Enabled = False
        Else
            txtWechsel.Enabled = True
        End If
    End Sub


    Private Sub cbxAlleBVanzeigen_CheckedChanged(sender As Object, e As EventArgs) Handles cbxAlleBVanzeigen.CheckedChanged

        initdgvBankverbindungen(bankverbindungBearbeiten, cbxAlleBVanzeigen.Checked)

    End Sub

    Sub initdgvBankverbindungen(bearbeiten As Boolean, Optional archivierteDSAnzeigen As Boolean = False)
        With dgvBankverbindungen

            cBinding_dgvBankverbindungen.initBinding(" SELECT [bnk_id],[bnk_KundenNr],[bnk_iban],[bnk_bic],[bnk_anschrift],[bnk_daid],[bnk_hauptkonto],[bnk_archiv],cast([bnk_Datum] as Date) as bnk_Datum " &
                                               " FROM tblBankverbindungen " &
                                               " WHERE bnk_KundenNr = '" & KUNDE.KundenNr & "'" & IIf(Not archivierteDSAnzeigen, " AND ISNULL(bnk_archiv,0) = 0", ""), "tblBankverbindungen")

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

            AddHandler cBinding_dgvBankverbindungen.bindingdataTable.ColumnChanged,
                          Sub(send As Object, evnt As EventArgs)
                              btnBankspeichern.Enabled = bearbeiten
                          End Sub

            AddHandler .UserDeletedRow,
                          Sub(send As Object, evnt As DataGridViewRowEventArgs)
                              btnBankspeichern.Enabled = bearbeiten

                          End Sub

            .DataSource = cBinding_dgvBankverbindungen.bindingdataTable


            .DataSource.Columns("bnk_KundenNr").DefaultValue = KUNDE.KundenNr

            .SelectionMode = DataGridViewSelectionMode.CellSelect

            .Columns(0).Visible = False
            .Columns(5).Visible = False
            If archivierteDSAnzeigen Then
                .Columns(7).Visible = True
                .Columns(8).Visible = True
                .Columns(7).HeaderText = "geschlossen"
                .Columns(8).HeaderText = "eröff./geschl. am"
                '.Columns(8).ReadOnly = False
                '.Columns(9).ReadOnly = False
            Else
                .Columns(7).Visible = False
                '.Columns(7).HeaderText = "eröffn."
                .Columns(8).HeaderText = "eröff. am"
            End If

            .Columns(1).HeaderText = "Kd-Nr."
            .Columns(2).HeaderText = "IBAN"
            .Columns(3).HeaderText = "BIC"
            .Columns(4).HeaderText = "Name"
            .Columns(6).HeaderText = "HK"
            .Columns(6).Width = 50
            .Columns(7).Width = 75

            .Columns(4).AutoSizeMode = DataGridViewAutoSizeColumnMode.Fill

            .Columns(2).ReadOnly = Not bearbeiten
            .Columns(3).ReadOnly = Not bearbeiten
            .Columns(4).ReadOnly = Not bearbeiten
            .Columns(5).ReadOnly = Not bearbeiten
            .Columns(6).ReadOnly = Not bearbeiten

            If Not .Columns.Contains("clmnPDF") Then
                Dim c As New DataGridViewImageColumn
                c.Name = "clmnPDF" : c.HeaderText = "DOK"
                c.DefaultCellStyle.NullValue = Nothing
                c.ImageLayout = DataGridViewImageCellLayout.Zoom
                c.Width = 40 : c.DefaultCellStyle.Padding = New Padding(2) : c.DefaultCellStyle.BackColor = Color.White
                .Columns.Add(c)
            End If


            For Each r As DataGridViewRow In .Rows
                If Not IsDBNull(r.Cells("bnk_daid").Value) AndAlso r.Cells("bnk_daid").Value > 0 Then
                    DirectCast(r.Cells("clmnPDF"), DataGridViewImageCell).Value = My.Resources.pdf
                Else
                    DirectCast(r.Cells("clmnPDF"), DataGridViewImageCell).Value = Nothing
                End If
            Next


        End With

    End Sub

    Private Sub DokumentLöschenToolStripMenuItem_Click(sender As Object, e As EventArgs) Handles DokumentLöschenToolStripMenuItem.Click

        If dgvBankverbindungen.CurrentRow.Cells("bnk_daid").Value Is Nothing Or IsDBNull(dgvBankverbindungen.CurrentRow.Cells("bnk_daid").Value) Then
            Exit Sub
        End If

        If vbYes = MsgBox("Möchten Sie das Dokument wirklich löschen?", vbYesNoCancel) Then

            Dim DS As New VERAG_PROG_ALLGEMEIN.cDATENSERVER(dgvBankverbindungen.CurrentRow.Cells("bnk_daid").Value)
            If DS.DELETE_COMPLETE() Then
                sql.doSQLVarList("UPDATE [tblBankverbindungen] set bnk_daid = NULL  WHERE bnk_id=" & dgvBankverbindungen.CurrentRow.Cells("bnk_id").Value, "FMZOLL")
            End If

            initdgvBankverbindungen(bankverbindungBearbeiten, cbxAlleBVanzeigen.Checked)

        End If

    End Sub

    Private Sub ArchivierenToolStripMenuItem_Click(sender As Object, e As EventArgs) Handles ArchivierenToolStripMenuItem.Click

        If dgvBankverbindungen.CurrentRow.Cells("bnk_archiv").Value Is Nothing OrElse (Not IsDBNull(dgvBankverbindungen.CurrentRow.Cells("bnk_archiv").Value) AndAlso dgvBankverbindungen.CurrentRow.Cells("bnk_archiv").Value) AndAlso dgvBankverbindungen.CurrentRow.Cells("bnk_id").Value IsNot Nothing Then
            Exit Sub
        End If

        If vbYes = MsgBox("Möchten Sie diese Bankverbindung wirklich sperren?", vbYesNoCancel) Then

            sql.doSQLVarList("UPDATE [tblBankverbindungen] set bnk_archiv=1, [bnk_Datum]=GETDATE() WHERE bnk_id=" & dgvBankverbindungen.CurrentRow.Cells("bnk_id").Value, "FMZOLL")

            initdgvBankverbindungen(bankverbindungBearbeiten, cbxAlleBVanzeigen.Checked)

        End If

    End Sub

    Private Sub dgvBankverbindungen_CellMouseClick(sender As Object, e As DataGridViewCellMouseEventArgs) Handles dgvBankverbindungen.CellMouseClick

        If e.RowIndex < 0 Then Exit Sub 'Es wurde außerhalb einer gültigen Datenzeile geklickt
        If e.ColumnIndex < 0 Then Exit Sub

        DirectCast(sender, DataGridView).Rows(e.RowIndex).Selected = True
        If e.Button = MouseButtons.Right Then



            If sender Is dgvBankverbindungen Then
                If Not bankverbindungBearbeiten Then Exit Sub
                If dgvBankverbindungen.SelectedCells.Count = 0 Then Exit Sub 'Es wurde außerhalb einer gültigen Datenzeile geklickt
                dgvBankverbindungen.CurrentCell = dgvBankverbindungen.Rows(e.RowIndex).Cells(e.ColumnIndex)

                If dgvBankverbindungen.CurrentRow.Cells("bnk_archiv").Value Is Nothing OrElse (Not IsDBNull(dgvBankverbindungen.CurrentRow.Cells("bnk_archiv").Value) AndAlso dgvBankverbindungen.CurrentRow.Cells("bnk_archiv").Value) AndAlso dgvBankverbindungen.CurrentRow.Cells("bnk_id").Value IsNot Nothing Then
                    ArchivierenToolStripMenuItem.Visible = False
                Else
                    ArchivierenToolStripMenuItem.Visible = True
                End If


                If dgvBankverbindungen.CurrentRow.Cells("bnk_daid").Value Is Nothing Or IsDBNull(dgvBankverbindungen.CurrentRow.Cells("bnk_daid").Value) Then
                    DokumentLöschenToolStripMenuItem.Visible = False
                    DokumentHinzufügenToolStripMenuItem.Visible = True
                Else
                    DokumentLöschenToolStripMenuItem.Visible = True
                    DokumentHinzufügenToolStripMenuItem.Visible = False
                End If


                cnsBankverbindungen.Show(Cursor.Position)

            End If



        End If

    End Sub

    Private Sub DokumentHinzufügenToolStripMenuItem_Click(sender As Object, e As EventArgs) Handles DokumentHinzufügenToolStripMenuItem.Click

        If dgvBankverbindungen.CurrentRow.Cells("bnk_id").Value Is Nothing Or IsDBNull(dgvBankverbindungen.CurrentRow.Cells("bnk_id").Value) Then
            Exit Sub
        End If

        Dim Bankname = IIf(dgvBankverbindungen.CurrentRow.Cells("bnk_anschrift").Value IsNot Nothing, dgvBankverbindungen.CurrentRow.Cells("bnk_anschrift").Value, "BANK")
        Dim DS As New VERAG_PROG_ALLGEMEIN.cDATENSERVER("DOKUMENTE", "KD_ANHÄNGE", "BANKVERBINDUNG", "", "", Bankname, KUNDE.KundenNr)
        If DS.uploadDataToDATENSERVERFileDialog(, ".pdf", , "PDF") Then
            sql.doSQLVarList("UPDATE [tblBankverbindungen] set bnk_daid= " & DS.da_id & " WHERE bnk_id=" & dgvBankverbindungen.CurrentRow.Cells("bnk_id").Value, "FMZOLL")
            initdgvBankverbindungen(bankverbindungBearbeiten, cbxAlleBVanzeigen.Checked)

        End If
    End Sub



    Private Sub dgvBankverbindungen_CellContentDoubleClick(sender As Object, e As DataGridViewCellEventArgs) Handles dgvBankverbindungen.CellContentDoubleClick

        Try
            If e.RowIndex >= 0 AndAlso e.ColumnIndex = 9 Then
                Dim dsID = dgvBankverbindungen.Rows(e.RowIndex).Cells("bnk_daid").Value

                If dsID > 0 Then
                    Me.Cursor = Cursors.WaitCursor
                    Dim DS As New VERAG_PROG_ALLGEMEIN.cDATENSERVER(dsID)
                    DS.OPEN_SINGLE()
                End If
            End If



        Catch ex As Exception
            MsgBox(ex.Message & ex.StackTrace)
            Me.Cursor = Cursors.Default
        End Try

        Me.Cursor = Cursors.Default


    End Sub

    Private Sub dgvinitLaenderUndSteuernummern()



        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 = True

            .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 Sub

    Private Sub dgvinitMWST()



        With dgvMWST

            cBinding_dgvMWST.initBinding(" SELECT Id, KdNr,LandKz  " &
                                           " FROM [tblKundenMWST] " &
                                           " WHERE KdNr = " & KUNDE.KundenNr, "tblKundenMWST")


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

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

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


            .DataSource = cBinding_dgvMWST.bindingdataTable

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


            .DataSource.Columns("KdNr").DefaultValue = KUNDE.KundenNr


            .Columns(0).Visible = False
            .Columns(1).Visible = False

            .Columns(2).Width = 100
            .Columns(2).HeaderText = "Land eig. MWST"


        End With


    End Sub



    Private Sub initdgvIDSKunden(inaktive_einblenden As Boolean)

        With dgvSonst_IDSKunden

            cBinding_dgvSonst_IDSKunden.initBinding(" SELECT  [KdNrVERAG],[CustomerCode],[KdNrAlt],[Zeitstempel],[Sachbearbeiter] " &
                                           " FROM [tbl_IDS_Kunden] " &
                                           " WHERE KdNrVERAG = '" & KUNDE.KundenNr & "'" & IIf(Not inaktive_einblenden, " AND isnull(KdNrAlt,0) <> 1 ", ""), "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 Sub

    Private Function initdgvIDSRabatte() As DataTable


        Dim dt_IDS_Rabatte As DataTable = sql.loadDgvBySql("SELECT P.ProductDescription, C.OutletCountry,S.OutletCode, S.OutletName, RW.Rechenwert, Kz, RW.KategorieNr as KatNr FROM [VERAG].[dbo].[tbl_IDS_Rechenwerte] as RW
                                            left join [VERAG].[dbo].[tbl_IDS_Produkte] as P on P.ProductTypeCode = RW.ProductTypeCode
                                            left join [VERAG].[dbo].[tbl_IDS_Länder] as C on C.OutletCountryCode = RW.OutletCountryCode
                                            left join [VERAG].[dbo].[tbl_IDS_Stationen] as S on S.[OutletCode] = RW.OutletCode and S.OutletCountryCode = RW.OutletCountryCode where CustomerCode =" & KUNDE.KundenNr & " order by Kz", "FMZOLL")

        With dgvIDS_Rabatte


            .DataSource = dt_IDS_Rabatte

            .ReadOnly = True


            .Columns(0).HeaderText = "Produkt"
            .Columns(0).Width = 60
            .Columns(1).HeaderText = "Land"
            .Columns(1).Width = 80
            .Columns(2).HeaderText = "S-Nr"
            .Columns(2).Width = 50
            .Columns(3).HeaderText = "Station"
            .Columns(4).HeaderText = "Rab-/Pr."
            .Columns(5).Width = 50
            .Columns(6).Width = 50
            .Columns(3).AutoSizeMode = DataGridViewAutoSizeColumnMode.Fill

        End With

        Return dt_IDS_Rabatte

    End Function

    Private Function initdgvIDSPreise() As DataTable

        Dim KundeOhneRabatt As Integer = CInt(sql.getValueTxtBySql("select count(*) from tbl_IDS_Kunden_ohne_Rabatt where CustomerCode = " & KUNDE.KundenNr, "FMZOLL"))
        lblIDS_Rabatte.Text = "IDS-Rabatte/Preise" & IIf(KundeOhneRabatt > 0, " - KUNDE OHNE RABATT", "")


        Dim dt_IDS As DataTable = sql.loadDgvBySql("SELECT P.ProductDescription, C.OutletCountry,S.OutletCode, S.OutletName, RW.Rechenwert, Kz, RW.KategorieNr as KatNr FROM [VERAG].[dbo].[tbl_IDS_Rechenwerte] as RW
                                            left join [VERAG].[dbo].[tbl_IDS_Produkte] as P on P.ProductTypeCode = RW.ProductTypeCode
                                            left join [VERAG].[dbo].[tbl_IDS_Länder] as C on C.OutletCountryCode = RW.OutletCountryCode
                                            left join [VERAG].[dbo].[tbl_IDS_Stationen] as S on S.[OutletCode] = RW.OutletCode and S.OutletCountryCode = RW.OutletCountryCode where CustomerCode is null order by KZ", "FMZOLL")

        With dgvIDS_Standard
            .DataSource = dt_IDS

            .ReadOnly = True


            .Columns(0).HeaderText = "Produkt"
            .Columns(0).Width = 60
            .Columns(1).HeaderText = "Land"
            .Columns(2).Width = 80
            .Columns(2).HeaderText = "S-Nr"
            .Columns(2).Width = 50
            .Columns(3).HeaderText = "Station"
            .Columns(4).HeaderText = "Rab-/Pr."
            .Columns(6).Width = 50
            .Columns(3).AutoSizeMode = DataGridViewAutoSizeColumnMode.Fill

        End With

        Return dt_IDS

    End Function

    Private Sub initdgvOP()

        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 Sub

    Private Sub initdgvUmsatzbericht()

        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 Sub

    Private Sub initdgvKUNDENUID(kdnr As Integer)

        With dgvKundenUID

            .DataSource = sql.loadDgvBySql("SELECT KdNr,UstIdKz,UstIdNr,cast([UstIdGeprüft] as Date) as UstIdGeprüft FROM tblKundenveranlagungUID  WHERE KdNr=" & KUNDE.KundenNr & " ORDER BY UstIdKz", "FMZOLL")

            .Columns("KdNr").Visible = False
            .Columns("UstIdKz").HeaderText = "KZ"
            .Columns("UstIdNr").HeaderText = "Nr"
            .Columns("UstIdGeprüft").HeaderText = "geprüft"
            .Columns("UstIdKz").Width = 30
            .Columns("UstIdNr").AutoSizeMode = DataGridViewAutoSizeColumnMode.Fill
            .Columns("UstIdGeprüft").Width = 80
            .RowHeadersVisible = False

        End With
    End Sub


    Private Sub initTabs()

        If KUNDE Is Nothing OrElse KUNDE.KundenNr <= 0 Then Exit Sub

        If tbcntrDetails.SelectedTab Is tbUmsatz Then
            initdgvUmsatzbericht()

        End If

        If tbcntrDetails.SelectedTab Is tbVerrechnung Then
            initdgvKUNDENUID(KUNDE.KundenNr)
        End If

        If tbcntrDetails.SelectedTab Is tbOP Then
            initdgvOP()
        End If

        If tbcntrDetails.SelectedTab Is tbBank Then
            initdgvKreditkarten()
        End If

        If tbcntrDetails.SelectedTab Is tbUmsatzsteuer Then
            dgvinitLaenderUndSteuernummern()
            dgvinitMWST()
        End If

        If tbcntrDetails.SelectedTab Is tbSonstiges Then
            initdgvIDSKunden(False)
            initdgvIDSPreise()
        End If

        If tbcntrDetails.SelectedTab Is tbBankverbindungen Then
            initdgvBankverbindungen(bankverbindungBearbeiten)
        End If


    End Sub

    Private Sub cbxkeineMWSt_Click(sender As Object, e As EventArgs) Handles cbxkeineMWSt.Click
        If cbxkeineMWSt.Checked Then

            Dim sqlStringSteuerNr = "SELECT count(*) from tblSteuernummern where UStV = 1 and tblSteuernummern.AdressenNr = " & ADRESSE.AdressenNr
            Dim aktiveSteuerNr As Integer = CInt((New SQL).getValueTxtBySql(sqlStringSteuerNr, "FMZOLL"))

            If aktiveSteuerNr > 0 Then
                If vbYes = MsgBox("Der Kunde hat aktuell " & aktiveSteuerNr & " aktive Steuernummern!" & vbNewLine & "Trotzdem setzen?  ", vbYesNoCancel) Then
                    cbxkeineMWSt.Checked = True
                Else
                    cbxkeineMWSt.Checked = False
                End If

            End If

            If cbxkeineMWSt.Checked AndAlso Not KUNDE_ERW.kde_keineMWSt Then
                setRechnungenZuKunden(True)
                KUNDE_ERW.kde_keineMWSt = cbxkeineMWSt.Checked
                KUNDE_ERW.SAVE()
                init(KUNDE_ERW.kde_KundenNr, isVerag360)
            End If

        Else


            If Not cbxkeineMWSt.Checked AndAlso KUNDE_ERW.kde_keineMWSt Then
                setRechnungenZuKunden(False)
                KUNDE_ERW.kde_keineMWSt = cbxkeineMWSt.Checked
                KUNDE_ERW.SAVE()
                init(KUNDE_ERW.kde_KundenNr, isVerag360)
            End If

        End If

    End Sub

    Private Sub setKundenVermerk(kunde As cKunde, kundeErw As cKundenErweitert, Kundenvermerk As String)

        If kundeErw.kde_BesonderheitenNeu Then



            Dim SQL As New VERAG_PROG_ALLGEMEIN.SQL
            If SQL.doSQL("INSERT INTO tblKundenBesonderheiten (kdb_KundenNr,kdb_kategorie,kdb_text,kdb_mitId,kdb_mitName,kdb_EingetragenAm,kdb_visible,kdb_hervorheben,kdb_history) " &
            " VALUES(" & kunde.KundenNr & ",'ALLG' ,'" & Kundenvermerk & "'," & VERAG_PROG_ALLGEMEIN.cAllgemein.USRID & ",'" & VERAG_PROG_ALLGEMEIN.cAllgemein.USRKURZNAME & "','" & Now() & "',1,1,0)", "FMZOLL") Then

            End If

        Else

            If kunde.Besonderheiten <> "" Then kunde.Besonderheiten &= vbNewLine
            kunde.Besonderheiten &= Kundenvermerk

            kunde.SAVE()


        End If
    End Sub

    Private Sub setRechnungenZuKunden(zuriueckzumKunden As Boolean)

        Dim Infotext As String = ""
        Dim Vermerk As String = ""

        If zuriueckzumKunden Then
            Infotext = "Datum für Rücksendung von Orig-Rechnungen"
        Else
            Infotext = "Datum für Verw.der Orig-Rechnungen über MDM"
        End If

        Dim f As New frmDatumsabfrage(Infotext, True)
        f.ShowDialog()
        If f.DialogResult = DialogResult.OK Then
            Dim pruefdatum As Date = CDate(f.Datum)


            Vermerk = "Die RS der Lieferatentenrechnung wurden ab " & pruefdatum.ToShortDateString & " auf "

            If zuriueckzumKunden Then
                Vermerk &= "ZURÜCK ZUM KUNDEN gesetzt!"
            Else
                Vermerk &= "VON MDM VERWALTET gesetzt!"
            End If




            If ADRESSE IsNot Nothing Then

                Dim allSet As Boolean = False

                If ADRESSE.WölflKundenNr IsNot Nothing AndAlso IsNumeric(ADRESSE.WölflKundenNr) Then
                    Dim rmc As cRMC
                    allSet = rmc.setBackToCustomer(New VERAG_PROG_ALLGEMEIN.SQL, zuriueckzumKunden, pruefdatum, ADRESSE.WölflKundenNr)
                End If

                If ADRESSE.weitereWölflKundenNr IsNot Nothing AndAlso IsNumeric(ADRESSE.weitereWölflKundenNr) Then
                    Dim rmc As cRMC
                    allSet = rmc.setBackToCustomer(New VERAG_PROG_ALLGEMEIN.SQL, zuriueckzumKunden, pruefdatum, ADRESSE.weitereWölflKundenNr)
                End If

                If ADRESSE.MSEKundenNr IsNot Nothing AndAlso IsNumeric(ADRESSE.MSEKundenNr) Then
                    Dim MSE As cMSEAPI
                    allSet = MSE.setBackToCustomer(New VERAG_PROG_ALLGEMEIN.SQL, zuriueckzumKunden, pruefdatum, ADRESSE.MSEKundenNr)
                End If

                If ADRESSE.UTAKundenNr IsNot Nothing AndAlso IsNumeric(ADRESSE.UTAKundenNr) Then
                    Dim UTA As cUTA
                    allSet = UTA.setBackToCustomer(New VERAG_PROG_ALLGEMEIN.SQL, zuriueckzumKunden, pruefdatum, ADRESSE.UTAKundenNr)
                End If

                If ADRESSE.PLOSEKundenNr IsNot Nothing AndAlso IsNumeric(ADRESSE.PLOSEKundenNr) Then
                    Dim plose As cPLOSE_Inv_Data
                    allSet = plose.setBackToCustomer(New VERAG_PROG_ALLGEMEIN.SQL, zuriueckzumKunden, pruefdatum, ADRESSE.PLOSEKundenNr)
                End If

                If ADRESSE.IDSKundenNr IsNot Nothing AndAlso IsNumeric(ADRESSE.IDSKundenNr) Then 'KundenNr über zwischentabelle
                    Dim ids As cIDS
                    allSet = ids.setBackToCustomer(New VERAG_PROG_ALLGEMEIN.SQL, zuriueckzumKunden, pruefdatum, ADRESSE.AdressenNr)
                End If

                If allSet Then
                    MsgBox(Vermerk)
                    setKundenVermerk(KUNDE, KUNDE_ERW, Vermerk)
                Else
                    If zuriueckzumKunden Then
                        MsgBox("Fehler beim Zurücksetzen auf 'zurück zum Kunden senden' ab " & pruefdatum.ToShortDateString & "!")
                    Else
                        MsgBox("Fehler beim Zurücksetzen auf 'von MDM verwaltet' ab " & pruefdatum.ToShortDateString & "!")
                    End If

                End If

            End If

        Else

            Dim Vermerk_INfoNichtGesetzt As String = ""
            If zuriueckzumKunden Then
                Vermerk_INfoNichtGesetzt = "ACHTUNG! Der Info, damit die Originalrechnungen an den Kunden geschickt wurden, wurde NICHT gesetzt!"
            Else
                Vermerk_INfoNichtGesetzt = "ACHTUNG! Der Info, damit die Originalrechnungen über MDM verwaltet werden, wurde NICHT gesetzt!"
            End If

            MsgBox(Vermerk_INfoNichtGesetzt & vbNewLine & "Das kann zu Problemen bei der autom. Rücksendung der Originalrechnungen führen!")

            VERAG_PROG_ALLGEMEIN.cErrorHandler.ERR(Vermerk_INfoNichtGesetzt, "KundenNr: " & KUNDE.KundenNr, System.Reflection.MethodInfo.GetCurrentMethod.Name, "LOG")
        End If

    End Sub

    Private Sub cbxVorauszahlung_CheckedChanged(sender As Object, e As EventArgs) Handles cbxVorauszahlung.CheckedChanged
        txtVorauszahlung.Enabled = cbxVorauszahlung.Checked
        If Not cbxVorauszahlung.Checked Then txtVorauszahlung.Text = ""
    End Sub

    Private Sub cbxCSInsolvent_CheckedChanged(sender As Object, e As EventArgs) Handles cbxCSInsolvent.CheckedChanged
        If KUNDE_ERW.kde_CSinsolventAm IsNot Nothing AndAlso Not cbxCSInsolvent.Checked Then

            If vbYes = MsgBox("Möchten Sie die Anmerkung der Insolvent deaktivieren?" & vbNewLine & " Diese Anmerkung wurde automatisch über die Creditsafe-API eingelesen!", vbYesNoCancel) Then
                cbxCSInsolvent.Checked = False
                KUNDE_ERW.kde_CSinsolventAm = Nothing
                KUNDE_ERW.SAVE()
            Else
                cbxCSInsolvent.Checked = True
            End If

        ElseIf KUNDE_ERW.kde_CSinsolventAm Is Nothing AndAlso cbxCSInsolvent.Checked Then
            MsgBox("Wert kann nicht manuell gesetzt werden!")
            cbxCSInsolvent.Checked = False
        End If

    End Sub

    Private Sub btnBnkExcel_Click(sender As Object, e As EventArgs) Handles btnBnkExcel.Click
        Dim SQL As String = "SELECT [bnk_KundenNr] as KdNr, Adressen.[Name 1] as Kundenname ,[bnk_iban] as IBAN,[bnk_bic] as BIC,[bnk_anschrift] as Bankname,isnull([bnk_hauptkonto],0) as HK,isnull([bnk_archiv],0) as geschlossen ,cast([bnk_Datum] as Date) as Datum 
                            FROM tblBankverbindungen inner join Adressen on Adressen.AdressenNr = bnk_KundenNr order by bnk_KundenNr"

        Dim dt_Bank As DataTable = (New SQL).loadDgvBySql(SQL, "FMZOLL")
        VERAG_PROG_ALLGEMEIN.cProgramFunctions.genExcelFromDT_NEW(dt_Bank,,,,,,,, True)

    End Sub

    Private Sub TabControl1_SelectedIndexChanged(sender As Object, e As EventArgs) Handles TabControl1.SelectedIndexChanged

        Select Case TabControl1.SelectedIndex
            Case 0
                initdgvIDSPreise()
            Case Else
                initdgvIDSRabatte()
        End Select


    End Sub

    Private Sub cbx_IDS_inaktiveeinblenden_CheckedChanged(sender As Object, e As EventArgs) Handles cbx_IDS_inaktiveeinblenden.CheckedChanged
        initdgvIDSKunden(cbx_IDS_inaktiveeinblenden.Checked)
    End Sub

    Private Sub PictureBox7_Click(sender As Object, e As EventArgs) Handles PictureBox7.Click

        Dim dt As New DataTable
        Select Case TabControl1.SelectedIndex
            Case 0
                dt = initdgvIDSPreise()
            Case Else
                dt = initdgvIDSRabatte()
        End Select

        If dt.Rows.Count > 0 Then
            VERAG_PROG_ALLGEMEIN.cProgramFunctions.genExcelFromDT_NEW(dt, {"D1:D" & (dt.Rows.Count + 1)}, False,,,,,, True)
        End If

    End Sub

    Private Function checkAbfertigungsverbot()


        If cboAbfVerb_Abfertigungsverbot.Checked Then

            If rtbAbfVerb_Grund.Text.Trim <> "" AndAlso rtbAbfVerb_Grund.TextLength < 4 Then
                MsgBox("Abfertigungsgrund muss mind. 5 Zeichen haben!")
                Return False

            Else

                Return True
            End If

        End If


        Return True

    End Function

    Private Sub btnAddKundeUID_Click(sender As Object, e As EventArgs) Handles btnAddKundeUID.Click
        If cboUSt_UstIdNrLand2._value <> "" AndAlso txtUSt_UstIdNr2.Text <> "" Then

            Dim UID_KUNDE As New cKundenveranlagungUID(KUNDE.KundenNr, cboUSt_UstIdNrLand2._value)
            If UID_KUNDE.hasEntry Then
                If UID_KUNDE.UstIdNr = txtUSt_UstIdNr2.Text Then Exit Sub
                If vbYes = MsgBox("Es existiert bereit ein Eintrag für " & cboUSt_UstIdNrLand2._value & "!" & vbNewLine & "Bestehenden Eintrag überschreiben?", vbYesNo) Then
                    UID_KUNDE.UstIdNr = txtUSt_UstIdNr2.Text.Trim()
                    UID_KUNDE.UstIdGeprüft = Nothing
                    If UID_KUNDE.SAVE() Then initdgvKUNDENUID(KUNDE.KundenNr)
                Else
                    Exit Sub
                End If
            Else
                UID_KUNDE.UstIdNr = txtUSt_UstIdNr2.Text.Trim()
                If UID_KUNDE.SAVE() Then initdgvKUNDENUID(KUNDE.KundenNr)
            End If

        End If
    End Sub

    Private Sub Button6_Click(sender As Object, e As EventArgs) Handles Button6.Click


        sender.BackgroundImage = My.Resources.wait
        Button6.Enabled = False

        doUIDPruefung(ADRESSE.AdressenNr, sender, btnUIDPruef, True, dgvKundenUID)

    End Sub

    Private Sub cboUSt_UstIdNrLand2_SelectedValueChanged(sender As Object, e As EventArgs) Handles cboUSt_UstIdNrLand2.SelectedValueChanged, txtUSt_UstIdNr2.TextChanged
        If cboUSt_UstIdNrLand2._value <> "" AndAlso txtUSt_UstIdNr2.Text <> "" Then
            btnAddKundeUID.Visible = True
        Else
            btnAddKundeUID.Visible = False
        End If
    End Sub


    Private Sub dgvKundenUID_SelectionChanged(sender As Object, e As EventArgs) Handles dgvKundenUID.SelectionChanged
        If dgvKundenUID.SelectedRows.Count > 0 Then

            txtUSt_UstIdNr2.Text = dgvKundenUID.SelectedRows(0).Cells("UstIdNr").Value

            If dgvKundenUID.SelectedRows(0).Cells("UstIdKz").Value IsNot Nothing AndAlso dgvKundenUID.SelectedRows(0).Cells("UstIdKz").Value <> "" Then
                cboUSt_UstIdNrLand2.changeItem(dgvKundenUID.SelectedRows(0).Cells("UstIdKz").Value)
            End If

            Button6.Enabled = True
            Else
                Button6.Enabled = False
        End If
    End Sub

    Private Sub dgvKundenUID_KeyUp(sender As Object, e As KeyEventArgs) Handles dgvKundenUID.KeyUp

        If e.KeyCode = Keys.Delete Then
            If dgvKundenUID.SelectedRows.Count > 0 Then


                If vbYes = MsgBox("Möchten den markierten Eintrag löschen?", vbYesNoCancel) Then

                    For Each r As DataGridViewRow In dgvKundenUID.SelectedRows
                        Dim UID_KUNDE As New cKundenveranlagungUID(KUNDE.KundenNr, r.Cells("UstIdKz").Value)
                        UID_KUNDE.DELETE
                    Next

                    initdgvKUNDENUID(KUNDE.KundenNr)

                End If
            End If

        End If


    End Sub
End Class
