trytond-edocument-ubl 7.8.7__tar.gz → 7.8.8__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (86) hide show
  1. {trytond_edocument_ubl-7.8.7 → trytond_edocument_ubl-7.8.8}/CHANGELOG +5 -0
  2. {trytond_edocument_ubl-7.8.7 → trytond_edocument_ubl-7.8.8}/PKG-INFO +1 -1
  3. {trytond_edocument_ubl-7.8.7 → trytond_edocument_ubl-7.8.8}/template/2/CreditNote.xml +11 -11
  4. {trytond_edocument_ubl-7.8.7 → trytond_edocument_ubl-7.8.8}/template/2/Invoice.xml +11 -11
  5. {trytond_edocument_ubl-7.8.7 → trytond_edocument_ubl-7.8.8}/tox.ini +1 -1
  6. {trytond_edocument_ubl-7.8.7 → trytond_edocument_ubl-7.8.8}/tryton.cfg +1 -1
  7. {trytond_edocument_ubl-7.8.7 → trytond_edocument_ubl-7.8.8}/trytond_edocument_ubl.egg-info/PKG-INFO +1 -1
  8. {trytond_edocument_ubl-7.8.7 → trytond_edocument_ubl-7.8.8}/COPYRIGHT +0 -0
  9. {trytond_edocument_ubl-7.8.7 → trytond_edocument_ubl-7.8.8}/LICENSE +0 -0
  10. {trytond_edocument_ubl-7.8.7 → trytond_edocument_ubl-7.8.8}/MANIFEST.in +0 -0
  11. {trytond_edocument_ubl-7.8.7 → trytond_edocument_ubl-7.8.8}/README.rst +0 -0
  12. {trytond_edocument_ubl-7.8.7 → trytond_edocument_ubl-7.8.8}/__init__.py +0 -0
  13. {trytond_edocument_ubl-7.8.7 → trytond_edocument_ubl-7.8.8}/account.py +0 -0
  14. {trytond_edocument_ubl-7.8.7 → trytond_edocument_ubl-7.8.8}/account.xml +0 -0
  15. {trytond_edocument_ubl-7.8.7 → trytond_edocument_ubl-7.8.8}/doc/conf.py +0 -0
  16. {trytond_edocument_ubl-7.8.7 → trytond_edocument_ubl-7.8.8}/doc/design.rst +0 -0
  17. {trytond_edocument_ubl-7.8.7 → trytond_edocument_ubl-7.8.8}/doc/index.rst +0 -0
  18. {trytond_edocument_ubl-7.8.7 → trytond_edocument_ubl-7.8.8}/doc/releases.rst +0 -0
  19. {trytond_edocument_ubl-7.8.7 → trytond_edocument_ubl-7.8.8}/doc/requirements-doc.txt +0 -0
  20. {trytond_edocument_ubl-7.8.7 → trytond_edocument_ubl-7.8.8}/document.py +0 -0
  21. {trytond_edocument_ubl-7.8.7 → trytond_edocument_ubl-7.8.8}/edocument.py +0 -0
  22. {trytond_edocument_ubl-7.8.7 → trytond_edocument_ubl-7.8.8}/exceptions.py +0 -0
  23. {trytond_edocument_ubl-7.8.7 → trytond_edocument_ubl-7.8.8}/icons/LICENSE +0 -0
  24. {trytond_edocument_ubl-7.8.7 → trytond_edocument_ubl-7.8.8}/locale/bg.po +0 -0
  25. {trytond_edocument_ubl-7.8.7 → trytond_edocument_ubl-7.8.8}/locale/ca.po +0 -0
  26. {trytond_edocument_ubl-7.8.7 → trytond_edocument_ubl-7.8.8}/locale/cs.po +0 -0
  27. {trytond_edocument_ubl-7.8.7 → trytond_edocument_ubl-7.8.8}/locale/de.po +0 -0
  28. {trytond_edocument_ubl-7.8.7 → trytond_edocument_ubl-7.8.8}/locale/es.po +0 -0
  29. {trytond_edocument_ubl-7.8.7 → trytond_edocument_ubl-7.8.8}/locale/es_419.po +0 -0
  30. {trytond_edocument_ubl-7.8.7 → trytond_edocument_ubl-7.8.8}/locale/et.po +0 -0
  31. {trytond_edocument_ubl-7.8.7 → trytond_edocument_ubl-7.8.8}/locale/fa.po +0 -0
  32. {trytond_edocument_ubl-7.8.7 → trytond_edocument_ubl-7.8.8}/locale/fi.po +0 -0
  33. {trytond_edocument_ubl-7.8.7 → trytond_edocument_ubl-7.8.8}/locale/fr.po +0 -0
  34. {trytond_edocument_ubl-7.8.7 → trytond_edocument_ubl-7.8.8}/locale/hu.po +0 -0
  35. {trytond_edocument_ubl-7.8.7 → trytond_edocument_ubl-7.8.8}/locale/id.po +0 -0
  36. {trytond_edocument_ubl-7.8.7 → trytond_edocument_ubl-7.8.8}/locale/it.po +0 -0
  37. {trytond_edocument_ubl-7.8.7 → trytond_edocument_ubl-7.8.8}/locale/lo.po +0 -0
  38. {trytond_edocument_ubl-7.8.7 → trytond_edocument_ubl-7.8.8}/locale/lt.po +0 -0
  39. {trytond_edocument_ubl-7.8.7 → trytond_edocument_ubl-7.8.8}/locale/nl.po +0 -0
  40. {trytond_edocument_ubl-7.8.7 → trytond_edocument_ubl-7.8.8}/locale/pl.po +0 -0
  41. {trytond_edocument_ubl-7.8.7 → trytond_edocument_ubl-7.8.8}/locale/pt.po +0 -0
  42. {trytond_edocument_ubl-7.8.7 → trytond_edocument_ubl-7.8.8}/locale/ro.po +0 -0
  43. {trytond_edocument_ubl-7.8.7 → trytond_edocument_ubl-7.8.8}/locale/ru.po +0 -0
  44. {trytond_edocument_ubl-7.8.7 → trytond_edocument_ubl-7.8.8}/locale/sl.po +0 -0
  45. {trytond_edocument_ubl-7.8.7 → trytond_edocument_ubl-7.8.8}/locale/tr.po +0 -0
  46. {trytond_edocument_ubl-7.8.7 → trytond_edocument_ubl-7.8.8}/locale/uk.po +0 -0
  47. {trytond_edocument_ubl-7.8.7 → trytond_edocument_ubl-7.8.8}/locale/zh_CN.po +0 -0
  48. {trytond_edocument_ubl-7.8.7 → trytond_edocument_ubl-7.8.8}/message.xml +0 -0
  49. {trytond_edocument_ubl-7.8.7 → trytond_edocument_ubl-7.8.8}/party.py +0 -0
  50. {trytond_edocument_ubl-7.8.7 → trytond_edocument_ubl-7.8.8}/setup.cfg +0 -0
  51. {trytond_edocument_ubl-7.8.7 → trytond_edocument_ubl-7.8.8}/setup.py +0 -0
  52. {trytond_edocument_ubl-7.8.7 → trytond_edocument_ubl-7.8.8}/template/2/base.xml +0 -0
  53. {trytond_edocument_ubl-7.8.7 → trytond_edocument_ubl-7.8.8}/tests/2.4/common/BDNDR-CCTS_CCT_SchemaModule-1.1.xsd +0 -0
  54. {trytond_edocument_ubl-7.8.7 → trytond_edocument_ubl-7.8.8}/tests/2.4/common/BDNDR-UnqualifiedDataTypes-1.1.xsd +0 -0
  55. {trytond_edocument_ubl-7.8.7 → trytond_edocument_ubl-7.8.8}/tests/2.4/common/UBL-CommonAggregateComponents-2.4.xsd +0 -0
  56. {trytond_edocument_ubl-7.8.7 → trytond_edocument_ubl-7.8.8}/tests/2.4/common/UBL-CommonBasicComponents-2.4.xsd +0 -0
  57. {trytond_edocument_ubl-7.8.7 → trytond_edocument_ubl-7.8.8}/tests/2.4/common/UBL-CommonExtensionComponents-2.4.xsd +0 -0
  58. {trytond_edocument_ubl-7.8.7 → trytond_edocument_ubl-7.8.8}/tests/2.4/common/UBL-CommonSignatureComponents-2.4.xsd +0 -0
  59. {trytond_edocument_ubl-7.8.7 → trytond_edocument_ubl-7.8.8}/tests/2.4/common/UBL-ExtensionContentDataType-2.4.xsd +0 -0
  60. {trytond_edocument_ubl-7.8.7 → trytond_edocument_ubl-7.8.8}/tests/2.4/common/UBL-QualifiedDataTypes-2.4.xsd +0 -0
  61. {trytond_edocument_ubl-7.8.7 → trytond_edocument_ubl-7.8.8}/tests/2.4/common/UBL-SignatureAggregateComponents-2.4.xsd +0 -0
  62. {trytond_edocument_ubl-7.8.7 → trytond_edocument_ubl-7.8.8}/tests/2.4/common/UBL-SignatureBasicComponents-2.4.xsd +0 -0
  63. {trytond_edocument_ubl-7.8.7 → trytond_edocument_ubl-7.8.8}/tests/2.4/common/UBL-XAdES01903v132-201601-2.4.xsd +0 -0
  64. {trytond_edocument_ubl-7.8.7 → trytond_edocument_ubl-7.8.8}/tests/2.4/common/UBL-XAdES01903v141-201601-2.4.xsd +0 -0
  65. {trytond_edocument_ubl-7.8.7 → trytond_edocument_ubl-7.8.8}/tests/2.4/common/UBL-xmldsig-core-schema-2.4.xsd +0 -0
  66. {trytond_edocument_ubl-7.8.7 → trytond_edocument_ubl-7.8.8}/tests/2.4/common/UBL-xmldsig1-schema-2.4.xsd +0 -0
  67. {trytond_edocument_ubl-7.8.7 → trytond_edocument_ubl-7.8.8}/tests/2.4/common/UBL-xmldsig11-schema-2.4.xsd +0 -0
  68. {trytond_edocument_ubl-7.8.7 → trytond_edocument_ubl-7.8.8}/tests/2.4/maindoc/UBL-CreditNote-2.4.xsd +0 -0
  69. {trytond_edocument_ubl-7.8.7 → trytond_edocument_ubl-7.8.8}/tests/2.4/maindoc/UBL-Invoice-2.4.xsd +0 -0
  70. {trytond_edocument_ubl-7.8.7 → trytond_edocument_ubl-7.8.8}/tests/UBL-CreditNote-2.1-Example.xml +0 -0
  71. {trytond_edocument_ubl-7.8.7 → trytond_edocument_ubl-7.8.8}/tests/UBL-Invoice-2.1-Example-Trivial.xml +0 -0
  72. {trytond_edocument_ubl-7.8.7 → trytond_edocument_ubl-7.8.8}/tests/UBL-Invoice-2.1-Example.xml +0 -0
  73. {trytond_edocument_ubl-7.8.7 → trytond_edocument_ubl-7.8.8}/tests/__init__.py +0 -0
  74. {trytond_edocument_ubl-7.8.7 → trytond_edocument_ubl-7.8.8}/tests/scenario_ubl_2_credit_note_parse.json +0 -0
  75. {trytond_edocument_ubl-7.8.7 → trytond_edocument_ubl-7.8.8}/tests/scenario_ubl_2_credit_note_parse.rst +0 -0
  76. {trytond_edocument_ubl-7.8.7 → trytond_edocument_ubl-7.8.8}/tests/scenario_ubl_2_invoice_parse.json +0 -0
  77. {trytond_edocument_ubl-7.8.7 → trytond_edocument_ubl-7.8.8}/tests/scenario_ubl_2_invoice_parse.rst +0 -0
  78. {trytond_edocument_ubl-7.8.7 → trytond_edocument_ubl-7.8.8}/tests/scenario_ubl_2_invoice_parse_trivial.rst +0 -0
  79. {trytond_edocument_ubl-7.8.7 → trytond_edocument_ubl-7.8.8}/tests/test_module.py +0 -0
  80. {trytond_edocument_ubl-7.8.7 → trytond_edocument_ubl-7.8.8}/tests/test_scenario.py +0 -0
  81. {trytond_edocument_ubl-7.8.7 → trytond_edocument_ubl-7.8.8}/trytond_edocument_ubl.egg-info/SOURCES.txt +0 -0
  82. {trytond_edocument_ubl-7.8.7 → trytond_edocument_ubl-7.8.8}/trytond_edocument_ubl.egg-info/dependency_links.txt +0 -0
  83. {trytond_edocument_ubl-7.8.7 → trytond_edocument_ubl-7.8.8}/trytond_edocument_ubl.egg-info/entry_points.txt +0 -0
  84. {trytond_edocument_ubl-7.8.7 → trytond_edocument_ubl-7.8.8}/trytond_edocument_ubl.egg-info/not-zip-safe +0 -0
  85. {trytond_edocument_ubl-7.8.7 → trytond_edocument_ubl-7.8.8}/trytond_edocument_ubl.egg-info/requires.txt +0 -0
  86. {trytond_edocument_ubl-7.8.7 → trytond_edocument_ubl-7.8.8}/trytond_edocument_ubl.egg-info/top_level.txt +0 -0
