Summe der Abschläge auf Dokumentenebene abstimmen

Fehler BR-FXEXT-CO-11 Factur-X

Absolutwert von (Summe der Abschläge auf Dokumentenebene (BT-107) - ∑ Beträge des Abschlags auf Dokumentenebene (BT-92))<= 0,01 * Anzahl der Beträge des Abschlags auf Dokumentenebene (BT-92).

Pflichtregel: Solange sie verletzt ist, ist die Rechnung ungültig und wird von Validatoren abgewiesen.
Was nicht stimmt

Wenn Abschläge auf Dokumentenebene vorhanden sind, muss ram:AllowanceTotalAmount ihrer Summe entsprechen. Die zulässige Abweichung beträgt höchstens 0,01 je Abschlag (BT-92); fehlt die Summe bei vorhandenen Abschlägen oder weicht sie stärker ab, ist die Regel verletzt.

Was die Regel bedeutet

BT-107 ist der Gesamtbetrag der Abschläge auf Dokumentenebene und muss mit den einzelnen Beträgen BT-92 übereinstimmen, abgesehen von der festgelegten Rundungstoleranz.

Betroffene Felder BT-107 BT-92
Bitte stimmen Sie den Gesamtbetrag der Abschläge auf Dokumentenebene ab

Der ausgewiesene Gesamtbetrag der Abschläge stimmt nicht ausreichend mit den einzelnen Abschlägen auf Dokumentenebene überein oder der Gesamtbetrag fehlt. Sie können die Beträge anhand der erfassten Abschläge abgleichen.

Was ist zu tun?
  1. Vergleichen Sie ram:AllowanceTotalAmount mit den Beträgen ram:ActualAmount der Abschläge in ram:SpecifiedTradeAllowanceCharge.
  2. Prüfen Sie den Gesamtbetrag über AllowanceTotalAmount und die Einzelbeträge über ActualAmount.
  3. Berücksichtigen Sie die zulässige Toleranz von 0,01 je Abschlag.
  4. Erzeugen Sie die Rechnung neu und prüfen Sie sie erneut.
In FactoorSharp prüfen
  • FacturXInvoice.AllowanceTotalAmount (BT-107)
  • AbstractTradeAllowanceCharge.ActualAmount (Document level allowance: BT-92)
Technische Details

Der Test vergleicht ram:AllowanceTotalAmount mit der gerundeten Summe der Beträge aus ram:SpecifiedTradeAllowanceCharge/ram:ActualAmount, deren ram:ChargeIndicator/udt:Indicator den Wert false hat. Die erlaubte absolute Differenz ist 0,01 multipliziert mit der Anzahl dieser Abschläge; wenn keine Abschläge und kein Gesamtbetrag vorliegen, gilt der Test ebenfalls als erfüllt.

Wo die Regel greift

Gilt für die Summe der Abschläge in ram:SpecifiedTradeSettlementHeaderMonetarySummation und die einzelnen Abschläge in ram:SpecifiedTradeAllowanceCharge auf Dokumentenebene.

Originalmeldung aus dem Schematron
Absolute Value of (Sum of allowances on document level (BT-107) - Σ Document level allowance amounts (BT-92))<= 0,01 * Number of Document level allowance amounts (BT-92).
Kontext (rule/@context)
//ram:SpecifiedTradeSettlementHeaderMonetarySummation
Prüfausdruck (assert/@test)
( not(/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ ram:SpecifiedTradeAllowanceCharge[ram:ChargeIndicator/udt:Indicator='false']) and not (ram:AllowanceTotalAmount) ) or ( for $calculatedAmount in xs:decimal(round(sum(/rsm:CrossIndustryInvoice/ rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ ram:SpecifiedTradeAllowanceCharge[ram:ChargeIndicator/udt:Indicator='false']/ ram:ActualAmount)* 10 * 10 ) div 100), $totalAmount in xs:decimal(ram:AllowanceTotalAmount), $nbAllowanceItems in xs:decimal(count(../ram:SpecifiedTradeAllowanceCharge[ram:ChargeIndicator/ udt:Indicator='false'])), $tolerance in xs:decimal(0.01), $maxTolerance in $nbAllowanceItems * $tolerance, $diff in xs:decimal($totalAmount - $calculatedAmount), $abs in xs:decimal(abs($diff)) return $abs le $maxTolerance )