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

Module: Recurring - Contracts Management

Entity: res.partner

Compute Method: _compute_contract_count

Inputs Method Outputs
  • child_ids
  • child_ids.ids
contract_model = self.env["contract.contract"]
fetch_data = contract_model.formatted_read_group(
            domain=[("partner_id", "in", self.ids)],
            groupby=["partner_id", "contract_type"],
            aggregates=["__count"],
        )
for partner in self:
            partner_child_ids = partner.child_ids.ids + partner.ids
            partner.sale_contract_count = sum(
                d["__count"]
                for d in fetch_data
                if d["partner_id"][0] in partner_child_ids
                and d["contract_type"] == "sale"
            )
            partner.purchase_contract_count = sum(
                d["__count"]
                for d in fetch_data
                if d["partner_id"][0] in partner_child_ids
                and d["contract_type"] == "purchase"
            )

Back to entity