@@ -1,4 +1,9 @@
1
1
 
2
+ Version 7.8.8 - 2026-08-04
3
+ --------------------------
4
+ * Bug fixes (see mercurial logs for details)
5
+
6
+
2
7
  Version 7.8.7 - 2026-03-18
3
8
  --------------------------
4
9
  * Bug fixes (see mercurial logs for details)
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: trytond_edocument_ubl
3
- Version: 7.8.7
3
+ Version: 7.8.8
4
4
  Summary: Tryton module for electronic document UBL
5
5
  Home-page: http://www.tryton.org/
6
6
  Download-URL: http://downloads.tryton.org/7.8/
@@ -60,16 +60,16 @@ this repository contains the full copyright notices and license terms. -->
60
60
  <py:otherwise>
61
61
  <cac:PaymentTerms py:for="line in this.invoice.lines_to_pay">
62
62
  <cbc:Note py:if="this.invoice.payment_term and this.invoice.payment_term.description">${this.invoice.payment_term.description}</cbc:Note>
63
- <cbc:Amount py:attrs="{'currencyID': this.invoice.currency.code}">${line.amount}</cbc:Amount>
63
+ <cbc:Amount py:attrs="{'currencyID': this.invoice.currency.code}">${format(line.amount.normalize(), 'f')}</cbc:Amount>
64
64
  <cbc:PaymentDueDate>${line.maturity_date}</cbc:PaymentDueDate>
