trytond-edocument-ubl 8.0.5__tar.gz → 8.2.0__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 (70) hide show
  1. {trytond_edocument_ubl-8.0.5 → trytond_edocument_ubl-8.2.0}/PKG-INFO +12 -12
  2. {trytond_edocument_ubl-8.0.5 → trytond_edocument_ubl-8.2.0}/edocument.py +1 -1
  3. {trytond_edocument_ubl-8.0.5 → trytond_edocument_ubl-8.2.0}/locale/bg.po +9 -0
  4. {trytond_edocument_ubl-8.0.5 → trytond_edocument_ubl-8.2.0}/locale/ca.po +18 -5
  5. {trytond_edocument_ubl-8.0.5 → trytond_edocument_ubl-8.2.0}/locale/cs.po +9 -0
  6. {trytond_edocument_ubl-8.0.5 → trytond_edocument_ubl-8.2.0}/locale/de.po +16 -3
  7. {trytond_edocument_ubl-8.0.5 → trytond_edocument_ubl-8.2.0}/locale/es.po +19 -6
  8. {trytond_edocument_ubl-8.0.5 → trytond_edocument_ubl-8.2.0}/locale/es_419.po +9 -0
  9. {trytond_edocument_ubl-8.0.5 → trytond_edocument_ubl-8.2.0}/locale/et.po +9 -0
  10. {trytond_edocument_ubl-8.0.5 → trytond_edocument_ubl-8.2.0}/locale/fa.po +9 -0
  11. {trytond_edocument_ubl-8.0.5 → trytond_edocument_ubl-8.2.0}/locale/fi.po +9 -0
  12. {trytond_edocument_ubl-8.0.5 → trytond_edocument_ubl-8.2.0}/locale/fr.po +13 -0
  13. {trytond_edocument_ubl-8.0.5 → trytond_edocument_ubl-8.2.0}/locale/hu.po +9 -0
  14. {trytond_edocument_ubl-8.0.5 → trytond_edocument_ubl-8.2.0}/locale/id.po +9 -0
  15. {trytond_edocument_ubl-8.0.5 → trytond_edocument_ubl-8.2.0}/locale/it.po +9 -0
  16. {trytond_edocument_ubl-8.0.5 → trytond_edocument_ubl-8.2.0}/locale/lo.po +9 -0
  17. {trytond_edocument_ubl-8.0.5 → trytond_edocument_ubl-8.2.0}/locale/lt.po +9 -0
  18. {trytond_edocument_ubl-8.0.5 → trytond_edocument_ubl-8.2.0}/locale/nl.po +9 -0
  19. {trytond_edocument_ubl-8.0.5 → trytond_edocument_ubl-8.2.0}/locale/pl.po +9 -0
  20. {trytond_edocument_ubl-8.0.5 → trytond_edocument_ubl-8.2.0}/locale/pt.po +9 -0
  21. {trytond_edocument_ubl-8.0.5 → trytond_edocument_ubl-8.2.0}/locale/ro.po +9 -0
  22. {trytond_edocument_ubl-8.0.5 → trytond_edocument_ubl-8.2.0}/locale/ru.po +9 -0
  23. {trytond_edocument_ubl-8.0.5 → trytond_edocument_ubl-8.2.0}/locale/sl.po +9 -0
  24. {trytond_edocument_ubl-8.0.5 → trytond_edocument_ubl-8.2.0}/locale/tr.po +9 -0
  25. {trytond_edocument_ubl-8.0.5 → trytond_edocument_ubl-8.2.0}/locale/uk.po +9 -0
  26. {trytond_edocument_ubl-8.0.5 → trytond_edocument_ubl-8.2.0}/locale/zh_CN.po +9 -0
  27. {trytond_edocument_ubl-8.0.5 → trytond_edocument_ubl-8.2.0}/template/2/CreditNote.xml +13 -13
  28. {trytond_edocument_ubl-8.0.5 → trytond_edocument_ubl-8.2.0}/template/2/Invoice.xml +13 -13
  29. {trytond_edocument_ubl-8.0.5 → trytond_edocument_ubl-8.2.0}/tryton.cfg +1 -1
  30. {trytond_edocument_ubl-8.0.5 → trytond_edocument_ubl-8.2.0}/.hgignore +0 -0
  31. {trytond_edocument_ubl-8.0.5 → trytond_edocument_ubl-8.2.0}/COPYRIGHT +0 -0
  32. {trytond_edocument_ubl-8.0.5 → trytond_edocument_ubl-8.2.0}/LICENSE +0 -0
  33. {trytond_edocument_ubl-8.0.5 → trytond_edocument_ubl-8.2.0}/__init__.py +0 -0
  34. {trytond_edocument_ubl-8.0.5 → trytond_edocument_ubl-8.2.0}/account.py +0 -0
  35. {trytond_edocument_ubl-8.0.5 → trytond_edocument_ubl-8.2.0}/account.xml +0 -0
  36. {trytond_edocument_ubl-8.0.5 → trytond_edocument_ubl-8.2.0}/document.py +0 -0
  37. {trytond_edocument_ubl-8.0.5 → trytond_edocument_ubl-8.2.0}/exceptions.py +0 -0
  38. {trytond_edocument_ubl-8.0.5 → trytond_edocument_ubl-8.2.0}/icons/LICENSE +0 -0
  39. {trytond_edocument_ubl-8.0.5 → trytond_edocument_ubl-8.2.0}/message.xml +0 -0
  40. {trytond_edocument_ubl-8.0.5 → trytond_edocument_ubl-8.2.0}/party.py +0 -0
  41. {trytond_edocument_ubl-8.0.5 → trytond_edocument_ubl-8.2.0}/pyproject.toml +0 -0
  42. {trytond_edocument_ubl-8.0.5 → trytond_edocument_ubl-8.2.0}/template/2/base.xml +0 -0
  43. {trytond_edocument_ubl-8.0.5 → trytond_edocument_ubl-8.2.0}/tests/2.4/common/BDNDR-CCTS_CCT_SchemaModule-1.1.xsd +0 -0
  44. {trytond_edocument_ubl-8.0.5 → trytond_edocument_ubl-8.2.0}/tests/2.4/common/BDNDR-UnqualifiedDataTypes-1.1.xsd +0 -0
  45. {trytond_edocument_ubl-8.0.5 → trytond_edocument_ubl-8.2.0}/tests/2.4/common/UBL-CommonAggregateComponents-2.4.xsd +0 -0
  46. {trytond_edocument_ubl-8.0.5 → trytond_edocument_ubl-8.2.0}/tests/2.4/common/UBL-CommonBasicComponents-2.4.xsd +0 -0
  47. {trytond_edocument_ubl-8.0.5 → trytond_edocument_ubl-8.2.0}/tests/2.4/common/UBL-CommonExtensionComponents-2.4.xsd +0 -0
  48. {trytond_edocument_ubl-8.0.5 → trytond_edocument_ubl-8.2.0}/tests/2.4/common/UBL-CommonSignatureComponents-2.4.xsd +0 -0
  49. {trytond_edocument_ubl-8.0.5 → trytond_edocument_ubl-8.2.0}/tests/2.4/common/UBL-ExtensionContentDataType-2.4.xsd +0 -0
  50. {trytond_edocument_ubl-8.0.5 → trytond_edocument_ubl-8.2.0}/tests/2.4/common/UBL-QualifiedDataTypes-2.4.xsd +0 -0
  51. {trytond_edocument_ubl-8.0.5 → trytond_edocument_ubl-8.2.0}/tests/2.4/common/UBL-SignatureAggregateComponents-2.4.xsd +0 -0
  52. {trytond_edocument_ubl-8.0.5 → trytond_edocument_ubl-8.2.0}/tests/2.4/common/UBL-SignatureBasicComponents-2.4.xsd +0 -0
  53. {trytond_edocument_ubl-8.0.5 → trytond_edocument_ubl-8.2.0}/tests/2.4/common/UBL-XAdES01903v132-201601-2.4.xsd +0 -0
  54. {trytond_edocument_ubl-8.0.5 → trytond_edocument_ubl-8.2.0}/tests/2.4/common/UBL-XAdES01903v141-201601-2.4.xsd +0 -0
  55. {trytond_edocument_ubl-8.0.5 → trytond_edocument_ubl-8.2.0}/tests/2.4/common/UBL-xmldsig-core-schema-2.4.xsd +0 -0
  56. {trytond_edocument_ubl-8.0.5 → trytond_edocument_ubl-8.2.0}/tests/2.4/common/UBL-xmldsig1-schema-2.4.xsd +0 -0
  57. {trytond_edocument_ubl-8.0.5 → trytond_edocument_ubl-8.2.0}/tests/2.4/common/UBL-xmldsig11-schema-2.4.xsd +0 -0
  58. {trytond_edocument_ubl-8.0.5 → trytond_edocument_ubl-8.2.0}/tests/2.4/maindoc/UBL-CreditNote-2.4.xsd +0 -0
  59. {trytond_edocument_ubl-8.0.5 → trytond_edocument_ubl-8.2.0}/tests/2.4/maindoc/UBL-Invoice-2.4.xsd +0 -0
  60. {trytond_edocument_ubl-8.0.5 → trytond_edocument_ubl-8.2.0}/tests/UBL-CreditNote-2.1-Example.xml +0 -0
  61. {trytond_edocument_ubl-8.0.5 → trytond_edocument_ubl-8.2.0}/tests/UBL-Invoice-2.1-Example-Trivial.xml +0 -0
  62. {trytond_edocument_ubl-8.0.5 → trytond_edocument_ubl-8.2.0}/tests/UBL-Invoice-2.1-Example.xml +0 -0
  63. {trytond_edocument_ubl-8.0.5 → trytond_edocument_ubl-8.2.0}/tests/__init__.py +0 -0
  64. {trytond_edocument_ubl-8.0.5 → trytond_edocument_ubl-8.2.0}/tests/scenario_ubl_2_credit_note_parse.json +0 -0
  65. {trytond_edocument_ubl-8.0.5 → trytond_edocument_ubl-8.2.0}/tests/scenario_ubl_2_credit_note_parse.rst +0 -0
  66. {trytond_edocument_ubl-8.0.5 → trytond_edocument_ubl-8.2.0}/tests/scenario_ubl_2_invoice_parse.json +0 -0
  67. {trytond_edocument_ubl-8.0.5 → trytond_edocument_ubl-8.2.0}/tests/scenario_ubl_2_invoice_parse.rst +0 -0
  68. {trytond_edocument_ubl-8.0.5 → trytond_edocument_ubl-8.2.0}/tests/scenario_ubl_2_invoice_parse_trivial.rst +0 -0
  69. {trytond_edocument_ubl-8.0.5 → trytond_edocument_ubl-8.2.0}/tests/test_module.py +0 -0
  70. {trytond_edocument_ubl-8.0.5 → trytond_edocument_ubl-8.2.0}/tests/test_scenario.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.5
