VRBL-INV-CORE-444

Basic Info

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

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)
	)
)