65
65
  </cac:PaymentTerms>
66
66
  </py:otherwise>
67
67
  </py:choose>
68
68
  <cac:TaxTotal py:for="group, lines, amount in this.taxes">
69
- <cbc:TaxAmount py:attrs="{'currencyID': this.invoice.currency.code}">${-amount}</cbc:TaxAmount>
69
+ <cbc:TaxAmount py:attrs="{'currencyID': this.invoice.currency.code}">${format((-amount).normalize(), 'f')}</cbc:TaxAmount>
70
70
  <cac:TaxSubtotal py:for="line in lines">
71
- <cbc:TaxableAmount py:attrs="{'currencyID': this.invoice.currency.code}">${-line.base}</cbc:TaxableAmount>
72
- <cbc:TaxAmount py:attrs="{'currencyID': this.invoice.currency.code}">${-line.amount}</cbc:TaxAmount>
71
+ <cbc:TaxableAmount py:attrs="{'currencyID': this.invoice.currency.code}">${format((-line.base).normalize(), 'f')}</cbc:TaxableAmount>
72
+ <cbc:TaxAmount py:attrs="{'currencyID': this.invoice.currency.code}">${format((-line.amount).normalize(), 'f')}</cbc:TaxAmount>
73
73
  <cbc:Percent py:if="line.tax.type == 'percentage' and not (specification or '').startswith('peppol')">${format((line.tax.rate * 100).normalize(), 'f')}</cbc:Percent>
