OASIS Mailing List ArchivesView the OASIS mailing list archive below
or browse/search using MarkMail.

 


Help: OASIS Mailing Lists Help | MarkMail Help

ubl-comment message

[Date Prev] | [Thread Prev] | [Thread Next] | [Date Next] -- [Date Index] | [Thread Index] | [List Home]


Subject: Re: [tag] Groups - UBL 2 Invoice Example Calculation Model Expressed in TAML v1.0 (ubl-ta-draft-1-0.xml) uploaded


To the UBL TC,
 
The OASIS Test Assertions Guidelines TC have now completed a further
and possibly final public review and have approved their updated committee
specifications for the Test Assertions Model and Test Assertions Markup
Language so I need to update the example tests assertions for UBL 2
example invoice calculation model to comply with the minor changes. The
amended test assertions document can be used with Tamelizer version 0.96
(on Google Code). This is the resulting document which is valid according
to the Test Assertion Markup Language committee spec at
http://docs.oasis-open.org/tag/taml/v1.0/csprd03/testassertionmarkuplanguage-1.0-csprd03.pdf
conformance clause 4.2:
 
[see also zipped file attached]

<taml:testAssertionSet xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://docs.oasis-open.org/ns/tag/taml-201002/ http://docs.oasis-open.org/tag/taml/v1.0/csprd03/xsd/testAssertionMarkupLanguage.xsd"
xmlns:taml="http://docs.oasis-open.org/ns/tag/taml-201002/"
setid="ubl-ta-1-3" setname="UBL 2 Invoice Example Calculation Model Test Assertions">
<taml:common>
<taml:sourceDocument version="1" revision="5">UBL 2 Invoice Calculation Model Rules</taml:sourceDocument>
<taml:authors>Stephen D Green</taml:authors>
<taml:location>http://lists.oasis-open.org/archives/ubl-comment/200910/msg00012.html</taml:location>
<taml:namespaces xmlns:cac="urn:oasis:names:specification:ubl:schema:xsd:CommonAggregateComponents-2" xmlns:cbc="urn:oasis:names:specification:ubl:schema:xsd:CommonBasicComponents-2" xmlns:in="urn:oasis:names:specification:ubl:schema:xsd:Invoice-2" xmlns="urn:oasis:names:specification:ubl:schema:xsd:Invoice-2">
<taml:namespace>
<taml:prefix>#default</taml:prefix>
<taml:uri>urn:oasis:names:specification:ubl:schema:xsd:Invoice-2</taml:uri>
</taml:namespace>
<taml:namespace>
<taml:prefix>in</taml:prefix>
<taml:uri>urn:oasis:names:specification:ubl:schema:xsd:Invoice-2</taml:uri>
</taml:namespace>
<taml:namespace>
<taml:prefix>cac</taml:prefix>
<taml:uri>urn:oasis:names:specification:ubl:schema:xsd:CommonAggregateComponents-2</taml:uri>
</taml:namespace>
<taml:namespace>
<taml:prefix>cbc</taml:prefix>
<taml:uri>urn:oasis:names:specification:ubl:schema:xsd:CommonBasicComponents-2</taml:uri>
</taml:namespace>
</taml:namespaces>
</taml:common>
<taml:testAssertion id="IN1" name="Invoice">
<taml:normativeSource>U2ICMDraft5Rule1:
"To be a conforming UBL 2 invoice the document MUST be valid according
to a standard UBL 2 Invoice schema."</taml:normativeSource>
<taml:target type="document" idscheme="'document'">/</taml:target>
<taml:predicate>count(//in:Invoice) ge 1</taml:predicate>
<taml:prescription level="mandatory"/>
<taml:report label="failed" message="Not a standard UBL 2 invoice">The file does not contain a standard UBL 2 invoice.</taml:report>
</taml:testAssertion>
<taml:testAssertion id="INTOT1" name="LineExtensionAmount (1)">
<taml:normativeSource>U2ICMDraft5Rule2:
"The 'LineExtensionAmount' in the invoice 'LegalMonetaryTotal' SHOULD
equal the sum of all 'LineExtensionAmount's in all of the invoice lines."</taml:normativeSource>
<taml:target type="total" idscheme="'invoice-total'">/in:Invoice/cac:LegalMonetaryTotal</taml:target>
<taml:prerequisite>(count(distinct-values(//*/@currencyID)) eq 1)</taml:prerequisite>
<taml:predicate>number(./cbc:LineExtensionAmount) eq sum(/in:Invoice/cac:InvoiceLine/cbc:LineExtensionAmount)</taml:predicate>
<taml:prescription level="preferred"/>
<taml:report label="failed" message="Error in Line Extension Amount">The line extension total is not the sum of the invoice lines' line extension amounts.</taml:report>
</taml:testAssertion>
<taml:testAssertion id="INTOT2" name="TaxExclusiveAmount">
<taml:normativeSource>U2ICMDraft5Rule3:
"The 'TaxExclusiveAmount' in the invoice 'LegalMonetaryTotal' SHOULD
equal the sum of the 'LineExtensionAmount's in all of the invoice lines
plus the sum of the invoice 'AllowanceCharge' charges minus the sum of
the invoice 'AllowanceCharge' allowances (with the exception of there
being no 'TaxExclusiveAmount' in the invoice 'LegalMonetaryTotal')."</taml:normativeSource>
<taml:target type="total">/in:Invoice/cac:LegalMonetaryTotal</taml:target>
<taml:prerequisite>(count(distinct-values(//*/@currencyID)) eq 1) and (count(/in:Invoice/cac:InvoiceLine/cbc:LineExtensionAmount) gt 0) and (count(/in:Invoice/cac:LegalMonetaryTotal/cbc:TaxExclusiveAmount) eq 1)</taml:prerequisite>
<taml:predicate>number(./cbc:TaxExclusiveAmount) eq
(sum(/in:Invoice/cac:InvoiceLine/cbc:LineExtensionAmount) +
sum(/in:Invoice/cac:AllowanceCharge[cbc:ChargeIndicator='true']/cbc:Amount) -
sum(/in:Invoice/cac:AllowanceCharge[cbc:ChargeIndicator='false']/cbc:Amount))</taml:predicate>
<taml:prescription level="preferred"/>
<taml:report label="failed" message="Error in Tax Exclusive Amount">the 'TaxExclusiveAmount' in the invoice 'LegalMonetaryTotal' is not equal to the sum of the 'LineExtensionAmount's in all of the invoice lines plus the sum of the invoice 'AllowanceCharge' charges minus the sum of the invoice 'AllowanceCharge' allowances</taml:report>
</taml:testAssertion>
<taml:testAssertion id="INTOT3" name="AllowanceTotalAmount">
<taml:normativeSource>U2ICMDraft5Rule4:
"The 'AllowanceTotalAmount' in the invoice 'LegalMonetaryTotal' SHOULD
equal the sum of any invoice 'AllowanceCharge' allowances."</taml:normativeSource>
<taml:target type="total">/in:Invoice/cac:LegalMonetaryTotal</taml:target>
<taml:prerequisite>(count(/in:Invoice/cac:LegalMonetaryTotal/cbc:AllowanceTotalAmount) eq 1) and (count(distinct-values(//*/@currencyID)) eq 1)</taml:prerequisite>
<taml:predicate>sum(/in:Invoice/cac:LegalMonetaryTotal/cbc:AllowanceTotalAmount) eq sum(/in:Invoice/cac:AllowanceCharge[cbc:ChargeIndicator='false']/cbc:Amount)</taml:predicate>
<taml:prescription level="preferred"/>
<taml:report label="failed" message="Error in Allowance Total Amount">the 'AllowanceTotalAmount' in the invoice 'LegalMonetaryTotal' is not equal to the the sum of the invoice 'AllowanceCharge' allowances</taml:report>
</taml:testAssertion>
<taml:testAssertion id="INTOT4" name="ChargeTotalAmount">
<taml:normativeSource>U2ICMDraft5Rule5:
"The 'ChargeTotalAmount' in the invoice 'LegalMonetaryTotal' SHOULD
equal the sum of any invoice 'AllowanceCharge' charges."</taml:normativeSource>
<taml:target type="total">/in:Invoice/cac:LegalMonetaryTotal</taml:target>
<taml:prerequisite>(count(/in:Invoice/cac:LegalMonetaryTotal/cbc:ChargeTotalAmount) eq 1) and (count(distinct-values(//*/@currencyID)) eq 1)</taml:prerequisite>
<taml:predicate>sum(/in:Invoice/cac:LegalMonetaryTotal/cbc:ChargeTotalAmount) eq sum(/in:Invoice/cac:AllowanceCharge[cbc:ChargeIndicator='true']/cbc:Amount)</taml:predicate>
<taml:prescription level="preferred"/>
<taml:report label="failed" message="Error in Charge Total Amount">the 'ChargeTotalAmount' in the invoice 'LegalMonetaryTotal' is not equal to the the sum of the invoice 'AllowanceCharge' charges</taml:report>
</taml:testAssertion>
<taml:testAssertion id="INTOT5a" name="TaxExclusiveAmount (With Taxes)">
<taml:normativeSource>U2ICMDraft5Rule6:
"If there are no taxes amounts in the invoice then the 'TaxExclusiveAmount'
in the invoice 'LegalMonetaryTotal' SHOULD equal the 'LineExtensionAmount'
minus any 'AllowanceTotalAmount' plus any 'ChargeTotalAmount' minus any
'PrepaidAmount' (in the invoice 'LegalMonetaryTotal'), (with the exception
of there being no 'TaxExclusiveAmount' in the invoice 'LegalMonetaryTotal').
If there are taxes amounts in the invoice but no PrepaidAmount then the
'TaxExclusiveAmount' in the invoice 'LegalMonetaryTotal' SHOULD equal the
'LineExtensionAmount' minus any 'AllowanceTotalAmount' plus any
'ChargeTotalAmount' (in the invoice 'LegalMonetaryTotal'), (with the exception
of there being no 'TaxExclusiveAmount' in the invoice 'LegalMonetaryTotal')."</taml:normativeSource>
<taml:target type="total">/in:Invoice/cac:LegalMonetaryTotal</taml:target>
<taml:prerequisite>(count(distinct-values(//*/@currencyID)) eq 1) and (count(//cbc:TaxAmount) gt 0) and (count(/in:Invoice/cac:LegalMonetaryTotal/cbc:TaxExclusiveAmount) gt 0)</taml:prerequisite>
<taml:predicate>number(/in:Invoice/cac:LegalMonetaryTotal/cbc:TaxExclusiveAmount) eq
sum(/in:Invoice/cac:LegalMonetaryTotal/cbc:LineExtensionAmount) - sum(/in:Invoice/cac:LegalMonetaryTotal/cbc:AllowanceTotalAmount) + sum(/in:Invoice/cac:LegalMonetaryTotal/cbc:ChargeTotalAmount)</taml:predicate>
<taml:prescription level="preferred"/>
<taml:report label="failed" message="Error in Tax Exclusive Amount">in the invoice 'LegalMonetaryTotal' (the invoice including tax amounts) the 'TaxExclusiveAmount' is not equal to the 'LineExtensionAmount' minus any 'AllowanceTotalAmount' plus any 'ChargeTotalAmount'</taml:report>
</taml:testAssertion>
<taml:testAssertion id="INTOT5b" name="TaxExclusiveAmount (Without Taxes)">
<taml:normativeSource>U2ICMDraft5Rule6:
"If there are no taxes amounts in the invoice then the 'TaxExclusiveAmount'
in the invoice 'LegalMonetaryTotal' SHOULD equal the 'LineExtensionAmount'
minus any 'AllowanceTotalAmount' plus any 'ChargeTotalAmount' minus any
'PrepaidAmount' (in the invoice 'LegalMonetaryTotal'), (with the exception
of there being no 'TaxExclusiveAmount' in the invoice 'LegalMonetaryTotal').
If there are taxes amounts in the invoice but no PrepaidAmount then the
'TaxExclusiveAmount' in the invoice 'LegalMonetaryTotal' SHOULD equal the
'LineExtensionAmount' minus any 'AllowanceTotalAmount' plus any
'ChargeTotalAmount' (in the invoice 'LegalMonetaryTotal'), (with the exception
of there being no 'TaxExclusiveAmount' in the invoice 'LegalMonetaryTotal')."</taml:normativeSource>
<taml:target type="total">/in:Invoice/cac:LegalMonetaryTotal</taml:target>
<taml:prerequisite>(count(distinct-values(//*/@currencyID)) eq 1) and (count(//cbc:TaxAmount) eq 0) and (count(/in:Invoice/cac:LegalMonetaryTotal/cbc:TaxExclusiveAmount) gt 0)</taml:prerequisite>
<taml:predicate>number(/in:Invoice/cac:LegalMonetaryTotal/cbc:TaxExclusiveAmount) eq
sum(/in:Invoice/cac:LegalMonetaryTotal/cbc:LineExtensionAmount) - sum(/in:Invoice/cac:LegalMonetaryTotal/cbc:AllowanceTotalAmount) - sum(/in:Invoice/cac:LegalMonetaryTotal/cbc:PrepaidAmount) + sum(/in:Invoice/cac:LegalMonetaryTotal/cbc:ChargeTotalAmount)</taml:predicate>
<taml:prescription level="preferred"/>
<taml:report label="failed" message="Error in Tax Exclusive Amount">in the invoice 'LegalMonetaryTotal' (the invoice not including any tax amounts) the 'TaxExclusiveAmount' is not equal to the 'LineExtensionAmount' minus any 'PrepaidAmount' minus any 'AllowanceTotalAmount' plus any 'ChargeTotalAmount'</taml:report>
</taml:testAssertion>
<taml:testAssertion id="INTOT6" name="TaxInclusiveAmount">
<taml:normativeSource>U2ICMDraft5Rule7:
"Any 'TaxInclusiveAmount' in the invoice 'LegalMonetaryTotal' SHOULD be
equal to the 'TaxExclusiveAmount' (in the invoice 'LegalMonetaryTotal')
plus the sum of any invoice total tax amounts (at invoice document level)
(with the exception of there being tax amounts in currencies other
than the currency of the invoice totals or there being is no
'TaxExclusiveAmount' in the invoice 'LegalMonetaryTotal')."</taml:normativeSource>
<taml:target type="total">/in:Invoice/cac:LegalMonetaryTotal</taml:target>
<taml:prerequisite>(count(distinct-values(//*/@currencyID)) eq 1) and (count(/in:Invoice/cac:LegalMonetaryTotal/cbc:TaxInclusiveAmount) gt 0)</taml:prerequisite>
<taml:predicate>number(/in:Invoice/cac:LegalMonetaryTotal/cbc:TaxInclusiveAmount) eq
sum(/in:Invoice/cac:LegalMonetaryTotal/cbc:TaxExclusiveAmount) + sum(/in:Invoice/cac:TaxTotal/cbc:TaxAmount)</taml:predicate>
<taml:prescription level="preferred"/>
<taml:report label="failed" message="Error in Tax Inclusive Amount">the 'TaxInclusiveAmount' in the invoice 'LegalMonetaryTotal' is not equal to any TaxExclusiveAmount (in the invoice 'LegalMonetaryTotal') plus the sum of any invoice total tax amounts (at invoice document level)</taml:report>
</taml:testAssertion>
<taml:testAssertion id="INTOT7a" name="PayableAmount (With TaxInclusiveAmount)">
<taml:normativeSource>U2ICMDraft5Rule8:
"The 'PayableAmount' in the invoice 'LegalMonetaryTotal' SHOULD be
equal to any 'TaxInclusiveAmount' (in the invoice 'LegalMonetaryTotal')
minus any 'PrepaidAmount' (in the invoice 'LegalMonetaryTotal') unless
there is no 'TaxInclusiveAmount' and there are no tax amounts in
which case the 'PayableAmount' SHOULD equal the 'TaxExclusiveAmount'
minus any 'PrepaidAmount' (in the invoice 'LegalMonetaryTotal') (with
the exception of there being no 'TaxExclusiveAmount' in the invoice
'LegalMonetaryTotal')."</taml:normativeSource>
<taml:target type="total">/in:Invoice/cac:LegalMonetaryTotal</taml:target>
<taml:prerequisite>(count(distinct-values(//*/@currencyID)) eq 1) and (count(/in:Invoice/cac:LegalMonetaryTotal/cbc:TaxInclusiveAmount) gt 0) and (count(/in:Invoice/cac:LegalMonetaryTotal/cbc:TaxExclusiveAmount) gt 0)</taml:prerequisite>
<taml:predicate>number(/in:Invoice/cac:LegalMonetaryTotal/cbc:PayableAmount) eq
number(/in:Invoice/cac:LegalMonetaryTotal/cbc:TaxInclusiveAmount) - sum(/in:Invoice/cac:PrepaidPayment/cbc:PaidAmount)</taml:predicate>
<taml:prescription level="preferred"/>
<taml:report label="failed" message="Error in Payable Amount">The 'PayableAmount' in the invoice 'LegalMonetaryTotal' is not equal to the 'TaxInclusiveAmount' (in the invoice 'LegalMonetaryTotal') minus any 'PrepaidAmount'.</taml:report>
</taml:testAssertion>
<taml:testAssertion id="INTOT7b" name="PayableAmount (With no taxes and no TaxInclusiveAmount)">
<taml:normativeSource>U2ICMDraft5Rule8:
"The 'PayableAmount' in the invoice 'LegalMonetaryTotal' SHOULD be
equal to any 'TaxInclusiveAmount' (in the invoice 'LegalMonetaryTotal')
minus any 'PrepaidAmount' (in the invoice 'LegalMonetaryTotal') unless
there is no 'TaxInclusiveAmount' and there are no tax amounts in
which case the 'PayableAmount' SHOULD equal the 'TaxExclusiveAmount'
minus any 'PrepaidAmount' (in the invoice 'LegalMonetaryTotal') (with
the exception of there being no 'TaxExclusiveAmount' in the invoice
'LegalMonetaryTotal')."</taml:normativeSource>
<taml:target type="total">/in:Invoice/cac:LegalMonetaryTotal</taml:target>
<taml:prerequisite>(count(distinct-values(//*/@currencyID)) eq 1) and (count(/in:Invoice/cac:LegalMonetaryTotal/cbc:TaxInclusiveAmount) eq 0) and (count(//cbc:TaxAmount) eq 0) and (count(/in:Invoice/cac:LegalMonetaryTotal/cbc:TaxExclusiveAmount) gt 0)</taml:prerequisite>
<taml:predicate>number(/in:Invoice/cac:LegalMonetaryTotal/cbc:PayableAmount) eq
number(/in:Invoice/cac:LegalMonetaryTotal/cbc:TaxExclusiveAmount) - sum(/in:Invoice/cac:LegalMonetaryTotal/cbc:PrepaidAmount)</taml:predicate>
<taml:prescription level="preferred"/>
<taml:report label="failed" message="Error in Payable Amount">The 'PayableAmount' in the invoice 'LegalMonetaryTotal' (there being no 'TaxInclusiveAmount' and no tax amounts) is not equal to the 'TaxExclusiveAmount' (in the invoice 'LegalMonetaryTotal') minus any 'PrepaidAmount'.</taml:report>
</taml:testAssertion>
<taml:testAssertion id="INTAX1" name="TaxAmount">
<taml:normativeSource>U2ICMDraft5Rule9:
"The sum of any invoice document level tax total amounts SHOULD equal the
sum of any document level subtotal tax amounts (with the exception of
there being tax amounts in currencies other than the currency of the
invoice totals)."</taml:normativeSource>
<taml:target type="tax" idscheme="concat('tax',position())">/in:Invoice/cac:TaxTotal/cbc:TaxAmount</taml:target>
<taml:prerequisite>(count(distinct-values(//*/@currencyID)) eq 1)</taml:prerequisite>
<taml:predicate>sum(/in:Invoice/cac:TaxTotal/cbc:TaxAmount) eq sum(/in:Invoice/cac:TaxTotal/cac:TaxSubtotal/cbc:TaxAmount)</taml:predicate>
<taml:prescription level="preferred"/>
<taml:report label="failed" message="Error in sum of Tax Amount">The sum of document level tax total amounts does not equal the sum of all document level subtotal tax amounts</taml:report>
</taml:testAssertion>
</taml:testAssertionSet>
 
 
Best regards
 
----
Stephen D Green
 
 



On 4 February 2010 21:12, Stephen Green <stephengreenubl@gmail.com> wrote:
FYI

Best regards

Steve
---
Stephen D Green





---------- Forwarded message ----------
From:  <stephen.green@documentengineeringservices.com>
Date: 4 February 2010 21:11
Subject: [tag] Groups - UBL 2 Invoice Example Calculation Model
Expressed in TAML v1.0   (ubl-ta-draft-1-0.xml) uploaded
To: tag@lists.oasis-open.org


The document revision named UBL 2 Invoice Example Calculation Model
Expressed in TAML v1.0 (ubl-ta-draft-1-0.xml) has been submitted by Stephen
Green to the OASIS Test Assertions Guidelines (TAG) TC document repository.
 This document is revision #19 of ubl-ta-draft-0-61.xml.

Document Description:
This is a working example of test assertions written in the Test Assertion
Markup Language. It represents an example calculation model for the OASIS
Universal Business Language version 2 (UBL 2) - defining as test assertions
one way to calculate the totals in a UBL 2 invoice. The test assertions
here use an XPath profile of Test Assertion Markup Language designed with a
dual role: They are executable as an actual test suite as well as providing
documentation of the test assertions themselves.

View Document Details:
http://www.oasis-open.org/committees/document.php?document_id=36265

Download Document:
http://www.oasis-open.org/committees/download.php/36265/ubl-ta-draft-1-0.xml

Revision:
This document is revision #19 of ubl-ta-draft-0-61.xml.  The document
details page referenced above will show the complete revision history.


PLEASE NOTE:  If the above links do not work for you, your email application
may be breaking the link into two pieces.  You may be able to copy and paste
the entire link address into the address field of your web browser.

-OASIS Open Administration

Attachment: ubl-ta-1-3.zip
Description: Zip archive



[Date Prev] | [Thread Prev] | [Thread Next] | [Date Next] -- [Date Index] | [Thread Index] | [List Home]