Odoo18-Base/addons/stock/models/stock_replenish_mixin.py
2025-01-06 10:57:38 +07:00

32 lines
1.4 KiB
Python

# Part of Odoo. See LICENSE file for full copyright and licensing details.
from odoo import api, fields, models
class ProductReplenishMixin(models.AbstractModel):
_name = 'stock.replenish.mixin'
_description = 'Product Replenish Mixin'
route_id = fields.Many2one(
'stock.route', string="Preferred Route",
help="Apply specific route for the replenishment instead of product's default routes.",
check_company=True)
allowed_route_ids = fields.Many2many('stock.route', compute='_compute_allowed_route_ids')
# INHERITS in 'Drop Shipping', 'Dropship and Subcontracting Management' and 'Dropship and Subcontracting Management'
@api.depends('product_id', 'product_tmpl_id')
def _compute_allowed_route_ids(self):
domain = self._get_allowed_route_domain()
route_ids = self.env['stock.route'].search(domain)
self.allowed_route_ids = route_ids
# TODO: remove dynamic domain
# OVERWRITE in 'Drop Shipping', 'Dropship and Subcontracting Management' and 'Dropship and Subcontracting Management' to hide it
def _get_allowed_route_domain(self):
stock_location_inter_company_id = self.env.ref('stock.stock_location_inter_company').id
return [
('product_selectable', '=', True),
('rule_ids.location_src_id', '!=', stock_location_inter_company_id),
('rule_ids.location_dest_id', '!=', stock_location_inter_company_id)
]