Skip to content

Commit

Permalink
[FIX] l10n_it_declaration_of_intent: remove line on move.unlink()
Browse files Browse the repository at this point in the history
  • Loading branch information
TheMule71 committed May 31, 2024
1 parent e4e1e98 commit 6110ebb
Show file tree
Hide file tree
Showing 2 changed files with 34 additions and 3 deletions.
17 changes: 14 additions & 3 deletions l10n_it_declaration_of_intent/models/declaration.py
Original file line number Diff line number Diff line change
Expand Up @@ -181,10 +181,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
Expand Down Expand Up @@ -266,7 +277,7 @@ class DeclarationOfIntentLine(models.Model):
)
amount = fields.Monetary()
base_amount = fields.Monetary()
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"
Expand Down
20 changes: 20 additions & 0 deletions l10n_it_declaration_of_intent/tests/test_declaration_of_intent.py
Original file line number Diff line number Diff line change
Expand Up @@ -416,6 +416,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.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)
Expand Down

0 comments on commit 6110ebb

Please sign in to comment.