XSDHub

BR-27: Prețul net al articolului este negativ

Prețul net al articolului este negativ — cauză, câmp XML, corecție și probe complete.

Ce înseamnă și cum corectezi

Prețul net unitar din BT-146 trebuie să fie nenegativ. În UBL, câmpul verificat este Price/PriceAmount din linie. Nu confunda prețul unitar cu valoarea netă a liniei, care depinde și de cantitate, cantitatea de bază a prețului, deduceri și taxe suplimentare. Exemplul greșit schimbă numai prețul din 100,00 în minus 1 RON. Cantitatea rămâne 1, iar valoarea netă declarată rămâne 100,00. Astfel se reproduce regula privind semnul prețului, fără a pretinde că aceasta este singura relație încălcată de o asemenea factură. Varianta corectată folosește din nou prețul pozitiv 100,00. Pentru o reducere sau o corecție, nu elimina mecanic semnul minus până când documentul trece verificarea. Stabilește tipul documentului și reprezentarea adecvată a cantităților și deducerilor în operațiunea reală. Pachetul național conține și o verificare directă a elementelor PriceAmount, cu același identificator BR-27; raportul poate reflecta ambele verificări. Ghidul păstrează codul emis efectiv, fără să inventeze un cod separat pentru fiecare apariție. Analizează toate căile din raport și recalculează sumele dependente în aplicația emitentă. Un preț admis de regulă nu confirmă valoarea contractuală sau corecta aplicare a taxelor.

Câmpul și condiția din sursă

Mutația pentru BR-27 vizează calea /*/cac:InvoiceLine/cac:Price/cbc:PriceAmount.

[
  {
    "file": "expanded.sch (generated from original ANAF includes)",
    "kind": "assert",
    "context": "cbc:PriceAmount",
    "test": "(.) >=0",
    "message": "[BR-27]-Preţul net al articolului (BT-146) trebuie să NU fie negativ. #The Item net price (BT-146) shall NOT be negative. ( = ' ')"
  }
]

Fragment greșit

<cbc:PriceAmount 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" currencyID="RON">-1</cbc:PriceAmount>

Fragment corectat

<cbc:PriceAmount 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" currencyID="RON">100.00</cbc:PriceAmount>

Reproducere cu motorul fixat

Fișierul br-27-bad.xml nu trece verificarea și produce 1 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-27",
    "message": "[BR-27]-Preţul net al articolului (BT-146) trebuie să NU fie negativ.\n\t\t\t#The Item net price (BT-146) shall NOT be negative. (cbc:PriceAmount = '-1')",
    "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]/*:Price[namespace-uri()='urn:oasis:names:specification:ubl:schema:xsd:CommonAggregateComponents-2'][1]/*:PriceAmount[namespace-uri()='urn:oasis:names:specification:ubl:schema:xsd:CommonBasicComponents-2'][1]",
    "svrl_kind": "failed-assert"
  }
]

Alte mesaje în aceeași probă

În testul pentru BR-27 nu s-au emis alte coduri de eroare.

Aceste rezultate descriu facturile sintetice publicate, nu frecvența erorilor din facturile vizitatorilor.

Verifică propriul XML · Înapoi la index · Surse, metodă și limite