27 lines
957 B
Python
27 lines
957 B
Python
|
# Part of Flectra. See LICENSE file for full copyright and licensing details.
|
||
|
|
||
|
from flectra import models, api
|
||
|
|
||
|
|
||
|
class Location(models.Model):
|
||
|
_inherit = "stock.location"
|
||
|
|
||
|
@api.model
|
||
|
def name_search(self, name='', args=None, operator='ilike', limit=100):
|
||
|
args = args or []
|
||
|
domain = []
|
||
|
|
||
|
if self.env.context.get('warehouse', False):
|
||
|
warehouse_ids = self.env['stock.warehouse'].browse(
|
||
|
self.env.context['warehouse'][0][2])
|
||
|
lot_stock_ids = [wh.lot_stock_id.id for wh in warehouse_ids
|
||
|
if wh.lot_stock_id]
|
||
|
location_ids = self.env['stock.location'].search(
|
||
|
[('location_id', 'child_of', lot_stock_ids),
|
||
|
('usage', '=', 'internal')]).ids
|
||
|
location_ids += lot_stock_ids
|
||
|
domain = [('id', 'in', location_ids)]
|
||
|
|
||
|
recs = self.search(domain + args, limit=limit)
|
||
|
return recs.name_get()
|