Imports System.ComponentModel
Imports System.Data.SqlClient
Imports VERAG_PROG_ALLGEMEIN

Public Class usrCntlUSTV


    Dim kundenSQL As New kundenSQL
    Dim SQL As New SQL
    Dim FUNC As New cProgramFunctions
    Dim aktbtn As String = ""
    Dim dgvInitWait As Boolean = False


    Sub init()
        pnlFilter.AutoScroll = False

        With dgvUSTV
            .ClearSelection()



            .SET_SQL("SELECT TOP (200) [UStVAn_ID],[UStVAn_KuNr],[UStVAn_Name],LandKz,[UStVAn_ReDatVon],[UStVAn_ReDatBis] ,UStVAn_AntragEingereichtAm,[UStVAn_3470] ,[UStVAn_Währungscode],[UStVAn_USteuerbetrag],[UStVAn_Erstattungsbetrag],[UStVAn_USteuerbetragEUR],[UStVAn_ErstattungsbetragEUR],[UStVAn_Sachbearbeiter]
                  FROM [tblUStVAntrag] inner join [Länderverzeichnis für die Außenhandelsstatistik] on UStVAn_LandNr=Landnr
                  where 1=1 " & getWhere() & "
                  order by UStVAn_KuNr,UStVAn_Name,datepart(year,[UStVAn_ReDatVon] ) desc,LandKz,[UStVAn_ReDatVon] desc", "FMZOLL")
            .LOAD()

            .RowTemplate.Height = 20
            .AllowUserToOrderColumns = False
            .AllowUserToResizeRows = False

            If .Columns.Count > 0 Then

                .Columns("UStVAn_ID").Visible = False
                .Columns("UStVAn_KuNr").HeaderText = "KundenNr"
                .Columns("UStVAn_Name").MinimumWidth = 70


                .Columns("UStVAn_Name").HeaderText = "Firma"
                .Columns("UStVAn_Name").Width = 200
                ' .Columns("UStVAn_Name").MinimumWidth = 150
                ' .Columns("UStVAn_Name").AutoSizeMode = DataGridViewAutoSizeColumnMode.Fill

                .Columns("LandKz").Width = 60

                .Columns("UStVAn_ReDatVon").HeaderText = "Von"
                .Columns("UStVAn_ReDatVon").Width = 100

                .Columns("UStVAn_ReDatBis").HeaderText = "Bis"
                .Columns("UStVAn_ReDatBis").Width = 100


                .Columns("UStVAn_AntragEingereichtAm").HeaderText = "EingereichtAm"
                .Columns("UStVAn_AntragEingereichtAm").Width = 100

                .Columns("UStVAn_3470").HeaderText = "3470"
                .Columns("UStVAn_3470").Width = 150
                .Columns("UStVAn_3470").DefaultCellStyle.Format = "N2"
                .Columns("UStVAn_3470").DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleRight

                .Columns("UStVAn_Währungscode").HeaderText = "Währung"
                .Columns("UStVAn_Währungscode").Width = 80

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

                .Columns("UStVAn_Erstattungsbetrag").HeaderText = "Erstattung-Betrag"
                .Columns("UStVAn_Erstattungsbetrag").Width = 150
                .Columns("UStVAn_Erstattungsbetrag").DefaultCellStyle.Format = "N2"
                .Columns("UStVAn_Erstattungsbetrag").DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleRight

                .Columns("UStVAn_ErstattungsbetragEUR").HeaderText = "Erstattung-Betrag  EUR"
                .Columns("UStVAn_ErstattungsbetragEUR").Width = 150
                .Columns("UStVAn_ErstattungsbetragEUR").DefaultCellStyle.Format = "N2"
                .Columns("UStVAn_ErstattungsbetragEUR").DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleRight

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

                .Columns("UStVAn_Sachbearbeiter").HeaderText = "Sachbearbeiter"
                .Columns("UStVAn_Sachbearbeiter").MinimumWidth = 150
                .Columns("UStVAn_Sachbearbeiter").AutoSizeMode = DataGridViewAutoSizeColumnMode.Fill
            End If


        End With

    End Sub


    Function getWhere(Optional useJahr = True) As String
        Dim whereStr = ""
        'If KdSearchBox1.KdNr <= 0 Then Exit Sub

        If useJahr Then
            If cboJahr._value <> "" Then
                If cboJahrBis._value <> "" Then
                    whereStr &= " AND UStVAn_ReDatVon>='01.01." & cboJahr._value & "' AND UStVAn_ReDatBis<='31.12." & cboJahrBis._value & "'  "
                Else
                    whereStr &= " AND UStVAn_ReDatVon>='01.01." & cboJahr._value & "' AND UStVAn_ReDatBis<='31.12." & cboJahr._value & "'  "
                End If
            End If
        End If

        If KdSearchBox1.KdNr > 0 Then whereStr &= " AND UStVAn_KuNr=" & KdSearchBox1.KdNr & " "
        Return whereStr
    End Function

    Private Sub usrCntlVERAGCard_Load(sender As Object, e As EventArgs) Handles MyBase.Load
        ' btnFilter.Left = Panel4.Width - btnFilter.Width
        KdSearchBox1.initKdBox(Me.FindForm)
        init()
        cboJahr.Items.Clear()
        cboJahr.Items.Add(New VERAG_PROG_ALLGEMEIN.MyListItem("", ""))
        For i = 0 To 10
            cboJahr.Items.Add(New VERAG_PROG_ALLGEMEIN.MyListItem(Now.Year - i, Now.Year - i))
        Next
        cboJahr.changeItem(Now.Year - 2)

        cboJahrBis.Items.Clear()
        cboJahrBis.Items.Add(New VERAG_PROG_ALLGEMEIN.MyListItem("", ""))
        For i = 0 To 10
            cboJahrBis.Items.Add(New VERAG_PROG_ALLGEMEIN.MyListItem(Now.Year - i, Now.Year - i))
        Next
        cboJahrBis.changeItem(Now.Year)


        If Not VERAG_PROG_ALLGEMEIN.cBerechtignunen.CHECK_BERECHTIGUNG_bool("MDM_Leistungen_bearbeiten", Me.FindForm) Then
            'FlatButton1.Enabled = False
            FlatButton2.Enabled = False
            Button14.Enabled = False
        End If
        '   Panel3.Height = Me.Height / 2 + 300
    End Sub


    Private Sub dgvUSTV_CellDoubleClick(sender As Object, e As DataGridViewCellEventArgs) Handles dgvUSTV.CellDoubleClick
        If dgvUSTV.SelectedRows.Count > 0 Then

            Dim f As New frmMDM_USTVAntrag(dgvUSTV.SelectedRows(0).Cells("UStVAn_ID").Value)
            f.ShowDialog(Me)
        End If
    End Sub

    Private Sub cboJahr_SelectedIndexChanged(sender As Object, e As EventArgs) Handles cboJahr.SelectedIndexChanged, cboJahrBis.SelectedIndexChanged
        init()
    End Sub

    Private Sub KdSearchBox1_PropertyChanged(sender As Object, e As PropertyChangedEventArgs) Handles KdSearchBox1.PropertyChanged
        init()
    End Sub


    Private Sub Button8_Click(sender As Object, e As EventArgs) Handles Button1.Click
        cProgramFunctions.genExcelFromDGV_NEW(dgvUSTV, True)
    End Sub

    Private Sub Button8_Click_1(sender As Object, e As EventArgs) Handles Button8.Click
        'Dim sqlStr = "SELECT   [UStVAn_ID],[UStVAn_KuNr],[UStVAn_Name],LandKz,[UStVAn_ReDatVon],[UStVAn_ReDatBis] ,UStVAn_AntragEingereichtAm,[UStVAn_3470] ,[UStVAn_Währungscode],[UStVAn_USteuerbetrag],[UStVAn_Erstattungsbetrag],[UStVAn_USteuerbetragEUR],[UStVAn_ErstattungsbetragEUR],[UStVAn_Sachbearbeiter]
        '          FROM [tblUStVAntrag] inner join [Länderverzeichnis für die Außenhandelsstatistik] on UStVAn_LandNr=Landnr
        '            where 1=1 " & getWhere(False) & "
        '              AND cast( [UStVAn_USteuerbetragEUR] as decimal(17,2))-cast( [UStVAn_ErstattungsbetragEUR]  as decimal(17,2))<>0
        '              AND UStVAn_AntragEingereichtAm is not null
        '          order by UStVAn_KuNr,UStVAn_Name,datepart(year,[UStVAn_ReDatVon] ) desc,LandKz,[UStVAn_ReDatVon] desc"
        Dim sqlStr = "SELECT   [UStVAn_ID],[UStVAn_KuNr],[UStVAn_Name],LandKz,[UStVAn_ReDatVon],[UStVAn_ReDatBis] ,UStVAn_AntragEingereichtAm,[UStVAn_3470] ,[UStVAn_Währungscode],[UStVAn_USteuerbetrag],[UStVAn_Erstattungsbetrag],[UStVAn_USteuerbetragEUR],[UStVAn_ErstattungsbetragEUR],(cast([UStVAn_USteuerbetragEUR] as decimal(17,2)) - cast( [UStVAn_ErstattungsbetragEUR]  as decimal(17,2))) as Differenzbetrag, [UStVAn_Sachbearbeiter]
                  FROM [tblUStVAntrag] inner join [Länderverzeichnis für die Außenhandelsstatistik] on UStVAn_LandNr=Landnr
                    where 1=1  
                      AND cast( [UStVAn_USteuerbetragEUR] as decimal(17,2))-cast( [UStVAn_ErstattungsbetragEUR]  as decimal(17,2))<>0
                      AND UStVAn_AntragEingereichtAm is not null
                  order by UStVAn_KuNr,UStVAn_Name,datepart(year,[UStVAn_ReDatVon] ) desc,LandKz,[UStVAn_ReDatVon] desc"

        Dim dt = SQL.loadDgvBySql(sqlStr, "FMZOLL")
        If dt IsNot Nothing AndAlso dt.Rows.Count > 0 Then
            cProgramFunctions.genExcelFromDT_NEW(dt, {"J1:N" & (dt.Rows.Count + 1)})
        Else
            MsgBox("Keine Daten!")
        End If

    End Sub

    Private Sub Button5_Click(sender As Object, e As EventArgs) Handles Button5.Click
        ' If Not kdNr_filter Then
        If dgvUSTV.SelectedCells.Count > 0 Then
                If IsNumeric(dgvUSTV.CurrentRow.Cells("UStVAn_KuNr").Value) Then
                    cProgramFunctions.openKundenblatt(dgvUSTV.CurrentRow.Cells("UStVAn_KuNr").Value, Me.FindForm, True)
                    'Dim pf As New cProgramFunctions
                    'pf.openKundenblatt(dgvSDL.CurrentRow.Cells("KundenNr").Value)
                End If
            End If
        ' End If
    End Sub
End Class
