bemade-addons/picking_policy_per_customer/models/sale_order.py
2025-05-29 21:35:47 -04:00

28 lines
992 B
Python

from odoo import api, models
class SaleOrder(models.Model):
_inherit = "sale.order"
@api.onchange("partner_id")
def _onchange_partner_id(self):
self.picking_policy = (
self.partner_id
and self.partner_id.picking_policy
or self.parnter_id.commercial_partner_id.picking_policy
) or self.env["ir.config_parameter"].sudo().get_param(
"sale.default_picking_policy", "direct"
)
@api.model_create_multi
def create(self, vals_list):
for vals in vals_list:
if vals.get("partner_id"):
partner = self.env["res.partner"].browse(vals["partner_id"])
partner_picking_policy = (
partner.picking_policy
or partner.commercial_partner_id.picking_policy
)
if partner_picking_policy:
vals["picking_policy"] = partner_picking_policy
return super().create(vals_list)