diff --git a/models/scop_bordereau_cg.py b/models/scop_bordereau_cg.py index 73e8a112ce86ad67d3f7fbec026a87cce137509c..fbc1de3a5a8a60b77113da9c2669570f48554a55 100644 --- a/models/scop_bordereau_cg.py +++ b/models/scop_bordereau_cg.py @@ -228,6 +228,26 @@ class Bordereau(models.Model): compute="_compute_has_outstanding", store=True, ) + is_cae = fields.Boolean( + string="CAE", + related="partner_id.cae", + search="_search_is_cae", + ) + is_federation_com = fields.Boolean( + string="Fédération de la Communication", + related="partner_id.is_federation_com", + search="_search_is_federation_com", + ) + is_federation_btp = fields.Boolean( + string="Fédération du BTP", + related="partner_id.is_federation_btp", + search="_search_is_federation_btp", + ) + is_federation_indus = fields.Boolean( + string="Fédération de l'Industrie", + related="partner_id.is_federation_indus", + search="_search_is_federation_indus", + ) # ------------------------------------------------------ # Compute @@ -424,6 +444,34 @@ class Bordereau(models.Model): r.details = detail + def _search_is_cae(self, operator, value): + if operator not in ("=", "!="): + return [] + else: + partner_ids = self.env["res.partner"].search([("cae", operator, value)]) + return [("partner_id", "in", partner_ids.ids)] + + def _search_is_federation_com(self, operator, value): + if operator not in ("=", "!="): + return [] + else: + partner_ids = self.env["res.partner"].search([("is_federation_com", operator, value)]) + return [("partner_id", "in", partner_ids.ids)] + + def _search_is_federation_btp(self, operator, value): + if operator not in ("=", "!="): + return [] + else: + partner_ids = self.env["res.partner"].search([("is_federation_btp", operator, value)]) + return [("partner_id", "in", partner_ids.ids)] + + def _search_is_federation_indus(self, operator, value): + if operator not in ("=", "!="): + return [] + else: + partner_ids = self.env["res.partner"].search([("is_federation_indus", operator, value)]) + return [("partner_id", "in", partner_ids.ids)] + # ------------------------------------------------------ # Button functions # ------------------------------------------------------ diff --git a/views/scop_bordereau_cg.xml b/views/scop_bordereau_cg.xml index 366c5dc2b65913c708504d14098bee80a6c43619..7c99dae7bd0315bf1181bc49be6d1f68f855993d 100644 --- a/views/scop_bordereau_cg.xml +++ b/views/scop_bordereau_cg.xml @@ -467,6 +467,27 @@ string="Assiette VA" domain="[('type_assiette', '=', 'va')]" /> + <separator /> + <filter + name="is_cae" + string="CAE" + domain="[('is_cae', '=', True)]" + /> + <filter + name="is_cae" + string="Fédération Communication" + domain="[('is_federation_com', '=', True)]" + /> + <filter + name="is_cae" + string="Fédération BTP" + domain="[('is_federation_btp', '=', True)]" + /> + <filter + name="is_federation_indus" + string="Fédération Industrie" + domain="[('is_cae', '=', True)]" + /> <group string="Group By"> <filter name="by_year"