first commit
This commit is contained in:
90
modules/edocument_ubl/tests/scenario_ubl_2_invoice_parse.rst
Normal file
90
modules/edocument_ubl/tests/scenario_ubl_2_invoice_parse.rst
Normal file
@@ -0,0 +1,90 @@
|
||||
===================
|
||||
UBL 2 Invoice Parse
|
||||
===================
|
||||
|
||||
Imports::
|
||||
|
||||
>>> import datetime as dt
|
||||
>>> from decimal import Decimal
|
||||
|
||||
>>> from proteus import Model
|
||||
>>> from trytond.modules.account.tests.tools import create_chart, create_tax
|
||||
>>> from trytond.modules.company.tests.tools import create_company, get_company
|
||||
>>> from trytond.modules.currency.tests.tools import get_currency
|
||||
>>> from trytond.tests.tools import activate_modules, assertEqual
|
||||
>>> from trytond.tools import file_open
|
||||
|
||||
>>> cash_rounding = globals().get('cash_rounding', False)
|
||||
|
||||
Activate modules::
|
||||
|
||||
>>> modules = ['edocument_ubl', 'account_invoice', 'purchase']
|
||||
>>> if cash_rounding:
|
||||
... modules.append('account_cash_rounding')
|
||||
>>> config = activate_modules(modules, create_company, create_chart)
|
||||
|
||||
>>> Attachment = Model.get('ir.attachment')
|
||||
>>> EInvoice = Model.get('edocument.ubl.invoice')
|
||||
>>> Invoice = Model.get('account.invoice')
|
||||
|
||||
Setup company::
|
||||
|
||||
>>> company = get_company()
|
||||
>>> company.party.name = 'Buyercompany ltd'
|
||||
>>> company.party.save()
|
||||
|
||||
Create currency::
|
||||
|
||||
>>> eur = get_currency('EUR')
|
||||
>>> if cash_rounding:
|
||||
... eur.cash_rounding = Decimal('1')
|
||||
>>> eur.save()
|
||||
|
||||
Create tax::
|
||||
|
||||
>>> tax20 = create_tax(Decimal('.2'))
|
||||
>>> tax20.unece_category_code = 'S'
|
||||
>>> tax20.unece_code = 'VAT'
|
||||
>>> tax20.save()
|
||||
|
||||
>>> tax10 = create_tax(Decimal('.1'))
|
||||
>>> tax10.unece_category_code = 'AA'
|
||||
>>> tax10.unece_code = 'VAT'
|
||||
>>> tax10.save()
|
||||
|
||||
>>> tax0 = create_tax(Decimal('0'))
|
||||
>>> tax0.unece_category_code = 'E'
|
||||
>>> tax0.unece_code = 'VAT'
|
||||
>>> tax0.save()
|
||||
|
||||
Parse the UBL invoice::
|
||||
|
||||
>>> with file_open(
|
||||
... 'edocument_ubl/tests/UBL-Invoice-2.1-Example.xml',
|
||||
... mode='rb') as fp:
|
||||
... invoice_id = EInvoice.parse(fp.read(), config.context)
|
||||
|
||||
>>> invoice = Invoice(invoice_id)
|
||||
|
||||
>>> invoice.reference
|
||||
'TOSL108'
|
||||
>>> assertEqual(invoice.invoice_date, dt.date(2009, 12, 15))
|
||||
>>> invoice.party.name
|
||||
'The Sellercompany Incorporated'
|
||||
>>> invoice.invoice_address.rec_name
|
||||
'The Sellercompany Incorporated, Main street 1 5467, 54321, Big city'
|
||||
>>> assertEqual(invoice.company, company)
|
||||
>>> assertEqual(
|
||||
... invoice.total_amount,
|
||||
... Decimal('1729.00') if cash_rounding else Decimal('1728.70'))
|
||||
>>> invoice.tax_amount
|
||||
Decimal('292.20')
|
||||
>>> len(invoice.lines)
|
||||
7
|
||||
|
||||
>>> attachments = Attachment.find([])
|
||||
>>> len(attachments)
|
||||
3
|
||||
>>> assertEqual({a.resource for a in attachments}, {invoice})
|
||||
>>> sorted((a.name, a.type) for a in attachments)
|
||||
[('Drawing Doc2.pdf', 'data'), ('Framework agreement Contract321', 'data'), ('Timesheet Doc1', 'link')]
|
||||
Reference in New Issue
Block a user