74
74
  <cac:TaxCategory>
75
75
  <cbc:ID py:if="line.tax.unece_category_code">${line.tax.unece_category_code}</cbc:ID>
@@ -82,18 +82,18 @@ this repository contains the full copyright notices and license terms. -->
82
82
  </cac:TaxSubtotal>
83
83
  </cac:TaxTotal>
84
84
  <cac:LegalMonetaryTotal>
85
- <cbc:LineExtensionAmount py:attrs="{'currencyID': this.invoice.currency.code}">${-this.invoice.untaxed_amount}</cbc:LineExtensionAmount>
86
- <cbc:TaxExclusiveAmount py:attrs="{'currencyID': this.invoice.currency.code}">${-this.invoice.untaxed_amount}</cbc:TaxExclusiveAmount>
87
- <cbc:TaxInclusiveAmount py:attrs="{'currencyID': this.invoice.currency.code}">${-(this.invoice.untaxed_amount + this.invoice.tax_amount)}</cbc:TaxInclusiveAmount>
85
+ <cbc:LineExtensionAmount py:attrs="{'currencyID': this.invoice.currency.code}">${format((-this.invoice.untaxed_amount).normalize(), 'f')}</cbc:LineExtensionAmount>
86
+ <cbc:TaxExclusiveAmount py:attrs="{'currencyID': this.invoice.currency.code}">${format((-this.invoice.untaxed_amount).normalize(), 'f')}</cbc:TaxExclusiveAmount>
87
+ <cbc:TaxInclusiveAmount py:attrs="{'currencyID': this.invoice.currency.code}">${format((-(this.invoice.untaxed_amount + this.invoice.tax_amount)).normalize(), 'f')}</cbc:TaxInclusiveAmount>
88
88
  <py:if test="this.invoice.total_amount != (this.invoice.untaxed_amount + this.invoice.tax_amount)">
