Skip to main content
Skip table of contents

TBeAccountingControlBC

TBeAccountingControlBC

Die Klasse TBeAccountingControlBC kapselt Eigenschaften und Funktionen zur Rechnungskontrolle im Einkauf.


Eigenschaften

Beschreibung
CbDataModule:ODaten-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:LEntspricht 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:NLieferantennummer für den die Rechnungskontrolle/Freigabe durchgeführt werden soll

aAllowInvoiceDateOutsideFiscalYear:L


Rechnungsdatum außerhalb des Geschäftsjahres erlauben

aAllowDeviationGoodsValueTargetActual:LAbweichung zwischen SOLL und IST erlauben
aAllowNegativeZero:Lnegative 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:NDab235 Id der Position die verändert werden soll

CbSuppInvoiceAuditUpdate():L

Rechnungskontroll-Position anpassen


aCalcPurchPrice:LEKP 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:NDab235 Id der Position die gelöscht werden soll
aDeleteWithStoreAccount:LLöschen mit Zugang
aDeleteWithoutStoreAccount:LLöschen ohne Zugang
aRestorePurchaseDisposition:LBestellrückstände wiederherstellen (Achtung: nur mit aDeleteWithStoreAccount verwendbar!)

Beispiel

CbSuppInvoiceAuditPrepareRelease() / CbSuppInvoiceAuditRelease()

CODE
//##############################################################################
//##############################################################################
// 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()

CODE
//##############################################################################
//##############################################################################
// 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()

CODE
//##############################################################################
//##############################################################################
// 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,

Weitere Verknüpfungen

JavaScript errors detected

Please note, these errors can depend on your browser setup.

If this problem persists, please contact our support.