This commit is contained in:
2021-09-07 08:46:12 +02:00
parent f2f992547d
commit 619a8c26bf
126 changed files with 7156 additions and 2215 deletions

View File

@@ -196,13 +196,13 @@ Public Class cVERAG_in_TRAvisoFULL
cmd.Parameters.AddWithValue("@trAv_Id", trAv_Id)
Dim dr = cmd.ExecuteReader()
If dr.Read Then
For Each l In getParameterList()
Dim propInfo As PropertyInfo = Me.GetType.GetProperty(l.Scalarvariable)
For Each li In getParameterList()
Dim propInfo As PropertyInfo = Me.GetType.GetProperty(li.Scalarvariable)
If dr.Item(l.Text) Is DBNull.Value Then
If dr.Item(li.Text) Is DBNull.Value Then
propInfo.SetValue(Me, Nothing)
Else
propInfo.SetValue(Me, dr.Item(l.Text))
propInfo.SetValue(Me, dr.Item(li.Text))
End If
Next

View File

@@ -248,15 +248,15 @@ Public Class cVERAG_in_eza_FULL
cmd.Parameters.AddWithValue("@shTr_id", shTr_id)
Dim dr = cmd.ExecuteReader()
If dr.Read Then
For Each l In getParameterList()
If Not l.isonlyForSave Then
For Each li In getParameterList()
If Not li.isonlyForSave Then
Dim propInfo As PropertyInfo = EZA.GetType.GetProperty(l.Scalarvariable)
Dim propInfo As PropertyInfo = EZA.GetType.GetProperty(li.Scalarvariable)
If dr.Item(l.Text) Is DBNull.Value Then
If dr.Item(li.Text) Is DBNull.Value Then
propInfo.SetValue(EZA, Nothing)
Else
propInfo.SetValue(EZA, dr.Item(l.Text))
propInfo.SetValue(EZA, dr.Item(li.Text))
End If
'List.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("shTr_id", shTr_id, , True, True, True))
@@ -294,13 +294,13 @@ Public Class cVERAG_in_eza_FULL
cmd.Parameters.AddWithValue("@Reference", Reference)
Dim dr = cmd.ExecuteReader()
If dr.Read Then
For Each l In EZA_FULL.getParameterList()
Dim propInfo As PropertyInfo = EZA.GetType.GetProperty(l.Scalarvariable)
For Each li In EZA_FULL.getParameterList()
Dim propInfo As PropertyInfo = EZA.GetType.GetProperty(li.Scalarvariable)
If dr.Item(l.Text) Is DBNull.Value Then
If dr.Item(li.Text) Is DBNull.Value Then
propInfo.SetValue(EZA, Nothing)
Else
propInfo.SetValue(EZA, dr.Item(l.Text))
propInfo.SetValue(EZA, dr.Item(li.Text))
End If
Next

View File

@@ -184,13 +184,13 @@ Public Class cVERAG_in_shippmentWHST '????????
cmd.Parameters.AddWithValue("@in_sh_id", in_sh_id)
Dim dr = cmd.ExecuteReader()
If dr.Read Then
For Each l In getParameterList()
Dim propInfo As PropertyInfo = Me.GetType.GetProperty(l.Scalarvariable)
For Each li In getParameterList()
Dim propInfo As PropertyInfo = Me.GetType.GetProperty(li.Scalarvariable)
If dr.Item(l.Text) Is DBNull.Value Then
If dr.Item(li.Text) Is DBNull.Value Then
propInfo.SetValue(Me, Nothing)
Else
propInfo.SetValue(Me, dr.Item(l.Text))
propInfo.SetValue(Me, dr.Item(li.Text))
End If
Next

View File