2
2
  Name: trytond_edocument_ubl
3
- Version: 8.0.5
3
+ Version: 8.2.0
4
4
  Summary: UBL electronic document for Tryton
5
5
  Project-URL: homepage, https://www.tryton.org/
6
6
  Project-URL: documentation, https://docs.tryton.org/modules-edocument-ubl/
@@ -26,18 +26,18 @@ Requires-Python: >=3.10
26
26
  Requires-Dist: genshi
27
27
  Requires-Dist: lxml
28
28
  Requires-Dist: python-stdnum
29
- Requires-Dist: trytond-edocument-unece<8.1,>=8.0
30
- Requires-Dist: trytond-party<8.1,>=8.0
31
- Requires-Dist: trytond<8.1,>=8.0
29
+ Requires-Dist: trytond-edocument-unece<8.3,>=8.2
30
+ Requires-Dist: trytond-party<8.3,>=8.2
31
+ Requires-Dist: trytond<8.3,>=8.2
32
32
  Provides-Extra: test
33
- Requires-Dist: proteus<8.1,>=8.0; extra == 'test'
34
- Requires-Dist: trytond-account-cash-rounding<8.1,>=8.0; extra == 'test'
35
- Requires-Dist: trytond-account-invoice<8.1,>=8.0; extra == 'test'
36
- Requires-Dist: trytond-account-payment<8.1,>=8.0; extra == 'test'
37
- Requires-Dist: trytond-bank<8.1,>=8.0; extra == 'test'
38
- Requires-Dist: trytond-document-incoming-invoice<8.1,>=8.0; extra == 'test'
39
- Requires-Dist: trytond-purchase<8.1,>=8.0; extra == 'test'
40
- Requires-Dist: trytond-sale<8.1,>=8.0; extra == 'test'
33
+ Requires-Dist: proteus<8.3,>=8.2; extra == 'test'
34
+ Requires-Dist: trytond-account-cash-rounding<8.3,>=8.2; extra == 'test'
35
+ Requires-Dist: trytond-account-invoice<8.3,>=8.2; extra == 'test'
36
+ Requires-Dist: trytond-account-payment<8.3,>=8.2; extra == 'test'
37
+ Requires-Dist: trytond-bank<8.3,>=8.2; extra == 'test'
38
+ Requires-Dist: trytond-document-incoming-invoice<8.3,>=8.2; extra == 'test'
39
+ Requires-Dist: trytond-purchase<8.3,>=8.2; extra == 'test'
40
+ Requires-Dist: trytond-sale<8.3,>=8.2; extra == 'test'
41
41
  Description-Content-Type: text/x-rst
