SDL Jetzt erst recht!
This commit is contained in:
397
VERAG_PROG_ALLGEMEIN/Schnittstellen/cDVO_Interface.vb
Normal file
397
VERAG_PROG_ALLGEMEIN/Schnittstellen/cDVO_Interface.vb
Normal file
@@ -0,0 +1,397 @@
|
||||
Public Class cDVO_Interface
|
||||
|
||||
Shared SQL As New VERAG_PROG_ALLGEMEIN.SQL
|
||||
|
||||
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 = "\\192.168.0.91\Datenarchiv\DATENARCHIV_TESTSYSTEM\"
|
||||
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 LG -----------------
|
||||
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 [VERAG].[dbo].[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 FormatStringDVO(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
|
||||
FormatStringDVO = s.ToString.Replace(",", "")
|
||||
FormatStringDVO = s.ToString.Replace("""", "\22")
|
||||
If length > 0 Then
|
||||
If FormatStringDVO.Length > length Then FormatStringDVO = FormatStringDVO.Substring(0, length)
|
||||
End If
|
||||
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] "
|
||||
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 FiBuSchnittstelle=1 AND Auswahl='A' AND FilialenNr='5501' "
|
||||
sqlStr &= " Order by [Konto-Nr] "
|
||||
Return SQL.loadDgvBySql(sqlStr, "FMZOLL")
|
||||
End Function
|
||||
Shared Function updateFibu() 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 FilialenNr='5501' "
|
||||
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 = "10,"
|
||||
getPersonenKto &= fill0Stellen(row("Konto-Nr"), 7) & ","
|
||||
getPersonenKto &= """" & FormatStringDVO(row("Ordnungsbegriff"), 39) & ""","
|
||||
getPersonenKto &= """" & FormatStringDVO(row("Ordnungsbegriff"), 11) & ""","
|
||||
getPersonenKto &= """" & FormatStringDVO(row("UST-Id-Nummer")) & ""","
|
||||
If IsDate(row("UID-Datum")) Then
|
||||
getPersonenKto &= """" & CDate(row("UID-Datum")).ToString("ddMMyyyy") & ""","
|
||||
Else
|
||||
getPersonenKto &= ","
|
||||
End If
|
||||
getPersonenKto &= ","
|
||||
getPersonenKto &= """Firma"","
|
||||
getPersonenKto &= """" & FormatStringDVO(row("Name")) & ""","
|
||||
getPersonenKto &= """" & FormatStringDVO(row("Name2")) & ""","
|
||||
getPersonenKto &= """"","
|
||||
getPersonenKto &= """"","
|
||||
getPersonenKto &= """" & FormatStringDVO(row("Strasse")) & ""","
|
||||
getPersonenKto &= """" & cProgramFunctions.getISO2Land(FormatStringDVO(row("LandKz"))) & ""","
|
||||
getPersonenKto &= """" & FormatStringDVO(row("PLZ")) & ""","
|
||||
getPersonenKto &= """" & FormatStringDVO(row("Ort")) & ""","
|
||||
getPersonenKto &= """" & row("BLZ") & ""","
|
||||
getPersonenKto &= """" & row("KTO") & ""","
|
||||
getPersonenKto &= row("ZZiel") & ","
|
||||
getPersonenKto &= "0,"
|
||||
getPersonenKto &= "," 'getPersonenKto &= FormatStringDVO(row("Zahlungsziel2"),, 0) & ","
|
||||
getPersonenKto &= "," 'getPersonenKto &= "0,"
|
||||
getPersonenKto &= "," 'getPersonenKto &= FormatStringDVO(row("Zahlungsziel3"),, 0) & ","
|
||||
getPersonenKto &= "," 'getPersonenKto &= "0,"
|
||||
|
||||
getPersonenKto &= "0,"
|
||||
getPersonenKto &= """""," 'IBAN
|
||||
getPersonenKto &= """""," 'BIC
|
||||
getPersonenKto &= """""," 'Bankeinzug
|
||||
getPersonenKto &= """""," 'Prüfdatum2
|
||||
getPersonenKto &= """""," 'ISOCOde
|
||||
getPersonenKto &= """""," 'Nicht In Zahlungsvorschläge aufnehemn
|
||||
getPersonenKto &= """""," 'Kundendaten
|
||||
getPersonenKto &= """""," 'Datum Einzugsermächtigung
|
||||
getPersonenKto &= """""," 'Mandatsref
|
||||
getPersonenKto &= """" & FormatStringDVO(row("E-Mail")) & """" 'e-Mail
|
||||
|
||||
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
|
||||
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
|
||||
Public Shared Function genBuchungsZeile(row As DataRow, ByRef SummeBuchungen As Double, ByRef Geschäftsjahr As Integer) As String
|
||||
genBuchungsZeile = "110,"
|
||||
genBuchungsZeile &= fill0Stellen(initKDNr2(row("KundenNrZentrale")), 7) & ","
|
||||
genBuchungsZeile &= fill0Stellen(row("Sachkonto"), 6) & ","
|
||||
genBuchungsZeile &= """" & CDate(row("Rechnungsdatum")).ToString("ddMMyyyy") & ""","
|
||||
genBuchungsZeile &= """" & FormatStringDVO(row("Rechnungsnummer")) & ""","
|
||||
genBuchungsZeile &= """" & FormatStringDVO(row("Rechnungsnummer")) & ""","
|
||||
genBuchungsZeile &= getDbltr(getDbl(row("SteuerpflichtigerBetragLokal")) + getDbl(row("SteuerfreierBetragLokal")) + getDbl(row("SteuerpflichtigerBetragFremd")) + getDbl(row("SteuerfreierBetragFremd"))) & ","
|
||||
genBuchungsZeile &= getSteuercode(row) & ","
|
||||
genBuchungsZeile &= """""," ' genBuchungsZeile &= """" & cProgramFunctions.getISO2Land(FormatStringDVO(row("RechnungsLandKz"))) & ""","
|
||||
Dim steuerbetragLokal As Double = 0
|
||||
If CBool(row("Steuerpflichtig")) Then
|
||||
steuerbetragLokal = CDbl((getDbl2(row("SteuerpflichtigerBetragLokal")) * getDbl2(row("Steuersatz"))))
|
||||
steuerbetragLokal += CDbl((getDbl2(row("SteuerpflichtigerBetragFremd")) * getDbl2(row("Steuersatz"))))
|
||||
End If
|
||||
If steuerbetragLokal < 0 Then steuerbetragLokal = steuerbetragLokal * -1
|
||||
genBuchungsZeile &= "" & If(steuerbetragLokal <> 0, getDbltr(steuerbetragLokal), "") & ","
|
||||
genBuchungsZeile &= """" & FormatStringDVO(FormatStringDVO(row("RechnungsUstIdKz")) & FormatStringDVO(row("RechnungsUstIdNr")), 15) & ""","
|
||||
genBuchungsZeile &= "1," ' Kostenstelle
|
||||
genBuchungsZeile &= """""," ' Fremdwährung
|
||||
genBuchungsZeile &= "," ' Fremdwährung-Betrag
|
||||
genBuchungsZeile &= """" & FormatStringDVO(row("Buchungstext")) & """," ' Text
|
||||
genBuchungsZeile &= If(row("BelegartenNr") = "70", """R"",", """G"",") ' Rg/GS 70=Rechnung
|
||||
genBuchungsZeile &= "," ' Fäll-Tage1
|
||||
genBuchungsZeile &= "," ' Fäll-% 1
|
||||
genBuchungsZeile &= "," ' Fäll-Tage2
|
||||
genBuchungsZeile &= "," ' Fäll-% 2
|
||||
genBuchungsZeile &= "," ' Fäll-Tage3
|
||||
genBuchungsZeile &= "," ' Fäll-% 3
|
||||
genBuchungsZeile &= """""," ' Storno --> S=Storno
|
||||
genBuchungsZeile &= "," ' Kurs
|
||||
genBuchungsZeile &= Geschäftsjahr & "," ' GJ
|
||||
genBuchungsZeile &= """""," ' ISO
|
||||
genBuchungsZeile &= """""," ' DL
|
||||
genBuchungsZeile &= """""," ' Imp,Exp
|
||||
genBuchungsZeile &= """""," ' Barcode
|
||||
genBuchungsZeile &= "," ' DocuWare
|
||||
genBuchungsZeile &= "," ' Nova
|
||||
genBuchungsZeile &= FormatStringDVO(row("Lastschrift")) & "," ' Bankeinzug 0/1
|
||||
'... aus ...
|
||||
SummeBuchungen += getDbl(getDbl(row("SteuerpflichtigerBetragLokal")) + getDbl(row("SteuerfreierBetragLokal")))
|
||||
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")) > 1000000 Then r("Konto-Nr") = (CInt(r("Konto-Nr")) - 1000000) + 200000
|
||||
' MsgBox((CInt(r("Konto-Nr")) - 1000000) + 200000)
|
||||
Next
|
||||
End Sub
|
||||
Shared Sub initKDNrLG(ByRef dt As DataTable)
|
||||
For Each r In dt.Rows
|
||||
If IsNumeric(r("Konto-Nr")) AndAlso CInt(r("Konto-Nr")) > 1000000 Then r("Konto-Nr") = (CInt(r("Konto-Nr")) - 1000000) + 500000
|
||||
' MsgBox((CInt(r("Konto-Nr")) - 1000000) + 200000)
|
||||
Next
|
||||
End Sub
|
||||
Shared Function initKDNr2(ktoNr As String) As String
|
||||
If IsNumeric(ktoNr) AndAlso CInt(ktoNr) > 1000000 Then ktoNr = (CInt(ktoNr) - 1000000) + 200000
|
||||
Return ktoNr
|
||||
End Function
|
||||
' Trdin=false
|
||||
|
||||
Shared Function getSteuercode(r As DataRow) As Double
|
||||
If CBool(r("Steuerpflichtig")) Then
|
||||
Return "320"
|
||||
Else
|
||||
If (r("RechnungsLandKz")) = "A" Or (r("RechnungsLandKz")) = "AT" Then
|
||||
Return "999" 'Steuerpflichtig und AT
|
||||
Else
|
||||
If SQL.DLookup("[MitgliedslandEU]", "[Währungstabelle]", "[LandKz]='" & r("RechnungsLandKz") & "'", "FMZOLL", False) Then
|
||||
Return "969" ' EU-LAND
|
||||
Else
|
||||
Return "973" ' Drittland
|
||||
End If
|
||||
End If
|
||||
End If
|
||||
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(".", "").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
|
||||
|
||||
|
||||
End Class
|
||||
450
VERAG_PROG_ALLGEMEIN/Schnittstellen/cSyska_Interface.vb
Normal file
450
VERAG_PROG_ALLGEMEIN/Schnittstellen/cSyska_Interface.vb
Normal file
@@ -0,0 +1,450 @@
|
||||
Public Class cSyska_Interface
|
||||
' Public Function fktFiBuDebitoren(ByVal intFirma_ID As Integer) As Boolean
|
||||
|
||||
' Dim dq As DAO.QueryDef
|
||||
' Dim rstACC As DAO.Recordset
|
||||
|
||||
' Dim cnnFIBU2 As ADODB.Connection
|
||||
' Dim rstSQL As ADODB.Recordset
|
||||
|
||||
' Dim DateiName As String
|
||||
' Dim DateiNr As Integer
|
||||
' Dim fDateiOpen As Boolean
|
||||
|
||||
' Dim strSQL As String
|
||||
' Dim lngFortschritt As Long
|
||||
|
||||
'2060 On Error GoTo PROC_Error
|
||||
|
||||
'2070 fktFiBuDebitoren = False
|
||||
'2080 Call Logbucheintrag(0, 0, "basFiBuSyska.fktFiBuDebitoren(" & intFirma_ID & ")", 0, "gestartet")
|
||||
'2090 DoCmd.Hourglass True
|
||||
|
||||
' ' Access-Datenbank lesen.
|
||||
'2100 Set dq = dbs.QueryDefs("qryFiBuDebitoren")
|
||||
'2110 dq.Parameters("[parFirma_ID]") = intFirma_ID
|
||||
'2120 Set rstACC = dq.OpenRecordset(dbOpenSnapshot)
|
||||
'2130 If Not rstACC.EOF Then
|
||||
|
||||
' ' Verbindung zur SQL-Server-Datenbank herstellen.
|
||||
'2140 Set cnnFIBU2 = New ADODB.Connection
|
||||
'2150 cnnFIBU2.ConnectionTimeout = 120
|
||||
'2160 cnnFIBU2.Open "File Name=F:\FMZoll\FIBU2.UDL"
|
||||
'2170 Set rstSQL = New ADODB.Recordset
|
||||
|
||||
' ' Information über den Beginn der Verarbeitung anzeigen.
|
||||
'2180 lngFortschritt = 0
|
||||
'2190 rstACC.MoveLast
|
||||
'2200 Call SysCmd(acSysCmdInitMeter, "FIBU2 Debitoren ", rstACC.RecordCount)
|
||||
'2210 rstACC.MoveFirst
|
||||
|
||||
'2220 Do Until rstACC.EOF
|
||||
|
||||
' ' Information über den Fortschritt der Verarbeitung anzeigen.
|
||||
'2230 lngFortschritt = lngFortschritt + 1
|
||||
'2240 Call SysCmd(acSysCmdUpdateMeter, lngFortschritt)
|
||||
'2250 If lngFortschritt Mod 10 = 0 Then DoEvents
|
||||
|
||||
' ' SQL-Server-Datenbank lesen.
|
||||
'2260 strSQL = "SELECT [i_konto]" & _
|
||||
' " FROM [FIBU2].[dbo].[fibu_konto]" & _
|
||||
' " WHERE [i_firm_refid] = " & intFirma_ID & _
|
||||
' " AND [c_kontoart] = 'DE'" & _
|
||||
' " AND [i_konto] = " & rstACC!KundenNrZentrale
|
||||
'2270 rstSQL.Open strSQL, cnnFIBU2, adOpenStatic, adLockReadOnly, adCmdText
|
||||
'2280 If rstSQL.EOF Then
|
||||
|
||||
' ' Datei zur Aufnahme der Schnittstellendaten anlegen.
|
||||
'2290 If Not fDateiOpen Then
|
||||
'2300 DateiName = "F:\FMZoll\FiBu\Syska\" & intFirma_ID & "\DEBI_" & Format(Now(), "yymmddhhmmss") & ".txt"
|
||||
'2310 DateiNr = FreeFile
|
||||
'2320 Forms![Daten-Transfer]!strInformation = DateiName
|
||||
'2330 Open DateiName For Output As DateiNr
|
||||
'2340 Forms![Daten-Transfer]!strInformation = ""
|
||||
'2350 fDateiOpen = True
|
||||
'2360 End If
|
||||
|
||||
' ' Schnittstellendaten bereitstellen.
|
||||
'2370 Debitorensatz.FiBuKontonummer = rstACC!KundenNrZentrale
|
||||
'2380 Debitorensatz.FiBuKürzel = IIf(IsNull(rstACC!Ordnungsbegriff), rstACC!KundenNrZentrale, Left(Left(rstACC!Ordnungsbegriff, 2) & rstACC!KundenNrZentrale, 8))
|
||||
'2390 Debitorensatz.FiBuName = IIf(IsNull(rstACC![Name 1]), Left(rstACC!Ordnungsbegriff, 40), Left(rstACC![Name 1], 40))
|
||||
'2400 Debitorensatz.FiBuZusatz = IIf(IsNull(rstACC![Name 2]), " ", Left(rstACC![Name 2], 40))
|
||||
'2410 Debitorensatz.FiBuStraße = IIf(IsNull(rstACC!Straße), " ", Left(rstACC!Straße, 30))
|
||||
'2420 Debitorensatz.FiBuPLZ = IIf(IsNull(rstACC!PLZ), " ", Right(rstACC!PLZ, 6))
|
||||
'2430 Debitorensatz.FiBuOrt = IIf(IsNull(rstACC!Ort), " ", Left(rstACC!Ort, 30))
|
||||
' 'Für das neue Buchhaltungsprogramm muss das LandKz in ISO2 angegeben werden.
|
||||
' 'Debitorensatz.FiBuLand = IIf(IsNull(rstACC!LandKz), " ", Left(rstACC!LandKz, 3)) 'bis 30.11.2010
|
||||
'2440 Debitorensatz.FiBuLand = IIf(IsNull(rstACC!LandKz), " ", Nz(DLookup("[LandKzISO2]", "qryStaaten", "[LandKz] = '" & rstACC!LandKz & "'"), rstACC!LandKz)) 'ab 01.12.2010
|
||||
'2450 Debitorensatz.FiBuEröffnungsdatum = IIf(IsNull(rstACC![Eingegeben am]), " ", DateValue(rstACC![Eingegeben am]))
|
||||
'2460 If rstACC!Lastschrift = True Then
|
||||
'2470 Debitorensatz.FiBuBLZ = IIf(IsNull(rstACC!BLZ), " ", Left(rstACC!BLZ, 8))
|
||||
'2480 Debitorensatz.FiBuBankkonto = IIf(IsNull(rstACC!KTO), " ", Left(rstACC!KTO, 10))
|
||||
'2490 Else
|
||||
'2500 Debitorensatz.FiBuBLZ = " "
|
||||
'2510 Debitorensatz.FiBuBankkonto = " "
|
||||
'2520 End If
|
||||
'2530 Debitorensatz.FiBuSkontotage = "00"
|
||||
'2540 Debitorensatz.FiBuZahlungstage = "10"
|
||||
'2550 Debitorensatz.FiBuSkontoprozent = "00,00"
|
||||
'2560 Debitorensatz.FiBuMahnkennzahl = "01"
|
||||
'2570 Debitorensatz.FiBuIDNummer = IIf(IsNull(rstACC!UstIdNr), " ", IIf(IsNull(rstACC!UstIdKz), Left(rstACC!UstIdNr, 15), Left(rstACC!UstIdKz & rstACC!UstIdNr, 15)))
|
||||
'2580 Debitorensatz.FiBuWährung = IIf(IsNull(rstACC!Währungscode), " ", Left(rstACC!Währungscode, 4))
|
||||
'2590 Debitorensatz.FiBuAnsprechpartner = IIf(IsNull(rstACC!Ansprechpartner), " ", IIf(IsNull(rstACC!Anrede), Left(rstACC!Ansprechpartner, 40), Left(Trim(rstACC!Anrede & " " & rstACC!Ansprechpartner), 40)))
|
||||
'2600 Debitorensatz.FiBuTelefon = IIf(IsNull(rstACC!Telefon), " ", Left(rstACC!Telefon, 20))
|
||||
'2610 Debitorensatz.FiBuFax = IIf(IsNull(rstACC!Telefax), " ", Left(rstACC!Telefax, 20))
|
||||
'2620 Debitorensatz.FiBuEMailAdresse = IIf(IsNull(rstACC![E-Mail]), " ", Left(rstACC![E-Mail], 40))
|
||||
'2630 Debitorensatz.FiBuBemerkung = IIf(rstACC!KundenNr = rstACC!KundenNrZentrale, " ", rstACC!KundenNr)
|
||||
'2640 If IsNull(rstACC!LandKz) Or rstACC!LandKz = " " Or rstACC!LandKz = "A" Then
|
||||
'2650 Debitorensatz.FiBuGegenkontonummer = "4000" ' Erl. 20%
|
||||
'2660 Debitorensatz.FiBuGegenkontonummer2 = "4000" ' Erl. 20%
|
||||
'2670 Else
|
||||
'2680 If DLookup(Nz("[MitgliedslandEU]", False), "[Währungstabelle]", "[LandKz]='" & rstACC!LandKz & "'") Then
|
||||
'2690 Debitorensatz.FiBuGegenkontonummer = "4020" ' Erl. 0% EU
|
||||
'2700 Debitorensatz.FiBuGegenkontonummer2 = "4020" ' Erl. 0% EU
|
||||
'2710 Else
|
||||
'2720 Debitorensatz.FiBuGegenkontonummer = "4021" ' Erl. 0% 3.Land
|
||||
'2730 Debitorensatz.FiBuGegenkontonummer2 = "4021" ' Erl. 0% 3.Land
|
||||
'2740 End If
|
||||
'2750 End If
|
||||
'2760 Debitorensatz.FiBuBankname = " "
|
||||
'2770 Debitorensatz.FiBuLohnveredeler = " "
|
||||
'2780 Debitorensatz.FiBuDurchbuchungskontonummer = " "
|
||||
'2790 Debitorensatz.FiBuGeschäftsführer = " "
|
||||
|
||||
' ' Schnittstellendaten in Datei schreiben.
|
||||
'2800 Print #DateiNr, Trim(Debitorensatz.FiBuKontonummer); Chr(9);
|
||||
'2810 Print #DateiNr, Trim(Debitorensatz.FiBuKürzel); Chr(9);
|
||||
'2820 Print #DateiNr, Trim(Debitorensatz.FiBuName); Chr(9);
|
||||
'2830 Print #DateiNr, Trim(Debitorensatz.FiBuZusatz); Chr(9);
|
||||
'2840 Print #DateiNr, Trim(Debitorensatz.FiBuStraße); Chr(9);
|
||||
'2850 Print #DateiNr, Trim(Debitorensatz.FiBuPLZ); Chr(9);
|
||||
'2860 Print #DateiNr, Trim(Debitorensatz.FiBuOrt); Chr(9);
|
||||
'2870 Print #DateiNr, Trim(Debitorensatz.FiBuLand); Chr(9);
|
||||
'2880 Print #DateiNr, Trim(Debitorensatz.FiBuEröffnungsdatum); Chr(9);
|
||||
'2890 Print #DateiNr, Trim(Debitorensatz.FiBuGegenkontonummer); Chr(9);
|
||||
'2900 Print #DateiNr, Trim(Debitorensatz.FiBuBankname); Chr(9);
|
||||
'2910 Print #DateiNr, Trim(Debitorensatz.FiBuBLZ); Chr(9);
|
||||
'2920 Print #DateiNr, Trim(Debitorensatz.FiBuBankkonto); Chr(9);
|
||||
'2930 Print #DateiNr, Trim(Debitorensatz.FiBuSkontotage); Chr(9);
|
||||
'2940 Print #DateiNr, Trim(Debitorensatz.FiBuZahlungstage); Chr(9);
|
||||
'2950 Print #DateiNr, Trim(Debitorensatz.FiBuSkontoprozent); Chr(9);
|
||||
'2960 Print #DateiNr, Trim(Debitorensatz.FiBuMahnkennzahl); Chr(9);
|
||||
'2970 Print #DateiNr, Trim(Debitorensatz.FiBuIDNummer); Chr(9);
|
||||
'2980 Print #DateiNr, Trim(Debitorensatz.FiBuWährung); Chr(9);
|
||||
'2990 Print #DateiNr, Trim(Debitorensatz.FiBuLohnveredeler); Chr(9);
|
||||
'3000 Print #DateiNr, Trim(Debitorensatz.FiBuDurchbuchungskontonummer); Chr(9);
|
||||
'3010 Print #DateiNr, Trim(Debitorensatz.FiBuGegenkontonummer2); Chr(9);
|
||||
'3020 Print #DateiNr, Trim(Debitorensatz.FiBuAnsprechpartner); Chr(9);
|
||||
'3030 Print #DateiNr, Trim(Debitorensatz.FiBuGeschäftsführer); Chr(9);
|
||||
'3040 Print #DateiNr, Trim(Debitorensatz.FiBuTelefon); Chr(9);
|
||||
'3050 Print #DateiNr, Trim(Debitorensatz.FiBuFax); Chr(9);
|
||||
'3060 Print #DateiNr, Trim(Debitorensatz.FiBuEMailAdresse); Chr(9);
|
||||
'3070 Print #DateiNr, Trim(Debitorensatz.FiBuBemerkung); Chr(9)
|
||||
|
||||
'3080 End If
|
||||
'3090 rstSQL.Close
|
||||
|
||||
' ' Feld FiBuSchnittstelle in Tabelle Kunden ausschalten, nachdem die Schnittstellendaten bereitgestellt wurden.
|
||||
'3100 dbs.Execute ("UPDATE Kunden SET Kunden.FiBuSchnittstelle = No WHERE (((Kunden.FiBuSchnittstelle)=Yes) AND ((Kunden.KundenNr)=" & rstACC!KundenNr & "));")
|
||||
|
||||
'3110 rstACC.MoveNext
|
||||
'3120 Loop
|
||||
|
||||
'3130 Call SysCmd(acSysCmdRemoveMeter)
|
||||
'3140 End If
|
||||
'3150 rstACC.Close
|
||||
'3160 Set rstACC = Nothing
|
||||
|
||||
'3170 fktFiBuDebitoren = True
|
||||
|
||||
'PROC_Exit:
|
||||
'3180 On Error Resume Next
|
||||
' ' Verbindung zur Schnittstellendatei trennen.
|
||||
'3190 If fDateiOpen Then
|
||||
'3200 Close DateiNr
|
||||
'3210 fDateiOpen = False
|
||||
'3220 End If
|
||||
' ' Verbindung zur SQL-Server-Datenbank trennen.
|
||||
'3230 If Not rstSQL Is Nothing Then
|
||||
'3240 If rstSQL.State = adStateOpen Then rstSQL.Close
|
||||
'3250 Set rstSQL = Nothing
|
||||
'3260 End If
|
||||
'3270 If Not cnnFIBU2 Is Nothing Then
|
||||
'3280 If cnnFIBU2.State = adStateOpen Then cnnFIBU2.Close
|
||||
'3290 Set cnnFIBU2 = Nothing
|
||||
'3300 End If
|
||||
' ' Verbindung zur Access-Datenbank trennen.
|
||||
'3310 If Not rstACC Is Nothing Then
|
||||
'3320 rstACC.Close
|
||||
'3330 Set rstACC = Nothing
|
||||
'3340 End If
|
||||
'3350 DoCmd.Hourglass False
|
||||
'3360 Exit Function
|
||||
|
||||
'PROC_Error:
|
||||
'3370 DoCmd.Hourglass False
|
||||
'3380 ErrNotify Err, "basFiBuSyska", "fktFiBuDebitoren", eNormalError
|
||||
'3390 Resume PROC_Exit
|
||||
|
||||
' End Function
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
' Public Function fktFiBuBuchungen(ByVal intFirma_ID As Integer)
|
||||
'100 On Error GoTo PROC_Error
|
||||
|
||||
' Dim wrk As DAO.Workspace
|
||||
' Dim db As DAO.Database
|
||||
' Dim rstInvoice As DAO.Recordset
|
||||
' Dim rstProduct As DAO.Recordset
|
||||
' Dim DateiName As String
|
||||
' Dim DateiNr As Integer
|
||||
' Dim fDateiOpen As Boolean
|
||||
' Dim lngFortschritt As Long
|
||||
' Dim fInTransaktion As Boolean
|
||||
' Dim curDifferenzbetrag As Currency
|
||||
' Dim curNettobetrag As Currency
|
||||
' Dim curSteuerbetrag As Currency
|
||||
' Dim curBruttobetrag As Currency
|
||||
|
||||
'110 DoCmd.Hourglass True
|
||||
'120 fInTransaktion = False
|
||||
'130 fktFiBuBuchungen = False
|
||||
|
||||
'140 Call Logbucheintrag(0, 0, "basFiBuSyska.fktFiBuBuchungen(" & intFirma_ID & ")", 0, "gestartet")
|
||||
|
||||
'150 Set wrk = DBEngine.Workspaces(0)
|
||||
'160 Set db = CurrentDb
|
||||
|
||||
' ' Transaktion starten
|
||||
'170 wrk.BeginTrans
|
||||
'180 fInTransaktion = True
|
||||
|
||||
' ' Invoice-Sätze lesen.
|
||||
'190 Set rstInvoice = SPRecordsetMitParameter("dbo.spTrdinFiBuSelectInvoice", AktuelleVerbindungszeichenfolge(0), intFirma_ID)
|
||||
'200 If Not rstInvoice.EOF Then
|
||||
'210 DateiName = "F:\FMZoll\FiBu\Syska\" & intFirma_ID & "\BUBE_" & Format(Now(), "yymmddhhmmss") & ".txt"
|
||||
'220 DateiNr = FreeFile ' Freie DateiNr
|
||||
'230 Forms![Daten-Transfer]!strInformation = DateiName
|
||||
'240 Open DateiName For Output As DateiNr ' Datei öffnen.
|
||||
'250 Forms![Daten-Transfer]!strInformation = ""
|
||||
'260 fDateiOpen = True
|
||||
|
||||
' ' Invoice-Sätze verarbeiten.
|
||||
'270 rstInvoice.MoveLast
|
||||
'280 RC = SysCmd(acSysCmdInitMeter, DateiName & " schreiben", rstInvoice.RecordCount)
|
||||
'290 rstInvoice.MoveFirst
|
||||
'300 lngFortschritt = 0
|
||||
'310 Do
|
||||
'320 lngFortschritt = lngFortschritt + 1
|
||||
'330 RC = SysCmd(acSysCmdUpdateMeter, lngFortschritt)
|
||||
|
||||
' ' Buchungssatz Vorbelegung
|
||||
'340 Buchungssatz.FiBuBuchungsart = "L"
|
||||
'350 Buchungssatz.FiBuBelegdatum = Format(rstInvoice![RechnungsDatum], "dd.mm.yyyy")
|
||||
'360 Buchungssatz.FiBuBelegnummer = Format(Right(rstInvoice![Rechnungsnummer], 8), "00000000")
|
||||
'370 Buchungssatz.FiBuBuchungstext = Format(rstInvoice![FilialenNr], "0000") & "/" & Format(Right(rstInvoice![AbfertigungsNr], 8), "00000000") & "/" & Format(rstInvoice![UnterNr], "00")
|
||||
'380 If IsNull(rstInvoice![WährungFremd]) Then
|
||||
'390 Buchungssatz.FiBuWährung = rstInvoice![WährungLokal]
|
||||
'400 curDifferenzbetrag = IIf(rstInvoice![RechnungsbetragLokal] < 0, 0 - rstInvoice![RechnungsbetragLokal], rstInvoice![RechnungsbetragLokal])
|
||||
'410 Else
|
||||
'420 Buchungssatz.FiBuWährung = rstInvoice![WährungFremd]
|
||||
'430 curDifferenzbetrag = IIf(rstInvoice![RechnungsbetragFremd] < 0, 0 - rstInvoice![RechnungsbetragFremd], rstInvoice![RechnungsbetragFremd])
|
||||
'440 End If
|
||||
|
||||
' ' Buchungssatz Rechnung (immer erste Buchungszeile)
|
||||
'450 If rstInvoice![BelegartenNr] = RECHNUNG Then
|
||||
'460 Buchungssatz.FiBuSollkontonummer = rstInvoice![KundenNrZentrale]
|
||||
'470 Buchungssatz.FiBuHabenkontonummer = "0"
|
||||
'480 If IsNull(rstInvoice![WährungFremd]) Then
|
||||
'490 Buchungssatz.FiBuBruttobetrag = Format(rstInvoice![RechnungsbetragLokal], "########0.00")
|
||||
'500 Else
|
||||
'510 Buchungssatz.FiBuBruttobetrag = Format(rstInvoice![RechnungsbetragFremd], "########0.00")
|
||||
'520 End If
|
||||
'530 Buchungssatz.FiBuSteuersatz = " "
|
||||
'540 Buchungssatz.FiBuSteuerbetrag = " "
|
||||
'550 Buchungssatz.FiBuEigenbruttobetrag = Format(rstInvoice![RechnungsbetragLokal], "########0.00")
|
||||
'560 Print #DateiNr, Trim(Buchungssatz.FiBuBuchungsart); Chr(9);
|
||||
'570 Print #DateiNr, Trim(Buchungssatz.FiBuBelegdatum); Chr(9);
|
||||
'580 Print #DateiNr, Trim(Buchungssatz.FiBuBelegnummer); Chr(9);
|
||||
'590 Print #DateiNr, Trim(Buchungssatz.FiBuSollkontonummer); Chr(9);
|
||||
'600 Print #DateiNr, Trim(Buchungssatz.FiBuHabenkontonummer); Chr(9);
|
||||
'610 Print #DateiNr, Trim(Buchungssatz.FiBuBuchungstext); Chr(9);
|
||||
'620 Print #DateiNr, Trim(Buchungssatz.FiBuBruttobetrag); Chr(9);
|
||||
'630 Print #DateiNr, Trim(Buchungssatz.FiBuSteuersatz); Chr(9);
|
||||
'640 Print #DateiNr, Trim(Buchungssatz.FiBuSteuerbetrag); Chr(9);
|
||||
'650 Print #DateiNr, Trim(Buchungssatz.FiBuWährung); Chr(9);
|
||||
'660 Print #DateiNr, Trim(Buchungssatz.FiBuEigenbruttobetrag)
|
||||
'670 End If
|
||||
|
||||
' ' Product-Sätze lesen.
|
||||
'680 Set rstProduct = SPRecordsetMitParameter("dbo.spTrdinFiBuSelectProduct", AktuelleVerbindungszeichenfolge(0), rstInvoice![RechnungsDatum], rstInvoice![Rechnungsnummer])
|
||||
'690 Do Until rstProduct.EOF
|
||||
' ' Buchungssatz Splittbuchungen
|
||||
'700 Select Case rstInvoice![BelegartenNr]
|
||||
' Case RECHNUNG
|
||||
'710 Buchungssatz.FiBuSollkontonummer = "0"
|
||||
'720 Buchungssatz.FiBuHabenkontonummer = Nz(rstProduct![Sachkonto], " ")
|
||||
'730 If IsNull(rstInvoice![WährungFremd]) Then
|
||||
'740 curNettobetrag = rstProduct![BetragLokal]
|
||||
'750 Else
|
||||
'760 curNettobetrag = rstProduct![BetragFremd]
|
||||
'770 End If
|
||||
'780 Case GUTSCHRIFT
|
||||
'790 Buchungssatz.FiBuSollkontonummer = Nz(rstProduct![Sachkonto], " ")
|
||||
'800 Buchungssatz.FiBuHabenkontonummer = "0"
|
||||
'810 If IsNull(rstInvoice![WährungFremd]) Then
|
||||
'820 curNettobetrag = 0 - rstProduct![BetragLokal]
|
||||
'830 Else
|
||||
'840 curNettobetrag = 0 - rstProduct![BetragFremd]
|
||||
'850 End If
|
||||
'860 End Select
|
||||
'870 Buchungssatz.FiBuBuchungstext = Nz(rstProduct![Buchungstext], "")
|
||||
'880 If rstProduct![steuerpflichtig] Then
|
||||
'890 curSteuerbetrag = CLng(curNettobetrag * rstInvoice![Steuersatz %] * 100) / 100
|
||||
'900 curBruttobetrag = curNettobetrag + curSteuerbetrag
|
||||
'910 curDifferenzbetrag = curDifferenzbetrag - curBruttobetrag
|
||||
'920 Buchungssatz.FiBuBruttobetrag = Format(curBruttobetrag, "########0.00")
|
||||
'930 Buchungssatz.FiBuSteuersatz = Format(rstInvoice![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.
|
||||
'940 Buchungssatz.FiBuSteuerbetrag = " "
|
||||
'950 Else
|
||||
'960 curBruttobetrag = curNettobetrag
|
||||
'970 curDifferenzbetrag = curDifferenzbetrag - curBruttobetrag
|
||||
'980 Buchungssatz.FiBuBruttobetrag = Format(curBruttobetrag, "########0.00")
|
||||
'990 Buchungssatz.FiBuSteuersatz = "00,00"
|
||||
'1000 Buchungssatz.FiBuSteuerbetrag = " "
|
||||
'1010 End If
|
||||
'1020 If IsNull(rstInvoice![WährungFremd]) Then
|
||||
'1030 Buchungssatz.FiBuEigenbruttobetrag = Format(curBruttobetrag, "########0.00")
|
||||
'1040 Else
|
||||
'1050 Buchungssatz.FiBuEigenbruttobetrag = Format(fktEuro(curBruttobetrag, rstInvoice![WährungFremd], "EUR"), "########0.00")
|
||||
'1060 End If
|
||||
'1070 Print #DateiNr, Trim(Buchungssatz.FiBuBuchungsart); Chr(9);
|
||||
'1080 Print #DateiNr, Trim(Buchungssatz.FiBuBelegdatum); Chr(9);
|
||||
'1090 Print #DateiNr, Trim(Buchungssatz.FiBuBelegnummer); Chr(9);
|
||||
'1100 Print #DateiNr, Trim(Buchungssatz.FiBuSollkontonummer); Chr(9);
|
||||
'1110 Print #DateiNr, Trim(Buchungssatz.FiBuHabenkontonummer); Chr(9);
|
||||
'1120 Print #DateiNr, Trim(Buchungssatz.FiBuBuchungstext); Chr(9);
|
||||
'1130 Print #DateiNr, Trim(Buchungssatz.FiBuBruttobetrag); Chr(9);
|
||||
'1140 Print #DateiNr, Trim(Buchungssatz.FiBuSteuersatz); Chr(9);
|
||||
'1150 Print #DateiNr, Trim(Buchungssatz.FiBuSteuerbetrag); Chr(9);
|
||||
'1160 Print #DateiNr, Trim(Buchungssatz.FiBuWährung); Chr(9);
|
||||
'1170 Print #DateiNr, Trim(Buchungssatz.FiBuEigenbruttobetrag)
|
||||
'1180 rstProduct.MoveNext
|
||||
'1190 Loop
|
||||
'1200 rstProduct.Close
|
||||
|
||||
' ' Buchungssatz Steuerdifferenz
|
||||
'1210 If curDifferenzbetrag <> 0 Then
|
||||
'1220 Select Case rstInvoice![BelegartenNr]
|
||||
' Case RECHNUNG
|
||||
'1230 Buchungssatz.FiBuSollkontonummer = "0"
|
||||
'1240 Buchungssatz.FiBuHabenkontonummer = "8490"
|
||||
'1250 Case GUTSCHRIFT
|
||||
'1260 Buchungssatz.FiBuSollkontonummer = "8490"
|
||||
'1270 Buchungssatz.FiBuHabenkontonummer = "0"
|
||||
'1280 End Select
|
||||
'1290 Buchungssatz.FiBuBuchungstext = Format(rstInvoice![FilialenNr], "0000") & "/" & Format(Right(rstInvoice![AbfertigungsNr], 8), "00000000") & "/" & Format(rstInvoice![UnterNr], "00") & "/Steuerdiff."
|
||||
'1300 Buchungssatz.FiBuBruttobetrag = Format(curDifferenzbetrag, "########0.00")
|
||||
'1310 Buchungssatz.FiBuSteuersatz = "00,00"
|
||||
'1320 Buchungssatz.FiBuSteuerbetrag = " "
|
||||
'1330 If IsNull(rstInvoice![WährungFremd]) Then
|
||||
'1340 Buchungssatz.FiBuEigenbruttobetrag = Format(curDifferenzbetrag, "########0.00")
|
||||
'1350 Else
|
||||
'1360 Buchungssatz.FiBuEigenbruttobetrag = Format(fktEuro(curDifferenzbetrag, rstInvoice![WährungFremd], "EUR"), "########0.00")
|
||||
'1370 End If
|
||||
'1380 Print #DateiNr, Trim(Buchungssatz.FiBuBuchungsart); Chr(9);
|
||||
'1390 Print #DateiNr, Trim(Buchungssatz.FiBuBelegdatum); Chr(9);
|
||||
'1400 Print #DateiNr, Trim(Buchungssatz.FiBuBelegnummer); Chr(9);
|
||||
'1410 Print #DateiNr, Trim(Buchungssatz.FiBuSollkontonummer); Chr(9);
|
||||
'1420 Print #DateiNr, Trim(Buchungssatz.FiBuHabenkontonummer); Chr(9);
|
||||
'1430 Print #DateiNr, Trim(Buchungssatz.FiBuBuchungstext); Chr(9);
|
||||
'1440 Print #DateiNr, Trim(Buchungssatz.FiBuBruttobetrag); Chr(9);
|
||||
'1450 Print #DateiNr, Trim(Buchungssatz.FiBuSteuersatz); Chr(9);
|
||||
'1460 Print #DateiNr, Trim(Buchungssatz.FiBuSteuerbetrag); Chr(9);
|
||||
'1470 Print #DateiNr, Trim(Buchungssatz.FiBuWährung); Chr(9);
|
||||
'1480 Print #DateiNr, Trim(Buchungssatz.FiBuEigenbruttobetrag)
|
||||
'1490 End If
|
||||
|
||||
' ' Buchungssatz Gutschrift (immer letzte Buchungszeile)
|
||||
'1500 If rstInvoice![BelegartenNr] = GUTSCHRIFT Then
|
||||
'1510 Buchungssatz.FiBuSollkontonummer = "0"
|
||||
'1520 Buchungssatz.FiBuHabenkontonummer = rstInvoice![KundenNrZentrale]
|
||||
'1530 Buchungssatz.FiBuBuchungstext = Format(rstInvoice![FilialenNr], "0000") & "/" & Format(Right(rstInvoice![AbfertigungsNr], 8), "00000000") & "/" & Format(rstInvoice![UnterNr], "00")
|
||||
'1540 If IsNull(rstInvoice![WährungFremd]) Then
|
||||
'1550 Buchungssatz.FiBuBruttobetrag = Format(0 - rstInvoice![RechnungsbetragLokal], "########0.00")
|
||||
'1560 Else
|
||||
'1570 Buchungssatz.FiBuBruttobetrag = Format(0 - rstInvoice![RechnungsbetragFremd], "########0.00")
|
||||
'1580 End If
|
||||
'1590 Buchungssatz.FiBuSteuersatz = " "
|
||||
'1600 Buchungssatz.FiBuSteuerbetrag = " "
|
||||
'1610 Buchungssatz.FiBuEigenbruttobetrag = Format(0 - rstInvoice![RechnungsbetragLokal], "########0.00")
|
||||
'1620 Print #DateiNr, Trim(Buchungssatz.FiBuBuchungsart); Chr(9);
|
||||
'1630 Print #DateiNr, Trim(Buchungssatz.FiBuBelegdatum); Chr(9);
|
||||
'1640 Print #DateiNr, Trim(Buchungssatz.FiBuBelegnummer); Chr(9);
|
||||
'1650 Print #DateiNr, Trim(Buchungssatz.FiBuSollkontonummer); Chr(9);
|
||||
'1660 Print #DateiNr, Trim(Buchungssatz.FiBuHabenkontonummer); Chr(9);
|
||||
'1670 Print #DateiNr, Trim(Buchungssatz.FiBuBuchungstext); Chr(9);
|
||||
'1680 Print #DateiNr, Trim(Buchungssatz.FiBuBruttobetrag); Chr(9);
|
||||
'1690 Print #DateiNr, Trim(Buchungssatz.FiBuSteuersatz); Chr(9);
|
||||
'1700 Print #DateiNr, Trim(Buchungssatz.FiBuSteuerbetrag); Chr(9);
|
||||
'1710 Print #DateiNr, Trim(Buchungssatz.FiBuWährung); Chr(9);
|
||||
'1720 Print #DateiNr, Trim(Buchungssatz.FiBuEigenbruttobetrag)
|
||||
'1730 End If
|
||||
|
||||
' ' Datenbereitstellung an FiBu - TrdinDateiname im Buchungskopfsatz eintragen.
|
||||
'1740 Call SPAktionsabfrageOhneErgebnis("dbo.spTrdinFiBuUpdateInvoice", AktuelleVerbindungszeichenfolge(0), rstInvoice![RechnungsDatum], rstInvoice![Rechnungsnummer], Mid(DateiName, Len(DateiName) - 15, 12))
|
||||
|
||||
'1750 rstInvoice.MoveNext
|
||||
'1760 Loop Until rstInvoice.EOF
|
||||
'1770 RC = SysCmd(acSysCmdRemoveMeter)
|
||||
|
||||
'1780 End If
|
||||
'1790 rstInvoice.Close
|
||||
|
||||
' ' Transaktion beenden
|
||||
'1800 If fInTransaktion Then
|
||||
'1810 wrk.CommitTrans
|
||||
'1820 fInTransaktion = False
|
||||
'1830 End If
|
||||
|
||||
'1840 fktFiBuBuchungen = True
|
||||
|
||||
'PROC_Exit:
|
||||
'1850 On Error Resume Next
|
||||
|
||||
' ' Schnittstellendatei schließen.
|
||||
'1860 If fDateiOpen Then Close DateiNr
|
||||
|
||||
'1870 If Not rstProduct Is Nothing Then
|
||||
'1880 rstProduct.Close
|
||||
'1890 Set rstProduct = Nothing
|
||||
'1900 End If
|
||||
'1910 If Not rstInvoice Is Nothing Then
|
||||
'1920 rstInvoice.Close
|
||||
'1930 Set rstInvoice = Nothing
|
||||
'1940 End If
|
||||
'1950 If Not db Is Nothing Then Set db = Nothing
|
||||
'1960 If Not wrk Is Nothing Then Set wrk = Nothing
|
||||
|
||||
'1970 DoCmd.Hourglass False
|
||||
'1980 Exit Function
|
||||
|
||||
'PROC_Error:
|
||||
' ' Änderungen am Datenbestand zurücknehmen.
|
||||
'1990 If fInTransaktion Then
|
||||
'2000 wrk.Rollback
|
||||
'2010 fInTransaktion = False
|
||||
'2020 End If
|
||||
' ' Fehlerinformation anzeigen.
|
||||
'2030 ErrNotify Err, "basFiBuSyska", "fktFiBuBuchungen", eNormalError
|
||||
'2040 Call Logbucheintrag(0, 0, "basFiBuSyska.fktFiBuBuchungen", 0, "Wegen Fehler beendet")
|
||||
'2050 Resume PROC_Exit
|
||||
|
||||
' End Function
|
||||
End Class
|
||||
Reference in New Issue
Block a user