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 @@
This module is maintained by the OCA.
-
-
-
+
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)