Imports System.Reflection

Public Class frmMDM_USTVAntrag

    Dim UStVAn_ID As Integer
    Dim USTV_ANTRAG As VERAG_PROG_ALLGEMEIN.cUSTVAntrag = Nothing
    Dim Antrag_LandKz As String = ""
    Dim SQL As New VERAG_PROG_ALLGEMEIN.SQL
    Sub New(UStVAn_ID)

        ' Dieser Aufruf ist für den Designer erforderlich.
        InitializeComponent()

        ' Fügen Sie Initialisierungen nach dem InitializeComponent()-Aufruf hinzu.
        Me.UStVAn_ID = UStVAn_ID

    End Sub

    Sub init()
        pnlFilter.AutoScroll = False

        lblGesamtUSteuer.Text = "-"
        lblGesamtErstattung.Text = "-"
        lblDiffernezbetrag.Text = "-"

        With dgvUSTVPositionen
            .ClearSelection()

            If UStVAn_ID <= 0 Then Exit Sub

            .SET_SQL("SELECT  [UStVAn_ID] ,[UStVPo_ID] ,[UStVPo_ReDat],[UStVPo_ReNr],[UStVPo_Leistungsbezeichnung],[UStVPo_Leistender],[UStVPo_USteuerbetrag],[UStVPo_Schnittstelle],[UStVPo_SchnittstellenNr],[UStVPo_Umrechnungskurs],[UStVPo_USteuerbetragEUR],[UStVPo_Sachbearbeiter] 
                      FROM [tblUStVPositionen]
                      where UStVAn_ID='" & UStVAn_ID & "' ORDER BY UStVPo_ID", "FMZOLL")
            .LOAD()
            .RowTemplate.Height = 20
            .AllowUserToOrderColumns = False
            .AllowUserToResizeRows = False

            If .Columns.Count > 0 Then

                .Columns("UStVAn_ID").Visible = False
                .Columns("UStVPo_ID").HeaderText = "Pos"
                .Columns("UStVPo_ID").Width = 40


                .Columns("UStVPo_ReDat").HeaderText = "Rg-Datum"
                .Columns("UStVPo_ReDat").Width = 80

                .Columns("UStVPo_ReNr").HeaderText = "Rechnungs-Nr"
                .Columns("UStVPo_ReNr").Width = 180

                .Columns("UStVPo_USteuerbetrag").HeaderText = "USt-Betrag"
                .Columns("UStVPo_USteuerbetrag").Width = 110
                .Columns("UStVPo_USteuerbetrag").DefaultCellStyle.Format = "N2"
                .Columns("UStVPo_USteuerbetrag").DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleRight


                .Columns("UStVPo_Leistungsbezeichnung").HeaderText = "Leistungsbezeichnung"
                .Columns("UStVPo_Leistungsbezeichnung").Width = 200


                .Columns("UStVPo_Leistender").HeaderText = "Leistender"
                .Columns("UStVPo_Leistender").Width = 220


                .Columns("UStVPo_Schnittstelle").HeaderText = "API"
                .Columns("UStVPo_Schnittstelle").Width = 30

                .Columns("UStVPo_SchnittstellenNr").HeaderText = "API-Nr"
                .Columns("UStVPo_SchnittstellenNr").Width = 40


                .Columns("UStVPo_Umrechnungskurs").HeaderText = "Umrechnungskurs"
                .Columns("UStVPo_Umrechnungskurs").Width = 60
                .Columns("UStVPo_Umrechnungskurs").DefaultCellStyle.Format = "N2"
                .Columns("UStVPo_Umrechnungskurs").DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleRight

                .Columns("UStVPo_USteuerbetragEUR").HeaderText = "USt-Betrag EUR"
                .Columns("UStVPo_USteuerbetragEUR").Width = 110
                .Columns("UStVPo_USteuerbetragEUR").DefaultCellStyle.Format = "N2"
                .Columns("UStVPo_USteuerbetragEUR").DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleRight

                .Columns("UStVPo_Sachbearbeiter").HeaderText = "Sachbearbeiter"
                .Columns("UStVPo_Sachbearbeiter").MinimumWidth = 150
                .Columns("UStVPo_Sachbearbeiter").AutoSizeMode = DataGridViewAutoSizeColumnMode.Fill

            End If

        End With

        Dim GesamtUSteuer As Double = SQL.DLookup("isnull(sum(UStVPo_USteuerbetragEUR),0)", "tblUStVPositionen", "UStVAn_ID='" & UStVAn_ID & "'", "FMZOLL", "0")
        Dim GesamtErstattung As Double = SQL.DLookup("isnull(sum(UStVEr_USteuerbetragEUR),0)", "tblUStVErstattung", "UStVAn_ID='" & UStVAn_ID & "'", "FMZOLL", "0")
        Dim Differnezbetrag As Double = GesamtUSteuer - GesamtErstattung

        lblGesamtUSteuer.Text = GesamtUSteuer.ToString("C2")
        lblGesamtErstattung.Text = GesamtErstattung.ToString("C2")
        lblDiffernezbetrag.Text = Differnezbetrag.ToString("C2")


        Dim GET_Antraege = MDM_Worker.cPLOSE.GET_Antraege(USTV_ANTRAG.UStVAn_ReDatVon, USTV_ANTRAG.UStVAn_ReDatBis, USTV_ANTRAG.UStVAn_KuNr, Antrag_LandKz, False)



        If GET_Antraege IsNot Nothing AndAlso GET_Antraege.Count > 0 Then
            lblPLOSE_EintrageVerarbetiet.Text = "aussehende Einträge: " & GET_Antraege.Count
        Else
            lblPLOSE_EintrageVerarbetiet.Text = "alle Einträge verarbeitet"
        End If


    End Sub

    Sub setValue(USTV_ANTRAG As VERAG_PROG_ALLGEMEIN.cUSTVAntrag)

        lblFirma.Text = USTV_ANTRAG.UStVAn_Name
        lblKdNr.Text = USTV_ANTRAG.UStVAn_KuNr
        lblLand.Text = Antrag_LandKz
        txtVon._value = CDate(USTV_ANTRAG.UStVAn_ReDatVon)
        txtBis._value = CDate(USTV_ANTRAG.UStVAn_ReDatBis)
        'lblZeitraum.Text = CDate(USTV_ANTRAG.UStVAn_ReDatVon).ToString("dd.MM.yyyy") & " - " & CDate(USTV_ANTRAG.UStVAn_ReDatBis).ToString("dd.MM.yyyy")
        cboStatus.changeItem(If(USTV_ANTRAG.UStVAn_Status, ""))
        rtbStatusText.Text = If(USTV_ANTRAG.UStVAn_StatusText, "")

    End Sub

    Sub getValue(ByRef USTV_ANTRAG As VERAG_PROG_ALLGEMEIN.cUSTVAntrag)

        If Me_Validate() Then
            'lblFirma.Text = USTV_ANTRAG.UStVAn_Name
            'lblLand.Text = Antrag_LandKz
            If IsDate(txtVon._value) Then USTV_ANTRAG.UStVAn_ReDatVon = CDate(txtVon._value)
            If IsDate(txtBis._value) Then USTV_ANTRAG.UStVAn_ReDatBis = CDate(txtBis._value)

            'lblZeitraum.Text = CDate(USTV_ANTRAG.UStVAn_ReDatVon).ToString("dd.MM.yyyy") & " - " & CDate(USTV_ANTRAG.UStVAn_ReDatBis).ToString("dd.MM.yyyy")

            USTV_ANTRAG.UStVAn_Status = cboStatus._value
            USTV_ANTRAG.UStVAn_StatusText = rtbStatusText.Text
        End If
    End Sub
    Function Me_Validate() As Boolean
        If Not IsDate(txtVon._value) Then MsgBox("Datumsformat: Von") : Return False
        If Not IsDate(txtBis._value) Then MsgBox("Datumsformat: Bis") : Return False
        Return True
    End Function

    Public Shared Sub EnableDoubleBuffered(ByRef dgv As DataGridView)
        Dim dgvType As Type = dgv.[GetType]()
        Dim pi As PropertyInfo = dgvType.GetProperty("DoubleBuffered", BindingFlags.Instance Or BindingFlags.NonPublic)
        pi.SetValue(dgv, True, Nothing)
    End Sub

    Private Sub UsrCntlDatenDetails1_Changed(POSId) Handles UstCntlUSTV_AntragPosition1.CHANGED
        'refreshDgv(kdNr, SDLNr, Kfz, History)'?????????????? ausgebelndet,was das ein VErsuch? 31.07.2017
        dgvUSTVPositionen.VALUE_CHANGED = True
    End Sub

    Private Sub usrCntlVERAGCard_Load(sender As Object, e As EventArgs) Handles MyBase.Load

        EnableDoubleBuffered(dgvUSTVPositionen)

        cboStatus.Items.Clear()
        cboStatus.Items.Add(New VERAG_PROG_ALLGEMEIN.MyListItem("-", ""))
        cboStatus.Items.Add(New VERAG_PROG_ALLGEMEIN.MyListItem("In Bearbeitung", cUSTVStatus.STAT_INBEARBEITUNG))
        cboStatus.Items.Add(New VERAG_PROG_ALLGEMEIN.MyListItem("Unvollständig", cUSTVStatus.STAT_UNVOLLSTAENDIG))
        cboStatus.Items.Add(New VERAG_PROG_ALLGEMEIN.MyListItem("Eingereicht", cUSTVStatus.STAT_EINGEREICHT))
        cboStatus.Items.Add(New VERAG_PROG_ALLGEMEIN.MyListItem("Nachforderung/Berichtigung", cUSTVStatus.STAT_NACHFORDERUNG))
        cboStatus.Items.Add(New VERAG_PROG_ALLGEMEIN.MyListItem("Abgeschlossen/Erstattet", cUSTVStatus.STAT_ERSTATTET))
        cboStatus.Items.Add(New VERAG_PROG_ALLGEMEIN.MyListItem("Teil-Erstattet", cUSTVStatus.STAT_TEILERSTATTET))
        cboStatus.Items.Add(New VERAG_PROG_ALLGEMEIN.MyListItem("Abgelehnt", cUSTVStatus.STAT_ABGELEHNT))
        cboStatus.Items.Add(New VERAG_PROG_ALLGEMEIN.MyListItem("Storno", cUSTVStatus.STAT_STORNO))
        cboStatus.changeItem(cUSTVStatus.STAT_INBEARBEITUNG)




        lblPLOSE_EintrageVerarbetiet.Text = ""

        If UStVAn_ID > 0 Then
            USTV_ANTRAG = New VERAG_PROG_ALLGEMEIN.cUSTVAntrag(UStVAn_ID)
            Antrag_LandKz = SQL.DLookup("LandKz", "[Länderverzeichnis für die Außenhandelsstatistik]", "Landnr='" & USTV_ANTRAG.UStVAn_LandNr & "'", "FMZOLL")
            setValue(USTV_ANTRAG)
        End If

        init()

    End Sub

    Private Sub Button14_Click(sender As Object, e As EventArgs) Handles Button14.Click
        loadUSTVFrom_PLOSE()

        init()
    End Sub

    Function alreadyExists(USTVAn_KuNr As Integer, UStVAn_LandNr As String, USTV_POS As VERAG_PROG_ALLGEMEIN.cUStVPositionen) As Boolean
        Dim cnt = SQL.getValueTxtBySql(" SELECT count(*)  FROM [tblUStVAntrag] inner join [tblUStVPositionen] on tblUStVAntrag.UStVAn_ID= [tblUStVPositionen].UStVAn_ID
                               WHERE USTVAn_KuNr='" & USTVAn_KuNr & "' AND  UStVPo_SchnittstellenNr='" & USTV_POS.UStVPo_SchnittstellenNr & "' AND UStVPo_ReNr = '" & USTV_POS.UStVPo_ReNr & "' AND UStVPo_ReDat='" & USTV_POS.UStVPo_ReDat & "' AND UStVAn_LandNr='" & UStVAn_LandNr & "'  ", "FMZOLL")
        Return (cnt > 0)
    End Function

    Function alreadyExists_InAntrag(USTV_POS As VERAG_PROG_ALLGEMEIN.cUStVPositionen) As Boolean
        For Each row As DataGridViewRow In dgvUSTVPositionen.Rows
            If row.Cells("UStVPo_SchnittstellenNr").Value = USTV_POS.UStVPo_SchnittstellenNr Then
                If row.Cells("UStVPo_ReNr").Value = USTV_POS.UStVPo_ReNr.ToString And row.Cells("UStVPo_ReDat").Value = USTV_POS.UStVPo_ReDat Then
                    Return True
                End If
            End If
        Next
        Return False
    End Function

    Function loadUSTVFrom_PLOSE() As Boolean
        Try
            Dim bytSchnittstellenNr = 6 'glaube noch frei?
            Dim USTV_ANTRAG As New VERAG_PROG_ALLGEMEIN.cUSTVAntrag(UStVAn_ID)
            Dim GET_Antraege = MDM_Worker.cPLOSE.GET_Antraege(USTV_ANTRAG.UStVAn_ReDatVon, USTV_ANTRAG.UStVAn_ReDatBis, USTV_ANTRAG.UStVAn_KuNr, Antrag_LandKz, cbxArchivierteEintracheNochmalsEinarbetien.Checked)

            If GET_Antraege IsNot Nothing Then

                For Each ANTRAG In GET_Antraege

                    Dim USTV_POS As New VERAG_PROG_ALLGEMEIN.cUStVPositionen
                    USTV_POS.UStVAn_ID = USTV_ANTRAG.[UStVAn_ID]
                    USTV_POS.UStVPo_ID = USTV_ANTRAG.getMaxPosNr

                    USTV_POS.UStVPo_ReDat = ANTRAG.plose_RechnungsDatum
                    USTV_POS.UStVPo_ReNr = ANTRAG.plose_RechnungsNr.ToString
                    USTV_POS.UStVPo_SchnittstellenNr = bytSchnittstellenNr

                    If Not alreadyExists(USTV_ANTRAG.UStVAn_KuNr, USTV_ANTRAG.UStVAn_LandNr, USTV_POS) Then

                        USTV_POS.UStVPo_Schnittstelle = True
                        USTV_POS.UStVPo_Leistungsbezeichnung = "Maut"
                        USTV_POS.UStVPo_Leistender = ANTRAG.plose_Lieferant
                        USTV_POS.UStVPo_Sachbearbeiter = VERAG_PROG_ALLGEMEIN.cAllgemein.USRKURZNAME
                        USTV_POS.UStVPo_Zeitstempel = Now()
                        ' Berechnungen
                        USTV_POS.UStVPo_USteuerbetragEUR = ANTRAG.plose_MWSTBetragWaehrungAbbuchung 'VERAG_PROG_ALLGEMEIN.cProgramFunctions.fktEuro(ANTRAG.plose_MWSTBetragWaehrungAbbuchung, USTV_ANTRAG.UStVAn_Währungscode, "EUR")
                        'USTV_POS.UStVPo_Umrechnungskurs = VERAG_PROG_ALLGEMEIN.cProgramFunctions.fktEuroKurs(ANTRAG.plose_WaehrungAbbuchung, ANTRAG.plose_RechnungsDatum)
                        USTV_POS.UStVPo_Umrechnungskurs = ANTRAG.plose_MWSTBetrag / ANTRAG.plose_MWSTBetragWaehrungAbbuchung
                        USTV_POS.UStVPo_USteuerbetrag = ANTRAG.plose_MWSTBetrag
                        ' MsgBox(ANTRAG.plose_Lieferant & "  -  " & ANTRAG.plose_RechnungsDatum & "  -  " & ANTRAG.plose_RechnungsNr & " :::::::::: " & CDbl(ANTRAG.plose_MWSTBetrag).ToString("C2"))


                        USTV_POS.INSERT()
                    End If
                Next

                'Einträge als archivert setzen ' vormals wichtig
                MDM_Worker.cPLOSE.UPDATE_ARCHIV(USTV_ANTRAG.UStVAn_ReDatVon, USTV_ANTRAG.UStVAn_ReDatBis, USTV_ANTRAG.UStVAn_KuNr)

            End If
            Return True
        Catch ex As Exception
            Return False
        End Try
    End Function

    Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click

        getValue(USTV_ANTRAG)
        If USTV_ANTRAG.SAVE Then
            Me.Close()
        End If
    End Sub

    Sub initPosition(UStVPo_ID)
        If UStVPo_ID > 0 Then
            Dim ANTR_POS As New VERAG_PROG_ALLGEMEIN.cUStVPositionen(USTV_ANTRAG.UStVAn_ID, UStVPo_ID)
            UstCntlUSTV_AntragPosition1.Enabled = True
            UstCntlUSTV_AntragPosition1.setValues(ANTR_POS, Antrag_LandKz)
        Else
            UstCntlUSTV_AntragPosition1.reset()
            UstCntlUSTV_AntragPosition1.Enabled = False
        End If

    End Sub

    Private Sub dgvUSTVPositionen_SelectionChanged(sender As Object, e As EventArgs) Handles dgvUSTVPositionen.SelectionChanged
        If dgvUSTVPositionen.SelectedRows.Count > 0 Then
            initPosition(dgvUSTVPositionen.SelectedRows(0).Cells("UStVPo_ID").Value)

        End If

    End Sub

    Private Sub UstCntlUSTV_AntragPosition1_EV_NEXT() Handles UstCntlUSTV_AntragPosition1.EV_NEXT

        If dgvUSTVPositionen.SelectedRows.Count > 0 Then
            If dgvUSTVPositionen.RowCount > dgvUSTVPositionen.SelectedRows(0).Index + 1 Then
                UstCntlUSTV_AntragPosition1.Enabled = True
                Dim selIndex = dgvUSTVPositionen.SelectedRows(0).Index + 1
                dgvUSTVPositionen.ClearSelection()
                dgvUSTVPositionen.Rows(selIndex).Selected = True
                dgvUSTVPositionen.CurrentCell = dgvUSTVPositionen.SelectedRows(0).Cells("UStVPo_ID")
            End If
        End If

    End Sub
    Private Sub UstCntlUSTV_AntragPosition1_EV_PREV() Handles UstCntlUSTV_AntragPosition1.EV_PREV
        If dgvUSTVPositionen.SelectedRows.Count > 0 Then
            If dgvUSTVPositionen.SelectedRows(0).Index > 0 Then
                UstCntlUSTV_AntragPosition1.Enabled = True
                Dim selIndex = dgvUSTVPositionen.SelectedRows(0).Index - 1
                dgvUSTVPositionen.ClearSelection()
                dgvUSTVPositionen.Rows(selIndex).Selected = True
                dgvUSTVPositionen.CurrentCell = dgvUSTVPositionen.SelectedRows(0).Cells("UStVPo_ID")
            End If
        End If

    End Sub


    Private Sub ustCntlUSTV_AntragPosition_KeyDown(sender As Object, e As PreviewKeyDownEventArgs) Handles Me.PreviewKeyDown
        If e.KeyValue = Keys.PageDown Then
            UstCntlUSTV_AntragPosition1_EV_NEXT()
        End If
        If e.KeyValue = Keys.PageUp Then
            UstCntlUSTV_AntragPosition1_EV_PREV()
        End If
    End Sub

    Private Sub frmMDM_USTVAntrag_Shown(sender As Object, e As EventArgs) Handles Me.Shown
        Me.Top = 0
        Me.Height = Screen.FromRectangle(Me.Bounds).WorkingArea.Size.Height
    End Sub

    Private Sub cboStatus_SelectedIndexChanged(sender As Object, e As EventArgs) Handles cboStatus.SelectedIndexChanged
        For Each b In FlowLayoutPanel.Controls
            b.visible = False
        Next


        Panel5.BackColor = Color.FromArgb(255, 255, 192)
        Panel5.ForeColor = Color.Black
        Select Case cboStatus._value
            Case cUSTVStatus.STAT_INBEARBEITUNG
                btnEingereicht.Visible = True
                btnStorno.Visible = True
                btnUnvollst.Visible = True
                Panel5.BackColor = Color.LightGray
            Case cUSTVStatus.STAT_UNVOLLSTAENDIG
                btnBearb.Visible = True
                btnEingereicht.Visible = True
                btnStorno.Visible = True
                Panel5.BackColor = Color.FromArgb(255, 192, 128)
            Case cUSTVStatus.STAT_EINGEREICHT
                'btnBearb.Visible = True
                btnStorno.Visible = True
                btnTeilerstattung.Visible = True
                btnErstettel.Visible = True
                btnAbgelehnt.Visible = True
                btnNachforderung.Visible = True
                Panel5.BackColor = Color.SteelBlue
                Panel5.ForeColor = Color.White
            Case cUSTVStatus.STAT_ABGELEHNT
                btnBearb.Visible = True
                btnEingereicht.Visible = True
                btnUnvollst.Visible = True
                btnStorno.Visible = True
                Panel5.BackColor = Color.Red
                Panel5.ForeColor = Color.White
            Case cUSTVStatus.STAT_NACHFORDERUNG
                btnBearb.Visible = True
                btnEingereicht.Visible = True
                'btnUnvollst.Visible = True
                btnStorno.Visible = True
                Panel5.BackColor = Color.FromArgb(255, 192, 128)
            Case cUSTVStatus.STAT_ERSTATTET
                '  btnStorno.Visible = True
                Panel5.BackColor = Color.Green
                Panel5.ForeColor = Color.White
                lblAntragAbgeschlossen.Visible = True
                lblAntragAbgeschlossen.ForeColor = Color.DarkGreen
            Case cUSTVStatus.STAT_TEILERSTATTET
                ' btnErstettel.Visible = True
                ' btnStorno.Visible = True
                Panel5.BackColor = Color.Green
                Panel5.ForeColor = Color.White
                lblAntragAbgeschlossen.Visible = True
                lblAntragAbgeschlossen.ForeColor = Color.DarkGreen
            Case cUSTVStatus.STAT_STORNO
                ' btnStorno.Visible = True
                Panel5.BackColor = Color.IndianRed
                Panel5.ForeColor = Color.White
                lblAntragAbgeschlossen.Visible = True
                lblAntragAbgeschlossen.ForeColor = Color.IndianRed
        End Select

        cboStatus.BackColor = Panel5.BackColor
        cboStatus.ForeColor = Panel5.ForeColor

        Label5.BackColor = Panel5.BackColor
        Label5.ForeColor = Panel5.ForeColor
        Label6.ForeColor = Panel5.ForeColor
        Label6.ForeColor = Panel5.ForeColor
    End Sub

    Private Sub btnBearb_Click(sender As Object, e As EventArgs) Handles btnBearb.Click
        cboStatus.changeItem(cUSTVStatus.STAT_INBEARBEITUNG)
    End Sub

    Private Sub btnTeilerstattung_Click(sender As Object, e As EventArgs) Handles btnTeilerstattung.Click
        cboStatus.changeItem(cUSTVStatus.STAT_TEILERSTATTET)
    End Sub

    Private Sub btnUnvollst_Click(sender As Object, e As EventArgs) Handles btnUnvollst.Click
        cboStatus.changeItem(cUSTVStatus.STAT_UNVOLLSTAENDIG)
    End Sub

    Private Sub btnEingereicht_Click(sender As Object, e As EventArgs) Handles btnEingereicht.Click
        cboStatus.changeItem(cUSTVStatus.STAT_EINGEREICHT)
    End Sub

    Private Sub btnAbgelehnt_Click(sender As Object, e As EventArgs) Handles btnAbgelehnt.Click
        cboStatus.changeItem(cUSTVStatus.STAT_ABGELEHNT)
    End Sub

    Private Sub btnNachforderung_Click(sender As Object, e As EventArgs) Handles btnNachforderung.Click
        cboStatus.changeItem(cUSTVStatus.STAT_NACHFORDERUNG)
    End Sub

    Private Sub btnErstettel_Click(sender As Object, e As EventArgs) Handles btnErstettel.Click
        cboStatus.changeItem(cUSTVStatus.STAT_ERSTATTET)
    End Sub

    Private Sub btnStorno_Click(sender As Object, e As EventArgs) Handles btnStorno.Click
        cboStatus.changeItem(cUSTVStatus.STAT_STORNO)
    End Sub

    Private Sub Button2_Click(sender As Object, e As EventArgs) Handles Button2.Click
        UstCntlUSTV_AntragPosition1.reset()
        UstCntlUSTV_AntragPosition1.UStV_POS = Nothing
        UstCntlUSTV_AntragPosition1.Enabled = True
    End Sub

    Private Sub Button3_Click(sender As Object, e As EventArgs) Handles Button3.Click
        If vbYes = MsgBox("Möchten Sie den Eintrag wirklich löschen?", vbYesNoCancel) Then
            'UstCntlUSTV_AntragPosition1.UStV_POS.delete()
            UstCntlUSTV_AntragPosition1.Enabled = False

        End If
    End Sub

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

    End Sub

    '    Private Sub cmdITMautÜbernehmen_Click()

    '        Dim wrk As DAO.Workspace
    '        Dim qry1 As DAO.QueryDef
    '        Dim qry2 As DAO.QueryDef
    '        Dim rst1 As DAO.Recordset
    '        Dim rstUStVPositionen As DAO.Recordset
    '        Dim bytSchnittstellenNr As Byte
    '        Dim fInTransaktion As Boolean
    '        Dim intUStVPo_ID As Integer

    '1380     On Error GoTo PROC_Error

    '1390     If Eingabefehler Then Exit Sub
    '1400     If Me!UStVAn_LandNr <> 5 Then
    '1410         MsgBox "Datenübernahme nicht möglich (Land ist nicht Italien).", vbInformation, "Eingabeprüfung"
    '1420         Exit Sub
    '1430     End If

    '         ' Wenn Daten in Formular geändert wurden, Speichern auslösen.
    '1440     If Me.Dirty Then DoCmd.RunCommand acCmdSaveRecord
    '1450     DoCmd.Hourglass True

    '         ' Italienisches Mautarchiv lesen.
    '1460     Set wrk = DBEngine.Workspaces(0)
    '1470     Set qry1 = dbs.QueryDefs("qryUStVMautITLesen")
    '1480     qry1.Parameters("[Param1]") = Me![UStVAn_ReDatVon]
    '1490     qry1.Parameters("[Param2]") = Me![UStVAn_ReDatBis]
    '1500     qry1.Parameters("[Param3]") = Me![UStVAn_KuNr]
    '1510     Set rst1 = qry1.OpenRecordset(dbOpenSnapshot)
    '1520     If Not rst1.EOF Then
    '1530         bytSchnittstellenNr = 3
    '1540         intUStVPo_ID = UStVPo_ID_zuordnen(Me![UStVAn_ID])
    '1550         Set rstUStVPositionen = dbs.OpenRecordset("tblUStVPositionen", dbOpenDynaset, dbAppendOnly)
    '1560         wrk.BeginTrans
    '1570         fInTransaktion = True
    '1580         Do Until rst1.EOF
    '1590             If RechnungÜbernehmen(rst1!RechnungsDatum, CStr(rst1!Rechnungsnummer), bytSchnittstellenNr, Me!UStVAn_KuNr, Me!UStVAn_LandNr) Then
    '1600                 intUStVPo_ID = intUStVPo_ID + 1
    '                     ' Schreiben der Umsatzsteuerdaten in die Tabelle.
    '1610                 With rstUStVPositionen
    '1620                     .AddNew
    '1630                     !UStVAn_ID = Me![UStVAn_ID]
    '1640                     !UStVPo_ID = intUStVPo_ID
    '1650                     !UStVPo_ReDat = rst1!RechnungsDatum
    '1660                     !UStVPo_ReNr = CStr(rst1!Rechnungsnummer)
    '1670                     !UStVPo_Schnittstelle = True
    '1680                     !UStVPo_SchnittstellenNr = bytSchnittstellenNr
    '1690                     !UStVPo_Leistungsbezeichnung = "Maut"
    '1700                     !UStVPo_Leistender = "Telepass"
    '1710                     !UStVPo_Sachbearbeiter = CurrentUser()
    '1720                     !UStVPo_Zeitstempel = Now()
    '                         ' Berechnungen
    '1730                     !UStVPo_USteuerbetragEUR = rst1!MWStBetrag
    '1740                     !UStVPo_Umrechnungskurs = fktEurokurs(Me![UStVAn_Währungscode], ![UStVPo_ReDat])
    '1750                     !UStVPo_USteuerbetrag = Int(![UStVPo_USteuerbetragEUR] * !UStVPo_Umrechnungskurs * 100 + 0.5) / 100
    '1760                     .Update
    '1770                 End With
    '                     ' UStV-Antragsnummer im Archiv eintragen.
    '1780                 Set qry2 = dbs.QueryDefs("qryUStVMautITAntragsNrEintragen")
    '1790                 qry2.Parameters("[prmUStVAn_ID]") = Me![UStVAn_ID]
    '1800                 qry2.Parameters("[prmVerrechnungsdatum]") = rst1!RechnungsDatum
    '1810                 qry2.Parameters("[prmCode_Adressat_des_Kontoauszugs]") = rst1!Rechnungsnummer
    '1820                 qry2.Execute dbFailOnError
    '1830                 qry2.Close
    '1840                 Set qry2 = Nothing
    '1850             End If
    '1860             rst1.MoveNext
    '1870         Loop
    '1880         wrk.CommitTrans
    '1890         fInTransaktion = False
    '1900         Me!tblUStVPositionen.Requery
    '1910     End If

    'PROC_Exit:
    '1920     On Error Resume Next
    '1930     If Not rstUStVPositionen Is Nothing Then
    '1940         rstUStVPositionen.Close
    '1950         Set rstUStVPositionen = Nothing
    '1960     End If
    '1970     If Not rst1 Is Nothing Then
    '1980         rst1.Close
    '1990         Set rst1 = Nothing
    '2000     End If
    '2010     If Not qry2 Is Nothing Then
    '2020         qry2.Close
    '2030         Set qry2 = Nothing
    '2040     End If
    '2050     If Not qry1 Is Nothing Then
    '2060         qry1.Close
    '2070         Set qry1 = Nothing
    '2080     End If
    '2090     If Not wrk Is Nothing Then
    '2100         Set wrk = Nothing
    '2110     End If
    '2120     DoCmd.Hourglass False
    '2130     Exit Sub

    'PROC_Error:
    '2140     If fInTransaktion Then
    '2150         wrk.Rollback
    '2160         fInTransaktion = False
    '2170     End If
    '2180     DoCmd.Hourglass False
    '2190     ErrNotify Err, "Form_frmUStVAntragserfassung", "cmdITMautÜbernehmen_Click", eNormalError
    '2200     Resume PROC_Exit

    '     End Sub




    '    Private Function RechnungÜbernehmen(
    '          ByRef varUStVPo_ReDat As Variant,
    '          ByRef varUStVPo_ReNr As Variant,
    '          ByRef varUStVPo_SchnittstellenNr As Variant,
    '          ByRef varUStVAn_KuNr,
    '          ByRef varUStVAn_LandNr) As Boolean

    '        Dim fResult As Boolean
    '        Dim qry As DAO.QueryDef
    '        Dim rst As DAO.Recordset

    '12000     On Error GoTo PROC_Error

    '12010     Set qry = dbs.QueryDefs("qryUStVRechnungÜbernehmen")
    '12020     qry.Parameters("[prmUStVPo_ReDat]") = varUStVPo_ReDat
    '12030     qry.Parameters("[prmUStVPo_ReNr]") = varUStVPo_ReNr
    '12040     qry.Parameters("[prmUStVPo_SchnittstellenNr]") = varUStVPo_SchnittstellenNr
    '12050     qry.Parameters("[prmUStVAn_KuNr]") = varUStVAn_KuNr
    '12060     qry.Parameters("[prmUStVAn_LandNr]") = varUStVAn_LandNr
    '12070     Set rst = qry.OpenRecordset(dbOpenSnapshot)
    '12080     If rst.EOF Then fResult = True Else fResult = False

    'PROC_Exit:
    '12090     On Error Resume Next
    '12100     If Not rst Is Nothing Then
    '12110         rst.Close
    '12120         Set rst = Nothing
    '12130     End If
    '12140     If Not qry Is Nothing Then
    '12150         qry.Close
    '12160         Set qry = Nothing
    '12170     End If
    '12180     RechnungÜbernehmen = fResult
    '12190     Exit Function

    'PROC_Error:
    '12200     Select Case ErrHandler(Err, "Form_frmUStVAntragserfassung", "RechnungÜbernehmen")
    '              Case 0
    '12210             Resume
    '12220         Case 1
    '12230             ErrNotify Err, "Form_frmUStVAntragserfassung", "RechnungÜbernehmen", eNormalError
    '12240         Case 2
    '12250             ErrNotify Err, "Form_frmUStVAntragserfassung", "RechnungÜbernehmen", eHiddenError
    '12260     End Select
    '12270     fResult = False
    '12280     Resume PROC_Exit

    '      End Function


End Class