42
42
 
43
43
  ####################
@@ -1381,7 +1381,7 @@ class Invoice_Bank(metaclass=PoolMeta):
1381
1381
  raise InvoiceError(ngettext(
1382
1382
  'edocument_ubl.msg_bank_account_not_found',
1383
1383
  len(payees),
1384
- parties=','.join([p.rec_name for p in payees]),
1384
+ parties=', '.join([p.rec_name for p in payees]),
1385
1385
  account=etree.tostring(
1386
1386
  financial_account,
1387
1387
  pretty_print=True).decode()))
@@ -6,6 +6,15 @@ msgctxt "model:edocument.ubl.invoice,string:"
6
6
  msgid "Edocument Ubl Invoice"
7
7
  msgstr ""
8
8
 
9
+ #, python-format
10
+ msgctxt "model:ir.message,text:msg_bank_account_not_found"
11
+ msgid "Could not find bank account \"%(account)s\" for party \"%(parties)s\"."
12
+ msgid_plural ""
13
+ "Could not find bank account \"%(account)s\" for any of the parties "
14
+ "\"%(parties)s\"."
15
+ msgstr[0] ""
16
+ msgstr[1] ""
17
+
9
18
  #, python-format
10
19
  msgctxt "model:ir.message,text:msg_company_not_found"
11
20
  msgid ""
@@ -6,13 +6,26 @@ msgctxt "model:edocument.ubl.invoice,string:"
6
6
  msgid "Edocument Ubl Invoice"
7
7
  msgstr "Edocument Factura UBL"
8
8
 
9
+ #, python-format
10
+ msgctxt "model:ir.message,text:msg_bank_account_not_found"
11
+ msgid "Could not find bank account \"%(account)s\" for party \"%(parties)s\"."
12
+ msgid_plural ""
13
+ "Could not find bank account \"%(account)s\" for any of the parties "
14
+ "\"%(parties)s\"."
15
+ msgstr[0] ""
16
+ "No s'ha pogut trobar el compte bancari \"%(account)s per al tercer "
17
+ "\"%(parties)s\"."
18
+ msgstr[1] ""
19
+ "No s'ha pogut trobar el compte bancari \"%(account)s per cap dels tercers "
20
+ "\"%(parties)s\"."
21
+
9
22
  #, python-format
10
23
  msgctxt "model:ir.message,text:msg_company_not_found"
11
24
  msgid ""
12
25
  "Could not find the company for:\n"
13
26
  "%(company)s"
14
27
  msgstr ""
15
- "No s'ha pogut trobar l'empresa per:\n"
28
+ "No s'ha pogut trobar una empresa per:\n"
16
29
  "%(company)s"
17
30
 
18
31
  #, python-format
@@ -23,7 +36,7 @@ msgstr "Tipus de codi d'abonament no soportat: \"%(type_code)s\"."
23
36
  #, python-format
24
37
  msgctxt "model:ir.message,text:msg_currency_not_found"
25
38
  msgid "Could not find a currency with code \"%(code)s\"."
26
- msgstr "No s'ha pogut trobar una moneda amb codi \"%(code)s\"."
39
+ msgstr "No s'ha pogut trobar una moneda amb codi: \"%(code)s\"."
27
40
 
28
41
  #, python-format
29
42
  msgctxt "model:ir.message,text:msg_invoice_type_code_unsupported"
@@ -48,11 +61,11 @@ msgid_plural ""
48
61
  "Could not find a unit with UNECE code \"%(code)s\" and at least %(digits)s "
49
62
  "digits."
50
63
  msgstr[0] ""
51
- "No s'ha pogut trobar una unitat amb codi UNECE \"%(code)s i com a mínim "
64
+ "No s'ha trobat una unitat amb codi UNECE \"%(code)s\" i com a mínim "
52
65
  "%(digits)s dígit."
53
66
  msgstr[1] ""
54
- "No s'ha pogut trobar cap unitat amb el codi UNECE \"%(code)s\" i com a mínim"
55
- " %(digits)s dígits."
67
+ "No s'ha trobat una unitat amb codi UNECE \"%(code)s\" i com a mínim "
68
+ "%(digits)s dígits."
56
69
 
57
70
  msgctxt "selection:account.invoice.edocument.start,format:"
58
71
  msgid "UBL"
@@ -6,6 +6,15 @@ msgctxt "model:edocument.ubl.invoice,string:"
6
6
  msgid "Edocument Ubl Invoice"
7
7
  msgstr ""
8
8
 
9
+ #, python-format
10
+ msgctxt "model:ir.message,text:msg_bank_account_not_found"
11
+ msgid "Could not find bank account \"%(account)s\" for party \"%(parties)s\"."
12
+ msgid_plural ""
13
+ "Could not find bank account \"%(account)s\" for any of the parties "
14
+ "\"%(parties)s\"."
15
+ msgstr[0] ""
16
+ msgstr[1] ""
17
+
9
18
  #, python-format
10
19
  msgctxt "model:ir.message,text:msg_company_not_found"
11
20
  msgid ""
@@ -6,13 +6,26 @@ msgctxt "model:edocument.ubl.invoice,string:"
6
6
  msgid "Edocument Ubl Invoice"
7
7
  msgstr "E-Dokument UBL-Rechnung"
8
8
 
9
+ #, python-format
10
+ msgctxt "model:ir.message,text:msg_bank_account_not_found"
11
+ msgid "Could not find bank account \"%(account)s\" for party \"%(parties)s\"."
12
+ msgid_plural ""
13
+ "Could not find bank account \"%(account)s\" for any of the parties "
14
+ "\"%(parties)s\"."
15
+ msgstr[0] ""
16
+ "Das Bankkonto \"%(account)s\" für die Partei \"%(parties)s\" konnte nicht "
17
+ "gefunden werden."
18
+ msgstr[1] ""
19
+ "Das Bankkonto \"%(account)s\" für die Parteien \"%(parties)s\" konnte nicht "
20
+ "gefunden werden."
21
+
9
22
  #, python-format
10
23
  msgctxt "model:ir.message,text:msg_company_not_found"
11
24
  msgid ""
12
25
  "Could not find the company for:\n"
13
26
  "%(company)s"
14
27
  msgstr ""
15
- "Das Unternehmen konnte nicht gefunden werden:\n"
28
+ "Unternehmen nicht gefunden für:\n"
16
29
  "%(company)s"
17
30
 
18
31
  #, python-format
