diff --git a/models/acc_operation.py b/models/acc_operation.py index f37c250ee57ca2eb69425300a9a21393f255f17f..494b816d0238ebe7ab513fea82795756e5b9814c 100644 --- a/models/acc_operation.py +++ b/models/acc_operation.py @@ -13,7 +13,12 @@ class AccOperation(models.Model): # ------------------------------------------------------ # Fields declaration # ------------------------------------------------------ - is_account_active = fields.Boolean("Facturation activée") + is_account_active = fields.Boolean( + "Facturation activée", compute="_compute_is_account_active", store=True + ) + is_surplus_active = fields.Boolean( + "Facturation Surplus activée", compute="_compute_is_surplus_active", store=True + ) acc_sale_price_ids = fields.One2many("acc.sale.price", "acc_operation_id") acc_sale_price_surplus_ids = fields.One2many( "acc.sale.price.buyer", "acc_operation_id" @@ -54,6 +59,28 @@ class AccOperation(models.Model): for res in self: res.acc_account_count = len(res.acc_account_ids) + @api.depends("acc_injection_ids", "acc_injection_ids.is_account_auto_activate") + def _compute_is_account_active(self): + for res in self: + count_ids = res.acc_injection_ids.filtered( + lambda r: r.is_account_auto_activate is True + ) + if count_ids: + res.is_account_active = True + else: + res.is_account_active = False + + @api.depends("acc_injection_ids", "acc_injection_ids.is_account_surplus_activate") + def _compute_is_surplus_active(self): + for res in self: + count_ids = res.acc_injection_ids.filtered( + lambda r: r.is_account_surplus_activate is True + ) + if count_ids: + res.is_surplus_active = True + else: + res.is_surplus_active = False + # ------------------------------------------------------ # Onchange / Constraints # ------------------------------------------------------ diff --git a/views/acc_operation_views.xml b/views/acc_operation_views.xml index dae2b0598eaab3297a3c5420c09e18a6b8fb947c..c6602d277c6d75c8671e3c31b2f5f7700da6dc54 100644 --- a/views/acc_operation_views.xml +++ b/views/acc_operation_views.xml @@ -44,7 +44,12 @@ </div> <notebook position="before"> <group> - <field name="is_account_active" /> + <group> + <field name="is_account_active" widget="boolean_toggle" /> + </group> + <group> + <field name="is_surplus_active" widget="boolean_toggle" /> + </group> </group> </notebook> <notebook position="inside"> @@ -129,7 +134,7 @@ <page string="Facturation Surplus" name="account" - attrs="{'invisible': [('is_account_active', '=', False)]}" + attrs="{'invisible': [('is_surplus_active', '=', False)]}" > <field name="acc_account_surplus_ids"