diff --git a/models/acc_operation.py b/models/acc_operation.py index 0d420f24c33fe04b31c0e22b85c0b5bc34d1ae08..96de41b5ce8a0d4b0921784e74bb63fc384c38b0 100644 --- a/models/acc_operation.py +++ b/models/acc_operation.py @@ -39,6 +39,10 @@ class AccOperation(models.Model): acc_account_count = fields.Integer( string="Nombre de factures", compute="_compute_acc_account_count" ) + acc_account_surplus_count = fields.Integer( + string="Nombre de factures Surplus", + compute="_compute_acc_account_surplus_count", + ) tax_tcfe = fields.Float( "Taxes CPSE/TCF (en €/kWh)", digits="Sale Price", default=0.105 ) @@ -59,6 +63,11 @@ class AccOperation(models.Model): for res in self: res.acc_account_count = len(res.acc_account_ids) + @api.depends("acc_account_surplus_ids") + def _compute_acc_account_surplus_count(self): + for res in self: + res.acc_account_surplus_count = len(res.acc_account_surplus_ids) + @api.depends("acc_injection_ids", "acc_injection_ids.is_account_auto_activate") def _compute_is_account_active(self): for res in self: @@ -97,7 +106,21 @@ class AccOperation(models.Model): action = self.env["ir.actions.actions"]._for_xml_id( "acc_account.action_acc_account" ) - action["domain"] = [("acc_operation_id", "=", self.id)] + action["domain"] = [ + ("acc_operation_id", "=", self.id), + ("is_account_buyer", "=", False), + ] + return action + + def action_view_acc_accounts_surplus(self): + self.ensure_one() + action = self.env["ir.actions.actions"]._for_xml_id( + "acc_account.action_acc_account" + ) + action["domain"] = [ + ("acc_operation_id", "=", self.id), + ("is_account_buyer", "=", True), + ] return action def get_power_by_cons(self, acc_delivery_id, date_start, date_end): diff --git a/security/security.xml b/security/security.xml index 0976fafe466306343139fe3255301b8e8a0919ca..a53d0e445d0a0f102184f96be03f4a69cf009331 100644 --- a/security/security.xml +++ b/security/security.xml @@ -1,5 +1,4 @@ -<?xml version="1.0" encoding="utf-8"?> - +<?xml version="1.0" encoding="utf-8" ?> <odoo> <data noupdate="1"> @@ -7,23 +6,27 @@ <!-- Portal for invoice and invoice lines --> <record id="acc_account_rule_portal_cons" model="ir.rule"> <field name="name">Portail : Factures pour les consommateurs</field> - <field name="model_id" ref="acc_account.model_acc_account"/> - <field name="domain_force">[('consumer_id','=',[user.partner_id.id])]</field> - <field name="groups" eval="[(4, ref('base.group_portal'))]"/> + <field name="model_id" ref="acc_account.model_acc_account" /> + <field + name="domain_force" + >[('consumer_id','=',[user.partner_id.id])]</field> + <field name="groups" eval="[(4, ref('base.group_portal'))]" /> </record> <record id="acc_account_rule_portal_prod" model="ir.rule"> <field name="name">Portail : Factures pour les producteurs</field> - <field name="model_id" ref="acc_account.model_acc_account"/> - <field name="domain_force">[('producer_id','=',[user.partner_id.id])]</field> - <field name="groups" eval="[(4, ref('base.group_portal'))]"/> + <field name="model_id" ref="acc_account.model_acc_account" /> + <field + name="domain_force" + >[('producer_id','=',[user.partner_id.id])]</field> + <field name="groups" eval="[(4, ref('base.group_portal'))]" /> </record> <record id="acc_account_rule_portal_pmo" model="ir.rule"> <field name="name">Portail : Factures pour les pmo</field> - <field name="model_id" ref="acc_account.model_acc_account"/> + <field name="model_id" ref="acc_account.model_acc_account" /> <field name="domain_force">[('pmo_id','=',[user.partner_id.id])]</field> - <field name="groups" eval="[(4, ref('base.group_portal'))]"/> + <field name="groups" eval="[(4, ref('base.group_portal'))]" /> </record> </data> diff --git a/views/acc_operation_views.xml b/views/acc_operation_views.xml index c6602d277c6d75c8671e3c31b2f5f7700da6dc54..b095380632992589ba8d1d2a6087f9a559628942 100644 --- a/views/acc_operation_views.xml +++ b/views/acc_operation_views.xml @@ -30,8 +30,8 @@ class="oe_stat_button" icon="fa-money" name="action_view_acc_accounts" - context="{'default_acc_operation_id': active_id}" - attrs="{'invisible': [('is_account_active', '=', False)]}" + context="{'default_acc_operation_id': active_id, + 'default_is_account_buyer': False}" > <div class="o_form_field o_stat_info"> <span class="o_stat_value"> @@ -40,6 +40,21 @@ <span class="o_stat_text">Factures</span> </div> </button> + <button + type="object" + class="oe_stat_button" + icon="fa-money" + name="action_view_acc_accounts_surplus" + context="{'default_acc_operation_id': active_id, + 'default_is_account_buyer': True}" + > + <div class="o_form_field o_stat_info"> + <span class="o_stat_value"> + <field name="acc_account_surplus_count" /> + </span> + <span class="o_stat_text">Factures Surplus</span> + </div> + </button> </div> </div> <notebook position="before">