|
243 | 243 |
|
244 | 244 | <!--ASSERT --> |
245 | 245 | <xsl:choose> |
246 | | - <xsl:when test="cbc:EndpointID/@schemeID != "0235" or starts-with(normalize-space(cbc:EndpointID), "1") or exists(cac:PartyTaxScheme/cbc:CompanyID)" /> |
| 246 | + <xsl:when test="cbc:EndpointID/@schemeID != "0235" or matches(normalize-space(cbc:EndpointID), "^[19]") or exists(cac:PartyTaxScheme/cbc:CompanyID)" /> |
247 | 247 | <xsl:otherwise> |
248 | | - <svrl:failed-assert test="cbc:EndpointID/@schemeID != "0235" or starts-with(normalize-space(cbc:EndpointID), "1") or exists(cac:PartyTaxScheme/cbc:CompanyID)"> |
| 248 | + <svrl:failed-assert test="cbc:EndpointID/@schemeID != "0235" or matches(normalize-space(cbc:EndpointID), "^[19]") or exists(cac:PartyTaxScheme/cbc:CompanyID)"> |
249 | 249 | <xsl:attribute name="id">ibr-149-ae</xsl:attribute> |
250 | 250 | <xsl:attribute name="flag">fatal</xsl:attribute> |
251 | 251 | <xsl:attribute name="location"> |
252 | 252 | <xsl:apply-templates mode="schematron-select-full-path" select="." /> |
253 | 253 | </xsl:attribute> |
254 | | - <svrl:text>[ibr-149-ae]-The buyer legal registration identifier (IBT-047) MUST be provided when the scheme identifier (IBT-049-1) is '0235' and buyer electronic address (IBT-049) is not '1XXXXXXXXX'</svrl:text> |
| 254 | + <svrl:text>[ibr-149-ae]-The buyer legal registration identifier (IBT-047) MUST be provided when the scheme identifier (IBT-049-1) is '0235' and buyer electronic address (IBT-049) is not '1XXXXXXXXX' or '9XXXXXXXXX'</svrl:text> |
255 | 255 | </svrl:failed-assert> |
256 | 256 | </xsl:otherwise> |
257 | 257 | </xsl:choose> |
|
303 | 303 |
|
304 | 304 | <!--ASSERT --> |
305 | 305 | <xsl:choose> |
306 | | - <xsl:when test="not(cac:PartyLegalEntity/cbc:CompanyID) or not(cbc:EndpointID[@schemeID = "0235"]) or starts-with(cbc:EndpointID, "1") or cac:PartyLegalEntity/cbc:CompanyID/@schemeAgencyID = ("CL", "EID", "PAS", "CD")" /> |
| 306 | + <xsl:when test="not(cac:PartyLegalEntity/cbc:CompanyID) or not(cbc:EndpointID[@schemeID = "0235"]) or matches(normalize-space(cbc:EndpointID), "^[19]") or cac:PartyLegalEntity/cbc:CompanyID/@schemeAgencyID = ("TL","CL", "EID", "PAS", "CD")" /> |
307 | 307 | <xsl:otherwise> |
308 | | - <svrl:failed-assert test="not(cac:PartyLegalEntity/cbc:CompanyID) or not(cbc:EndpointID[@schemeID = "0235"]) or starts-with(cbc:EndpointID, "1") or cac:PartyLegalEntity/cbc:CompanyID/@schemeAgencyID = ("CL", "EID", "PAS", "CD")"> |
| 308 | + <svrl:failed-assert test="not(cac:PartyLegalEntity/cbc:CompanyID) or not(cbc:EndpointID[@schemeID = "0235"]) or matches(normalize-space(cbc:EndpointID), "^[19]") or cac:PartyLegalEntity/cbc:CompanyID/@schemeAgencyID = ("TL","CL", "EID", "PAS", "CD")"> |
309 | 309 | <xsl:attribute name="id">ibr-183-ae</xsl:attribute> |
310 | 310 | <xsl:attribute name="flag">fatal</xsl:attribute> |
311 | 311 | <xsl:attribute name="location"> |
|
612 | 612 |
|
613 | 613 | <!--ASSERT --> |
614 | 614 | <xsl:choose> |
615 | | - <xsl:when test="not(exists(cbc:BaseAmount) and exists(cbc:MultiplierFactorNumeric)) or (cbc:Amount = round(cbc:BaseAmount * cbc:MultiplierFactorNumeric) div 100)" /> |
| 615 | + <xsl:when test="not(exists(cbc:BaseAmount) and exists(cbc:MultiplierFactorNumeric)) or number(cbc:Amount) = (number(cbc:BaseAmount) * number(cbc:MultiplierFactorNumeric) div 100) or number(cbc:Amount) = round((number(cbc:BaseAmount) * number(cbc:MultiplierFactorNumeric) div 100) * 100) div 100" /> |
616 | 616 | <xsl:otherwise> |
617 | | - <svrl:failed-assert test="not(exists(cbc:BaseAmount) and exists(cbc:MultiplierFactorNumeric)) or (cbc:Amount = round(cbc:BaseAmount * cbc:MultiplierFactorNumeric) div 100)"> |
| 617 | + <svrl:failed-assert test="not(exists(cbc:BaseAmount) and exists(cbc:MultiplierFactorNumeric)) or number(cbc:Amount) = (number(cbc:BaseAmount) * number(cbc:MultiplierFactorNumeric) div 100) or number(cbc:Amount) = round((number(cbc:BaseAmount) * number(cbc:MultiplierFactorNumeric) div 100) * 100) div 100"> |
618 | 618 | <xsl:attribute name="id">ibr-131-ae</xsl:attribute> |
619 | 619 | <xsl:attribute name="flag">fatal</xsl:attribute> |
620 | 620 | <xsl:attribute name="location"> |
|
693 | 693 |
|
694 | 694 | <!--ASSERT --> |
695 | 695 | <xsl:choose> |
696 | | - <xsl:when test="not(exists(cbc:BaseAmount) and exists(cbc:MultiplierFactorNumeric)) or number(cbc:Amount) = round((number(cbc:BaseAmount) * number(cbc:MultiplierFactorNumeric) div 100) * 100) div 100" /> |
| 696 | + <xsl:when test="not(exists(cbc:BaseAmount) and exists(cbc:MultiplierFactorNumeric)) or number(cbc:Amount) = (number(cbc:BaseAmount) * number(cbc:MultiplierFactorNumeric) div 100) or number(cbc:Amount) = round((number(cbc:BaseAmount) * number(cbc:MultiplierFactorNumeric) div 100) * 100) div 100" /> |
697 | 697 | <xsl:otherwise> |
698 | | - <svrl:failed-assert test="not(exists(cbc:BaseAmount) and exists(cbc:MultiplierFactorNumeric)) or number(cbc:Amount) = round((number(cbc:BaseAmount) * number(cbc:MultiplierFactorNumeric) div 100) * 100) div 100"> |
| 698 | + <svrl:failed-assert test="not(exists(cbc:BaseAmount) and exists(cbc:MultiplierFactorNumeric)) or number(cbc:Amount) = (number(cbc:BaseAmount) * number(cbc:MultiplierFactorNumeric) div 100) or number(cbc:Amount) = round((number(cbc:BaseAmount) * number(cbc:MultiplierFactorNumeric) div 100) * 100) div 100"> |
699 | 699 | <xsl:attribute name="id">ibr-146-ae</xsl:attribute> |
700 | 700 | <xsl:attribute name="flag">fatal</xsl:attribute> |
701 | 701 | <xsl:attribute name="location"> |
|
744 | 744 |
|
745 | 745 | <!--ASSERT --> |
746 | 746 | <xsl:choose> |
747 | | - <xsl:when test="not(matches(., concat('^[0-9]+\.[0-9]', codepoints-to-string(123), '7,', codepoints-to-string(125), '$')))" /> |
| 747 | + <xsl:when test="matches(., concat('^[0-9]+(\.[0-9]', codepoints-to-string(123), '1,6', codepoints-to-string(125), ')?$'))" /> |
748 | 748 | <xsl:otherwise> |
749 | | - <svrl:failed-assert test="not(matches(., concat('^[0-9]+\.[0-9]', codepoints-to-string(123), '7,', codepoints-to-string(125), '$')))"> |
| 749 | + <svrl:failed-assert test="matches(., concat('^[0-9]+(\.[0-9]', codepoints-to-string(123), '1,6', codepoints-to-string(125), ')?$'))"> |
750 | 750 | <xsl:attribute name="id">ibr-002-ae</xsl:attribute> |
751 | 751 | <xsl:attribute name="flag">fatal</xsl:attribute> |
752 | 752 | <xsl:attribute name="location"> |
|
0 commit comments