@@ -23,12 +36,12 @@ msgstr "Nicht unterstützter Storno-Rechnungstyp \"%(type_code)s\"."
23
36
  #, python-format
24
37
  msgctxt "model:ir.message,text:msg_currency_not_found"
25
38
  msgid "Could not find a currency with code \"%(code)s\"."
26
- msgstr "Es konnte keine Währung mit dem Code \"%(code)s\" gefunden werden."
39
+ msgstr "Die Währung mit dem Code %(code)s konnte nicht gefunden werden."
27
40
 
28
41
  #, python-format
29
42
  msgctxt "model:ir.message,text:msg_invoice_type_code_unsupported"
30
43
  msgid "Unsupported invoice type code \"%(type_code)s\"."
31
- msgstr "Nicht unterstützter Rechnungstyp \"%(type_code)s\"."
44
+ msgstr "Der Rechnungstyp %(type_code)s wird nicht unterstützt."
32
45
 
33
46
  #, python-format
34
47
  msgctxt "model:ir.message,text:msg_tax_not_found"
@@ -6,13 +6,26 @@ msgctxt "model:edocument.ubl.invoice,string:"
6
6
  msgid "Edocument Ubl Invoice"
7
7
  msgstr "Edocumento Factura UBL"
8
8
 
9
+ #, python-format
10
+ msgctxt "model:ir.message,text:msg_bank_account_not_found"
11
+ msgid "Could not find bank account \"%(account)s\" for party \"%(parties)s\"."
12
+ msgid_plural ""
13
+ "Could not find bank account \"%(account)s\" for any of the parties "
14
+ "\"%(parties)s\"."
15
+ msgstr[0] ""
16
+ "No se ha podido encontrar la cuenta bancaria \"%(account)s\" del tercero "
17
+ "\"%(parties)s\"."
18
+ msgstr[1] ""
19
+ "No se ha podido encontrar la cuenta bancaria \"%(account)s\" de ninguno de "
20
+ "los terceros \"%(parties)s\"."
21
+
9
22
  #, python-format
10
23
  msgctxt "model:ir.message,text:msg_company_not_found"
11
24
  msgid ""
12
25
  "Could not find the company for:\n"
13
26
  "%(company)s"
14
27
  msgstr ""
15
- "No se ha podido encontrar la empresa para:\n"
28
+ "No se ha podido encontrar una empresa para:\n"
16
29
  "%(company)s"
17
30
 
18
31
  #, python-format
@@ -23,7 +36,7 @@ msgstr "Tipo de código de abono no soportado: \"%(type_code)s\"."
23
36
  #, python-format
24
37
  msgctxt "model:ir.message,text:msg_currency_not_found"
25
38
  msgid "Could not find a currency with code \"%(code)s\"."
26
- msgstr "No se ha podido encontrar una moneda con código \"%(code)s\"."
39
+ msgstr "No se ha podido encontrar una divisa con código: \"%(code)s\"."
27
40
 
28
41
  #, python-format
29
42
  msgctxt "model:ir.message,text:msg_invoice_type_code_unsupported"
@@ -48,11 +61,11 @@ msgid_plural ""
48
61
  "Could not find a unit with UNECE code \"%(code)s\" and at least %(digits)s "
49
62
  "digits."
50
63
  msgstr[0] ""
51
- "No se ha podido encontrar una unidad con código UNECE \"%(code)s\" y con un "
52
- "mínimo de %(digits)s\" digito."
64
+ "No se ha encontrado una unidad con código UNECE \"%(code)s\" y como mínimo "
65
+ "%(digits)s dígito."
53
66
  msgstr[1] ""
54
- "No se ha podido encontrar una unidad con código UNECE \"%(code)s\" y con un "
55
- "mínimo de %(digits)s\" digitos."
67
+ "No se ha encontrado una unidad con código UNECE \"%(code)s\" y como mínimo "
68
+ "%(digits)s dígitos."
56
69
 
57
70
  msgctxt "selection:account.invoice.edocument.start,format:"
58
71
  msgid "UBL"
@@ -6,6 +6,15 @@ msgctxt "model:edocument.ubl.invoice,string:"
6
6
  msgid "Edocument Ubl Invoice"
7
7
  msgstr ""
8
8
 
9
+ #, python-format
10
+ msgctxt "model:ir.message,text:msg_bank_account_not_found"
11
+ msgid "Could not find bank account \"%(account)s\" for party \"%(parties)s\"."
12
+ msgid_plural ""
13
+ "Could not find bank account \"%(account)s\" for any of the parties "
14
+ "\"%(parties)s\"."
15
+ msgstr[0] ""
16
+ msgstr[1] ""
17
+
9
18
  #, python-format
10
19
  msgctxt "model:ir.message,text:msg_company_not_found"
11
20
  msgid ""
@@ -6,6 +6,15 @@ msgctxt "model:edocument.ubl.invoice,string:"
6
6
  msgid "Edocument Ubl Invoice"
7
7
  msgstr ""
8
8
 
9
+ #, python-format
10
+ msgctxt "model:ir.message,text:msg_bank_account_not_found"
11
+ msgid "Could not find bank account \"%(account)s\" for party \"%(parties)s\"."
12
+ msgid_plural ""
13
+ "Could not find bank account \"%(account)s\" for any of the parties "
14
+ "\"%(parties)s\"."
15
+ msgstr[0] ""
16
+ msgstr[1] ""
17
+
9
18
  #, python-format
10
19
  msgctxt "model:ir.message,text:msg_company_not_found"
11
20
  msgid ""
@@ -6,6 +6,15 @@ msgctxt "model:edocument.ubl.invoice,string:"
6
6
  msgid "Edocument Ubl Invoice"
7
7
  msgstr ""
8
8
 
9
+ #, python-format
10
+ msgctxt "model:ir.message,text:msg_bank_account_not_found"
11
+ msgid "Could not find bank account \"%(account)s\" for party \"%(parties)s\"."
12
+ msgid_plural ""
13
+ "Could not find bank account \"%(account)s\" for any of the parties "
14
+ "\"%(parties)s\"."
15
+ msgstr[0] ""
16
+ msgstr[1] ""
17
+
9
18
  #, python-format
10
19
  msgctxt "model:ir.message,text:msg_company_not_found"
11
20
  msgid ""
@@ -6,6 +6,15 @@ msgctxt "model:edocument.ubl.invoice,string:"
6
6
  msgid "Edocument Ubl Invoice"
7
7
  msgstr ""
8
8
 
9
+ #, python-format
10
+ msgctxt "model:ir.message,text:msg_bank_account_not_found"
11
+ msgid "Could not find bank account \"%(account)s\" for party \"%(parties)s\"."
12
+ msgid_plural ""
13
+ "Could not find bank account \"%(account)s\" for any of the parties "
14
+ "\"%(parties)s\"."
15
+ msgstr[0] ""
16
+ msgstr[1] ""
17
+
9
18
  #, python-format