89
- <cbc:PayableRoundingAmount py:attrs="{'currencyID': this.invoice.currency.code}">${-(this.invoice.total_amount - this.invoice.untaxed_amount - this.invoice.tax_amount)}</cbc:PayableRoundingAmount>
89
+ <cbc:PayableRoundingAmount py:attrs="{'currencyID': this.invoice.currency.code}">${format((-(this.invoice.total_amount - this.invoice.untaxed_amount - this.invoice.tax_amount)).normalize(), 'f')}</cbc:PayableRoundingAmount>
90
90
  </py:if>
91
- <cbc:PayableAmount py:attrs="{'currencyID': this.invoice.currency.code}">${-this.invoice.total_amount}</cbc:PayableAmount>
91
+ <cbc:PayableAmount py:attrs="{'currencyID': this.invoice.currency.code}">${format((-this.invoice.total_amount).normalize(), 'f')}</cbc:PayableAmount>
92
92
  </cac:LegalMonetaryTotal>
93
93
  <cac:CreditNoteLine py:for="line_id, line in enumerate(this.lines, 1)">
94
94
  <cbc:ID>${line_id}</cbc:ID>
95
95
  <cbc:CreditedQuantity py:attrs="{'unitCode': line.unit.unece_code if line.unit and line.unit.unece_code else 'ZZ'}">${format(-Decimal(str(line.quantity)), 'f')}</cbc:CreditedQuantity>
96
- <cbc:LineExtensionAmount py:attrs="{'currencyID': this.invoice.currency.code}">${-line.amount}</cbc:LineExtensionAmount>
96
+ <cbc:LineExtensionAmount py:attrs="{'currencyID': this.invoice.currency.code}">${format((-line.amount).normalize(), 'f')}</cbc:LineExtensionAmount>
97
97
  <cac:Item>
98
98
  <cbc:Description py:if="line.description">${line.description}</cbc:Description>
99
99
  <cbc:Name>${line.product_name or line.summary}</cbc:Name>
