Essensbestellungen Umbaut, Syska GU-Export für AMBAR -> VERAG, Speditionsbucharchiv

This commit is contained in:
2024-05-10 15:02:07 +02:00
parent 7ba4fdf8f1
commit 5e3b74a19f
5 changed files with 1354 additions and 737 deletions

View File

@@ -284,7 +284,7 @@ Public Class cSyska_Interface
End If
End Function
Public Shared Function genDatensatz_Buchungen(ByRef Firma_ID As Integer, Optional OpenFile As Boolean = False, Optional WdhDateiname As String = "") As Boolean ' Optional OpenFile = False, Optional boolKunden = True, Optional boolBuchungen = True ) As Boolean
Public Shared Function genDatensatz_Buchungen(ByRef Firma_ID As Integer, Optional OpenFile As Boolean = False, Optional WdhDateiname As String = "", Optional ambargubuchungen As Boolean = False) As Boolean ' Optional OpenFile = False, Optional boolKunden = True, Optional boolBuchungen = True ) As Boolean
Try
Dim FIRMA As New VERAG_PROG_ALLGEMEIN.cFirmen(Firma_ID)
@@ -314,14 +314,14 @@ Public Class cSyska_Interface
'----------------- Buchungssätze -----------------
If True Then 'boolBuchungen Then
If WdhDateiname = "" Then TrdInvoice_FUNCTIONS.TrdinSchreiben(FIRMA.Firma_ID) 'Lädt die Daten aus der Tabelle Rechnungsausgang in die Tabelle trdInvoice (nur für 20 = IMEX )
Dim dt_Buchungen As DataTable = getBuchungen(FIRMA.Firma_ID, WdhDateiname)
If WdhDateiname = "" AndAlso Not ambargubuchungen Then TrdInvoice_FUNCTIONS.TrdinSchreiben(FIRMA.Firma_ID) 'Lädt die Daten aus der Tabelle Rechnungsausgang in die Tabelle trdInvoice (nur für 20 = IMEX )
Dim dt_Buchungen As DataTable = getBuchungen(FIRMA.Firma_ID, WdhDateiname, ambargubuchungen)
' MsgBox(WdhDateiname & " - " & dt_Buchungen.Rows.Count)
If dt_Buchungen IsNot Nothing AndAlso dt_Buchungen.Rows.Count > 0 Then
Try
Dim file As System.IO.StreamWriter
Dim Dateiname = "AVISO_BUBE_" & Now.ToString("ddMMyyyy_HHmm") & ".txt"
Dim Dateiname = IIf(ambargubuchungen, "GS_AMBAR_", "AVISO_BUBE_") & Now.ToString("ddMMyyyy_HHmm") & ".txt"
file = My.Computer.FileSystem.OpenTextFileWriter(path & Dateiname, True, System.Text.Encoding.GetEncoding("iso-8859-15"))
' initKDNr(dt_Buchungen)
@@ -337,30 +337,38 @@ Public Class cSyska_Interface
curDifferenzbetrag = Math.Round(If(r("RechnungsbetragFremd") < 0, 0 - r("RechnungsbetragFremd"), r("RechnungsbetragFremd")), 2)
End If
If r("BelegartenNr") = 70 Then 'RECHNUNG ---> Immer am Anfang
file.WriteLine(genBuchungsZeileSum(r, SummeBuchungen, Geschaeftsjahr, FIRMA))
If r("BelegartenNr") = 70 Or ambargubuchungen And r("BelegartenNr") = 71 Then 'RECHNUNG ---> Immer am Anfang
file.WriteLine(genBuchungsZeileSum(r, SummeBuchungen, Geschaeftsjahr, FIRMA, ambargubuchungen))
End If
Dim dt_BuchungenZeilen As DataTable = getBuchungenZeilen(FIRMA.Firma_ID, r("Rechnungsnummer"), r("Rechnungsdatum"), WdhDateiname)
Dim dt_BuchungenZeilen As DataTable
If Not ambargubuchungen Then
dt_BuchungenZeilen = getBuchungenZeilen(FIRMA.Firma_ID, r("Rechnungsnummer"), r("Rechnungsdatum"), WdhDateiname)
Else
dt_BuchungenZeilen = getBuchungenZeilenAMBAR(FIRMA.Firma_ID, r("Rechnungsnummer"), r("Rechnungsdatum"), WdhDateiname)
End If
If dt_BuchungenZeilen IsNot Nothing AndAlso dt_BuchungenZeilen.Rows.Count > 0 Then
For Each rz In dt_BuchungenZeilen.Rows
file.WriteLine(genBuchungsZeile(rz, SummeBuchungen, Geschaeftsjahr, FIRMA, curDifferenzbetrag)) ' BuchungsZeilen...
file.WriteLine(genBuchungsZeile(rz, SummeBuchungen, Geschaeftsjahr, FIRMA, curDifferenzbetrag, ambargubuchungen)) ' BuchungsZeilen...
Next
End If
If curDifferenzbetrag <> 0 Then 'Differenz --> Ausgelich auf Diff.Konto
file.WriteLine(genBuchungsZeileDiffBetrag(r, SummeBuchungen, Geschaeftsjahr, FIRMA, curDifferenzbetrag))
End If
If r("BelegartenNr") = 71 Then 'GUTSCHRIFT ---> Immer am Schluss
file.WriteLine(genBuchungsZeileSum(r, SummeBuchungen, Geschaeftsjahr, FIRMA))
If r("BelegartenNr") = 71 And Not ambargubuchungen Then 'GUTSCHRIFT ---> Immer am Schluss
file.WriteLine(genBuchungsZeileSum(r, SummeBuchungen, Geschaeftsjahr, FIRMA, ambargubuchungen))
End If
Next
' file.WriteLine(genBuchungenEnd(SummeBuchungen))
bool_DatenVorhanden = True
'Update Filename TrdIn 'NOCH NICHT!!!! -->JETZT DOCH!!!
Dim varDateiname As String = IIf(ambargubuchungen, "AmbDateiname", "TrdinDateiname")
If WdhDateiname = "" Then
SQL.doSQL("update [tblTrdinInvoice] Set TrdinDateiname='" & Now.ToString("ddMMyyyyHHmm") & "' WHERE [Firma_ID] = " & FIRMA.Firma_ID & " AND TrdinDateiname is null ", "FMZOLL")
SQL.doSQL("update [tblTrdinInvoice] Set " & varDateiname & "='" & Now.ToString("ddMMyyyyHHmm") & "' WHERE [Firma_ID] = " & FIRMA.Firma_ID & " AND " & varDateiname & " is null ", "FMZOLL")
Else
SQL.doSQL("update [tblTrdinInvoice] Set TrdinDateiname='" & Now.ToString("ddMMyyyyHHmm") & "' WHERE [Firma_ID] = " & FIRMA.Firma_ID & " AND TrdinDateiname ='" & WdhDateiname & "' ", "FMZOLL")
SQL.doSQL("update [tblTrdinInvoice] Set " & varDateiname & "='" & Now.ToString("ddMMyyyyHHmm") & "' WHERE [Firma_ID] = " & FIRMA.Firma_ID & " AND " & varDateiname & " ='" & WdhDateiname & "' ", "FMZOLL")
End If
file.Close()
@@ -504,20 +512,31 @@ Public Class cSyska_Interface
If IsNumeric(s) Then Return CDbl(s).ToString("N" & Nachkommastellen)
Return s.ToString
End Function
Shared Function getBuchungen(Firma_ID As Integer, Optional WdhDateiname As String = "") As DataTable
Shared Function getBuchungen(Firma_ID As Integer, Optional WdhDateiname As String = "", Optional ambargubuchungen As Boolean = False) As DataTable
Dim where As String = ""
If Not ambargubuchungen Then
where = "WHERE Firma_ID ='" & Firma_ID & "' AND " & If(WdhDateiname = "", " TrdinDateiname Is Null ", " TrdinDateiname ='" & WdhDateiname & "' ") & " "
Else
where = "WHERE Firma_ID ='24' and RechnungsKundenNr = 3013401 and RechnungsUstIdNr = 'U53187000' And BelegartenNr = 71 AND " & If(WdhDateiname = "", " AmbDateiname Is Null ", " AmbDateiname ='" & WdhDateiname & "' ") & " "
End If
Dim kundennr = IIf(Not ambargubuchungen, "min(KundenNrZentrale)", "'725012'") 'fixe Debitorennr für AMBAR - VERAG Buchungen
Dim sqlStr = " SELECT IVO.Rechnungsdatum,IVO.Rechnungsnummer,min(Speditionsbuch) as Speditionsbuch ,min(FilialenNr) as FilialenNr,min(AbfertigungsNr) as AbfertigungsNr,min(UnterNr) as UnterNr,min(Abfertigungsdatum) as Abfertigungsdatum,min(BelegartenNr) as BelegartenNr
,min(KundenNrZentrale) as [KundenNrZentrale],min(RechnungsKundenNr) as RechnungsKundenNr,min(RechnungsLandKz) as RechnungsLandKz,min(RechnungsUstIdKz) as RechnungsUstIdKz,min(RechnungsUstIdNr) as RechnungsUstIdNr
," & kundennr & " as [KundenNrZentrale],min(RechnungsKundenNr) as RechnungsKundenNr,min(RechnungsLandKz) as RechnungsLandKz,min(RechnungsUstIdKz) as RechnungsUstIdKz,min(RechnungsUstIdNr) as RechnungsUstIdNr
,min(Lastschrift+0) as Lastschrift,min(Steuerschlüssel) as Steuerschlüssel,min([Steuersatz %]) as Steuersatz,min(WährungLokal) as WährungLokal,min(SteuerbetragLokal) as SteuerbetragLokal,min(RechnungsbetragLokal) as RechnungsbetragLokal
,min(WährungFremd) as WährungFremd,min(SteuerbetragFremd) as SteuerbetragFremd,min(RechnungsbetragFremd) as RechnungsbetragFremd,min(TrdinDateiname) as TrdinDateiname,min(Abgleich_op_debitor+0) as Abgleich_op_debitor
,min(Nettozahlungsziel) as Nettozahlungsziel,min(Firma_ID) as Firma_ID,min(UStVAn_ID) as UStVAn_ID /*,Leistungsnummer,Leistungsbezeichnung,Steuerpflichtig*/,sum(PROD.SteuerpflichtigerBetragLokal) as SteuerpflichtigerBetragLokal
,sum(PROD.SteuerfreierBetragLokal) as SteuerfreierBetragLokal,sum(PROD.SteuerpflichtigerBetragFremd) as SteuerpflichtigerBetragFremd,sum(PROD.SteuerfreierBetragFremd) as SteuerfreierBetragFremd,min(Belegdaten) as Belegdaten
,min(Sachkonto) as Sachkonto,min(Buchungstext) as Buchungstext,Sum(PROD.[SteuerpflichtigerBetragLokal] + PROD.[SteuerfreierBetragLokal]) As BetragLokal, Sum(PROD.[SteuerpflichtigerBetragFremd]+PROD.[SteuerfreierBetragFremd]) As BetragFremd
FROM VERAG.dbo.tblTrdinInvoice as IVO left JOIN tblTrdinProduct as PROD on IVO.Rechnungsnummer=PROD.Rechnungsnummer
WHERE Firma_ID ='" & Firma_ID & "' AND " & If(WdhDateiname = "", " TrdinDateiname Is Null ", " TrdinDateiname ='" & WdhDateiname & "' ") & "
FROM VERAG.dbo.tblTrdinInvoice as IVO left JOIN tblTrdinProduct as PROD on IVO.Rechnungsnummer=PROD.Rechnungsnummer and IVO.Rechnungsdatum=PROD.Rechnungsdatum
" & where & "
group by Firma_id, IVO.Rechnungsnummer,IVO.rechnungsdatum/*,Leistungsnummer,Leistungsbezeichnung,Steuerpflichtig*/
ORDER BY Rechnungsdatum, Rechnungsnummer "
ORDER BY IVO.Rechnungsdatum, IVO.Rechnungsnummer "
' --and IVO.Rechnungsnummer=19400002
Return SQL.loadDgvBySql(sqlStr, "FMZOLL", 9800)
@@ -562,10 +581,11 @@ Public Class cSyska_Interface
Shared Function getBuchungenZeilen(Firma_ID As Integer, Rechnungsnummer As Integer, Rechnungsdatum As Date, Optional WdhDateiname As String = "") As DataTable
Dim sqlStr = " SELECT Sachkonto,IVO.Rechnungsdatum Rechnungsdatum,IVO.Rechnungsnummer Rechnungsnummer,FilialenNr,AbfertigungsNr,UnterNr,steuerpflichtig,[Steuersatz %] Steuersatz,BelegartenNr,
WährungFremd, WährungLokal,sum(PROD.[SteuerpflichtigerBetragLokal] + PROD.[SteuerfreierBetragLokal])BetragLokal,
sum(PROD.[SteuerpflichtigerBetragFremd]+PROD.[SteuerfreierBetragFremd])BetragFremd ,sum(RechnungsbetragLokal) RechnungsbetragLokal,sum(RechnungsbetragFremd) RechnungsbetragFremd
FROM VERAG.dbo.tblTrdinInvoice as IVO left JOIN tblTrdinProduct as PROD on IVO.Rechnungsnummer=PROD.Rechnungsnummer
FROM VERAG.dbo.tblTrdinInvoice as IVO left JOIN tblTrdinProduct as PROD on IVO.Rechnungsnummer=PROD.Rechnungsnummer and IVO.Rechnungsdatum = PROD.Rechnungsdatum
WHERE Firma_ID ='" & Firma_ID & "' AND IVO.Rechnungsnummer ='" & Rechnungsnummer & "' AND cast(IVO.Rechnungsdatum as date) ='" & Rechnungsdatum.ToShortDateString & "' AND " & If(WdhDateiname = "", " TrdinDateiname Is Null ", " TrdinDateiname ='" & WdhDateiname & "' ") & "
GROUP BY Sachkonto,IVO.Rechnungsdatum,IVO.Rechnungsnummer,FilialenNr,AbfertigungsNr,UnterNr,steuerpflichtig,[Steuersatz %] ,BelegartenNr,WährungFremd,WährungLokal
ORDER BY Rechnungsdatum, Rechnungsnummer "
@@ -574,8 +594,25 @@ Public Class cSyska_Interface
End Function
Shared Function getBuchungenZeilenAMBAR(Firma_ID As Integer, Rechnungsnummer As Integer, Rechnungsdatum As Date, Optional WdhDateiname As String = "") As DataTable
Public Shared Function genBuchungsZeileSum(row As DataRow, ByRef SummeBuchungen As Double, ByRef Geschäftsjahr As Integer, ByRef FIRMA As VERAG_PROG_ALLGEMEIN.cFirmen) As String
Dim sqlStr = " SELECT le.SachkontoEUSteuerfrei as Sachkonto ,IVO.Rechnungsdatum Rechnungsdatum,IVO.Rechnungsnummer Rechnungsnummer,FilialenNr,AbfertigungsNr,UnterNr,PROD.steuerpflichtig,[Steuersatz %] Steuersatz,BelegartenNr,
WährungFremd, WährungLokal,sum(PROD.[SteuerpflichtigerBetragLokal] + PROD.[SteuerfreierBetragLokal])BetragLokal,
sum(PROD.[SteuerpflichtigerBetragFremd]+PROD.[SteuerfreierBetragFremd])BetragFremd ,sum(RechnungsbetragLokal) RechnungsbetragLokal,sum(RechnungsbetragFremd) RechnungsbetragFremd
FROM VERAG.dbo.tblTrdinInvoice as IVO
left JOIN tblTrdinProduct as PROD on IVO.Rechnungsnummer=PROD.Rechnungsnummer and IVO.Rechnungsdatum = PROD.Rechnungsdatum
left join [Leistungen] as le on le.LeistungsNr = PROD.Leistungsnummer
WHERE Firma_ID ='24' AND IVO.Rechnungsnummer ='" & Rechnungsnummer & "' AND cast(IVO.Rechnungsdatum as date) ='" & Rechnungsdatum.ToShortDateString & "' AND " & If(WdhDateiname = "", " AmbDateiname Is Null ", " AmbDateiname ='" & WdhDateiname & "' ") & "
GROUP BY le.SachkontoEUSteuerfrei ,IVO.Rechnungsdatum,IVO.Rechnungsnummer,FilialenNr,AbfertigungsNr,UnterNr,PROD.steuerpflichtig,[Steuersatz %] ,BelegartenNr,WährungFremd,WährungLokal
ORDER BY Rechnungsdatum, Rechnungsnummer "
' --and IVO.Rechnungsnummer=19400002
Return SQL.loadDgvBySql(sqlStr, "FMZOLL", 9800)
End Function
Public Shared Function genBuchungsZeileSum(row As DataRow, ByRef SummeBuchungen As Double, ByRef Geschäftsjahr As Integer, ByRef FIRMA As VERAG_PROG_ALLGEMEIN.cFirmen, Optional ambarGUbuchung As Boolean = False) As String
genBuchungsZeileSum = ""
If row("BelegartenNr") = 70 Then 'RECHNUNG
@@ -615,44 +652,73 @@ Public Class cSyska_Interface
ElseIf row("BelegartenNr") = 71 Then 'GUTSCHRIFT
' Buchungssatz Gutschrift (immer letzte Buchungszeile)
Dim FiBuWährung = ""
Dim FiBuSollkontonummer = "0"
Dim FiBuHabenkontonummer = row("KundenNrZentrale")
Dim FiBuBruttobetrag As Double
If Not ambarGUbuchung Then
' Buchungssatz Gutschrift (immer letzte Buchungszeile)
If row("WährungFremd") Is DBNull.Value Then
FiBuWährung = row("WährungLokal")
FiBuBruttobetrag = (0 - CDbl(row("RechnungsbetragLokal")))
If row("WährungFremd") Is DBNull.Value Then
FiBuWährung = row("WährungLokal")
FiBuBruttobetrag = (0 - CDbl(row("RechnungsbetragLokal")))
Else
FiBuWährung = row("WährungFremd")
FiBuBruttobetrag = (0 - CDbl(row("RechnungsbetragFremd")))
End If
Dim FiBuEigenbruttobetrag = 0 - CDbl(row("RechnungsbetragLokal"))
genBuchungsZeileSum = "L" & vbTab
genBuchungsZeileSum &= CDate(row("Rechnungsdatum")).ToString("dd.MM.yyyy") & vbTab
genBuchungsZeileSum &= FormatStringSYS(row("Rechnungsnummer")) & vbTab
genBuchungsZeileSum &= FiBuSollkontonummer & vbTab
genBuchungsZeileSum &= FiBuHabenkontonummer & vbTab
genBuchungsZeileSum &= row("FilialenNr") & "/" & row("AbfertigungsNr") & "/" & CDbl(row("UnterNr")).ToString("00") & vbTab
genBuchungsZeileSum &= Format(CDbl(FiBuBruttobetrag), fmt) & vbTab
genBuchungsZeileSum &= "" & vbTab 'FiBuSteuersatz
genBuchungsZeileSum &= "" & vbTab 'FiBuSteuerbetrag
genBuchungsZeileSum &= FiBuWährung & vbTab
genBuchungsZeileSum &= Format(CDbl(FiBuEigenbruttobetrag), fmt) & vbTab
Else
FiBuWährung = row("WährungFremd")
FiBuBruttobetrag = (0 - CDbl(row("RechnungsbetragFremd")))
If row("WährungFremd") Is DBNull.Value Then
FiBuWährung = row("WährungLokal")
FiBuBruttobetrag = (0 - CDbl(row("RechnungsbetragLokal")))
Else
FiBuWährung = row("WährungFremd")
FiBuBruttobetrag = (0 - CDbl(row("RechnungsbetragFremd")))
End If
Dim FiBuEigenbruttobetrag = 0 - CDbl(row("RechnungsbetragLokal"))
genBuchungsZeileSum = "L" & vbTab
genBuchungsZeileSum &= CDate(row("Rechnungsdatum")).ToString("dd.MM.yyyy") & vbTab
genBuchungsZeileSum &= FormatStringSYS(row("Rechnungsnummer")) & vbTab
genBuchungsZeileSum &= FiBuHabenkontonummer & vbTab
genBuchungsZeileSum &= FiBuSollkontonummer & vbTab
genBuchungsZeileSum &= row("FilialenNr") & "/" & row("AbfertigungsNr") & "/" & CDbl(row("UnterNr")).ToString("00") & vbTab
genBuchungsZeileSum &= Format(CDbl(FiBuBruttobetrag), fmt) & vbTab
genBuchungsZeileSum &= "" & vbTab 'FiBuSteuersatz
genBuchungsZeileSum &= "" & vbTab 'FiBuSteuerbetrag
genBuchungsZeileSum &= FiBuWährung & vbTab
genBuchungsZeileSum &= Format(CDbl(FiBuEigenbruttobetrag), fmt) & vbTab
End If
Dim FiBuEigenbruttobetrag = 0 - CDbl(row("RechnungsbetragLokal"))
genBuchungsZeileSum = "L" & vbTab
genBuchungsZeileSum &= CDate(row("Rechnungsdatum")).ToString("dd.MM.yyyy") & vbTab
genBuchungsZeileSum &= FormatStringSYS(row("Rechnungsnummer")) & vbTab
genBuchungsZeileSum &= FiBuSollkontonummer & vbTab
genBuchungsZeileSum &= FiBuHabenkontonummer & vbTab
genBuchungsZeileSum &= row("FilialenNr") & "/" & row("AbfertigungsNr") & "/" & CDbl(row("UnterNr")).ToString("00") & vbTab
genBuchungsZeileSum &= Format(CDbl(FiBuBruttobetrag), fmt) & vbTab
genBuchungsZeileSum &= "" & vbTab 'FiBuSteuersatz
genBuchungsZeileSum &= "" & vbTab 'FiBuSteuerbetrag
genBuchungsZeileSum &= FiBuWährung & vbTab
genBuchungsZeileSum &= Format(CDbl(FiBuEigenbruttobetrag), fmt) & vbTab
End If
Return genBuchungsZeileSum
End Function
Public Shared Function genBuchungsZeile(row As DataRow, ByRef SummeBuchungen As Double, ByRef Geschäftsjahr As Integer, ByRef FIRMA As VERAG_PROG_ALLGEMEIN.cFirmen, ByRef curDifferenzbetrag As Double) As String
Public Shared Function genBuchungsZeile(row As DataRow, ByRef SummeBuchungen As Double, ByRef Geschäftsjahr As Integer, ByRef FIRMA As VERAG_PROG_ALLGEMEIN.cFirmen, ByRef curDifferenzbetrag As Double, Optional ambargubuchungen As Boolean = False) As String
Dim curSteuerbetrag As Double
Dim curNettobetrag As Double
@@ -677,13 +743,25 @@ Public Class cSyska_Interface
curNettobetrag = row("BetragFremd")
End If
Case 71 'Gutschrift
FiBuSollkontonummer = If(row("Sachkonto") IsNot DBNull.Value, row("Sachkonto"), " ")
FiBuHabenkontonummer = "0"
If row("WährungFremd") Is DBNull.Value Then
curNettobetrag = 0 - row("BetragLokal")
If Not ambargubuchungen Then
FiBuSollkontonummer = If(row("Sachkonto") IsNot DBNull.Value, row("Sachkonto"), " ")
FiBuHabenkontonummer = "0"
If row("WährungFremd") Is DBNull.Value Then
curNettobetrag = 0 - row("BetragLokal")
Else
curNettobetrag = 0 - row("BetragFremd")
End If
Else
curNettobetrag = 0 - row("BetragFremd")
FiBuSollkontonummer = "0"
FiBuHabenkontonummer = If(row("Sachkonto") IsNot DBNull.Value, row("Sachkonto"), " ")
If row("WährungFremd") Is DBNull.Value Then
curNettobetrag = 0 - row("BetragLokal")
Else
curNettobetrag = 0 - row("BetragFremd")
End If
End If
End Select
If CBool(row("steuerpflichtig")) Then
@@ -710,7 +788,7 @@ Public Class cSyska_Interface
Else
FiBuWährung = row("WährungFremd")
FiBuEigenbruttobetrag = CDbl(row("RechnungsbetragFremd")) 'Bruttobetrag
End If
End If
genBuchungsZeile = "L" & vbTab
genBuchungsZeile &= CDate(row("Rechnungsdatum")).ToString("dd.MM.yyyy") & vbTab