Files
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

38 lines
1.5 KiB
Python
Executable File

# Copyright 2017 Denis Leemann, Camptocamp SA
# Copyright 2021 Iván Todorovich, Camptocamp SA
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html).
from odoo import models
class StockMove(models.Model):
_inherit = "stock.move"
def _get_new_picking_values(self):
# Overload to set carrier_id from the manual delivery wizard
# Note: sale_manual_delivery is expected to be a manual.delivery record
res = super()._get_new_picking_values()
manual_delivery = self.env.context.get("sale_manual_delivery")
if manual_delivery:
if manual_delivery.partner_id:
res["partner_id"] = manual_delivery.partner_id.id
if manual_delivery.carrier_id:
res["carrier_id"] = manual_delivery.carrier_id.id
return res
def _search_picking_for_assignation(self):
# Overload to filter carrier_id
# Note: sale_manual_delivery is expected to be a manual.delivery record
manual_delivery = self.env.context.get("sale_manual_delivery")
if manual_delivery:
# original domain used in super()
domain = self._search_picking_for_assignation_domain()
# Filter on carrier
if manual_delivery.carrier_id:
domain += [
("carrier_id", "=", manual_delivery.carrier_id.id),
]
return self.env["stock.picking"].search(domain, limit=1)
else:
return super()._search_picking_for_assignation()