10
19
  msgctxt "model:ir.message,text:msg_company_not_found"
11
20
  msgid ""
@@ -6,6 +6,19 @@ msgctxt "model:edocument.ubl.invoice,string:"
6
6
  msgid "Edocument Ubl Invoice"
7
7
  msgstr "Facture électronique UBL"
8
8
 
9
+ #, python-format
10
+ msgctxt "model:ir.message,text:msg_bank_account_not_found"
11
+ msgid "Could not find bank account \"%(account)s\" for party \"%(parties)s\"."
12
+ msgid_plural ""
13
+ "Could not find bank account \"%(account)s\" for any of the parties "
14
+ "\"%(parties)s\"."
15
+ msgstr[0] ""
16
+ "Impossible de trouver le compte bancaire « %(account)s » pour le tiers "
17
+ "« %(parties)s »."
18
+ msgstr[1] ""
19
+ "Impossible de trouver le compte bancaire « %(account)s » pour l’une des "
20
+ "tiers « %(parties)s »."
21
+
9
22
  #, python-format
10
23
  msgctxt "model:ir.message,text:msg_company_not_found"
11
24
  msgid ""
@@ -6,6 +6,15 @@ msgctxt "model:edocument.ubl.invoice,string:"
6
6
  msgid "Edocument Ubl Invoice"
7
7
  msgstr ""
8
8
 
9
+ #, python-format
10
+ msgctxt "model:ir.message,text:msg_bank_account_not_found"
11
+ msgid "Could not find bank account \"%(account)s\" for party \"%(parties)s\"."
12
+ msgid_plural ""
13
+ "Could not find bank account \"%(account)s\" for any of the parties "
14
+ "\"%(parties)s\"."
15
+ msgstr[0] ""
16
+ msgstr[1] ""
17
+
9
18
  #, python-format
10
19
  msgctxt "model:ir.message,text:msg_company_not_found"
11
20
  msgid ""
@@ -6,6 +6,15 @@ msgctxt "model:edocument.ubl.invoice,string:"
6
6
  msgid "Edocument Ubl Invoice"
7
7
  msgstr ""
8
8
 
9
+ #, python-format
10
+ msgctxt "model:ir.message,text:msg_bank_account_not_found"
11
+ msgid "Could not find bank account \"%(account)s\" for party \"%(parties)s\"."
12
+ msgid_plural ""
13
+ "Could not find bank account \"%(account)s\" for any of the parties "
14
+ "\"%(parties)s\"."
15
+ msgstr[0] ""
16
+ msgstr[1] ""
17
+
9
18
  #, python-format
10
19
  msgctxt "model:ir.message,text:msg_company_not_found"
11
20
  msgid ""
@@ -6,6 +6,15 @@ msgctxt "model:edocument.ubl.invoice,string:"
6
6
  msgid "Edocument Ubl Invoice"
7
7
  msgstr ""
8
8
 
9
+ #, python-format
10
+ msgctxt "model:ir.message,text:msg_bank_account_not_found"
11
+ msgid "Could not find bank account \"%(account)s\" for party \"%(parties)s\"."
12
+ msgid_plural ""
13
+ "Could not find bank account \"%(account)s\" for any of the parties "
14
+ "\"%(parties)s\"."
15
+ msgstr[0] ""
16
+ msgstr[1] ""
17
+
9
18
  #, python-format
10
19
  msgctxt "model:ir.message,text:msg_company_not_found"
11
20
  msgid ""
@@ -6,6 +6,15 @@ msgctxt "model:edocument.ubl.invoice,string:"
6
6
  msgid "Edocument Ubl Invoice"
7
7
  msgstr ""
8
8
 
9
+ #, python-format
10
+ msgctxt "model:ir.message,text:msg_bank_account_not_found"
11
+ msgid "Could not find bank account \"%(account)s\" for party \"%(parties)s\"."
12
+ msgid_plural ""
13
+ "Could not find bank account \"%(account)s\" for any of the parties "
14
+ "\"%(parties)s\"."
15
+ msgstr[0] ""
16
+ msgstr[1] ""
17
+
9
18
  #, python-format
10
19
  msgctxt "model:ir.message,text:msg_company_not_found"
11
20
  msgid ""
@@ -6,6 +6,15 @@ msgctxt "model:edocument.ubl.invoice,string:"
6
6
  msgid "Edocument Ubl Invoice"
7
7
  msgstr ""
8
8
 
9
+ #, python-format
10
+ msgctxt "model:ir.message,text:msg_bank_account_not_found"
11
+ msgid "Could not find bank account \"%(account)s\" for party \"%(parties)s\"."
12
+ msgid_plural ""
13
+ "Could not find bank account \"%(account)s\" for any of the parties "
14
+ "\"%(parties)s\"."
15
+ msgstr[0] ""
16
+ msgstr[1] ""
17
+
9
18
  #, python-format
10
19
  msgctxt "model:ir.message,text:msg_company_not_found"
11
20
  msgid ""
@@ -6,6 +6,15 @@ msgctxt "model:edocument.ubl.invoice,string:"
6
6
  msgid "Edocument Ubl Invoice"
7
7
  msgstr "E-document UBL Factuur"
8
8
 
9
+ #, python-format
10
+ msgctxt "model:ir.message,text:msg_bank_account_not_found"
11
+ msgid "Could not find bank account \"%(account)s\" for party \"%(parties)s\"."
12
+ msgid_plural ""
13
+ "Could not find bank account \"%(account)s\" for any of the parties "
14
+ "\"%(parties)s\"."
15
+ msgstr[0] ""
16
+ msgstr[1] ""
17
+
9
18
  #, python-format
10
19
  msgctxt "model:ir.message,text:msg_company_not_found"
11
20
  msgid ""
@@ -6,6 +6,15 @@ msgctxt "model:edocument.ubl.invoice,string:"
6
6
  msgid "Edocument Ubl Invoice"
7
7
  msgstr ""
8
8
 
9
+ #, python-format
10
+ msgctxt "model:ir.message,text:msg_bank_account_not_found"
11
+ msgid "Could not find bank account \"%(account)s\" for party \"%(parties)s\"."
12
+ msgid_plural ""
13
+ "Could not find bank account \"%(account)s\" for any of the parties "
14
+ "\"%(parties)s\"."
15
+ msgstr[0] ""
16
+ msgstr[1] ""
17
+
9
18
  #, python-format
10
19
  msgctxt "model:ir.message,text:msg_company_not_found"
11
20
  msgid ""
