Files
SDL/SDL/Fakturierung/cFakturierungInterfaceSyska.vb
2024-10-02 08:59:41 +00:00

274 lines
17 KiB
VB.net

Public Class cFakturierungInterfaceSyska
Private Sub TrdinSchreiben()
'3430 On Error GoTo PROC_Error
' Dim wrk As DAO.Workspace
' Dim db As DAO.Database
' Dim rstRK As DAO.Recordset
' Dim qryRP As DAO.QueryDef
' Dim rstRP As DAO.Recordset
' Dim rstInvoice As DAO.Recordset
' Dim rstProduct As DAO.Recordset
' Dim strPrompt As String
' Dim strTitle As String
' Dim strSachkonto As String
' Dim fInTransaktion As Boolean
' Dim lngFortschritt As Long
' Dim curInvoiceSteuerpflichtigerBetragLokal As Currency
' Dim curInvoiceSteuerfreierBetragLokal As Currency
' Dim curInvoiceSteuerbetragLokal As Currency
' Dim curInvoiceRechnungsbetragLokal As Currency
' Dim curInvoiceSteuerpflichtigerBetragFremd As Currency
' Dim curInvoiceSteuerfreierBetragFremd As Currency
' Dim curInvoiceSteuerbetragFremd As Currency
' Dim curInvoiceRechnungsbetragFremd As Currency
' Dim curProductSteuerpflichtigerBetragLokal As Currency
' Dim curProductSteuerfreierBetragLokal As Currency
' Dim curProductSteuerpflichtigerBetragFremd As Currency
' Dim curProductSteuerfreierBetragFremd As Currency
' Dim curWährungsdifferenzSteuerpflichtigerBetrag As Currency
' Dim curWährungsdifferenzSteuerfreierBetrag As Currency
' Dim lngSatzzähler As Long
'3440 DoCmd.Hourglass True
'3450 Call Logbucheintrag(0, 0, "VERAG-Daten-Transfer.TrdinSchreiben", 0, "gestartet")
'3460 Set wrk = DBEngine.Workspaces(0)
'3470 Set db = CurrentDb
' ' Rechnungskopfsätze lesen.
'3480 Set rstRK = db.OpenRecordset("qryTrdinSchreiben_Select_RK", dbOpenSnapshot, dbSeeChanges)
'3490 If Not rstRK.EOF Then
'3500 rstRK.MoveLast
'3510 Call SysCmd(acSysCmdInitMeter, "Rechnungen werden verarbeitet.", rstRK.RecordCount)
'3520 rstRK.MoveFirst
'3530 lngFortschritt = 0
'3540 Do Until rstRK.EOF
'3550 lngFortschritt = lngFortschritt + 1
'3560 Call SysCmd(acSysCmdUpdateMeter, lngFortschritt)
'3570 DoEvents
' ' RK - Währungsabhängige Datenaufbereitung.
'3580 If rstRK![RK_Währungscode] = LOKALWÄHRUNG Then
' ' Lokalwährung (EURO)
'3590 curInvoiceSteuerpflichtigerBetragLokal = rstRK![RK_SteuerpflichtigerBetrag]
'3600 curInvoiceSteuerfreierBetragLokal = rstRK![RK_SteuerfreierBetrag]
'3610 curInvoiceSteuerbetragLokal = rstRK![RK_Steuerbetrag]
'3620 curInvoiceRechnungsbetragLokal = rstRK![RK_Rechnungsbetrag]
'3630 curInvoiceSteuerpflichtigerBetragFremd = 0
'3640 curInvoiceSteuerfreierBetragFremd = 0
'3650 curInvoiceSteuerbetragFremd = 0
'3660 curInvoiceRechnungsbetragFremd = 0
'3670 Else
' ' Fremdwährung.
'3680 curInvoiceSteuerpflichtigerBetragFremd = rstRK![RK_SteuerpflichtigerBetrag]
'3690 curInvoiceSteuerfreierBetragFremd = rstRK![RK_SteuerfreierBetrag]
'3700 curInvoiceSteuerbetragFremd = rstRK![RK_Steuerbetrag]
'3710 curInvoiceRechnungsbetragFremd = rstRK![RK_Rechnungsbetrag]
' ' Fremdwährung in Lokalwährung umrechnen.
'3720 curInvoiceSteuerpflichtigerBetragLokal = fktEuro(rstRK![RK_SteuerpflichtigerBetrag], rstRK![RK_Währungscode], LOKALWÄHRUNG)
'3730 curInvoiceSteuerfreierBetragLokal = fktEuro(rstRK![RK_SteuerfreierBetrag], rstRK![RK_Währungscode], LOKALWÄHRUNG)
'3740 curInvoiceSteuerbetragLokal = CLng(curInvoiceSteuerpflichtigerBetragLokal * rstRK![RK_SteuersatzProzent] * 100) / 100
'3750 curInvoiceRechnungsbetragLokal = curInvoiceSteuerpflichtigerBetragLokal + curInvoiceSteuerfreierBetragLokal + curInvoiceSteuerbetragLokal
' ' Basis zur Feststellung von Rundungsdifferenzen schaffen.
'3760 curWährungsdifferenzSteuerpflichtigerBetrag = curInvoiceSteuerpflichtigerBetragLokal
'3770 curWährungsdifferenzSteuerfreierBetrag = curInvoiceSteuerfreierBetragLokal
'3780 lngSatzzähler = rstRK!RK_Satzzähler
'3790 End If
' ' Buchungskopfsatz lesen.
'3800 Set rstInvoice = SPRecordsetMitParameter("dbo.spTrdinSchreibenSelectInvoicePKey", AktuelleVerbindungszeichenfolge(0), rstRK![RK_RechnungsDatum], rstRK![RK_RechnungsNr])
'3810 If Not rstInvoice.EOF Then
'3820 rstInvoice.Close
' ' Nachricht
'3830 strPrompt = "Rechnung-Nr. " & rstRK![RK_RechnungsNr] & " vom " & rstRK![RK_RechnungsDatum] & " kann nicht verbucht werden. " & _
' "Es ist bereits ein Eintrag vorhanden." & vbCrLf & vbCrLf & "Möchten Sie den Buchungsvorgang abbrechen?"
'3840 strTitle = "Daten-Transfer.TrdinSchreiben"
'3850 If (MsgBox(strPrompt, vbCritical + vbYesNo + vbDefaultButton1, strTitle)) = vbYes Then
'3860 GoTo PROC_Exit
'3870 Else
'3880 GoTo RK_MoveNext
'3890 End If
'3900 Else
'3910 rstInvoice.Close
' ' Transaktion starten.
'3920 wrk.BeginTrans
'3930 fInTransaktion = True
' ' Buchungskopfsatz erstellen.
'3940 Call SPAktionsabfrageOhneErgebnis("dbo.spTrdinSchreibenInsertInvoice", AktuelleVerbindungszeichenfolge(0), _
' rstRK![RK_RechnungsDatum], rstRK![RK_RechnungsNr], DLookup("[Speditionsbuch]", "Filialen", "[FilialenNr]=" & rstRK![RK_FilialenNr]), _
' rstRK![RK_FilialenNr], rstRK![RK_AbfertigungsNr], rstRK![RK_UnterNr], rstRK![RK_Abfertigungsdatum], rstRK![RK_BelegartenNr], _
' rstRK![RK_KundenNrZentrale], rstRK![RK_RechnungsKundenNr], rstRK![RK_RechnungsLandKz], rstRK![RK_RechnungsUstIdKz], rstRK![RK_RechnungsUstIdNr], _
' IIf(rstRK![RK_Lastschrift], 1, 0), rstRK![RK_Steuerschlüssel], rstRK![RK_SteuersatzProzent], _
' LOKALWÄHRUNG, curInvoiceSteuerpflichtigerBetragLokal, curInvoiceSteuerfreierBetragLokal, curInvoiceSteuerbetragLokal, curInvoiceRechnungsbetragLokal, _
' IIf(rstRK![RK_Währungscode] <> LOKALWÄHRUNG, rstRK![RK_Währungscode], Null), curInvoiceSteuerpflichtigerBetragFremd, curInvoiceSteuerfreierBetragFremd, _
' curInvoiceSteuerbetragFremd, curInvoiceRechnungsbetragFremd, Null, 0, rstRK![RK_Nettozahlungsziel], rstRK![RK_Firma_ID], Null)
' ' Rechnungspositionssätze lesen.
'3950 Set qryRP = db.QueryDefs("qryTrdinSchreiben_Select_RP")
'3960 qryRP.Parameters("[prmRechnungsDatum]") = rstRK![RK_RechnungsDatum]
'3970 qryRP.Parameters("[prmRechnungsNr]") = rstRK![RK_RechnungsNr]
'3980 Set rstRP = qryRP.OpenRecordset(dbOpenForwardOnly, dbSeeChanges)
'3990 qryRP.Close
'4000 Do Until rstRP.EOF
' ' RP - Währungsabhängige Datenaufbereitung.
'4010 If rstRK![RK_Währungscode] = LOKALWÄHRUNG Then
' ' Lokalwährung (EURO)
'4020 curProductSteuerpflichtigerBetragLokal = rstRP![RP_SteuerpflichtigerBetrag]
'4030 curProductSteuerfreierBetragLokal = rstRP![RP_SteuerfreierBetrag]
'4040 curProductSteuerpflichtigerBetragFremd = 0
'4050 curProductSteuerfreierBetragFremd = 0
'4060 Else
' ' Fremdwährung in Lokalwährung umrechnen.
'4070 curProductSteuerpflichtigerBetragFremd = rstRP![RP_SteuerpflichtigerBetrag]
'4080 curProductSteuerfreierBetragFremd = rstRP![RP_SteuerfreierBetrag]
'4090 curProductSteuerpflichtigerBetragLokal = fktEuro(rstRP![RP_SteuerpflichtigerBetrag], rstRK![RK_Währungscode], LOKALWÄHRUNG)
'4100 curProductSteuerfreierBetragLokal = fktEuro(rstRP![RP_SteuerfreierBetrag], rstRK![RK_Währungscode], LOKALWÄHRUNG)
' ' Rundungsdifferenzen bei der Währungsumrechnung in der letzten Position ausgleichen.
'4110 curWährungsdifferenzSteuerpflichtigerBetrag = curWährungsdifferenzSteuerpflichtigerBetrag - curProductSteuerpflichtigerBetragLokal
'4120 curWährungsdifferenzSteuerfreierBetrag = curWährungsdifferenzSteuerfreierBetrag - curProductSteuerfreierBetragLokal
'4130 lngSatzzähler = lngSatzzähler - rstRP!RP_Satzzähler
'4140 If lngSatzzähler = 0 Then
'4150 If curWährungsdifferenzSteuerpflichtigerBetrag <> 0 Then
'4160 curProductSteuerpflichtigerBetragLokal = curProductSteuerpflichtigerBetragLokal + curWährungsdifferenzSteuerpflichtigerBetrag
'4170 End If
'4180 If curWährungsdifferenzSteuerfreierBetrag <> 0 Then
'4190 curProductSteuerfreierBetragLokal = curProductSteuerfreierBetragLokal + curWährungsdifferenzSteuerfreierBetrag
'4200 End If
'4210 End If
'4220 End If
' ' Sachkonto ermitteln.
'4230 If IsNull(rstRK![RK_RechnungsLandKz]) _
' Or rstRK![RK_RechnungsLandKz] = " " _
' Or rstRK![RK_RechnungsLandKz] = "A" _
' Or rstRK![RK_RechnungsLandKz] = "AT" Then
'4240 If rstRP![RP_Steuerpflichtig] Then
'4250 strSachkonto = Nz(DLookup("[SachkontoInlandSteuerpflichtig]", "Leistungen", "[LeistungsNr]=" & rstRP![RP_LeistungsNr]), "")
'4260 Else
'4270 strSachkonto = Nz(DLookup("[SachkontoInlandSteuerfrei]", "Leistungen", "[LeistungsNr]=" & rstRP![RP_LeistungsNr]), "")
'4280 End If
'4290 Else
'4300 If DLookup(Nz("[MitgliedslandEU]", False), "[Währungstabelle]", "[LandKz]='" & rstRK![RK_RechnungsLandKz] & "'") Then
'4310 If rstRP![RP_Steuerpflichtig] Then
'4320 strSachkonto = Nz(DLookup("[SachkontoEUSteuerpflichtig]", "Leistungen", "[LeistungsNr]=" & rstRP![RP_LeistungsNr]), "")
'4330 Else
'4340 strSachkonto = Nz(DLookup("[SachkontoEUSteuerfrei]", "Leistungen", "[LeistungsNr]=" & rstRP![RP_LeistungsNr]), "")
'4350 End If
'4360 Else
'4370 strSachkonto = Nz(DLookup("[Sachkonto3Land]", "Leistungen", "[LeistungsNr]=" & rstRP![RP_LeistungsNr]), "")
'4380 End If
'4390 End If
' ' Buchungspositionssatzsatz lesen.
'4400 Set rstProduct = SPRecordsetMitParameter("dbo.spTrdinSchreibenSelectProductPKey", AktuelleVerbindungszeichenfolge(0), _
' rstRK![RK_RechnungsDatum], rstRK![RK_RechnungsNr], rstRP![RP_LeistungsNr], rstRP![RP_LeistungsBez], IIf(rstRP![RP_Steuerpflichtig], 1, 0))
'4410 If Not rstProduct.EOF Then
'4420 rstProduct.Close
' ' Transaktion zurücksetzen.
'4430 If fInTransaktion Then
'4440 wrk.Rollback
'4450 fInTransaktion = False
'4460 End If
' ' Nachricht
'4470 strPrompt = "Rechnung-Nr. " & rstRK![RK_RechnungsNr] & " vom " & rstRK![RK_RechnungsDatum] & vbCrLf & _
' "Leistungs-Nr. " & rstRP![RP_LeistungsNr] & " Leistungsbezeichnung " & rstRP![RP_LeistungsBez] & vbCrLf & _
' "Steuerpflichtig " & IIf(rstRP![RP_Steuerpflichtig], "Ja", "Nein") & vbCrLf & _
' "kann nicht verbucht werden. Es ist bereits ein Eintrag vorhanden." & vbCrLf & vbCrLf & "Möchten Sie den Buchungsvorgang abbrechen?"
'4480 strTitle = "Daten-Transfer.TrdinSchreiben"
'4490 If (MsgBox(strPrompt, vbCritical + vbYesNo + vbDefaultButton1, strTitle)) = vbYes Then
'4500 GoTo PROC_Exit
'4510 Else
'4520 GoTo RK_MoveNext
'4530 End If
'4540 Else
'4550 rstProduct.Close
' ' Buchungspositionssatz erstellen.
'4560 Call SPAktionsabfrageOhneErgebnis("dbo.spTrdinSchreibenInsertProduct", AktuelleVerbindungszeichenfolge(0), _
' rstRK![RK_RechnungsDatum], rstRK![RK_RechnungsNr], rstRP![RP_LeistungsNr], rstRP![RP_LeistungsBez], IIf(rstRP![RP_Steuerpflichtig], 1, 0), _
' curProductSteuerpflichtigerBetragLokal, curProductSteuerfreierBetragLokal, curProductSteuerpflichtigerBetragFremd, curProductSteuerfreierBetragFremd, _
' rstRP![RP_Belegdaten], strSachkonto, rstRK![RK_Buchungstext])
'4570 End If
'4580 rstRP.MoveNext
'4590 Loop
'4600 rstRP.Close
' ' Buchung im Rechnungskopfsatz eintragen.
'4610 Call SPAktionsabfrageOhneErgebnis("dbo.spTrdinSchreibenUpdateRK", AktuelleVerbindungszeichenfolge(0), rstRK![RK_RechnungsDatum], rstRK![RK_RechnungsNr], 1)
' ' Transaktion beenden.
'4620 If fInTransaktion Then
'4630 wrk.CommitTrans
'4640 fInTransaktion = False
'4650 End If
'4660 End If
'RK_MoveNext:
'4670 rstRK.MoveNext
'4680 Loop
'4690 End If
'4700 rstRK.Close
'PROC_Exit:
'4710 On Error Resume Next
'4720 If Not rstProduct Is Nothing Then
'4730 rstProduct.Close
'4740 Set rstProduct = Nothing
'4750 End If
'4760 If Not rstInvoice Is Nothing Then
'4770 rstInvoice.Close
'4780 Set rstInvoice = Nothing
'4790 End If
'4800 If Not rstRP Is Nothing Then
'4810 rstRP.Close
'4820 Set rstRP = Nothing
'4830 End If
'4840 If Not rstRK Is Nothing Then
'4850 rstRK.Close
'4860 Set rstRK = Nothing
'4870 End If
'4880 If Not qryRP Is Nothing Then
'4890 qryRP.Close
'4900 Set qryRP = Nothing
'4910 End If
'4920 If Not db Is Nothing Then Set db = Nothing
'4930 If Not wrk Is Nothing Then Set wrk = Nothing
'4940 Call SysCmd(acSysCmdRemoveMeter)
'4950 DoCmd.Hourglass False
'4960 Exit Sub
'PROC_Error:
' ' Änderungen am Datenbestand zurücknehmen.
'4970 If fInTransaktion Then
'4980 wrk.Rollback
'4990 fInTransaktion = False
'5000 End If
' ' Fehlerinformation anzeigen.
'5010 ErrNotify Err, "Form_Daten-Transfer", "TrdinSchreiben", eNormalError
'5020 Resume PROC_Exit
End Sub
End Class