TBeAccountingControlBC
TBeAccountingControlBC
Die Klasse TBeAccountingControlBC kapselt Eigenschaften und Funktionen zur Rechnungskontrolle im Einkauf.
Eigenschaften | Beschreibung |
---|---|
CbDataModule:O | Daten-Modul, für alle Funktionen und Methoden |
CbParams:O | Zugriff auf die Freigabe Parameter (z.B. Rechnungsnummer, Porto/Verpackung) Hinweis: Die Eigenschaft ist erst nach dem Aufruf von CbSuppInvoiceAuditPrepareRelease() verfügbar/gefüllt Beschreibung/Eigenschaften siehe TBeCbSuppInvoiceAuditReleaseParam |
CbMem100:O | Lieferanten Datensatz der Dab100 als Memtable, zur Bearbeitung der Lieferbedingungen Hinweis: Die Eigenschaft ist erst nach dem Aufruf von CbSuppInvoiceAuditPrepareRelease() verfügbar/gefüllt |
Funktionen und Methoden | Parameter | Beschreibung |
---|---|---|
CbSuppInvoiceAuditPrepareRelease():L Erzeugung der der Daten für eine Rechnungskontrolle zu einem Lieferanten. Nachdem die Funktion aufgerufen wurden können die Daten über CbParams & CbMem100 validiert bzw. angepasst werden. | aSupplierNo:N | Lieferantennummer für den die Rechnungskontrolle/Freigabe durchgeführt werden soll |
aAccountingPositions:A | Positionen für die Rechnungskontrolle/Freigabe (Array mit Dab235 Ids) | |
aUseNewVAT:L | Entspricht Schalter "Umleitung Ust. Sätze" | |
CbSuppInvoiceAuditRelease():L Rechnungsfreigabe mit den durch CbSuppInvoiceAuditPrepareRelease() erzeugten Daten. Bei der Freigabe werden wie bei einer Freigabe and er Oberfläche die Events "Vor Abschluss Rechnungskontrolle" und "Nach Rechnungskontrolle" ausgelöst | aSupplierNo:N | Lieferantennummer für den die Rechnungskontrolle/Freigabe durchgeführt werden soll |
aAllowInvoiceDateOutsideFiscalYear:L | Rechnungsdatum außerhalb des Geschäftsjahres erlauben | |
aAllowDeviationGoodsValueTargetActual:L | Abweichung zwischen SOLL und IST erlauben | |
aAllowNegativeZero:L | negative Positionen die sind gegenseitig aufheben erlauben | |
CbSuppInvoiceAuditPrepareUpdate():L Vorbereitung einer Rechnungskontroll-Position Anpassung. Nachdem die Funktion aufgerufen wurde steht der Dab235 Datensatz über die Eigenschaft CbMem235 zur Verfügung. | aDab235Id:N | Dab235 Id der Position die verändert werden soll |
CbSuppInvoiceAuditUpdate():L Rechnungskontroll-Position anpassen | aCalcPurchPrice:L | EKP neu berechnen |
CbSuppInvoiceAuditDelete():L Rechnungskontroll-Position löschen. Hinweis: es kann immer nur mit Zugang oder ohne Zugang gelöscht werden. Sind beide Parameter aktiv oder kein Parameter aktiv wird eine Exception ausgelöst | aDab235Id:N | Dab235 Id der Position die gelöscht werden soll |
aDeleteWithStoreAccount:L | Löschen mit Zugang | |
aDeleteWithoutStoreAccount:L | Löschen ohne Zugang | |
aRestorePurchaseDisposition:L | Bestellrückstände wiederherstellen (Achtung: nur mit aDeleteWithStoreAccount verwendbar!) |
Beispiel
CbSuppInvoiceAuditPrepareRelease() / CbSuppInvoiceAuditRelease()
//##############################################################################
//##############################################################################
// Beschreibung: TBeAccountingControlBC
// - CbSuppInvoiceAuditPrepareRelease()
// - CbSuppInvoiceAuditRelease()
//##############################################################################
//##############################################################################
| oBC, oParam, oDM, aPos, nSupplier, i, oMem100,
lAllowInvoiceDateOutsideFiscalYear:L, lAllowDeviationGoodsValueTargetActual:L,
lAllowNegativeZero:L, lUseNewVAT:L |
startseq
startseq
oDM := DBGetDataModuleFromPool(),
oBC := CreateObject('TBeAccountingControlBC', 'BC'),
oBC.CbDataModule := oDM,
lUseNewVAT := true, // Nur möglich wenn USt.-Umstellung in den Festwerten konfiguriert
nSupplier := 90111, // Lieferant Nr.
aPos := {7355, 7184}, // Dab235 Ids
// Vorbereitung der Rechnungskontrolle (Vorberechnung, Validierung)
if oBC.CbSuppInvoiceAuditPrepareRelease(nSupplier, aPos, lUseNewVAT) then
lAllowInvoiceDateOutsideFiscalYear := true, // Rechnungsdatum außerhalb Geschäftsjahr erlauben
lAllowDeviationGoodsValueTargetActual := false, // Abweichenden Warenwert Soll/Ist erlauben
lAllowNegativeZero := false, // Rechnungsfreigabe für Positionen mit negativen und positiven Mengen mit Gesamt-Wert 0 erlauben
oParam := oBC.CbParams, // TBeCbSuppInvoiceAuditReleaseParam
oMem100 := oBC.CbMem100, // Dab100 Datensatz zur Bearbeitung der Zahlungsbedingungen
// Verfügbare Steuersätze
writeln('------ Verfügbare Steuersätze ------'),
for i := 1 to MBEMAXVATID do
writeln(i, // Steuersatz Nr.
PadL(oParam.CbGetVatRateDescription(i), 15, ' '), // Bezeichnung
PadL(oParam.CbGetVatRate(i), 4) + '%', // Steuersatz
PadL(oParam.CbGetNewVATIdx(i), 2) // Steuersatz Umleitung auf Steuersatz Nr.
),
next,
writeln(''),
oParam.CbAccNo := 'RE1234', // Rechnungsnummer
oParam.CbAccDate := today(), // Rechnungsdatum
oParam.CbFibuAcc := true, // FiBu Buchung? Nur aktiv wenn DABPAR:EK_RE_KONT = F
oParam.CbIntDocNo := 'INT134', // Interne Belegnummer
oParam.CbPostage := 10, // Porto/Fracht
oParam.CbPostage_VATID := 8, // Porto/Fracht VAT ID
// Nur für FiBu Buchungen
if oParam.CbFibuAcc then
oParam.CbPackage := 10, // Verpackung
oParam.CbPackage_VATID := 8, // Verpackung VAT ID
oParam.CbInsurance := 10, // Versicherung
oParam.CbInsurance_VATID := 8, // Versicherung VAT ID
oParam.CbExtra := 10, // Sonstige Kosten
oParam.CbExtra_VATID := 8, // Sonstige Kosten VAT ID
// oParam.CbAccText := '', // Buchungstext
writeln('Buchungstext', oParam.CbAccText), // Buchungstext
// Zahlungsbedingungen
writeln(''),
writeln('Fälligkeit an festem Tag', oMem100:ZA_FIXDAT),
writeln('Skonto-Tage', oMem100:SKONTOTAGE),
writeln('Skonto-%', oMem100:SKONTOPROZ),
writeln('Skonto-Tage (2. %-Satz)', oMem100:SKONTOTAG2),
writeln('Skonto-% (2. %-Satz)', oMem100:SKONTOPRO2),
writeln('Netto-Tage', oMem100:NETTOTAGE),
writeln('Netto-Fällig im Folgemonat', oMem100:NETTO_FM),
writeln('Skonto im Folgemonat', oMem100:SKONTO_FM),
writeln('Zahlungs-Bedingungen Klartext', Alltrim(oMem100:ZAHLBED)),
writeln(''),
endif,
//oParam.CbSetNetto(8, 15.0), // Warenwert für Steuersatz setzten
// Warenwert + Steuerwert + Wert Fremdwährung
for i := 1 to MBEMAXVATID do
writeln(i, // Steuersatz Nr.
PadL(oParam.CbGetNetto(i), 10), // Warenwert
PadL(oParam.CbGetVAT(i), 10), // Steuerwert
PadL(oParam.CbGetVATForeign(i), 10) // Steuerwert Fremdwährung
),
next,
writeln(''),
writeln('Lieferant = Ausländer', oMem100:MWSTKZ),
if oParam.CbFibuAcc then
writeln('Waren Wert SOLL', oParam.CbDebitValue), // ReadOnly - Waren Wert SOLL
endif,
writeln('Abweichung Warenwert SOLL/IST', oParam.CbVarianceFor), // ReadOnly - Abweichung Warenwert SOLL/IST
writeln('Rechnungssumme', oParam.CbTotal), // ReadOnly - Rechnungssumme
// Rechnungskontroll Freigabe durchführen
if not oBC.CbSuppInvoiceAuditRelease(nSupplier, lAllowInvoiceDateOutsideFiscalYear, lAllowDeviationGoodsValueTargetActual, lAllowNegativeZero) then
writeln('Fehler bei der Rechnungskontroll Freigabe'),
endif,
endif,
onerror
writeln(GetErrorText(), GetErrorObj()),
stopseq,
always
DBReturnDataModuleToPool(oDM),
DestroyObject(oBC),
stopseq,
CbSuppInvoiceAuditPrepareUpdate() / CbSuppInvoiceAuditUpdate()
//##############################################################################
//##############################################################################
// Beschreibung: TBeAccountingControlBC
// - CbSuppInvoiceAuditPrepareUpdate()
// - CbSuppInvoiceAuditUpdate()
//##############################################################################
//##############################################################################
| oBC, oDM, aPos, oMem235, lCalcPurchPrice:L |
startseq
startseq
oDM := DBGetDataModuleFromPool(),
oBC := CreateObject('TBeAccountingControlBC', 'BC'),
oBC.CbDataModule := oDM,
aPos := 7355, // Dab235 Id
// Vorbereitung der Rechnungskontrolle (Vorberechnung, Validierung)
if oBC.CbSuppInvoiceAuditPrepareUpdate(aPos) then
oMem235 := oBC.CbMem235, // nach dem PrepareUpdate() ist der Dab235 Datensatz über CbMem235 verfügbar
// writeln(oMem235.RecAsArray),
lCalcPurchPrice := false, // EKP Neuberechnung
if not oBC.CbSuppInvoiceAuditUpdate(lCalcPurchPrice) then
writeln('Fehler bei der Rechnungskontrolle Update'),
endif,
endif,
onerror
writeln(GetErrorText(), GetErrorObj()),
stopseq,
always
DBReturnDataModuleToPool(oDM),
DestroyObject(oBC),
stopseq,
CbSuppInvoiceAuditDelete()
//##############################################################################
//##############################################################################
// Beschreibung: TBeAccountingControlBC
// - CbSuppInvoiceAuditDelete()
//##############################################################################
//##############################################################################
| oBC, oDM, aPos, lDeleteWithStoreAccount:L, lRestorePurchaseDisposition:L |
startseq
startseq
oDM := DBGetDataModuleFromPool(),
oBC := CreateObject('TBeAccountingControlBC', 'BC'),
oBC.CbDataModule := oDM,
lDeleteWithStoreAccount := false, // Löschen mit oder ohne Zugang
lRestorePurchaseDisposition := false, // Bestellrückstände wiederherstellen (nur mit lDeleteWithStoreAccount = True)
aPos := 7355, // Dab235 Id
// Rechnungskontrolle Position löschen
if not oBC.CbSuppInvoiceAuditDelete(aPos, lDeleteWithStoreAccount, lRestorePurchaseDisposition) then
writeln('Fehler bei der Rechnungskontrolle Delete'),
endif,
onerror
writeln(GetErrorText(), GetErrorObj()),
stopseq,
always
DBReturnDataModuleToPool(oDM),
DestroyObject(oBC),
stopseq,