Files
Odoo-18.0-20251222/sale_partner_primeship/models/res_partner.py
tocmo0nlord adbe430761
Some checks failed
pre-commit / pre-commit (push) Has been cancelled
tests / Detect unreleased dependencies (push) Has been cancelled
tests / test with OCB (push) Has been cancelled
tests / test with Odoo (push) Has been cancelled
Initial commit: Odoo 18.0-20251222 extra-addons
2026-03-13 20:43:25 +00:00

48 lines
1.5 KiB
Python
Executable File

# Copyright 2021 Akretion France (http://www.akretion.com/)
# Copyright 2023 Akretion France (http://www.akretion.com/)
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl).
from odoo import api, fields, models
class ResPartner(models.Model):
_inherit = "res.partner"
primeship_ids = fields.One2many(
comodel_name="sale.primeship",
inverse_name="partner_id",
required=True,
)
# store True allow to filter on active_primeship.
# There is a cron job to set it to False when the customer has no active
# primeship anymore.
active_primeship = fields.Boolean(
compute="_compute_active_primeship",
store=True,
)
primeship_count = fields.Integer(
string="Primeships Count", compute="_compute_primeship_count"
)
@api.depends(
"commercial_partner_id.primeship_ids",
"commercial_partner_id.primeship_ids.current",
)
def _compute_active_primeship(self):
for record in self:
record.active_primeship = (
record.commercial_partner_id.primeship_ids.filtered("current")
)
@api.depends("commercial_partner_id.primeship_ids")
def _compute_primeship_count(self):
for record in self:
record.primeship_count = len(record.commercial_partner_id.primeship_ids)
@api.model
def _check_expired_primeships(self):
self.with_context(
active_test=False,
).search([("active_primeship", "=", True)])._compute_active_primeship()