@@ -2,169 +2,6 @@
Shared SQL As New VERAG_PROG_ALLGEMEIN.SQL
'STAMMDATEN
'Public Shared Function genStammdatenBuRef() As Boolean
' Try
' 'RTRIM([Name 1] + ' ' + isnull([Name 2],'')) as [Name]
' Dim sqlStr = " select adressennr 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 as [St],PLZ as [Postltz],LTRIM([Ort]) as Ort,isnull(BLZ,'') as [Bankltz],isnull(KTO,'') as [Bankkonto-Nr], 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 "
' 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 FilialenNr='5501' "
' sqlStr &= " Order by [Konto-Nr] "
' ' "Konto-Nr;Name;UST-Id-Nummer;Strasse;St;Postltz;Ort;Bankltz;Bankkonto-Nr;ZZiel;SPz;STg"
' Dim dt As DataTable = SQL.loadDgvBySql(sqlStr, "FMZOLL")
' If dt IsNot Nothing AndAlso dt.Rows.Count > 0 Then
' initKDNr(dt)
' Dim ExcelPath = cProgramFunctions.genExcelFromDT_NEW(dt, , False,,, False) '{"C1:C" & (dt.Rows.Count + 1), "C1:C" & (dt.Rows.Count + 1)})
' If ExcelPath <> "" Then
' Process.Start(ExcelPath)
' Return True
' End If
' Else
' Return True ' wenn keine da sind, auch ok...
' End If
' ' UPDATE FiBuSchnittstelle --> 0
' Catch ex As Exception
' MsgBox(ex.Message & ex.StackTrace)
' End Try
' Return False
'End Function
''BetreibsstammSatz
''10 Personenkonten
''100 Beginn Buchungsblock
''110 Buchungen
''111 Summe/Ende Buchungsblock
'Public Shared Function genBetreibsstammSatz(Geschaeftsjahr As Integer) As String
' Return "1,0910,""" & Geschaeftsjahr & """,""0101" & Geschaeftsjahr & """,4,6,""EUR"""
'End Function
'Public Shared Function genBuchungenBeginn(Geschaeftsjahr As Integer) As String
' Return "100,""AR "",4,""" & Now.ToString("ddMMyyyy") & """," & Now.AddDays(-1).Month & ",0"
'End Function
'Public Shared Function genBuchungenEnd(SummeBuchungen As Double) As String
' Return "111," & SummeBuchungen.ToString("N2").Replace(",", ".")
'End Function
'Public Shared Function genStammdatenANSI(Optional OpenFile = False, Optional boolKunden = True, Optional boolBuchungen = True) As Boolean
' Try
' 'RTRIM([Name 1] + ' ' + isnull([Name 2],'')) as [Name]
' 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
' ' "Konto-Nr;Name;UST-Id-Nummer;Strasse;St;Postltz;Ort;Bankltz;Bankkonto-Nr;ZZiel;SPz;STg"
' ' Dim Encoding As New System.Text.ASCIIEncoding()
' ' Dim Encoding As New System.Text.UTF8Encoding(False)
' Dim file As System.IO.StreamWriter
' ' Dim path = DATENVERVER_OPTIONS.getTMPPath("dvo", ".txt", , False)
' Dim path = "\\192.168.1.20\Daten\DVO - DATENORDNER MIT IMPORTDATEIEN\"
' Dim pathArchiv = "\\192.168.1.20\Daten\DVO - DATENORDNER MIT IMPORTDATEIEN\Archiv\"
' If VERAG_PROG_ALLGEMEIN.cAllgemein.TESTSYSTEM Then
' path = VERAG_PROG_ALLGEMEIN.DATENVERVER_OPTIONS.getRootDir
' pathArchiv = ""
' End If
' If Not IO.Directory.Exists(path) Then IO.Directory.CreateDirectory(path)
' 'Zuerst alle IMP-Daten löschen, damit es zu keinen Missverständnissen kommt
' 'For Each f In IO.Directory.GetFiles(path)
' ' If f.ToString.Contains("DVO_IMP_") Then
' ' Try
' ' IO.File.Delete(f)
' ' Catch ex As Exception
' ' End Try
' ' End If
' 'Next
' Dim Dateiname = "DVO_IMP_" & Now.ToString("ddMMyyyy_HHmm") & ".txt"
' file = My.Computer.FileSystem.OpenTextFileWriter(path & Dateiname, True, System.Text.Encoding.GetEncoding("iso-8859-15"))
' file.WriteLine(genBetreibsstammSatz(Geschaeftsjahr))
' If boolKunden Then
' '----------------- STAMMDATEN -----------------
' Dim dt_Stamm As DataTable = getStammdaten()
' If dt_Stamm IsNot Nothing AndAlso dt_Stamm.Rows.Count > 0 Then
' initKDNr(dt_Stamm)
' For Each r In dt_Stamm.Rows
' file.WriteLine(getPersonenKto(r))
' Next
' bool_DatenVorhanden = True
' End If
' updateFibu() ' UPDATE FiBuSchnittstelle --> 0
' '----------------- STAMMDATEN LG -----------------
' Dim dt_StammLG As DataTable = getStammdatenLG()
' If dt_StammLG IsNot Nothing AndAlso dt_StammLG.Rows.Count > 0 Then
' initKDNrLG(dt_StammLG)
' For Each r In dt_StammLG.Rows
' file.WriteLine(getPersonenKto(r))
' Next
' bool_DatenVorhanden = True
' End If
' updateFibuLG() ' UPDATE FiBuSchnittstelleLG --> 0
' '----------------------------------
' End If
' '----------------- Buchungssätze -----------------
' If boolBuchungen Then
' TrdInvoice_FUNCTIONS.TrdinSchreiben(20) 'Lädt die Daten aus der Tabelle Rechnungsausgang in die Tabelle trdInvoice (nur für 20 = IMEX )
' Dim dt_Buchungen As DataTable = getBuchungen(20)
' If dt_Buchungen IsNot Nothing AndAlso dt_Buchungen.Rows.Count > 0 Then
' Try
' ' initKDNr(dt_Buchungen)
' Dim SummeBuchungen As Double = 0
' file.WriteLine(genBuchungenBeginn(Geschaeftsjahr))
' For Each r In dt_Buchungen.Rows
' file.WriteLine(genBuchungsZeile(r, SummeBuchungen, Geschaeftsjahr))
' Next
' file.WriteLine(genBuchungenEnd(SummeBuchungen))
' bool_DatenVorhanden = True
' Catch ex As Exception
' MsgBox(ex.Message & ex.StackTrace)
' End Try
' 'Update Filename TrdIn
' SQL.doSQL("update [tblTrdinInvoice] set TrdinDateiname='" & Now.ToString("ddMMyyyyHHmm") & "' WHERE [Firma_ID] = 20 AND TrdinDateiname is null ", "FMZOLL")
' 'SQL.doSQL("update [VERAG].[dbo].[tblTrdinInvoice] set TrdinDateiname='" & Dateiname & "' WHERE [Firma_ID] = 20 AND TrdinDateiname is null ", "FMZOLL") --> Auf 12 Zeichen beschränkt!
' End If
' End If
' '----------------------------------
' file.Close()
' 'In Archiv sichern
' If pathArchiv <> "" Then
' If Not IO.Directory.Exists(pathArchiv) Then IO.Directory.CreateDirectory(pathArchiv)
' 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
' MsgBox(ex.Message & ex.StackTrace)
' End Try
' Return False
'End Function
Shared Function getStammdaten() 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] "
sqlStr &= " ,Ordnungsbegriff "
@@ -185,26 +22,7 @@
sqlStr &= " WHERE FiBuSchnittstelle=1 AND Auswahl='A' AND FilialenNr='5601' "
Return SQL.loadDgvBySql(sqlStr, "FMZOLL")
End Function
'Shared Function updateFibuLG() As DataTable
' Dim sqlStr = " UPDATE tblKundenErweitert "
' sqlStr &= " SET FiBuSchnittstelleLG = '0' "
' sqlStr &= " FROM Adressen INNER JOIN Kunden ON Kundennr=AdressenNr "
' sqlStr &= " LEFT JOIN tblKundenErweitert ON KundenNr=kde_KundenNr "
' sqlStr &= " WHERE FiBuSchnittstelleLG=1 AND Auswahl='A' AND FilialenNr='5501' "
' Return SQL.loadDgvBySql(sqlStr, "FMZOLL")
'End Function
'Shared Function getStammdatenLG() 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] "
' sqlStr &= " ,Ordnungsbegriff "
' 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 FiBuSchnittstelleLG=1 AND Auswahl='A' AND FilialenNr='5501' "
' sqlStr &= " Order by [Konto-Nr] "
' Return SQL.loadDgvBySql(sqlStr, "FMZOLL")
'End Function
Public Shared Function getPersonenKto(row As DataRow) As String
getPersonenKto = ""
@@ -449,7 +267,7 @@
Case 23 : genBuchungsZeile &= GJ_short & "-" & FormatStringDVO(row("Rechnungsnummer")) & ";"
End Select
genBuchungsZeile &= SQL.DLookup("KdAuftragsNr", "Rechnungsausgang", "rechnungsnr=" & row("Rechnungsnummer") & " and Firma_ID=" & FIRMA.Firma_ID & "", "FMZOLL", "") & ";" 'extbelegnr
genBuchungsZeile &= SQL.DLookup("KdAuftragsNr", "Rechnungsausgang", "rechnungsnr=" & row("Rechnungsnummer") & " and Firma_ID=" & FIRMA.Firma_ID & "", "FMZOLL", "") & ";".Replace(Environment.NewLine, "") 'extbelegnr
genBuchungsZeile &= If(row("BelegartenNr") = "70", "AR", "AG") & ";" ' Rg/GS 70=Rechnung 'AG ????????
genBuchungsZeile &= If(row("BelegartenNr") = "70", "1", "2") & ";" ' Rg/GS 70=Rechnung 'AG ????????

