Vorschau, etc.

This commit is contained in:
2025-01-15 15:54:51 +01:00
parent 481ab094de
commit 347c29902f
4 changed files with 359 additions and 177 deletions

View File

@@ -552,14 +552,14 @@ Public Class frmMDM_USTVAntrag
Shared Function alreadyExists(USTVAn_KuNr As Integer, UStVAn_LandNr As String, USTV_POS As VERAG_PROG_ALLGEMEIN.cUStVPositionen) As Boolean
Dim SQL As New VERAG_PROG_ALLGEMEIN.SQL
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")
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
Shared Function alreadyExistsMitLeistungsBez(USTVAn_KuNr As Integer, UStVAn_LandNr As String, USTV_POS As VERAG_PROG_ALLGEMEIN.cUStVPositionen) As Boolean
Dim SQL As New VERAG_PROG_ALLGEMEIN.SQL
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 & "' AND UStVPo_Leistungsbezeichnung = '" & USTV_POS.UStVPo_Leistungsbezeichnung & "'", "FMZOLL")
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 & "' AND UStVPo_Leistungsbezeichnung = '" & USTV_POS.UStVPo_Leistungsbezeichnung & "'", "FMZOLL")
Return (cnt > 0)
End Function

View File

@@ -66,6 +66,7 @@ Partial Class usrCntlUSTV
Me.Button8 = New System.Windows.Forms.Button()
Me.ContextMenuStrip1 = New System.Windows.Forms.ContextMenuStrip(Me.components)
Me.ContextMenuStrip2 = New System.Windows.Forms.ContextMenuStrip(Me.components)
Me.btnVorschau = New System.Windows.Forms.Button()
CType(Me.dgvUSTV, System.ComponentModel.ISupportInitialize).BeginInit()
Me.Panel1.SuspendLayout()
Me.Panel2.SuspendLayout()
@@ -643,6 +644,7 @@ Partial Class usrCntlUSTV
'Panel3
'
Me.Panel3.AutoSize = True
Me.Panel3.Controls.Add(Me.btnVorschau)
Me.Panel3.Controls.Add(Me.btnMail)
Me.Panel3.Controls.Add(Me.btnPLOSEAlle)
Me.Panel3.Controls.Add(Me.Button5)
@@ -722,6 +724,19 @@ Partial Class usrCntlUSTV
Me.ContextMenuStrip2.Name = "ContextMenuStrip1"
Me.ContextMenuStrip2.Size = New System.Drawing.Size(61, 4)
'
'btnVorschau
'
Me.btnVorschau.Anchor = CType((System.Windows.Forms.AnchorStyles.Top Or System.Windows.Forms.AnchorStyles.Right), System.Windows.Forms.AnchorStyles)
Me.btnVorschau.FlatStyle = System.Windows.Forms.FlatStyle.Flat
Me.btnVorschau.ForeColor = System.Drawing.Color.Black
Me.btnVorschau.ImageAlign = System.Drawing.ContentAlignment.MiddleLeft
Me.btnVorschau.Location = New System.Drawing.Point(1190, 6)
Me.btnVorschau.Name = "btnVorschau"
Me.btnVorschau.Size = New System.Drawing.Size(92, 39)
Me.btnVorschau.TabIndex = 26
Me.btnVorschau.Text = "Vorschau"
Me.btnVorschau.UseVisualStyleBackColor = True
'
'usrCntlUSTV
'
Me.AutoScaleDimensions = New System.Drawing.SizeF(6.0!, 13.0!)
@@ -782,4 +797,5 @@ Partial Class usrCntlUSTV
Friend WithEvents Label10 As Label
Friend WithEvents txtOPSaldo As VERAG_PROG_ALLGEMEIN.MyTextBox
Friend WithEvents Label11 As Label
Friend WithEvents btnVorschau As Button
End Class

View File

