diff --git a/l10n_it_account_stamp/README.rst b/l10n_it_account_stamp/README.rst index 569f374f1da1..23670150b331 100644 --- a/l10n_it_account_stamp/README.rst +++ b/l10n_it_account_stamp/README.rst @@ -144,12 +144,15 @@ Authors Contributors ------------ -- Lorenzo Battistini +- Lorenzo Battistini + <`https://github.com/eLBati `__> - Sergio Corato - Ermanno Gnan - Enrico Ganzaroli -- Sergio Zanchetta -- Marco Colombo +- Sergio Zanchetta + <`https://github.com/primes2h `__> +- Marco Colombo + <`https://github.com/TheMule71 `__> - Gianmarco Conte - Giovanni Serra - `Aion Tech `__: diff --git a/l10n_it_account_stamp/__manifest__.py b/l10n_it_account_stamp/__manifest__.py index cb9f6772180c..edb31eb7d3f7 100644 --- a/l10n_it_account_stamp/__manifest__.py +++ b/l10n_it_account_stamp/__manifest__.py @@ -8,7 +8,7 @@ { "name": "ITA - Imposta di bollo", - "version": "16.0.1.1.0", + "version": "16.0.1.2.0", "category": "Localization/Italy", "summary": "Gestione automatica dell'imposta di bollo", "author": "Ermanno Gnan, Sergio Corato, Enrico Ganzaroli, " diff --git a/l10n_it_account_stamp/migrations/16.0.1.2.0/post-migrate.py b/l10n_it_account_stamp/migrations/16.0.1.2.0/post-migrate.py new file mode 100644 index 000000000000..c8fe11a990f5 --- /dev/null +++ b/l10n_it_account_stamp/migrations/16.0.1.2.0/post-migrate.py @@ -0,0 +1,15 @@ +from openupgradelib import openupgrade + + +@openupgrade.migrate() +def migrate(env, version): + openupgrade.logged_query( + env.cr, + """ + UPDATE account_move_line aml + SET + is_stamp_line = NULL + FROM product_template pt + WHERE aml.product_id = pt.id AND aml.is_stamp_line = True + """, + ) diff --git a/l10n_it_account_stamp/models/account_move.py b/l10n_it_account_stamp/models/account_move.py index f301e02b9b43..03beed74dae7 100644 --- a/l10n_it_account_stamp/models/account_move.py +++ b/l10n_it_account_stamp/models/account_move.py @@ -14,9 +14,9 @@ class AccountMove(models.Model): compute="_compute_tax_stamp", store=True, ) - tax_stamp_line_present = fields.Boolean( + tax_stamp_invoice_line_present = fields.Boolean( string="Stamp line is present in invoice", - compute="_compute_tax_stamp_line_present", + compute="_compute_tax_stamp_invoice_line_present", ) auto_compute_stamp = fields.Boolean( related="company_id.tax_stamp_product_id.auto_compute" @@ -60,7 +60,7 @@ def _compute_tax_stamp(self): if invoice.manually_apply_tax_stamp: invoice.tax_stamp = True - def add_tax_stamp_line(self): + def add_tax_stamp_invoice_line(self): for inv in self: if not inv.tax_stamp: raise UserError(_("Tax stamp is not applicable")) @@ -84,7 +84,6 @@ def add_tax_stamp_line(self): invoice_line_vals = { "move_id": inv.id, "product_id": stamp_product_id.id, - "is_stamp_line": True, "name": stamp_product_id.description_sale, "sequence": 99999, "account_id": stamp_account.id, @@ -108,9 +107,11 @@ def is_tax_stamp_line_present(self): "invoice_line_ids.product_id", "invoice_line_ids.product_id.is_stamp", ) - def _compute_tax_stamp_line_present(self): + def _compute_tax_stamp_invoice_line_present(self): for invoice in self: - invoice.tax_stamp_line_present = invoice.is_tax_stamp_product_present() + invoice.tax_stamp_invoice_line_present = ( + invoice.is_tax_stamp_product_present() + ) def is_tax_stamp_product_present(self): product_stamp = self.invoice_line_ids.filtered( diff --git a/l10n_it_account_stamp/static/description/index.html b/l10n_it_account_stamp/static/description/index.html index 45061639b6fe..0f860080294d 100644 --- a/l10n_it_account_stamp/static/description/index.html +++ b/l10n_it_account_stamp/static/description/index.html @@ -479,12 +479,15 @@

Authors

Contributors

    -
  • Lorenzo Battistini <https://github.com/eLBati>
  • +
  • Lorenzo Battistini +<https://github.com/eLBati>
  • Sergio Corato
  • Ermanno Gnan
  • Enrico Ganzaroli
  • -
  • Sergio Zanchetta <https://github.com/primes2h>
  • -
  • Marco Colombo <https://github.com/TheMule71>
  • +
  • Sergio Zanchetta +<https://github.com/primes2h>
  • +
  • Marco Colombo +<https://github.com/TheMule71>
  • Gianmarco Conte <gconte@dinamicheaziendali.it>
  • Giovanni Serra <giovanni@gslab.it>
  • Aion Tech:
      diff --git a/l10n_it_account_stamp/tests/test_account_stamp_invoicing.py b/l10n_it_account_stamp/tests/test_account_stamp_invoicing.py index 3dceb6e89739..6dd911d262a2 100644 --- a/l10n_it_account_stamp/tests/test_account_stamp_invoicing.py +++ b/l10n_it_account_stamp/tests/test_account_stamp_invoicing.py @@ -84,7 +84,7 @@ def test_keep_lines_description(self): invoice.action_post() # Add stamp and check that edited description is kept - invoice.add_tax_stamp_line() + invoice.add_tax_stamp_invoice_line() self.assertEqual(invoice.invoice_line_ids[0].name, edited_descr) def test_amount_total_changing_currency(self): @@ -102,27 +102,25 @@ def test_amount_total_changing_currency(self): invoice.action_post() self.assertEqual(total, invoice.amount_total) - def test_tax_stamp_line_button(self): - """Stamp fields show when stamp is added with the button to the invoice.""" - # Arrange: Create an invoice eligible for tax stamp but without it - stamp_tax = self.tax_id - invoice = self.init_invoice( - "out_invoice", - taxes=stamp_tax, - amounts=[ - 100, - ], + def test_reset_invoice_to_draft(self): + """Reset an invoice to draft and check that relative tax stamp accounting lines + has been deleted.""" + invoice = first( + self.invoices.filtered(lambda inv: inv.move_type == "out_invoice") ) - # pre-condition - self.assertTrue(invoice.tax_stamp) - self.assertFalse(invoice.tax_stamp_line_present) - # Act - invoice.add_tax_stamp_line() + self.assertEqual(len(invoice), 1) + self.assertEqual(len(invoice.invoice_line_ids), 2) + + invoice.invoice_line_ids[0].write({"tax_ids": [(6, 0, [self.tax_id.id])]}) + invoice.action_post() - # Assert - self.assertTrue(invoice.tax_stamp_line_present) + self.assertEqual( + len(invoice.line_ids.filtered(lambda line: line.is_stamp_line)), 2 + ) - # Resetting to draft removes the stamp invoice.button_draft() - self.assertFalse(invoice.tax_stamp_line_present) + + self.assertEqual( + len(invoice.line_ids.filtered(lambda line: line.is_stamp_line)), 0 + ) diff --git a/l10n_it_account_stamp/views/account_move_view.xml b/l10n_it_account_stamp/views/account_move_view.xml index a6de558a64c5..e1b08769eaae 100644 --- a/l10n_it_account_stamp/views/account_move_view.xml +++ b/l10n_it_account_stamp/views/account_move_view.xml @@ -27,7 +27,7 @@ name="manually_apply_tax_stamp" attrs="{'invisible': [('auto_compute_stamp', '=', True)]}" /> - +