diff --git a/account_clearance_plan/tests/test_account_clearance_plan.py b/account_clearance_plan/tests/test_account_clearance_plan.py index 8cb676835..a622be939 100644 --- a/account_clearance_plan/tests/test_account_clearance_plan.py +++ b/account_clearance_plan/tests/test_account_clearance_plan.py @@ -101,7 +101,7 @@ class TestAccountClearancePlan(TransactionCase): clearance_plan = self.create_and_fill_wizard().save() self.assertEqual(clearance_plan.journal_id.id, self.general_journal.id) self.assertEqual(clearance_plan.amount_to_allocate, 800.0) - self.assertEqual(clearance_plan.amount_allocated, 800.0) + self.assertEqual(clearance_plan.amount_unallocated, 0.0) def test_wizard_negative_amount(self): clearance_plan_wizard = self.create_and_fill_wizard() diff --git a/account_clearance_plan/wizard/account_clearance_plan.py b/account_clearance_plan/wizard/account_clearance_plan.py index a441fd73b..a21fc39ec 100644 --- a/account_clearance_plan/wizard/account_clearance_plan.py +++ b/account_clearance_plan/wizard/account_clearance_plan.py @@ -9,6 +9,12 @@ class AccountClearancePlanLine(models.TransientModel): _name = "account.clearance.plan.line" _description = "Clearance Plan Line" + name = fields.Char( + string="Label", + required=True, + default=lambda self: + self.env.user.company_id.clearance_plan_move_line_name, + ) clearance_plan_id = fields.Many2one( comodel_name="account.clearance.plan", required=True ) @@ -42,17 +48,19 @@ class AccountClearancePlan(models.TransientModel): help="Internal note of the new journal entry that will be generated.", ) amount_to_allocate = fields.Float(string="Total Amount to Allocate", readonly=True) - amount_allocated = fields.Float( - string="Amount Allocated", compute="_compute_amount_allocated" + amount_unallocated = fields.Float( + string="Amount Unallocated", compute="_compute_amount_unallocated" ) clearance_plan_line_ids = fields.One2many( comodel_name="account.clearance.plan.line", inverse_name="clearance_plan_id" ) @api.onchange("clearance_plan_line_ids") - def _compute_amount_allocated(self): + def _compute_amount_unallocated(self): for rec in self: - rec.amount_allocated = sum(rec.clearance_plan_line_ids.mapped("amount")) + rec.amount_unallocated = rec.amount_to_allocate - sum( + rec.clearance_plan_line_ids.mapped("amount") + ) def _get_move_lines_from_context(self): active_model = self._context.get("active_model") @@ -124,7 +132,6 @@ class AccountClearancePlan(models.TransientModel): def _create_clearance_move_lines(self, move): account_id = self.move_line_ids.mapped("account_id") partner_id = self.move_line_ids.mapped("partner_id") - move_line_name = self.env.user.company_id.clearance_plan_move_line_name negative_amount_residual = sum(move.line_ids.mapped("amount_residual")) < 0 for line in self.clearance_plan_line_ids: self.env["account.move.line"].with_context( @@ -135,7 +142,7 @@ class AccountClearancePlan(models.TransientModel): "debit": line.amount if negative_amount_residual else 0, "credit": line.amount if not negative_amount_residual else 0, "date_maturity": line.date_maturity, - "name": move_line_name, + "name": line.name, "account_id": account_id.id, "partner_id": partner_id.id, } @@ -143,10 +150,8 @@ class AccountClearancePlan(models.TransientModel): def confirm_plan(self): self.ensure_one() - if self.amount_to_allocate != self.amount_allocated: - raise UserError( - _("Amount to allocate and amount allocated must be equals.") - ) + if self.amount_unallocated != 0: + raise UserError(_("%s still to allocate.") % self.amount_unallocated) move = self.env["account.move"].create( { diff --git a/account_clearance_plan/wizard/account_clearance_plan_wizard.xml b/account_clearance_plan/wizard/account_clearance_plan_wizard.xml index 6927b6dcd..8d199ecc5 100644 --- a/account_clearance_plan/wizard/account_clearance_plan_wizard.xml +++ b/account_clearance_plan/wizard/account_clearance_plan_wizard.xml @@ -11,12 +11,13 @@ - + +