@@ -6,6 +6,15 @@ msgctxt "model:edocument.ubl.invoice,string:"
6
6
  msgid "Edocument Ubl Invoice"
7
7
  msgstr ""
8
8
 
9
+ #, python-format
10
+ msgctxt "model:ir.message,text:msg_bank_account_not_found"
11
+ msgid "Could not find bank account \"%(account)s\" for party \"%(parties)s\"."
12
+ msgid_plural ""
13
+ "Could not find bank account \"%(account)s\" for any of the parties "
14
+ "\"%(parties)s\"."
15
+ msgstr[0] ""
16
+ msgstr[1] ""
17
+
9
18
  #, python-format
10
19
  msgctxt "model:ir.message,text:msg_company_not_found"
11
20
  msgid ""
@@ -6,6 +6,15 @@ msgctxt "model:edocument.ubl.invoice,string:"
6
6
  msgid "Edocument Ubl Invoice"
7
7
  msgstr ""
8
8
 
9
+ #, python-format
10
+ msgctxt "model:ir.message,text:msg_bank_account_not_found"
11
+ msgid "Could not find bank account \"%(account)s\" for party \"%(parties)s\"."
12
+ msgid_plural ""
13
+ "Could not find bank account \"%(account)s\" for any of the parties "
14
+ "\"%(parties)s\"."
15
+ msgstr[0] ""
16
+ msgstr[1] ""
17
+
9
18
  #, python-format
10
19
  msgctxt "model:ir.message,text:msg_company_not_found"
11
20
  msgid ""
@@ -6,6 +6,15 @@ msgctxt "model:edocument.ubl.invoice,string:"
6
6
  msgid "Edocument Ubl Invoice"
7
7
  msgstr ""
8
8
 
9
+ #, python-format
10
+ msgctxt "model:ir.message,text:msg_bank_account_not_found"
11
+ msgid "Could not find bank account \"%(account)s\" for party \"%(parties)s\"."
12
+ msgid_plural ""
13
+ "Could not find bank account \"%(account)s\" for any of the parties "
14
+ "\"%(parties)s\"."
15
+ msgstr[0] ""
16
+ msgstr[1] ""
17
+
9
18
  #, python-format
10
19
  msgctxt "model:ir.message,text:msg_company_not_found"
11
20
  msgid ""
@@ -6,6 +6,15 @@ msgctxt "model:edocument.ubl.invoice,string:"
6
6
  msgid "Edocument Ubl Invoice"
7
7
  msgstr ""
8
8
 
9
+ #, python-format
10
+ msgctxt "model:ir.message,text:msg_bank_account_not_found"
11
+ msgid "Could not find bank account \"%(account)s\" for party \"%(parties)s\"."
12
+ msgid_plural ""
13
+ "Could not find bank account \"%(account)s\" for any of the parties "
14
+ "\"%(parties)s\"."
15
+ msgstr[0] ""
16
+ msgstr[1] ""
17
+
9
18
  #, python-format
10
19
  msgctxt "model:ir.message,text:msg_company_not_found"
11
20
  msgid ""
@@ -6,6 +6,15 @@ msgctxt "model:edocument.ubl.invoice,string:"
6
6
  msgid "Edocument Ubl Invoice"
7
7
  msgstr ""
8
8
 
9
+ #, python-format
10
+ msgctxt "model:ir.message,text:msg_bank_account_not_found"
11
+ msgid "Could not find bank account \"%(account)s\" for party \"%(parties)s\"."
12
+ msgid_plural ""
13
+ "Could not find bank account \"%(account)s\" for any of the parties "
14
+ "\"%(parties)s\"."
15
+ msgstr[0] ""
16
+ msgstr[1] ""
17
+
9
18
  #, python-format
10
19
  msgctxt "model:ir.message,text:msg_company_not_found"
11
20
  msgid ""
@@ -6,6 +6,15 @@ msgctxt "model:edocument.ubl.invoice,string:"
6
6
  msgid "Edocument Ubl Invoice"
7
7
  msgstr ""
8
8
 
9
+ #, python-format
10
+ msgctxt "model:ir.message,text:msg_bank_account_not_found"
11
+ msgid "Could not find bank account \"%(account)s\" for party \"%(parties)s\"."
12
+ msgid_plural ""
13
+ "Could not find bank account \"%(account)s\" for any of the parties "
14
+ "\"%(parties)s\"."
15
+ msgstr[0] ""
16
+ msgstr[1] ""
17
+
9
18
  #, python-format
10
19
  msgctxt "model:ir.message,text:msg_company_not_found"
11
20
  msgid ""
@@ -6,6 +6,15 @@ msgctxt "model:edocument.ubl.invoice,string:"
6
6
  msgid "Edocument Ubl Invoice"
7
7
  msgstr ""
8
8
 
9
+ #, python-format
10
+ msgctxt "model:ir.message,text:msg_bank_account_not_found"
11
+ msgid "Could not find bank account \"%(account)s\" for party \"%(parties)s\"."
12
+ msgid_plural ""
13
+ "Could not find bank account \"%(account)s\" for any of the parties "
14
+ "\"%(parties)s\"."
15
+ msgstr[0] ""
16
+ msgstr[1] ""
17
+
9
18
  #, python-format
10
19
  msgctxt "model:ir.message,text:msg_company_not_found"
11
20
  msgid ""
@@ -90,7 +90,7 @@ this repository contains the full copyright notices and license terms. -->
90
90
  <py:otherwise>
91
91
  <cac:PaymentTerms py:for="line in this.invoice.lines_to_pay">
92
92
  <cbc:Note py:if="this.invoice.payment_term and this.invoice.payment_term.description">${this.invoice.payment_term.description}</cbc:Note>
93
- <cbc:Amount py:attrs="{'currencyID': this.invoice.currency.code}">${format(line.amount.normalize(), 'f')}</cbc:Amount>
93
+ <cbc:Amount py:attrs="{'currencyID': this.invoice.currency.code}">${format(line.amount, 'f')}</cbc:Amount>
94
94
  <cbc:PaymentDueDate>${line.maturity_date}</cbc:PaymentDueDate>
95
95
  </cac:PaymentTerms>
96
96
  </py:otherwise>
@@ -101,16 +101,16 @@ this repository contains the full copyright notices and license terms. -->
101
101
  <cbc:AllowanceChargeReasonCode py:if="reason_code">${reason_code}</cbc:AllowanceChargeReasonCode>
102
102
  </py:with>
103
103
  <cbc:AllowanceChargeReason>${allowance_charge.product.name}</cbc:AllowanceChargeReason>
