VRBL-INV-CORE-66

Basic Info

Rule If both Invoice Start Date and Invoice End Date are given then the Invoice End Date must be later or equal to the Invoice Start Date.
Context /ubl:Invoice/cac:InvoicePeriod
Pattern vrbl-invoice-core
Severity fatal

Used Template: EndDateEqualOrLaterStartDate

Parameter Value
StartDate = cbc:StartDate
EndDate = cbc:EndDate

Implementation

not(boolean(cbc:StartDate)) 
or 
not(boolean(cbc:EndDate))
or 
number(
	concat(
		substring(cbc:EndDate, 1, 4),
		substring(cbc:EndDate, 6, 2),
		substring(cbc:EndDate, 9, 2)
	)
)
>=
number(
	concat(
		substring(cbc:StartDate, 1, 4),
		substring(cbc:StartDate, 6, 2),
		substring(cbc:StartDate, 9, 2)
	)
)