diff --git a/l10n_it_declaration_of_intent/__manifest__.py b/l10n_it_declaration_of_intent/__manifest__.py index 698f269168cd..a98442d235cb 100644 --- a/l10n_it_declaration_of_intent/__manifest__.py +++ b/l10n_it_declaration_of_intent/__manifest__.py @@ -27,4 +27,7 @@ ], "pre_init_hook": "pre_absorb_old_module", "post_init_hook": "copy_m2m_values", + "demo": [ + "demo/declaration_of_intent.xml", + ], } diff --git a/l10n_it_declaration_of_intent/demo/declaration_of_intent.xml b/l10n_it_declaration_of_intent/demo/declaration_of_intent.xml new file mode 100644 index 000000000000..914818948f38 --- /dev/null +++ b/l10n_it_declaration_of_intent/demo/declaration_of_intent.xml @@ -0,0 +1,59 @@ + + + + 0% art.8c + 0a8c + 0 + sale + + + + + Esportatore Abituale (Dichiarazione Intento) + + 6 + 1 + 1 + + + Esportatore Abituale + + 1 + Vicolo Stretto, 1 + Monopoli + 00000 + + + + diff --git a/l10n_it_declaration_of_intent/models/declaration.py b/l10n_it_declaration_of_intent/models/declaration.py index 7bdb3d28e4d0..e95ee2bab79c 100644 --- a/l10n_it_declaration_of_intent/models/declaration.py +++ b/l10n_it_declaration_of_intent/models/declaration.py @@ -192,10 +192,21 @@ def name_get(self): ) return res - @api.depends("line_ids", "line_ids.amount", "limit_amount") + @api.depends( + "line_ids", + "line_ids.amount", + "limit_amount", + "line_ids.invoice_id", + "line_ids.invoice_id.state", + ) def _compute_amounts(self): for record in self: - amount = sum(line.amount for line in record.line_ids) + amount = sum( + line.amount + for line in record.line_ids.filtered( + lambda li: li.invoice_id and li.invoice_id.state == "posted" + ) + ) # ----- Force value to 0 if amount < 0.0: amount = 0.0 @@ -277,7 +288,7 @@ class DeclarationOfIntentLine(models.Model): ) amount = fields.Monetary() base_amount = fields.Monetary(string="Base Amount") - invoice_id = fields.Many2one("account.move", string="Invoice") + invoice_id = fields.Many2one("account.move", string="Invoice", ondelete="cascade") date_invoice = fields.Date(related="invoice_id.invoice_date", string="Date Invoice") company_id = fields.Many2one( "res.company", string="Company", related="declaration_id.company_id" diff --git a/l10n_it_declaration_of_intent/static/description/index.html b/l10n_it_declaration_of_intent/static/description/index.html index 9b8c910a2019..3bd02df02a9e 100644 --- a/l10n_it_declaration_of_intent/static/description/index.html +++ b/l10n_it_declaration_of_intent/static/description/index.html @@ -8,11 +8,10 @@ /* :Author: David Goodger (goodger@python.org) -:Id: $Id: html4css1.css 9511 2024-01-13 09:50:07Z milde $ +:Id: $Id: html4css1.css 8954 2022-01-20 10:10:25Z milde $ :Copyright: This stylesheet has been placed in the public domain. Default cascading style sheet for the HTML output of Docutils. -Despite the name, some widely supported CSS2 features are used. See https://docutils.sourceforge.io/docs/howto/html-stylesheets.html for how to customize this style sheet. @@ -275,7 +274,7 @@ margin-left: 2em ; margin-right: 2em } -pre.code .ln { color: gray; } /* line numbers */ +pre.code .ln { color: grey; } /* line numbers */ pre.code, code { background-color: #eeeeee } pre.code .comment, code .comment { color: #5C6576 } pre.code .keyword, code .keyword { color: #3B0D06; font-weight: bold } @@ -301,7 +300,7 @@ span.pre { white-space: pre } -span.problematic, pre.problematic { +span.problematic { color: red } span.section-subtitle { @@ -456,9 +455,7 @@

Contributors

Maintainers

This module is maintained by the OCA.

- -Odoo Community Association - +Odoo Community Association

OCA, or the Odoo Community Association, is a nonprofit organization whose mission is to support the collaborative development of Odoo features and promote its widespread use.

diff --git a/l10n_it_declaration_of_intent/tests/test_declaration_of_intent.py b/l10n_it_declaration_of_intent/tests/test_declaration_of_intent.py index bfcbdb5b20eb..0c0c432964c4 100644 --- a/l10n_it_declaration_of_intent/tests/test_declaration_of_intent.py +++ b/l10n_it_declaration_of_intent/tests/test_declaration_of_intent.py @@ -425,6 +425,26 @@ def test_invoice_repost(self): 1, ) + def test_invoice_delete(self): + invoice = self._create_invoice( + "test_invoice_repost", self.partner1, tax=self.tax1 + ) + invoice_form = Form(invoice) + for tax in (self.tax2, self.tax22): + self._add_invoice_line_id(invoice_form, tax=tax) + invoice = invoice_form.save() + invoice.action_post() + invoice.button_draft() + invoice.with_context(force_delete=True).unlink() + self.assertEqual( + len( + self.declaration1.line_ids.filtered( + lambda line: line.invoice_id == invoice + ) + ), + 0, + ) + def test_multi_company(self): """Check that a user can only see and create declarations in his company.""" self.env = self.env(user=self.other_user)