|
|
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
|
|