VRBL-DPA-MX-1p0-8

Basic Info

Rule The value of the Buyer Tax Scheme ID must be contained in Party Tax Scheme ID [VRBL-CL-MX-Party-TaxSchemeID] (prefixed by 'VRBL:MX:'). Allowed values: VRBL:MX:601, VRBL:MX:603, VRBL:MX:605, VRBL:MX:606, VRBL:MX:607, VRBL:MX:608, VRBL:MX:609, VRBL:MX:610, VRBL:MX:611, VRBL:MX:612, VRBL:MX:614, VRBL:MX:615, VRBL:MX:616, VRBL:MX:620, VRBL:MX:621, VRBL:MX:622, VRBL:MX:623, VRBL:MX:624, VRBL:MX:625, VRBL:MX:626, VRBL:MX:628, VRBL:MX:629, VRBL:MX:630.
Context /ubl:DespatchAdvice/cac:DeliveryCustomerParty/cac:Party/cac:PartyTaxScheme/cac:TaxScheme/cbc:ID
Pattern vrbl-despatchadvice-mx-1p0
Severity fatal

Used Template: CodeList

Parameter Value
probe = .
codeList = $VRBL-MX-Prefix:$VRBL-CL-MX-Party-TaxSchemeID
showValues = true

Implementation

not(boolean(.))
or
(
	(
		substring(normalize-space(.), 1, string-length($VRBL-MX-Prefix)) = $VRBL-MX-Prefix
		and
		not(
			contains(
				substring-after(normalize-space(.), $VRBL-MX-Prefix),
				substring($VRBL-CL-MX-Party-TaxSchemeID, 1, 1)
			)
		)
		and
		contains(
			$VRBL-CL-MX-Party-TaxSchemeID,
			concat(
				substring($VRBL-CL-MX-Party-TaxSchemeID, 1, 1),
				substring-after(normalize-space(.), $VRBL-MX-Prefix),
				substring($VRBL-CL-MX-Party-TaxSchemeID, 1, 1)
			)
		)
	)
)