104
- <cbc:Amount py:attrs="{'currencyID': this.invoice.currency.code}">${format(abs(allowance_charge.amount).normalize(), 'f')}</cbc:Amount>
104
+ <cbc:Amount py:attrs="{'currencyID': this.invoice.currency.code}">${format(abs(allowance_charge.amount), 'f')}</cbc:Amount>
105
105
  <cac:TaxCategory py:for="tax_line in allowance_charge.invoice_taxes">
106
106
  ${TaxCategory(tax_line.tax)}
107
107
  </cac:TaxCategory>
108
108
  </cac:AllowanceCharge>
109
109
  <cac:TaxTotal py:for="group, lines, amount in this.taxes">
110
- <cbc:TaxAmount py:attrs="{'currencyID': this.invoice.currency.code}">${format((-amount).normalize(), 'f')}</cbc:TaxAmount>
110
+ <cbc:TaxAmount py:attrs="{'currencyID': this.invoice.currency.code}">${format(-amount, 'f')}</cbc:TaxAmount>
111
111
  <cac:TaxSubtotal py:for="line in lines">
112
- <cbc:TaxableAmount py:attrs="{'currencyID': this.invoice.currency.code}">${format((-line.base).normalize(), 'f')}</cbc:TaxableAmount>
113
- <cbc:TaxAmount py:attrs="{'currencyID': this.invoice.currency.code}">${format((-line.amount).normalize(), 'f')}</cbc:TaxAmount>
112
+ <cbc:TaxableAmount py:attrs="{'currencyID': this.invoice.currency.code}">${format(-line.base, 'f')}</cbc:TaxableAmount>
113
+ <cbc:TaxAmount py:attrs="{'currencyID': this.invoice.currency.code}">${format(-line.amount, 'f')}</cbc:TaxAmount>
114
114
  <cbc:Percent py:if="line.tax.type == 'percentage' and not (specification or '').startswith('peppol')">${format((line.tax.rate * 100).normalize(), 'f')}</cbc:Percent>
115
115
  <cac:TaxCategory>
116
116
  ${TaxCategory(line.tax)}
@@ -118,19 +118,19 @@ this repository contains the full copyright notices and license terms. -->
118
118
  </cac:TaxSubtotal>
119
119
  </cac:TaxTotal>
120
120
  <cac:LegalMonetaryTotal>
121
- <cbc:LineExtensionAmount py:attrs="{'currencyID': this.invoice.currency.code}">${format((-this.invoice.untaxed_amount).normalize(), 'f')}</cbc:LineExtensionAmount>
122
- <cbc:TaxExclusiveAmount py:attrs="{'currencyID': this.invoice.currency.code}">${format((-this.invoice.untaxed_amount).normalize(), 'f')}</cbc:TaxExclusiveAmount>
123
- <cbc:TaxInclusiveAmount py:attrs="{'currencyID': this.invoice.currency.code}">${format((-(this.invoice.untaxed_amount + this.invoice.tax_amount)).normalize(), 'f')}</cbc:TaxInclusiveAmount>
121
+ <cbc:LineExtensionAmount py:attrs="{'currencyID': this.invoice.currency.code}">${format(-this.invoice.untaxed_amount, 'f')}</cbc:LineExtensionAmount>
122
+ <cbc:TaxExclusiveAmount py:attrs="{'currencyID': this.invoice.currency.code}">${format(-this.invoice.untaxed_amount, 'f')}</cbc:TaxExclusiveAmount>
123
+ <cbc:TaxInclusiveAmount py:attrs="{'currencyID': this.invoice.currency.code}">${format(-(this.invoice.untaxed_amount + this.invoice.tax_amount), 'f')}</cbc:TaxInclusiveAmount>
124
124
  <py:if test="this.invoice.total_amount != (this.invoice.untaxed_amount + this.invoice.tax_amount)">
125
- <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>
125
+ <cbc:PayableRoundingAmount py:attrs="{'currencyID': this.invoice.currency.code}">${format(-(this.invoice.total_amount - this.invoice.untaxed_amount - this.invoice.tax_amount), 'f')}</cbc:PayableRoundingAmount>
126
126
  </py:if>
127
- <cbc:PrepaidAmount py:if="this.prepaid_amount" py:attrs="{'currencyID': this.invoice.currency.code}">${format((-this.prepaid_amount).normalize(), 'f')}</cbc:PrepaidAmount>
128
- <cbc:PayableAmount py:attrs="{'currencyID': this.invoice.currency.code}">${format((-this.invoice.total_amount + this.prepaid_amount).normalize(), 'f')}</cbc:PayableAmount>
127
+ <cbc:PrepaidAmount py:if="this.prepaid_amount" py:attrs="{'currencyID': this.invoice.currency.code}">${format(-this.prepaid_amount, 'f')}</cbc:PrepaidAmount>
128
+ <cbc:PayableAmount py:attrs="{'currencyID': this.invoice.currency.code}">${format(-this.invoice.total_amount + this.prepaid_amount, 'f')}</cbc:PayableAmount>
129
129
  </cac:LegalMonetaryTotal>
130
130
  <cac:CreditNoteLine py:for="line_id, line in enumerate(this.lines, 1)">
131
131
  <cbc:ID>${line_id}</cbc:ID>
132
- <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>
133
- <cbc:LineExtensionAmount py:attrs="{'currencyID': this.invoice.currency.code}">${format((-line.amount).normalize(), 'f')}</cbc:LineExtensionAmount>
132
+ <cbc:CreditedQuantity py:attrs="{'unitCode': line.unit.unece_code if line.unit and line.unit.unece_code else 'ZZ'}">${format(-Decimal(str(line.quantity)).normalize(), 'f')}</cbc:CreditedQuantity>
133
+ <cbc:LineExtensionAmount py:attrs="{'currencyID': this.invoice.currency.code}">${format(-line.amount, 'f')}</cbc:LineExtensionAmount>
134
134
  <cac:Item>
135
135
  <cbc:Description py:if="line.description">${line.description}</cbc:Description>
136
136
  <cbc:Name>${line.product.name if line.product else line.summary}</cbc:Name>
@@ -90,7 +90,7 @@ this repository contains the full copyright notices and license terms. -->
90
90
  <py:otherwise>
91
91
  <cac:PaymentTerms py:for="line in this.invoice.lines_to_pay">
92
92
  <cbc:Note py:if="this.invoice.payment_term and this.invoice.payment_term.description">${this.invoice.payment_term.description}</cbc:Note>
93
- <cbc:Amount py:attrs="{'currencyID': this.invoice.currency.code}">${format(line.amount.normalize(), 'f')}</cbc:Amount>
93
+ <cbc:Amount py:attrs="{'currencyID': this.invoice.currency.code}">${format(line.amount, 'f')}</cbc:Amount>
94
94
  <cbc:PaymentDueDate>${line.maturity_date}</cbc:PaymentDueDate>
