VRBL-INV-SA-1p2-61
Basic Info
|
Rule
|
If the Delivery Group contains Latest Delivery Date, then this date must be greater than or equal to the Actual Delivery Date. |
|
Context
|
/ubl:Invoice/cac:Delivery
|
|
Pattern
|
vrbl-invoice-sa-1p2 |
|
Severity
|
fatal |
Implementation
count(cbc:LatestDeliveryDate) <=0 or count(cbc:ActualDeliveryDate)<=0 or (string-length(cbc:LatestDeliveryDate) = 10 and substring(cbc:LatestDeliveryDate, 5, 1) = '-' and substring(cbc:LatestDeliveryDate, 8, 1) = '-' and number(substring(cbc:LatestDeliveryDate, 6, 2)) >= 1 and number(substring(cbc:LatestDeliveryDate, 6, 2)) <= 12 and number(substring(cbc:LatestDeliveryDate, 9, 2)) >= 1 and number(substring(cbc:LatestDeliveryDate, 9, 2)) <= 31 and string-length(cbc:ActualDeliveryDate) = 10 and substring(cbc:ActualDeliveryDate, 5, 1) = '-' and substring(cbc:ActualDeliveryDate, 8, 1) = '-' and number(substring(cbc:ActualDeliveryDate, 6, 2)) >= 1 and number(substring(cbc:ActualDeliveryDate, 6, 2)) <= 12 and number(substring(cbc:ActualDeliveryDate, 9, 2)) >= 1 and number(substring(cbc:ActualDeliveryDate, 9, 2)) <= 31 and translate(cbc:LatestDeliveryDate, '-', '') >= translate(cbc:ActualDeliveryDate, '-', ''))