VRBL-INV-PEPPOL-RS-10

Basic Info

Rule The Total Tax Amount in accounting currency must have the same operational sign.
Context /ubl:Invoice
Pattern vrbl-invoice-peppol-bis3p0-reduced-syntax
Severity fatal

Implementation

not(boolean(cbc:TaxCurrencyCode))
or
(
	number(cac:TaxTotal[cbc:TaxAmount/@currencyID = /ubl:Invoice/cbc:TaxCurrencyCode]/cbc:TaxAmount) <= 0
	and
	number(cac:TaxTotal[cbc:TaxAmount/@currencyID = /ubl:Invoice/cbc:DocumentCurrencyCode]/cbc:TaxAmount) <= 0
)
or
(
	number(cac:TaxTotal[cbc:TaxAmount/@currencyID = /ubl:Invoice/cbc:TaxCurrencyCode]/cbc:TaxAmount) >= 0
	and
	number(cac:TaxTotal[cbc:TaxAmount/@currencyID = /ubl:Invoice/cbc:DocumentCurrencyCode]/cbc:TaxAmount) >= 0
)