VRBL-INV-PT-2p1-14
Basic Info
| Rule | The Legal Monetary Total Tax Exclusive Amount = Invoice Line Extension Amount - Legal Monetary Total Allowance Total Amount + Legal Monetary Total Charge Total Amount, with an acceptance range of 1.00 EURO (it does not mean that this tolerance is accepted by the customer). |
| Context |
/ubl:Invoice
|
| Pattern | vrbl-invoice-pt-2p1 |
| Severity | fatal |
Implementation
(boolean(cac:InvoiceLine)
and (boolean(cac:LegalMonetaryTotal/cbc:ChargeTotalAmount) and boolean(cac:LegalMonetaryTotal/cbc:AllowanceTotalAmount)
and (round((sum(cac:InvoiceLine/cbc:LineExtensionAmount) + cac:LegalMonetaryTotal/cbc:ChargeTotalAmount - cac:LegalMonetaryTotal/cbc:AllowanceTotalAmount) * 10 * 10) div 100 ) <= (cac:LegalMonetaryTotal/cbc:TaxExclusiveAmount + 1.00)
and (round((sum(cac:InvoiceLine/cbc:LineExtensionAmount) + cac:LegalMonetaryTotal/cbc:ChargeTotalAmount - cac:LegalMonetaryTotal/cbc:AllowanceTotalAmount) * 10 * 10) div 100 ) >= (cac:LegalMonetaryTotal/cbc:TaxExclusiveAmount - 1.00))
or ( not(boolean(cac:LegalMonetaryTotal/cbc:ChargeTotalAmount)) and boolean(cac:LegalMonetaryTotal/cbc:AllowanceTotalAmount)
and (round((sum(cac:InvoiceLine/cbc:LineExtensionAmount) - cac:LegalMonetaryTotal/cbc:AllowanceTotalAmount) * 10 * 10 ) div 100) <= (cac:LegalMonetaryTotal/cbc:TaxExclusiveAmount + 1.00)
and (round((sum(cac:InvoiceLine/cbc:LineExtensionAmount) - cac:LegalMonetaryTotal/cbc:AllowanceTotalAmount) * 10 * 10 ) div 100) >= (cac:LegalMonetaryTotal/cbc:TaxExclusiveAmount - 1.00) )
or ( boolean(cac:LegalMonetaryTotal/cbc:ChargeTotalAmount) and not(boolean(cac:LegalMonetaryTotal/cbc:AllowanceTotalAmount))
and (round((sum(cac:InvoiceLine/cbc:LineExtensionAmount) + cac:LegalMonetaryTotal/cbc:ChargeTotalAmount) * 10 * 10 ) div 100) <= (cac:LegalMonetaryTotal/cbc:TaxExclusiveAmount + 1.00)
and (round((sum(cac:InvoiceLine/cbc:LineExtensionAmount) + cac:LegalMonetaryTotal/cbc:ChargeTotalAmount) * 10 * 10 ) div 100) >= (cac:LegalMonetaryTotal/cbc:TaxExclusiveAmount - 1.00))
or ( not(boolean(cac:LegalMonetaryTotal/cbc:ChargeTotalAmount)) and not(boolean(cac:LegalMonetaryTotal/cbc:AllowanceTotalAmount))
and sum(cac:InvoiceLine/cbc:LineExtensionAmount) <= (cac:LegalMonetaryTotal/cbc:TaxExclusiveAmount + 1.00)
and sum(cac:InvoiceLine/cbc:LineExtensionAmount) >= (cac:LegalMonetaryTotal/cbc:TaxExclusiveAmount - 1.00)))
or (boolean(cac:CreditNoteLine)
and (boolean(cac:LegalMonetaryTotal/cbc:ChargeTotalAmount) and boolean(cac:LegalMonetaryTotal/cbc:AllowanceTotalAmount)
and (round((sum(cac:CreditNoteLine/cbc:LineExtensionAmount) + cac:LegalMonetaryTotal/cbc:ChargeTotalAmount - cac:LegalMonetaryTotal/cbc:AllowanceTotalAmount) * 10 * 10) div 100 ) <= (cac:LegalMonetaryTotal/cbc:TaxExclusiveAmount + 1.00)
and (round((sum(cac:CreditNoteLine/cbc:LineExtensionAmount) + cac:LegalMonetaryTotal/cbc:ChargeTotalAmount - cac:LegalMonetaryTotal/cbc:AllowanceTotalAmount) * 10 * 10) div 100 ) >= (cac:LegalMonetaryTotal/cbc:TaxExclusiveAmount - 1.00))
or ( not(boolean(cac:LegalMonetaryTotal/cbc:ChargeTotalAmount)) and boolean(cac:LegalMonetaryTotal/cbc:AllowanceTotalAmount)
and (round((sum(cac:CreditNoteLine/cbc:LineExtensionAmount) - cac:LegalMonetaryTotal/cbc:AllowanceTotalAmount) * 10 * 10 ) div 100) <= (cac:LegalMonetaryTotal/cbc:TaxExclusiveAmount + 1.00)
and (round((sum(cac:CreditNoteLine/cbc:LineExtensionAmount) - cac:LegalMonetaryTotal/cbc:AllowanceTotalAmount) * 10 * 10 ) div 100) >= (cac:LegalMonetaryTotal/cbc:TaxExclusiveAmount - 1.00) )
or ( boolean(cac:LegalMonetaryTotal/cbc:ChargeTotalAmount) and not(boolean(cac:LegalMonetaryTotal/cbc:AllowanceTotalAmount))
and (round((sum(cac:CreditNoteLine/cbc:LineExtensionAmount) + cac:LegalMonetaryTotal/cbc:ChargeTotalAmount) * 10 * 10 ) div 100) <= (cac:LegalMonetaryTotal/cbc:TaxExclusiveAmount + 1.00)
and (round((sum(cac:CreditNoteLine/cbc:LineExtensionAmount) + cac:LegalMonetaryTotal/cbc:ChargeTotalAmount) * 10 * 10 ) div 100) >= (cac:LegalMonetaryTotal/cbc:TaxExclusiveAmount - 1.00))
or ( not(boolean(cac:LegalMonetaryTotal/cbc:ChargeTotalAmount)) and not(boolean(cac:LegalMonetaryTotal/cbc:AllowanceTotalAmount))
and sum(cac:CreditNoteLine/cbc:LineExtensionAmount) <= (cac:LegalMonetaryTotal/cbc:TaxExclusiveAmount + 1.00)
and sum(cac:CreditNoteLine/cbc:LineExtensionAmount) >= (cac:LegalMonetaryTotal/cbc:TaxExclusiveAmount - 1.00)))