Skip to content

Commit 0650f1d

Browse files
committed
[FIX] l10n_it_account_stamp: stamp invoice line deleted on reset to draft
1 parent d8eaef7 commit 0650f1d

File tree

3 files changed

+27
-28
lines changed

3 files changed

+27
-28
lines changed

l10n_it_account_stamp/models/account_move.py

Lines changed: 4 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -15,9 +15,9 @@ class AccountMove(models.Model):
1515
compute="_compute_l10n_it_account_stamp_is_stamp_duty_applied",
1616
store=True,
1717
)
18-
l10n_it_account_stamp_is_stamp_duty_present = fields.Boolean(
18+
l10n_it_account_stamp_is_stamp_duty_invoice_line_present = fields.Boolean(
1919
string="Stamp line is present in invoice",
20-
compute="_compute_l10n_it_account_stamp_is_stamp_duty_present",
20+
compute="_compute_l10n_it_account_stamp_is_stamp_duty_invoice_line_present",
2121
)
2222
l10n_it_account_stamp_auto_compute_stamp_duty = fields.Boolean(
2323
related="company_id.l10n_it_account_stamp_stamp_duty_product_id.l10n_it_account_stamp_auto_compute",
@@ -94,7 +94,6 @@ def add_stamp_duty_line(self):
9494
invoice_line_vals = {
9595
"move_id": inv.id,
9696
"product_id": stamp_product_id.id,
97-
"is_stamp_line": True,
9897
"name": stamp_product_id.description_sale,
9998
"sequence": 99999,
10099
"account_id": stamp_account.id,
@@ -107,7 +106,6 @@ def add_stamp_duty_line(self):
107106
inv.write({"invoice_line_ids": [(0, 0, invoice_line_vals)]})
108107

109108
def is_stamp_duty_line_present(self):
110-
self.ensure_one()
111109
for line in self.line_ids:
112110
if line.is_stamp_line:
113111
return True
@@ -118,9 +116,9 @@ def is_stamp_duty_line_present(self):
118116
"invoice_line_ids.product_id",
119117
"invoice_line_ids.product_id.l10n_it_account_stamp_is_stamp",
120118
)
121-
def _compute_l10n_it_account_stamp_is_stamp_duty_present(self):
119+
def _compute_l10n_it_account_stamp_is_stamp_duty_invoice_line_present(self):
122120
for invoice in self:
123-
invoice.l10n_it_account_stamp_is_stamp_duty_present = (
121+
invoice.l10n_it_account_stamp_is_stamp_duty_invoice_line_present = (
124122
invoice.is_stamp_duty_product_present()
125123
)
126124

l10n_it_account_stamp/tests/test_account_stamp_invoicing.py

Lines changed: 16 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -108,28 +108,25 @@ def test_amount_total_changing_currency(self):
108108
invoice.action_post()
109109
self.assertEqual(total, invoice.amount_total)
110110

111-
def test_stamp_duty_line_button(self):
112-
"""Stamp fields show when stamp is added with the button to the invoice."""
113-
# Arrange: Create an invoice eligible for stamp duty but without it
114-
stamp_tax = self.tax_id
115-
invoice = self.init_invoice(
116-
"out_invoice",
117-
taxes=stamp_tax,
118-
amounts=[
119-
100,
120-
],
111+
def test_reset_invoice_to_draft(self):
112+
"""Reset an invoice to draft and check that relative tax stamp accounting lines
113+
has been deleted."""
114+
invoice = first(
115+
self.invoices.filtered(lambda inv: inv.move_type == "out_invoice")
121116
)
122-
# pre-condition
123-
self.assertTrue(invoice.l10n_it_account_stamp_is_stamp_duty_applied)
124-
self.assertFalse(invoice.l10n_it_account_stamp_is_stamp_duty_present)
125117

126-
# Act
127-
invoice.add_stamp_duty_line()
118+
self.assertEqual(len(invoice), 1)
119+
self.assertEqual(len(invoice.invoice_line_ids), 2)
120+
121+
invoice.invoice_line_ids[0].write({"tax_ids": [(6, 0, [self.tax_id.id])]})
128122
invoice.action_post()
129123

130-
# Assert
131-
self.assertTrue(invoice.l10n_it_account_stamp_is_stamp_duty_present)
124+
self.assertEqual(
125+
len(invoice.line_ids.filtered(lambda line: line.is_stamp_line)), 2
126+
)
132127

133-
# Resetting to draft removes the stamp
134128
invoice.button_draft()
135-
self.assertFalse(invoice.l10n_it_account_stamp_is_stamp_duty_present)
129+
130+
self.assertEqual(
131+
len(invoice.line_ids.filtered(lambda line: line.is_stamp_line)), 0
132+
)

l10n_it_account_stamp/views/account_move_view.xml

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,7 @@
3434
invisible="l10n_it_account_stamp_auto_compute_stamp_duty"
3535
/>
3636
<field
37-
name="l10n_it_account_stamp_is_stamp_duty_present"
37+
name="l10n_it_account_stamp_is_stamp_duty_invoice_line_present"
3838
invisible="1"
3939
/>
4040
</xpath>
@@ -48,7 +48,9 @@
4848
src="/l10n_it_account_stamp/static/description/icon.png"
4949
alt="Stamp Duty"
5050
/>
51-
<span invisible="l10n_it_account_stamp_is_stamp_duty_present">
51+
<span
52+
invisible="l10n_it_account_stamp_is_stamp_duty_invoice_line_present"
53+
>
5254
<span invisible="state != 'draft'">
5355
<button
5456
type="object"
@@ -60,7 +62,9 @@
6062
Stamp can only be charged to customer when invoice is in draft state
6163
</span>
6264
</span>
63-
<span invisible="not l10n_it_account_stamp_is_stamp_duty_present">
65+
<span
66+
invisible="not l10n_it_account_stamp_is_stamp_duty_invoice_line_present"
67+
>
6468
Stamp charged to customer
6569
</span>
6670
</div>

0 commit comments

Comments
 (0)