Files
SDL/SDL/USTV/usrCntlUSTV.vb
2025-01-15 18:12:00 +01:00

914 lines
54 KiB
VB.net

Imports System.ComponentModel
Imports Microsoft.Office.Interop
Imports VERAG_PROG_ALLGEMEIN
Public Class usrCntlUSTV
Dim kundenSQL As New kundenSQL
Dim SQL As New VERAG_PROG_ALLGEMEIN.SQL
Dim FUNC As New cProgramFunctions
Dim aktbtn As String = ""
Dim dgvInitWait As Boolean = False
Public kdNr As Integer = -1
Dim loaded As Boolean = False
Sub init(Optional kdNr As Integer = -1)
pnlFilter.AutoScroll = False
btnKundendatenaktualisieren.Enabled = False
' MsgBox(kdNr)
If kdNr > 0 Then
Me.kdNr = kdNr
KdSearchBox1.KdNr = kdNr
KdSearchBox1.Enabled = False
End If
btnPLOSEAlle.Enabled = KdSearchBox1.KdNr > 0
With dgvUSTV
.ClearSelection()
Dim topMax = ""
If cbxTopMax.Checked Then
If IsNumeric(txtMaxSrch.Text) Then
topMax = " TOP (" & txtMaxSrch.Text.Trim & ")"
Else
topMax = " TOP (200)"
End If
End If
.SET_SQL("SELECT " & topMax & " [UStVAn_ID],UStVAn_AntragArt,[UStVAn_KuNr],[UStVAn_Name],LandKz, UStVAn_BezugsNr, [UStVAn_ReDatVon], [UStVAn_ReDatBis] ,UStVAn_AntragEingereichtAm,[UStVAn_3470] ,[UStVAn_Währungscode],[UStVAn_USteuerbetrag],[UStVAn_Erstattungsbetrag],([UStVAn_USteuerbetrag] - [UStVAn_Erstattungsbetrag]) as UStVAn_Differenzbetrag,[UStVAn_USteuerbetragEUR],[UStVAn_ErstattungsbetragEUR],([UStVAn_USteuerbetragEUR] - [UStVAn_ErstattungsbetragEUR]) as UStVAn_DifferenzbetragEUR,[UStVAn_VZBetrag],[UStVAn_VZDatum],[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()
loaded = True
.RowTemplate.Height = 20
.AllowUserToOrderColumns = False
.AllowUserToResizeRows = False
btnKundendatenaktualisieren.Enabled = KdSearchBox1.KdNr > 0 'AndAlso .RowCount > 0
If .Columns.Count > 0 Then
Dim DataGridViewCellStyleDate = New DataGridViewCellStyle()
DataGridViewCellStyleDate.Format = "MM/yyyy"
.Columns("UStVAn_ID").Visible = False
.Columns("UStVAn_AntragArt").HeaderText = "Art"
.Columns("UStVAn_AntragArt").MinimumWidth = 50
.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").DefaultCellStyle = DataGridViewCellStyleDate
.Columns("UStVAn_ReDatVon").Width = 100
.Columns("UStVAn_ReDatBis").HeaderText = "Bis"
'.Columns("UStVAn_ReDatBis").DefaultCellStyle = DataGridViewCellStyleDate
.Columns("UStVAn_ReDatBis").Width = 100
.Columns("UStVAn_BezugsNr").HeaderText = "BezugsNr"
.Columns("UStVAn_BezugsNr").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_Differenzbetrag").HeaderText = "Differenz-Betrag"
.Columns("UStVAn_Differenzbetrag").Width = 150
.Columns("UStVAn_Differenzbetrag").DefaultCellStyle.Format = "N2"
.Columns("UStVAn_Differenzbetrag").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_DifferenzbetragEUR").HeaderText = "Differenz-Betrag EUR"
.Columns("UStVAn_DifferenzbetragEUR").Width = 150
.Columns("UStVAn_DifferenzbetragEUR").DefaultCellStyle.Format = "N2"
.Columns("UStVAn_DifferenzbetragEUR").DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleRight
.Columns("UStVAn_VZDatum").HeaderText = "Vorauszahlung Am"
.Columns("UStVAn_VZDatum").Width = 100
.Columns("UStVAn_VZBetrag").HeaderText = "Vorauszahlung-Betrag"
.Columns("UStVAn_VZBetrag").Width = 150
.Columns("UStVAn_VZBetrag").DefaultCellStyle.Format = "N2"
.Columns("UStVAn_VZBetrag").DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleRight
.Columns("UStVAn_Sachbearbeiter").HeaderText = "Sachbearbeiter"
.Columns("UStVAn_Sachbearbeiter").MinimumWidth = 150
.Columns("UStVAn_Sachbearbeiter").AutoSizeMode = DataGridViewAutoSizeColumnMode.Fill
End If
Dim GesamtUSteuer As Double = 0
Dim GesamtErstattung As Double = 0
Dim Differnezbetrag As Double = 0
Dim Gesamt3470 As Double = 0
Dim GesamtVZBetrag As Double = 0
Dim VorschaubetrGes As Double = 0
Dim OPSaldo As Double = 0
Dim Risiko As Double = 0
Dim calcRisiko As Boolean = False
If KdSearchBox1.KdNr > 0 Then
Dim dt As New DataTable
dt = SQL.loadDgvBySql("SELECT Kunden.KundenNr as KundenNr, Kunden.UStV_SummeUmsatzsteuerbetragEUR, Kunden.UStV_SummeErstattungsbetragEUR, Kunden.UStV_Summe3470BetragEUR, Kunden.UStV_SummeVZBetragEUR, Kunden.UStV_SummeVorschaubetragEUR
FROM Kunden
WHERE Kunden.KundenNr = " & KdSearchBox1.KdNr, "FMZOLL")
OPSaldo = CInt((New SQL).getValueTxtBySql("SELECT isnull(sum(Gesamtausstand),0) FROM [Offene Posten] WHERE [Kontonummer]=" & KdSearchBox1.KdNr, "FMZOLL"))
calcRisiko = True
If dt.Rows.Count = 1 Then
GesamtUSteuer = dt.Rows(0).Item("UStV_SummeUmsatzsteuerbetragEUR")
GesamtErstattung = dt.Rows(0).Item("UStV_SummeErstattungsbetragEUR")
Gesamt3470 = dt.Rows(0).Item("UStV_Summe3470BetragEUR")
GesamtVZBetrag = dt.Rows(0).Item("UStV_SummeVZBetragEUR")
VorschaubetrGes = dt.Rows(0).Item("UStV_SummeVorschaubetragEUR")
Else
GesamtUSteuer = 0
GesamtErstattung = 0
Gesamt3470 = 0
GesamtVZBetrag = 0
VorschaubetrGes = 0
End If
'GesamtUSteuer = SQL.DLookup("isnull(sum(UStVAn_USteuerbetragEUR),0)", "tblUStVAntrag", "UStVAn_KuNr='" & KdSearchBox1.KdNr & "'", "FMZOLL", "0")
'GesamtErstattung = SQL.DLookup("isnull(sum(UStVAn_ErstattungsbetragEUR),0)", "tblUStVAntrag", "UStVAn_KuNr='" & KdSearchBox1.KdNr & "'", "FMZOLL", "0")
'Gesamt3470 = SQL.DLookup("isnull(sum(UStVAn_3470),0)", "tblUStVAntrag", "UStVAn_KuNr='" & KdSearchBox1.KdNr & "'", "FMZOLL", "0")
'GesamtVZBetrag = SQL.DLookup("isnull(sum(UStVAn_VZBetrag),0)", "tblUStVAntrag", "UStVAn_KuNr='" & KdSearchBox1.KdNr & "'", "FMZOLL", "0")
Else
For Each rows As DataGridViewRow In .Rows
If IsNumeric(rows.Cells("UStVAn_USteuerbetragEUR").Value) Then GesamtUSteuer += rows.Cells("UStVAn_USteuerbetragEUR").Value
If IsNumeric(rows.Cells("UStVAn_ErstattungsbetragEUR").Value) Then GesamtErstattung += rows.Cells("UStVAn_ErstattungsbetragEUR").Value
If IsNumeric(rows.Cells("UStVAn_3470").Value) Then Gesamt3470 += rows.Cells("UStVAn_3470").Value
If IsNumeric(rows.Cells("UStVAn_VZBetrag").Value) Then GesamtVZBetrag += rows.Cells("UStVAn_VZBetrag").Value
Next
VorschaubetrGes = 0
Risiko = 0
End If
Differnezbetrag = GesamtUSteuer - GesamtErstattung
If calcRisiko Then
Risiko = OPSaldo - Differnezbetrag - Gesamt3470 + GesamtVZBetrag - VorschaubetrGes
End If
txtSumUst.Text = GesamtUSteuer.ToString("C2")
txtSumErst.Text = GesamtErstattung.ToString("C2")
txtSumDiff.Text = Differnezbetrag.ToString("C2")
txt3470Betrag.Text = Gesamt3470.ToString("C2")
txtVZBetrag.Text = GesamtVZBetrag.ToString("C2")
txtVorschaubetrGes.Text = VorschaubetrGes.ToString("C2")
txtOPSaldo.Text = OPSaldo.ToString("C2")
txtRisiko.Text = Risiko.ToString("C2")
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
Select Case cbxEingereicht.CheckState
Case CheckState.Checked
whereStr &= " AND UStVAn_AntragEingereichtAm is not null "
Case CheckState.Unchecked
whereStr &= " AND UStVAn_AntragEingereichtAm is null "
Case CheckState.Indeterminate
End Select
Select Case cbxDifferenzbetrag.CheckState
Case CheckState.Checked
whereStr &= " AND ([UStVAn_USteuerbetrag]-[UStVAn_Erstattungsbetrag]) <> 0"
Case CheckState.Unchecked
whereStr &= " AND ([UStVAn_USteuerbetrag]-[UStVAn_Erstattungsbetrag]) = 0 "
Case CheckState.Indeterminate
End Select
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)
If kdNr > 0 Then
KdSearchBox1.KdNr = kdNr
KdSearchBox1.Enabled = False
End If
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 - 1)
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_USTVA_bearbeiten", Me.FindForm) Then
'FlatButton1.Enabled = False#
btnUSTVAloeschen.Enabled = False
btnNeuerUSTVA.Enabled = False
btnPLOSEAlle.Enabled = False
Else
If VERAG_PROG_ALLGEMEIN.cAllgemein.TESTSYSTEM Then
btnUSTVAloeschen.Enabled = True
btnNeuerUSTVA.Enabled = True
Else
btnUSTVAloeschen.Enabled = True
btnNeuerUSTVA.Enabled = True
End If
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)
dgvUSTV.RELOAD()
End If
End Sub
Private Sub cboJahr_SelectedIndexChanged(sender As Object, e As EventArgs) Handles cboJahr.SelectedIndexChanged, cboJahrBis.SelectedIndexChanged
If loaded = False Then Exit Sub
init()
End Sub
Private Sub KdSearchBox1_PropertyChanged(sender As Object, e As PropertyChangedEventArgs) Handles KdSearchBox1.PropertyChanged
If loaded = False Then Exit Sub
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],Adressen.LandKz as Land_Kunde, case when UstIdKz is not null and UstIdNr is not null THEN UstIdKz +'' + UstIdNr ELSE isnull(Steuernummer,'') END as SteuerUIDNr, LfdA .LandKz Land_Antrag,[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], UStVAn_AntragArt as Art, stnr.[StNrFürRückerstattungUSt]
FROM [tblUStVAntrag]
inner join [Länderverzeichnis für die Außenhandelsstatistik] as LfdA on UStVAn_LandNr=Landnr
inner join Adressen on AdressenNr=UStVAn_KuNr
left join [tblSteuernummern] as stnr on stnr.AdressenNr = UStVAn_KuNr and stnr.LandNr=UStVAn_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,LfdA .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
Private Sub btnPLOSEAlle_Click(sender As Object, e As EventArgs) Handles btnPLOSEAlle.Click
If Not ContextMenuStrip2.Items.ContainsKey("plose") Then
Dim plose = New ToolStripMenuItem() With {.Text = "Plose", .Name = "plose", .Font = New Font(Me.Font.FontFamily, Me.Font.Size)}
ContextMenuStrip2.Items.Add(plose)
AddHandler plose.Click, AddressOf mnuItemAuftrauege_Clicked
End If
If IsDate(dgvUSTV.CurrentRow.Cells("UStVAn_ReDatVon").Value) Then
If DirectCast(dgvUSTV.CurrentRow.Cells("UStVAn_ReDatVon").Value, Date).Year >= 2025 Then 'wenn INFO von PLOSE WÄHRUNGSCODE IN INV_DATA, dann freischalten
If Not ContextMenuStrip2.Items.ContainsKey("ploseneu") Then
Dim plose = New ToolStripMenuItem() With {.Text = "Plose-NEUE LOGIK", .Name = "ploseneu", .Font = New Font(Me.Font.FontFamily, Me.Font.Size)}
ContextMenuStrip2.Items.Add(plose)
AddHandler plose.Click, AddressOf mnuItemAuftrauege_Clicked
End If
End If
End If
If Not ContextMenuStrip2.Items.ContainsKey("rmc") Then
Dim rmc = New ToolStripMenuItem() With {.Text = "RMC", .Name = "rmc", .Font = New Font(Me.Font.FontFamily, Me.Font.Size)}
AddHandler rmc.Click, AddressOf mnuItemAuftrauege_Clicked
ContextMenuStrip2.Items.Add(rmc)
End If
If Not ContextMenuStrip2.Items.ContainsKey("mse") Then
Dim rmc = New ToolStripMenuItem() With {.Text = "MSE", .Name = "mse", .Font = New Font(Me.Font.FontFamily, Me.Font.Size)}
AddHandler rmc.Click, AddressOf mnuItemAuftrauege_Clicked
ContextMenuStrip2.Items.Add(rmc)
End If
If Not ContextMenuStrip2.Items.ContainsKey("uta") Then
Dim uta = New ToolStripMenuItem() With {.Text = "UTA", .Name = "uta", .Font = New Font(Me.Font.FontFamily, Me.Font.Size)}
AddHandler uta.Click, AddressOf mnuItemAuftrauege_Clicked
ContextMenuStrip2.Items.Add(uta)
End If
If Not ContextMenuStrip2.Items.ContainsKey("ids") Then
Dim ids = New ToolStripMenuItem() With {.Text = "IDS", .Name = "ids", .Font = New Font(Me.Font.FontFamily, Me.Font.Size)}
AddHandler ids.Click, AddressOf mnuItemAuftrauege_Clicked
ContextMenuStrip2.Items.Add(ids)
End If
If Not ContextMenuStrip2.Items.ContainsKey("verag") Then
Dim ids = New ToolStripMenuItem() With {.Text = "VERAG", .Name = "verag", .Font = New Font(Me.Font.FontFamily, Me.Font.Size)}
AddHandler ids.Click, AddressOf mnuItemAuftrauege_Clicked
ContextMenuStrip2.Items.Add(ids)
End If
ContextMenuStrip2.Show(Cursor.Position)
End Sub
Private Sub mnuItemAuftrauege_Clicked(sender As Object, e As EventArgs)
Try
If dgvUSTV.SelectedRows.Count > 0 Then
ContextMenuStrip1.Hide()
Dim item As ToolStripMenuItem = TryCast(sender, ToolStripMenuItem)
Me.Cursor = Cursors.WaitCursor
If KdSearchBox1.KdNr <= 0 Then Exit Sub
If cboJahr._value = "" Then Exit Sub
If cboJahrBis._value = "" Then Exit Sub
Dim cnt = SQL.getValueTxtBySql(" SELECT COUNT(*) FROM [tblUStVAntrag] where UStVAn_AntragEingereichtAm is null AND UStVAn_KuNr=" & KdSearchBox1.KdNr & " AND UStVAn_ReDatVon>='01.01." & cboJahr._value & "' AND UStVAn_ReDatBis<='31.12." & cboJahrBis._value & "'", "FMZOLL")
If cnt = 0 Then MsgBox("Keine einreichbaren Anträge gefunden!") : Exit Sub
If item IsNot Nothing Then
If item.Name = "plose" Or item.Name = "ploseneu" Then
If vbYes = MsgBox("Es werden " & item.Text & " Daten für " & cnt & " USTV-Anträge eingearbeitet. Möchten Sie fortfahren?", vbYesNoCancel) Then
For Each r As DataGridViewRow In dgvUSTV.Rows
If r.Cells("UStVAn_AntragEingereichtAm").Value Is DBNull.Value Then ' OrElse r.Cells("UStVAn_AntragEingereichtAm").Value = "" Then
'Dim Antrag_LandKz = SQL.DLookup("LandKz", "[Länderverzeichnis für die Außenhandelsstatistik]", "Landnr='" & r.Cells("UStVAn_LandNr").Value & "'", "FMZOLL")
frmMDM_USTVAntrag.loadUSTVFrom_PLOSE(r.Cells("UStVAn_ID").Value, r.Cells("LandKz").Value, False, IIf(item.Name = "ploseneu", True, False))
End If
Next
init()
MsgBox("Fertig!")
End If
ElseIf item.Name = "rmc" Then
If vbYes = MsgBox("Es werden " & item.Text & " Daten für " & cnt & " USTV-Anträge eingearbeitet. Möchten Sie fortfahren?", vbYesNoCancel) Then
For Each r As DataGridViewRow In dgvUSTV.Rows
If r.Cells("UStVAn_AntragEingereichtAm").Value Is DBNull.Value Then
frmMDM_USTVAntrag.loadUSTVFrom_RMC(r.Cells("UStVAn_ID").Value, r.Cells("LandKz").Value, False)
End If
Next
init()
MsgBox("Fertig!")
End If
ElseIf item.Name = "mse" Then
If vbYes = MsgBox("Es werden " & item.Text & " Daten für " & cnt & " USTV-Anträge eingearbeitet. Möchten Sie fortfahren?", vbYesNoCancel) Then
For Each r As DataGridViewRow In dgvUSTV.Rows
If r.Cells("UStVAn_AntragEingereichtAm").Value Is DBNull.Value Then
frmMDM_USTVAntrag.loadUSTVFrom_MSE(r.Cells("UStVAn_ID").Value, r.Cells("LandKz").Value, False)
End If
Next
init()
MsgBox("Fertig!")
End If
ElseIf item.Name = "uta" Then
If vbYes = MsgBox("Es werden " & item.Text & " Daten für " & cnt & " USTV-Anträge eingearbeitet. Möchten Sie fortfahren?", vbYesNoCancel) Then
For Each r As DataGridViewRow In dgvUSTV.Rows
If r.Cells("UStVAn_AntragEingereichtAm").Value Is DBNull.Value Then
frmMDM_USTVAntrag.loadUSTVFrom_UTA(r.Cells("UStVAn_ID").Value, r.Cells("LandKz").Value, False)
End If
Next
init()
MsgBox("Fertig!")
End If
ElseIf item.Name = "ids" Then
If vbYes = MsgBox("Es werden " & item.Text & " Daten für " & cnt & " USTV-Anträge eingearbeitet. Möchten Sie fortfahren?", vbYesNoCancel) Then
For Each r As DataGridViewRow In dgvUSTV.Rows
If r.Cells("UStVAn_AntragEingereichtAm").Value Is DBNull.Value Then
frmMDM_USTVAntrag.loadUSTVFrom_IDS(r.Cells("UStVAn_ID").Value, r.Cells("LandKz").Value, False)
End If
Next
init()
MsgBox("Fertig!")
End If
ElseIf item.Name = "verag" Then
If vbYes = MsgBox("Es werden " & item.Text & " Daten für " & cnt & " USTV-Anträge eingearbeitet. Möchten Sie fortfahren?", vbYesNoCancel) Then
For Each r As DataGridViewRow In dgvUSTV.Rows
If r.Cells("UStVAn_AntragEingereichtAm").Value Is DBNull.Value Then
If r.Cells("LandKz").Value = "AT" Then frmMDM_USTVAntrag.loadUSTVFrom_VERAG(r.Cells("UStVAn_ID").Value, r.Cells("LandKz").Value, False)
End If
Next
init()
MsgBox("Fertig!")
End If
Else
MsgBox("Funktion nicht implementiert!")
End If
End If
End If
Catch ex As Exception
VERAG_PROG_ALLGEMEIN.cErrorHandler.ERR(ex.Message, ex.StackTrace, System.Reflection.MethodInfo.GetCurrentMethod.Name)
End Try
Me.Cursor = Cursors.Default
End Sub
Private Sub btnMail_Click(sender As Object, e As EventArgs) Handles btnMail.Click
If Not ContextMenuStrip1.Items.ContainsKey("excel") Then
Dim excel = New ToolStripMenuItem() With {.Text = "Excelauswertung starten", .Name = "excel", .Font = New Font(Me.Font.FontFamily, Me.Font.Size)}
ContextMenuStrip1.Items.Add(excel)
AddHandler excel.Click, AddressOf mnuItem_Clicked
End If
If Not ContextMenuStrip1.Items.ContainsKey("mail") Then
Dim mail = New ToolStripMenuItem() With {.Text = "Email generieren", .Name = "mail", .Font = New Font(Me.Font.FontFamily, Me.Font.Size)}
AddHandler mail.Click, AddressOf mnuItem_Clicked
ContextMenuStrip1.Items.Add(mail)
End If
If Not ContextMenuStrip1.Items.ContainsKey("offeneAntraege") Then
Dim oa = New ToolStripMenuItem() With {.Text = "nicht eingearbeitet USTV-Anträge", .Name = "offeneAntraege", .Font = New Font(Me.Font.FontFamily, Me.Font.Size)}
AddHandler oa.Click, AddressOf mnuItem_Clicked
ContextMenuStrip1.Items.Add(oa)
End If
ContextMenuStrip1.Show(Cursor.Position)
End Sub
Private Sub mnuItem_Clicked(sender As Object, e As EventArgs)
If dgvUSTV.SelectedRows.Count > 0 Then
ContextMenuStrip1.Hide()
Dim item As ToolStripMenuItem = TryCast(sender, ToolStripMenuItem)
If item IsNot Nothing Then
If item.Name = "excel" Then
excelAuswertung()
ElseIf item.Name = "mail" Then
mailmitExcelauswertung()
ElseIf item.Name = "offeneAntraege" Then
If dgvUSTV.SelectedRows(0) IsNot Nothing AndAlso IsDate(dgvUSTV.SelectedRows(0).Cells("UStVAn_ReDatVon").Value) AndAlso IsDate(dgvUSTV.SelectedRows(0).Cells("UStVAn_ReDatBis").Value) Then
Dim frm As New frmUSTVoffeneAntraege(CDate(dgvUSTV.SelectedRows(0).Cells("UStVAn_ReDatVon").Value), CDate(dgvUSTV.SelectedRows(0).Cells("UStVAn_ReDatBis").Value), dgvUSTV.SelectedRows(0).Cells("UStVAn_KuNr").Value, dgvUSTV.SelectedRows(0).Cells("UStVAn_Name").Value)
frm.Show()
Else
Dim frm As New frmUSTVoffeneAntraege()
frm.Show()
End If
Else
MsgBox("Funktion nicht implementiert!")
End If
End If
End If
End Sub
Private Function excelAuswertung(Optional ByRef filepath As String = "", Optional feedback As Boolean = False, Optional openExcel As Boolean = True) As Boolean
Dim sqlStr = "SELECT [UStVPo_ReDat] as InvoiceDate , [UStVPo_ReNr] As InvoiceNumber, antr.UStVAn_Name as Company, 'FR' as CountryOfRefund ,'EUR' as Currency ,[UStVPo_Leistender] as SupplierName, leist.[UstV_Leistender_Strasse] AS SupplierStreet, leist.[UstV_Leistender_StrasseNr] as SupplierStreetNumber, leist.[UstV_Leistender_PLZ] as SupplierPostalCode, leist.[UstV_Leistender_Stadt] as SupplierCity, leist.[UstV_Leistender_Land] as SupplierCountry, leist.[UstV_Leistender_UstNr] as SupplierVAT_TaxNumber, [UStVPo_Leistungsbezeichnung] as ExpenseCategory ,Round((1119/19*[UStVPo_USteuerbetragEUR]),2) as ExpenseGrossAmount, [UStVPo_USteuerbetragEUR] as ExpenseVATAmount,Round((100/19*[UStVPo_USteuerbetragEUR]),2) as ExpenseNetAmount
FROM [tblUStVPositionen]
inner Join [tblUStVLeistender] as leist on leist.UStV_Leistender = [tblUStVPositionen].[UStVPo_Leistender]
inner join [tblUStVAntrag] as antr on antr.UStVAn_ID = [tblUStVPositionen].UStVAn_ID
where [tblUStVPositionen].UStVAn_ID ='" & dgvUSTV.SelectedRows(0).Cells("UStVAn_ID").Value & "' ORDER BY UStVPo_ID"
Dim dt = SQL.loadDgvBySql(sqlStr, "FMZOLL")
'filepath = ""
If dt IsNot Nothing AndAlso dt.Rows.Count > 0 Then
filepath = VERAG_PROG_ALLGEMEIN.cProgramFunctions.genExcelFromDT_NEW(dt, {"N1:N" & (dt.Rows.Count + 1), "O1:O" & (dt.Rows.Count + 1), "P1:P" & (dt.Rows.Count + 1)},,,, openExcel)
Return True
Else
MsgBox("Keine Daten!")
Return False
End If
End Function
Private Sub mailmitExcelauswertung()
Try
If dgvUSTV.Columns.Count > 0 Then
Dim subject As String = ""
subject &= IIf(dgvUSTV.CurrentRow.Cells("UStVAn_Name").Value <> "", dgvUSTV.CurrentRow.Cells("UStVAn_Name").Value & "_", "")
'subject &= If(dgvUSTV.CurrentRow.Cells("UStVAn_LandKz").Value <> "", dgvUSTV.CurrentRow.Cells("UStVAn_LandKz").Value & "_")
If (dgvUSTV.CurrentRow.Cells("UStVAn_ReDatVon").Value IsNot Nothing AndAlso dgvUSTV.CurrentRow.Cells("UStVAn_ReDatBis").Value IsNot Nothing) Then
subject &= CDate(dgvUSTV.CurrentRow.Cells("UStVAn_ReDatVon").Value).ToShortDateString & "-" & CDate(dgvUSTV.CurrentRow.Cells("UStVAn_ReDatBis").Value).ToShortDateString
End If
Dim outl As New Outlook.Application
Dim Mail As Microsoft.Office.Interop.Outlook.MailItem
Mail = outl.CreateItem(0)
Dim filepath = ""
If excelAuswertung(filepath, False, False) Then
Mail.Attachments.Add(filepath, Microsoft.Office.Interop.Outlook.OlAttachmentType.olByValue)
End If
Mail.Subject = subject
Dim TextHTML = ""
TextHTML &= "Ladies and Gentlemen,<br>"
TextHTML &= "<br>"
TextHTML &= "In the attachment we will send you the Excel list and the corresponding invoices for the VAT refund.<br>"
TextHTML &= "Please submit these invoices to the tax office.<br>"
TextHTML &= "We are always available to answer more questions.<br>"
TextHTML &= "Mit freundlichen Grüßen<br>"
TextHTML &= VERAG_PROG_ALLGEMEIN.cAllgemein.USRNAME & "<br>"
TextHTML &= "<br>"
Mail.HTMLBody = "<div style=""font-family:Calibri, Arial;font-size:15px;"">" & TextHTML & SDL.cFakturierung.getSignature("DE") & "</div>"
Mail.Display()
End If
Catch ex As Exception
VERAG_PROG_ALLGEMEIN.cErrorHandler.ERR(ex.Message, ex.StackTrace, System.Reflection.MethodInfo.GetCurrentMethod.Name,, "Fehler beim Öffnen der Mail!")
End Try
End Sub
Private Sub cbxTopMax_CheckedChanged(sender As Object, e As EventArgs) Handles cbxTopMax.CheckedChanged
If loaded = False Then Exit Sub
init()
End Sub
Private Sub txtMaxSrch_TextChanged(sender As Object, e As EventArgs) Handles txtMaxSrch.Leave
If loaded = False Then Exit Sub
init()
End Sub
Private Sub cbxEingereicht_CheckedChanged(sender As Object, e As EventArgs) Handles cbxEingereicht.CheckStateChanged, cbxDifferenzbetrag.CheckStateChanged
If loaded = False Then Exit Sub
init()
End Sub
Private Sub Button2_Click(sender As Object, e As EventArgs) Handles btnKundendatenaktualisieren.Click
Dim ok As Boolean = False
Me.Cursor = Cursors.WaitCursor
Try
If VERAG_PROG_ALLGEMEIN.cMDMFunctionsAllgemein.Update_UStVASummenNeuBerechnen(KdSearchBox1.KdNr) Then
ok = VERAG_PROG_ALLGEMEIN.cMDMFunctionsAllgemein.UStVAKunden_SummenNeuBerechnen(KdSearchBox1.KdNr)
End If
Catch ex As Exception
Me.Cursor = Cursors.Default
End Try
If ok Then
'MsgBox("Kundendaten wurden aktualisiert!")
init()
End If
Me.Cursor = Cursors.Default
End Sub
Private Sub btnNeuerUSTVA_Click(sender As Object, e As EventArgs) Handles btnNeuerUSTVA.Click
If Not VERAG_PROG_ALLGEMEIN.cBerechtignunen.CHECK_BERECHTIGUNG_bool("MDM_USTVA_bearbeiten", Me.FindForm) Then
MsgBox("Nicht berechtigt!")
Exit Sub
End If
Dim frm = New frmMDM_USTVAntrag(IIf(KdSearchBox1.KdNr_value > 0, KdSearchBox1.KdNr_value, -1), "AT", Nothing, Nothing)
frm.ShowDialog()
End Sub
Private Sub btnUSTVAloeschen_Click(sender As Object, e As EventArgs) Handles btnUSTVAloeschen.Click
If Not dgvUSTV.SelectedRows.Count = 0 Then
If Not VERAG_PROG_ALLGEMEIN.cBerechtignunen.CHECK_BERECHTIGUNG_bool("MDM_USTVA_bearbeiten", Me.FindForm) Then
MsgBox("Nicht berechtigt!")
Exit Sub
End If
If vbYes = MsgBox("Möchten Sie den " & dgvUSTV.SelectedRows(0).Cells("LandKz").Value & " Antrag von " & dgvUSTV.SelectedRows(0).Cells("UStVAn_Name").Value & "( " & dgvUSTV.SelectedRows(0).Cells("UStVAn_ReDatVon").Value & " - " & dgvUSTV.SelectedRows(0).Cells("UStVAn_ReDatBis").Value & ") wirklich löschen?", vbYesNoCancel) Then
Dim del_antrag As New cUSTVAntrag(dgvUSTV.SelectedRows(0).Cells("UStVAn_ID").Value)
If del_antrag.UStVAn_AntragEingereichtAm IsNot Nothing Then
MsgBox("Dieser Antrag wurde bereits eingereicht. Der Antrag kann nicht gelöscht werden.",, "UStV-Antrag " & del_antrag.UStVAn_ID)
Exit Sub
End If
If del_antrag.UStVAn_3470 IsNot Nothing Then
MsgBox("Dieser Antrag enthält einen 3470-Betrag. Der Antrag kann nicht gelöscht werden.",, "UStV-Antrag " & del_antrag.UStVAn_ID)
Exit Sub
End If
If del_antrag.UStVAn_VZBetrag IsNot Nothing Then
MsgBox("Dieser Antrag enthält einen VZ-Betrag. Der Antrag kann nicht gelöscht werden.",, "UStV-Antrag " & del_antrag.UStVAn_ID)
Exit Sub
End If
If del_antrag.UStVAn_Erstattungsbetrag IsNot Nothing Then
MsgBox("Dieser Antrag enthält einen Erstattungsbetrag. Der Antrag kann nicht gelöscht werden.",, "UStV-Antrag " & del_antrag.UStVAn_ID)
Exit Sub
End If
For Each pos In del_antrag.POSITIONEN
If pos.UStVPo_SchnittstellenNr > 0 Then
MsgBox("Antrag enthält Positionen, die über die Schnittstelle geladen wurden." & vbNewLine & "Positionen manuell löschen.")
Exit Sub
End If
Next
If del_antrag.DELETE() Then
init()
End If
End If
End If
End Sub
Private Sub btnVorschau_Click(sender As Object, e As EventArgs) Handles btnVorschau.Click
Dim sqlKunden = ""
Dim sqlKundenVERAG = ""
Dim sqlKundenMSENEU = ""
Dim sqlKundenIDSALT = ""
Dim sqlKundenIDSNEU = ""
If KdSearchBox1.KdNr > 0 Then
sqlKunden = " AND Adressen.AdressenNr = " & KdSearchBox1.KdNr
sqlKundenVERAG = " AND RechnungsKundenNr = " & KdSearchBox1.KdNr
sqlKundenMSENEU = " AND partner_customer_number = " & KdSearchBox1.KdNr
sqlKundenIDSALT = " AND tblDieselArchiv.KdNrVERAG = " & KdSearchBox1.KdNr
sqlKundenIDSNEU = " AND [tblIDSTransactionsNew].KdNrVERAG = " & KdSearchBox1.KdNr
End If
Dim qryUStVVorschau_VERAG As String = "SELECT 'VERAG' as LF, tblTrdinInvoice.RechnungsKundenNr, tblSteuernummern.LandNr, [Länderverzeichnis für die Außenhandelsstatistik].LandKz, YEAR(tblTrdinInvoice.Rechnungsdatum) AS Jahr, MONTH(tblTrdinInvoice.Rechnungsdatum) as Monat, SUm(tblTrdinInvoice.SteuerbetragLokal) AS SteuerbetragEUR FROM tblTrdinInvoice
INNER JOIN tblSteuernummern ON tblTrdinInvoice.RechnungsKundenNr = tblSteuernummern.AdressenNr INNER JOIN [Länderverzeichnis für die Außenhandelsstatistik] ON tblSteuernummern.LandNr = [Länderverzeichnis für die Außenhandelsstatistik].LandNr
WHERE tblSteuernummern.LandNr = 38 AND tblTrdinInvoice.Rechnungsdatum >=
CASE
WHEN GETDATE() > CAST(CAST(YEAR(GETDATE()) AS VARCHAR) + '-06-30' AS DATE)
THEN CAST(CAST(YEAR(GETDATE()) AS VARCHAR) + '-01-01' AS DATE)
ELSE CAST(CAST(YEAR(GETDATE()) - 1 AS VARCHAR) + '-01-01' AS DATE)
END
AND tblTrdinInvoice.SteuerbetragLokal <> 0 AND tblTrdinInvoice.UStVAn_ID IS NULL AND tblSteuernummern.UStV = 1 " & sqlKundenVERAG & "
GROUP BY tblTrdinInvoice.RechnungsKundenNr, tblSteuernummern.LandNr,[Länderverzeichnis für die Außenhandelsstatistik].LandKz, YEAR(tblTrdinInvoice.Rechnungsdatum), MONTH(tblTrdinInvoice.Rechnungsdatum)
/*ORDER BY tblTrdinInvoice.RechnungsKundenNr, tblSteuernummern.LandNr, YEAR(tblTrdinInvoice.Rechnungsdatum), MONTH(tblTrdinInvoice.Rechnungsdatum)*/"
Dim qryUStVVorschau_IDS_ALT As String = "SELECT 'IDS' as LF, tblDieselArchiv.KdNrVERAG AS RechnungsKundenNr, tblSteuernummern.LandNr, [Länderverzeichnis für die Außenhandelsstatistik].LandKz, year(tblDieselArchiv.[Year Month Day]) AS Jahr, Month(tblDieselArchiv.[Year Month Day]) AS Monat, SUM(tblDieselArchiv.[VAT Amount]) AS SteuerbetragEUR FROM tblDieselArchiv
INNER JOIN tblSteuernummern ON tblDieselArchiv.KdNrVERAG = tblSteuernummern.AdressenNr
INNER JOIN tbl_IDS_Länder ON tbl_IDS_Länder.LandNr = tblSteuernummern.LandNr AND tblDieselArchiv.[Outlet Country Code] = tbl_IDS_Länder.OutletCountryCode
INNER JOIN [Länderverzeichnis für die Außenhandelsstatistik] ON tblSteuernummern.LandNr = [Länderverzeichnis für die Außenhandelsstatistik].LandNr
WHERE tblDieselArchiv.[Year Month Day] >=
CASE
WHEN GETDATE() > CAST(CAST(YEAR(GETDATE()) AS VARCHAR) + '-06-30' AS DATE)
THEN CAST(CAST(YEAR(GETDATE()) AS VARCHAR) + '-01-01' AS DATE)
ELSE CAST(CAST(YEAR(GETDATE()) - 1 AS VARCHAR) + '-01-01' AS DATE)
END
AND tblDieselArchiv.[VAT Amount] <> 0 AND tblDieselArchiv.UStVAn_ID IS NULL AND tblSteuernummern.UStV = 1 " & sqlKundenIDSALT & "
GROUP BY
tblDieselArchiv.KdNrVERAG, tblSteuernummern.LandNr, [Länderverzeichnis für die Außenhandelsstatistik].LandKz, Year(tblDieselArchiv.[Year Month Day]), Month(tblDieselArchiv.[Year Month Day])
/*ORDER BY tblDieselArchiv.KdNrVERAG, tblSteuernummern.LandNr, Year(tblDieselArchiv.[Year Month Day]), Month(tblDieselArchiv.[Year Month Day])*/
"
Dim qryUStVVorschau_MSE_ALT As String = "SELECT 'MSE' as LF,tblSteuernummern.AdressenNr AS RechnungsKundenNr, tblSteuernummern.LandNr, [Länderverzeichnis für die Außenhandelsstatistik].LandKz, Year(tblMSETransactionsArchiv.[Invoice Date]) AS Jahr, Month(tblMSETransactionsArchiv.[Invoice Date]) AS Monat, CAST(ROUND(SUM(tblMSETransactionsArchiv.[Original VAT Amount]) / dbo.fktEUROKurs(tblMSETransactionsArchiv.[Original Currency], tblMSETransactionsArchiv.[Invoice Date]), 2) AS DECIMAL(18, 2)) AS SteuerbetragEUR FROM tblSteuernummern
INNER JOIN Adressen ON tblSteuernummern.AdressenNr = Adressen.AdressenNr
INNER JOIN tblMSETransactionsArchiv ON Adressen.MSEKundenNr = tblMSETransactionsArchiv.[Customer ID]
INNER JOIN [Länderverzeichnis für die Außenhandelsstatistik] ON tblMSETransactionsArchiv.[Transaction Country] = [Länderverzeichnis für die Außenhandelsstatistik].LandKz AND tblSteuernummern.LandNr = [Länderverzeichnis für die Außenhandelsstatistik].LandNr
WHERE tblSteuernummern.UStV = 1 AND tblMSETransactionsArchiv.UStVAn_ID IS NULL " & sqlKunden & "
GROUP BY
tblSteuernummern.AdressenNr,
tblSteuernummern.LandNr,
[Länderverzeichnis für die Außenhandelsstatistik].LandKz,
tblMSETransactionsArchiv.[Invoice Date],
tblMSETransactionsArchiv.[Invoice ID],
tblMSETransactionsArchiv.[Original Currency]
HAVING
tblMSETransactionsArchiv.[Invoice Date] >=
CASE
WHEN GETDATE() > CAST(CAST(YEAR(GETDATE()) AS VARCHAR) + '-06-30' AS DATE)
THEN CAST(CAST(YEAR(GETDATE()) AS VARCHAR) + '-01-01' AS DATE)
ELSE CAST(CAST(YEAR(GETDATE()) - 1 AS VARCHAR) + '-01-01' AS DATE)
END
AND SUM(tblMSETransactionsArchiv.[Original VAT Amount]) <> 0
/*ORDER BY tblSteuernummern.AdressenNr, tblSteuernummern.LandNr, tblMSETransactionsArchiv.[Invoice Date], tblMSETransactionsArchiv.[Invoice ID]*/"
Dim qryUStVVorschau_UTA_ALT As String = "SELECT 'UTA' as LF,tblSteuernummern.AdressenNr AS RechnungsKundenNr, tblSteuernummern.LandNr, [Länderverzeichnis für die Außenhandelsstatistik].LandKz, Year(tblUTAArchiv.Rechnungsdatum) as Jahr,Month(tblUTAArchiv.Rechnungsdatum) as Monat , SUM(tblUTAArchiv.Gesamtbetrag_Umsatzsteuer_in_Darstellwährung) AS SteuerbetragEUR FROM tblSteuernummern
INNER JOIN Adressen ON tblSteuernummern.AdressenNr = Adressen.AdressenNr
INNER JOIN tblUTAArchiv ON Adressen.UTAKundenNr = tblUTAArchiv.Kundennummer
INNER JOIN [Länderverzeichnis für die Außenhandelsstatistik] ON tblUTAArchiv.Lieferland = [Länderverzeichnis für die Außenhandelsstatistik].LandKz_ISO_3 AND tblSteuernummern.LandNr = [Länderverzeichnis für die Außenhandelsstatistik].LandNr
WHERE tblSteuernummern.UStV = 1 AND tblUTAArchiv.UStVAn_ID IS NULL " & sqlKunden & "
GROUP BY
tblSteuernummern.AdressenNr,
tblSteuernummern.LandNr,
[Länderverzeichnis für die Außenhandelsstatistik].LandKz,
tblUTAArchiv.Rechnungsdatum
HAVING
tblUTAArchiv.Rechnungsdatum >=
CASE
WHEN GETDATE() > CAST(CAST(YEAR(GETDATE()) AS VARCHAR) + '-06-30' AS DATE)
THEN CAST(CAST(YEAR(GETDATE()) AS VARCHAR) + '-01-01' AS DATE)
ELSE CAST(CAST(YEAR(GETDATE()) - 1 AS VARCHAR) + '-01-01' AS DATE)
END
AND SUM(tblUTAArchiv.Gesamtbetrag_Umsatzsteuer_in_Darstellwährung) <> 0
/*ORDER BY tblSteuernummern.AdressenNr, tblSteuernummern.LandNr, tblUTAArchiv.Rechnungsdatum*/"
Dim qryUStVVorschau_IDS_NEU As String = "SELECT 'IDS_' as LF, [tblIDSTransactionsNew].KdNrVERAG AS RechnungsKundenNr,tblSteuernummern.LandNr, [Länderverzeichnis für die Außenhandelsstatistik].LandKz, year([tblIDSTransactionsNew].[YearMonthDay]) AS Jahr, Month([tblIDSTransactionsNew].[YearMonthDay]) AS Monat, SUM([tblIDSTransactionsNew].[VATAmount]) AS SteuerbetragEUR
FROM tblIDSTransactionsNew
INNER JOIN dbo.tblSteuernummern ON [tblIDSTransactionsNew].KdNrVERAG = dbo.tblSteuernummern.AdressenNr
INNER JOIN dbo.tbl_IDS_Länder ON dbo.tblSteuernummern.LandNr = dbo.tbl_IDS_Länder.LandNr AND [tblIDSTransactionsNew].[OutletCountryCode] = dbo.tbl_IDS_Länder.OutletCountryCode
INNER JOIN [Länderverzeichnis für die Außenhandelsstatistik] ON tblSteuernummern.LandNr = [Länderverzeichnis für die Außenhandelsstatistik].LandNr
WHERE [tblIDSTransactionsNew].[YearMonthDay] >=
CASE
WHEN GETDATE() > CAST(CAST(YEAR(GETDATE()) AS VARCHAR) + '-06-30' AS DATE)
THEN CAST(CAST(YEAR(GETDATE()) AS VARCHAR) + '-01-01' AS DATE)
ELSE CAST(CAST(YEAR(GETDATE()) - 1 AS VARCHAR) + '-01-01' AS DATE)
END
AND [tblIDSTransactionsNew].[VATAmount] <> 0 AND [tblIDSTransactionsNew].UStVAn_ID IS NULL AND tblSteuernummern.UStV = 1 " & sqlKundenIDSNEU & "
GROUP BY
[tblIDSTransactionsNew].KdNrVERAG, tblSteuernummern.LandNr, [Länderverzeichnis für die Außenhandelsstatistik].LandKz, Year([tblIDSTransactionsNew].[YearMonthDay]) , Month([tblIDSTransactionsNew].[YearMonthDay])
/* ORDER BY [tblIDSTransactionsNew].KdNrVERAG, tblSteuernummern.LandNr, Year([tblIDSTransactionsNew].[YearMonthDay]), Month([tblIDSTransactionsNew].[YearMonthDay])*/"
Dim qryUStVVorschau_MSE_NEU As String = " select 'MSE_' as LF,cust.[partner_customer_number] as RechnungsKundenNr,'' as LandNr ,trans.transaction_country as LandKZ ,Year(bills.invoice_date) as Jahr,Month(bills.invoice_date) as Monat, sum(USteuer_EUR) as SteuerbetragEUR
FROM [VERAG].[dbo].[tblMSESettlements] as bills
left join [VERAG].[dbo].[tblMSETransactions] as trans on bills.[transaction_id] = trans.[transaction_id]
left join [VERAG].[dbo].[tblMSECustomers] as cust on cust.partner_customer_number = trans.partner_haulier_id
left join [VERAG].[dbo].[tblMSEInvoices] as inv on inv.invoice_id = bills.invoice_number
left join dbo.tblSteuernummern on dbo.tblSteuernummern.AdressenNr = trans.partner_haulier_id
where bills.invoice_date >= CASE
WHEN GETDATE() > CAST(CAST(YEAR(GETDATE()) AS VARCHAR) + '-06-30' AS DATE)
THEN CAST(CAST(YEAR(GETDATE()) AS VARCHAR) + '-01-01' AS DATE)
ELSE CAST(CAST(YEAR(GETDATE()) - 1 AS VARCHAR) + '-01-01' AS DATE)
END
and inv.archiv <> 1 and dbo.tblSteuernummern.UStV = 1 and trans.charged = 1 AND inv.UStVAn_ID IS NULL " & sqlKundenMSENEU & "
group by cust.[partner_customer_number],trans.transaction_country, Year(bills.invoice_date) ,Month(bills.invoice_date)
HAVING SUM(USteuer_EUR) <> 0"
Dim qryUStVVorschau_UTA_NEU As String = "SELECT 'UTA_' as LF,tblSteuernummern.AdressenNr AS RechnungsKundenNr, tblSteuernummern.LandNr, [Länderverzeichnis für die Außenhandelsstatistik].LandKz, Year(tblUTAImportNew.Rechnungsdatum) as Jahr,Month(tblUTAImportNew.Rechnungsdatum) as Monat , SUM(tblUTAImportNew.Gesamtbetrag_Umsatzsteuer_in_Darstellwährung) AS SteuerbetragEUR FROM tblSteuernummern
INNER JOIN Adressen ON tblSteuernummern.AdressenNr = Adressen.AdressenNr
INNER JOIN tblUTAImportNew ON Adressen.UTAKundenNr = tblUTAImportNew.Kundennummer
INNER JOIN [Länderverzeichnis für die Außenhandelsstatistik] ON tblUTAImportNew.Lieferland = [Länderverzeichnis für die Außenhandelsstatistik].LandKz_ISO_3 AND tblSteuernummern.LandNr = [Länderverzeichnis für die Außenhandelsstatistik].LandNr
WHERE tblSteuernummern.UStV = 1 AND tblUTAImportNew.UStVAn_ID IS NULL " & sqlKunden & "
GROUP BY
tblSteuernummern.AdressenNr,
tblSteuernummern.LandNr,
[Länderverzeichnis für die Außenhandelsstatistik].LandKz,
tblUTAImportNew.Rechnungsdatum
HAVING
tblUTAImportNew.Rechnungsdatum >=
CASE
WHEN GETDATE() > CAST(CAST(YEAR(GETDATE()) AS VARCHAR) + '-06-30' AS DATE)
THEN CAST(CAST(YEAR(GETDATE()) AS VARCHAR) + '-01-01' AS DATE)
ELSE CAST(CAST(YEAR(GETDATE()) - 1 AS VARCHAR) + '-01-01' AS DATE)
END
AND SUM(tblUTAImportNew.Gesamtbetrag_Umsatzsteuer_in_Darstellwährung) <> 0
/*ORDER BY tblSteuernummern.AdressenNr, tblSteuernummern.LandNr, tblUTAImportNew.Rechnungsdatum*/"
Dim union As String = " UNION ALL "
Dim sqlQery = qryUStVVorschau_VERAG & union & qryUStVVorschau_IDS_ALT & union & qryUStVVorschau_UTA_ALT & union & qryUStVVorschau_IDS_NEU & union & qryUStVVorschau_UTA_NEU & union & qryUStVVorschau_MSE_NEU & union & qryUStVVorschau_MSE_ALT
Dim dtVorschau As DataTable = SQL.loadDgvBySql(sqlQery, "FMZOLL")
If dtVorschau.Columns.Contains("LandNr") Then dtVorschau.Columns.Remove("LandNr")
cProgramFunctions.genExcelFromDT_NEW(dtVorschau, {"G1:G" & (dtVorschau.Rows.Count + 1)},,,,, True)
End Sub
End Class