VRBL-INV-IT-1p2-234

Basic Info

Rule The value of the Withholding Tax Payment Reason Code must be contained in Payment Reason Code [VRBL-CL-IT-PaymentReasonCode] (prefixed by 'VRBL:IT:'). Allowed values: VRBL:IT:A, VRBL:IT:B, VRBL:IT:C, VRBL:IT:D, VRBL:IT:E, VRBL:IT:G, VRBL:IT:H, VRBL:IT:I, VRBL:IT:J, VRBL:IT:K, VRBL:IT:L, VRBL:IT:L1, VRBL:IT:M, VRBL:IT:M1, VRBL:IT:M2, VRBL:IT:N, VRBL:IT:O, VRBL:IT:O1, VRBL:IT:P, VRBL:IT:Q, VRBL:IT:R, VRBL:IT:S, VRBL:IT:T, VRBL:IT:U, VRBL:IT:V, VRBL:IT:V1, VRBL:IT:V2, VRBL:IT:W, VRBL:IT:X, VRBL:IT:Y, VRBL:IT:ZO.
Context /ubl:Invoice/cac:WithholdingTaxTotal/cec:UBLExtensions/cec:UBLExtension/cec:ExtensionContent/vrbl:WithholdingTaxTotalExtension/vrbl:PaymentReasonCode
Pattern vrbl-invoice-it-1p2
Severity fatal

Used Template: CodeList

Parameter Value
probe = .
codeList = $VRBL-IT-Prefix:$VRBL-CL-IT-PaymentReasonCode
showValues = true

Implementation

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