- Add consumer_group_id to sale.order for tracking the consumer group - Fix stock.picking consumer_group_id to use sale_id.consumer_group_id - Add group_ids inverse relation in res.partner for bidirectional access - Remove auto-calculation of consumer_group_id, data comes directly from group_order.group_ids[0] - Add debug logging for consumer_group propagation - commitment_date propagates directly from group_order (no recalculation)
52 lines
1.6 KiB
Python
52 lines
1.6 KiB
Python
# Copyright 2025-Today Criptomart
|
|
# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl)
|
|
|
|
from odoo import fields
|
|
from odoo import models
|
|
|
|
# Note: translation function _ is not used in this module (removed to satisfy flake8)
|
|
|
|
|
|
class ResPartner(models.Model):
|
|
_inherit = "res.partner"
|
|
|
|
# Campo para identificar si un partner es un grupo
|
|
is_group = fields.Boolean(
|
|
string="Is a Consumer Group?",
|
|
help="Check this box if the partner represents a group of users",
|
|
default=False,
|
|
)
|
|
|
|
# Relación para los miembros de un grupo (si is_group es True)
|
|
# Este campo se usa en el GRUPO para listar sus MIEMBROS
|
|
member_ids = fields.Many2many(
|
|
"res.partner",
|
|
"res_partner_group_members_rel",
|
|
"group_id",
|
|
"member_id",
|
|
string="Members",
|
|
help="Members that belong to this consumer group",
|
|
)
|
|
|
|
# Relación inversa: grupos a los que pertenece un MIEMBRO
|
|
# Este campo se usa en el MIEMBRO para listar sus GRUPOS
|
|
group_ids = fields.Many2many(
|
|
"res.partner",
|
|
"res_partner_group_members_rel",
|
|
"member_id",
|
|
"group_id",
|
|
domain=[("is_group", "=", True)],
|
|
string="Consumer Groups",
|
|
help="Consumer groups this partner belongs to",
|
|
)
|
|
|
|
# Inverse relation: group orders this group participates in
|
|
group_order_ids = fields.Many2many(
|
|
"group.order",
|
|
"group_order_group_rel",
|
|
"group_id",
|
|
"order_id",
|
|
string="Consumer Group Orders",
|
|
help="Group orders this consumer group participates in",
|
|
readonly=True,
|
|
)
|