This commit is contained in:
2022-03-19 22:52:06 +01:00
parent 9b001e5803
commit d9204781cf
139 changed files with 19394 additions and 3352 deletions

View File

@@ -50,6 +50,11 @@ Public Class cTrdInvoice
LOAD()
End Sub
Sub New(Rechnungsdatum, Rechnungsnummer, Buchungsjahr)
Me.Rechnungsnummer = Buchungsjahr.ToString.Substring(2, 2) & Rechnungsnummer
Me.Rechnungsdatum = Rechnungsdatum
LOAD()
End Sub
Public Function getParameterList() As List(Of VERAG_PROG_ALLGEMEIN.SQLVariable)
Dim list As New List(Of VERAG_PROG_ALLGEMEIN.SQLVariable)
list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("Rechnungsdatum", Rechnungsdatum))
@@ -324,7 +329,7 @@ Class TrdInvoice_FUNCTIONS
Shared SQL As New VERAG_PROG_ALLGEMEIN.SQL
Shared Function TrdinSchreiben(Optional Firma As Integer = -1) As Boolean 'Lädt die Daten aus der Tabelle Rechnungsausgang/RechnungsausgangPositionen in die Tabelle trdInvoice/trdProduct
Shared Function TrdinSchreiben(Optional Firma As Integer = -1, Optional Buchungsjahr As Integer = -1) As Boolean 'Lädt die Daten aus der Tabelle Rechnungsausgang/RechnungsausgangPositionen in die Tabelle trdInvoice/trdProduct
Try
Dim LOKALWÄHRUNG = "EUR"
@@ -332,10 +337,17 @@ Class TrdInvoice_FUNCTIONS
Dim WährungsdifferenzSteuerpflichtigerBetrag As Double
Dim WährungsdifferenzSteuerfreierBetrag As Integer
Dim dt As DataTable = SQL.loadDgvBySql(getSQLString_SELECTForTrdInvoice(Firma), "FMZOLL", 9800)
Dim dt As DataTable = SQL.loadDgvBySql(getSQLString_SELECTForTrdInvoice(Firma, Buchungsjahr), "FMZOLL", 9800)
If dt IsNot Nothing AndAlso dt.Rows.Count > 0 Then
For Each ROW In dt.Rows
Dim TRD_INVOICE As New VERAG_PROG_ALLGEMEIN.cTrdInvoice(ROW("RK_RechnungsDatum"), ROW("RK_RechnungsNr"))
Dim TRD_INVOICE As VERAG_PROG_ALLGEMEIN.cTrdInvoice
If Buchungsjahr > 2000 Then
TRD_INVOICE = New VERAG_PROG_ALLGEMEIN.cTrdInvoice(ROW("RK_RechnungsDatum"), ROW("RK_RechnungsNr"), Buchungsjahr) 'nur UNISPED!!!!
Else
TRD_INVOICE = New VERAG_PROG_ALLGEMEIN.cTrdInvoice(ROW("RK_RechnungsDatum"), ROW("RK_RechnungsNr"))
End If
If TRD_INVOICE.hasEntry Then
' MsgBox("RG-Nr. bereits vorhanden!")
Else
@@ -360,9 +372,9 @@ Class TrdInvoice_FUNCTIONS
TRD_INVOICE.SteuerbetragFremd = ROW("RK_Steuerbetrag")
TRD_INVOICE.RechnungsbetragFremd = ROW("RK_Rechnungsbetrag")
TRD_INVOICE.SteuerpflichtigerBetragLokal = VERAG_PROG_ALLGEMEIN.cProgramFunctions.fktEuro(ROW("[RK_SteuerpflichtigerBetrag]"), ROW("[RK_Währungscode]"), LOKALWÄHRUNG)
TRD_INVOICE.SteuerfreierBetragLokal = VERAG_PROG_ALLGEMEIN.cProgramFunctions.fktEuro(ROW("[RK_SteuerfreierBetrag]"), ROW("[RK_Währungscode]"), LOKALWÄHRUNG)
TRD_INVOICE.SteuerbetragLokal = CDbl(TRD_INVOICE.SteuerpflichtigerBetragLokal * ROW("[RK_SteuersatzProzent]") * 100) / 100
TRD_INVOICE.SteuerpflichtigerBetragLokal = VERAG_PROG_ALLGEMEIN.cProgramFunctions.fktEuro(ROW("RK_SteuerpflichtigerBetrag"), ROW("RK_Währungscode"), LOKALWÄHRUNG)
TRD_INVOICE.SteuerfreierBetragLokal = VERAG_PROG_ALLGEMEIN.cProgramFunctions.fktEuro(ROW("RK_SteuerfreierBetrag"), ROW("RK_Währungscode"), LOKALWÄHRUNG)
TRD_INVOICE.SteuerbetragLokal = CDbl(TRD_INVOICE.SteuerpflichtigerBetragLokal * ROW("RK_SteuersatzProzent") * 100) / 100
TRD_INVOICE.RechnungsbetragLokal = TRD_INVOICE.SteuerpflichtigerBetragLokal + TRD_INVOICE.SteuerfreierBetragLokal + TRD_INVOICE.SteuerbetragLokal
' Basis zur Feststellung von Rundungsdifferenzen schaffen.
@@ -401,9 +413,11 @@ Class TrdInvoice_FUNCTIONS
TRD_INVOICE.UStVAn_ID = Nothing
If TRD_INVOICE.SAVE Then
If TrdinSchreibenProduct(TRD_INVOICE.Rechnungsdatum, TRD_INVOICE.Rechnungsnummer, RK_Währungscode, ROW("RK_RechnungsLandKz"), ROW("RK_Buchungstext"), TRD_INVOICE.Firma_ID, lngSatzzähler, WährungsdifferenzSteuerpflichtigerBetrag, WährungsdifferenzSteuerfreierBetrag) Then
If TrdinSchreibenProduct(TRD_INVOICE.Rechnungsdatum, ROW("RK_RechnungsNr"), TRD_INVOICE.Rechnungsnummer, RK_Währungscode, ROW("RK_RechnungsLandKz"), ROW("RK_Buchungstext"), TRD_INVOICE.Firma_ID, lngSatzzähler, WährungsdifferenzSteuerpflichtigerBetrag, WährungsdifferenzSteuerfreierBetrag, Buchungsjahr) Then
'UPDATE rechnugnsausgang
SQL.doSQL("UPDATE [Rechnungsausgang] SET [Trdin] = 1 WHERE convert(date,[RechnungsDatum] ,104) = '" & TRD_INVOICE.Rechnungsdatum.ToShortDateString & "' AND RechnungsNr = " & TRD_INVOICE.Rechnungsnummer & " ", "FMZOLL")
Dim firmaTmpsql = If(Firma > 0, " AND Firma_ID= '" & Firma & "' ", "")
Dim buchungsjahrTmpsql = If(Buchungsjahr > 0, " AND Buchungsjahr= '" & Buchungsjahr & "' ", "")
SQL.doSQL("UPDATE [Rechnungsausgang] SET [Trdin] = 1 WHERE convert(date,[RechnungsDatum] ,104) = '" & TRD_INVOICE.Rechnungsdatum.ToShortDateString & "' AND RechnungsNr = " & ROW("RK_RechnungsNr") & firmaTmpsql & buchungsjahrTmpsql, "FMZOLL")
End If
End If
End If
@@ -425,18 +439,18 @@ Class TrdInvoice_FUNCTIONS
Shared Function TrdinSchreibenProduct(RechnungsDatum, RK_RechnungsNr, RK_Währungscode, RK_RechnungsLandKz, RK_Buchungstext, RK_Firma_ID, ByRef lngSatzzähler, ByRef WährungsdifferenzSteuerpflichtigerBetrag, ByRef WährungsdifferenzSteuerfreierBetrag) As Boolean
Shared Function TrdinSchreibenProduct(RechnungsDatum, RK_RechnungsNr, TRD_RechnungsNr, RK_Währungscode, RK_RechnungsLandKz, RK_Buchungstext, RK_Firma_ID, ByRef lngSatzzähler, ByRef WährungsdifferenzSteuerpflichtigerBetrag, ByRef WährungsdifferenzSteuerfreierBetrag, Buchungsjahr) As Boolean
Try
Dim LOKALWÄHRUNG = "EUR"
Dim dt As DataTable = SQL.loadDgvBySql(getSQLString_SELECTForTrdProduct(RechnungsDatum, RK_RechnungsNr), "FMZOLL")
Dim dt As DataTable = SQL.loadDgvBySql(getSQLString_SELECTForTrdProduct(RechnungsDatum, RK_RechnungsNr, RK_Firma_ID, Buchungsjahr), "FMZOLL")
If dt IsNot Nothing AndAlso dt.Rows.Count > 0 Then
For Each ROW In dt.Rows
Dim TRD_PRODUCT As New VERAG_PROG_ALLGEMEIN.cTrdProduct()
TRD_PRODUCT.Rechnungsdatum = RechnungsDatum
TRD_PRODUCT.Rechnungsnummer = RK_RechnungsNr
TRD_PRODUCT.Rechnungsnummer = TRD_RechnungsNr
If RK_Währungscode = LOKALWÄHRUNG Then
@@ -475,7 +489,7 @@ Class TrdInvoice_FUNCTIONS
TRD_PRODUCT.Belegdaten = ROW("RP_Belegdaten")
TRD_PRODUCT.Sachkonto = getSachkonto(RK_Firma_ID, ROW("RP_LeistungsNr"), RK_RechnungsLandKz, ROW("RP_Steuerpflichtig"), ROW("AufschubkontoNr"))
TRD_PRODUCT.Buchungstext = RK_Buchungstext
TRD_PRODUCT.SAVE()
@@ -586,7 +600,7 @@ Class TrdInvoice_FUNCTIONS
getSachkonto = CInt(getSachkonto)
End Function
Shared Function getSQLString_SELECTForTrdInvoice(Optional Firma As Integer = -1)
Shared Function getSQLString_SELECTForTrdInvoice(Optional Firma As Integer = -1, Optional Buchungsjahr As Integer = -1)
getSQLString_SELECTForTrdInvoice = "SELECT Rechnungsausgang.RechnungsDatum AS RK_RechnungsDatum, Rechnungsausgang.RechnungsNr AS RK_RechnungsNr, min(Rechnungsausgang.Abfertigungsdatum) AS RK_Abfertigungsdatum, min(Rechnungsausgang.FilialenNr) AS RK_FilialenNr,
min(Rechnungsausgang.AbfertigungsNr) AS RK_AbfertigungsNr, min(Rechnungsausgang.UnterNr) AS RK_UnterNr, min(Rechnungsausgang.BelegartenNr) AS RK_BelegartenNr,
(min(cast([FilialenNr] as varchar(4))) + '/' + min(cast([AbfertigungsNr] as varchar(8))) + '/' + min(cast([UnterNr] as varchar(2)))) AS RK_Buchungstext,
@@ -599,19 +613,19 @@ Class TrdInvoice_FUNCTIONS
Sum(RechnungsausgangPositionen.SteuerpflichtigerBetrag)+Sum(RechnungsausgangPositionen.SteuerfreierBetrag)+((Sum(RechnungsausgangPositionen.SteuerpflichtigerBetrag)*min(Rechnungsausgang.[Steuersatz %])*100)/100) AS RK_Rechnungsbetrag,
Count(1) AS RK_Satzzähler
FROM Rechnungsausgang INNER JOIN RechnungsausgangPositionen ON Rechnungsausgang.RK_ID = RechnungsausgangPositionen.RK_ID
WHERE (((Rechnungsausgang.RechnungsDatum) Is Not Null) AND ((Rechnungsausgang.RechnungsNr) Is Not Null) AND ((Rechnungsausgang.Trdin)=0)) " & If(Firma > 0, " and Firma_ID=" & Firma, "") & "
WHERE (((Rechnungsausgang.RechnungsDatum) Is Not Null) AND ((Rechnungsausgang.RechnungsNr) Is Not Null) AND ((Rechnungsausgang.Trdin)=0)) " & If(Firma > 0, " and Firma_ID=" & Firma, "") & If(Buchungsjahr > 0, " and Buchungsjahr=" & Buchungsjahr, "") & "
GROUP BY Rechnungsausgang.RechnungsDatum, Rechnungsausgang.RechnungsNr
ORDER BY Rechnungsausgang.RechnungsDatum, Rechnungsausgang.RechnungsNr, min(Rechnungsausgang.Abfertigungsdatum), min(Rechnungsausgang.FilialenNr), min(Rechnungsausgang.AbfertigungsNr), min(Rechnungsausgang.UnterNr);"
End Function
Shared Function getSQLString_SELECTForTrdProduct(RechnungsDatum As Date, RechnungsNr As Integer)
Shared Function getSQLString_SELECTForTrdProduct(RechnungsDatum As Date, RechnungsNr As Integer, Optional Firma As Integer = -1, Optional Buchungsjahr As Integer = -1)
getSQLString_SELECTForTrdProduct = "SELECT Rechnungsausgang.RechnungsDatum AS RP_RechnungsDatum, Rechnungsausgang.RechnungsNr AS RP_RechnungsNr, RechnungsausgangPositionen.LeistungsNr AS RP_LeistungsNr, RechnungsausgangPositionen.LeistungsBez AS RP_LeistungsBez,
RechnungsausgangPositionen.Steuerpflichtig AS RP_Steuerpflichtig, Sum(RechnungsausgangPositionen.SteuerpflichtigerBetrag) AS RP_SteuerpflichtigerBetrag, Sum(RechnungsausgangPositionen.SteuerfreierBetrag) AS RP_SteuerfreierBetrag,
min(RechnungsausgangPositionen.Belegdaten) AS RP_Belegdaten, Count(1) AS RP_Satzzähler, min(AufschubkontoNr) as AufschubkontoNr
FROM RechnungsausgangPositionen INNER JOIN Rechnungsausgang ON RechnungsausgangPositionen.RK_ID = Rechnungsausgang.RK_ID
GROUP BY Rechnungsausgang.RechnungsDatum, Rechnungsausgang.RechnungsNr, RechnungsausgangPositionen.LeistungsNr, RechnungsausgangPositionen.LeistungsBez, RechnungsausgangPositionen.Steuerpflichtig
HAVING (((Rechnungsausgang.RechnungsDatum)='" & RechnungsDatum.ToShortDateString & "') AND ((Rechnungsausgang.RechnungsNr)=" & RechnungsNr & "))
GROUP BY Rechnungsausgang.RechnungsDatum, Rechnungsausgang.RechnungsNr, RechnungsausgangPositionen.LeistungsNr, RechnungsausgangPositionen.LeistungsBez, RechnungsausgangPositionen.Steuerpflichtig " & If(Firma > 0, " ,Rechnungsausgang.Firma_ID ", "") & If(Buchungsjahr > 0, " ,Rechnungsausgang.Buchungsjahr ", "") & "
HAVING (((Rechnungsausgang.RechnungsDatum)='" & RechnungsDatum.ToShortDateString & "') AND ((Rechnungsausgang.RechnungsNr)=" & RechnungsNr & ")) " & If(Firma > 0, " and Rechnungsausgang.Firma_ID=" & Firma, "") & If(Buchungsjahr > 0, " and Rechnungsausgang.Buchungsjahr=" & Buchungsjahr, "") & "
ORDER BY Rechnungsausgang.RechnungsDatum, Rechnungsausgang.RechnungsNr, RechnungsausgangPositionen.LeistungsNr, RechnungsausgangPositionen.LeistungsBez, RechnungsausgangPositionen.Steuerpflichtig;"
End Function
End Class