BR-22: Cantitatea facturată lipsește
Cantitatea facturată lipsește — cauză, câmp XML, corecție și probe complete.
Ce înseamnă și cum corectezi
Cantitatea facturată, BT-129, se transmite în InvoicedQuantity pentru o linie UBL Invoice. Testul elimină acest element, păstrând identificatorul liniei, valoarea netă, articolul și prețul. Schema UBL poate permite lipsa unor componente pe care regulile semantice le cer; de aceea trecerea de XSD nu încheie validarea facturii. Varianta bună conține cantitatea 1 și codul de unitate C62. Cantitatea este un număr zecimal; unitatea este un atribut separat și trebuie aleasă potrivit bunului sau serviciului. Nu scrie unitatea ca text în interiorul valorii numerice. Într-un document CreditNote, câmpul corespunzător este CreditedQuantity, iar linia are alt nume. Acest exemplu demonstrează numai ramura Invoice, nu o mutație făcută arbitrar în ambele sintaxe. Citește calea raportată și tipul rădăcinii înainte de a căuta elementul în XML. În aplicația sursă, verifică dacă o cantitate zero sau necompletată este omisă de serializator și dacă transformarea păstrează atributul unitCode. Completarea cantității trebuie urmată de recalcularea valorii nete a liniei pe baza prețului și a eventualelor ajustări. O valoare introdusă doar pentru a trece regula nu dovedește cantitatea livrată. Folosește datele operațiunii și repetă controlul documentului integral după regenerarea exportului.
Câmpul și condiția din sursă
Mutația pentru BR-22 vizează calea /*/cac:InvoiceLine/cbc:InvoicedQuantity.
[
{
"file": "expanded.sch (generated from original ANAF includes)",
"kind": "assert",
"context": "cac:InvoiceLine | cac:CreditNoteLine",
"test": "exists(cbc:InvoicedQuantity) or exists(cbc:CreditedQuantity)",
"message": "[BR-22]-Each Invoice line (BG-25) shall have an Invoiced quantity (BT-129)."
}
]Fragment greșit
<!-- element absent: /*/cac:InvoiceLine/cbc:InvoicedQuantity -->Fragment corectat
<cbc:InvoicedQuantity xmlns:cbc="urn:oasis:names:specification:ubl:schema:xsd:CommonBasicComponents-2" xmlns:ubl="urn:oasis:names:specification:ubl:schema:xsd:Invoice-2" xmlns:cn="urn:oasis:names:specification:ubl:schema:xsd:CreditNote-2" xmlns:cac="urn:oasis:names:specification:ubl:schema:xsd:CommonAggregateComponents-2" unitCode="C62">1</cbc:InvoicedQuantity>Reproducere cu motorul fixat
Fișierul br-22-bad.xml nu trece verificarea și produce 2 diagnostice de eroare în această probă. Perechea corectată trece etapele XSD și regulile de afaceri din pachetul ANAF. Câmpul modificat este cel indicat mai sus; restul datelor fictive sunt păstrate.
XML greșit complet · XML corectat complet
[
{
"code": "BR-22",
"message": "[BR-22]-Each Invoice line (BG-25) shall have an Invoiced quantity (BT-129).",
"path": "/*:Invoice[namespace-uri()='urn:oasis:names:specification:ubl:schema:xsd:Invoice-2'][1]/*:InvoiceLine[namespace-uri()='urn:oasis:names:specification:ubl:schema:xsd:CommonAggregateComponents-2'][1]",
"svrl_kind": "failed-assert"
}
]Alte mesaje în aceeași probă
În acest test BR-22 apare împreună cu BR-23.
Aceste rezultate descriu facturile sintetice publicate, nu frecvența erorilor din facturile vizitatorilor.
Verifică propriul XML · Înapoi la index · Surse, metodă și limite