@@ -751,4 +751,163 @@ Public Class usrCntlUSTV
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, 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 & "
/*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,tblSteuernummern.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 " & sqlKundenMSENEU & "
group by cust.[partner_customer_number],tblSteuernummern.LandNr,bills.invoice_date, trans.transaction_country"
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

View File

@@ -1083,26 +1083,26 @@ Public Class usrCntlMDMAuswertungen
End If
Dim dtReText As DataTable = SQL.loadDgvBySql("SELECT [Firma_ID], [Status], [Sammelrechnung], [Sachbearbeiter], [RechnungsKundenNr], [Währungscode], isnull([Steuersatz %],0) as [Steuersatz %], cast([Lastschrift] as bit) as Lastschrift, [RK_ID], [BelegartenNr],cast([Vorkasse] as bit) as Vorkasse, [Nettozahlungsziel], [OffertenNr], [RechnungsLandKz], [Text]
Dim dtSelectedSammelrechnungen As DataTable = SQL.loadDgvBySql("SELECT [Firma_ID], [Status], [Sammelrechnung], [Sachbearbeiter], [RechnungsKundenNr], [Währungscode], isnull([Steuersatz %],0) as [Steuersatz %], cast([Lastschrift] as bit) as Lastschrift, [RK_ID], [BelegartenNr],cast([Vorkasse] as bit) as Vorkasse, [Nettozahlungsziel], [OffertenNr], [RechnungsLandKz], [Text]
FROM Rechnungsausgang
WHERE [Status] = 0 AND [Sammelrechnung] = 6 AND [Sachbearbeiter] = '" & Sachbearbeiter & "' AND ([SteuerpflichtigerGesamtbetrag] <> 0 OR [SteuerfreierGesamtbetrag] <> 0) AND cast(Abfertigungsdatum as Date) = '" & rechnungsdatum & "'
ORDER BY [Firma_ID], [Status], [Sammelrechnung], [Sachbearbeiter], [RechnungsKundenNr], [Währungscode], [Steuersatz %], [Lastschrift], [RK_ID]", "FMZOLL")
'Rechnungstext im RK eintragen
If dtReText.Rows.Count > 0 Then
If dtSelectedSammelrechnungen.Rows.Count > 0 Then
For Each r In dtReText.Rows
For Each rowRE In dtSelectedSammelrechnungen.Rows
Select Case r("BelegartenNr")
Select Case rowRE("BelegartenNr")
Case 70 'RECHNUNG
If Not r("Vorkasse") Then
If r("Lastschrift") Then
If Not rowRE("Vorkasse") Then
If rowRE("Lastschrift") Then
varText = varText & "Der Rechnungsbetrag wurde durch erteilten Abbuchungsauftrag eingezogen." & vbCrLf
Else
If Not IsDBNull(r("RechnungsKundenNr")) Then
If Not IsDBNull(rowRE("RechnungsKundenNr")) Then
'Zahlungsziel aus Kundenstamm.
Dim ZZ = SQL.getValueTxtBySql("SELECT Kunden.Zahlungsziel from Kunden WHERE Kunden.KundenNr=" & r("RechnungsKundenNr") & " AND Kunden.Zahlungsziel Is Not Null", "FMZOLL")
Dim ZZ = SQL.getValueTxtBySql("SELECT Kunden.Zahlungsziel from Kunden WHERE Kunden.KundenNr=" & rowRE("RechnungsKundenNr") & " AND Kunden.Zahlungsziel Is Not Null", "FMZOLL")
If ZZ <> "" AndAlso IsNumeric(ZZ) Then
varNettozahlungsziel = ZZ
strFälligkeitsdatum = DateAdd("d", varNettozahlungsziel, dtRechnungsdatum.Value).ToString("dd.MM.yyyy")
@@ -1111,8 +1111,8 @@ Public Class usrCntlMDMAuswertungen
'Zahlungsziel aus Offertenstamm.
If strFälligkeitsdatum = "" Then
If Not IsDBNull(r("OffertenNr")) Then
Dim ZZOffert = SQL.getValueTxtBySql("SELECT Offertenstamm.Zahlungsziel FROM Offertenstamm WHERE Offertenstamm.OffertenNr = " & r("OffertenNr") & " AND Offertenstamm.Zahlungsziel IS NOT NULL", "FMZOLL")
If Not IsDBNull(rowRE("OffertenNr")) Then
Dim ZZOffert = SQL.getValueTxtBySql("SELECT Offertenstamm.Zahlungsziel FROM Offertenstamm WHERE Offertenstamm.OffertenNr = " & rowRE("OffertenNr") & " AND Offertenstamm.Zahlungsziel IS NOT NULL", "FMZOLL")
If ZZOffert <> "" AndAlso IsNumeric(ZZOffert) Then
varNettozahlungsziel = ZZOffert
strFälligkeitsdatum = DateAdd("d", varNettozahlungsziel, dtRechnungsdatum.Value).ToString("dd.MM.yyyy")
@@ -1123,9 +1123,9 @@ Public Class usrCntlMDMAuswertungen
'Zahlungsziel ermitteln.
If strFälligkeitsdatum = "" Then
If Not IsDBNull(r("RK_ID")) Then
If Not IsDBNull(rowRE("RK_ID")) Then
'Zahlungsziel bei Kreditaufwendungen.
Dim ZZRKID = SQL.getValueTxtBySql("Select Case [Preis], [Anzahl] From [RechnungsausgangPositionen] Where [RK_ID] = " & r("RK_ID") & " And [LeistungsNr] = 750 And [BerechnungsartNr] = 9", "FMZOLL")
Dim ZZRKID = SQL.getValueTxtBySql("Select Case [Preis], [Anzahl] From [RechnungsausgangPositionen] Where [RK_ID] = " & rowRE("RK_ID") & " And [LeistungsNr] = 750 And [BerechnungsartNr] = 9", "FMZOLL")
If ZZRKID <> "" Then
strZahlbar = "Zahlbar innerhalb 10 Tagen abzüglich Pos. 750; ab 10 Tagen netto fällig."
Else
@@ -1140,9 +1140,9 @@ Public Class usrCntlMDMAuswertungen
'Fälligkeitstext in Landessprache
If strFälligkeitsdatum <> "" Then strZahlbar = "Rechnung zahlbar spätestens bis " & strFälligkeitsdatum & "!"
If Not IsDBNull(r("RechnungsLandKz")) Then
If Not IsDBNull(rowRE("RechnungsLandKz")) Then
Dim ZZRLandKZ = SQL.getValueTxtBySql("SELECT tblZahlungszieltexte.Text FROM tblZahlungszieltexte WHERE tblZahlungszieltexte.LandKz='" & r("RechnungsLandKz") & "' AND tblZahlungszieltexte.Text Is Not Null", "FMZOLL")
Dim ZZRLandKZ = SQL.getValueTxtBySql("SELECT tblZahlungszieltexte.Text FROM tblZahlungszieltexte WHERE tblZahlungszieltexte.LandKz='" & rowRE("RechnungsLandKz") & "' AND tblZahlungszieltexte.Text Is Not Null", "FMZOLL")
If ZZRLandKZ <> "" Then
strZahlbar = ZZRLandKZ & " " & strFälligkeitsdatum & "!"
End If
@@ -1155,18 +1155,18 @@ Public Class usrCntlMDMAuswertungen
End If
' Text bei Zoll oder EUSt drucken
Dim Zoll = SQL.getValueTxtBySql("Select LeistungsNr From dbo.RechnungsausgangPositionen Where RK_ID = " & r("RK_ID") & " And LeistungsNr In (10, 60, 70)", "FMZOLL")
Dim Zoll = SQL.getValueTxtBySql("Select LeistungsNr From dbo.RechnungsausgangPositionen Where RK_ID = " & rowRE("RK_ID") & " And LeistungsNr In (10, 60, 70)", "FMZOLL")
If Not IsDBNull(Zoll) AndAlso Zoll <> "" Then
varText = varText & "Alle Zollbelege bitte sofort auf Richtigkeit prüfen da Einspruch gemäß § 355 AO nur 1 Monat nach Datum des Zollbescheides möglich." & vbCrLf
End If
Case 71 'GUTSCHRIFT
If r("Lastschrift") Then
If rowRE("Lastschrift") Then
varText = varText & "Der Gutschriftsbetrag wurde mit erteilten Abbuchungsauftrag verrechnet." & vbCrLf
End If
End Select
ok = SQL.doSQL("Update [Rechnungsausgang] Set [Text] = '" & varText & "', [Nettozahlungsziel] = " & varNettozahlungsziel & " WHERE [RK_ID] = " & r("RK_ID"), "FMZOLL")
ok = SQL.doSQL("Update [Rechnungsausgang] Set [Text] = '" & varText & "', [Nettozahlungsziel] = " & varNettozahlungsziel & " WHERE [RK_ID] = " & rowRE("RK_ID"), "FMZOLL")
If Not ok Then MsgBox("Fehler") : Exit Sub
varText = ""
@@ -1177,163 +1177,6 @@ Public Class usrCntlMDMAuswertungen
End If
' Die Abfrage ermittelt aus den Rechnungspositonen,
' das Vorkommen (Anzahl Porto/Papiere) pro RechnungsKundenNr
' Status=0, Sammelrechnung=6, LeistungsNr=440.
Dim sqlString = "SELECT
Rechnungsausgang.Firma_ID,
Rechnungsausgang.Status,
Rechnungsausgang.Sammelrechnung,
Rechnungsausgang.Sachbearbeiter,
Rechnungsausgang.RechnungsKundenNr,
Rechnungsausgang.BelegartenNr,
Rechnungsausgang.Währungscode,
isnull(Rechnungsausgang.[Steuersatz %],0) as [Steuersatz %],
cast(Rechnungsausgang.Lastschrift as bit) as Lastschrift,
SUM(CASE WHEN LeistungsNr = 440 THEN Anzahl ELSE 0 END) AS AnzahlPP,
SUM(CASE WHEN LeistungsNr = 440 THEN 0 ELSE SteuerpflichtigerBetrag + SteuerfreierBetrag END) AS BetragExclusivPP
FROM
Rechnungsausgang
INNER JOIN
RechnungsausgangPositionen ON Rechnungsausgang.RK_ID = RechnungsausgangPositionen.RK_ID
WHERE
Rechnungsausgang.Status = 0
AND Rechnungsausgang.Sammelrechnung = 6
AND Rechnungsausgang.Sachbearbeiter = '" & Sachbearbeiter & "'
AND cast(Abfertigungsdatum as Date) = '" & rechnungsdatum & "'
GROUP BY
Rechnungsausgang.Firma_ID,
Rechnungsausgang.Status,
Rechnungsausgang.Sammelrechnung,
Rechnungsausgang.Sachbearbeiter,
Rechnungsausgang.RechnungsKundenNr,
Rechnungsausgang.BelegartenNr,
Rechnungsausgang.Währungscode,
Rechnungsausgang.[Steuersatz %],
Rechnungsausgang.Lastschrift
HAVING
SUM(CASE WHEN LeistungsNr = 440 THEN Anzahl ELSE 0 END) > 0
ORDER BY
Rechnungsausgang.Firma_ID,
Rechnungsausgang.Status,
Rechnungsausgang.Sammelrechnung,
Rechnungsausgang.Sachbearbeiter,
Rechnungsausgang.RechnungsKundenNr,
Rechnungsausgang.BelegartenNr,
Rechnungsausgang.Währungscode,
Rechnungsausgang.[Steuersatz %],
Rechnungsausgang.Lastschrift"
Dim dtPP As DataTable = SQL.loadDgvBySql(sqlString, "FMZOLL")
If dtPP.Rows.Count > 0 Then
For Each r In dtPP.Rows
Dim intZlr As Integer = 0
' Bei BetragExclusivPP kleiner als 150€ wird 1x P.P. verrechnet, bei grösser/gleich 150€ wird kein P.P. verrechnet.
' Zähler auf die Anzahl der P.P. Löschungen einstellen.
If Not IsDBNull(r("BetragExclusivPP")) AndAlso r("BetragExclusivPP") > 0 Then
If r("BetragExclusivPP") < 150 Then
intZlr = r("AnzahlPP") - 1
Else
intZlr = r("AnzahlPP")
End If
Else
If (0 - r("BetragExclusivPP")) < 150 Then
intZlr = r("AnzahlPP") - 1
Else
intZlr = r("AnzahlPP") - 1
End If
End If
If intZlr > 0 Then
Dim steuersatz As Double = Math.Round(r("Steuersatz %"), 2)
Dim SteuersatzString As String = steuersatz.ToString.Replace(",", ".")
' Die Abfrage liest in der Tabelle Rechnungsausgang,
' passend zu den durch die vorherige Abfrage bereitgestellten Parametern.
Dim sqlStringRechnungen As String = "Select DISTINCT
Rechnungsausgang.OffertenNr,
Rechnungsausgang.RK_ID,
Rechnungsausgang.SteuerpflichtigerGesamtbetrag,
Rechnungsausgang.SteuerfreierGesamtbetrag,
Rechnungsausgang.upsize_ts
FROM Rechnungsausgang
WHERE
Rechnungsausgang.Firma_ID = " & r("Firma_ID") & "
And Rechnungsausgang.Status = " & r("Status") & "
And Rechnungsausgang.Sammelrechnung = " & r("Sammelrechnung") & "
And Rechnungsausgang.Sachbearbeiter = '" & Sachbearbeiter & "'
And Rechnungsausgang.RechnungsKundenNr = " & r("RechnungsKundenNr") & "
And Rechnungsausgang.BelegartenNr = " & r("BelegartenNr") & "
And Rechnungsausgang.Währungscode = '" & r("Währungscode") & "'
And Rechnungsausgang.[Steuersatz %] = " & SteuersatzString & "
And Rechnungsausgang.Lastschrift = " & IIf(r("Lastschrift"), 1, 0) & "
AND cast(Rechnungsausgang.Abfertigungsdatum as Date) = '" & rechnungsdatum & "'
ORDER by
Rechnungsausgang.OffertenNr"
Dim dtRechnungen As DataTable = SQL.loadDgvBySql(sqlStringRechnungen, "FMZOLL")
If dtRechnungen.Rows.Count > 0 Then
For Each re In dtRechnungen.Rows
Dim dtREPOSANZ As DataTable = SQL.loadDgvBySql("Select [RK_ID], [LeistungsNr], cast([Steuerpflichtig] as bit) as Steuerpflichtig, [LeistungsBez],[IndexZkteing], Anzahl, SteuerpflichtigerBetrag, SteuerfreierBetrag,upsize_ts From RechnungsausgangPositionen Where RechnungsausgangPositionen.RK_ID = " & re("RK_ID") & " And RechnungsausgangPositionen.LeistungsNr = 440", "FMZOLL")
If dtREPOSANZ.Rows.Count > 0 Then
Dim stgesBetr = re("SteuerpflichtigerGesamtbetrag")
Dim stfregesBetr = re("SteuerfreierGesamtbetrag")
Dim RECHNUNG As New cRechnungsausgang(re("RK_ID"))
For Each row In dtREPOSANZ.Rows
intZlr = intZlr - row("Anzahl")
stgesBetr = stgesBetr - row("SteuerpflichtigerBetrag")
stfregesBetr = stfregesBetr - row("SteuerfreierBetrag")
If RECHNUNG.DELETE_POSITIONEN(RECHNUNG.RK_ID, row("LeistungsNr"), row("Steuerpflichtig"), row("LeistungsBez"), row("IndexZkteing")) Then
RECHNUNG.SteuerfreierGesamtbetrag = stfregesBetr
RECHNUNG.SteuerpflichtigerGesamtbetrag = stgesBetr
RECHNUNG.SAVE()
End If
If intZlr = 0 Then Exit For
Next
End If
Next
End If
End If
Next
End If
'Berechnet Banküberweisung/Bankspesen.
@@ -1512,11 +1355,175 @@ Public Class usrCntlMDMAuswertungen
Next
End If
End If
End Sub
Private Function PortoPapiere(Sachbearbeiter As String, rechnungsdatum As Date) As Boolean
' Die Abfrage ermittelt aus den Rechnungspositonen,
' das Vorkommen (Anzahl Porto/Papiere) pro RechnungsKundenNr
' Status=0, Sammelrechnung=6, LeistungsNr=440.
Dim sqlString = "SELECT
Rechnungsausgang.Firma_ID,
Rechnungsausgang.Status,
Rechnungsausgang.Sammelrechnung,
Rechnungsausgang.Sachbearbeiter,
Rechnungsausgang.RechnungsKundenNr,
Rechnungsausgang.BelegartenNr,
Rechnungsausgang.Währungscode,
isnull(Rechnungsausgang.[Steuersatz %],0) as [Steuersatz %],
cast(Rechnungsausgang.Lastschrift as bit) as Lastschrift,
SUM(CASE WHEN LeistungsNr = 440 THEN Anzahl ELSE 0 END) AS AnzahlPP,
SUM(CASE WHEN LeistungsNr = 440 THEN 0 ELSE SteuerpflichtigerBetrag + SteuerfreierBetrag END) AS BetragExclusivPP
FROM
Rechnungsausgang
INNER JOIN
RechnungsausgangPositionen ON Rechnungsausgang.RK_ID = RechnungsausgangPositionen.RK_ID
WHERE
Rechnungsausgang.Status = 0
AND Rechnungsausgang.Sammelrechnung = 6
AND Rechnungsausgang.Sachbearbeiter = '" & Sachbearbeiter & "'
AND cast(Abfertigungsdatum as Date) = '" & rechnungsdatum & "'
GROUP BY
Rechnungsausgang.Firma_ID,
Rechnungsausgang.Status,
Rechnungsausgang.Sammelrechnung,
Rechnungsausgang.Sachbearbeiter,
Rechnungsausgang.RechnungsKundenNr,
Rechnungsausgang.BelegartenNr,
Rechnungsausgang.Währungscode,
Rechnungsausgang.[Steuersatz %],
Rechnungsausgang.Lastschrift
HAVING
SUM(CASE WHEN LeistungsNr = 440 THEN Anzahl ELSE 0 END) > 0
ORDER BY
Rechnungsausgang.Firma_ID,
Rechnungsausgang.Status,
Rechnungsausgang.Sammelrechnung,
Rechnungsausgang.Sachbearbeiter,
Rechnungsausgang.RechnungsKundenNr,
Rechnungsausgang.BelegartenNr,
Rechnungsausgang.Währungscode,
Rechnungsausgang.[Steuersatz %],
Rechnungsausgang.Lastschrift"
Dim dtPP As DataTable = (New SQL).loadDgvBySql(sqlString, "FMZOLL")
If dtPP.Rows.Count > 0 Then
For Each r In dtPP.Rows
Dim intZlr As Integer = 0
' Bei BetragExclusivPP kleiner als 150€ wird 1x P.P. verrechnet, bei grösser/gleich 150€ wird kein P.P. verrechnet.
' Zähler auf die Anzahl der P.P. Löschungen einstellen.
If Not IsDBNull(r("BetragExclusivPP")) AndAlso r("BetragExclusivPP") > 0 Then
If r("BetragExclusivPP") < 150 Then
intZlr = r("AnzahlPP") - 1
Else
intZlr = r("AnzahlPP")
End If
Else
If (0 - r("BetragExclusivPP")) < 150 Then
intZlr = r("AnzahlPP") - 1
Else
intZlr = r("AnzahlPP") - 1
End If
End If
If intZlr > 0 Then
Dim steuersatz As Double = Math.Round(r("Steuersatz %"), 2)
Dim SteuersatzString As String = steuersatz.ToString.Replace(",", ".")
' Die Abfrage liest in der Tabelle Rechnungsausgang,
' passend zu den durch die vorherige Abfrage bereitgestellten Parametern.
Dim sqlStringRechnungen As String = "Select DISTINCT
Rechnungsausgang.OffertenNr,
Rechnungsausgang.RK_ID,
Rechnungsausgang.SteuerpflichtigerGesamtbetrag,
Rechnungsausgang.SteuerfreierGesamtbetrag,
Rechnungsausgang.upsize_ts
FROM Rechnungsausgang
WHERE
Rechnungsausgang.Firma_ID = " & r("Firma_ID") & "
And Rechnungsausgang.Status = " & r("Status") & "
And Rechnungsausgang.Sammelrechnung = " & r("Sammelrechnung") & "
And Rechnungsausgang.Sachbearbeiter = '" & Sachbearbeiter & "'
And Rechnungsausgang.RechnungsKundenNr = " & r("RechnungsKundenNr") & "
And Rechnungsausgang.BelegartenNr = " & r("BelegartenNr") & "
And Rechnungsausgang.Währungscode = '" & r("Währungscode") & "'
And Rechnungsausgang.[Steuersatz %] = " & SteuersatzString & "
And Rechnungsausgang.Lastschrift = " & IIf(r("Lastschrift"), 1, 0) & "
AND cast(Rechnungsausgang.Abfertigungsdatum as Date) = '" & rechnungsdatum & "'
ORDER by
Rechnungsausgang.OffertenNr"
Dim dtRechnungen As DataTable = (New SQL).loadDgvBySql(sqlStringRechnungen, "FMZOLL")
If dtRechnungen.Rows.Count > 0 Then
For Each re In dtRechnungen.Rows
Dim dtREPOSANZ As DataTable = (New SQL).loadDgvBySql("Select [RK_ID], [LeistungsNr], cast([Steuerpflichtig] as bit) as Steuerpflichtig, [LeistungsBez],[IndexZkteing], Anzahl, SteuerpflichtigerBetrag, SteuerfreierBetrag,upsize_ts From RechnungsausgangPositionen Where RechnungsausgangPositionen.RK_ID = " & re("RK_ID") & " And RechnungsausgangPositionen.LeistungsNr = 440", "FMZOLL")
If dtREPOSANZ.Rows.Count > 0 Then
Dim stgesBetr = re("SteuerpflichtigerGesamtbetrag")
Dim stfregesBetr = re("SteuerfreierGesamtbetrag")
Dim RECHNUNG As New cRechnungsausgang(re("RK_ID"))
For Each row In dtREPOSANZ.Rows
intZlr = intZlr - row("Anzahl")
stgesBetr = stgesBetr - row("SteuerpflichtigerBetrag")
stfregesBetr = stfregesBetr - row("SteuerfreierBetrag")
If RECHNUNG.DELETE_POSITIONEN(RECHNUNG.RK_ID, row("LeistungsNr"), row("Steuerpflichtig"), row("LeistungsBez"), row("IndexZkteing")) Then
RECHNUNG.SteuerfreierGesamtbetrag = stfregesBetr
RECHNUNG.SteuerpflichtigerGesamtbetrag = stgesBetr
RECHNUNG.SAVE()
End If
If intZlr = 0 Then Exit For
Next
End If
Next
End If
End If
Next
End If
End Function
Private Sub Button16_Click(sender As Object, e As EventArgs) Handles btnContractdaten.Click
Try