95
95
  </cac:PaymentTerms>
96
96
  </py:otherwise>
@@ -101,16 +101,16 @@ this repository contains the full copyright notices and license terms. -->
101
101
  <cbc:AllowanceChargeReasonCode py:if="reason_code">${reason_code}</cbc:AllowanceChargeReasonCode>
102
102
  </py:with>
103
103
  <cbc:AllowanceChargeReason>${allowance_charge.product.name}</cbc:AllowanceChargeReason>
104
- <cbc:Amount py:attrs="{'currencyID': this.invoice.currency.code}">${format(abs(allowance_charge.amount).normalize(), 'f')}</cbc:Amount>
104
+ <cbc:Amount py:attrs="{'currencyID': this.invoice.currency.code}">${format(abs(allowance_charge.amount), 'f')}</cbc:Amount>
105
105
  <cac:TaxCategory py:for="tax_line in allowance_charge.invoice_taxes">
106
106
  ${TaxCategory(tax_line.tax)}
107
107
  </cac:TaxCategory>
108
108
  </cac:AllowanceCharge>
109
109
  <cac:TaxTotal py:for="group, lines, amount in this.taxes">
110
- <cbc:TaxAmount py:attrs="{'currencyID': this.invoice.currency.code}">${format(amount.normalize(), 'f')}</cbc:TaxAmount>
110
+ <cbc:TaxAmount py:attrs="{'currencyID': this.invoice.currency.code}">${format(amount, 'f')}</cbc:TaxAmount>
111
111
  <cac:TaxSubtotal py:for="line in lines">
112
- <cbc:TaxableAmount py:attrs="{'currencyID': this.invoice.currency.code}">${format(line.base.normalize(), 'f')}</cbc:TaxableAmount>
113
- <cbc:TaxAmount py:attrs="{'currencyID': this.invoice.currency.code}">${format(line.amount.normalize(), 'f')}</cbc:TaxAmount>
112
+ <cbc:TaxableAmount py:attrs="{'currencyID': this.invoice.currency.code}">${format(line.base, 'f')}</cbc:TaxableAmount>
113
+ <cbc:TaxAmount py:attrs="{'currencyID': this.invoice.currency.code}">${format(line.amount, 'f')}</cbc:TaxAmount>
114
114
  <cbc:Percent py:if="line.tax.type == 'percentage' and not (specification or '').startswith('peppol')">${format((line.tax.rate * 100).normalize(), 'f')}</cbc:Percent>
115
115
  <cac:TaxCategory>
116
116
  ${TaxCategory(line.tax)}
@@ -118,19 +118,19 @@ this repository contains the full copyright notices and license terms. -->
118
118
  </cac:TaxSubtotal>
119
119
  </cac:TaxTotal>
120
120
  <cac:LegalMonetaryTotal>
121
- <cbc:LineExtensionAmount py:attrs="{'currencyID': this.invoice.currency.code}">${format(this.invoice.untaxed_amount.normalize(), 'f')}</cbc:LineExtensionAmount>
122
- <cbc:TaxExclusiveAmount py:attrs="{'currencyID': this.invoice.currency.code}">${format(this.invoice.untaxed_amount.normalize(), 'f')}</cbc:TaxExclusiveAmount>
123
- <cbc:TaxInclusiveAmount py:attrs="{'currencyID': this.invoice.currency.code}">${format((this.invoice.untaxed_amount + this.invoice.tax_amount).normalize(), 'f')}</cbc:TaxInclusiveAmount>
121
+ <cbc:LineExtensionAmount py:attrs="{'currencyID': this.invoice.currency.code}">${format(this.invoice.untaxed_amount, 'f')}</cbc:LineExtensionAmount>
122
+ <cbc:TaxExclusiveAmount py:attrs="{'currencyID': this.invoice.currency.code}">${format(this.invoice.untaxed_amount, 'f')}</cbc:TaxExclusiveAmount>
123
+ <cbc:TaxInclusiveAmount py:attrs="{'currencyID': this.invoice.currency.code}">${format((this.invoice.untaxed_amount + this.invoice.tax_amount), 'f')}</cbc:TaxInclusiveAmount>
124
124
  <py:if test="this.invoice.total_amount != (this.invoice.untaxed_amount + this.invoice.tax_amount)">
125
- <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>
125
+ <cbc:PayableRoundingAmount py:attrs="{'currencyID': this.invoice.currency.code}">${format((this.invoice.total_amount - this.invoice.untaxed_amount - this.invoice.tax_amount), 'f')}</cbc:PayableRoundingAmount>
126
126
  </py:if>
127
- <cbc:PrepaidAmount py:if="this.prepaid_amount" py:attrs="{'currencyID': this.invoice.currency.code}">${format(this.prepaid_amount.normalize(), 'f')}</cbc:PrepaidAmount>
128
- <cbc:PayableAmount py:attrs="{'currencyID': this.invoice.currency.code}">${format((this.invoice.total_amount - this.prepaid_amount).normalize(), 'f')}</cbc:PayableAmount>
127
+ <cbc:PrepaidAmount py:if="this.prepaid_amount" py:attrs="{'currencyID': this.invoice.currency.code}">${format(this.prepaid_amount, 'f')}</cbc:PrepaidAmount>
128
+ <cbc:PayableAmount py:attrs="{'currencyID': this.invoice.currency.code}">${format(this.invoice.total_amount - this.prepaid_amount, 'f')}</cbc:PayableAmount>
129
129
  </cac:LegalMonetaryTotal>
130
130
  <cac:InvoiceLine py:for="line_id, line in enumerate(this.lines, 1)">
131
131
  <cbc:ID>${line_id}</cbc:ID>
132
- <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>
133
- <cbc:LineExtensionAmount py:attrs="{'currencyID': this.invoice.currency.code}">${format(line.amount.normalize(), 'f')}</cbc:LineExtensionAmount>
132
+ <cbc:InvoicedQuantity py:attrs="{'unitCode': line.unit.unece_code if line.unit and line.unit.unece_code else 'ZZ'}">${format(Decimal(str(line.quantity)).normalize(), 'f')}</cbc:InvoicedQuantity>
133
+ <cbc:LineExtensionAmount py:attrs="{'currencyID': this.invoice.currency.code}">${format(line.amount, 'f')}</cbc:LineExtensionAmount>
134
134
  <cac:Item>
135
135
  <cbc:Description py:if="line.description">${line.description}</cbc:Description>
136
136
  <cbc:Name>${line.product.name if line.product else line.summary}</cbc:Name>
@@ -1,5 +1,5 @@
1
1
  [tryton]
2
- version=8.0.5
2
+ version=8.2.0
3
3
  depends:
4
4
  edocument_unece
5
5
  ir