@@ -117,7 +117,7 @@ this repository contains the full copyright notices and license terms. -->
117
117
  </cac:ClassifiedTaxCategory>
118
118
  </cac:Item>
119
119
  <cac:Price>
120
- <cbc:PriceAmount py:attrs="{'currencyID': this.invoice.currency.code}">${line.unit_price}</cbc:PriceAmount>
120
+ <cbc:PriceAmount py:attrs="{'currencyID': this.invoice.currency.code}">${format(line.unit_price.normalize(), 'f')}</cbc:PriceAmount>
121
121
  </cac:Price>
122
122
  </cac:CreditNoteLine>
123
123
  </CreditNote>
@@ -60,16 +60,16 @@ this repository contains the full copyright notices and license terms. -->
60
60
  <py:otherwise>
61
61
  <cac:PaymentTerms py:for="line in this.invoice.lines_to_pay">
62
62
  <cbc:Note py:if="this.invoice.payment_term and this.invoice.payment_term.description">${this.invoice.payment_term.description}</cbc:Note>
63
- <cbc:Amount py:attrs="{'currencyID': this.invoice.currency.code}">${line.amount}</cbc:Amount>
63
+ <cbc:Amount py:attrs="{'currencyID': this.invoice.currency.code}">${format(line.amount.normalize(), 'f')}</cbc:Amount>
64
64
  <cbc:PaymentDueDate>${line.maturity_date}</cbc:PaymentDueDate>
65
65
  </cac:PaymentTerms>
66
66
  </py:otherwise>
67
67
  </py:choose>
68
68
  <cac:TaxTotal py:for="group, lines, amount in this.taxes">
69
- <cbc:TaxAmount py:attrs="{'currencyID': this.invoice.currency.code}">${amount}</cbc:TaxAmount>
69
+ <cbc:TaxAmount py:attrs="{'currencyID': this.invoice.currency.code}">${format(amount.normalize(), 'f')}</cbc:TaxAmount>
70
70
  <cac:TaxSubtotal py:for="line in lines">
71
- <cbc:TaxableAmount py:attrs="{'currencyID': this.invoice.currency.code}">${line.base}</cbc:TaxableAmount>
72
- <cbc:TaxAmount py:attrs="{'currencyID': this.invoice.currency.code}">${line.amount}</cbc:TaxAmount>
71
+ <cbc:TaxableAmount py:attrs="{'currencyID': this.invoice.currency.code}">${format(line.base.normalize(), 'f')}</cbc:TaxableAmount>
72
+ <cbc:TaxAmount py:attrs="{'currencyID': this.invoice.currency.code}">${format(line.amount.normalize(), 'f')}</cbc:TaxAmount>
73
73
  <cbc:Percent py:if="line.tax.type == 'percentage' and not (specification or '').startswith('peppol')">${format((line.tax.rate * 100).normalize(), 'f')}</cbc:Percent>
74
74
  <cac:TaxCategory>
75
75
  <cbc:ID py:if="line.tax.unece_category_code">${line.tax.unece_category_code}</cbc:ID>
@@ -82,18 +82,18 @@ this repository contains the full copyright notices and license terms. -->
82
82
  </cac:TaxSubtotal>
83
83
  </cac:TaxTotal>
84
84
  <cac:LegalMonetaryTotal>
85
- <cbc:LineExtensionAmount py:attrs="{'currencyID': this.invoice.currency.code}">${this.invoice.untaxed_amount}</cbc:LineExtensionAmount>
86
- <cbc:TaxExclusiveAmount py:attrs="{'currencyID': this.invoice.currency.code}">${this.invoice.untaxed_amount}</cbc:TaxExclusiveAmount>
87
- <cbc:TaxInclusiveAmount py:attrs="{'currencyID': this.invoice.currency.code}">${this.invoice.untaxed_amount + this.invoice.tax_amount}</cbc:TaxInclusiveAmount>
85
+ <cbc:LineExtensionAmount py:attrs="{'currencyID': this.invoice.currency.code}">${format(this.invoice.untaxed_amount.normalize(), 'f')}</cbc:LineExtensionAmount>
86
+ <cbc:TaxExclusiveAmount py:attrs="{'currencyID': this.invoice.currency.code}">${format(this.invoice.untaxed_amount.normalize(), 'f')}</cbc:TaxExclusiveAmount>
87
+ <cbc:TaxInclusiveAmount py:attrs="{'currencyID': this.invoice.currency.code}">${format((this.invoice.untaxed_amount + this.invoice.tax_amount).normalize(), 'f')}</cbc:TaxInclusiveAmount>
88
88
  <py:if test="this.invoice.total_amount != (this.invoice.untaxed_amount + this.invoice.tax_amount)">