View File

@@ -271,7 +271,7 @@
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", 300)
End Function
Public Shared Function genBuchungsZeile(row As DataRow, ByRef SummeBuchungen As Double, ByRef Geschäftsjahr As Integer) As String

View File

@@ -25,6 +25,7 @@
sqlatr &= " WHERE nctsSA_GRN IN (" & _BRG_VALUE & ") and ncts_Status between 50 and 60 " ' CONVERT(date, ncts_Trans_DatumZeit ,104 ) BETWEEN '" & datVon.Value.ToShortDateString & "' AND '" & datBis.Value.ToShortDateString & "'"
sqlatr &= where
sqlatr &= " AND (SELECT COUNT(*) FROM [tblDakosy_Statusmeldungen] WHERE [dySt_dyId]=ncts_dyaAnmID AND [dySt_status] = 50 AND CONVERT(date, [dySt_ergZeitpunkt] ,104 ) BETWEEN '" & datVon.ToShortDateString & "' AND '" & datBis.ToShortDateString & "')>0 "
sqlatr &= " ORDER BY Datum "
Dim dt As DataTable = SQL.loadDgvBySql(sqlatr, "FMZOLL", 120)
@@ -33,11 +34,12 @@
If _EZOLL Then
'EZOLL:
sqlatr = " Select TOP 100 AnmeldungsDatum As Datum , (Select [CrossIdnt] FROM [zsAnmTransp] where [zsAnmTransp].AnmID=vwVERAG_Zolaris_EZoll_NCTS_Datenübernahme_Eroeffnung.AnmID ) As Kennzeichen, isnull(CRN,'') as MRN, (select [CrossIdntNat] FROM [zsAnmTransp] where [zsAnmTransp].AnmID=vwVERAG_Zolaris_EZoll_NCTS_Datenübernahme_Eroeffnung.AnmID ) as Land, cast(GarantieWert as Decimal(17,2)) as GarantieBetrag,(SELECT [Na] FROM [ezoll].[dbo].[zsAnmCarrTra] where [zsAnmCarrTra].AnmID=vwVERAG_Zolaris_EZoll_NCTS_Datenübernahme_Eroeffnung.AnmID) as Firma "
sqlatr = " Select TOP 100 AnmeldungsDatum As Datum , (Select [CrossIdnt] FROM [zsAnmTransp] where [zsAnmTransp].AnmID=vwVERAG_Zolaris_EZoll_NCTS_Datenübernahme_Eroeffnungneu.AnmID ) As Kennzeichen, isnull(CRN,'') as MRN, (select [CrossIdntNat] FROM [zsAnmTransp] where [zsAnmTransp].AnmID=vwVERAG_Zolaris_EZoll_NCTS_Datenübernahme_Eroeffnungneu.AnmID ) as Land, cast(GarantieWert as Decimal(17,2)) as GarantieBetrag,(SELECT [Na] FROM [ezoll].[dbo].[zsAnmCarrTra] where [zsAnmCarrTra].AnmID=vwVERAG_Zolaris_EZoll_NCTS_Datenübernahme_Eroeffnungneu.AnmID) as Firma "
sqlatr &= " " & If(_BRG_TEXT.Contains("TOBB") Or _BRG_TEXT.Contains("OREGON"), ", isnull(Bestimmungszollstelle,'') as Bestimmungsstelle ", "") & " "
sqlatr &= " ,LRN as Bezugsnummer "
sqlatr &= " FROM vwVERAG_Zolaris_EZoll_NCTS_Datenübernahme_Eroeffnung "
sqlatr &= " FROM vwVERAG_Zolaris_EZoll_NCTS_Datenübernahme_Eroeffnungneu "
sqlatr &= " WHERE GRN IN (" & _BRG_VALUE & ") and cast( AnmeldungsDatum as date) BETWEEN '" & datVon.ToShortDateString & "' AND '" & datBis.ToShortDateString & "' "
sqlatr &= " ORDER BY Datum "
Dim dt2 As DataTable = SQL.loadDgvBySql(sqlatr, "EZOLL", 120)

