Kopf-Nettobetrag mit Positionsnettobeträgen abgleichen

Fehler BR-FXEXT-CO-10 Factur-X

Absolutwert von (Summe der Nettobeträge aller Rechnungspositionen (BT-106) - Σ Nettobeträge der Rechnungspositionen (BT-131))<= 0,01 * Anzahl der Nettobeträge der Rechnungspositionen (BT-131).

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

Der Nettobetrag auf Dokumentenebene unterscheidet sich von der Summe der Nettobeträge der berücksichtigten Rechnungspositionen stärker als die zulässige Toleranz. Die Toleranz beträgt 0,01 multipliziert mit der Anzahl aller ram:IncludedSupplyChainTradeLineItem-Einträge.

Was die Regel bedeutet

Der Nettobetrag auf Dokumentenebene soll mit der Summe der Nettobeträge der Rechnungspositionen übereinstimmen, abgesehen von der ausdrücklich zugelassenen Rundungstoleranz.

Betroffene Felder BT-106 BT-131
Bitte stimmen Sie den Nettobetrag im Rechnungskopf mit den Rechnungspositionen ab

Der Nettobetrag im Rechnungskopf weicht stärker als zulässig von der Summe der Nettobeträge der berücksichtigten Rechnungspositionen ab. Prüfen Sie den Kopfwert und die Positionsbeträge gemeinsam.

Was ist zu tun?
  1. Vergleichen Sie FacturXInvoice.LineTotalAmount mit der Summe der Werte aus TradeLineItem.LineTotalAmount.
  2. Berücksichtigen Sie bei der Summe nur Rechnungspositionen ohne ram:LineStatusReasonCode oder mit dem Grund DETAIL.
  3. Beachten Sie die zulässige Abweichung von 0,01 je enthaltenem ram:IncludedSupplyChainTradeLineItem.
  4. Erzeugen Sie die Rechnung neu und prüfen Sie sie erneut.
In FactoorSharp prüfen
  • FacturXInvoice.LineTotalAmount (BT-106)
  • TradeLineItem.LineTotalAmount (BT-131)
Technische Details

Der Test summiert auf zwei Dezimalstellen gerundete ram:LineTotalAmount-Werte der Positionen ohne ram:LineStatusReasonCode oder mit dem Grund DETAIL. Er vergleicht die Summe mit dem Kopfwert und erlaubt eine absolute Abweichung von höchstens 0,01 multipliziert mit der Anzahl aller ram:IncludedSupplyChainTradeLineItem-Einträge.

Wo die Regel greift

Die Regel gilt für ram:LineTotalAmount innerhalb von ram:SpecifiedTradeSettlementHeaderMonetarySummation und vergleicht ihn mit den Nettobeträgen der zugehörigen ram:IncludedSupplyChainTradeLineItem-Einträge.

Originalmeldung aus dem Schematron
Absolute Value of (Sum of Invoice line net amount (BT-106) - Σ Invoice line net amounts (BT-131))<= 0,01 * Number of line net amounts (BT-131).
Kontext (rule/@context)
//ram:SpecifiedTradeSettlementHeaderMonetarySummation
Prüfausdruck (assert/@test)
for $calculatedAmount in xs:decimal(round(sum(../../ram:IncludedSupplyChainTradeLineItem[ not(ram:AssociatedDocumentLineDocument/ram:LineStatusReasonCode) or ram:AssociatedDocumentLineDocument/ram:LineStatusReasonCode = 'DETAIL' ]/ram:SpecifiedLineTradeSettlement/ram:SpecifiedTradeSettlementLineMonetarySummation/ ram:LineTotalAmount) * xs:decimal(100)) div xs:decimal(100)), $totalAmount in xs:decimal(ram:LineTotalAmount), $nbLineItems in xs:decimal(count(../../ram:IncludedSupplyChainTradeLineItem)), $tolerance in xs:decimal(0.01), $maxTolerance in $nbLineItems * $tolerance, $diff in xs:decimal($totalAmount - $calculatedAmount), $abs in xs:decimal(abs($diff)) return $abs le $maxTolerance