Rapprocher le montant net d’en-tête des montants nets des lignes de facture

Erreur BR-FXEXT-CO-10 Factur-X

Valeur absolue de (Somme des montants nets des lignes de facture (BT-106) - Σ montants nets des lignes de facture (BT-131))<= 0,01 * nombre de montants nets des lignes de facture (BT-131).

Règle obligatoire : tant qu'elle n'est pas respectée, la facture est invalide et sera rejetée par les validateurs.
Ce qui ne va pas

Le montant net au niveau du document diffère de la somme des montants nets des lignes de facture prises en compte au-delà de la tolérance autorisée. La tolérance est égale à 0,01 multiplié par le nombre total d’entrées ram:IncludedSupplyChainTradeLineItem.

Ce que signifie la règle

Le montant net au niveau du document doit correspondre à la somme des montants nets des lignes de facture, sous réserve de la tolérance d’arrondi explicitement admise.

Champs concernés BT-106 BT-131
Veuillez rapprocher le montant net d’en-tête des lignes de facture

Le montant net d’en-tête diffère au-delà de la limite autorisée de la somme des montants nets des lignes de facture prises en compte. Vérifiez ensemble la valeur d’en-tête et les montants des lignes.

Que faire ?
  1. Comparez FacturXInvoice.LineTotalAmount à la somme des valeurs de TradeLineItem.LineTotalAmount.
  2. Pour cette somme, ne prenez en compte que les lignes de facture sans ram:LineStatusReasonCode ou dont le motif est DETAIL.
  3. Tenez compte de l’écart autorisé de 0,01 par entrée ram:IncludedSupplyChainTradeLineItem.
  4. Générez de nouveau la facture et vérifiez-la.
À vérifier dans FactoorSharp
  • FacturXInvoice.LineTotalAmount (BT-106)
  • TradeLineItem.LineTotalAmount (BT-131)
Détails techniques

Le test additionne les valeurs de ram:LineTotalAmount, arrondies à deux décimales, des lignes sans ram:LineStatusReasonCode ou dont le motif est DETAIL. Il compare cette somme à la valeur d’en-tête et admet un écart absolu maximal de 0,01 multiplié par le nombre total d’entrées ram:IncludedSupplyChainTradeLineItem.

Où la règle s'applique

La règle s’applique à ram:LineTotalAmount dans ram:SpecifiedTradeSettlementHeaderMonetarySummation et le compare aux montants nets des entrées ram:IncludedSupplyChainTradeLineItem correspondantes.

Message d'origine du 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).
Contexte (rule/@context)
//ram:SpecifiedTradeSettlementHeaderMonetarySummation
Expression de contrôle (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