Nettobetrag für jede untergeordnete Gruppenposition erforderlich

Fehler BR-FXEXT-12 Factur-X

Wenn der „Untertyp der Rechnungsposition“ (EXT-FR-FE-163 / BT-X-8) den Wert „GROUP“ hat und wenn der „Nettobetrag der Rechnungsposition“ (BT-131) angegeben ist, müssen alle niedrigeren Ebenen, deren „Untertyp der Rechnungsposition“ (EXT-FR-FE-163) „GROUP“ entspricht, einen Wert für den „Nettobetrag der Rechnungsposition“ (BT-131) enthalten.

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

Mindestens eine direkt untergeordnete Gruppenposition mit LineStatusReasonCode GROUP enthält keinen LineTotalAmount. Die Prüfung vergleicht die Anzahl der direkt zugeordneten Gruppenpositionen mit der Anzahl dieser Positionen, die einen Nettobetrag enthalten.

Was die Regel bedeutet

Wenn eine Gruppenposition mit Nettobetrag untergeordnete Gruppenpositionen hat, muss für jede dieser untergeordneten Gruppenpositionen ebenfalls ein Nettobetrag angegeben sein.

Betroffene Felder BT-X-8 BT-131
Bitte ergänzen Sie den Nettobetrag jeder untergeordneten Gruppenposition

Mindestens einer untergeordneten Gruppenposition fehlt der Nettobetrag. Ergänzen Sie den Betrag für jede untergeordnete Gruppenposition.

Was ist zu tun?
  1. Suchen Sie die untergeordneten IncludedSupplyChainTradeLineItem-Positionen mit ParentLineID und LineStatusReasonCode GROUP.
  2. Ergänzen Sie bei jeder dieser Gruppenpositionen TradeLineItem.LineTotalAmount.
  3. Erzeugen Sie die Rechnung neu und prüfen Sie sie erneut.
So sieht es aus
✗ Führt zur Meldung
<ram:IncludedSupplyChainTradeLineItem>
  <ram:AssociatedDocumentLineDocument>
    <ram:LineID>2</ram:LineID>
    <ram:ParentLineID>1</ram:ParentLineID>
    <ram:LineStatusReasonCode>GROUP</ram:LineStatusReasonCode>
  </ram:AssociatedDocumentLineDocument>
  <ram:SpecifiedLineTradeSettlement>
    <ram:SpecifiedTradeSettlementLineMonetarySummation/>
  </ram:SpecifiedLineTradeSettlement>
</ram:IncludedSupplyChainTradeLineItem>
✓ In Ordnung
<ram:IncludedSupplyChainTradeLineItem>
  <ram:AssociatedDocumentLineDocument>
    <ram:LineID>2</ram:LineID>
    <ram:ParentLineID>1</ram:ParentLineID>
    <ram:LineStatusReasonCode>GROUP</ram:LineStatusReasonCode>
  </ram:AssociatedDocumentLineDocument>
  <ram:SpecifiedLineTradeSettlement>
    <ram:SpecifiedTradeSettlementLineMonetarySummation>
      <ram:LineTotalAmount>100.00</ram:LineTotalAmount>
    </ram:SpecifiedTradeSettlementLineMonetarySummation>
  </ram:SpecifiedLineTradeSettlement>
</ram:IncludedSupplyChainTradeLineItem>
In FactoorSharp prüfen
  • TradeLineItem.LineTotalAmount (BT-131)
  • AssociatedDocument.LineStatusReasonCode (BT-X-8)
  • LineStatusReasonCodes (BT-X-8)
Technische Details

Der Test zählt für jede LineID die untergeordneten Positionen mit passender ParentLineID und LineStatusReasonCode GROUP, und vergleicht diese Anzahl mit denjenigen, die LineTotalAmount enthalten.

Wo die Regel greift

Die Regel gilt für eine IncludedSupplyChainTradeLineItem-Gruppenposition mit LineStatusReasonCode GROUP, wenn die Position einen LineTotalAmount enthält.

Originalmeldung aus dem Schematron
If the "Subtype of invoice line item" (EXT-FR-FE-163 / BT-X-8) has the value "GROUP" and if the "Invoice line net amount" (BT-131) is specified, all lower levels which has "Subtype of invoice line item" (EXT-FR-FE-163) equal to "GROUP" MUST contain a "Invoice line net amount" (BT-131) value.
Kontext (rule/@context)
//ram:IncludedSupplyChainTradeLineItem[ ram:AssociatedDocumentLineDocument/ram:LineStatusReasonCode = 'GROUP' and exists(ram:SpecifiedLineTradeSettlement/ram:SpecifiedTradeSettlementLineMonetarySummation/ ram:LineTotalAmount) ]
Prüfausdruck (assert/@test)
( for $lineID in ram:AssociatedDocumentLineDocument/ram:LineID, $numberChildWG in count(//rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ ram:IncludedSupplyChainTradeLineItem[ ram:AssociatedDocumentLineDocument/ram:ParentLineID = $lineID and ram:AssociatedDocumentLineDocument/ram:LineStatusReasonCode = 'GROUP' ]), $numberChildWGAndBT131 in count(/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ ram:IncludedSupplyChainTradeLineItem[ ram:AssociatedDocumentLineDocument/ram:ParentLineID = $lineID and ram:AssociatedDocumentLineDocument/ram:LineStatusReasonCode = 'GROUP' ]/ram:SpecifiedLineTradeSettlement/ram:SpecifiedTradeSettlementLineMonetarySummation/ ram:LineTotalAmount) return ($numberChildWG = $numberChildWGAndBT131) )