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.read_group(
            self._get_partner_contract_domain(),
            ["partner_id", "contract_type"],
            ["partner_id", "contract_type"],
            lazy=False,
        )
result = [
            [data["partner_id"][0], data["contract_type"], data["__count"]]
            for data in fetch_data
        ]
for partner in self:
            partner_child_ids = partner.child_ids.ids + partner.ids
            partner.sale_contract_count = sum(
                r[2] for r in result if r[0] in partner_child_ids and r[1] == "sale"
            )
            partner.purchase_contract_count = sum(
                r[2] for r in result if r[0] in partner_child_ids and r[1] == "purchase"
            )

Back to entity