From ee7bc0da783a4c0a5262c0efed8157fecde45267 Mon Sep 17 00:00:00 2001 From: jov-adhoc Date: Fri, 22 Aug 2025 12:32:33 +0000 Subject: [PATCH] [IMP]website_sale_installment_plans: Adds api constrainst to avoid divisor to be 0 X-original-commit: 19974cf04cc0556c512d774fa6d1a3a850b12bfc --- .../models/account_card_installment.py | 36 +++++++++++++++++++ 1 file changed, 36 insertions(+) create mode 100644 website_sale_installment_plans/models/account_card_installment.py diff --git a/website_sale_installment_plans/models/account_card_installment.py b/website_sale_installment_plans/models/account_card_installment.py new file mode 100644 index 00000000..e94bc145 --- /dev/null +++ b/website_sale_installment_plans/models/account_card_installment.py @@ -0,0 +1,36 @@ +<<<<<<< HEAD +||||||| MERGE BASE +======= +from odoo import fields, models, api, _ +from odoo.exceptions import ValidationError + + +class AccountCardInstallment(models.Model): + _name = 'account.card.installment' + _inherit = ['account.card.installment', 'website.published.mixin'] + + message = fields.Char(string='Mensaje', help='Mensaje que se muestra al final de la leyenda de cuotas') + + @api.constrains('divisor') + def _check_divisor(self): + for record in self: + if record.divisor <= 0: + raise ValidationError(_('El divisor debe ser mayor que cero.')) + + def map_installment_values(self, amount_total): + self.ensure_one() + + result = super().map_installment_values(amount_total) + + divisor = self.divisor if self.divisor else 1 + installment = self.installment if self.installment else 1 + amount = result['amount'] + description = 'En %s cuota de $%.2f' % (divisor, amount) if divisor == 1 else 'En %s cuotas de $%.2f (Total $%.2f)' % (installment, amount / installment, amount) + + result.update({ + 'description': description, + }) + + return result + +>>>>>>> FORWARD PORTED