odoo-addon-l10n-it-fatturapa-out 16.0.1.2.1__py3-none-any.whl → 16.0.1.2.2__py3-none-any.whl

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.
@@ -7,7 +7,7 @@ ITA - Fattura elettronica - Emissione
7
7
  !! This file is generated by oca-gen-addon-readme !!
8
8
  !! changes will be overwritten. !!
9
9
  !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
10
- !! source digest: sha256:4f848c9816a69b9756b04cb58e52b4008716beaf9e45619bebe1d00206e5eeae
10
+ !! source digest: sha256:74876782e1ebe9f689062f76fbbcc862bffe8a295a2ccd48c9d0b393b4706bc9
11
11
  !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
12
12
 
13
13
  .. |badge1| image:: https://img.shields.io/badge/maturity-Beta-yellow.png
@@ -8,7 +8,7 @@
8
8
 
9
9
  {
10
10
  "name": "ITA - Fattura elettronica - Emissione",
11
- "version": "16.0.1.2.1",
11
+ "version": "16.0.1.2.2",
12
12
  "development_status": "Beta",
13
13
  "category": "Localization/Italy",
14
14
  "summary": "Emissione fatture elettroniche",
@@ -493,7 +493,9 @@ msgstr ""
493
493
  #. module: l10n_it_fatturapa_out
494
494
  #: model:ir.model.fields,help:l10n_it_fatturapa_out.field_res_partner__max_invoice_in_xml
495
495
  #: model:ir.model.fields,help:l10n_it_fatturapa_out.field_res_users__max_invoice_in_xml
496
- msgid "Maximum number of invoices to group in a single XML file. 0=Unlimited"
496
+ msgid ""
497
+ "Maximum number of invoices to group in a single XML file.\n"
498
+ "If this is 0, then the number configured in the account settings is considered."
497
499
  msgstr ""
498
500
 
499
501
  #. module: l10n_it_fatturapa_out
@@ -1,4 +1,5 @@
1
1
  # Copyright 2019 Roberto Fichera <roberto.fichera@levelprime.com>
2
+ # Copyright 2023 Simone Rubino - Aion Tech
2
3
  # License LGPL-3.0 or later (http://www.gnu.org/licenses/lgpl).
3
4
 
4
5
  from odoo import _, api, fields, models
@@ -11,7 +12,10 @@ class ResPartner(models.Model):
11
12
  max_invoice_in_xml = fields.Integer(
12
13
  string="Max Invoice # in XML",
13
14
  default=lambda self: self.env.company.max_invoice_in_xml,
14
- help="Maximum number of invoices to group in a single " "XML file. 0=Unlimited",
15
+ help="Maximum number of invoices to group in a single "
16
+ "XML file.\n"
17
+ "If this is 0, then the number configured "
18
+ "in the account settings is considered.",
15
19
  )
16
20
 
17
21
  @api.constrains("max_invoice_in_xml")
@@ -367,7 +367,7 @@ ul.auto-toc {
367
367
  !! This file is generated by oca-gen-addon-readme !!
368
368
  !! changes will be overwritten. !!
369
369
  !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
370
- !! source digest: sha256:4f848c9816a69b9756b04cb58e52b4008716beaf9e45619bebe1d00206e5eeae
370
+ !! source digest: sha256:74876782e1ebe9f689062f76fbbcc862bffe8a295a2ccd48c9d0b393b4706bc9
371
371
  !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! -->
372
372
  <p><a class="reference external image-reference" href="https://odoo-community.org/page/development-status"><img alt="Beta" src="https://img.shields.io/badge/maturity-Beta-yellow.png" /></a> <a class="reference external image-reference" href="http://www.gnu.org/licenses/agpl-3.0-standalone.html"><img alt="License: AGPL-3" src="https://img.shields.io/badge/licence-AGPL--3-blue.png" /></a> <a class="reference external image-reference" href="https://github.com/OCA/l10n-italy/tree/16.0/l10n_it_fatturapa_out"><img alt="OCA/l10n-italy" src="https://img.shields.io/badge/github-OCA%2Fl10n--italy-lightgray.png?logo=github" /></a> <a class="reference external image-reference" href="https://translation.odoo-community.org/projects/l10n-italy-16-0/l10n-italy-16-0-l10n_it_fatturapa_out"><img alt="Translate me on Weblate" src="https://img.shields.io/badge/weblate-Translate%20me-F47D42.png" /></a> <a class="reference external image-reference" href="https://runboat.odoo-community.org/builds?repo=OCA/l10n-italy&amp;target_branch=16.0"><img alt="Try me on Runboat" src="https://img.shields.io/badge/runboat-Try%20me-875A7B.png" /></a></p>
373
373
  <p><strong>Italiano</strong></p>
@@ -1,3 +1,6 @@
1
+ # Copyright 2023 Simone Rubino - Aion Tech
2
+ # License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl).
3
+
1
4
  import base64
2
5
  import tempfile
3
6
 
@@ -228,9 +231,17 @@ class FatturaPACommon(AccountTestInvoicingCommon):
228
231
  seq_date = inv_seq._create_date_range_seq(dt)
229
232
  seq_date.number_next_actual = invoice_number
230
233
 
231
- def run_wizard(self, invoice_id):
234
+ def run_wizard(self, invoice_ids):
235
+ """
236
+ Execute the export wizard on the invoices having ID `invoice_ids`.
237
+
238
+ :param invoice_ids: integer or list of integers
239
+ :return: result of export wizard
240
+ """
241
+ if not isinstance(invoice_ids, list):
242
+ invoice_ids = [invoice_ids]
232
243
  wizard = self.wizard_model.create({})
233
- return wizard.with_context(active_ids=invoice_id).exportFatturaPA()
244
+ return wizard.with_context(active_ids=invoice_ids).exportFatturaPA()
234
245
 
235
246
  def set_e_invoice_file_id(self, e_invoice, file_name):
236
247
  # We need this because file name is random and we can't predict it
@@ -1,7 +1,7 @@
1
1
  # Copyright 2014 Davide Corio
2
2
  # Copyright 2015-2016 Lorenzo Battistini - Agile Business Group
3
3
  # Copyright 2018-2019 Alex Comba - Agile Business Group
4
- # Copyright 2024 Simone Rubino - Aion Tech
4
+ # Copyright 2023 Simone Rubino - Aion Tech
5
5
  # License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl).
6
6
 
7
7
  import base64
@@ -1118,3 +1118,71 @@ class TestFatturaPAXMLValidation(FatturaPACommon):
1118
1118
  # XML doc to be validated
1119
1119
  xml_content = base64.decodebytes(attachment.datas)
1120
1120
  self.check_content(xml_content, "IT06363391001_00018.xml")
1121
+
1122
+ def _get_multiple_invoices(self, partner, invoices_number=2):
1123
+ """Create `invoices_number` invoices for `partner`."""
1124
+ invoices = self.invoice_model.browse()
1125
+ for _ in range(invoices_number):
1126
+ invoices |= self.init_invoice(
1127
+ "out_invoice",
1128
+ partner=partner,
1129
+ amounts=[
1130
+ 100,
1131
+ ],
1132
+ )
1133
+ invoices.action_post()
1134
+ return invoices
1135
+
1136
+ def test_max_invoice_number_unlimited(self):
1137
+ """Check that when both partner and company do not have any max value,
1138
+ only one attachment is created."""
1139
+
1140
+ # pre-condition: partner and company do not have any max value
1141
+ company = self.company
1142
+ self.assertEqual(company.max_invoice_in_xml, 0)
1143
+ partner = self.res_partner_fatturapa_0
1144
+ self.assertEqual(partner.max_invoice_in_xml, 0)
1145
+
1146
+ # Create two invoices
1147
+ invoices = self._get_multiple_invoices(partner)
1148
+ self.run_wizard(invoices.ids)
1149
+
1150
+ # Check that only one attachment is created
1151
+ attachments_nbr = len(invoices.mapped("fatturapa_attachment_out_id"))
1152
+ self.assertEqual(attachments_nbr, 1)
1153
+
1154
+ def test_max_invoice_number_partner(self):
1155
+ """Check that when partner has a max value, company value is ignored and
1156
+ many attachments are created."""
1157
+
1158
+ # pre-condition: partner has a value
1159
+ company = self.company
1160
+ self.assertEqual(company.max_invoice_in_xml, 0)
1161
+ partner = self.res_partner_fatturapa_0
1162
+ partner.max_invoice_in_xml = 1
1163
+
1164
+ # Create two invoices
1165
+ invoices = self._get_multiple_invoices(partner)
1166
+ self.run_wizard(invoices.ids)
1167
+
1168
+ # Check that two attachments are created
1169
+ attachments_nbr = len(invoices.mapped("fatturapa_attachment_out_id"))
1170
+ self.assertEqual(attachments_nbr, 2)
1171
+
1172
+ def test_max_invoice_number_company(self):
1173
+ """Check that when company has a max value and partner does not,
1174
+ many attachments are created."""
1175
+
1176
+ # pre-condition: only company has a value
1177
+ company = self.company
1178
+ company.max_invoice_in_xml = 1
1179
+ partner = self.res_partner_fatturapa_0
1180
+ self.assertEqual(partner.max_invoice_in_xml, 0)
1181
+
1182
+ # Create two invoices
1183
+ invoices = self._get_multiple_invoices(partner)
1184
+ self.run_wizard(invoices.ids)
1185
+
1186
+ # Check that two attachments are created
1187
+ attachments_nbr = len(invoices.mapped("fatturapa_attachment_out_id"))
1188
+ self.assertEqual(attachments_nbr, 2)
@@ -3,6 +3,7 @@
3
3
  # Copyright 2018 Simone Rubino - Agile Business Group
4
4
  # Copyright 2018 Sergio Corato
5
5
  # Copyright 2019 Alex Comba - Agile Business Group
6
+ # Copyright 2023 Simone Rubino - Aion Tech
6
7
  # License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html).
7
8
 
8
9
  import base64
@@ -217,11 +218,13 @@ class WizardExportFatturapa(models.TransientModel):
217
218
  if invoice.partner_id not in res:
218
219
  res[invoice.partner_id] = []
219
220
  res[invoice.partner_id].append(invoice.id)
221
+
222
+ company = self.env.company
223
+ company_max_invoice = company.max_invoice_in_xml
220
224
  for partner_id in res.keys():
221
- if partner_id.max_invoice_in_xml:
222
- res[partner_id] = list(
223
- split_list(res[partner_id], partner_id.max_invoice_in_xml)
224
- )
225
+ max_invoice = partner_id.max_invoice_in_xml or company_max_invoice
226
+ if max_invoice:
227
+ res[partner_id] = list(split_list(res[partner_id], max_invoice))
225
228
  else:
226
229
  res[partner_id] = [res[partner_id]]
227
230
  # The returned dictionary contains a plain res.partner object as key
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: odoo-addon-l10n_it_fatturapa_out
3
- Version: 16.0.1.2.1
3
+ Version: 16.0.1.2.2
4
4
  Requires-Python: >=3.10
5
5
  Requires-Dist: elementpath
6
6
  Requires-Dist: odoo-addon-l10n_it_account>=16.0dev,<16.1dev
@@ -28,7 +28,7 @@ ITA - Fattura elettronica - Emissione
28
28
  !! This file is generated by oca-gen-addon-readme !!
29
29
  !! changes will be overwritten. !!
30
30
  !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
31
- !! source digest: sha256:4f848c9816a69b9756b04cb58e52b4008716beaf9e45619bebe1d00206e5eeae
31
+ !! source digest: sha256:74876782e1ebe9f689062f76fbbcc862bffe8a295a2ccd48c9d0b393b4706bc9
32
32
  !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
33
33
 
34
34
  .. |badge1| image:: https://img.shields.io/badge/maturity-Beta-yellow.png
@@ -1,6 +1,6 @@
1
- odoo/addons/l10n_it_fatturapa_out/README.rst,sha256=2JMcd8fLj4_fdytF4OizZ55EKWtJXoPrNIvhJ-YM93c,5649
1
+ odoo/addons/l10n_it_fatturapa_out/README.rst,sha256=XrfK1xEAX6AEHfH0I9A5lIPdVFYGwjOaSG49RcqPvY0,5649
2
2
  odoo/addons/l10n_it_fatturapa_out/__init__.py,sha256=W3SLrBcwzfdkH0kPgcqn6I9vWke1eAXoWdS6LBjaLKw,137
3
- odoo/addons/l10n_it_fatturapa_out/__manifest__.py,sha256=VeyVcuqpqMyDetJWqXCoVqi_VIc6_hHzzUNTlE7G3PQ,1445
3
+ odoo/addons/l10n_it_fatturapa_out/__manifest__.py,sha256=T7W7uzGPaHK3dCPGJ30Lh7s2Xt4utiWrWMnksyoVJ2U,1445
4
4
  odoo/addons/l10n_it_fatturapa_out/data/invoice_it_template.xml,sha256=HHGIO_O16G2rWOdEyahUCJ9yOI1OjZZ_wC4KXy3Ljsw,37476
5
5
  odoo/addons/l10n_it_fatturapa_out/data/l10n_it_fatturapa_out_data.xml,sha256=OkEskrtlI1TklcV52BeHnTe9Idmr438b8agZgD7in3c,320
6
6
  odoo/addons/l10n_it_fatturapa_out/i18n/am.po,sha256=6nF845fp7rQhUQtaHhvKf2CicRWimbxGpoj9Iii_p5M,29706
@@ -46,7 +46,7 @@ odoo/addons/l10n_it_fatturapa_out/i18n/id.po,sha256=i4_ZgorA84gPN6zaB0GrxAD4pBlc
46
46
  odoo/addons/l10n_it_fatturapa_out/i18n/it.po,sha256=QuH2TgAkTUPMyTuyv3SqgAt6tjXy3IJFvHhqB3N54J0,41359
47
47
  odoo/addons/l10n_it_fatturapa_out/i18n/ja.po,sha256=6-_uVcSGhi449O_6Zv_Za6TZ9UckNuXoV0FV0WiVLv4,29761
48
48
  odoo/addons/l10n_it_fatturapa_out/i18n/ko.po,sha256=zD5YjsYGOwRqERvrcyRgyc3BuxjAoTFq2a2QZzda5Xo,29720
49
- odoo/addons/l10n_it_fatturapa_out/i18n/l10n_it_fatturapa_out.pot,sha256=hXSVTe6n72AwROtV5o78SxGY99NGGI3hs9zApn6i_ko,29319
49
+ odoo/addons/l10n_it_fatturapa_out/i18n/l10n_it_fatturapa_out.pot,sha256=LOeb_uqFhmqqevmBKr26yVKEpy905TWhbSQFvmPTEgY,29394
50
50
  odoo/addons/l10n_it_fatturapa_out/i18n/lo.po,sha256=qDCtWvzn4b17CGlOXUGu86GaR8lZcHDK0B-KUBbkjCU,29640
51
51
  odoo/addons/l10n_it_fatturapa_out/i18n/lt.po,sha256=xq3RcWZxHioWb0aGoRbkySkFdxsT7xF2ZBVNK8eNSxU,29881
52
52
  odoo/addons/l10n_it_fatturapa_out/i18n/lt_LT.po,sha256=Xpj80Az5niuiQswuA1v33hBpNOh3lEjzM0Ra70MJkNQ,29798
@@ -82,7 +82,7 @@ odoo/addons/l10n_it_fatturapa_out/models/__init__.py,sha256=hCcGZj2Cyp2lLJnKLzka
82
82
  odoo/addons/l10n_it_fatturapa_out/models/account.py,sha256=lK1QJEGKFsMLfWc9d0accTXlAEjqu8AhueAXlQdDSzc,3855
83
83
  odoo/addons/l10n_it_fatturapa_out/models/attachment.py,sha256=BQ6BJyIPzjWTA2hQaMnWzGNWCAJ37rreofPuAGtimQA,5999
84
84
  odoo/addons/l10n_it_fatturapa_out/models/company.py,sha256=YWumZPYWBiTVzUTjrfXpM0MM9bhoGD2OjT3UiSV3N-w,2377
85
- odoo/addons/l10n_it_fatturapa_out/models/partner.py,sha256=0GNOn_PWtcFfzP8UiZTSh44q1HB7Jg5LhFizysZPTG4,945
85
+ odoo/addons/l10n_it_fatturapa_out/models/partner.py,sha256=HkQKau5nvoa3VIoiUgNoIaV7lABxYgjYnWaapK4jQpc,1087
86
86
  odoo/addons/l10n_it_fatturapa_out/readme/CONFIGURE.md,sha256=SyRsO1yQ29ypgwgTHONlrLp9rY_BP1eHK2WFfUHcIIE,827
87
87
  odoo/addons/l10n_it_fatturapa_out/readme/CONTRIBUTORS.md,sha256=0PFsLlbz3KEOOKENVBHJ8RaIPi4DfeiQGsJ7J8tL66Q,416
88
88
  odoo/addons/l10n_it_fatturapa_out/readme/DESCRIPTION.md,sha256=QFYN-1z52BLlqxBQ21bDaHQOlJH6p1pc22CQ6qLkJBQ,548
@@ -90,11 +90,11 @@ odoo/addons/l10n_it_fatturapa_out/readme/USAGE.md,sha256=CPBqji3HDYYP9aGBkn6Cknh
90
90
  odoo/addons/l10n_it_fatturapa_out/security/ir.model.access.csv,sha256=hheFLdZySR_wQd0-zdRpJeewdlrlE1LtKj_-seX_3pM,340
91
91
  odoo/addons/l10n_it_fatturapa_out/security/rules.xml,sha256=6_swzyFR5GaxWSA9j3NeUOVGgKVbLDOFk7jVDzUdUfg,514
92
92
  odoo/addons/l10n_it_fatturapa_out/static/description/icon.png,sha256=_NDgbxF3ta8ijPcvP_MPNmjN8w4hlN218cE3omw8EGM,4829
93
- odoo/addons/l10n_it_fatturapa_out/static/description/index.html,sha256=aeQg5k_yXlTWpcCXTNOtIXUMKd9DUpQLACvlCDa6GR4,16499
93
+ odoo/addons/l10n_it_fatturapa_out/static/description/index.html,sha256=WtbtfT_HzDpf_EV1TTv6EwkH-pz1ryM8XYYWmTooQ-w,16499
94
94
  odoo/addons/l10n_it_fatturapa_out/tests/__init__.py,sha256=KNxMSQSj8RCCaGVrqzTQ5Od7v2x6gUrdZz_PubpUp2A,148
95
- odoo/addons/l10n_it_fatturapa_out/tests/fatturapa_common.py,sha256=WK3-H3_h8YklXN3x-cwS1o1zPeEukuL9lvRi385qBhM,11487
95
+ odoo/addons/l10n_it_fatturapa_out/tests/fatturapa_common.py,sha256=E5eftcSbYsCsbaLu8sVbSP3iCYbbn9kL4_adh6kkzW8,11883
96
96
  odoo/addons/l10n_it_fatturapa_out/tests/test_fatturapa_out_noteline.py,sha256=KO7of281GNIPLjcAJXv-2jdA9q1nFLGu8XBcftGrlE4,8950
97
- odoo/addons/l10n_it_fatturapa_out/tests/test_fatturapa_xml_validation.py,sha256=bac2i7eo3-ng2VY3fyeCQQ8Q6O2aWnJ_5nggC4ao1Xw,45938
97
+ odoo/addons/l10n_it_fatturapa_out/tests/test_fatturapa_xml_validation.py,sha256=AvER6Qhv24yS8Xsm8s2bt3nhuDrdgQ07DTa3dcJw4c0,48508
98
98
  odoo/addons/l10n_it_fatturapa_out/tests/data/CHE114993395IVA_00007.xml,sha256=c6E1sOaUDy70SNoldyeakWjurbovnBG4Dnv1IEgSXXA,4597
99
99
  odoo/addons/l10n_it_fatturapa_out/tests/data/IT03297040366_00005.xml,sha256=SeF_jvQPMeDlVgZxLPP32dhv3ow9P5xqsKzQ6rkFHvE,4577
100
100
  odoo/addons/l10n_it_fatturapa_out/tests/data/IT03297040366_00019.xml,sha256=iRPmXM0vB8P66UyokpcHeX_94JNSqGngrgyB516AkCE,4020
@@ -122,11 +122,11 @@ odoo/addons/l10n_it_fatturapa_out/views/company_view.xml,sha256=1mWO8CT-zo6MP5ug
122
122
  odoo/addons/l10n_it_fatturapa_out/views/partner_view.xml,sha256=DvVhn8VfHkt8YSFPlKI9k1lrV4D6fg7e5s5vNlDnq4g,513
123
123
  odoo/addons/l10n_it_fatturapa_out/wizard/__init__.py,sha256=ZWQbHot4YQecoYNooAZtguia2eQat_XatBfN9bkNsYs,140
124
124
  odoo/addons/l10n_it_fatturapa_out/wizard/efattura.py,sha256=WgiY3XqqWwwdJs3lQ2q4vCfejUyqWyWGCGiu70Gwjz0,11577
125
- odoo/addons/l10n_it_fatturapa_out/wizard/wizard_export_fatturapa.py,sha256=AnNQQM1BQ0aT_5b0VZjP2xh-pwrfTUw_e1uSFiz9mA0,12733
125
+ odoo/addons/l10n_it_fatturapa_out/wizard/wizard_export_fatturapa.py,sha256=mTzXNoIDj4yFdRLN2uoT8KC3oRK8OIz-J56KQ1VU014,12874
126
126
  odoo/addons/l10n_it_fatturapa_out/wizard/wizard_export_fatturapa_regenerate.py,sha256=wWr5g6bT1WkXetBmcsS5KRtICisb2eb3BxiEaNnsma4,2357
127
127
  odoo/addons/l10n_it_fatturapa_out/wizard/wizard_export_fatturapa_view.xml,sha256=ljilCk05gfHX2AvYGyGF4ayuikz5-y8fweD_S2PiHgM,1795
128
128
  odoo/addons/l10n_it_fatturapa_out/wizard/wizard_export_fatturapa_view_regenerate.xml,sha256=ZK2JL46SfqWWClapEhwW65PXWxffvxZKFrmQSU9Iyrs,1465
129
- odoo_addon_l10n_it_fatturapa_out-16.0.1.2.1.dist-info/METADATA,sha256=-WK8jFzN9BnekXo3IwOm4RdRSmNjogTn_5aVPt0t4KY,6495
130
- odoo_addon_l10n_it_fatturapa_out-16.0.1.2.1.dist-info/WHEEL,sha256=8Rd4enx1PCuyDWP4SABqO5Fv8rpaknqp3VzjoFFLa6c,83
131
- odoo_addon_l10n_it_fatturapa_out-16.0.1.2.1.dist-info/top_level.txt,sha256=QE6RBQ0QX5f4eFuUcGgU5Kbq1A_qJcDs-e_vpr6pmfU,4
132
- odoo_addon_l10n_it_fatturapa_out-16.0.1.2.1.dist-info/RECORD,,
129
+ odoo_addon_l10n_it_fatturapa_out-16.0.1.2.2.dist-info/METADATA,sha256=1v1GUH59qLCMciMN2YVJL3JCS0h4M9rlQBdC2VMx5yw,6495
130
+ odoo_addon_l10n_it_fatturapa_out-16.0.1.2.2.dist-info/WHEEL,sha256=8Rd4enx1PCuyDWP4SABqO5Fv8rpaknqp3VzjoFFLa6c,83
131
+ odoo_addon_l10n_it_fatturapa_out-16.0.1.2.2.dist-info/top_level.txt,sha256=QE6RBQ0QX5f4eFuUcGgU5Kbq1A_qJcDs-e_vpr6pmfU,4
132
+ odoo_addon_l10n_it_fatturapa_out-16.0.1.2.2.dist-info/RECORD,,