Imports GrapeCity.ActiveReports
Imports Gemeinsames

Public Class frmNacherfassungNEU

    ' Public WithEvents bindingSPEDBUCH As New cEasyBinding("FMZOLL") 'fürs Binding
    '  Public WithEvents bindingVorkosten As New cBinding("FMZOLL") 'fürs Binding
    Public newEntry = False
    Dim KDSQL As New SDL.kundenSQL
    Dim SQL As New SQL
    Dim cOptionenDAL As New cOptionenDAL
    '  Public FMZollPersID As Integer = -1
    'Public FMZollPersIDQS As Integer = -1

    Public srchFiliale = ""
    Public srchAbfertigungsnummer = ""
    Public srchUnterNr = ""
    Public avisoLinkId = -1
    Public SendungID = -1
    Dim allowChange = False
    Dim saveByClose = True
    Dim SPEDITIONSBUCH As New VERAG_PROG_ALLGEMEIN.cSpeditionsbuch
    Dim SPED_LIST As VERAG_PROG_ALLGEMEIN.cSpeditionsbuchList
    Dim loaded As Boolean = False
    Event VALUE_CHANGED(c As Control)
    Dim AVISO As VERAG_PROG_ALLGEMEIN.caviso = Nothing
    Dim ev_ready As Boolean = False

    Public loadOnlyAvisoStart As Boolean = False
    ' Public Sub initDataBinding()
    Dim WithEvents timerBG As New Timer


    Sub Speditionsbuch_Daten_laden()
        Me.Enabled = False
        Me.Cursor = Cursors.WaitCursor
        ev_ready = False
        'SPEDITIONSBUCH.NewUNTER_NR() 'UnterNr wird vergeben
        Label26.ForeColor = Color.Black
        ' initDataBinding()

        SPEDITIONSBUCH.LOAD()

        'If newEntry Then

        'SPEDITIONSBUCH.Abfertigungsdatum = Now.ToShortDateString
        ' If FMZollPersID > 0 Then SPEDITIONSBUCH.Personalnummer = FMZollPersID
        ' If FMZollPersIDQS > 0 Then SPEDITIONSBUCH.PersonalnummerQS = FMZollPersIDQS

        ' Else
        ' SPEDITIONSBUCH.LOAD(srchFiliale, srchAbfertigungsnummer, srchUnterNr)
        ' End If
        ' showAll()

        lblZollsys.Visible = False

        Try
            Dim sbWhere = ""


            If Not SPEDITIONSBUCH.hasEntry Then ' nur wenn noch kein Eintrag, später muss das Feld befüllt sein und es sollte für jeden ersichtlich sein.
                If SendungID > 0 Then SPEDITIONSBUCH.SendungID = SendungID 'SendungsId übernehmen
                If avisoLinkId > 0 Then SPEDITIONSBUCH.AvisoID = avisoLinkId 'AVisoId übernehmen
                Select Case VERAG_PROG_ALLGEMEIN.cAllgemein.FIRMA
                    Case "ATILLA" : sbWhere = " AND Niederlassung = 'SUA' "
                    Case "IMEX" : sbWhere = " AND Mandant <> 'UNAT'  AND Niederlassung <> 'SUA'  "'sbWhere = " AND Mandant = 'IMEX' "
                    Case "UNISPED" : sbWhere = " AND Mandant = 'UNAT' "
                    Case "FRONTOFFICE" : sbWhere = " AND Niederlassung <> 'SUA' "
                    Case "VERIMEX" : sbWhere = " AND Mandant <> 'UNAT'  "
                    Case Else
                        'If AVISO IsNot Nothing Then
                        '    Select Case AVISO.Grenzstelle
                        '        Case "SUB" : sbWhere = " AND Niederlassung IN ('SUB')"
                        '        Case "NKD" : sbWhere = " AND Niederlassung IN ('NKD')"
                        '        Case "SBG" : sbWhere = " AND Niederlassung IN ('SBG')"
                        '        Case "WAI" : sbWhere = " AND Niederlassung IN ('WAI')"
                        '    End Select
                        'End If
                        sbWhere = " AND Mandant <> 'UNAT'  AND Niederlassung <> 'SUA'  " '" AND Mandant <> 'IMEX' AND Mandant <> 'UNAT'  AND Niederlassung <> 'SUA' "
                End Select
                'Else
                '    Select Case SPEDITIONSBUCH.FilialenNr
                '        Case 4801 : sbWhere = " AND Niederlassung = 'SUA' "
                '        Case 5501 : sbWhere = " AND Mandant = 'IMEX' "
                '        Case Else
                '            'If AVISO IsNot Nothing Then
                '            'Select Case AVISO.Grenzstelle
                '            '    Case "SUB" : sbWhere = " AND Niederlassung IN ('SUB')"
                '            '    Case "NKD" : sbWhere = " AND Niederlassung IN ('NKD')"
                '            '    Case "SBG" : sbWhere = " AND Niederlassung IN ('SBG')"
                '            '    Case "WAI" : sbWhere = " AND Niederlassung IN ('WAI')"
                '            'End Select
                '            'End If
                '            sbWhere = " AND Mandant <> 'IMEX' "
                '    End Select
                '    cboSachbearbeiter.Items.Clear()
                '    cboSachbearbeiter.fillWithSQL("SELECT  ID,/*cast(ID as nvarchar(3)) +' ' + Name as*/ Name FROM Personal WHERE [Status]<>'L' " & sbWhere & " and [SBSichtbar]=1  ORDER BY Name ", False, "FMZOLL", True)

            End If


            cboSachbearbeiter.Items.Clear()
            cboSachbearbeiter.fillWithSQL("SELECT  ID,/*cast(ID as nvarchar(3)) +' ' + Name as*/ Name FROM Personal WHERE [Status]<>'L' " & sbWhere & " and [SBSichtbar]=1  ORDER BY Name ", False, "FMZOLL", True)

            If SQL.getValueTxtBySql("SELECT count(*) FROM tblAbfertigungsartenFiliale WHERE Filialennr='" & cboFiliale._value & "'", "FMZOLL") > 0 Then
                '  cboAbfertigungsart.fillWithSQL("SELECT Abfertigungsarten.Abfertigungsart,[Abfertigungsbezeichnung] FROM [Abfertigungsarten] INNER JOIN tblAbfertigungsartenFiliale ON tblAbfertigungsartenFiliale.Abfertigungsart=Abfertigungsarten.Abfertigungsart  where Filialennr=" & cboFiliale._value & "", True, "FMZOLL", True)
                initAbfertigungsart()
            End If

            If Not SPEDITIONSBUCH.hasEntry Then
                SPEDITIONSBUCH.Währungsschlüssel = 900
                SPEDITIONSBUCH.Abfertigungsdatum = Now.ToShortDateString
                SPEDITIONSBUCH.Sachbearbeiter = VERAG_PROG_ALLGEMEIN.cAllgemein.USRKURZNAME

            End If

            loaddata()


            cboFiliale.Enabled = False
            txtAbfertigungsnummer.Enabled = False
            txtUnterNr.Enabled = False

            allowChange = True


            If VERAG_PROG_ALLGEMEIN.cBerechtignunen.CHECK_BERECHTIGUNG_bool("FISKAL", "SDL") And (SPEDITIONSBUCH.FilialenNr = 4805 Or SPEDITIONSBUCH.FilialenNr = 4811 Or SPEDITIONSBUCH.FilialenNr = 5501 Or SPEDITIONSBUCH.FilialenNr = 5601 Or SPEDITIONSBUCH.FilialenNr = 5801) Then
                pnlFiskal.Visible = True
            Else
                pnlFiskal.Visible = False
            End If
            '  MsgBox("8")
            'btnsave.Enabled = False
        Catch ex As Exception
            MsgBox("ERR: " & ex.Message)
            MsgBox("ERR: " & ex.StackTrace)
        End Try

        btnWeiter.Visible = False
        Me.Enabled = False


        showAll()
        btnOK.Focus()

        SPED_LIST = New VERAG_PROG_ALLGEMEIN.cSpeditionsbuchList(SPEDITIONSBUCH.FilialenNr, SPEDITIONSBUCH.AbfertigungsNr)
        lblSendungen.Text = "NEU"
        For i = 1 To SPED_LIST.LIST.Count
            If SPED_LIST.LIST(i - 1).UnterNr = SPEDITIONSBUCH.UnterNr Then
                lblSendungen.Text = i & "/" & SPED_LIST.LIST.Count
            End If
        Next


        cboNiederlassung.SelectedIndex = 0
        Select Case SPEDITIONSBUCH.FilialenNr
            Case 4803, 4809
                cboNiederlassung.Text = "SUB"
            Case 4801
                cboNiederlassung.Text = "SUW"
            Case 5003
                cboNiederlassung.Text = "SBG" 'ANDERER DERVER!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
            Case 5103
                cboNiederlassung.Text = "WAI"
        End Select

        ev_ready = True
        Me.Enabled = True
        Me.Cursor = Cursors.Default

    End Sub

    Sub loaddata()
        txtEmpfaenger.KdNr = -1
        txtAbsender.KdNr = -1
        txtAuftraggeber.KdNr = -1
        txtFraechter.KdNr = -1
        txtAvisierer.KdNr = -1
        txtEndEmpf.KdNr = -1
        cboAbfertigungsLand.changeItem(SPEDITIONSBUCH.Zollsystem_Land)

        cboAbfertigungsart.changeItem(SPEDITIONSBUCH.Abfertigungsart)
        If cboAbfertigungsart._value = "" And cboAbfertigungsart.Items.Count = 2 Then
            cboAbfertigungsart.SelectedItem = cboAbfertigungsart.Items(1)
        End If


        checkinitOLDAbfertigungsart(SPEDITIONSBUCH.Abfertigungsart)

        cboVersendungsland._value = SPEDITIONSBUCH.Versendungsland
        cboBestimmungsland._value = SPEDITIONSBUCH.Bestimmungsland
        ' MsgBox(SPEDITIONSBUCH.PersonalnummerQS & " ------ " & CStr(If(SPEDITIONSBUCH.PersonalnummerQS, "")))
        cboSachbearbeiter.changeItem(CStr(If(SPEDITIONSBUCH.Personalnummer, "")))
        cboQuickStopMa.changeItem(CStr(If(SPEDITIONSBUCH.PersonalnummerQS, "")))

        txtT1Verzollungsadresse.Text = SPEDITIONSBUCH.NCTS_Verzollungsadresse

        cboSgutKompl.Text = SPEDITIONSBUCH.SgutKompl
        '   MsgBox("3
        txtAnzahl.Text = SPEDITIONSBUCH.Abfertigungsanzahl
        txtBarzahlungsbetrag._value = SPEDITIONSBUCH.Barzahlungsbetrag

        If SPEDITIONSBUCH.Abfertigungsdatum Is Nothing Then
            datAbfertigungsdatum.Checked = False
        Else
            datAbfertigungsdatum.Checked = True
            datAbfertigungsdatum.Value = SPEDITIONSBUCH.Abfertigungsdatum
        End If

        txtAbsender.Text = SPEDITIONSBUCH.Absender
        ' SPEDITIONSBUCH.AbsenderKundenNr = Nothing
        If SPEDITIONSBUCH.AbsenderKundenNr > 0 Then txtAbsender.KdNr = SPEDITIONSBUCH.AbsenderKundenNr
        cboAbsenderOffert._value = SPEDITIONSBUCH.AbsenderOffertenNr

        txtEmpfaenger.Text = SPEDITIONSBUCH.Empfänger
        If SPEDITIONSBUCH.EmpfängerKundenNr > 0 Then txtEmpfaenger.KdNr = SPEDITIONSBUCH.EmpfängerKundenNr
        cboEmpfaengerOffert._value = SPEDITIONSBUCH.EmpfängerOffertenNr


        txtAuftraggeber.Text = SPEDITIONSBUCH.Vermittler
        If SPEDITIONSBUCH.VermittlerKundenNr > 0 Then txtAuftraggeber.KdNr = SPEDITIONSBUCH.VermittlerKundenNr
        '  MsgBox("ABF: " & cboAuftraggeberOffert.Items.Count)
        cboAuftraggeberOffert._value = SPEDITIONSBUCH.VermittlerOffertenNr



        txtFraechter.Text = SPEDITIONSBUCH.Frachtführer
        If SPEDITIONSBUCH.FrachtführerKundenNr > 0 Then txtFraechter.KdNr = SPEDITIONSBUCH.FrachtführerKundenNr

        txtAvisierer.Text = SPEDITIONSBUCH.Avisierer
        If SPEDITIONSBUCH.AvisiererKundenNr > 0 Then txtAvisierer.KdNr = SPEDITIONSBUCH.AvisiererKundenNr

        txtEndEmpf.Text = SPEDITIONSBUCH.Endempfänger
        If SPEDITIONSBUCH.EndempfängerKundenNr > 0 Then txtEndEmpf.KdNr = SPEDITIONSBUCH.EndempfängerKundenNr

        txtAtlasBezNrEZA.Text = SPEDITIONSBUCH.AtlasBezNrEZA
        txtAtlasBezNrAES.Text = SPEDITIONSBUCH.AtlasBezNrAES
        txtAtlasBezNrNCTS.Text = SPEDITIONSBUCH.AtlasBezNrNCTS
        Select Case VERAG_PROG_ALLGEMEIN.cAllgemein.FIRMA
            Case "IMEX"
                ' cboZollsystem.changeItem("D")
                cboZollsystem.changeItem(SPEDITIONSBUCH.Zollsystem)
            Case Else
                cboZollsystem.changeItem(SPEDITIONSBUCH.Zollsystem)
        End Select

        txtLKWId.Text = If(SPEDITIONSBUCH.AvisoID, "")
        txtEUFiskalEmpf.Text = SPEDITIONSBUCH.EuFiskalEmpfänger
        MyTextBoxLKWKz.Text = SPEDITIONSBUCH.LKW_Kennzeichen
        ' datAvisUhrzeit.Value = SPEDITIONSBUCH.AvisUhrzeit
        If IsDate(SPEDITIONSBUCH.AvisUhrzeit) Then
            datAvisUhrzeit.Checked = True
            If CDate(SPEDITIONSBUCH.AvisUhrzeit) < CDate("01.01.1990") Then
                datAvisUhrzeit.Value = CDate(CDate(SPEDITIONSBUCH.Abfertigungsdatum).ToShortDateString & " " & CDate(SPEDITIONSBUCH.AvisUhrzeit).ToShortTimeString)
            Else
                datAvisUhrzeit.Value = SPEDITIONSBUCH.AvisUhrzeit
            End If
        Else
            datAvisUhrzeit.Value = Now
            datAvisUhrzeit.Checked = False
        End If

        cbxBar.Checked = SPEDITIONSBUCH.Bar
        cbxEIDR.Checked = SPEDITIONSBUCH.UK_EIDR_ausstehend
        cbxFakturiert.Checked = SPEDITIONSBUCH.Fakturiert

        txtBelegNummerZAT1T2.Text = SPEDITIONSBUCH.BelegNr

        txtZA.Text = SPEDITIONSBUCH.AnzahlZA
        txtZAFremd.Text = SPEDITIONSBUCH.AnzahlZAFremd
        txtZnV.Text = SPEDITIONSBUCH.AnzahlZnV
        txtZnVFremd.Text = SPEDITIONSBUCH.AnzahlZnVFremd
        txtT1.Text = SPEDITIONSBUCH.AnzahlT1
        txtT2.Text = SPEDITIONSBUCH.AnzahlT2
        txtAE.Text = SPEDITIONSBUCH.AnzahlAE
        txtCarnetTIR.Text = SPEDITIONSBUCH.AnzahlCarnetTIR
        txtBarvorlagen.Text = SPEDITIONSBUCH.AnzahlBarvorlagen
        txtSonstiges.Text = SPEDITIONSBUCH.AnzahlSonstiges
        txtZuschlaege.Text = SPEDITIONSBUCH.AnzahlGrenzgebühren

        '
        txtZuckerMRN.Text = SPEDITIONSBUCH.Zucker_MRN_Nr
        txtCRN.Text = SPEDITIONSBUCH.QKN
        txtZucker_Datum.Text = SPEDITIONSBUCH.Zucker_MRN_Datum
        txtZucker_Aufschub.Text = SPEDITIONSBUCH.Zucker_Aufschub
        txtRohmasse._value = If(SPEDITIONSBUCH.Rohmasse, "")
        txtRechnungsbetrag._value = If(SPEDITIONSBUCH.Rechnungsbetrag, "")
        cbxWaehrung.changeItem(If(SPEDITIONSBUCH.Währungsschlüssel, ""))
        txtUmrechnungskurs.Text = If(SPEDITIONSBUCH.Umrechnungskurs, "")
        '  txtUmrechnungskurs.Text = SPEDITIONSBUCH.Umrechnungskurs

        txtErfassungsnummer.Text = SPEDITIONSBUCH.ErfassungsNr
        txtVermerk.Text = SPEDITIONSBUCH.Vermerk
        txtBemerkung.Text = SPEDITIONSBUCH.Bemerkungen

        txtPackstuecke.Text = SPEDITIONSBUCH.Packstücke
        txtZahlungsaufschub.Text = SPEDITIONSBUCH.Zahlungsaufschub
        txtKdAuftragsnummer.Text = SPEDITIONSBUCH.KdAuftragsNr
        txtKdAuftragsnummerAvisierer.Text = SPEDITIONSBUCH.KdAuftragsNrAvisierer
        txtKdAuftragsnummerEmpfaenger.Text = SPEDITIONSBUCH.KdAuftragsNrEmpfaenger
        txtKdAuftragsnummerFrachtfuehrer.Text = SPEDITIONSBUCH.KdAuftragsNrFrachtfuehrer

        txtInkasso.Text = If(SPEDITIONSBUCH.AuftraggeberBetragKassiert, "")

        cbxCMR.Checked = SPEDITIONSBUCH.SB_CMR
        txtCMRDatum.Text = If(SPEDITIONSBUCH.SB_CMRDatum, "")
        txtCMRNr.Text = If(SPEDITIONSBUCH.SB_CMRNr, "")

        cboFilialeHandling.changeItem(If(SPEDITIONSBUCH.FilialenNrHandling, ""))
        cboAbklärungFiliale.changeItem(If(SPEDITIONSBUCH.FilialenNrAbklaerung, ""))
        txtHandlingZuKassieren._value = SPEDITIONSBUCH.HandlingZuKassieren

        cboGrenze.changeItem(If(SPEDITIONSBUCH.Grenzstelle, ""))

        lblLastMa.Text = SPEDITIONSBUCH.Sachbearbeiter
        If SPEDITIONSBUCH.AvisoID IsNot Nothing Then avisoLinkId = SPEDITIONSBUCH.AvisoID

        initDgvRg()

        If SPEDITIONSBUCH.Zollsystem = "A" And SPEDITIONSBUCH.AtlasBezNrEZA <> "" Then
            btnATLASPOS.Visible = True
        Else
            btnATLASPOS.Visible = False
        End If
    End Sub


    Sub initDgvRg()
        Try
            With dgvBelege
                .Columns.Clear()
                If tbcntrRg.SelectedTab Is TabPage1 Then

                    If .RowCount > 0 Then .Rows.Clear()
                    If (txtAbfertigungsnummer.Text.Trim <> "" AndAlso IsNumeric(txtAbfertigungsnummer.Text) AndAlso txtAbfertigungsnummer.Text > 0) And (cboFiliale._value.Trim <> "" AndAlso IsNumeric(cboFiliale._value) AndAlso cboFiliale._value > 0) Then
                        .DataSource = SQL.loadDgvBySql("SELECT  rksv_BelegId, rksv_umsatz ,BelegNr,BelegDat,Benutzer,[Name],LKW_Beleg,tblEABelegnummer.Mandant, tblEABelegnummer.Niederlassung FROM [tblEABelegnummer] INNER JOIN Personal ON ID=Benutzer where ((FilialenNr='" & SPEDITIONSBUCH.FilialenNr & "' and AbfertigungsNr='" & SPEDITIONSBUCH.AbfertigungsNr & "' and FilialenNr>0 and AbfertigungsNr>0) OR LKW_id='" & If(SPEDITIONSBUCH.AvisoID, -123456) & "') and storniert=0 and gebuchtstorno=0 order by rksv_BelegId", "FMZOLL")
                        'AND UnterNr='" & SPEDITIONSBUCH.UnterNr & "'  --> Unternr gibts ned
                        'MsgBox("SELECT  rksv_BelegId, rksv_umsatz ,BelegNr,BelegDat,Benutzer FROM [tblEABelegnummer]  where AbfertigungsNr='" & txtAbfertigungsnummer.Text & "' and FilialenNr='" & cboFiliale._value & "' and storniert=0 and gebuchtstorno=0 order by rksv_BelegId")
                        .Columns("rksv_BelegId").HeaderText = "Beleg-Id"
                        .Columns("rksv_BelegId").Width = 70
                        .Columns("rksv_BelegId").DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter
                        .Columns("rksv_umsatz").HeaderText = "Betrag"
                        .Columns("rksv_umsatz").Width = 70
                        .Columns("rksv_umsatz").DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleRight
                        .Columns("rksv_umsatz").DefaultCellStyle.Format = "C"
                        .Columns("BelegNr").Visible = False
                        .Columns("BelegDat").Visible = False
                        .Columns("Mandant").Visible = False
                        .Columns("Niederlassung").Visible = False
                        .Columns("Benutzer").Visible = False
                        .Columns("LKW_Beleg").HeaderText = "LKW"
                        .Columns("LKW_Beleg").Width = 35
                        .Columns("Name").HeaderText = "Kassen-Benutzer"
                        .Columns("Name").MinimumWidth = 70
                        .Columns("Name").AutoSizeMode = DataGridViewAutoSizeColumnMode.Fill
                        .RowTemplate.Height = 18
                    End If

                ElseIf tbcntrRg.SelectedTab Is TabPage2 Then
                    Dim sqlStr = ""
                    sqlStr &= "  SELECT TOP 1000 RK_ID,[RechnungsNr],[RechnungsDatum],"
                    sqlStr &= " ( SELECT SUM(isnull([SteuerpflichtigerBetrag],0)+isnull([SteuerfreierBetrag],0))  FROM [RechnungsausgangPositionen] where [RechnungsausgangPositionen].RK_ID=[Rechnungsausgang].RK_ID ) as Rechnungsbetrag,"
                    sqlStr &= " Sammelrechnung, isnull(cast(RechnungsKundenNr as nvarchar(7)) + ' ','') + [RechnungsName 1] as [RechnungAn] "
                    '   sqlStr &= "Sachbearbeiter "
                    sqlStr &= " FROM [Rechnungsausgang] WHERE FilialenNr='" & SPEDITIONSBUCH.FilialenNr & "' and AbfertigungsNr='" & SPEDITIONSBUCH.AbfertigungsNr & "' AND [SpeditionsbuchUnterNr]='" & SPEDITIONSBUCH.UnterNr & "' "
                    sqlStr &= " order by RechnungsDatum"

                    .DataSource = SQL.loadDgvBySql(sqlStr, "FMZOLL")

                    '.AutoSizeColumnsMode = DataGridViewAutoSizeColumnsMode.AllCells

                    .Columns("RK_ID").Visible = False

                    .Columns("RechnungsNr").Width = 70
                    .Columns("RechnungsNr").HeaderText = "Rechnugs-Nr"
                    .Columns("RechnungsNr").HeaderCell.Style.Alignment = DataGridViewContentAlignment.TopCenter
                    .Columns("RechnungsNr").DefaultCellStyle.Alignment = DataGridViewContentAlignment.TopCenter

                    .Columns("RechnungsDatum").Width = 100
                    .Columns("RechnungsDatum").HeaderText = "Rg-Dat."
                    .Columns("RechnungsDatum").HeaderCell.Style.Alignment = DataGridViewContentAlignment.TopCenter
                    .Columns("RechnungsDatum").DefaultCellStyle.Alignment = DataGridViewContentAlignment.TopCenter

                    .Columns("Sammelrechnung").Width = 45
                    .Columns("Sammelrechnung").HeaderText = "SR"

                    .Columns("Rechnungsbetrag").Width = 100
                    .Columns("Rechnungsbetrag").HeaderText = "Rechnungsbetrag"
                    .Columns("Rechnungsbetrag").DefaultCellStyle.Format = "C"
                    .Columns("Rechnungsbetrag").DefaultCellStyle.Alignment = DataGridViewContentAlignment.TopRight

                    .Columns("RechnungAn").MinimumWidth = 150
                    .Columns("RechnungAn").HeaderText = "Rechnung an"
                    .Columns("RechnungAn").AutoSizeMode = DataGridViewAutoSizeColumnMode.Fill

                    '.Columns("Sachbearbeiter").MinimumWidth = 100
                    ' .Columns("Sachbearbeiter").AutoSizeMode = DataGridViewAutoSizeColumnMode.Fill

                ElseIf tbcntrRg.SelectedTab Is TabPage3 Then
                    If SPEDITIONSBUCH.AvisoID Is Nothing Then Exit Sub
                    Dim sqlStr = ""
                    sqlStr &= "  SELECT  [dy_Id],[dy_ART],[dy_BezugsNr],[dy_Status] FROM [tblDakosy_Zollanmeldungen] WHERE dy_AvisoId='" & SPEDITIONSBUCH.AvisoID & "'"
                    .DataSource = SQL.loadDgvBySql(sqlStr, "FMZOLL")
                    'MsgBox(sqlStr)
                    If .Columns.Count <= 0 Then Exit Sub
                    'Ä.Columns("txtStatus").ReadOnly = False
                    .Columns("dy_Id").Visible = False
                    '.Columns("dy_Status").Visible = False
                    .Columns("dy_ART").HeaderText = "Art"
                    .Columns("dy_ART").Width = 60
                    .Columns("dy_BezugsNr").HeaderText = "BezugsNr"
                    .Columns("dy_BezugsNr").AutoSizeMode = DataGridViewAutoSizeColumnMode.Fill

                    Dim c As New DataGridViewTextBoxColumn
                    c.Name = "txtStatus"
                    .Columns.Add(c)

                    .Columns("txtStatus").HeaderText = "Status"
                    .Columns("txtStatus").Width = 100
                    For Each r As DataGridViewRow In .Rows
                        r.Cells("txtStatus").Value = DAKOSY_Worker.cDY_Statusliste.getTxtByCode2(r.Cells("dy_Status").Value, r.Cells("dy_ART").Value, r.Cells("txtStatus").Value, r.Cells("txtStatus").Style.BackColor)
                    Next
                    '        .ReadOnly = True
                ElseIf tbcntrRg.SelectedTab Is TabPage4 Then
                    .Columns.Clear()
                    .DataSource = Nothing
                    .DataBindings.Clear()
                    .Columns.Add("clmnAnhaengeDokId", "")
                    .Columns.Add("clmnAnhaenge", "Zollanhänge")
                    .Columns(0).Visible = False
                    .Columns(1).AutoSizeMode = DataGridViewAutoSizeColumnMode.Fill
                    '     .ReadOnly = True
                    If SPEDITIONSBUCH IsNot Nothing Then
                        If SPEDITIONSBUCH.DokumentId_VBD IsNot Nothing Then .Rows.Add({SPEDITIONSBUCH.DokumentId_VBD.ToString, "VBD - Versandbegleitdokument"})
                        If SPEDITIONSBUCH.DokumentId_ABD IsNot Nothing Then .Rows.Add({SPEDITIONSBUCH.DokumentId_ABD.ToString, "ABD - Ausfuhrbegleitdokument"})
                        If SPEDITIONSBUCH.DokumentId_AVM IsNot Nothing Then .Rows.Add({SPEDITIONSBUCH.DokumentId_AVM.ToString, "AVM - Ausgangsvermerk"})
                        If SPEDITIONSBUCH.DokumentId_Steuerbeleg IsNot Nothing Then .Rows.Add({SPEDITIONSBUCH.DokumentId_Steuerbeleg.ToString, "Steuerbescheid"})
                        If SPEDITIONSBUCH.DokumentId_Mitteilung IsNot Nothing Then .Rows.Add({SPEDITIONSBUCH.DokumentId_Mitteilung.ToString, "Mitteilung (AT)"})
                    End If
                End If
            End With
        Catch ex As Exception
            MsgBox("Belege-ERR: " & ex.Message & ex.StackTrace)
        End Try

    End Sub
    Sub initHandling()
        SPEDITIONSBUCH.LOAD_UNTERPOS()
        pnlHandling.Controls.Clear()
        'For Each r As DataRow In SQL.loadDgvBySql("SELECT Abfertigungsart,Abfertigungsbezeichnung  FROM Abfertigungsarten WHERE isHandlingArt=1 ORDER BY Abfertigungsbezeichnung ", "FMZOLL").Rows
        For Each r As DataRow In SQL.loadDgvBySql("SELECT *  FROM tblSpeditionsbuchUnterPosArten ORDER BY sbupa_bez", "FMZOLL").Rows
            Dim usr As New VERAG_PROG_ALLGEMEIN.usrcntlUnterposEntry
            usr.lblBezeichnung.Text = r("sbupa_bez")
            usr.UnterPosArt = r("sbupa_id")
            usr.txtAnzahl.Text = "0"
            For Each u In SPEDITIONSBUCH.UNTERPOS
                If u.sbup_UnterPosArt = r("sbupa_id") Then
                    usr.Anzahl = u.sbup_Anzahl
                    usr.txtAnzahl.Text = u.sbup_Anzahl
                    Exit For
                End If
            Next
            pnlHandling.Controls.Add(usr)
        Next
    End Sub

    Sub dgvCellToCbo(dgv As DataGridView, columnIndex As Integer, HeaderText As String, DataPropertyName As String, sqlstr As String, Optional conn_art As String = "SDL", Optional dropdownwidth As Integer = -1)
        Dim comboBoxColumn As New DataGridViewComboBoxColumn
        With comboBoxColumn
            .HeaderText = HeaderText : .DataPropertyName = DataPropertyName
            .Name = DataPropertyName
            .DataSource = SQL.loadDgvBySql(sqlstr, conn_art)
            .ValueMember = .DataSource.Columns(0).ColumnName
            .DisplayMember = .DataSource.Columns(1).ColumnName
            .FlatStyle = FlatStyle.Flat
            If dropdownwidth > 0 Then .DropDownWidth = dropdownwidth
        End With
        dgv.Columns.RemoveAt(columnIndex)
        dgv.Columns.Insert(columnIndex, comboBoxColumn)
    End Sub




    Public Sub initB(b As Binding, bindingSource As BindingSource, bindingParam As String, bindingDBname As String)
        If Not b Is Nothing Then Me.DataBindings.Remove(b)
        b = New Binding(bindingParam, bindingSource, bindingDBname)
        Me.DataBindings.Add(b)
    End Sub


    Function getKdNrFromSearch() As String
        Dim testDialog As New SDL.frmKundenSuche
        If testDialog.ShowDialog(Me) = System.Windows.Forms.DialogResult.OK Then
            Return testDialog.kundenNrSearch.Text
        Else
            Return ""
        End If
    End Function
    Private Sub Button1_Click(sender As Object, e As EventArgs) Handles btnAbsSrch.Click
        Dim tmpKdNr As String = getKdNrFromSearch()
        If tmpKdNr <> "" Then txtAbsender.KdNr = tmpKdNr
    End Sub
    Private Sub Button4_Click(sender As Object, e As EventArgs) Handles btnEmpfSrch.Click
        Dim tmpKdNr As String = getKdNrFromSearch()
        If tmpKdNr <> "" Then txtEmpfaenger.KdNr = tmpKdNr
    End Sub

    Private Sub Button2_Click(sender As Object, e As EventArgs) Handles btnAuftrSrch.Click
        Dim tmpKdNr As String = getKdNrFromSearch()
        If tmpKdNr <> "" Then txtAuftraggeber.KdNr = tmpKdNr
    End Sub

    Private Sub Button3_Click(sender As Object, e As EventArgs) Handles btnFrachtfSrch.Click
        Dim tmpKdNr As String = getKdNrFromSearch()
        If tmpKdNr <> "" Then txtFraechter.KdNr = tmpKdNr
    End Sub

    Private Sub btnAvisiererSrch_Click(sender As Object, e As EventArgs) Handles btnAvisiererSrch.Click
        Dim tmpKdNr As String = getKdNrFromSearch()
        If tmpKdNr <> "" Then txtAvisierer.KdNr = tmpKdNr
    End Sub



    Private Sub Button5_Click(sender As Object, e As EventArgs) Handles btnEndEmpfSrch.Click
        Dim tmpKdNr As String = getKdNrFromSearch()
        If tmpKdNr <> "" Then txtEndEmpf.KdNr = tmpKdNr
    End Sub

    Private Sub frmNacherfassung_FormClosing(sender As Object, e As FormClosingEventArgs) Handles Me.FormClosing
        If saveByClose Then
            If Not updateMe() Then e.Cancel = True
        End If
        saveByClose = True

        Exit Sub
        ' If btnsave.Enabled Then
        Select Case MsgBox("Möchten Sie die Daten speichern?", vbYesNoCancel)
            Case vbYes
                If Not updateMe() Then e.Cancel = True
            Case vbNo : e.Cancel = False
            Case vbCancel : e.Cancel = True
        End Select
        ' End If
    End Sub

    Private Sub frmNacherfassung_Load1(sender As Object, e As EventArgs) Handles Me.Load
        timerBG.Interval = 2000
        txtAuftraggeber.initKdBox(Me, txtAuftraggeberKdNr)
        txtAbsender.initKdBox(Me, txtAbsenderKdNr)
        txtEmpfaenger.initKdBox(Me, txtEmpfaengerKdNr)
        txtEndEmpf.initKdBox(Me, txtEndEmpfKdNr)
        txtEUFiskalEmpf.initKdBox(Me)
        txtFraechter.initKdBox(Me, txtFraechterKdNr)
        txtAvisierer.initKdBox(Me, txtAvisiererKdNr)

        AddHandler txtAbsender.PropertyChanged, Sub()
                                                    'txtAbsender.Text = SQL.getValueTxtBySql("SELECT Ordnungsbegriff FROM AdrtxtFraechteressen WHERE AdressenNr=" & txtAbsenderKdNr.Text & "".FMZOLL
                                                    cboAbsenderOffert.Items.Clear()
                                                    If txtAbsender.KdNr_value > 0 Then cboAbsenderOffert.fillWithSQL(" SELECT Offerten.OffertenNr,Offertenstamm.OffertenBez  FROM Offerten INNER JOIN [Offertenstamm] ON [Offertenstamm].OffertenNr=Offerten.OffertenNr  WHERE Offerten.KundenNr='" & txtAbsender.KdNr_value & "' ORDER BY Offerten.OffertenNr ", True, "FMZOLL")
                                                    If cboAbsenderOffert.Items.Count = 1 Then cboAbsenderOffert.SelectedIndex = 0
                                                End Sub

        AddHandler txtEmpfaenger.PropertyChanged, Sub()
                                                      '  txtEmpfaenger.Text = SQL.getValueTxtBySql("SELECT Ordnungsbegriff FROM Adressen WHERE AdressenNr=" & txtEmpfaengerKdNr.Text & "".FMZOLL
                                                      cboEmpfaengerOffert.Items.Clear()
                                                      If txtEmpfaenger.KdNr_value > 0 Then cboEmpfaengerOffert.fillWithSQL(" SELECT Offerten.OffertenNr,Offertenstamm.OffertenBez  FROM Offerten INNER JOIN [Offertenstamm] ON [Offertenstamm].OffertenNr=Offerten.OffertenNr  WHERE Offerten.KundenNr='" & txtEmpfaenger.KdNr_value & "' ORDER BY Offerten.OffertenNr ", True, "FMZOLL")
                                                      If cboEmpfaengerOffert.Items.Count = 1 Then cboEmpfaengerOffert.SelectedIndex = 0
                                                  End Sub
        AddHandler txtAuftraggeber.PropertyChanged, Sub()
                                                        '  txtAuftraggeber.Text = SQL.getValueTxtBySql("SELECT Ordnungsbegriff FROM Adressen WHERE AdressenNr=" & txtAuftraggeberKdNr.Text & "".FMZOLL
                                                        cboAuftraggeberOffert.Items.Clear()
                                                        If txtAuftraggeber.KdNr_value > 0 Then cboAuftraggeberOffert.fillWithSQL(" SELECT Offerten.OffertenNr,Offertenstamm.OffertenBez  FROM Offerten INNER JOIN [Offertenstamm] ON [Offertenstamm].OffertenNr=Offerten.OffertenNr  WHERE Offerten.KundenNr='" & txtAuftraggeber.KdNr_value & "' ORDER BY Offerten.OffertenNr ", True, "FMZOLL")
                                                        If cboAuftraggeberOffert.Items.Count = 1 Then cboAuftraggeberOffert.SelectedIndex = 0
                                                    End Sub


        cboFiliale.fillWithSQL("SELECT FilialenNr, cast(FilialenNr as varchar(4)) + ' ' + Grenzstelle FROM Filialen WHERE Fil_Status='A' ORDER BY FilialenNr ", True, "FMZOLL", True)
        cboFilialeHandling.fillWithSQL("SELECT FilialenNr, cast(FilialenNr as varchar(4)) + ' ' + Grenzstelle FROM Filialen WHERE Fil_Status='A' ORDER BY FilialenNr ", True, "FMZOLL", True)
        cboAbklärungFiliale.fillWithSQL("SELECT FilialenNr, cast(FilialenNr as varchar(4)) + ' ' + Grenzstelle FROM Filialen WHERE Fil_Status='A' ORDER BY FilialenNr ", True, "FMZOLL", True)


        Dim where = ""
        Select Case VERAG_PROG_ALLGEMEIN.cAllgemein.FIRMA
            Case "IMEX" : cboFiliale._allowedValuesFreiText = {"5501"} : where = " AND mit_firma IN ('IMEX','BEIDE') "
            Case "UNISPED" : cboFiliale._allowedValuesFreiText = {"5601"} : where = " AND mit_firma IN ('UNISPED','BEIDE') "
            Case "FRONTOFFICE" : where = " AND mit_firma NOT IN ('ATILLA') "
            Case "ATILLA" : cboFiliale._allowedValuesFreiText = {"4801", "4802"}
            Case "VERIMEX" : cboFiliale._allowedValuesFreiText = {"6001"}
            Case Else : where = " AND mit_firma NOT IN ('IMEX','UNISPED','AMBAR','FRONTOFFICE') "
        End Select

        ' cboQuickStopMa.fillWithSQL("SELECT  ID,cast(ID as nvarchar(3)) +' ' + Name as Name FROM Personal WHERE [Status]<>'L' ORDER BY Name ", False, "FMZOLL", True)
        cboQuickStopMa.fillWithSQL("SELECT [mit_id],[mit_vname] + ' '+ [mit_nname] as NAME " &
                                 " FROM [tblMitarbeiter] WHERE mit_niederlassung IN ('SUB','Suben')  AND mit_abteilung='QS' AND [mit_gekuendigt]=0  " & where & " order by name", False, "ADMIN", True)

        'ComboBox1.fillWithSQL("SELECT [Abfertigungsart],[Abfertigungsbezeichnung]  FROM [Abfertigungsarten] ORDER BY Abfertigungsart ", True, "FMZOLL")

        Dim LänderSql = "SELECT LandKz as Kz,cast(LandKz as nvarchar(8)) + ' - ' + LandBez as Bez FROM [Länderverzeichnis für die Außenhandelsstatistik] " &
                         " union " &
                       " SELECT RIGHT('00'+CAST(LänderNr AS VARCHAR(2)),2)  as Kz,RIGHT('00'+CAST(LänderNr AS VARCHAR(2)),2) + ' - ' + [LänderBez] as Bez FROM [Länder der Bundesrepublik Deutschland] " &
                       " ORDER BY Kz "
        cboVersendungsland.fillWithSQL(LänderSql, False, "FMZOLL", True)
        cboBestimmungsland.fillWithSQL(LänderSql, False, "FMZOLL", True)
        cbxWaehrung.fillWithSQL("  SELECT LandNr, isnull(Währungscode + ' - '  ,'') + LandBez    + ' (' + cast(LandNr as varchar(8)) + ')' FROM [Länderverzeichnis für die Außenhandelsstatistik] ORDER BY case when Währungscode is null then 1 else 0 end,LandBez ", False, "FMZOLL", True)
        '   cboAbfertigungsart.fillWithSQL(" SELECT [Abfertigungsart],cast([Abfertigungsart] as char(2)) + ' ' + [Abfertigungsbezeichnung] FROM [Abfertigungsarten] ORDER BY Abfertigungsart ", False, "FMZOLL", True)

        cboAbfertigungsLand.fillWithSQL("SELECT [AbfertigungsLand],[AbfertigungsLand] FROM [AbfertigungsLaender] WHERE Firma='" & VERAG_PROG_ALLGEMEIN.cAllgemein.FIRMA & "' OR Cluster='" & VERAG_PROG_ALLGEMEIN.cAllgemein.CLUSTER & "' OR (Firma is null and cluster is null)", False, "FMZOLL", True)
        cboZollsystem.fillWithSQL("SELECT [Zollsystemart],Zollsystembezeichnung FROM [Zollsysteme] ORDER BY Zollsystemart", False, "FMZOLL", True)
        'cboAbfertigungsart.fillWithSQL("SELECT Abfertigungsart,[Abfertigungsbezeichnung]  FROM [Abfertigungsarten]", True, "FMZOLL", True)

        Select Case VERAG_PROG_ALLGEMEIN.cAllgemein.FIRMA

            Case "FRONTOFFICE"
                cboZollsystem.Items.Add(New VERAG_PROG_ALLGEMEIN.MyListItem("", ""))
                cboZollsystem.Items.Add(New VERAG_PROG_ALLGEMEIN.MyListItem("EZOLL", "E"))
                cboZollsystem.Items.Add(New VERAG_PROG_ALLGEMEIN.MyListItem("DAKOSY", "D"))
                cboZollsystem.Items.Add(New VERAG_PROG_ALLGEMEIN.MyListItem("TELOTEC", "T"))
                cboZollsystem.changeItem("D")
                'Case "IMEX"
                '    cboZollsystem.Items.Add(New VERAG_PROG_ALLGEMEIN.MyListItem("", ""))
                '    cboZollsystem.Items.Add(New VERAG_PROG_ALLGEMEIN.MyListItem("DAKOSY", "D"))
                '    cboZollsystem.Items.Add(New VERAG_PROG_ALLGEMEIN.MyListItem("TELOTEC", "T"))
                '    cboZollsystem.changeItem("D")
            Case Else
                'cboZollsystem.Items.Add(New VERAG_PROG_ALLGEMEIN.MyListItem("", ""))
                'cboZollsystem.Items.Add(New VERAG_PROG_ALLGEMEIN.MyListItem("ATLAS (KEWILL)", "A"))
                'cboZollsystem.Items.Add(New VERAG_PROG_ALLGEMEIN.MyListItem("EZOLL", "E"))
                'cboZollsystem.Items.Add(New VERAG_PROG_ALLGEMEIN.MyListItem("TELOTEC", "T"))
                'cboZollsystem.Items.Add(New VERAG_PROG_ALLGEMEIN.MyListItem("DAKOSY", "D"))
                'cboZollsystem.SelectedIndex = 0
        End Select


        cboFiskalSchreiben.Items.Add(New VERAG_PROG_ALLGEMEIN.MyListItem("Empfänger", "EMPF"))
        cboFiskalSchreiben.Items.Add(New VERAG_PROG_ALLGEMEIN.MyListItem("Endempfänger", "ENDEMPF"))
        cboFiskalSchreiben.SelectedIndex = 0


        cboGrenze.Items.Clear()
        cboGrenze.fillWithSQL("SELECT [grz_Grenzstelle],[grz_BezeichnungCBO] FROM tblGrenzstelle where [grz_Firma]='" & VERAG_PROG_ALLGEMEIN.cAllgemein.FIRMA & "' OR grz_Cluster='" & VERAG_PROG_ALLGEMEIN.cAllgemein.CLUSTER & "' AND grz_Aktiv=1 order by grz_Reihenfolge, grz_Grenzstelle", False, "AVISO", True,, "ALLE")
        cboGrenze.Items.Add(New VERAG_PROG_ALLGEMEIN.MyListItem("???", "???"))
        cboGrenze.changeItem("")

        If avisoLinkId > 0 Then
            Dim SQLAVISO As New VERAG_PROG_ALLGEMEIN.cavisoDAL
            Me.AVISO = SQLAVISO.LesenAviso(avisoLinkId, "")
        End If

        initHandler(Me)

        If VERAG_PROG_ALLGEMEIN.cAllgemein.FIRMA = "ATILLA" Then
            cboQuickStopMa.Visible = False
            Label52.Visible = False
        End If

        Dim PersID = -1
        If VERAG_PROG_ALLGEMEIN.cAllgemein.MITARBEITER.mit_FMZollPersID > 0 Then PersID = VERAG_PROG_ALLGEMEIN.cAllgemein.MITARBEITER.mit_FMZollPersID
        If VERAG_PROG_ALLGEMEIN.cAllgemein.MITARBEITER.mit_FMZollPersIDKasseIsnotSpedBuch Then
            If VERAG_PROG_ALLGEMEIN.cAllgemein.MITARBEITER.mit_FMZollPersIDSpedBuch > 0 Then PersID = VERAG_PROG_ALLGEMEIN.cAllgemein.MITARBEITER.mit_FMZollPersIDSpedBuch
        End If

        If PersID > 0 Then
            lblSachbearbeiterIch.Text = "'" & SQL.getValueTxtBySql("SELECT [Name]  FROM [Personal] where ID=" & PersID, "FMZOLL") & "' eintragen"
        End If



        If VERAG_PROG_ALLGEMEIN.cAllgemein.AUTO_ABF_NR Then btnNeueAbfertigungNrVergeben.Visible = True

    End Sub


    Private Sub frmNacherfassung_Shown(sender As Object, e As EventArgs) Handles Me.Shown
        '   MsgBox(srchAbfertigungsnummer)
        If IsNumeric(srchFiliale) AndAlso CInt(srchFiliale) > 0 Then cboFiliale.changeItem(srchFiliale.ToString)
        If IsNumeric(srchAbfertigungsnummer) AndAlso CInt(srchAbfertigungsnummer) > 0 Then txtAbfertigungsnummer.Text = srchAbfertigungsnummer : btnNeueAbfertigungNrVergeben.Visible = False
        If IsNumeric(srchUnterNr) AndAlso CInt(srchUnterNr) >= 0 Then txtUnterNr.Text = srchUnterNr

        loaded = True
        Panel1.Visible = False
        cboSachbearbeiter.Enabled = False
        cboQuickStopMa.Enabled = False


        If KeyParamVorhanden() Then
            SPEDITIONSBUCH.FilialenNr = cboFiliale._value
            SPEDITIONSBUCH.AbfertigungsNr = txtAbfertigungsnummer.Text
            SPEDITIONSBUCH.UnterNr = txtUnterNr.Text

            Speditionsbuch_Daten_laden()
            If Not SpedBuchEintragVorhanden() Then
                'Import_Starten()
                Select Case VERAG_PROG_ALLGEMEIN.cAllgemein.FIRMA
                    Case "IMEX" : txtAtlasBezNrEZA.Focus()
                    Case Else : cboZollsystem.Focus()
                End Select
            End If
        End If

        If loadOnlyAvisoStart And newEntry Then
            IMPORTOnlyAVISO()
        End If


        If Me.Height > Screen.FromRectangle(Me.Bounds).WorkingArea.Size.Height Then
            Me.Height = Screen.FromRectangle(Me.Bounds).WorkingArea.Size.Height
        End If

        If VERAG_PROG_ALLGEMEIN.cAllgemein.FIRMA = "ATILLA" Then
            txtAbfertigungsnummer.Enabled = True
            btnNeueAbfertigungNrVergeben.Visible = False
        End If

        '   txtAnzahl.Visible = (cboAbfertigungsart._value = "23")
    End Sub

    Function KeyParamVorhanden()
        If (IsNumeric(cboFiliale._value) AndAlso cboFiliale._value > 0) And
           (IsNumeric(txtAbfertigungsnummer.Text) AndAlso txtAbfertigungsnummer.Text > 0) And
           (IsNumeric(txtUnterNr.Text) AndAlso txtUnterNr.Text >= 0) Then

            Return True
        Else
            Return False
        End If
    End Function

    Function SpedBuchEintragVorhanden()
        Return SPEDITIONSBUCH.hasEntry
    End Function

    Private Sub Button1_Click_1(sender As Object, e As EventArgs) Handles btnWeiter.Click
        If KeyParamVorhanden() Then
            Speditionsbuch_Daten_laden()
            Select Case VERAG_PROG_ALLGEMEIN.cAllgemein.FIRMA
                Case "IMEX" : txtAtlasBezNrEZA.Focus()
                Case Else : cboZollsystem.Focus()
            End Select
        End If
    End Sub



    Public Sub showAll()
        Me.Enabled = True
        Panel1.Visible = True
        btnImport.Visible = True
        btnPosNrAendern.Visible = True
        btnAbbrechen.Visible = False
        btnDelData.Visible = True
        cboSachbearbeiter.Enabled = True
        cboQuickStopMa.Enabled = True

    End Sub



    Private Sub MyLinkLabelVALUE1_LinkClicked(sender As Object, e As LinkLabelLinkClickedEventArgs) Handles MyLinkLabelVALUE1.LinkClicked
        Dim b As New frmNacherfassungBelegNrEingabe(txtBelegNummerZAT1T2.Text)
        If b.ShowDialog(Me) = Windows.Forms.DialogResult.OK Then
            txtBelegNummerZAT1T2.Text = b.BelegNr
        End If
    End Sub

    Private Sub MyLinkLabelVALUE2_LinkClicked(sender As Object, e As LinkLabelLinkClickedEventArgs) Handles MyLinkLabelVALUE2.LinkClicked
        Dim b As New frmNacherfassungCRNEingabe(txtCRN.Text)
        If b.ShowDialog(Me) = Windows.Forms.DialogResult.OK Then
            txtCRN.Text = b.CRN
        End If
    End Sub

    Private Sub MyLinkLabelVALUE3_LinkClicked(sender As Object, e As LinkLabelLinkClickedEventArgs) Handles MyLinkLabelVALUE3.LinkClicked
        Dim b As New frmNacherfassungZuckerZuckerMRNEingabe(txtZuckerMRN.Text)
        If b.ShowDialog(Me) = Windows.Forms.DialogResult.OK Then
            txtZuckerMRN.Text = b.ZuckerMRN
        End If
    End Sub

    Private Sub Button2_Click_1(sender As Object, e As EventArgs) Handles btnOK.Click
        If updateMe() Then
            saveByClose = False
            Me.Close()
        End If

        'Dim rpt As New Gemeinsames.rptSendungen(VALUES, imgpath, ZOLLANMELDUNG, SENDUNG.HANDLING, SENDUNG.VORKOSTEN)


    End Sub

    Function validValues() As Boolean

        lblErrFiliale.Visible = False
        lblErrAbfertigungsnummer.Visible = False
        lblErrUnterNr.Visible = False
        lblZollsys.Visible = False


        lblErrAbfertigungsart.Visible = False
        lblErrWaehrung.Visible = False
        lblErrAuftraggeber.Visible = False
        lblErrLKWKennzeichen.Visible = False
        lblErrSachbearbeiter.Visible = False
        lblErrPruefAnzahl.Visible = False

        If Not IsNumeric(cboFiliale._value) OrElse cboFiliale._value <= 0 Then lblErrFiliale.Visible = True : Return False
        If Not IsNumeric(txtAbfertigungsnummer.Text) OrElse txtAbfertigungsnummer.Text <= 0 Then lblErrAbfertigungsnummer.Visible = True : Return False
        If Not IsNumeric(txtUnterNr.Text) OrElse txtUnterNr._value < 0 Then lblErrUnterNr.Visible = True : Return False

        SPEDITIONSBUCH.FilialenNr = cboFiliale._value
        SPEDITIONSBUCH.AbfertigungsNr = txtAbfertigungsnummer.Text
        SPEDITIONSBUCH.UnterNr = txtUnterNr.Text

        If Not IsNumeric(txtAnzahl.Text) OrElse txtAnzahl.Text = "0" Then txtAnzahl.Text = "1"
        If Not IsNumeric(cboAbfertigungsart._value) Then lblErrAbfertigungsart.Visible = True : Return False
        If (cboAbfertigungsLand._value) = String.Empty Then lblErrAbfertigungsart.Visible = True : Return False
        If (IsNumeric(txtRechnungsbetrag._value) AndAlso txtRechnungsbetrag._value <> 0) Then
            If (Not IsNumeric(cbxWaehrung._value) OrElse cbxWaehrung._value <= 0) Then lblErrWaehrung.Visible = True : Return False
        End If
        If txtAuftraggeber.Text = "" Then lblErrAuftraggeber.Visible = True : Return False
        If Not IsNumeric(cboAbfertigungsart._value) Then lblErrLKWKennzeichen.Visible = True : Return False
        If cboAbfertigungsart._value <> "10" And cboAbfertigungsart._value <> "20" And cboFiliale._value <> 4839 And cboFiliale._value <> 7002 And cboFiliale._value <> 7003 Then 'Sonstiges und Maut Und LEX --> Kein SB und Brexit AWOR/UNISPED
            If Not IsNumeric(cboSachbearbeiter._value) OrElse cboSachbearbeiter._value <= 0 Then lblErrSachbearbeiter.Visible = True : Return False
        End If
        Return True
    End Function
    Function updateMe() As Boolean
        'If SPEDITIONSBUCH.FilialenNr < 0 Then
        ' Me.labeltofade.ForeColor = New Color(Me.labeltofade.ForeColor, IIf(Me.labeltofade.ForeColor.A - 20 >= 0, Me.labeltofade.ForeColor.A - 20, 0))

        If Not validValues() Then
            pnl.BackColor = Color.Red
            timerBG.Enabled = True
            Return False
        End If

        loadDatainSPEDBUCH()

        If SPEDITIONSBUCH.Abfertigungsart = 23 Then
            Dim sum = 0
            For Each c In pnlHandling.Controls
                If c.GetType.Name = GetType(VERAG_PROG_ALLGEMEIN.usrcntlUnterposEntry).Name Then
                    sum += DirectCast(c, VERAG_PROG_ALLGEMEIN.usrcntlUnterposEntry).Anzahl
                End If
            Next
            If CInt(txtAnzahl.Text) <> sum Then
                lblErrPruefAnzahl.Visible = True
                Return False
            End If
        End If


        SPEDITIONSBUCH.UNTERPOS.Clear()
        If SPEDITIONSBUCH.Abfertigungsart = 23 Then
            For Each c In pnlHandling.Controls
                If c.GetType.Name = GetType(VERAG_PROG_ALLGEMEIN.usrcntlUnterposEntry).Name Then
                    Dim u As VERAG_PROG_ALLGEMEIN.usrcntlUnterposEntry = DirectCast(c, VERAG_PROG_ALLGEMEIN.usrcntlUnterposEntry)
                    SPEDITIONSBUCH.UNTERPOS.Add(New VERAG_PROG_ALLGEMEIN.cSpeditionsbuchUnterPos(SPEDITIONSBUCH.FilialenNr, SPEDITIONSBUCH.AbfertigungsNr, SPEDITIONSBUCH.UnterNr, u.UnterPosArt, u.Anzahl))
                End If
            Next
        End If
        If SPEDITIONSBUCH.SAVE_UNTERPOS() Then
            If SPEDITIONSBUCH.SAVE Then
                SPED_LIST.LOAD_LIST()
                Return True
            End If
        End If

        Return False
    End Function

    Sub loadDatainSPEDBUCH()
        SPEDITIONSBUCH.Abfertigungsart = IIf(IsNumeric(cboAbfertigungsart._value), cboAbfertigungsart._value, Nothing)
        SPEDITIONSBUCH.Zollsystem_Land = cboAbfertigungsLand._value

        SPEDITIONSBUCH.Versendungsland = cboVersendungsland._value
        SPEDITIONSBUCH.Bestimmungsland = cboBestimmungsland._value
        SPEDITIONSBUCH.Personalnummer = IIf(IsNumeric(cboSachbearbeiter._value), cboSachbearbeiter._value, Nothing)
        SPEDITIONSBUCH.PersonalnummerQS = IIf(IsNumeric(cboQuickStopMa._value), cboQuickStopMa._value, Nothing)

        SPEDITIONSBUCH.SgutKompl = IIf(cboSgutKompl.Text <> "", cboSgutKompl.Text, Nothing)
        SPEDITIONSBUCH.Abfertigungsanzahl = IIf(IsNumeric(txtAnzahl.Text), txtAnzahl.Text, Nothing)
        SPEDITIONSBUCH.Barzahlungsbetrag = If(IsNumeric(txtBarzahlungsbetrag._value), CDbl(txtBarzahlungsbetrag._value), Nothing)

        SPEDITIONSBUCH.Abfertigungsdatum = datAbfertigungsdatum.Value.ToShortDateString

        SPEDITIONSBUCH.Absender = txtAbsender.Text
        SPEDITIONSBUCH.AbsenderKundenNr = IIf(CInt(txtAbsender.KdNr_value) > 0, txtAbsender.KdNr_value, Nothing) 'txtAbsenderKdNr.Text
        SPEDITIONSBUCH.AbsenderOffertenNr = IIf(IsNumeric(cboAbsenderOffert._value), cboAbsenderOffert._value, Nothing)

        SPEDITIONSBUCH.Empfänger = txtEmpfaenger.Text
        SPEDITIONSBUCH.EmpfängerKundenNr = IIf(CInt(txtEmpfaenger.KdNr_value) > 0, txtEmpfaenger.KdNr_value, Nothing) 'txtEmpfaengerKdNr.Text
        SPEDITIONSBUCH.EmpfängerOffertenNr = IIf(IsNumeric(cboEmpfaengerOffert._value), cboEmpfaengerOffert._value, Nothing)

        SPEDITIONSBUCH.Vermittler = txtAuftraggeber.Text
        SPEDITIONSBUCH.VermittlerKundenNr = IIf(CInt(txtAuftraggeber.KdNr_value) > 0, txtAuftraggeber.KdNr_value, Nothing) 'txtAuftraggeberKdNr.Text
        SPEDITIONSBUCH.VermittlerOffertenNr = IIf(IsNumeric(cboAuftraggeberOffert._value), cboAuftraggeberOffert._value, Nothing)

        SPEDITIONSBUCH.Frachtführer = txtFraechter.Text
        SPEDITIONSBUCH.FrachtführerKundenNr = IIf(CInt(txtFraechter.KdNr_value) > 0, txtFraechter.KdNr_value, Nothing) 'txtFraechterKdNr.Text

        SPEDITIONSBUCH.Avisierer = txtAvisierer.Text
        SPEDITIONSBUCH.AvisiererKundenNr = IIf(CInt(txtAvisierer.KdNr_value) > 0, txtAvisierer.KdNr_value, Nothing) ' txtAvisiererKdNr.Text

        SPEDITIONSBUCH.Endempfänger = txtEndEmpf.Text
        SPEDITIONSBUCH.EndempfängerKundenNr = IIf(CInt(txtEndEmpf.KdNr_value) > 0, txtEndEmpf.KdNr_value, Nothing) 'txtEndEmpfKdNr.Text

        SPEDITIONSBUCH.NCTS_Verzollungsadresse = txtT1Verzollungsadresse.Text

        SPEDITIONSBUCH.AtlasBezNrEZA = txtAtlasBezNrEZA.Text
        SPEDITIONSBUCH.AtlasBezNrAES = txtAtlasBezNrAES.Text
        SPEDITIONSBUCH.AtlasBezNrNCTS = txtAtlasBezNrNCTS.Text
        SPEDITIONSBUCH.Zollsystem = If(cboZollsystem._value = "", Nothing, cboZollsystem._value)


        SPEDITIONSBUCH.EuFiskalEmpfänger = txtEUFiskalEmpf.Text
        SPEDITIONSBUCH.LKW_Kennzeichen = MyTextBoxLKWKz.Text
        If datAvisUhrzeit.Checked Then
            SPEDITIONSBUCH.AvisUhrzeit = datAvisUhrzeit.Value
        Else
            SPEDITIONSBUCH.AvisUhrzeit = Nothing
        End If


        SPEDITIONSBUCH.UK_EIDR_ausstehend = cbxEIDR.Checked
        SPEDITIONSBUCH.Bar = cbxBar.Checked
        SPEDITIONSBUCH.Fakturiert = cbxFakturiert.Checked

        SPEDITIONSBUCH.BelegNr = txtBelegNummerZAT1T2.Text

        SPEDITIONSBUCH.AnzahlZA = IIf(IsNumeric(txtZA.Text), txtZA.Text, 0)
        SPEDITIONSBUCH.AnzahlZAFremd = IIf(IsNumeric(txtZAFremd.Text), txtZAFremd.Text, 0)
        SPEDITIONSBUCH.AnzahlZnV = IIf(IsNumeric(txtZnV.Text), txtZnV.Text, 0)
        SPEDITIONSBUCH.AnzahlZnVFremd = IIf(IsNumeric(txtZnVFremd.Text), txtZnVFremd.Text, 0)
        SPEDITIONSBUCH.AnzahlT1 = IIf(IsNumeric(txtT1.Text), txtT1.Text, 0)
        SPEDITIONSBUCH.AnzahlT2 = IIf(IsNumeric(txtT2.Text), txtT2.Text, 0)
        SPEDITIONSBUCH.AnzahlAE = IIf(IsNumeric(txtAE.Text), txtAE.Text, 0)
        SPEDITIONSBUCH.AnzahlCarnetTIR = IIf(IsNumeric(txtCarnetTIR.Text), txtCarnetTIR.Text, 0)
        SPEDITIONSBUCH.AnzahlBarvorlagen = IIf(IsNumeric(txtBarvorlagen.Text), txtBarvorlagen.Text, 0)
        SPEDITIONSBUCH.AnzahlSonstiges = IIf(IsNumeric(txtSonstiges.Text), txtSonstiges.Text, 0)
        SPEDITIONSBUCH.AnzahlGrenzgebühren = IIf(IsNumeric(txtZuschlaege.Text), txtZuschlaege.Text, 0)

        SPEDITIONSBUCH.QKN = txtCRN.Text


        'SPEDITIONSBUCH.Zucker_MRN_Nr = txtZuckerMRN.Text
        '  If IsDate(txtZucker_Datum.Text) Then
        'SPEDITIONSBUCH.Zucker_MRN_Datum = CDate(txtZucker_Datum.Text).ToShortDateString()
        ' Else
        '   SPEDITIONSBUCH.Zucker_MRN_Datum = Nothing
        '  End If
        ' SPEDITIONSBUCH.Zucker_Aufschub = txtZucker_Aufschub.Text

        SPEDITIONSBUCH.Rohmasse = If(IsNumeric(txtRohmasse.Text), CDbl(txtRohmasse.Text), Nothing)
        SPEDITIONSBUCH.Rechnungsbetrag = If(IsNumeric(txtRechnungsbetrag._value), CDbl(txtRechnungsbetrag._value), Nothing)
        SPEDITIONSBUCH.Umrechnungskurs = IIf(IsNumeric(txtUmrechnungskurs), txtUmrechnungskurs.Text, Nothing)
        SPEDITIONSBUCH.Währungsschlüssel = IIf(IsNumeric(cbxWaehrung._value), cbxWaehrung._value, Nothing)

        SPEDITIONSBUCH.ErfassungsNr = txtErfassungsnummer.Text
        SPEDITIONSBUCH.Vermerk = txtVermerk.Text
        SPEDITIONSBUCH.Bemerkungen = txtBemerkung.Text

        SPEDITIONSBUCH.Packstücke = txtPackstuecke.Text
        SPEDITIONSBUCH.Zahlungsaufschub = txtZahlungsaufschub.Text
        If AVISO IsNot Nothing Then SPEDITIONSBUCH.Grenzstelle = AVISO.Grenzstelle

        SPEDITIONSBUCH.SB_Zeitstempel = Now
        ' SPEDITIONSBUCH.AvisoID = avisoLinkId
        ' SPEDITIONSBUCH.SendungID = SendungID
        SPEDITIONSBUCH.Sachbearbeiter = lblLastMa.Text
        SPEDITIONSBUCH.KdAuftragsNr = txtKdAuftragsnummer.Text
        SPEDITIONSBUCH.KdAuftragsNrAvisierer = txtKdAuftragsnummerAvisierer.Text
        SPEDITIONSBUCH.KdAuftragsNrEmpfaenger = txtKdAuftragsnummerEmpfaenger.Text
        SPEDITIONSBUCH.KdAuftragsNrFrachtfuehrer = txtKdAuftragsnummerFrachtfuehrer.Text
        SPEDITIONSBUCH.AuftraggeberBetragKassiert = txtInkasso._value


        SPEDITIONSBUCH.FilialenNrHandling = cProgramFunctions.isLeerNothing(cboFilialeHandling._value)
        SPEDITIONSBUCH.FilialenNrAbklaerung = cProgramFunctions.isLeerNothing(cboAbklärungFiliale._value)
        SPEDITIONSBUCH.HandlingZuKassieren = If(IsNumeric(txtHandlingZuKassieren._value), CDbl(txtHandlingZuKassieren._value), 0)

        SPEDITIONSBUCH.Grenzstelle = cProgramFunctions.isLeerNothing(cboGrenze._value)



        SPEDITIONSBUCH.SB_CMRDatum = Nothing
        If pnlFiskal.Visible Then
            SPEDITIONSBUCH.SB_CMR = cbxCMR.Checked
            If txtCMRDatum.Text <> "" Then SPEDITIONSBUCH.SB_CMRDatum = txtCMRDatum.Text
            SPEDITIONSBUCH.SB_CMRNr = txtCMRNr.Text

        End If
    End Sub

    Private Sub Panel1_Paint(sender As Object, e As PaintEventArgs) Handles Panel1.Paint

    End Sub

    Private Sub btnFertig_Click(sender As Object, e As EventArgs) Handles btnFertig.Click
        If updateMe() Then
            ' BindingNavigatorAddNewItem.PerformClick()
        End If
    End Sub

    Private Sub ToolStripButton1_Click(sender As Object, e As EventArgs)
        updateMe()
    End Sub


    Private Sub cboAbfertigungsart_SelectedIndexChanged(sender As Object, e As EventArgs) Handles cboAbfertigungsart.SelectedIndexChanged, txtAnzahl.TextChanged

        Button5.Visible = (cboAbfertigungsart._value = "52")

        If sender Is cboAbfertigungsart Then
            If Not IsNumeric(txtAnzahl.Text) OrElse txtAnzahl.Text = "0" Then txtAnzahl.Text = "1"
            If cboAbfertigungsart._value = "23" Then
                ' txtAnzahl.Visible = True
                ' pnlHandling.Visible = True
                Label54.Visible = True
                MyLinkLabelVALUE4.Visible = True
                initHandling()
            Else
                '  txtAnzahl.Visible = False
                Label54.Visible = False
                MyLinkLabelVALUE4.Visible = False
                pnlHandling.Controls.Clear()
            End If
        End If
        txtT1Verzollungsadresse.Enabled = (cboAbfertigungsart._value = "5" Or cboAbfertigungsart._value = "6" Or cboAbfertigungsart._value = "24" Or cboAbfertigungsart._value = "33" Or cboAbfertigungsart._value = "34")

        ' If txtAnzahl.Text = "" Or IsNumeric(txtAnzahl.Text) = False Then txtAnzahl.Text = "0"
        Dim anz = txtAnzahl.Text
        If IsNumeric(cboAbfertigungsart._value) Then
            txtZA.Text = IIf(cboAbfertigungsart._value = 1, anz, "0")
            txtZAFremd.Text = IIf(cboAbfertigungsart._value = 2, anz, "0")
            txtZnV.Text = IIf(cboAbfertigungsart._value = 3, anz, "0")
            txtZnVFremd.Text = IIf(cboAbfertigungsart._value = 4, anz, "0")
            txtT1.Text = IIf(cboAbfertigungsart._value = 5, anz, "0")
            txtT2.Text = IIf(cboAbfertigungsart._value = 6, anz, "0")
            txtAE.Text = IIf(cboAbfertigungsart._value = 7, anz, "0")
            txtCarnetTIR.Text = IIf(cboAbfertigungsart._value = 8, anz, "0")
            txtBarvorlagen.Text = IIf(cboAbfertigungsart._value = 9, anz, "0")
            txtSonstiges.Text = IIf(cboAbfertigungsart._value = 10, anz, "0")
            txtZuschlaege.Text = IIf(cboAbfertigungsart._value = 11, anz, "0")
        End If

    End Sub


    Private Sub Button3_Click_1(sender As Object, e As EventArgs) Handles btnImport.Click
        Label26.ForeColor = Color.Black
        If txtAtlasBezNrEZA.Text <> "" Or txtAtlasBezNrNCTS.Text <> "" Or txtAtlasBezNrAES.Text <> "" Then
            If cboZollsystem._value = "" Then
                Label26.ForeColor = Color.Red
                Exit Sub
            End If
        End If


        Dim strManNr = "VERA"
        Dim strManNl = "SUB"
        Dim ZollSystem = -1

        If cboZollsystem._value = "A" Then ZollSystem = 0
        If cboZollsystem._value = "E" Then ZollSystem = 1
        If cboZollsystem._value = "D" Then ZollSystem = 2
        If cboZollsystem._value = "T" Then ZollSystem = 3


        Dim EZANr = txtAtlasBezNrEZA.Text
        Dim NCTSNr = txtAtlasBezNrNCTS.Text
        Dim AESNr = txtAtlasBezNrAES.Text

        If cboNiederlassung.Text <> "" Then
            strManNl = cboNiederlassung.Text
        Else
            '  cboNiederlassung.SelectedIndex = 0
            Select Case SPEDITIONSBUCH.FilialenNr
                Case 4803, 4809
                    strManNl = "SUB"
                Case 4801
                    strManNl = "SUW"
                Case 5003
                    strManNl = "SBG" 'ANDERER SERVER!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
                Case 5103
                    strManNl = "WAI"
                Case 5303
                    strManNl = "SUB"
            End Select
        End If

        Dim ZOLL_IMPORT As New DAKOSY_Worker.cZOLL_IMPORT
        Dim notFound = False
        Dim ATLAS_SERVER_VERBINDUNG = ""
        If cboNiederlassung.Text <> "" Then ATLAS_SERVER_VERBINDUNG = cboNiederlassung.Text

        lblLastMa.Text = VERAG_PROG_ALLGEMEIN.cAllgemein.USRKURZNAME
        loadDatainSPEDBUCH()
        SPEDITIONSBUCH = ZOLL_IMPORT.IMPORT(SPEDITIONSBUCH, avisoLinkId, SPEDITIONSBUCH.SendungID, strManNr, strManNl, ZollSystem, EZANr, NCTSNr, notFound,,, AESNr)
        If notFound Then
            lblZollsys.Visible = True
            MsgBox("Der Eintrag wurde nicht gefunden!", vbInformation)
        Else
            lblZollsys.Visible = False
        End If
        loaddata()
        ' Import_Starten()
    End Sub


    Sub IMPORTOnlyAVISO()
        Dim ZOLL_IMPORT As New DAKOSY_Worker.cZOLL_IMPORT
        Dim notFound = False
        'Dim ATLAS_SERVER_VERBINDUNG = ""
        ' If cboNiederlassung.Text <> "" Then ATLAS_SERVER_VERBINDUNG = cboNiederlassung.Text
        SPEDITIONSBUCH = ZOLL_IMPORT.IMPORT(SPEDITIONSBUCH, avisoLinkId, SPEDITIONSBUCH.SendungID, "", "", "", "", "", notFound)
        lblZollsys.Visible = False
        loaddata()
    End Sub

    Sub Import_Starten()

        Dim NEimprt As New frmNacherfassungImport
        NEimprt.avisoLinkId = avisoLinkId
        NEimprt.SendungId = SendungID

        NEimprt.SPEDITIONSBUCH = SPEDITIONSBUCH

        If NEimprt.ShowDialog(Me) = Windows.Forms.DialogResult.OK Then
            SPEDITIONSBUCH = NEimprt.SPEDITIONSBUCH
            loaddata()
        End If
    End Sub
    Private Sub Button4_Click_1(sender As Object, e As EventArgs) Handles btnPosNrAendern.Click
        If updateMe() Then
            Dim NEimprt As New frmPosNr(cboFiliale._value, txtAbfertigungsnummer.Text, txtUnterNr.Text)
            If NEimprt.ShowDialog(Me) = Windows.Forms.DialogResult.OK Then
                '   Me.Close()
                '  Dim frmNacherfassung As New frmNacherfassung
                Me.srchFiliale = NEimprt.cboFiliale._value
                Me.srchAbfertigungsnummer = NEimprt.txtAbfertigungsnummer.Text
                Me.srchUnterNr = NEimprt.txtUnterNr.Text
                '  frmNacherfassung.initDataBinding()
                ' Me.bindingSPEDBUCH = New cEasyBinding("FMZOLL") 'fürs Binding
                Me.frmNacherfassung_Load1(Me, New EventArgs)
                frmNacherfassung_Shown(Me, New EventArgs)
                'Me.initDataBinding()
                ' Me.Show()

            End If
        End If

    End Sub

    Private Sub btnDelData_Click(sender As Object, e As EventArgs) Handles btnDelData.Click
        If vbYes = MsgBox("Möchten Sie den Speditionsbucheintrag << FilialenNr:" & cboFiliale._value & ", AbfertigungsNr:" & txtAbfertigungsnummer.Text & ", UnterNr: " & txtUnterNr.Text & " >> wirklich löschen?", vbYesNoCancel) Then
            If SQL.doSQL("DELETE FROM Speditionsbuch WHERE FilialenNr='" & cboFiliale._value & "' AND AbfertigungsNr='" & txtAbfertigungsnummer.Text & "' AND UnterNr='" & txtUnterNr.Text & "' ", "FMZOLL") Then
                '  Me.srchFiliale = -1
                ' Me.srchAbfertigungsnummer = -1
                ' Me.srchUnterNr = -1
                ' Me.cboFiliale._value = -1
                ' Me.txtAbfertigungsnummer.Text = -1
                ' Me.txtUnterNr.Text = -1
                '  MsgBox("Datensatz gelöscht!")
                SPED_LIST.LOAD_LIST()
                If SPED_LIST.LIST.Count > 0 Then
                    SPEDITIONSBUCH = SPED_LIST.LIST(0)
                    txtUnterNr.Text = SPEDITIONSBUCH.UnterNr
                    Speditionsbuch_Daten_laden()
                Else
                    saveByClose = False
                    Me.Close()
                End If



            End If

        End If
    End Sub

    Private Sub Button5_Click_1(sender As Object, e As EventArgs) Handles btnCancel.Click, btnAbbrechen.Click
        saveByClose = False
        Me.Close()
    End Sub

    Private Sub btnNeueAbfertigungNrVergeben_Click(sender As Object, e As EventArgs) Handles btnNeueAbfertigungNrVergeben.Click
        If Not IsNumeric(cboFiliale._value) OrElse CInt(cboFiliale._value) <= 0 Then
            MsgBox("Bitte Filiale auswählen!") : Exit Sub
        End If
        txtAbfertigungsnummer.Text = VERAG_PROG_ALLGEMEIN.cAllgemein.getMaxPosNrIncrement(cboFiliale._value, Now.Year)
        If txtUnterNr.Text = "" Then txtUnterNr.Text = 0
        cboFiliale.Enabled = False
        btnNeueAbfertigungNrVergeben.Visible = False
    End Sub

    Private Sub cboFiliale_SelectedIndexChanged(sender As Object, e As EventArgs) Handles cboFiliale.SelectedIndexChanged
        If VERAG_PROG_ALLGEMEIN.cAllgemein.AUTO_ABF_NR Then

            If loaded And VERAG_PROG_ALLGEMEIN.cAllgemein.FIRMA <> "ATILLA" Then
                txtAbfertigungsnummer.Text = ""
                btnNeueAbfertigungNrVergeben.Visible = True
                btnWeiter.Focus()
            End If
        End If

        Dim FirmaTmp = VERAG_PROG_ALLGEMEIN.cAllgemein.getFirmaFromFiliale2(cboFiliale._value, True, VERAG_PROG_ALLGEMEIN.cAllgemein.FIRMA)
        txtAvisierer._UseFIRMA = FirmaTmp
        txtAbsender._UseFIRMA = FirmaTmp
        txtEmpfaenger._UseFIRMA = FirmaTmp
        txtAuftraggeber._UseFIRMA = FirmaTmp
        txtFraechter._UseFIRMA = FirmaTmp
        txtEndEmpf._UseFIRMA = FirmaTmp
        initAbfertigungsart()

        If cboFiliale._value.ToString = "7001" Then
            cbxEIDR.Visible = True
        Else
            cbxEIDR.Visible = False
        End If
    End Sub



    Private Sub MyLinkLabelVALUE4_LinkClicked(sender As Object, e As LinkLabelLinkClickedEventArgs) Handles MyLinkLabelVALUE4.LinkClicked
        Dim sum = 0
        For Each c In pnlHandling.Controls
            If c.GetType.Name = GetType(VERAG_PROG_ALLGEMEIN.usrcntlUnterposEntry).Name Then
                sum += DirectCast(c, VERAG_PROG_ALLGEMEIN.usrcntlUnterposEntry).Anzahl
            End If
        Next
        txtAnzahl.Text = sum
    End Sub

    Private Sub Button1_Click_2(sender As Object, e As EventArgs) Handles btnNeueUnterNR.Click
        If updateMe() Then
            Dim SPEDITIONSBUCH_tmp = New VERAG_PROG_ALLGEMEIN.cSpeditionsbuch
            SPEDITIONSBUCH_tmp.FilialenNr = SPEDITIONSBUCH.FilialenNr
            SPEDITIONSBUCH_tmp.AbfertigungsNr = SPEDITIONSBUCH.AbfertigungsNr
            SPEDITIONSBUCH_tmp.UnterNr = SPEDITIONSBUCH.NewUNTER_NR()
            SPEDITIONSBUCH = SPEDITIONSBUCH_tmp
            SPEDITIONSBUCH_tmp.SendungID = SPEDITIONSBUCH.SendungID 'SendungsId übernehmen
            SPEDITIONSBUCH_tmp.AvisoID = SPEDITIONSBUCH.AvisoID 'AvisoId übernehmen

            txtUnterNr.Text = SPEDITIONSBUCH.UnterNr

            Speditionsbuch_Daten_laden()
            If Not SpedBuchEintragVorhanden() Then
                'Import_Starten()
                Select Case VERAG_PROG_ALLGEMEIN.cAllgemein.FIRMA
                    Case "IMEX" : txtAtlasBezNrEZA.Focus()
                    Case Else : cboZollsystem.Focus()
                End Select
            End If
        End If
    End Sub

    Private Sub Button3_Click_2(sender As Object, e As EventArgs) Handles btnNext.Click
        If updateMe() Then

            If SPED_LIST.LIST.Count > 1 Then
                Dim u = SPEDITIONSBUCH.UnterNr + 1
                While u <= SPED_LIST.max
                    For Each i In SPED_LIST.LIST
                        If i.UnterNr = u Then
                            SPEDITIONSBUCH = i
                            txtUnterNr.Text = i.UnterNr
                            Speditionsbuch_Daten_laden()
                            Exit Sub
                        End If
                    Next
                    u += 1
                End While
            End If
        End If
    End Sub

    Private Sub btnPrev_Click(sender As Object, e As EventArgs) Handles btnPrev.Click
        If updateMe() Then

            If SPED_LIST.LIST.Count > 1 Then
                Dim u = SPEDITIONSBUCH.UnterNr - 1
                While u >= 0
                    For Each i In SPED_LIST.LIST
                        If i.UnterNr = u Then
                            SPEDITIONSBUCH = i
                            txtUnterNr.Text = i.UnterNr
                            Speditionsbuch_Daten_laden()
                            Exit Sub
                        End If
                    Next
                    u -= 1
                End While
            End If
            'SPED_LIST()
        End If
    End Sub


    Sub initHandler(main)

        For Each c As Control In main.Controls
            If c.HasChildren Then
                initHandler(c)
            Else

                If TypeOf (c) Is CheckBox Then
                    AddHandler CType(c, CheckBox).CheckedChanged, Sub()
                                                                      RaiseEvent VALUE_CHANGED(c)
                                                                  End Sub
                ElseIf TypeOf (c) Is RadioButton Then
                    AddHandler CType(c, RadioButton).CheckedChanged, Sub()
                                                                         RaiseEvent VALUE_CHANGED(c)
                                                                     End Sub
                ElseIf TypeOf (c) Is VERAG_PROG_ALLGEMEIN.MyTextBox Then
                    AddHandler CType(c, VERAG_PROG_ALLGEMEIN.MyTextBox).TextChanged, Sub()
                                                                                         RaiseEvent VALUE_CHANGED(c)
                                                                                     End Sub
                ElseIf TypeOf (c) Is VERAG_PROG_ALLGEMEIN.MyComboBox Then
                    AddHandler CType(c, VERAG_PROG_ALLGEMEIN.MyComboBox).TextChanged, Sub()
                                                                                          RaiseEvent VALUE_CHANGED(c)
                                                                                      End Sub
                ElseIf TypeOf (c) Is ComboBox Then
                    AddHandler CType(c, ComboBox).SelectedIndexChanged, Sub()
                                                                            RaiseEvent VALUE_CHANGED(c)
                                                                        End Sub
                ElseIf TypeOf (c) Is RichTextBox Then
                    AddHandler CType(c, RichTextBox).TextChanged, Sub()
                                                                      RaiseEvent VALUE_CHANGED(c)
                                                                  End Sub
                End If
            End If
        Next
    End Sub

    Private Sub do_VALUE_CHANGED(c As Control) Handles Me.VALUE_CHANGED
        If Not loaded Then Exit Sub
        If Not ev_ready Then Exit Sub
        lblLastMa.Text = VERAG_PROG_ALLGEMEIN.cAllgemein.USRKURZNAME
        'Wenn etwas geändert wurde, wird der Name überschrieben
    End Sub

    Private Sub Button1_Click_3(sender As Object, e As EventArgs) Handles Button1.Click
        '   SPEDITIONSBUCH.LOAD_VORKOSTEN()
        Dim f As New frmNacherfassungVorkosten
        f.FilialenNr = SPEDITIONSBUCH.FilialenNr
        f.AbfertigungsNr = SPEDITIONSBUCH.AbfertigungsNr
        f.UnterNr = SPEDITIONSBUCH.UnterNr

        f.VORKOSTEN = SPEDITIONSBUCH.VORKOSTEN
        If f.ShowDialog(Me) = Windows.Forms.DialogResult.OK Then
            SPEDITIONSBUCH.VORKOSTEN = f.VORKOSTEN
        End If

    End Sub

    Private Sub timerBG_Tick(sender As Object, e As EventArgs) Handles timerBG.Tick
        pnl.BackColor = System.Drawing.ColorTranslator.FromWin32(RGB(0, 54, 128))
        timerBG.Enabled = False
    End Sub

    Private Sub txtAbfertigungsnummer_KeyDown(sender As Object, e As KeyEventArgs) Handles txtAbfertigungsnummer.KeyDown
        If e.KeyCode = Keys.Return Then
            btnWeiter.PerformClick()
        End If
    End Sub

    Private Sub Button2_Click_2(sender As Object, e As EventArgs) Handles btnATLASPOS.Click
        If SPEDITIONSBUCH.AtlasBezNrEZA <> "" Then
            Dim ATLAS_CONN_ART = "ATLAS"
            Dim Niederlassung = "SUB"

            Select Case SPEDITIONSBUCH.FilialenNr
                Case 4803, 4809
                    Niederlassung = "SUB"
                Case 4801
                    Niederlassung = "SUW"
                Case 5003
                    Niederlassung = "SBG"
                    ATLAS_CONN_ART = "ATLAS_SBG"
                Case 5303
                    Niederlassung = "WAI"
            End Select

            Dim list As New cATLAS_zbPos_List("VERA", Niederlassung, SPEDITIONSBUCH.AtlasBezNrEZA, ATLAS_CONN_ART)
            If list.LIST.Count > 0 Then
                Dim frmATLAS_zbPos As New frmATLAS_zbPos(list)
                frmATLAS_zbPos.ShowDialog(Me)
            End If
        End If
    End Sub

    Private Sub txtAtlasBezNrEZA_KeyDown(sender As Object, e As KeyEventArgs) Handles txtAtlasBezNrEZA.KeyDown, txtAtlasBezNrNCTS.KeyDown, txtAtlasBezNrAES.KeyDown
        If e.KeyCode = Keys.Return Then
            btnImport.PerformClick()
        End If
    End Sub


    Private Sub txtAbfertigungsnummer_Leave(sender As Object, e As EventArgs) Handles txtAbfertigungsnummer.Leave
        If txtUnterNr.Text = "" Then txtUnterNr.Text = 0
    End Sub

    Private Sub txtAbfertigungsnummer_TextChanged(sender As Object, e As EventArgs) Handles txtAbfertigungsnummer.Leave
        If txtAbfertigungsnummer.Text.Length > 8 Then Exit Sub
        If txtAbfertigungsnummer.Text.Length <= 6 Then
            If IsNumeric(txtAbfertigungsnummer.Text) Then
                txtAbfertigungsnummer.Text = Now.ToString("yy") & CInt(txtAbfertigungsnummer.Text).ToString("000000")
            End If
        End If
    End Sub

    Private Sub txtRechnungsbetrag_TextChanged(sender As Object, e As EventArgs) Handles txtRechnungsbetrag.TextChanged
        If IsNumeric(txtRechnungsbetrag.Text) AndAlso txtRechnungsbetrag.Text > 0 Then
            If cbxWaehrung._value = "" Then cbxWaehrung.changeItem(900)
        End If
    End Sub

    Private Sub cbxWaehrung_SelectedIndexChanged(sender As Object, e As EventArgs) Handles cbxWaehrung.SelectedIndexChanged
        If IsNumeric(cbxWaehrung._value) Then
            txtUmrechnungskurs.Text = SQL.getValueTxtBySql("SELECT TOP 1 [Eurokurs]  FROM [Währungstabelle] WHERE [Währungsschlüssel]=" & cbxWaehrung._value, "FMZOLL")
        Else
            txtUmrechnungskurs.Text = 1
        End If
    End Sub

    Private Sub lblSachbearbeiterIch_LinkClicked(sender As Object, e As LinkLabelLinkClickedEventArgs) Handles lblSachbearbeiterIch.LinkClicked
        Dim PersID = -1
        If VERAG_PROG_ALLGEMEIN.cAllgemein.MITARBEITER.mit_FMZollPersID > 0 Then PersID = VERAG_PROG_ALLGEMEIN.cAllgemein.MITARBEITER.mit_FMZollPersID
        If VERAG_PROG_ALLGEMEIN.cAllgemein.MITARBEITER.mit_FMZollPersIDKasseIsnotSpedBuch Then
            If VERAG_PROG_ALLGEMEIN.cAllgemein.MITARBEITER.mit_FMZollPersIDSpedBuch > 0 Then PersID = VERAG_PROG_ALLGEMEIN.cAllgemein.MITARBEITER.mit_FMZollPersIDSpedBuch
        End If
        cboSachbearbeiter.changeItem(PersID)
    End Sub

    Private Sub txtCRN_Leave(sender As Object, e As EventArgs) Handles txtCRN.Leave
        sender.text = sender.text.ToString.ToUpper
    End Sub

    Private Sub Button2_Click_3(sender As Object, e As EventArgs) Handles Button2.Click
        Dim kdnr = -1
        Select Case cboFiskalSchreiben._value
            Case "EMPF" : kdnr = txtEmpfaenger.KdNr
            Case "ENDEMPF" : kdnr = txtEndEmpf.KdNr
        End Select
        Dim f As New SDL.frmFiskalSchreiben(kdnr, SPEDITIONSBUCH)
        f.ShowDialog(Me)
    End Sub

    Private Sub pnlZOll_Paint(sender As Object, e As PaintEventArgs) Handles pnlZOll.Paint

    End Sub

    Private Sub Button3_Click_3(sender As Object, e As EventArgs) Handles Button3.Click
        Try
            If SPEDITIONSBUCH.FilialenNr <= 0 Then Exit Sub
            If SPEDITIONSBUCH.AbfertigungsNr <= 0 Then Exit Sub

            cProgramFunctions.openThereforeNavigator(SPEDITIONSBUCH.FilialenNr.ToString & SPEDITIONSBUCH.AbfertigungsNr.ToString, SPEDITIONSBUCH.FilialenNr)
        Catch ex As Exception
            MsgBox("Fehler beim Öffnen!" & vbNewLine & ex.Message & ex.StackTrace)
        End Try
    End Sub

    Private Sub tbcntrRg_SelectedIndexChanged(sender As Object, e As EventArgs) Handles tbcntrRg.SelectedIndexChanged
        initDgvRg()
    End Sub
    Private Sub dgvBelege_CellMouseDoubleClick(sender As Object, e As EventArgs) Handles dgvBelege.DoubleClick
        If dgvBelege.SelectedRows.Count <= 0 Then Exit Sub

        If tbcntrRg.SelectedTab Is TabPage1 Then
            Dim frmSecureLoginKassenbuch As New SDL.frmSecureLoginKassenbuch
            If frmSecureLoginKassenbuch.ShowDialog(Me) = Windows.Forms.DialogResult.OK Then
                Dim PERSONAL As SDL.cPersonal = frmSecureLoginKassenbuch.PERSONAL
                Dim sqlTMP As New SDL.FMZOLL_SQL

                Dim r As DataGridViewRow = dgvBelege.SelectedRows(0)
                Dim PERSONALTmp As SDL.cPersonal = sqlTMP.getPersonalById(r.Cells("Benutzer").Value)
                ' Dim B As New SDL.EABeleg("LOAD", PERSONALTmp.Mandant, PERSONALTmp.Niederlassung, PERSONALTmp.ID, r.Cells("BelegNr").Value, r.Cells("BelegDat").Value)
                Dim B As New SDL.EABeleg("LOAD", r.Cells("Mandant").Value, r.Cells("Niederlassung").Value, PERSONALTmp.ID, r.Cells("BelegNr").Value, r.Cells("BelegDat").Value)

                openBELEG(PERSONALTmp, B)
            End If
        ElseIf tbcntrRg.SelectedTab Is TabPage2 Then
            If dgvBelege.SelectedRows.Count = 0 Then Exit Sub
            Dim f As New frmKundenUebersichtZollRgDetails(dgvBelege.SelectedRows(0).Cells("RK_ID").Value)
            f.ShowDialog()
        ElseIf tbcntrRg.SelectedTab Is TabPage3 Then
            Try
                Me.Cursor = Cursors.WaitCursor

                If dgvBelege.SelectedRows.Count = 0 Then Exit Sub

                Dim DY As DAKOSY_Worker.cDakosy_Zollanmeldungen = New DAKOSY_Worker.cDakosy_Zollanmeldungen(dgvBelege.SelectedRows(0).Cells("dy_Id").Value)

                If DY IsNot Nothing Then
                    Dim f As New SDL.frmZollanmeldung(DY.dy_ART, DY, AVISO, Nothing, Now.ToString("yy"))
                    AddHandler f.FormClosed, Sub()
                                                 initDgvRg()
                                             End Sub

                    f.Show(Me)
                End If
            Catch ex As Exception
                MsgBox(ex.Message & ex.StackTrace)
            End Try
            Me.Cursor = Cursors.Default
        ElseIf tbcntrRg.SelectedTab Is TabPage4 Then
            Try
                Me.Cursor = Cursors.WaitCursor
                If dgvBelege.SelectedRows.Count = 0 Then Exit Sub

                Dim DS As New VERAG_PROG_ALLGEMEIN.cDATENSERVER(dgvBelege.SelectedRows(0).Cells("clmnAnhaengeDokId").Value)
                DS.OPEN_SINGLE()

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

        End If
    End Sub

    Sub openBELEG(PERSONAL As SDL.cPersonal, B As SDL.EABeleg)
        If B Is Nothing Then Exit Sub
        Select Case B.Beleg_TYP
            Case "0"
                MsgBox("Ein NULL-Beleg ist nur einmal verfügbar.")
            Case "E"

                'If B.storniert Then MsgBox("Der Beleg wurde bereits storiniert!") : Exit Sub
                Dim frmBeleg As New SDL.frmFremdbeleg(PERSONAL, B.Mandant, B.Niederlassung, B.Benutzer, B.BelegNr, B.BelegDat)
                frmBeleg.ShowDialog(Me)
            Case "L"
                If B.storniert Then MsgBox("Der Beleg wurde bereits storiniert!") : Exit Sub
                Dim frmBeleg As New SDL.frmNacherfassungLeihgeld(PERSONAL, Nothing, B.Mandant, B.Niederlassung, B.Benutzer, B.BelegNr, B.BelegDat)
                frmBeleg.ShowDialog(Me)
            Case Else
                Dim frmBeleg As New SDL.frmBelegNeu(PERSONAL, Nothing, B.Mandant, B.Niederlassung, B.Benutzer, B.BelegNr, B.BelegDat)
                frmBeleg.ShowDialog(Me)
        End Select

        '   initDGVBelege()

        '  End If
    End Sub

    Private Sub cbxCMR_CheckedChanged(sender As Object, e As EventArgs) Handles cbxCMR.CheckedChanged
        txtCMRNr.Enabled = cbxCMR.Checked
        txtCMRDatum.Enabled = cbxCMR.Checked
    End Sub

    Private Sub Button4_Click_2(sender As Object, e As EventArgs) Handles Button4.Click
        '   SPEDITIONSBUCH.LOAD_VORKOSTEN()
        Dim f As New frmNacherfassungEndEmpfaenger
        f.FilialenNr = SPEDITIONSBUCH.FilialenNr
        f.AbfertigungsNr = SPEDITIONSBUCH.AbfertigungsNr
        f.UnterNr = SPEDITIONSBUCH.UnterNr

        f.ENDEMPFAENGER = SPEDITIONSBUCH.ENDEMPFAENGER
        If f.ShowDialog(Me) = Windows.Forms.DialogResult.OK Then
            SPEDITIONSBUCH.ENDEMPFAENGER = f.ENDEMPFAENGER
            If SPEDITIONSBUCH.ENDEMPFAENGER.Count > 0 Then
                txtEndEmpf.KdNr = SPEDITIONSBUCH.ENDEMPFAENGER(0).EndEmpfaengerKdNr
            End If

        End If

    End Sub


    Private Sub grid_CellMouseClick(sender As Object, e As System.Windows.Forms.DataGridViewCellMouseEventArgs) Handles dgvBelege.CellMouseClick
        If tbcntrRg.SelectedTab Is TabPage4 Then
            If e.Button = MouseButtons.Right Then
                If e.RowIndex < 0 Then Exit Sub 'Es wurde außerhalb einer gültigen Datenzeile geklickt
                If Not dgvBelege.Rows(e.RowIndex).Selected Then
                    dgvBelege.ClearSelection()
                    dgvBelege.Rows(e.RowIndex).Selected = True
                End If
                ContextMenuStrip2.Show(Cursor.Position)
            End If
        End If
    End Sub


    Private Sub KopierenZwischenablageToolStripMenuItem_Click(sender As Object, e As EventArgs) Handles KopierenZwischenablageToolStripMenuItem.Click

        If tbcntrRg.SelectedTab Is TabPage4 Then
            If dgvBelege.SelectedRows.Count >= 1 Then
                Dim DS As New VERAG_PROG_ALLGEMEIN.cDATENSERVER(dgvBelege.SelectedRows(0).Cells("clmnAnhaengeDokId").Value)
                ' MsgBox(DS.OPEN_SINGLE_ORIG(False))

                'Zwischenablage
                Dim f() As String = {DS.OPEN_SINGLE_ORIG(False)}
                Dim d As New DataObject(DataFormats.FileDrop, f)
                Clipboard.SetDataObject(d, True)

            End If
        End If
    End Sub

    Private Sub Button5_Click_2(sender As Object, e As EventArgs) Handles Button5.Click
        cSpedBuch_Aktendeckel.PrintSimpleSpedbuch("PDF", SPEDITIONSBUCH)
    End Sub




    Sub initAbfertigungsart()
        Dim abfTmp As String = cboAbfertigungsart._value
        cboAbfertigungsart.fillWithSQL("
            SELECT AA.Abfertigungsart,AA.[Abfertigungsbezeichnung] FROM [Abfertigungsarten]as  AA 
            INNER JOIN AbfertigungsLaenderAbfertigungsarten as ALA ON AA.Abfertigungsart=ALA.Abfertigungsart 
            INNER JOIN tblAbfertigungsartenFiliale ON tblAbfertigungsartenFiliale.Abfertigungsart=AA.Abfertigungsart    
            WHERE ALA.[AbfertigungsLand]='" & cboAbfertigungsLand._value & "' 
            AND  Filialennr='" & cboFiliale._value & "'
            GROUP BY AA.Abfertigungsart,AA.[Abfertigungsbezeichnung]", True, "FMZOLL", True)
        If abfTmp <> "" Then
            cboAbfertigungsart.changeItem(abfTmp)
        End If
    End Sub

    Private Sub cboAbfertigungsLand_SelectedIndexChanged(sender As Object, e As EventArgs) Handles cboAbfertigungsLand.SelectedIndexChanged
        initAbfertigungsart()
    End Sub

    Sub checkinitOLDAbfertigungsart(Optional AbfNr As Object = Nothing)

        If cboAbfertigungsart.Items.Count <= 1 Then
            If AbfNr IsNot Nothing AndAlso AbfNr.ToString <> "" Then

                cboAbfertigungsart.fillWithSQL("
            SELECT AA.Abfertigungsart,AA.[Abfertigungsbezeichnung] FROM [Abfertigungsarten]as  AA 
            INNER JOIN tblAbfertigungsartenFiliale ON tblAbfertigungsartenFiliale.Abfertigungsart=AA.Abfertigungsart    
            WHERE Filialennr='" & cboFiliale._value & "'
            GROUP BY AA.Abfertigungsart,AA.[Abfertigungsbezeichnung]", True, "FMZOLL", True)

                cboAbfertigungsart.changeItem(AbfNr)
            End If
        End If
    End Sub

End Class

Class cSpedBuch_Aktendeckel
    Shared Sub PrintSimpleSpedbuch(art As String, SPEDBUCH As VERAG_PROG_ALLGEMEIN.cSpeditionsbuch, Optional Printername As String = "", Optional TYP As String = "AKT", Optional SendungsAnzahlAviso As Integer = -1)


        'TYP --> LAUFZETTEL
        Dim SQL As New VERAG_PROG_ALLGEMEIN.SQL

        If IsNumeric(SPEDBUCH.AbfertigungsNr) AndAlso CInt(SPEDBUCH.AbfertigungsNr) > 100000 Then
        Else
            MsgBox("Abfertigungsnummer angeben!")
            Exit Sub
        End If

        If SPEDBUCH.Abfertigungsart <= 0 Then
            MsgBox("Abfertigungsart angeben!")
            Exit Sub
        End If
        Dim VALUES As New Gemeinsames.rptSendungenValues

        Dim barcode As Image = Code128Rendering.MakeBarcodeImage("/" & SPEDBUCH.FilialenNr & "-" & SPEDBUCH.AbfertigungsNr & "-" & SPEDBUCH.UnterNr & "/", 1, True, 25)
        barcode.RotateFlip(RotateFlipType.Rotate90FlipNone)
        Dim barcodeLKW As Image = Nothing

        If If(SPEDBUCH.AvisoID, "") <> "" Then
            If VERAG_PROG_ALLGEMEIN.cAllgemein.PARAMS.GET_PARAMETER_VALUE_BOOL("RPT_SND_BarcodeLKW") Then
                barcodeLKW = Code128Rendering.MakeBarcodeImage("/" & SPEDBUCH.AvisoID & "/", 1, True, 20)
            End If
        End If

        Dim abfertArt = ""
        If SPEDBUCH.Abfertigungsart > 0 Then abfertArt = "" & SPEDBUCH.Abfertigungsart & " - " & SQL.getValueTxtBySql("SELECT isnull([Abfertigungsbezeichnung],'') FROM [Abfertigungsarten] WHERE  [Abfertigungsart]=" & SPEDBUCH.Abfertigungsart, "FMZOLL")

        If barcodeLKW IsNot Nothing Then VALUES.barcodeLKW = barcodeLKW
        If barcode IsNot Nothing Then VALUES.barcodeSendung = barcode

        VALUES.ABF_ART = SPEDBUCH.Abfertigungsart
        VALUES.Abfertigungsnummer = SPEDBUCH.AbfertigungsNr
        VALUES.FilialeNr = SPEDBUCH.FilialenNr

        VALUES.Abfertigungsart = abfertArt

        If VERAG_PROG_ALLGEMEIN.cAllgemein.PARAMS.GET_PARAMETER_VALUE_BOOL("RPT_SND_Grenzstelle") Then

            If VERAG_PROG_ALLGEMEIN.cAllgemein.FIRMA = "VERAG" Then
                VALUES.Grenze = ""
            Else
                VALUES.Grenze = SPEDBUCH.Grenzstelle
            End If

        End If

        'VALUES.Avisierer_KdNr = IIf(AVISO.Auftraggeber_KdNr > 0, AVISO.Auftraggeber_KdNr, "")
        'VALUES.Avisierer_Firma = AVISO.Auftraggeber
        VALUES.Avisierer_KdNr = IIf(SPEDBUCH.AvisiererKundenNr > 0, SPEDBUCH.AvisiererKundenNr, "")
        VALUES.Avisierer_Firma = SPEDBUCH.Avisierer

        VALUES.Auftraggeber_KdNr = IIf(SPEDBUCH.VermittlerKundenNr > 0, SPEDBUCH.VermittlerKundenNr, "")
        VALUES.Auftraggeber_Firma = SPEDBUCH.Vermittler
        VALUES.KdAuftrNr = If(SPEDBUCH.KdAuftragsNr, "")



        VALUES.Empfaenger_KdNr = IIf(SPEDBUCH.EmpfängerKundenNr > 0, SPEDBUCH.EmpfängerKundenNr, "")
        VALUES.Empfaenger_Firma = SPEDBUCH.Empfänger


        VALUES.Absender_KdNr = IIf(SPEDBUCH.AbsenderKundenNr > 0, SPEDBUCH.AbsenderKundenNr, "")
        VALUES.Absender_Firma = SPEDBUCH.Absender

        'VALUES.Frachtfuehrer_KdNr = IIf(AVISO.Frächter_KdNr > 0, AVISO.Frächter_KdNr, "")
        ' VALUES.Frachtfuehrer_Firma = AVISO.Frächter
        VALUES.Frachtfuehrer_KdNr = IIf(SPEDBUCH.FrachtführerKundenNr > 0, SPEDBUCH.FrachtführerKundenNr, "")
        VALUES.Frachtfuehrer_Firma = SPEDBUCH.Frachtführer

        VALUES.LKWKennzeichen = SPEDBUCH.LKW_Kennzeichen
        If If(SPEDBUCH.Packstücke, "").Length > 100 Then
            VALUES.Warenbezeichnung = SPEDBUCH.Packstücke.Substring(0, 100)
        Else
            VALUES.Warenbezeichnung = If(SPEDBUCH.Packstücke, "")
        End If

        ' VALUES.Colli = SPEDBUCH.tblSnd_Colli
        If SPEDBUCH.Rohmasse IsNot Nothing AndAlso SPEDBUCH.Rohmasse.ToString <> "" Then
            VALUES.Gewicht = If(SPEDBUCH.Rohmasse Is Nothing, "", SPEDBUCH.Rohmasse & " kg")
        End If

        '  VALUES.Ankunft = IIf(AVISO.Ankunft > VERAG_PROG_ALLGEMEIN.cMeineFunktionenAVISO.LeerDatum, AVISO.Ankunft.ToString("dd.MM.yyyy") & vbNewLine & AVISO.Ankunft.ToString("HH:mm"), "")
        '  VALUES.Abfahrt = IIf(AVISO.Freigabe > VERAG_PROG_ALLGEMEIN.cMeineFunktionenAVISO.LeerDatum, AVISO.Freigabe.ToString("dd.MM.yyyy") & vbNewLine & AVISO.Freigabe.ToString("HH:mm"), "")
        '  VALUES.Anmerkungen = (SPEDBUCH.tblSnd_Anmerkung & vbNewLine & vbNewLine & If(SPEDBUCH.tblSnd_AnmerkungDispoliste, "")).ToString.Trim


        VALUES.Tarifposanzahl = SPEDBUCH.Abfertigungsanzahl


        VALUES.NCTS_VZAdr = If(SPEDBUCH.NCTS_Verzollungsadresse, "")
        VALUES.NCTS_VZAdr &= vbNewLine
        If If(SPEDBUCH.Bestimmungszollstelle, "") <> "" Then VALUES.NCTS_VZAdr &= "Best.Zollst.:" & If(SPEDBUCH.Bestimmungszollstelle, "")


        VALUES.NCTS_VZAdr = VALUES.NCTS_VZAdr.Trim

        VALUES.FISKAL_ENDEMPF = If(SPEDBUCH.Endempfänger, "")

        If SPEDBUCH.EmpfängerKundenNr > 0 Then
            Dim txt = SQL.getValueTxtBySql("SELECT isnull([DokumenteLKWFreigabe],'') as DokumenteLKWFreigabe FROM [Kunden] WHERE  [KundenNr]=" & SPEDBUCH.EmpfängerKundenNr, "FMZOLL")
            If txt <> "" Then
                VALUES.DokZuSend_Ueberschrift = "ACHTUNG: Zu sendene Dokumente:"
                VALUES.DokZuSend_Text = txt
            End If
        End If


        VALUES.VG_MA = SQL.DLookup("[Name]", "Personal", "ID='" & SPEDBUCH.Personalnummer & "'", "FMZOLL", "")
        VALUES.QS_MA = SQL.DLookup("mit_vname + ' ' + mit_nname", "tblMitarbeiter", "mit_id='" & SPEDBUCH.PersonalnummerQS & "'", "ADMIN", "")



        VALUES.ABTEILUNG = VERAG_PROG_ALLGEMEIN.cAllgemein.MITARBEITER.mit_abteilung



        Try
            Dim pc As System.Diagnostics.Process = System.Diagnostics.Process.GetCurrentProcess()
            pc.MaxWorkingSet = pc.MinWorkingSet

            Dim imgpath = ""
            Dim resPath As String = System.IO.Path.GetFullPath(Application.StartupPath & "\Resources\")

            If SPEDBUCH.FilialenNr = "4839" Then
                imgpath = resPath & "LEX.png"
            ElseIf SPEDBUCH.FilialenNr = "5501" Then
                imgpath = resPath & "IMEX.png"
            ElseIf SPEDBUCH.FilialenNr = "5601" Then
                imgpath = resPath & "UNISPED.png"
            ElseIf SPEDBUCH.FilialenNr = "5701" Then
                imgpath = resPath & "AMB.png"
            ElseIf SPEDBUCH.FilialenNr = "6001" Then
                imgpath = resPath & "VERIMEX.png"
            ElseIf SPEDBUCH.FilialenNr = "5801" Then
                imgpath = resPath & "FO.png"
            Else
                Select Case VERAG_PROG_ALLGEMEIN.cAllgemein.MITARBEITER.mit_niederlassung
                    Case "SUB"
                        Select Case VALUES.ABTEILUNG
                            Case "QS" : imgpath = resPath & "QS.png"
                            Case Else : imgpath = resPath & "SUB.png"
                        End Select
                    Case "WAI" : imgpath = resPath & "WAI.png"
                    Case "NKD" : imgpath = resPath & "NKD.png"
                    Case "SBG" : imgpath = resPath & "SBG.png"
                    Case Else : imgpath = resPath & "SUB.png"


                End Select
            End If


            Dim ZOLLANMELDUNG As New DAKOSY_Worker.cZollsysteme_Aktenbeschriftung
            If Not ZOLLANMELDUNG.getDataByBezugsnummer(SPEDBUCH.FilialenNr & "/" & SPEDBUCH.AbfertigungsNr, SPEDBUCH.Abfertigungsart.ToString, (If(SPEDBUCH.AtlasBezNrEZA, "") & If(SPEDBUCH.AtlasBezNrNCTS, "")).Trim, SPEDBUCH.Grenzstelle) Then
                ZOLLANMELDUNG = Nothing
            End If

            If VERAG_PROG_ALLGEMEIN.cAllgemein.FIRMA = "AMBAR" Then
                SPEDBUCH.LOAD_VORKOSTEN()
            End If


            Dim rpt As New Gemeinsames.rptSendungen(VALUES, imgpath, ZOLLANMELDUNG, Nothing, Nothing)
            rpt.Document.CacheToDisk = False

            'rpt.Document.CacheToDisk = True
            '  rpt.Document.CacheToDiskLocation = "C:\\Temp"

            If art = "" Or art = "PDF" Then ' Wird angezeigt, nicht gedruckt
                Dim printForm As New SDL.frmPrintLayout
                printForm.Viewer.LoadDocument(rpt)
                printForm.Viewer.ViewType = GrapeCity.Viewer.Common.Model.ViewType.Continuous
                printForm.Show()
                '  printForm.BringToFront()
            ElseIf art = "PRINT" Or art = "DIALOG" Then

                rpt.Run(False)
                ' If Printername = "" Then rpt.Dispose() : Exit Sub
                rpt.Document.Printer.PrinterName = Printername
                rpt.Document.Print((art = "DIALOG" Or Printername = ""), False)
                rpt.Dispose()
                'rpt.Document.Dispose()
                '  rpt.Dispose()
                ' rpt = Nothing
            End If

        Catch ex As Exception
            MsgBox(ex.Message & ex.StackTrace)
        End Try
        ' If art = "PRINT" Then
        'fm.fillPDF(name, list, listTowrite, , True, Printername, barcode, barcodeLKW)
        ' ElseIf art = "DIALOG" Then
        ' fm.fillPDF(name, list, listTowrite, , True, , barcode, barcodeLKW)
        ' Else
        ' fm.fillPDF(name, list, listTowrite, , , , barcode, barcodeLKW)
        ' End If
        '

    End Sub


End Class
