1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
|
# 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)
]
|