89
- <cbc:PayableRoundingAmount py:attrs="{'currencyID': this.invoice.currency.code}">${this.invoice.total_amount - this.invoice.untaxed_amount - this.invoice.tax_amount}</cbc:PayableRoundingAmount>
89
+ <cbc:PayableRoundingAmount py:attrs="{'currencyID': this.invoice.currency.code}">${format((this.invoice.total_amount - this.invoice.untaxed_amount - this.invoice.tax_amount).normalize(), 'f')}</cbc:PayableRoundingAmount>
90
90
  </py:if>
91
- <cbc:PayableAmount py:attrs="{'currencyID': this.invoice.currency.code}">${this.invoice.total_amount}</cbc:PayableAmount>
91
+ <cbc:PayableAmount py:attrs="{'currencyID': this.invoice.currency.code}">${format((this.invoice.total_amount).normalize(), 'f')}</cbc:PayableAmount>
92
92
  </cac:LegalMonetaryTotal>
93
93
  <cac:InvoiceLine py:for="line_id, line in enumerate(this.lines, 1)">
94
94
  <cbc:ID>${line_id}</cbc:ID>
95
95
  <cbc:InvoicedQuantity py:attrs="{'unitCode': line.unit.unece_code if line.unit and line.unit.unece_code else 'ZZ'}">${format(Decimal(str(line.quantity)), 'f')}</cbc:InvoicedQuantity>
96
- <cbc:LineExtensionAmount py:attrs="{'currencyID': this.invoice.currency.code}">${line.amount}</cbc:LineExtensionAmount>
96
+ <cbc:LineExtensionAmount py:attrs="{'currencyID': this.invoice.currency.code}">${format(line.amount.normalize(), 'f')}</cbc:LineExtensionAmount>
97
97
  <cac:Item>
98
98
  <cbc:Description py:if="line.description">${line.description}</cbc:Description>
99
99
  <cbc:Name>${line.product_name or line.summary}</cbc:Name>
@@ -117,7 +117,7 @@ this repository contains the full copyright notices and license terms. -->
117
117
  </cac:ClassifiedTaxCategory>
118
118
  </cac:Item>
119
119
  <cac:Price>
120
- <cbc:PriceAmount py:attrs="{'currencyID': this.invoice.currency.code}">${line.unit_price}</cbc:PriceAmount>
120
+ <cbc:PriceAmount py:attrs="{'currencyID': this.invoice.currency.code}">${format(line.unit_price.normalize(), 'f')}</cbc:PriceAmount>
121
121
  </cac:Price>
122
122
  </cac:InvoiceLine>
123
123
  </Invoice>
@@ -12,7 +12,7 @@ commands_post =
12
12
  deps =
13
13
  coverage
14
14
  unittest-xml-reporting
15
- postgresql: psycopg2 >= 2.7.0
15
+ postgresql: psycopg2-binary >= 2.7.0
16
16
  passenv = *
17
17
  setenv =
18
18
  sqlite: TRYTOND_DATABASE_URI={env:SQLITE_URI:sqlite://}
@@ -1,5 +1,5 @@
1
1
  [tryton]
2
- version=7.8.7
2
+ version=7.8.8
3
3
  depends:
4
4
  edocument_unece
5
5
  ir
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: trytond_edocument_ubl
3
- Version: 7.8.7
3
+ Version: 7.8.8
4
4
  Summary: Tryton module for electronic document UBL
5
5
  Home-page: http://www.tryton.org/
6
6
  Download-URL: http://downloads.tryton.org/7.8/