Files
enterprise-addons/sale_renting_planning/models/planning_role.py
T

34 lines
1.3 KiB
Python
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
from odoo import api, fields, models
class PlanningRole(models.Model):
_inherit = 'planning.role'
sync_shift_rental = fields.Boolean(
"Sync Shifts and Rental Orders",
help="- Create rental orders for your shifts.\n"
"- Orders for products linked to this role can’t be confirmed if no resources are available to handle the shifts.\n"
"- On the website, users can’t select dates when no resources are available.\n"
"- The order's rental period and the shift dates are synchronized.",
)
rental_product_count = fields.Integer(
compute="_compute_rental_product_count",
export_string_translation=False,
)
@api.depends("product_ids")
def _compute_rental_product_count(self):
if not any(self._ids):
for role in self:
role.rental_product_count = len(role.product_ids.filtered('rent_ok'))
return
rental_product_count_per_role = dict(
self.env['product.template']._read_group(
[('planning_role_id', 'in', self.ids), ('rent_ok', '=', True)],
['planning_role_id'],
['__count'],
)
)
for role in self:
role.rental_product_count = rental_product_count_per_role.get(role, 0)