Imports System.Windows.Documents Imports com.sun.org.apache.bcel.internal.generic Imports com.sun.org.apache.xpath.internal.objects Imports DocumentFormat.OpenXml.Drawing.Spreadsheet Imports VERAG_PROG_ALLGEMEIN Public Class frmUSTVoffeneAntraege Public LIEFERANT = "" Dim datumBis As Date = Nothing Dim datumVon As Date = Nothing Dim kdNr As Integer = -1 Dim kdName As String Dim dtkeineMWST As DataTable Dim dtKundeMWST As DataTable Private Sub btn_Click(sender As Object, e As EventArgs) Handles btn.Click initLieferant("PLOSE", sender) End Sub Sub New(datumVon_ As Date, datumBis_ As Date) datumVon = datumVon_ datumBis = datumBis_ ' Dieser Aufruf ist für den Designer erforderlich. InitializeComponent() ' Fügen Sie Initialisierungen nach dem InitializeComponent()-Aufruf hinzu. dat_Sum_Von.Value = datumVon dat_Sum_Bis.Value = datumBis End Sub Sub New(datumVon_ As Date, datumBis_ As Date, kdnr_ As Integer, kdName_ As String) datumVon = datumVon_ datumBis = datumBis_ ' Dieser Aufruf ist für den Designer erforderlich. InitializeComponent() ' Fügen Sie Initialisierungen nach dem InitializeComponent()-Aufruf hinzu. dat_Sum_Von.Value = datumVon dat_Sum_Bis.Value = datumBis kdNr = kdnr_ kdName = kdName_ lblKunde.Text = kdNr & " " & kdName End Sub Sub New() ' Dieser Aufruf ist für den Designer erforderlich. InitializeComponent() ' Fügen Sie Initialisierungen nach dem InitializeComponent()-Aufruf hinzu. lblKunde.Text = " " End Sub Private Sub initLieferant(l As String, btn As Button) pnlLand.Visible = False MyDatagridview1.DataSource = Nothing Me.LIEFERANT = l For Each c As Button In FlowLayoutPanel.Controls If c Is btn Then c.BackColor = Color.Wheat Else c.BackColor = Color.FloralWhite End If Next pnlLand.Visible = Me.LIEFERANT = "alle" init() End Sub Sub initDgv_PLOSE(anz As Integer, Optional kdnr As Integer = -1) With MyDatagridview1 .Columns.Clear() Dim top = "" If anz > 0 Then top = "TOP (" & anz & ")" Dim sqlwhere = "" If kdnr > 0 Then sqlwhere &= " and Adressen.AdressenNr = " & kdnr End If Dim sqlString = "Select " & top & " Adressen.AdressenNr, Adressen.[Name 1] ,[plose_Lieferant],[plose_RechnungsDatum],[plose_RechnungsNr],plp_Land, sum([plose_MWSTBetrag])[plose_MWSTBetrag], [plInv_daId] As daId FROM [tblPLOSE_Details] INNER Join Adressen on PLOSEKundenNr=plose_POLSEKundennummer INNER Join [tblPLOSE_Produktbeschreibung] ON [plp_ProductCode]=[plose_ProduktCode] INNER Join [tblPLOSE_Inv_Data] on tblPLOSE_Details .plose_plInvId = plInv_Id WHERE UStVAn_ID Is null /* plose_Archiv <> 1 And plose_LieferantCode In (0, 1, 7) */ And cast(plose_RechnungsDatum as date) between '" & dat_Sum_Von.Value & "' and '" & dat_Sum_Bis.Value & "' and plose_RechnungsNr is not null " & sqlwhere & "group by Adressen.AdressenNr, Adressen.[Name 1] ,[plose_RechnungsDatum],[plose_RechnungsNr],[plose_Lieferant], plp_Land, [plInv_daId] having sum(plose_MWSTBetrag) <>0" Dim year = CDate(dat_Sum_Von.Value).Year If year >= 2025 Then sqlString = "Select " & top & " Adressen.AdressenNr, Adressen.[Name 1] ,[plInv_Lieferant] as plose_Lieferant,[plInv_SupplierRechnungsDatum] as plose_RechnungsDatum,[plInv_SupplierRechnungsNr] as plose_RechnungsNr,[plInv_SupplierCountry] as plp_Land, sum([plInv_MWSTBetrag]) as plose_MWSTBetrag , [plInv_daId] As daId FROM [tblPLOSE_Inv_Data] INNER JOIN Adressen on PLOSEKundenNr=[plInv_PLOSEKundennummer] WHERE plInv_UStVAn_ID Is null /* plose_Archiv <> 1 And plose_LieferantCode In (0, 1, 7) */ And cast([plInv_SupplierRechnungsDatum] as date) between '" & dat_Sum_Von.Value & "' and '" & dat_Sum_Bis.Value & "' and [plInv_SupplierRechnungsNr] is not null " & sqlwhere & "group by Adressen.AdressenNr, Adressen.[Name 1] ,[plInv_SupplierRechnungsDatum],[plInv_SupplierRechnungsNr],[plInv_Lieferant], [plInv_SupplierCountry], [plInv_daId] having sum([plInv_MWSTBetrag]) <>0" End If .SET_SQL(sqlString, "FMZOLL") .LOAD() If .Columns.Count > 0 Then .Columns("AdressenNr").HeaderText = "KdNr" .Columns("Name 1").HeaderText = "Kunde" .Columns("plose_Lieferant").HeaderText = "PLOSE-Lieferant" .Columns("plose_RechnungsDatum").HeaderText = "RE-Datum" .Columns("plose_RechnungsNr").HeaderText = "RE-Nr" .Columns("plp_Land").HeaderText = "Land" .Columns("Name 1").AutoSizeMode = DataGridViewAutoSizeColumnMode.Fill .Columns("plose_MWSTBetrag").HeaderText = "MWST" .Columns("daId").Visible = False .AutoSizeColumnsMode = DataGridViewAutoSizeColumnsMode.AllCells End If Dim sumMwSt As Double = 0 Dim c As New DataGridViewImageColumn c.Name = "clmnPDF" : c.HeaderText = "RE" ' c.Image = Nothing c.DefaultCellStyle.NullValue = Nothing c.ImageLayout = DataGridViewImageCellLayout.Zoom c.Width = 40 : c.DefaultCellStyle.Padding = New Padding(2) : c.DefaultCellStyle.BackColor = Color.White 'c.DefaultCellStyle.Tag = "Therefore anzeigen" If Not .Columns.Contains("clmnPDF") Then .Columns.Add(c) For Each r As DataGridViewRow In .Rows sumMwSt += If(IsNumeric(r.Cells("plose_MWSTBetrag").Value), CDbl(r.Cells("plose_MWSTBetrag").Value), 0) If Not IsDBNull(r.Cells("daId").Value) AndAlso r.Cells("daId").Value > 0 Then DirectCast(r.Cells("clmnPDF"), DataGridViewImageCell).Value = My.Resources.pdf Next txtAnzahl.Text = .Rows.Count txtMWST.Text = sumMwSt .ClearSelection() End With End Sub Sub initDgv_RMC(anz As Integer, Optional kdnr As Integer = -1) Dim top = "" If anz > 0 Then top = "TOP (" & anz & ")" Dim sqlwhere = "" If kdnr > 0 Then sqlwhere &= " and Adressen.AdressenNr = " & kdnr End If With MyDatagridview1 .Columns.Clear() 'Exit Sub 'MsgBox(.sql) Dim sqlstring = "Select " & top & " [rmc_kdNr], [rmc_kdName], [rmc_landKZ], [rmc_reDatum], [rmc_reNr], [rmc_waehrung], [rmc_betragMWST],rmc_daid as daId FROM [tblRMCImport] INNER JOIN Adressen on WölflKundenNr=[rmc_kdNr] where cast(rmc_reDatum As Date) between '" & dat_Sum_Von.Value & "' And '" & dat_Sum_Bis.Value & "' And rmc_archiv <> 1 " & sqlwhere & "group by rmc_reDatum, rmc_kdNr,[rmc_kdName], [rmc_landKZ],[rmc_reNr], [rmc_waehrung], [rmc_betragMWST], rmc_daid having [rmc_betragMWST] <> 0" .SET_SQL(sqlstring, "FMZOLL") .LOAD() If .Columns.Count > 0 Then .Columns("rmc_kdNr").HeaderText = "KdNr" .Columns("rmc_kdName").HeaderText = "Kunde" .Columns("rmc_landKZ").HeaderText = "Land" .Columns("rmc_reDatum").HeaderText = "RE-Datum" .Columns("rmc_reNr").HeaderText = "RE-Nr" .Columns("rmc_betragMWST").HeaderText = "MWSt" .Columns("rmc_waehrung").HeaderText = "Währung" .Columns("daId").Visible = False .Columns("rmc_kdName").AutoSizeMode = DataGridViewAutoSizeColumnMode.Fill .AutoSizeColumnsMode = DataGridViewAutoSizeColumnsMode.AllCells End If Dim sumMwSt As Double = 0 Dim c As New DataGridViewImageColumn c.Name = "clmnPDF" : c.HeaderText = "RE" ' c.Image = Nothing c.DefaultCellStyle.NullValue = Nothing c.ImageLayout = DataGridViewImageCellLayout.Zoom c.Width = 40 : c.DefaultCellStyle.Padding = New Padding(2) : c.DefaultCellStyle.BackColor = Color.White 'c.DefaultCellStyle.Tag = "Therefore anzeigen" If Not .Columns.Contains("clmnPDF") Then .Columns.Add(c) For Each r As DataGridViewRow In .Rows sumMwSt += If(IsNumeric(r.Cells("rmc_betragMWST").Value), CDbl(r.Cells("rmc_betragMWST").Value), 0) If Not IsDBNull(r.Cells("daId").Value) AndAlso r.Cells("daId").Value > 0 Then DirectCast(r.Cells("clmnPDF"), DataGridViewImageCell).Value = My.Resources.pdf Next txtAnzahl.Text = .Rows.Count txtMWST.Text = sumMwSt End With End Sub Sub initDgv_MSE(anz As Integer, Optional kdnr As Integer = -1) Dim top = "" If anz > 0 Then top = "TOP (" & anz & ")" Dim sqlwhere = "" If kdnr > 0 Then sqlwhere &= " and partner_customer_number = " & kdnr End If With MyDatagridview1 .Columns.Clear() 'Exit Sub 'MsgBox(.sql) Dim sqlstring = "Select " & top & " customer_number, customer_name, country, invoice_date, invoice_id, sum(total_amount_euro) as total_amount_euro, sum(total_vat_amount_euro) as total_vat_amount_euro, daId FROM [VERAG].[dbo].[tblMSEInvoices] inner join [tblMSECustomers] on [customer_number] = [customer_id] where cast(invoice_date As Date) between '" & dat_Sum_Von.Value & "' And '" & dat_Sum_Bis.Value & "' And [UStVAn_ID] is null " & sqlwhere & "group by invoice_date, customer_number,customer_name, country, invoice_id, daId having sum(total_vat_amount_euro) <> 0" .SET_SQL(sqlstring, "FMZOLL") .LOAD() If .Columns.Count > 0 Then .Columns("customer_number").HeaderText = "KdNr" .Columns("customer_name").HeaderText = "Kunde" .Columns("country").HeaderText = "Land" .Columns("invoice_date").HeaderText = "RE-Datum" .Columns("invoice_id").HeaderText = "RE-Nr" .Columns("total_amount_euro").HeaderText = "Gesamtsumme Euro" .Columns("total_vat_amount_euro").HeaderText = "MWSt Euro" .Columns("daId").Visible = False .Columns("customer_name").AutoSizeMode = DataGridViewAutoSizeColumnMode.Fill .AutoSizeColumnsMode = DataGridViewAutoSizeColumnsMode.AllCells End If Dim sumMwSt As Double = 0 Dim c As New DataGridViewImageColumn c.Name = "clmnPDF" : c.HeaderText = "RE" ' c.Image = Nothing c.DefaultCellStyle.NullValue = Nothing c.ImageLayout = DataGridViewImageCellLayout.Zoom c.Width = 40 : c.DefaultCellStyle.Padding = New Padding(2) : c.DefaultCellStyle.BackColor = Color.White 'c.DefaultCellStyle.Tag = "Therefore anzeigen" If Not .Columns.Contains("clmnPDF") Then .Columns.Add(c) For Each r As DataGridViewRow In .Rows sumMwSt += If(IsNumeric(r.Cells("total_vat_amount_euro").Value), CDbl(r.Cells("total_vat_amount_euro").Value), 0) If Not IsDBNull(r.Cells("daId").Value) AndAlso r.Cells("daId").Value > 0 Then DirectCast(r.Cells("clmnPDF"), DataGridViewImageCell).Value = My.Resources.pdf Next txtAnzahl.Text = .Rows.Count txtMWST.Text = sumMwSt End With End Sub Sub initDgv_UTA(anz As Integer, Optional kdnr As Integer = -1) Dim top = "" If anz > 0 Then top = "TOP (" & anz & ")" Dim sqlwhere = "" If kdnr > 0 Then sqlwhere &= " and AdressenNr = " & kdnr End If With MyDatagridview1 .Columns.Clear() 'Exit Sub 'MsgBox(.sql) Dim sqlstring = "Select " & top & " Adressen.AdressenNr as KdNr,Adressen.[Name 1],[Lieferland_ISO2],Abrechnungsnummer, [Rechnungsdatum] AS Rechnungsdatum, sum([Gesamtbetrag_Brutto_in_Darstellwährung]) as [Gesamtbetrag_Brutto_in_Darstellwährung], sum([Gesamtbetrag_Umsatzsteuer_in_Darstellwährung]) as [Gesamtbetrag_Umsatzsteuer_in_Darstellwährung], daId FROM [tblUTAImportNew] INNER JOIN Adressen on Adressen.UTAKundenNr = tblUTAImportNew.Kundennummer where cast([Rechnungsdatum] As Date) between '" & dat_Sum_Von.Value & "' And '" & dat_Sum_Bis.Value & "' And [tblUTAImportNew].UStVAn_ID is null " & sqlwhere & " group by Adressen.AdressenNr,Adressen.[Name 1],Abrechnungsnummer,[Rechnungsdatum], [Lieferland_ISO2], daId having sum([Gesamtbetrag_Umsatzsteuer_in_Darstellwährung]) <> 0 " .SET_SQL(sqlstring, "FMZOLL") .LOAD() If .Columns.Count > 0 Then .Columns("KdNr").HeaderText = "KdNr" .Columns("Name 1").HeaderText = "Kunde" .Columns("Lieferland_ISO2").HeaderText = "Land" .Columns("Rechnungsdatum").HeaderText = "RE-Datum" .Columns("Abrechnungsnummer").HeaderText = "RE-Nr" .Columns("Gesamtbetrag_Brutto_in_Darstellwährung").HeaderText = "Gesamtsumme Euro" .Columns("Gesamtbetrag_Umsatzsteuer_in_Darstellwährung").HeaderText = "MWSt Euro" .Columns("daId").Visible = False .Columns("Name 1").AutoSizeMode = DataGridViewAutoSizeColumnMode.Fill .AutoSizeColumnsMode = DataGridViewAutoSizeColumnsMode.AllCells End If Dim sumMwSt As Double = 0 Dim c As New DataGridViewImageColumn c.Name = "clmnPDF" : c.HeaderText = "RE" ' c.Image = Nothing c.DefaultCellStyle.NullValue = Nothing c.ImageLayout = DataGridViewImageCellLayout.Zoom c.Width = 40 : c.DefaultCellStyle.Padding = New Padding(2) : c.DefaultCellStyle.BackColor = Color.White 'c.DefaultCellStyle.Tag = "Therefore anzeigen" .Columns.Add(c) For Each r As DataGridViewRow In .Rows sumMwSt += If(IsNumeric(r.Cells("Gesamtbetrag_Umsatzsteuer_in_Darstellwährung").Value), CDbl(r.Cells("Gesamtbetrag_Umsatzsteuer_in_Darstellwährung").Value), 0) If Not IsDBNull(r.Cells("daId").Value) AndAlso r.Cells("daId").Value > 0 Then DirectCast(r.Cells("clmnPDF"), DataGridViewImageCell).Value = My.Resources.pdf Next txtAnzahl.Text = .Rows.Count txtMWST.Text = sumMwSt End With End Sub Sub initDgv_IDS(anz As Integer, Optional kdnr As Integer = -1) Dim top = "" If anz > 0 Then top = "TOP (" & anz & ")" Dim sqlwhere = "" If kdnr > 0 Then sqlwhere &= " and tblIDSTransactionsNew.KdNrVERAG = " & kdnr End If With MyDatagridview1 .Columns.Clear() 'Exit Sub 'MsgBox(.sql) Dim sqlstring = "SELECT " & top & " tblIDSTransactionsNew.KdNrVERAG, Adressen.[Name 1], tbl_IDS_Länder.OutletCountry as Land, tblIDSTransactionsNew.[YearMonthDay] AS Rechnungsdatum, ISNULL(tblIDSTransactionsNew.[OBONumber],ISNULL(tblIDSTransactionsNew.[VRNumber], tblIDSTransactionsNew.[Paymentsummarynumber])) AS Rechnungsnummer, SUM(tblIDSTransactionsNew.[VATAmount]) AS Steuerbetrag, isNULL(tblIDSInvoicesNew.daId,0) as daId FROM tblIDSTransactionsNew INNER JOIN tbl_IDS_Länder ON tblIDSTransactionsNew.[OutletCountryCode] = tbl_IDS_Länder.OutletCountryCode INNER JOIN Adressen on Adressen.AdressenNr = tblIDSTransactionsNew.KdNrVERAG LEFT JOIN tblIDSInvoicesNew on tblIDSInvoicesNew.CustomerCode = tblIDSTransactionsNew.CustomerCode and tblIDSInvoicesNew.Invoicenumber = Paymentsummarynumber WHERE tblIDSTransactionsNew.[YearMonthDay] BETWEEN '" & dat_Sum_Von.Value & "' And '" & dat_Sum_Bis.Value & "' " & sqlwhere & " AND tblIDSTransactionsNew.[VATAmount] <> 0 AND tblIDSTransactionsNew.UStVAn_ID IS NULL GROUP BY tblIDSTransactionsNew.KdNrVERAG, Adressen.[Name 1], tbl_IDS_Länder.OutletCountry, tblIDSTransactionsNew.[YearMonthDay], ISNULL(tblIDSTransactionsNew.[OBONumber], ISNULL(tblIDSTransactionsNew.[VRNumber], tblIDSTransactionsNew.[Paymentsummarynumber])), tblIDSInvoicesNew.daId ORDER BY tblIDSTransactionsNew.KdNrVERAG, tblIDSTransactionsNew.[YearMonthDay], ISNULL(tblIDSTransactionsNew.[OBONumber], ISNULL(tblIDSTransactionsNew.[VRNumber], tblIDSTransactionsNew.[Paymentsummarynumber]));" .SET_SQL(sqlstring, "FMZOLL") .LOAD() If .Columns.Count > 0 Then .Columns("KdNrVERAG").HeaderText = "KdNr" .Columns("Name 1").HeaderText = "Kunde" .Columns("Land").HeaderText = "Land" .Columns("Rechnungsdatum").HeaderText = "RE-Datum" .Columns("Rechnungsnummer").HeaderText = "RE-Nr" .Columns("Steuerbetrag").HeaderText = "MWSt Euro" .Columns("daId").Visible = False .Columns("Name 1").AutoSizeMode = DataGridViewAutoSizeColumnMode.Fill .AutoSizeColumnsMode = DataGridViewAutoSizeColumnsMode.AllCells End If Dim sumMwSt As Double = 0 Dim c As New DataGridViewImageColumn c.Name = "clmnPDF" : c.HeaderText = "RE" ' c.Image = Nothing c.DefaultCellStyle.NullValue = Nothing c.ImageLayout = DataGridViewImageCellLayout.Zoom c.Width = 40 : c.DefaultCellStyle.Padding = New Padding(2) : c.DefaultCellStyle.BackColor = Color.White 'c.DefaultCellStyle.Tag = "Therefore anzeigen" If Not .Columns.Contains("clmnPDF") Then .Columns.Add(c) For Each r As DataGridViewRow In .Rows sumMwSt += If(IsNumeric(r.Cells("Steuerbetrag").Value), CDbl(r.Cells("Steuerbetrag").Value), 0) If Not IsDBNull(r.Cells("daId").Value) AndAlso r.Cells("daId").Value > 0 Then DirectCast(r.Cells("clmnPDF"), DataGridViewImageCell).Value = My.Resources.pdf Next txtAnzahl.Text = .Rows.Count txtMWST.Text = sumMwSt End With End Sub Sub initDgv_VERAG(anz As Integer, Optional kdnr As Integer = -1) Dim top = "" If anz > 0 Then top = "TOP (" & anz & ")" Dim sqlwhere = "" If kdnr > 0 Then sqlwhere &= " AND tblTrdinInvoice.RechnungsKundenNr = " & kdnr End If With MyDatagridview1 .Columns.Clear() 'Exit Sub 'MsgBox(.sql) Dim sqlstring = "SELECT " & top & " tblTrdinInvoice.RechnungsKundenNr, Adressen.[Name 1], tblTrdinInvoice.Rechnungsdatum, 'AT' as Land, tblTrdinInvoice.Rechnungsnummer, tblTrdinInvoice.SteuerbetragLokal FROM tblTrdinInvoice inner join Adressen on Adressen.AdressenNr = tblTrdinInvoice.RechnungsKundenNr WHERE tblTrdinInvoice.Rechnungsdatum Between '" & dat_Sum_Von.Value & "' And '" & dat_Sum_Bis.Value & "' AND tblTrdinInvoice.SteuerbetragLokal<>0 AND tblTrdinInvoice.UStVAn_ID is null And Firma_ID = 19 AND tblTrdinInvoice.WährungLokal='EUR' " & sqlwhere & " ORDER BY tblTrdinInvoice.Rechnungsdatum, tblTrdinInvoice.Rechnungsnummer" .SET_SQL(sqlstring, "FMZOLL") .LOAD() If .Columns.Count > 0 Then .Columns("RechnungsKundenNr").HeaderText = "KdNr" .Columns("Name 1").HeaderText = "Kunde" .Columns("Land").HeaderText = "Land" .Columns("Rechnungsdatum").HeaderText = "RE-Datum" .Columns("Rechnungsnummer").HeaderText = "RE-Nr" .Columns("SteuerbetragLokal").HeaderText = "MWSt Euro" .Columns("Name 1").AutoSizeMode = DataGridViewAutoSizeColumnMode.Fill .AutoSizeColumnsMode = DataGridViewAutoSizeColumnsMode.AllCells End If Dim sumMwSt As Double = 0 Dim c As New DataGridViewImageColumn c.Name = "clmnPDF" : c.HeaderText = "RE" ' c.Image = Nothing c.DefaultCellStyle.NullValue = Nothing c.ImageLayout = DataGridViewImageCellLayout.Zoom c.Width = 40 : c.DefaultCellStyle.Padding = New Padding(2) : c.DefaultCellStyle.BackColor = Color.White 'c.DefaultCellStyle.Tag = "Therefore anzeigen" If Not .Columns.Contains("clmnPDF") Then .Columns.Add(c) For Each r As DataGridViewRow In .Rows sumMwSt += If(IsNumeric(r.Cells("SteuerbetragLokal").Value), CDbl(r.Cells("SteuerbetragLokal").Value), 0) 'If Not IsDBNull(r.Cells("daId").Value) AndAlso r.Cells("daId").Value > 0 Then DirectCast(r.Cells("clmnPDF"), DataGridViewImageCell).Value = My.Resources.pdf Next txtAnzahl.Text = .Rows.Count txtMWST.Text = sumMwSt End With End Sub Sub initDgv_gesamt(anz As Integer, nichtEroeffneteAntraege As Boolean, Optional kdnr As Integer = -1) Dim top = "" 'If anz > 0 Then top = "TOP (" & anz & ")" Dim sqlwhereIDS = "" Dim sqlwhereVERAG = "" Dim sqlwhereUTA = "" Dim sqlwhereRMC = "" Dim sqlwherePLOSE = "" Dim sqlwhereMSE = "" Dim sqlwhereLand = "" Dim sqlwhereSteuerNr = "" Dim kundenLandISO2 As String = "" Dim SQLPLOSEUMSTELLUNG = "" If kdnr > 0 Then sqlwherePLOSE &= " and AdressenNr = " & kdnr 'sqlwherePLOSE &= " and plose_POLSEKundennummer = " & kdnr sqlwhereIDS &= " and AdressenNr = " & kdnr 'sqlwhereIDS &= " and tblIDSTransactionsNew.KdNrVERAG = " & kdnr sqlwhereUTA &= " and AdressenNr = " & kdnr sqlwhereVERAG &= " and AdressenNr = " & kdnr sqlwhereRMC &= " and Adressen.AdressenNr = " & kdnr sqlwhereMSE &= " and partner_customer_number = " & kdnr End If If MyComboBox1._value <> "" Then sqlwhereLand &= " and Einreichland = '" & MyComboBox1._value & "'" End If If cbxKundeLand._value <> "" Then sqlwhereLand &= " and Kundenland = '" & cbxKundeLand._value & "'" 'LandKZ vom Kunden muss auf ISO2 konvertiert werden, weil da ein Misch-Masch in der Datenbank herrscht! If cbxKundeLand._value.Length = 2 Then kundenLandISO2 = cbxKundeLand._value ElseIf cbxKundeLand._value.Length = 3 Then kundenLandISO2 = VERAG_PROG_ALLGEMEIN.cProgramFunctions.getISO2LandFromISO3Land(cbxKundeLand._value) ElseIf cbxKundeLand._value.Length = 1 Then kundenLandISO2 = VERAG_PROG_ALLGEMEIN.cProgramFunctions.getISO2LandFromISO1Land(cbxKundeLand._value) End If End If If cbxUStV.Checked Then sqlwhereSteuerNr &= " and isnull(tblSteuernummern.UStV,0) <> 0" End If If nichtEroeffneteAntraege Then sqlwhereLand &= " and isnull(UStVAn_ID,0) = 0 " End If If dtkeineMWST.Rows.Count > 0 AndAlso kundenLandISO2 <> "" Then Dim dtkeineMWST_ohneContraint As DataTable = dtkeineMWST.Select("Land = '" & kundenLandISO2 & "'").CopyToDataTable Dim counter = 0 Dim landBez As String = "" For Each row As DataRow In dtkeineMWST_ohneContraint.Rows landBez &= "'" & row.Item("Erstattungsland") & "'" counter = counter + 1 If (dtkeineMWST_ohneContraint.Rows.Count <> 0 And counter <> dtkeineMWST_ohneContraint.Rows.Count) Then landBez &= "," Next sqlwhereLand &= " AND Einreichland not in (" & landBez & ")" End If If dtKundeMWST.Rows.Count > 0 Then Dim counter = 0 Dim landBez As String = "" For Each row As DataRow In dtKundeMWST.Rows landBez &= "'" & row.Item("LandKz") & "'" counter = counter + 1 If (dtKundeMWST.Rows.Count <> 0 And counter <> dtKundeMWST.Rows.Count) Then landBez &= "," Next sqlwhereLand &= " AND Einreichland not in (" & landBez & ")" End If Dim year = CDate(dat_Sum_Von.Value).Year If year >= 2025 Then SQLPLOSEUMSTELLUNG = " select " & top & " 'PLOSE' as Lieferant, Adressen.AdressenNr as KdNr, Adressen.[Name 1] as Kundenname, Adressen.LandKz as Kundenland, [plInv_SupplierCountry] as Einreichland, [plInv_SupplierRechnungsDatum] AS Rechnungsdatum, sum([plInv_MWSTBetrag]) as MWST FROM [tblPLOSE_Inv_Data] INNER JOIN Adressen on PLOSEKundenNr=plInv_PLOSEKundennummer WHERE plInv_Archiv <> 1 AND cast(plInv_SupplierRechnungsDatum as date) between '" & dat_Sum_Von.Value & "' and '" & dat_Sum_Bis.Value & "' and plInv_SupplierRechnungsNr is not null " & sqlwherePLOSE & " group by Adressen.AdressenNr, Adressen.[Name 1],Adressen.LandKz ,[plInv_SupplierRechnungsDatum],[plInv_SupplierCountry] having sum(plInv_MWSTBetrag)<>0" Else SQLPLOSEUMSTELLUNG = "select " & top & " 'PLOSE' as Lieferant, Adressen.AdressenNr as KdNr, Adressen.[Name 1] as Kundenname, Adressen.LandKz as Kundenland, [plp_Land] as Einreichland, [plose_RechnungsDatum] AS Rechnungsdatum, sum([plose_MWSTBetrag]) as MWST FROM [tblPLOSE_Details] INNER JOIN Adressen on PLOSEKundenNr=plose_POLSEKundennummer INNER JOIN [tblPLOSE_Produktbeschreibung] ON [plp_ProductCode]=[plose_ProduktCode] INNER JOIN [tblPLOSE_Inv_Data] on tblPLOSE_Details .plose_plInvId = plInv_Id WHERE plose_Archiv <> 1 /*AND plose_LieferantCode IN (0,1,7) */ AND cast(plose_RechnungsDatum as date) between '" & dat_Sum_Von.Value & "' and '" & dat_Sum_Bis.Value & "' and plose_RechnungsNr is not null " & sqlwherePLOSE & " group by Adressen.AdressenNr, Adressen.[Name 1],Adressen.LandKz ,[plose_RechnungsDatum],[plp_Land] having sum(plose_MWSTBetrag)<>0" End If With MyDatagridview1 .Columns.Clear() 'Exit Sub 'MsgBox(.sql) Dim sqlstring = "select isnull(UStVAn_ID,0) as antragExisitiert,tblSteuernummern.UStV as UStV,Lieferant , KdNr, Kundenname, Kundenland, Einreichland from (" & SQLPLOSEUMSTELLUNG & " UNION ALL Select " & top & " 'RMC' as Lieferant, Adressen.AdressenNr as KdNr, Adressen.[Name 1] as Kundenname, Adressen.LandKz as Kundenland, [rmc_landKZ] as Einreichland, [rmc_reDatum] AS Rechnungsdatum, [rmc_betragMWST] as MWST FROM [tblRMCImport] INNER JOIN Adressen on WölflKundenNr= [rmc_kdNr] where cast(rmc_reDatum As Date) between '" & dat_Sum_Von.Value & "' And '" & dat_Sum_Bis.Value & "' And UStVAn_ID is null " & sqlwhereRMC & " group by Adressen.AdressenNr,Adressen.[Name 1],Adressen.LandKz, [rmc_landKZ],[rmc_reNr], rmc_reDatum, [rmc_betragMWST] having [rmc_betragMWST] <> 0 UNION ALL Select " & top & " 'UTA' as Lieferant, Adressen.AdressenNr as KdNr, Adressen.[Name 1] as Kundenname, Adressen.LandKz as Kundenland, [Lieferland_ISO2] as Einreichland, [Rechnungsdatum] AS Rechnungsdatum, sum([Gesamtbetrag_Umsatzsteuer_in_Darstellwährung]) as MWSt FROM [tblUTAImportNew] INNER JOIN Adressen on Adressen.UTAKundenNr = tblUTAImportNew.Kundennummer where cast([Rechnungsdatum] As Date) between '" & dat_Sum_Von.Value & "' And '" & dat_Sum_Bis.Value & "' And [tblUTAImportNew].UStVAn_ID is null " & sqlwhereUTA & "group by Adressen.AdressenNr, Kundennummer,Adressen.[Name 1],Adressen.LandKz ,[Rechnungsdatum], [Lieferland_ISO2] having sum([Gesamtbetrag_Umsatzsteuer_in_Darstellwährung]) <> 0 UNION ALL Select " & top & " 'VERAG' as Lieferant, tblTrdinInvoice.RechnungsKundenNr as KdNr, Adressen.[Name 1] as Kundenname, Adressen.LandKz as Kundenland, 'AT'as Einreichland, tblTrdinInvoice.Rechnungsdatum, sum(tblTrdinInvoice.SteuerbetragLokal) as MWSt FROM [tblTrdinInvoice] inner join Adressen on Adressen.AdressenNr = tblTrdinInvoice.RechnungsKundenNr where tblTrdinInvoice.Rechnungsdatum Between '" & dat_Sum_Von.Value & "' And '" & dat_Sum_Bis.Value & "' AND tblTrdinInvoice.UStVAn_ID is null And Firma_ID = 19 " & sqlwhereVERAG & "group by Adressen.AdressenNr, tblTrdinInvoice.RechnungsKundenNr,Adressen.[Name 1],Adressen.LandKz ,[Rechnungsdatum] having sum(tblTrdinInvoice.SteuerbetragLokal) <> 0 UNION ALL Select " & top & " 'MSE' as Lieferant, partner_customer_number as KdNr, customer_name as Kundenname, Adressen.LandKz as Kundenland, country as Einreichland, invoice_date AS Rechnungsdatum, sum(total_vat_amount_euro) as MWST FROM [VERAG].[dbo].[tblMSEInvoices] inner join [tblMSECustomers] on [customer_number] = [customer_id] INNER JOIN Adressen on Adressen.MSEKundenNr = [customer_number] where cast(invoice_date As Date) between '" & dat_Sum_Von.Value & "' And '" & dat_Sum_Bis.Value & "' And [UStVAn_ID] is null " & sqlwhereMSE & " group by invoice_date, partner_customer_number,customer_name,Adressen.LandKz, country having sum(total_vat_amount_euro) <> 0 UNION ALL --IDS SELECT " & top & " 'IDS' as Lieferant, tblIDSTransactionsNew.KdNrVERAG as KdNr, Adressen.[Name 1] as Kundenname, Adressen.LandKz as Kundenland, tbl_IDS_Länder.Lieferland_ISO2 as Einreichland, cast(tblIDSTransactionsNew.[YearMonthDay] as date) AS Rechnungsdatum, SUM(tblIDSTransactionsNew.[VATAmount]) AS MWST FROM tblIDSTransactionsNew INNER JOIN tbl_IDS_Länder ON tblIDSTransactionsNew.[OutletCountryCode] = tbl_IDS_Länder.OutletCountryCode INNER JOIN Adressen on Adressen.AdressenNr = tblIDSTransactionsNew.KdNrVERAG LEFT JOIN tblIDSInvoicesNew on tblIDSInvoicesNew.CustomerCode = tblIDSTransactionsNew.CustomerCode and tblIDSInvoicesNew.Invoicenumber = Paymentsummarynumber WHERE tblIDSTransactionsNew.[YearMonthDay] BETWEEN '" & dat_Sum_Von.Value & "' And '" & dat_Sum_Bis.Value & "' " & sqlwhereIDS & " AND tblIDSTransactionsNew.[VATAmount] <> 0 AND tblIDSTransactionsNew.UStVAn_ID IS NULL GROUP BY tblIDSTransactionsNew.KdNrVERAG, Adressen.[Name 1], Adressen.LandKz, tbl_IDS_Länder.Lieferland_ISO2, tblIDSTransactionsNew.[YearMonthDay] ) as temp inner join tblKundenErweitert on temp.kdnr = kde_KundenNr inner join [Länderverzeichnis für die Außenhandelsstatistik] on temp.Einreichland=LandKz left join tblUStVAntrag on UStVAn_KuNr = temp.kdnr and UStVAn_ReDatVon <= temp.Rechnungsdatum and UStVAn_ReDatBis >= temp.Rechnungsdatum and [Länderverzeichnis für die Außenhandelsstatistik].LandNr = UStVAn_LandNr left JOIN tblSteuernummern On temp.Einreichland = tblSteuernummern.LandKz and KdNr = tblSteuernummern.AdressenNr where 1 = 1 and isnull(kde_keineMWSt,0) = 0 " & sqlwhereLand & sqlwhereSteuerNr & " group by isnull(UStVAn_ID,0) , Lieferant, KdNr, Kundenname,Kundenland, Einreichland, tblSteuernummern.UStV" Dim SQLWhere = "" .SET_SQL(sqlstring, "FMZOLL") .LOAD() If .Columns.Count > 0 Then .Columns("KdNr").HeaderText = "KdNr" .Columns("UStV").HeaderText = "UStV" .Columns("Kundenname").HeaderText = "Kunde" .Columns("Kundenland").HeaderText = "Kundenland" .Columns("Einreichland").HeaderText = "Einreichland" .Columns("Kundenname").AutoSizeMode = DataGridViewAutoSizeColumnMode.Fill .AutoSizeColumnsMode = DataGridViewAutoSizeColumnsMode.AllCells End If If kdnr > 0 Then MyComboBox1.Items.Clear() MyComboBox1.Items.Add(New VERAG_PROG_ALLGEMEIN.MyListItem("", "")) End If Dim sumMwSt As Double = 0 If Not MyComboBox1._value <> "" Then MyComboBox1.Items.Clear() MyComboBox1.Items.Add(New VERAG_PROG_ALLGEMEIN.MyListItem("", "")) Dim list As New List(Of String) For Each r As DataGridViewRow In .Rows If r.Cells("Einreichland").Value IsNot Nothing And r.Cells("Einreichland").Value <> "" Then If Not list.Any(Function(c) c = r.Cells("Einreichland").Value) Then list.Add(r.Cells("Einreichland").Value) End If End If Next For Each l In list Dim listItem As New VERAG_PROG_ALLGEMEIN.MyListItem(l, l) MyComboBox1.Items.Add(listItem) Next End If If Not cbxKundeLand._value <> "" Then cbxKundeLand.Items.Clear() cbxKundeLand.Items.Add(New VERAG_PROG_ALLGEMEIN.MyListItem("", "")) Dim list As New List(Of String) For Each r As DataGridViewRow In .Rows If r.Cells("Kundenland").Value IsNot Nothing And r.Cells("Kundenland").Value <> "" Then If Not list.Any(Function(c) c = r.Cells("Kundenland").Value) Then list.Add(r.Cells("Kundenland").Value) End If End If Next For Each l In list Dim listItem As New VERAG_PROG_ALLGEMEIN.MyListItem(l, l) cbxKundeLand.Items.Add(listItem) Next End If txtAnzahl.Text = .Rows.Count txtMWST.Text = sumMwSt End With End Sub Sub init() Select Case LIEFERANT.ToString.ToLower Case "plose" : initDgv_PLOSE(txtmaxAnz.Text, IIf(cbxAlleoffenen.Checked, -1, kdNr)) Case "rmc" : initDgv_RMC(txtmaxAnz.Text, IIf(cbxAlleoffenen.Checked, -1, kdNr)) Case "mse" : initDgv_MSE(txtmaxAnz.Text, IIf(cbxAlleoffenen.Checked, -1, kdNr)) Case "uta" : initDgv_UTA(txtmaxAnz.Text, IIf(cbxAlleoffenen.Checked, -1, kdNr)) Case "ids" : initDgv_IDS(txtmaxAnz.Text, IIf(cbxAlleoffenen.Checked, -1, kdNr)) Case "verag" : initDgv_VERAG(txtmaxAnz.Text, IIf(cbxAlleoffenen.Checked, -1, kdNr)) Case "alle" : initDgv_gesamt(txtmaxAnz.Text, cbxNichtEroeffneteAntraege.Checked, IIf(cbxAlleoffenen.Checked, -1, kdNr)) End Select End Sub Private Sub Button7_Click(sender As Object, e As EventArgs) Handles Button7.Click initLieferant("RMC", sender) End Sub Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click initLieferant("UTA", sender) End Sub Private Sub Button2_Click(sender As Object, e As EventArgs) Handles Button2.Click initLieferant("MSE", sender) End Sub Private Sub Button3_Click(sender As Object, e As EventArgs) Handles Button3.Click initLieferant("IDS", sender) End Sub Private Sub btnVerag_Click(sender As Object, e As EventArgs) Handles btnVerag.Click initLieferant("VERAG", sender) End Sub Private Sub cbxAlleoffenen_CheckedChanged(sender As Object, e As EventArgs) Handles cbxAlleoffenen.CheckedChanged, cbxUStV.CheckedChanged, cbxNichtEroeffneteAntraege.CheckedChanged init() End Sub Private Sub MyDatagridview1_CellContentDoubleClick(sender As Object, e As DataGridViewCellEventArgs) Handles MyDatagridview1.CellContentDoubleClick Try If Not MyDatagridview1.Columns.Contains("daId") Then Exit Sub Dim ColInd As Integer = 8 Select Case LIEFERANT.ToString.ToLower Case "ids", "verag" ColInd = 7 End Select If e.RowIndex >= 0 AndAlso e.ColumnIndex = ColInd Then Dim dsID = MyDatagridview1.Rows(e.RowIndex).Cells("daId").Value If dsID > 0 Then Me.Cursor = Cursors.WaitCursor Dim DS As New VERAG_PROG_ALLGEMEIN.cDATENSERVER(dsID) DS.OPEN_SINGLE() End If End If Catch ex As Exception MsgBox(ex.Message & ex.StackTrace) Me.Cursor = Cursors.Default End Try Me.Cursor = Cursors.Default End Sub Private Sub MyDatagridview1_Sorted(sender As Object, e As EventArgs) Handles MyDatagridview1.Sorted If Not MyDatagridview1.Columns.Contains("daId") Then Exit Sub For Each r As DataGridViewRow In MyDatagridview1.Rows If Not IsDBNull(r.Cells("daId").Value) AndAlso r.Cells("daId").Value > 0 Then DirectCast(r.Cells("clmnPDF"), DataGridViewImageCell).Value = My.Resources.pdf Next End Sub Private Sub btnAlle_Click(sender As Object, e As EventArgs) Handles btnAlle.Click initLieferant("ALLE", sender) End Sub Private Sub MyComboBox1_SelectedIndexChanged(sender As Object, e As EventArgs) Handles MyComboBox1.SelectedIndexChanged initDgv_gesamt(txtmaxAnz.Text, cbxNichtEroeffneteAntraege.Checked, IIf(cbxAlleoffenen.Checked, -1, kdNr)) End Sub Private Sub AntragEröffnenToolStripMenuItem_Click(sender As Object, e As EventArgs) Handles AntragEröffnenToolStripMenuItem.Click If MyDatagridview1.SelectedRows.Count = 0 Then Exit Sub Dim index As Integer = -1 If (MyDatagridview1.SelectedRows.Count > 0) Then index = MyDatagridview1.SelectedRows(0).Index If MyDatagridview1.SelectedRows(0).Cells("antragExisitiert").Value > 0 Then Dim frm = New frmMDM_USTVAntrag(MyDatagridview1.SelectedRows(0).Cells("antragExisitiert").Value) frm.ShowDialog() Else Dim frm = New frmMDM_USTVAntrag(MyDatagridview1.SelectedRows(0).Cells("KdNr").Value, MyDatagridview1.SelectedRows(0).Cells("Einreichland").Value, dat_Sum_Von.Value, dat_Sum_Bis.Value) frm.ShowDialog() End If MyDatagridview1.GetOrder() initDgv_gesamt(txtmaxAnz.Text, cbxNichtEroeffneteAntraege.Checked, IIf(cbxAlleoffenen.Checked, -1, kdNr)) MyDatagridview1.SetOrder() End Sub Private Sub MyDatagridview1_CellMouseClick(sender As Object, e As DataGridViewCellMouseEventArgs) Handles MyDatagridview1.CellMouseClick If Not VERAG_PROG_ALLGEMEIN.cBerechtignunen.CHECK_BERECHTIGUNG_bool("MDM_USTVA_bearbeiten", Me.FindForm) Then Exit Sub If e.RowIndex < 0 Then Exit Sub DirectCast(sender, DataGridView).Rows(e.RowIndex).Selected = True If e.Button = MouseButtons.Right Then If sender Is MyDatagridview1 AndAlso LIEFERANT.ToString.ToLower = "alle" Then If MyDatagridview1.SelectedRows.Count = 0 Then Exit Sub ' MyDatagridview1.CurrentCell = MyDatagridview1.Rows(e.RowIndex).Cells(e.ColumnIndex) ContextMenuStrip1.Show(Cursor.Position) End If End If End Sub Private Sub cbxKundeLand_SelectedIndexChanged(sender As Object, e As EventArgs) Handles cbxKundeLand.SelectedIndexChanged initDgv_gesamt(txtmaxAnz.Text, cbxNichtEroeffneteAntraege.Checked, IIf(cbxAlleoffenen.Checked, -1, kdNr)) End Sub Private Sub Button4_Click(sender As Object, e As EventArgs) Handles Button4.Click Dim SQLQuery As String = "" Select Case LIEFERANT.ToString.ToLower Case "plose" : SQLQuery = "select [plInv_SupplierRechnungsNr] as RechnungsNr,plInv_SupplierRechnungsDatum as Rechnungsdatum,Adressen.AdressenNr,Adressen.[Name 1] as Kunde from [tblPLOSE_Inv_Data] INNER JOIN Adressen on [plInv_PLOSEKundennummer]=Adressen.PLOSEKundenNr where [plInv_daId] is null and cast([plInv_SupplierRechnungsDatum] as Date) between '" & dat_Sum_Von.Value & "' and '" & dat_Sum_Bis.Value & "' group by plInv_SupplierRechnungsNr, Adressen.AdressenNr, Adressen.[Name 1], plInv_SupplierRechnungsDatum" Case "rmc" : SQLQuery = "select rmc_reNr as RechnungsNr,rmc_reDatum AS Rechnungsdatum, Adressen.AdressenNr as KundenNr,Adressen.[Name 1] as Kunde from [tblRMCImport] INNER JOIN Adressen on WölflKundenNr= [rmc_kdNr] where rmc_daId is null and cast([rmc_reDatum] as Date) between '" & dat_Sum_Von.Value & "' and '" & dat_Sum_Bis.Value & "' group by rmc_reNr, Adressen.AdressenNr, Adressen.[Name 1],rmc_reDatum " Case "mse" : SQLQuery = "select invoice_id as RechnungsNr,[invoice_date] as Rechnungsdatum, Adressen.AdressenNr as KundenNr,Adressen.[Name 1] as Kunde from tblMSEInvoices inner join [tblMSECustomers] on [customer_number] = [customer_id] INNER JOIN Adressen on Adressen.MSEKundenNr = [customer_number] where daId is null and cast(invoice_date as Date) between '" & dat_Sum_Von.Value & "' and '" & dat_Sum_Bis.Value & "' group by invoice_id, Adressen.AdressenNr, Adressen.[Name 1], invoice_date" Case "uta" : SQLQuery = "select tblUTAImportNew.Abrechnungsnummer as RechnungNr,[Rechnungsdatum] AS Rechnungsdatum ,Adressen.AdressenNr as KundenNr,Adressen.[Name 1] as Kunde from tblUTAImportNew INNER JOIN Adressen on Adressen.UTAKundenNr = tblUTAImportNew.Kundennummer where daId is null and cast([Rechnungsdatum] as Date) between '" & dat_Sum_Von.Value & "' and '" & dat_Sum_Bis.Value & "' and Lieferland <> 'ROM' and Steuerliches_Lieferland <> 'ROM' group by tblUTAImportNew.Abrechnungsnummer, Rechnungsdatum,Adressen.AdressenNr, Adressen.[Name 1] " Case "ids" : SQLQuery = "select Invoicenumber as RechnungsNr,YearMonthDay as Rechnungsdatum, Adressen.AdressenNr as KundenNr,Adressen.[Name 1] as Kunde from tblIDSInvoicesNew Inner join [tbl_IDS_Kunden] on [tbl_IDS_Kunden].CustomerCode =tblIDSInvoicesNew.CustomerCode and isnull([tbl_IDS_Kunden].KdNrAlt, 1) = 0 Inner join Adressen on Adressen.AdressenNr = [tbl_IDS_Kunden].KdNrVERAG where DocumentName is null and cast(YearMonthDay as Date) between '" & dat_Sum_Von.Value & "' and '" & dat_Sum_Bis.Value & "' group by Invoicenumber, Adressen.AdressenNr, Adressen.[Name 1], YearMonthDay" Case Else : SQLQuery = "" End Select Dim fehlendePDFs As Integer = 0 If SQLQuery <> "" Then Dim dtfehlendePDF As DataTable = (New SQL).loadDgvBySql(SQLQuery, "FMZOLL") MsgBox("Anzahl fehlende PDFs: " & dtfehlendePDF.Rows.Count & IIf(CDate(dat_Sum_Von.Value).Year <= 2024 OrElse CDate(dat_Sum_Bis.Value).Year <= 2024, vbNewLine & "PDF-Rechnungen vor 2025 wurden tlw. nicht importiert!", "")) If dtfehlendePDF.Rows.Count > 0 Then If vbYes = MsgBox("Details der fehlenden PDF-Rechnungen anzeigen?", vbYesNo) Then cProgramFunctions.genExcelFromDT_NEW(dtfehlendePDF,,, "Fehlende PDF-Rechnungen: " & dat_Sum_Von.Value.ToShortDateString & " - " & dat_Sum_Bis.Value.ToShortDateString) End If End if Else MsgBox("Funktion nur pro Lieferant möglich!") End If End Sub Private Sub frmUSTVoffeneAntraege_Load(sender As Object, e As EventArgs) Handles MyBase.Load dtkeineMWST = (New SQL).loadDgvBySql("select Land, Erstattungsland, Lieferant from tblKeineMWSTErstattung", "FMZOLL") If kdNr > 0 Then dtKundeMWST = (New SQL).loadDgvBySql("select LandKz from tblKundenMWST where KdNr = " & kdNr, "FMZOLL") End If End Sub End Class