View File

@@ -1,4 +1,633 @@
Public Class cSyska_Interface
Imports System.Text.RegularExpressions
Public Class cSyska_Interface
Shared SQL As New VERAG_PROG_ALLGEMEIN.SQL
'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 &= " 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 &= " 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' "
sqlStr &= " FROM Adressen INNER JOIN Kunden ON Kundennr=AdressenNr "
sqlStr &= " LEFT JOIN tblKundenErweitert ON KundenNr=kde_KundenNr "
sqlStr &= " WHERE FiBuSchnittstelle=1 AND Auswahl='A' AND FiBuSchnittstelleNr='" & FiBuSchnittstelleNr & "' "
Return SQL.loadDgvBySql(sqlStr, "FMZOLL")
End Function
Public Shared Function getPersonenKto(row As DataRow) As String
Dim LandKz = row("LandKz")
Dim Gegenkontonummer = ""
Dim Gegenkontonummer2 = ""
If LandKz Is DBNull.Value Or LandKz.trim = "" Or LandKz = "A" Then
Gegenkontonummer = "4000" ' Erl. 20%
Gegenkontonummer2 = "4000" ' Erl. 20%
Else
If CBool(SQL.DLookup("[MitgliedslandEU]", "[Währungstabelle]", "[LandKz]='" & LandKz & "'", "FMZOLL", False)) Then
Gegenkontonummer = "4020" ' Erl. 0% EU
Gegenkontonummer2 = "4020" ' Erl. 0% EU
Else
Gegenkontonummer = "4021" ' Erl. 0% 3.Land
Gegenkontonummer2 = "4021" ' Erl. 0% 3.Land
End If
End If
Dim cleanStringName As String = Regex.Replace(row("Name"), "[^A-Za-z0-9\-/]", "").Replace(" ", "").ToUpper
Dim Lastschrift = CBool(row("Lastschrift"))
getPersonenKto = ""
getPersonenKto &= row("Konto-Nr") & vbTab
getPersonenKto &= FormatStringSYS(cleanStringName, 2) & row("Konto-Nr") & vbTab
getPersonenKto &= FormatStringSYS(row("Name"), 50) & vbTab
getPersonenKto &= FormatStringSYS(row("Name2"), 50) & vbTab
getPersonenKto &= FormatStringSYS(row("Strasse"), 50) & vbTab
getPersonenKto &= FormatStringSYS(row("PLZ"), 20) & vbTab
getPersonenKto &= FormatStringSYS(row("Ort"), 50) & vbTab
getPersonenKto &= cProgramFunctions.getISO2Land(FormatStringSYS(LandKz, 5)) & vbTab
getPersonenKto &= CDate(row("EingegebenAm")).ToShortDateString & vbTab 'Eröffnungsdatum
getPersonenKto &= 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 &= "00,00" & vbTab 'Skonto
getPersonenKto &= "01" & vbTab 'Mahnkennung
getPersonenKto &= FormatStringSYS(row("UST-Id-Nummer"), 50) & vbTab
getPersonenKto &= vbTab
getPersonenKto &= row("Währungscode") & vbTab
getPersonenKto &= vbTab 'Forderungsonto
getPersonenKto &= vbTab
getPersonenKto &= Gegenkontonummer2 & vbTab 'Platzhalter??
getPersonenKto &= FormatStringSYS(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
End Function
Public Shared Function genDatensatz_Stammdaten(FiBuSchnittstelleNr As Integer, Optional OpenFile As Boolean = False) As Boolean ' Optional OpenFile = False, Optional boolKunden = True, Optional boolBuchungen = True ) As Boolean
Try
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\SYSKA\" & FIRMA.Firma_ID & "\" & Now.Year & "\" & Now.Date.ToShortDateString & "\Archiv\"
Dim pathKD = "\\fmzoll\f\FMZoll\FiBu\Syska\" & FIRMA.Firma_ID & "\"
'pathKD = pathArchivKD 'TEST
If VERAG_PROG_ALLGEMEIN.cAllgemein.TESTSYSTEM Then
pathArchivKD = "\\datenarchiv\Datenarchiv\DATENARCHIV_TESTSYSTEM\SYSKA\" & FIRMA.Firma_ID & "\" & Now.Year & "\" & Now.Date.ToShortDateString & "\Archiv\"
pathKD = "\\datenarchiv\Datenarchiv\DATENARCHIV_TESTSYSTEM\SYSKA\" & FIRMA.Firma_ID & "\" & Now.Year & "\" & Now.Date.ToShortDateString & "\"
'path = VERAG_PROG_ALLGEMEIN.DATENVERVER_OPTIONS.getRootDir
'pathArchivKD = ""
End If
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 = getStammdaten(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
MsgBox(ex.Message & ex.StackTrace)
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) As Boolean
genDatensatz_ALL = True
If boolKunden Then
' If Not genDatensatz_Stammdaten(OpenFile) Then genDatensatz_ALL = False
If Not genDatensatz_Stammdaten(1, OpenFile) Then genDatensatz_ALL = False
If Not genDatensatz_Stammdaten(7, OpenFile) Then genDatensatz_ALL = False
If Not genDatensatz_Stammdaten(11, OpenFile) Then genDatensatz_ALL = False
If Not genDatensatz_Stammdaten(17, OpenFile) Then genDatensatz_ALL = False
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 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
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\SYSKA\" & FIRMA.Firma_ID & "\" & Now.Year & "\" & Now.Date.ToShortDateString & "\Archiv\"
Dim path = "\\fmzoll\f\FMZoll\FiBu\Syska\" & FIRMA.Firma_ID & "\"
'pathKD = pathArchivKD 'TEST
If VERAG_PROG_ALLGEMEIN.cAllgemein.TESTSYSTEM Then
pathArchiv = "\\datenarchiv\Datenarchiv\DATENARCHIV_TESTSYSTEM\SYSKA\" & FIRMA.Firma_ID & "\" & Now.Year & "\" & Now.Date.ToShortDateString & "\Archiv\"
path = "\\datenarchiv\Datenarchiv\DATENARCHIV_TESTSYSTEM\SYSKA\" & FIRMA.Firma_ID & "\" & Now.Year & "\" & Now.Date.ToShortDateString & "\"
'path = VERAG_PROG_ALLGEMEIN.DATENVERVER_OPTIONS.getRootDir
'pathArchivKD = ""
End If
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 = getBuchungen(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 = getBuchungenZeilen(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
MsgBox(ex.Message & ex.StackTrace)
End Try
End If
End If
'----------------------------------
Catch ex As Exception
MsgBox(ex.Message & ex.StackTrace)
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(",", "")
'FormatStringSYS = s.ToString.Replace("""", "\22")
If length > 0 Then
If FormatStringSYS.Length > length Then FormatStringSYS = FormatStringSYS.Substring(0, length)
End If
End Function
Shared Function FormatStringDbl(s As Object, Optional Nachkommastellen As String = "2", Optional defaultValue As String = "") As String
If s Is Nothing Then Return defaultValue
If s Is DBNull.Value Then Return defaultValue
If IsNumeric(s) Then Return CDbl(s).ToString("N" & Nachkommastellen)
Return s.ToString
End Function
Shared Function getBuchungen(Firma_ID As Integer) 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
,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
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
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
genBuchungsZeileSum = ""
If row("BelegartenNr") = 70 Then 'RECHNUNG
Dim FiBuSollkontonummer = row("KundenNrZentrale")
Dim FiBuHabenkontonummer = "0"
Dim Bruttobetrag As Double
Dim FiBuWährung = ""
If row("WährungFremd") Is DBNull.Value Then
Bruttobetrag = row("RechnungsbetragLokal") 'Bruttobetrag
Else
Bruttobetrag = row("RechnungsbetragFremd") 'Bruttobetrag
End If
If row("WährungFremd") Is DBNull.Value Then
FiBuWährung = row("WährungLokal")
Else
FiBuWährung = row("WährungFremd")
End If
Dim FiBuEigenbruttobetrag = 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") & "/" & row("UnterNr").ToString("00") & vbTab
genBuchungsZeileSum &= CDbl(Bruttobetrag).ToString("N2") & vbTab
genBuchungsZeileSum &= "" & vbTab 'FiBuSteuersatz
genBuchungsZeileSum &= "" & vbTab 'FiBuSteuerbetrag
genBuchungsZeileSum &= FiBuWährung & vbTab
genBuchungsZeileSum &= CDbl(FiBuEigenbruttobetrag).ToString("N2") & vbTab
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 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") & "/" & row("UnterNr").ToString("00") & vbTab
genBuchungsZeileSum &= CDbl(FiBuBruttobetrag).ToString("N2") & vbTab
genBuchungsZeileSum &= "" & vbTab 'FiBuSteuersatz
genBuchungsZeileSum &= "" & vbTab 'FiBuSteuerbetrag
genBuchungsZeileSum &= FiBuWährung & vbTab
genBuchungsZeileSum &= CDbl(FiBuEigenbruttobetrag).ToString("N2") & 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
Dim curSteuerbetrag As Double
Dim curNettobetrag As Double
Dim curBruttobetrag As Double
Dim FiBuBruttobetrag As String
Dim FiBuEigenbruttobetrag As Double
Dim FiBuSteuersatz As Double
Dim FiBuSteuerbetrag As String
Dim FiBuSollkontonummer As Integer
Dim FiBuHabenkontonummer As Integer
Dim FiBuWährung = "EUR"
Select Case row("BelegartenNr")
Case 70 'Rechnung
FiBuSollkontonummer = "0"
FiBuHabenkontonummer = If(row("Sachkonto") IsNot DBNull.Value, row("Sachkonto"), " ")
If row("WährungFremd") Is DBNull.Value Then
curNettobetrag = row("BetragLokal")
Else
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")
Else
curNettobetrag = 0 - row("BetragFremd")
End If
End Select
If CBool(row("steuerpflichtig")) Then
curSteuerbetrag = CLng(curNettobetrag * CDbl(row("Steuersatz")) * 100) / 100
curBruttobetrag = curNettobetrag + curSteuerbetrag
FiBuBruttobetrag = curBruttobetrag.ToString("N2")
curDifferenzbetrag = Math.Round(curDifferenzbetrag, 2) - Math.Round(CDbl(FiBuBruttobetrag), 2)
FiBuSteuersatz = Format(CDbl(row("Steuersatz")) * 100, "00.00")
' Die folgende Zeile führt zu Buchungsfehler bei Fremdwährung,
' Buchungssatz.FiBuSteuerbetrag = Format(curSteuerbetrag, "########0.00")
' deshalb nur Steuerprozent und keinen Steuerbetrag übergeben.
FiBuSteuerbetrag = ""
Else
curBruttobetrag = curNettobetrag
FiBuBruttobetrag = curBruttobetrag.ToString("N2")
curDifferenzbetrag = Math.Round(curDifferenzbetrag, 2) - Math.Round(CDbl(FiBuBruttobetrag), 2)
FiBuSteuersatz = "00,00"
FiBuSteuerbetrag = ""
End If
If row("WährungFremd") Is DBNull.Value Then
FiBuEigenbruttobetrag = CDbl(row("RechnungsbetragLokal")) 'Bruttobetrag
FiBuWährung = row("WährungLokal")
Else
FiBuWährung = row("WährungFremd")
FiBuEigenbruttobetrag = CDbl(row("RechnungsbetragFremd")) 'Bruttobetrag
End If
genBuchungsZeile = "L" & vbTab
genBuchungsZeile &= CDate(row("Rechnungsdatum")).ToString("dd.MM.yyyy") & vbTab
genBuchungsZeile &= FormatStringSYS(row("Rechnungsnummer")) & vbTab
genBuchungsZeile &= FiBuSollkontonummer & vbTab
genBuchungsZeile &= FiBuHabenkontonummer & vbTab
genBuchungsZeile &= row("FilialenNr") & "/" & row("AbfertigungsNr") & "/" & row("UnterNr").ToString("00") & vbTab
genBuchungsZeile &= FiBuBruttobetrag & vbTab
genBuchungsZeile &= FiBuSteuersatz.ToString("N2") & vbTab 'FiBuSteuersatz
genBuchungsZeile &= FormatStringDbl(FiBuSteuerbetrag) & vbTab 'FiBuSteuerbetrag
genBuchungsZeile &= FiBuWährung & vbTab
genBuchungsZeile &= FiBuEigenbruttobetrag.ToString("N2") & vbTab
End Function
Public Shared Function genBuchungsZeileDiffBetrag(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
' Buchungssatz Steuerdifferenz
If curDifferenzbetrag <> 0 Then
Dim FiBuWährung As String
Dim FiBuEigenbruttobetrag As Double
Dim FiBuSollkontonummer As Integer
Dim FiBuHabenkontonummer As Integer
Dim Buchungstext = row("FilialenNr") & "/" & row("AbfertigungsNr") & "/" & row("UnterNr").ToString("00") & "/Steuerdiff." & vbTab
If row("WährungFremd") Is DBNull.Value Then
FiBuEigenbruttobetrag = curDifferenzbetrag 'Bruttobetrag
FiBuWährung = row("WährungLokal")
Else
FiBuWährung = row("WährungFremd")
FiBuEigenbruttobetrag = cProgramFunctions.fktEuro(curDifferenzbetrag, row("WährungFremd"), "EUR")
End If
Select Case row("BelegartenNr")
Case 70 'Rechnung
FiBuSollkontonummer = "0"
FiBuHabenkontonummer = "8490"
Case 71 'Gutschrift
FiBuSollkontonummer = "8490"
FiBuHabenkontonummer = "0"
End Select
genBuchungsZeileDiffBetrag = "L" & vbTab
genBuchungsZeileDiffBetrag &= CDate(row("Rechnungsdatum")).ToString("dd.MM.yyyy") & vbTab
genBuchungsZeileDiffBetrag &= FormatStringSYS(row("Rechnungsnummer")) & vbTab
genBuchungsZeileDiffBetrag &= FiBuSollkontonummer & vbTab
genBuchungsZeileDiffBetrag &= FiBuHabenkontonummer & vbTab
genBuchungsZeileDiffBetrag &= Buchungstext
genBuchungsZeileDiffBetrag &= curDifferenzbetrag.ToString("N2") & vbTab
genBuchungsZeileDiffBetrag &= "00,00" & vbTab 'FiBuSteuersatz
genBuchungsZeileDiffBetrag &= "" & vbTab 'FiBuSteuerbetrag
genBuchungsZeileDiffBetrag &= FiBuWährung & vbTab
genBuchungsZeileDiffBetrag &= FiBuEigenbruttobetrag.ToString("N2") & vbTab
'curDifferenzbetrag += FiBuEigenbruttobetrag
End If
End Function
Shared Sub initKDNr(ByRef dt As DataTable)
For Each r In dt.Rows
If IsNumeric(r("Konto-Nr")) AndAlso CInt(r("Konto-Nr")) > 2000000 Then r("Konto-Nr") = (CInt(r("Konto-Nr")) - 2000000)
' MsgBox((CInt(r("Konto-Nr")) - 1000000) + 200000)
Next
End Sub
Shared Function initKDNr2(ktoNr As String) As String
If IsNumeric(ktoNr) AndAlso CInt(ktoNr) > 2000000 Then ktoNr = (CInt(ktoNr) - 2000000) '+ 200000
Return ktoNr
End Function
' Trdin=false
Shared Function getSteuercode(r As DataRow, FIRMA As VERAG_PROG_ALLGEMEIN.cFirmen) As String
Select Case r("Sachkonto")
'Case "3550", "3553", "3558"
' Return "999"
Case Else
If Not CBool(r("Steuerpflichtig")) Then
'Vorher immer return "" - galube es soll bei eu aber 77 sein...
If SQL.DLookup("[MitgliedslandEU]", "[Währungstabelle]", "[LandKz]='" & r("RechnungsLandKz") & "'", "FMZOLL", False) Then
Return "77" ' EU-LAND
Else
Return "" ' Drittland
End If
Else
If (r("RechnungsLandKz")).ToString.Replace("AT", "A").Replace("DE", "D") = FIRMA.Firma_LandKz Then 'Abhängig von FIRMA --> INLAND!!!!!!
Return "1" 'Steuerpflichtig und AT
Else
If SQL.DLookup("[MitgliedslandEU]", "[Währungstabelle]", "[LandKz]='" & r("RechnungsLandKz") & "'", "FMZOLL", False) Then
Return "77" ' EU-LAND
Else
Return "" ' Drittland
End If
End If
End If
End Select
Return ""
End Function
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 = ""
While i.ToString.Length < l
i &= "0"
End While
Return i
End Function
' Public Function fktFiBuDebitoren(ByVal intFirma_ID As Integer) As Boolean
' Dim dq As DAO.QueryDef