VRBL-INV-EN16931-M-63

Basic Info

Rule Exactly one Invoice Tax Subtotal Group marked as Export outside the EU is required when Allowance Group, Charge Group or Invoice Line Group is marked as Export outside the EU.
Context /ubl:Invoice/cac:TaxTotal[cbc:TaxAmount/@currencyID = ../cbc:DocumentCurrencyCode]
Pattern vrbl-invoice-en16931-ubl-model
Severity fatal

Used Template: VRBL-EN16931-TaxSubtotal-count

Parameter Value
taxTypeCode = G
taxTypeName = Export outside the EU

Implementation

not(
	boolean(../cac:AllowanceCharge[string(cbc:ChargeIndicator) = 'false']/cac:TaxCategory[cbc:ID = 'G'][cac:TaxScheme/cbc:ID = 'VAT'])
	or
	boolean(../cac:AllowanceCharge[string(cbc:ChargeIndicator) = 'true']/cac:TaxCategory[cbc:ID = 'G'][cac:TaxScheme/cbc:ID = 'VAT'])
	or
	boolean(../cac:InvoiceLine/cac:Item/cac:ClassifiedTaxCategory[cbc:ID = 'G'][cac:TaxScheme/cbc:ID = 'VAT'])
)
or
(
	count(cac:TaxSubtotal[cac:TaxCategory/cbc:ID = 'G' and cac:TaxCategory/cac:TaxScheme/cbc:ID = 'VAT']) = 1
	and
	(
		boolean(../cac:AllowanceCharge[string(cbc:ChargeIndicator) = 'false']/cac:TaxCategory[cbc:ID = 'G'][cac:TaxScheme/cbc:ID = 'VAT'])
		or
		boolean(../cac:AllowanceCharge[string(cbc:ChargeIndicator) = 'true']/cac:TaxCategory[cbc:ID = 'G'][cac:TaxScheme/cbc:ID = 'VAT'])
		or
		boolean(../cac:InvoiceLine/cac:Item/cac:ClassifiedTaxCategory[cbc:ID = 'G'][cac:TaxScheme/cbc:ID = 'VAT'])
	)
)