Skip to content

Commit 8a6d94e

Browse files
committed
[IMP] l10n_it_ricevute_bancarie: Registrazione riba a scadenza in dettaglio distinte
1 parent 0c557d9 commit 8a6d94e

File tree

4 files changed

+66
-4
lines changed

4 files changed

+66
-4
lines changed

l10n_it_ricevute_bancarie/models/riba.py

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -238,6 +238,16 @@ class RibaListLine(models.Model):
238238
_description = "C/O Details"
239239
_rec_name = "sequence"
240240

241+
def action_riba_due_date_settlement(self):
242+
return {
243+
"type": "ir.actions.act_window",
244+
"name": "C/O Due Date Settlement",
245+
"res_model": "riba.due.date.settlement",
246+
"view_mode": "form",
247+
"target": "new",
248+
"context": self.env.context,
249+
}
250+
241251
def _compute_line_values(self):
242252
for line in self:
243253
line.amount = 0.0

l10n_it_ricevute_bancarie/tests/test_riba.py

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -715,3 +715,27 @@ def test_riba_inv_no_bank(self):
715715
self.assertIn("Cannot post invoices", err_msg)
716716
self.assertIn(self.invoice.partner_id.display_name, err_msg)
717717
self.assertIn(str(self.invoice.amount_total), err_msg)
718+
719+
def test_riba_due_date_settlement(self):
720+
invoice, riba_list = self.riba_sbf_common(self.riba_config_sbf_maturation.id)
721+
722+
# check if riba distinta line is accredited before settlement procedure
723+
self.assertEqual(riba_list.line_ids.state, "accredited")
724+
725+
# Journal is important to register riba payment
726+
riba_list.config_id.settlement_journal_id = self.bank_journal.id
727+
728+
# open wizard due date settlement
729+
wizard_riba_settlement = self.env["riba.due.date.settlement"].create(
730+
{"due_date": riba_list.line_ids.due_date}
731+
)
732+
733+
wizard_riba_settlement.with_context(
734+
{
735+
"active_ids": riba_list.line_ids.ids,
736+
"active_model": "riba.distinta.line",
737+
}
738+
).due_date_settlement_confirm()
739+
740+
# check if riba line has paid status
741+
self.assertEqual(riba_list.line_ids.state, "paid")

l10n_it_ricevute_bancarie/views/riba_view.xml

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -308,6 +308,23 @@
308308
<field name="code">action = records.settle_riba_line()</field>
309309
</record>
310310

311+
<record
312+
id="action_wizard_riba_due_date_settlement_riba_view"
313+
model="ir.actions.server"
314+
>
315+
<field name="name">C/O Due Date Settlement</field>
316+
<field
317+
name="model_id"
318+
ref="l10n_it_ricevute_bancarie.model_riba_distinta_line"
319+
/>
320+
<field
321+
name="binding_model_id"
322+
ref="l10n_it_ricevute_bancarie.model_riba_distinta_line"
323+
/>
324+
<field name="state">code</field>
325+
<field name="code">action = records.action_riba_due_date_settlement()</field>
326+
</record>
327+
311328
<!-- ====================================================== -->
312329
<!-- DISTINTA RIBA - MENU -->
313330
<!-- ====================================================== -->

l10n_it_ricevute_bancarie/wizard/wizard_due_date_settlement.py

Lines changed: 15 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -15,8 +15,19 @@ def due_date_settlement_confirm(self):
1515
active_ids = self.env.context.get("active_ids", False)
1616
if not active_ids:
1717
raise UserError(_("No active ID found."))
18-
riba_ids = self.env["riba.distinta"].browse(active_ids)
19-
riba_lines = riba_ids.mapped("line_ids").filtered(
20-
lambda rl: rl.state == "accredited" and rl.due_date == self.due_date
21-
)
18+
19+
active_model = self.env.context.get("active_model", False)
20+
if active_model == "riba.distinta":
21+
riba_ids = self.env["riba.distinta"].browse(active_ids)
22+
riba_lines = riba_ids.mapped("line_ids").filtered(
23+
lambda rl: rl.state == "accredited" and rl.due_date == self.due_date
24+
)
25+
elif active_model == "riba.distinta.line":
26+
riba_lines = (
27+
self.env["riba.distinta.line"]
28+
.browse(active_ids)
29+
.filtered(
30+
lambda rl: rl.state == "accredited" and rl.due_date == self.due_date
31+
)
32+
)
2233
riba_lines.riba_line_settlement()

0 commit comments

Comments
 (0)