Odoo Mindscape. Understand Odoo faster. Explore modules, fields, dependencies and version differences in one place instead of digging through the source code.

Module: Coupons & Loyalty

Entity: res.partner

Compute Method: _compute_count_active_cards

Inputs Method Outputs
  • parent_id
loyalty_groups = self.env["loyalty.card"]._read_group(
            domain=[
                "|",
                ("company_id", "=", False),
                ("company_id", "in", self.env.companies.ids),
                (
                    "partner_id",
                    "in",
                    self.with_context(active_test=False)._search([("id", "child_of", self.ids)]),
                ),
                ("points", ">", "0"),
                ("program_id.active", "=", True),
                "|",
                ("expiration_date", ">=", fields.Date().context_today(self)),
                ("expiration_date", "=", False),
            ],
            groupby=["partner_id"],
            aggregates=["__count"],
        )
self.loyalty_card_count = 0
for partner, count in loyalty_groups:
            while partner:
                if partner in self:
                    partner.loyalty_card_count += count
                partner = partner.parent_id

Back to entity