This commit is contained in:
2021-10-27 11:19:22 +02:00
parent 13f28aa1d8
commit f4813a04a9
76 changed files with 9922 additions and 2253 deletions

View File

@@ -2,11 +2,12 @@
Public Class cSyska_Interface
Shared SQL As New VERAG_PROG_ALLGEMEIN.SQL
Shared fmt = "#######0.00"
'STAMMDATEN
Shared Function getStammdaten(FiBuSchnittstelleNr) As DataTable
Dim sqlStr = " Select KundenNrZentrale As [Konto-Nr],isnull([Name 1],'') as Name,isnull([Name 2],'') as [Name2],(isnull(UstIdKz,'') + isnull(UstIdNr,'')) as [UST-Id-Nummer],isnull(UstIdGeprüft,'') as [UID-Datum],[Strasse],Adressen.landkz ,PLZ,LTRIM([Ort]) as Ort,isnull(BLZ,'') as [BLZ],isnull(KTO,'') as [KTO], CASE WHEN CAST(Zahlungsziel as VARCHAR(3)) ='0' THEN '' ELSE CAST(Zahlungsziel as VARCHAR(3)) END as [ZZiel],/*'' as [SPz],'' as [STg],*/isnull([E-Mail],'') as [mail],'' AS Info1,'' AS Inf2, Zahlungsziel2, Zahlungsziel3,[E-Mail],[Telefon] ,Telefax "
sqlStr &= " ,Ordnungsbegriff ,Kunden.Währungscode,Ansprechpartner,Lastschrift,Kunden.[Eingegeben am] as EingegebenAm"
sqlStr &= " ,Ordnungsbegriff ,Kunden.Währungscode,Anrede,Ansprechpartner,Lastschrift,Kunden.[Eingegeben am] as EingegebenAm"
sqlStr &= " FROM Adressen INNER JOIN Kunden ON Kundennr=AdressenNr "
sqlStr &= " LEFT JOIN tblKundenErweitert ON KundenNr=kde_KundenNr "
sqlStr &= " LEFT JOIN [Länderverzeichnis für die Außenhandelsstatistik] as St ON St.LandKz=Adressen.LandKz "
@@ -16,6 +17,38 @@ Public Class cSyska_Interface
Return SQL.loadDgvBySql(sqlStr, "FMZOLL")
End Function
' Shared Function getStammdatenTEST(FiBuSchnittstelleNr) As DataTable
' Dim sqlStr = " Select KundenNrZentrale As [Konto-Nr],isnull([Name 1],'') as Name,isnull([Name 2],'') as [Name2],(isnull(UstIdKz,'') + isnull(UstIdNr,'')) as [UST-Id-Nummer],isnull(UstIdGeprüft,'') as [UID-Datum],[Strasse],Adressen.landkz ,PLZ,LTRIM([Ort]) as Ort,isnull(BLZ,'') as [BLZ],isnull(KTO,'') as [KTO], CASE WHEN CAST(Zahlungsziel as VARCHAR(3)) ='0' THEN '' ELSE CAST(Zahlungsziel as VARCHAR(3)) END as [ZZiel],/*'' as [SPz],'' as [STg],*/isnull([E-Mail],'') as [mail],'' AS Info1,'' AS Inf2, Zahlungsziel2, Zahlungsziel3,[E-Mail],[Telefon] ,Telefax "
' sqlStr &= " ,Ordnungsbegriff ,Kunden.Währungscode,Anrede,Ansprechpartner,Lastschrift,Kunden.[Eingegeben am] as EingegebenAm"
' sqlStr &= " FROM Adressen INNER JOIN Kunden ON Kundennr=AdressenNr "
' sqlStr &= " LEFT JOIN tblKundenErweitert ON KundenNr=kde_KundenNr "
' sqlStr &= " LEFT JOIN [Länderverzeichnis für die Außenhandelsstatistik] as St ON St.LandKz=Adressen.LandKz "
' sqlStr &= " LEFT JOIN Währungstabelle ON St.LandNr = Währungstabelle.Währungsschlüssel "
' 'sqlStr &= " WHERE FiBuSchnittstelle=1 AND Auswahl='A' AND FiBuSchnittstelleNr='" & FiBuSchnittstelleNr & "' "
' sqlStr &= " WHERE KundenNrZentrale IN (750750,
'765729,
'765730,
'765731,
'765732,
'765733,
'765734,
'765735,
'765736,
'765737,
'765738,
'765739,
'765740,
'765741,
'765742,
'765743,
'765744,
'765745,
'765746
') "
' sqlStr &= " Order by [Konto-Nr] "
' Return SQL.loadDgvBySql(sqlStr, "FMZOLL")
' End Function
Shared Function updateFibu(FiBuSchnittstelleNr) As DataTable
Dim sqlStr = " UPDATE Kunden "
sqlStr &= " SET FiBuSchnittstelle = '0' "
@@ -47,7 +80,9 @@ Public Class cSyska_Interface
Dim cleanStringName As String = Regex.Replace(row("Name"), "[^A-Za-z0-9\-/]", "").Replace(" ", "").ToUpper
Dim Lastschrift = CBool(row("Lastschrift"))
'If FormatStringSYS(row("Name2"), 50) <> "" Then
' MsgBox(FormatStringSYS(row("Name2"), 50) & vbTab)
'End If
getPersonenKto = ""
getPersonenKto &= row("Konto-Nr") & vbTab
getPersonenKto &= FormatStringSYS(cleanStringName, 2) & row("Konto-Nr") & vbTab
@@ -58,12 +93,12 @@ Public Class cSyska_Interface
getPersonenKto &= FormatStringSYS(row("Ort"), 50) & vbTab
getPersonenKto &= cProgramFunctions.getISO2Land(FormatStringSYS(LandKz, 5)) & vbTab
getPersonenKto &= CDate(row("EingegebenAm")).ToShortDateString & vbTab 'Eröffnungsdatum
getPersonenKto &= vbTab
getPersonenKto &= Gegenkontonummer & vbTab
getPersonenKto &= vbTab 'Bankname
getPersonenKto &= If(Lastschrift, row("BLZ"), "") & vbTab
getPersonenKto &= If(Lastschrift, row("KTO"), "") & vbTab
getPersonenKto &= "00" & vbTab 'Skontotage
getPersonenKto &= row("ZZiel").ToString("00") & vbTab
getPersonenKto &= If(row("ZZiel") <> String.Empty, CDbl(row("ZZiel")).ToString("00"), "") & vbTab
getPersonenKto &= "00,00" & vbTab 'Skonto
getPersonenKto &= "01" & vbTab 'Mahnkennung
getPersonenKto &= FormatStringSYS(row("UST-Id-Nummer"), 50) & vbTab
@@ -72,13 +107,13 @@ Public Class cSyska_Interface
getPersonenKto &= vbTab 'Forderungsonto
getPersonenKto &= vbTab
getPersonenKto &= Gegenkontonummer2 & vbTab 'Platzhalter??
getPersonenKto &= FormatStringSYS(row("Ansprechpartner"), 100) & vbTab
getPersonenKto &= FormatStringSYS(row("Anrede") & " " & row("Ansprechpartner"), 100) & vbTab
getPersonenKto &= vbTab
getPersonenKto &= FormatStringSYS(row("Telefon")) & vbTab
getPersonenKto &= FormatStringSYS(row("Telefax")) & vbTab
getPersonenKto &= FormatStringSYS(row("E-Mail")) & vbTab
getPersonenKto &= vbTab
getPersonenKto &= vbTab
' getPersonenKto &= vbTab
End Function
@@ -144,7 +179,7 @@ Public Class cSyska_Interface
End If
'NOCH NICHT!!!
' updateFibu(FiBuSchnittstelleNr) ' UPDATE FiBuSchnittstelle --> 0
updateFibu(FiBuSchnittstelleNr) ' UPDATE FiBuSchnittstelle --> 0
End If
End If
@@ -152,14 +187,81 @@ Public Class cSyska_Interface
Catch ex As Exception
MsgBox(ex.Message & ex.StackTrace)
VERAG_PROG_ALLGEMEIN.cErrorHandler.ERR(ex.Message, ex.StackTrace, System.Reflection.MethodBase.GetCurrentMethod.Name, VERAG_PROG_ALLGEMEIN.ERROR_OP.MAIL)
End Try
Return False
End Function
'Public Shared Function genDatensatz_StammdatenTEST(FiBuSchnittstelleNr As Integer, Optional OpenFile As Boolean = False) As Boolean ' Optional OpenFile = False, Optional boolKunden = True, Optional boolBuchungen = True ) As Boolean
' Try
Public Shared Function genDatensatz_ALL(Optional OpenFile As Boolean = False, Optional boolKunden As Boolean = True, Optional boolBuchungen As Boolean = True) As Boolean
' Dim bool_DatenVorhanden As Boolean = False
' Dim Geschaeftsjahr = Now.Year 'If(Now.Month = 1, Now.Year - 1, Now.Year) --> Bei IMEX ist das GJ=Wirtschaftsjahr
' Dim FIRMA As New VERAG_PROG_ALLGEMEIN.cFirmen(FiBuSchnittstelleNr)
' 'DATEIPFAD für Stammdaten
' '-------------------------------------------------------------------------------------------
' Dim pathArchivKD = "\\datenarchiv\Datenarchiv\DATENARCHIV_TESTSYSTEM\SYSKA\" & FIRMA.Firma_ID & "\" & Now.Year & "\" & Now.Date.ToShortDateString & "\Archiv\"
' Dim pathKD = "\\datenarchiv\Datenarchiv\DATENARCHIV_TESTSYSTEM\SYSKA\" & FIRMA.Firma_ID & "\" & Now.Year & "\" & Now.Date.ToShortDateString & "\"
' If Not IO.Directory.Exists(pathKD) Then IO.Directory.CreateDirectory(pathKD)
' If Not IO.Directory.Exists(pathArchivKD) Then IO.Directory.CreateDirectory(pathArchivKD)
' '-------------------------------------------------------------------------------------------
' If True Then 'boolKunden Then
' '----------------- STAMMDATEN -----------------
' Dim dt_Stamm As DataTable = getStammdatenTEST(FiBuSchnittstelleNr)
' If dt_Stamm IsNot Nothing AndAlso dt_Stamm.Rows.Count > 0 Then
' Dim fileKD As System.IO.StreamWriter
' Dim DateinameKD = "AVISO_DEBI_" & Now.ToString("ddMMyyyy_HHmm") & ".txt"
' fileKD = My.Computer.FileSystem.OpenTextFileWriter(pathKD & DateinameKD, True, System.Text.Encoding.GetEncoding("iso-8859-15"))
' 'fileKD.WriteLine(genStammdatenBeginn())
' initKDNr(dt_Stamm)
' For Each r In dt_Stamm.Rows
' fileKD.WriteLine(getPersonenKto(r))
' Next
' bool_DatenVorhanden = True
' fileKD.Close()
' 'In Archiv sichern
' If pathArchivKD <> "" Then
' If Not IO.Directory.Exists(pathArchivKD) Then IO.Directory.CreateDirectory(pathArchivKD)
' If pathKD <> pathArchivKD Then IO.File.Copy(pathKD & DateinameKD, pathArchivKD & DateinameKD)
' End If
' If bool_DatenVorhanden Then
' If OpenFile Then Process.Start(pathKD & DateinameKD)
' Else
' IO.File.Delete(pathKD & DateinameKD)
' End If
' 'NOCH NICHT!!!
' ' updateFibu(FiBuSchnittstelleNr) ' UPDATE FiBuSchnittstelle --> 0
' End If
' End If
' Catch ex As Exception
' VERAG_PROG_ALLGEMEIN.cErrorHandler.ERR(ex.Message, ex.StackTrace, System.Reflection.MethodBase.GetCurrentMethod.Name, VERAG_PROG_ALLGEMEIN.ERROR_OP.MAIL)
' End Try
' Return False
'End Function
Public Shared Function genDatensatz_ALL(Optional OpenFile As Boolean = False, Optional boolKunden As Boolean = True, Optional boolBuchungen As Boolean = True, Optional WdhDateiname As String = "") As Boolean
genDatensatz_ALL = True
If boolKunden Then
' If Not genDatensatz_Stammdaten(OpenFile) Then genDatensatz_ALL = False
@@ -170,17 +272,17 @@ Public Class cSyska_Interface
If Not genDatensatz_Stammdaten(19, OpenFile) Then genDatensatz_ALL = False
End If
If boolBuchungen Then
If Not genDatensatz_Buchungen(1, OpenFile) Then genDatensatz_ALL = False
If Not genDatensatz_Buchungen(7, OpenFile) Then genDatensatz_ALL = False
If Not genDatensatz_Buchungen(11, OpenFile) Then genDatensatz_ALL = False
If Not genDatensatz_Buchungen(17, OpenFile) Then genDatensatz_ALL = False
If Not genDatensatz_Buchungen(19, OpenFile) Then genDatensatz_ALL = False
If Not genDatensatz_Buchungen(1, OpenFile, WdhDateiname) Then genDatensatz_ALL = False
If Not genDatensatz_Buchungen(7, OpenFile, WdhDateiname) Then genDatensatz_ALL = False
If Not genDatensatz_Buchungen(11, OpenFile, WdhDateiname) Then genDatensatz_ALL = False
If Not genDatensatz_Buchungen(17, OpenFile, WdhDateiname) Then genDatensatz_ALL = False
If Not genDatensatz_Buchungen(19, OpenFile, WdhDateiname) Then genDatensatz_ALL = False
' If Not genDatensatzCSV_Buchungen(XX, OpenFile) Then genDatensatzCSV_ALL = False
' If Not genDatensatzCSV_Buchungen(XX, OpenFile) Then genDatensatzCSV_ALL = False
End If
End Function
Public Shared Function genDatensatz_Buchungen(ByRef Firma_ID As Integer, Optional OpenFile As Boolean = False) 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 = "") As Boolean ' Optional OpenFile = False, Optional boolKunden = True, Optional boolBuchungen = True ) As Boolean
Try
Dim FIRMA As New VERAG_PROG_ALLGEMEIN.cFirmen(Firma_ID)
@@ -210,9 +312,11 @@ Public Class cSyska_Interface
'----------------- Buchungssätze -----------------
If True Then 'boolBuchungen 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)
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)
' 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"
@@ -234,7 +338,7 @@ Public Class cSyska_Interface
If r("BelegartenNr") = 70 Then 'RECHNUNG ---> Immer am Anfang
file.WriteLine(genBuchungsZeileSum(r, SummeBuchungen, Geschaeftsjahr, FIRMA))
End If
Dim dt_BuchungenZeilen As DataTable = getBuchungenZeilen(FIRMA.Firma_ID, r("Rechnungsnummer"), r("Rechnungsdatum"))
Dim dt_BuchungenZeilen As DataTable = getBuchungenZeilen(FIRMA.Firma_ID, r("Rechnungsnummer"), r("Rechnungsdatum"), WdhDateiname)
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...
@@ -250,8 +354,12 @@ Public Class cSyska_Interface
' file.WriteLine(genBuchungenEnd(SummeBuchungen))
bool_DatenVorhanden = True
'Update Filename TrdIn 'NOCH NICHT!!!!
' SQL.doSQL("update [tblTrdinInvoice] Set TrdinDateiname='" & Now.ToString("ddMMyyyyHHmm") & "' WHERE [Firma_ID] = " & FIRMA.Firma_ID & " AND TrdinDateiname is null ", "FMZOLL")
'Update Filename TrdIn 'NOCH NICHT!!!! -->JETZT DOCH!!!
If WdhDateiname = "" Then
SQL.doSQL("update [tblTrdinInvoice] Set TrdinDateiname='" & Now.ToString("ddMMyyyyHHmm") & "' WHERE [Firma_ID] = " & FIRMA.Firma_ID & " AND TrdinDateiname is null ", "FMZOLL")
Else
SQL.doSQL("update [tblTrdinInvoice] Set TrdinDateiname='" & Now.ToString("ddMMyyyyHHmm") & "' WHERE [Firma_ID] = " & FIRMA.Firma_ID & " AND TrdinDateiname ='" & WdhDateiname & "' ", "FMZOLL")
End If
file.Close()
@@ -268,7 +376,7 @@ Public Class cSyska_Interface
End If
Catch ex As Exception
MsgBox(ex.Message & ex.StackTrace)
VERAG_PROG_ALLGEMEIN.cErrorHandler.ERR(ex.Message, ex.StackTrace, System.Reflection.MethodBase.GetCurrentMethod.Name, VERAG_PROG_ALLGEMEIN.ERROR_OP.MAIL)
End Try
End If
@@ -278,15 +386,109 @@ Public Class cSyska_Interface
Catch ex As Exception
MsgBox(ex.Message & ex.StackTrace)
VERAG_PROG_ALLGEMEIN.cErrorHandler.ERR(ex.Message, ex.StackTrace, System.Reflection.MethodBase.GetCurrentMethod.Name, VERAG_PROG_ALLGEMEIN.ERROR_OP.MAIL)
End Try
Return False
End Function
'Public Shared Function genDatensatz_BuchungenTEST(ByRef Firma_ID As Integer, Optional OpenFile 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)
' Dim bool_DatenVorhanden As Boolean = False
' Dim Geschaeftsjahr = Now.Year 'If(Now.Month = 1, Now.Year - 1, Now.Year) --> Bei IMEX ist das GJ=Wirtschaftsjahr
' 'DATEIPFAD für Buchungsdaten
' '-------------------------------------------------------------------------------------------
' Dim pathArchiv = "\\datenarchiv\Datenarchiv\DATENARCHIV_TESTSYSTEM\SYSKA\" & FIRMA.Firma_ID & "\" & Now.Year & "\" & Now.Date.ToShortDateString & "\Archiv\"
' Dim path = "\\datenarchiv\Datenarchiv\DATENARCHIV_TESTSYSTEM\SYSKA\" & FIRMA.Firma_ID & "\" & Now.Year & "\" & Now.Date.ToShortDateString & "\"
' If Not IO.Directory.Exists(path) Then IO.Directory.CreateDirectory(path)
' If Not IO.Directory.Exists(pathArchiv) Then IO.Directory.CreateDirectory(pathArchiv)
' '-------------------------------------------------------------------------------------------
' '----------------- Buchungssätze -----------------
' If True Then 'boolBuchungen 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 = getBuchungenTEST(FIRMA.Firma_ID)
' 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"
' file = My.Computer.FileSystem.OpenTextFileWriter(path & Dateiname, True, System.Text.Encoding.GetEncoding("iso-8859-15"))
' ' initKDNr(dt_Buchungen)
' Dim SummeBuchungen As Double = 0
' 'file.WriteLine(genBuchungenBeginn()) 'not needed
' For Each r In dt_Buchungen.Rows
' Dim curDifferenzbetrag As Double = 0
' If r("WährungFremd") Is DBNull.Value Then
' curDifferenzbetrag = Math.Round(If(r("RechnungsbetragLokal") < 0, 0 - r("RechnungsbetragLokal"), r("RechnungsbetragLokal")), 2)
' Else
' 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))
' End If
' Dim dt_BuchungenZeilen As DataTable = getBuchungenZeilenTEST(FIRMA.Firma_ID, r("Rechnungsnummer"), r("Rechnungsdatum"))
' 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...
' 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))
' End If
' Next
' ' file.WriteLine(genBuchungenEnd(SummeBuchungen))
' bool_DatenVorhanden = True
' 'Update Filename TrdIn 'NOCH NICHT!!!!
' ' SQL.doSQL("update [tblTrdinInvoice] Set TrdinDateiname='" & Now.ToString("ddMMyyyyHHmm") & "' WHERE [Firma_ID] = " & FIRMA.Firma_ID & " AND TrdinDateiname is null ", "FMZOLL")
' file.Close()
' 'In Archiv sichern
' If pathArchiv <> "" Then
' If Not IO.Directory.Exists(pathArchiv) Then IO.Directory.CreateDirectory(pathArchiv)
' If path <> pathArchiv Then IO.File.Copy(path & Dateiname, pathArchiv & Dateiname)
' End If
' If bool_DatenVorhanden Then
' If OpenFile Then Process.Start(path & Dateiname)
' Else
' IO.File.Delete(path & Dateiname)
' End If
' Catch ex As Exception
' VERAG_PROG_ALLGEMEIN.cErrorHandler.ERR(ex.Message, ex.StackTrace, System.Reflection.MethodBase.GetCurrentMethod.Name, VERAG_PROG_ALLGEMEIN.ERROR_OP.MAIL)
' End Try
' End If
' End If
' '----------------------------------
' Catch ex As Exception
' VERAG_PROG_ALLGEMEIN.cErrorHandler.ERR(ex.Message, ex.StackTrace, System.Reflection.MethodBase.GetCurrentMethod.Name, VERAG_PROG_ALLGEMEIN.ERROR_OP.MAIL)
' End Try
' Return False
'End Function
Shared Function FormatStringSYS(s As Object, Optional length As Integer = -1, Optional defaultValue As String = "") As String
If s Is Nothing Then Return defaultValue
If s Is DBNull.Value Then Return defaultValue
FormatStringSYS = s.ToString.Replace(";", ",")
FormatStringSYS = s.ToString.Replace(";", ",").Trim
'FormatStringSYS = s.ToString.Replace(",", "")
'FormatStringSYS = s.ToString.Replace("""", "\22")
If length > 0 Then
@@ -300,40 +502,73 @@ 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) As DataTable
Shared Function getBuchungen(Firma_ID As Integer, Optional WdhDateiname As String = "") As DataTable
Dim sqlStr = " SELECT TOP (1000) 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
,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
,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 TrdinDateiname Is Null
group by Firma_id, IVO.Rechnungsnummer,IVO.rechnungsdatum/*,Leistungsnummer,Leistungsbezeichnung*/,Steuerpflichtig
WHERE Firma_ID ='" & Firma_ID & "' AND " & If(WdhDateiname = "", " TrdinDateiname Is Null ", " TrdinDateiname ='" & WdhDateiname & "' ") & "
group by Firma_id, IVO.Rechnungsnummer,IVO.rechnungsdatum/*,Leistungsnummer,Leistungsbezeichnung,Steuerpflichtig*/
ORDER BY Rechnungsdatum, Rechnungsnummer "
' --and IVO.Rechnungsnummer=19400002
Return SQL.loadDgvBySql(sqlStr, "FMZOLL")
Return SQL.loadDgvBySql(sqlStr, "FMZOLL", 2400)
End Function
Shared Function getBuchungenZeilen(Firma_ID As Integer, Rechnungsnummer As Integer, Rechnungsdatum As Date) As DataTable
'Shared Function getBuchungenTEST(Firma_ID As Integer) As DataTable
Dim sqlStr = " SELECT TOP (1000) IVO.Rechnungsdatum,IVO.Rechnungsnummer, Speditionsbuch ,FilialenNr,AbfertigungsNr,UnterNr, Abfertigungsdatum, BelegartenNr
, [KundenNrZentrale], RechnungsKundenNr,RechnungsLandKz, RechnungsUstIdKz, RechnungsUstIdNr
, Lastschrift, Steuerschlüssel,[Steuersatz %] as Steuersatz,WährungLokal, SteuerbetragLokal, RechnungsbetragLokal
,WährungFremd,SteuerbetragFremd,RechnungsbetragFremd,TrdinDateiname,Abgleich_op_debitor
, Nettozahlungsziel, Firma_ID, UStVAn_ID,Leistungsnummer,Leistungsbezeichnung,Steuerpflichtig,PROD.SteuerpflichtigerBetragLokal as SteuerpflichtigerBetragLokal
,PROD.SteuerfreierBetragLokal as SteuerfreierBetragLokal,PROD.SteuerpflichtigerBetragFremd as SteuerpflichtigerBetragFremd,PROD.SteuerfreierBetragFremd as SteuerfreierBetragFremd,Belegdaten
,Sachkonto,Buchungstext, (PROD.[SteuerpflichtigerBetragLokal] + PROD.[SteuerfreierBetragLokal]) As BetragLokal, (PROD.[SteuerpflichtigerBetragFremd]+PROD.[SteuerfreierBetragFremd]) As BetragFremd
' Dim sqlStr = " SELECT TOP (1000) 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
' ,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 TrdinDateiname ='211005010148'
' group by Firma_id, IVO.Rechnungsnummer,IVO.rechnungsdatum/*,Leistungsnummer,Leistungsbezeichnung*/,Steuerpflichtig
' ORDER BY Rechnungsdatum, Rechnungsnummer "
' ' --and IVO.Rechnungsnummer=19400002
' Return SQL.loadDgvBySql(sqlStr, "FMZOLL")
'End Function
'Shared Function getBuchungenZeilen(Firma_ID As Integer, Rechnungsnummer As Integer, Rechnungsdatum As Date) As DataTable
' Dim sqlStr = " SELECT TOP (1000) IVO.Rechnungsdatum,IVO.Rechnungsnummer, Speditionsbuch ,FilialenNr,AbfertigungsNr,UnterNr, Abfertigungsdatum, BelegartenNr
' , [KundenNrZentrale], RechnungsKundenNr,RechnungsLandKz, RechnungsUstIdKz, RechnungsUstIdNr
' , Lastschrift, Steuerschlüssel,[Steuersatz %] as Steuersatz,WährungLokal, SteuerbetragLokal, RechnungsbetragLokal
' ,WährungFremd,SteuerbetragFremd,RechnungsbetragFremd,TrdinDateiname,Abgleich_op_debitor
' , Nettozahlungsziel, Firma_ID, UStVAn_ID,Leistungsnummer,Leistungsbezeichnung,Steuerpflichtig,PROD.SteuerpflichtigerBetragLokal as SteuerpflichtigerBetragLokal
' ,PROD.SteuerfreierBetragLokal as SteuerfreierBetragLokal,PROD.SteuerpflichtigerBetragFremd as SteuerpflichtigerBetragFremd,PROD.SteuerfreierBetragFremd as SteuerfreierBetragFremd,Belegdaten
' ,Sachkonto,Buchungstext, (PROD.[SteuerpflichtigerBetragLokal] + PROD.[SteuerfreierBetragLokal]) As BetragLokal, (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 IVO.Rechnungsnummer ='" & Rechnungsnummer & "' AND cast(IVO.Rechnungsdatum as date) ='" & Rechnungsdatum.ToShortDateString & "' AND TrdinDateiname Is Null
' ORDER BY Rechnungsdatum, Rechnungsnummer "
' ' --and IVO.Rechnungsnummer=19400002
' Return SQL.loadDgvBySql(sqlStr, "FMZOLL")
'End Function
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
WHERE Firma_ID ='" & Firma_ID & "' AND IVO.Rechnungsnummer ='" & Rechnungsnummer & "' AND cast(IVO.Rechnungsdatum as date) ='" & Rechnungsdatum.ToShortDateString & "' AND TrdinDateiname Is Null
ORDER BY Rechnungsdatum, Rechnungsnummer "
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 "
' --and IVO.Rechnungsnummer=19400002
Return SQL.loadDgvBySql(sqlStr, "FMZOLL")
Return SQL.loadDgvBySql(sqlStr, "FMZOLL", 2400)
End Function
@@ -368,13 +603,13 @@ Public Class cSyska_Interface
genBuchungsZeileSum &= FiBuSollkontonummer & vbTab
genBuchungsZeileSum &= FiBuHabenkontonummer & vbTab
genBuchungsZeileSum &= row("FilialenNr") & "/" & row("AbfertigungsNr") & "/" & row("UnterNr").ToString("00") & vbTab
genBuchungsZeileSum &= row("FilialenNr") & "/" & row("AbfertigungsNr") & "/" & CDbl(row("UnterNr")).ToString("00") & vbTab
genBuchungsZeileSum &= CDbl(Bruttobetrag).ToString("N2") & vbTab
genBuchungsZeileSum &= Format(CDbl(Bruttobetrag), fmt) & vbTab
genBuchungsZeileSum &= "" & vbTab 'FiBuSteuersatz
genBuchungsZeileSum &= "" & vbTab 'FiBuSteuerbetrag
genBuchungsZeileSum &= FiBuWährung & vbTab
genBuchungsZeileSum &= CDbl(FiBuEigenbruttobetrag).ToString("N2") & vbTab
genBuchungsZeileSum &= Format(CDbl(FiBuEigenbruttobetrag), fmt) & vbTab
ElseIf row("BelegartenNr") = 71 Then 'GUTSCHRIFT
@@ -402,13 +637,13 @@ Public Class cSyska_Interface
genBuchungsZeileSum &= FiBuSollkontonummer & vbTab
genBuchungsZeileSum &= FiBuHabenkontonummer & vbTab
genBuchungsZeileSum &= row("FilialenNr") & "/" & row("AbfertigungsNr") & "/" & row("UnterNr").ToString("00") & vbTab
genBuchungsZeileSum &= row("FilialenNr") & "/" & row("AbfertigungsNr") & "/" & CDbl(row("UnterNr")).ToString("00") & vbTab
genBuchungsZeileSum &= CDbl(FiBuBruttobetrag).ToString("N2") & vbTab
genBuchungsZeileSum &= Format(CDbl(FiBuBruttobetrag), fmt) & vbTab
genBuchungsZeileSum &= "" & vbTab 'FiBuSteuersatz
genBuchungsZeileSum &= "" & vbTab 'FiBuSteuerbetrag
genBuchungsZeileSum &= FiBuWährung & vbTab
genBuchungsZeileSum &= CDbl(FiBuEigenbruttobetrag).ToString("N2") & vbTab
genBuchungsZeileSum &= Format(CDbl(FiBuEigenbruttobetrag), fmt) & vbTab
End If
@@ -481,13 +716,13 @@ Public Class cSyska_Interface
genBuchungsZeile &= FiBuSollkontonummer & vbTab
genBuchungsZeile &= FiBuHabenkontonummer & vbTab
genBuchungsZeile &= row("FilialenNr") & "/" & row("AbfertigungsNr") & "/" & row("UnterNr").ToString("00") & vbTab
genBuchungsZeile &= row("FilialenNr") & "/" & row("AbfertigungsNr") & "/" & CDbl(row("UnterNr")).ToString("00") & vbTab
genBuchungsZeile &= FiBuBruttobetrag & vbTab
genBuchungsZeile &= FiBuSteuersatz.ToString("N2") & vbTab 'FiBuSteuersatz
genBuchungsZeile &= Format(CDbl(FiBuBruttobetrag), fmt) & vbTab
genBuchungsZeile &= Format(CDbl(FiBuSteuersatz), fmt) & vbTab 'FiBuSteuersatz
genBuchungsZeile &= FormatStringDbl(FiBuSteuerbetrag) & vbTab 'FiBuSteuerbetrag
genBuchungsZeile &= FiBuWährung & vbTab
genBuchungsZeile &= FiBuEigenbruttobetrag.ToString("N2") & vbTab
genBuchungsZeile &= Format(CDbl(FiBuEigenbruttobetrag), fmt) & vbTab
@@ -500,7 +735,7 @@ Public Class cSyska_Interface
Dim FiBuEigenbruttobetrag As Double
Dim FiBuSollkontonummer As Integer
Dim FiBuHabenkontonummer As Integer
Dim Buchungstext = row("FilialenNr") & "/" & row("AbfertigungsNr") & "/" & row("UnterNr").ToString("00") & "/Steuerdiff." & vbTab
Dim Buchungstext = row("FilialenNr") & "/" & row("AbfertigungsNr") & "/" & CDbl(row("UnterNr")).ToString("00") & "/Steuerdiff." & vbTab
If row("WährungFremd") Is DBNull.Value Then
FiBuEigenbruttobetrag = curDifferenzbetrag 'Bruttobetrag
FiBuWährung = row("WährungLokal")
@@ -510,7 +745,6 @@ Public Class cSyska_Interface
End If
Select Case row("BelegartenNr")
Case 70 'Rechnung
FiBuSollkontonummer = "0"
@@ -529,11 +763,11 @@ Public Class cSyska_Interface
genBuchungsZeileDiffBetrag &= FiBuHabenkontonummer & vbTab
genBuchungsZeileDiffBetrag &= Buchungstext
genBuchungsZeileDiffBetrag &= curDifferenzbetrag.ToString("N2") & vbTab
genBuchungsZeileDiffBetrag &= Format(curDifferenzbetrag, fmt) & vbTab
genBuchungsZeileDiffBetrag &= "00,00" & vbTab 'FiBuSteuersatz
genBuchungsZeileDiffBetrag &= "" & vbTab 'FiBuSteuerbetrag
genBuchungsZeileDiffBetrag &= FiBuWährung & vbTab
genBuchungsZeileDiffBetrag &= FiBuEigenbruttobetrag.ToString("N2") & vbTab
genBuchungsZeileDiffBetrag &= Format(FiBuEigenbruttobetrag, fmt) & vbTab
'curDifferenzbetrag += FiBuEigenbruttobetrag
@@ -587,36 +821,6 @@ Public Class cSyska_Interface
Shared Function getDbl(o As Object) As Double
Try
If o Is Nothing Then Return 0
If o Is DBNull.Value Then Return 0
Return CDbl(o)
Catch ex As Exception
Return 0
End Try
End Function
Shared Function getDbl2(o As Object) As Double
Try
If o Is Nothing Then Return 0
If o Is DBNull.Value Then Return 0
Return CDbl(o.ToString.Replace(".", ","))
Catch ex As Exception
Return 0
End Try
End Function
Shared Function getDbltr(o As Object) As String
Try
If o Is Nothing Then Return 0
If o Is DBNull.Value Then Return 0
Return CDbl(o).ToString("N2").Replace(".", "") '
Catch ex As Exception
Return 0
End Try
End Function
Shared Function fill0Stellen(i As Object, l As Integer) As String
If i Is DBNull.Value Then i = ""
If i Is Nothing Then i = ""
@@ -1076,4 +1280,51 @@ Public Class cSyska_Interface
'2050 Resume PROC_Exit
' End Function
Public Shared Function OP_Einlesen(Firma_ID As Integer, Optional KdNr As Integer = -1)
Dim dt_OP As DataTable = SQL.loadDgvBySql("SELECT * FROM op_debitor WHERE (i_firm_refid = '" & Firma_ID & "') AND (dt_geloescht IS NULL) " & If(KdNr > 0, " AND i_personenkonto='" & KdNr & "'", "") & " ORDER BY i_personenkonto, d_rechnung, c_urbelegid", "FIBU")
If dt_OP IsNot Nothing Then
If OP_DELETE(Firma_ID, KdNr) Then
For Each r_OP In dt_OP.Rows
Try
Dim OP As New VERAG_PROG_ALLGEMEIN.cOffene_Posten()
OP.Kontonummer = r_OP("i_personenkonto")
OP.Belegnummer = r_OP("c_urbelegid")
OP.Belegdatum = r_OP("d_rechnung")
OP.Fälligkeitsdatum = r_OP("d_netto")
OP.Bruttobetrag = r_OP("eur_bruttobetrag")
OP.Waehrung = "EUR"
OP.Gesamtausstand = r_OP("eur_bruttobetrag") + r_OP("eur_zahlung")
OP.Buchungstext = r_OP("c_bemerkung")
OP.Mahnstufe = r_OP("si_mahnstufe")
OP.Mahndatum = r_OP("d_mahnung")
OP.Firma_ID = r_OP("i_firm_refid")
OP.SAVE()
Catch ex As Exception
MsgBox(ex.Message & ex.StackTrace)
End Try
Next
Else
MsgBox("FEHLER beim Löschen der vorhandenen OP-Liste.")
End If
End If
End Function
Public Shared Function OP_DELETE(Firma_ID As Integer, Optional KdNr As Integer = -1) As Boolean
Dim SQL As New SQL
Return SQL.doSQL("DELETE FROM [Offene Posten] where Firma_ID='" & Firma_ID & "'" & If(KdNr > 0, " AND Kontonummer='" & KdNr & "'", ""), "FMZOLL")
End Function
End Class