Public Class usrCntlAufschubkonten

    Dim KdNr As Integer = -1
    Dim AB_EDIT = -1
    Public AUFSCHUB As List(Of VERAG_PROG_ALLGEMEIN.cKundenAufschubkonten) = Nothing

    Public hasChanged = False

    Dim USRCNTL_KDBearbFull As usrcntlKundeBearbeitenFull = Nothing

    Private Sub btn_Click(sender As Object, e As EventArgs) Handles btn.Click
        addAufschub()
    End Sub



    Public Sub initMe(KdNr)
        Me.KdNr = KdNr
        AUFSCHUB = VERAG_PROG_ALLGEMEIN.cKundenAufschubkonten.LOAD_ListAufschubKTOByKdNr(KdNr)
        dgvAufschub.Rows.Clear()
        If AUFSCHUB IsNot Nothing Then
            For Each AB In AUFSCHUB
                dgvAufschub.Rows.Add(AB.kdAkto_id, AB.kdAkto_art, AB.kdAkto_hauptzollamt, AB.kdAkto_kontonummer, AB.kdAkto_eori, AB.kdAkto_eoriNL, AB.kdAkto_bin)
            Next
        End If

        resetControls()
        dgvAufschub.ClearSelection()
        hasChanged = False
    End Sub


    Public Sub initMe(KdNr, USRCNTL_KDBearbFull)
        initMe(KdNr)
        Me.USRCNTL_KDBearbFull = USRCNTL_KDBearbFull
    End Sub


    Public Function SAVE()
        If Not hasChanged Then Return True
        Try
            ' AUFSCHUBAUFSCHUBAUFSCHUBAUFSCHUBAUFSCHUBAUFSCHUBAUFSCHUB()
            AUFSCHUB.Clear()
            For Each r As DataGridViewRow In dgvAufschub.Rows
                Dim a As New VERAG_PROG_ALLGEMEIN.cKundenAufschubkonten
                a.kdAkto_KundenNr = KdNr
                a.kdAkto_art = r.Cells("Art").Value
                a.kdAkto_hauptzollamt = r.Cells("HZA").Value
                a.kdAkto_kontonummer = r.Cells("KontoNr").Value
                a.kdAkto_bin = r.Cells("BIN").Value
                a.kdAkto_eori = r.Cells("EORI").Value
                a.kdAkto_eoriNL = r.Cells("NL").Value
                AUFSCHUB.Add(a)
            Next

            Return VERAG_PROG_ALLGEMEIN.cKundenAufschubkonten.SAVE_LIST(KdNr, AUFSCHUB)

        Catch ex As Exception
            MsgBox(ex.Message & ex.StackTrace)
        End Try
        Return False
    End Function

    Sub addAufschub()
        Label23.Visible = False
        Label1.Visible = False
        Label2.Visible = False

        If txtAufschub_Konto.Text = "" Then Label23.Visible = True : txtAufschub_Konto.Focus() : Exit Sub
        If cboArt._value = "" Then Label1.Visible = True : cboArt.Focus() : Exit Sub

        'Führende Nullstellen
        While txtAufschub_Konto.Text.Length < 6
            txtAufschub_Konto.Text = "0" & txtAufschub_Konto.Text
        End While

        If AB_EDIT >= 0 Then
            dgvAufschub.Rows.RemoveAt(AB_EDIT)
            dgvAufschub.Rows.Insert(AB_EDIT, -1, cboArt._value, txtAufschub_HZA.Text, txtAufschub_Konto.Text, txtAufschub_EORI.Text, txtAufschub_EORINL.Text, txtAufschub_BIN.Text)
            AB_EDIT = -1
            btn.BackgroundImage = My.Resources.plus
            lklBearbeitungAbbrechen.Visible = False
        Else
            For Each r As DataGridViewRow In dgvAufschub.Rows
                If r.Cells("Art").Value = cboArt._value Then
                    Label2.Visible = True : txtAufschub_Konto.Focus() : Exit Sub
                End If
            Next
            dgvAufschub.Rows.Add(-1, cboArt._value, txtAufschub_HZA.Text, txtAufschub_Konto.Text, txtAufschub_EORI.Text, txtAufschub_EORINL.Text, txtAufschub_BIN.Text)
        End If
        '  sbPkTyp.SET_VALUE("") : txtPkAnzahl.Text = "" : txtPkMarke.Text = "ohne"

        cboArt.changeItem("") : txtAufschub_HZA.Text = "" : txtAufschub_Konto.Text = "" : txtAufschub_EORINL.Text = "" : txtAufschub_BIN.Text = ""
        txtAufschub_EORI.Text = If(USRCNTL_KDBearbFull IsNot Nothing, USRCNTL_KDBearbFull.txtEORI.Text, "")

        dgvAufschub.FirstDisplayedScrollingRowIndex = dgvAufschub.RowCount - 1
        dgvAufschub.ClearSelection()
        txtAufschub_Konto.Focus()

        hasChanged = True
    End Sub


    Private Sub Button2_Click(sender As Object, e As EventArgs) Handles Button2.Click
        If dgvAufschub.SelectedRows.Count > 0 Then
            If MsgBox("Möchten Sie den Eintrag in 'Aufschubkonten' wirklich löschen?", vbYesNoCancel) = vbYes Then
                dgvAufschub.Rows.Remove(dgvAufschub.SelectedRows(0))
                hasChanged = True
            End If
        End If
        dgvAufschub.ClearSelection()

    End Sub

    Private Sub dgvPackstuecke_CellDoubleClick(sender As Object, e As DataGridViewCellEventArgs) Handles dgvAufschub.CellDoubleClick
        If e.RowIndex < 0 Then Exit Sub
        editableRowPK(e.RowIndex)
    End Sub


    Sub editableRowPK(index As Integer)
        cboArt.changeItem(dgvAufschub.Rows(index).Cells("Art").Value)
        txtAufschub_HZA.Text = dgvAufschub.Rows(index).Cells("HZA").Value
        txtAufschub_Konto.Text = dgvAufschub.Rows(index).Cells("KontoNr").Value
        txtAufschub_EORI.Text = dgvAufschub.Rows(index).Cells("EORI").Value
        txtAufschub_EORINL.Text = dgvAufschub.Rows(index).Cells("NL").Value
        txtAufschub_BIN.Text = dgvAufschub.Rows(index).Cells("BIN").Value
        AB_EDIT = index
        btn.BackgroundImage = My.Resources.stift
        lklBearbeitungAbbrechen.Visible = True
    End Sub

    Private Sub usrCntlAufschubkonten_Load(sender As Object, e As EventArgs) Handles Me.Load
        cboArt.Items.Clear()
        cboArt.Items.Add(New VERAG_PROG_ALLGEMEIN.MyListItem("", ""))
        cboArt.Items.Add(New VERAG_PROG_ALLGEMEIN.MyListItem("10 - ZOLL & EUST", "10"))
        cboArt.Items.Add(New VERAG_PROG_ALLGEMEIN.MyListItem("15 - ZOLL", "15"))
        cboArt.Items.Add(New VERAG_PROG_ALLGEMEIN.MyListItem("20 - EUST", "20"))
        cboArt.changeItem("")
        txtAufschub_EORI.Text = If(USRCNTL_KDBearbFull IsNot Nothing, USRCNTL_KDBearbFull.txtEORI.Text, "")

        If Not VERAG_PROG_ALLGEMEIN.cBerechtignunen.CHECK_BERECHTIGUNG_bool("KUNDEN_AufschubBearbeiten", "SDL") Then
            btn.Visible = False
            Button2.Visible = False
            Label20.Visible = False
            cboArt.Visible = False
            txtAufschub_BIN.Visible = False
            txtAufschub_EORI.Visible = False
            txtAufschub_EORINL.Visible = False
            txtAufschub_HZA.Visible = False
            txtAufschub_Konto.Visible = False
        End If
    End Sub

    Private Sub lklBearbeitungAbbrechen_LinkClicked(sender As Object, e As LinkLabelLinkClickedEventArgs) Handles lklBearbeitungAbbrechen.LinkClicked
        resetControls()
    End Sub

    Sub resetControls()
        AB_EDIT = -1
        cboArt.changeItem("") : txtAufschub_HZA.Text = "" : txtAufschub_Konto.Text = "" : txtAufschub_EORINL.Text = "" : txtAufschub_BIN.Text = ""
        txtAufschub_EORI.Text = If(USRCNTL_KDBearbFull IsNot Nothing, USRCNTL_KDBearbFull.txtEORI.Text, "")

        btn.BackgroundImage = My.Resources.plus
        lklBearbeitungAbbrechen.Visible = False
        Label23.Visible = False
        Label1.Visible = False
        Label2.Visible = False
    End Sub

    Private Sub txtAufschub_EORI_TextChanged(sender As Object, e As EventArgs) Handles txtAufschub_EORI.TextChanged
        If txtAufschub_EORI.Text.EndsWith("0000") Then
            'Replace(txtAufschub_EORI.)
            'ÄtxtAufschub_EORI.Text.ToString.Replace()
            'Replace( )
        End If
    End Sub
End Class

