VRBL-INV-PEPPOL-PINT-119

Basic Info

Rule Each Document level Allowance Group must have a Allowance Reason or a Allowance Reason Code.
Context /ubl:Invoice/cac:AllowanceCharge[string(cbc:ChargeIndicator) = 'false']
Pattern vrbl-invoice-peppol-pint
Severity fatal

Implementation

(
	(
		boolean(cbc:AllowanceChargeReason)
		and
		not(boolean(/ubl:Invoice/cac:InvoiceLine/cac:AllowanceCharge[string(cbc:ChargeIndicator) = 'false']/cbc:AllowanceChargeReason))
	)
	or
	(
		boolean(cbc:AllowanceChargeReasonCode)
		and
		not(boolean(/ubl:Invoice/cac:InvoiceLine/cac:AllowanceCharge[string(cbc:ChargeIndicator) = 'false']/cbc:AllowanceChargeReasonCode))
	)
)
or
(
	boolean(/ubl:Invoice/cac:InvoiceLine/cac:AllowanceCharge[string(cbc:ChargeIndicator) = 'false']/cbc:AllowanceChargeReason)
	or
	boolean(/ubl:Invoice/cac:InvoiceLine/cac:AllowanceCharge[string(cbc:ChargeIndicator) = 'false']/cbc:AllowanceChargeReasonCode)
)