From e225ee5f0904689e30f29c7b83a739b47e4be806 Mon Sep 17 00:00:00 2001 From: Mantavya Gajjar Date: Tue, 17 Mar 2009 13:48:08 +0530 Subject: [PATCH] implement the search function for the function fields lp bug: https://launchpad.net/bugs/332175 fixed bzr revid: mga@mga-20090317081808-ewddi7369gslg3pm --- addons/stock/stock.py | 21 +++++++++++++++++++-- 1 file changed, 19 insertions(+), 2 deletions(-) diff --git a/addons/stock/stock.py b/addons/stock/stock.py index 25b721613a3..8ce4544f3fd 100644 --- a/addons/stock/stock.py +++ b/addons/stock/stock.py @@ -800,13 +800,30 @@ class stock_production_lot(osv.osv): ''') res.update(dict(cr.fetchall())) return res - + + def _stock_search(self, cr, uid, obj, name, args): + locations = self.pool.get('stock.location').search(cr, uid, [('usage','=','internal')]) + cr.execute('''select + prodlot_id, + sum(name) + from + stock_report_prodlots + where + location_id in ('''+','.join(map(str, locations)) +''') + group by + prodlot_id + having sum(name) ''' + str(args[0][1]) + ''' ''' + str(args[0][2]) + ) + res = cr.fetchall() + ids = [('id','in',map(lambda x:x[0], res))] + return ids + _columns = { 'name': fields.char('Serial', size=64, required=True), 'ref': fields.char('Internal Ref', size=64), 'product_id': fields.many2one('product.product','Product',required=True), 'date': fields.datetime('Created Date', required=True), - 'stock_available': fields.function(_get_stock, method=True, type="float", string="Available", select="2"), + 'stock_available': fields.function(_get_stock, fnct_search=_stock_search, method=True, type="float", string="Available", select="2"), 'revisions': fields.one2many('stock.production.lot.revision','lot_id','Revisions'), } _defaults = {