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