From 9376d1693853f6d2f0f7995851c55faf03120dc1 Mon Sep 17 00:00:00 2001 From: Josse Colpaert Date: Mon, 2 Jun 2014 09:58:09 +0200 Subject: [PATCH 01/23] [IMP] Put cost method only once, make sure extra moves get moves in consequent pickings, default buy route on template --- addons/procurement/procurement.py | 2 +- addons/purchase/purchase.py | 15 +++++++-------- addons/stock/stock.py | 14 ++++++++++---- addons/stock_account/product_view.xml | 6 +----- 4 files changed, 19 insertions(+), 18 deletions(-) diff --git a/addons/procurement/procurement.py b/addons/procurement/procurement.py index beedac5fe96..d1ce6047e76 100644 --- a/addons/procurement/procurement.py +++ b/addons/procurement/procurement.py @@ -64,7 +64,7 @@ class procurement_group(osv.osv): } _defaults = { 'name': lambda self, cr, uid, c: self.pool.get('ir.sequence').get(cr, uid, 'procurement.group') or '', - 'move_type': lambda self, cr, uid, c: 'one' + 'move_type': lambda self, cr, uid, c: 'direct' } class procurement_rule(osv.osv): diff --git a/addons/purchase/purchase.py b/addons/purchase/purchase.py index 22b1af1d26a..08362899ccf 100644 --- a/addons/purchase/purchase.py +++ b/addons/purchase/purchase.py @@ -1358,6 +1358,10 @@ class product_template(osv.Model): _name = 'product.template' _inherit = 'product.template' + def _get_buy_route(self, cr, uid, context=None): + buy_route = self.pool.get('ir.model.data').get_object_reference(cr, uid, 'purchase', 'route_warehouse0_buy')[1] + return [buy_route] + def _purchase_count(self, cr, uid, ids, field_name, arg, context=None): res = dict.fromkeys(ids, 0) for template in self.browse(cr, uid, ids, context=context): @@ -1369,6 +1373,7 @@ class product_template(osv.Model): } _defaults = { 'purchase_ok': 1, + 'route_ids': _get_buy_route, } class product_product(osv.Model): @@ -1446,15 +1451,9 @@ class account_invoice_line(osv.Model): readonly=True), } -class product_product(osv.osv): - _inherit = "product.product" +class product_template(osv.osv): + _inherit = "product.template" - def _get_buy_route(self, cr, uid, context=None): - buy_route = self.pool.get('ir.model.data').get_object_reference(cr, uid, 'purchase', 'route_warehouse0_buy')[1] - return [buy_route] - _defaults = { - 'route_ids': _get_buy_route, - } # vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4: diff --git a/addons/stock/stock.py b/addons/stock/stock.py index e640c6daec4..a8697dd435d 100644 --- a/addons/stock/stock.py +++ b/addons/stock/stock.py @@ -1248,6 +1248,7 @@ class stock_picking(osv.osv): ''' move_obj = self.pool.get('stock.move') operation_obj = self.pool.get('stock.pack.operation') + moves = [] for op in picking.pack_operation_ids: for product_id, remaining_qty in operation_obj._get_remaining_prod_quantities(cr, uid, op, context=context).items(): if remaining_qty > 0: @@ -1260,9 +1261,12 @@ class stock_picking(osv.osv): 'product_uom': product.uom_id.id, 'product_uom_qty': remaining_qty, 'name': _('Extra Move: ') + product.name, - 'state': 'confirmed', + 'state': 'draft', } - move_obj.create(cr, uid, vals, context=context) + moves.append(move_obj.create(cr, uid, vals, context=context)) + if moves: + move_obj.action_confirm(cr, uid, moves, context=context) + return moves def rereserve_quants(self, cr, uid, picking, move_ids=[], context=None): """ Unreserve quants then try to reassign quants.""" @@ -1289,11 +1293,13 @@ class stock_picking(osv.osv): else: need_rereserve, all_op_processed = self.picking_recompute_remaining_quantities(cr, uid, picking, context=context) #create extra moves in the picking (unexpected product moves coming from pack operations) + todo_move_ids = [] if not all_op_processed: - self._create_extra_moves(cr, uid, picking, context=context) + todo_move_ids += self._create_extra_moves(cr, uid, picking, context=context) + picking.refresh() #split move lines eventually - todo_move_ids = [] + toassign_move_ids = [] for move in picking.move_lines: remaining_qty = move.remaining_qty diff --git a/addons/stock_account/product_view.xml b/addons/stock_account/product_view.xml index 32ef9c66acc..a703b4126d6 100644 --- a/addons/stock_account/product_view.xml +++ b/addons/stock_account/product_view.xml @@ -30,11 +30,7 @@ - - - - - + From fb9f0a18862cd68f92b33e599330806a84277572 Mon Sep 17 00:00:00 2001 From: Josse Colpaert Date: Mon, 2 Jun 2014 10:59:33 +0200 Subject: [PATCH 02/23] [IMP] Previously done changes for qty_available stat button --- addons/stock/product.py | 4 ++-- addons/stock/stock.py | 1 - 2 files changed, 2 insertions(+), 3 deletions(-) diff --git a/addons/stock/product.py b/addons/stock/product.py index 0cf7df5e836..bcaa19f241e 100644 --- a/addons/stock/product.py +++ b/addons/stock/product.py @@ -171,13 +171,13 @@ class product_product(osv.osv): def _product_available_text(self, cr, uid, ids, field_names=None, arg=False, context=None): res = {} for product in self.browse(cr, uid, ids, context=context): - res[product.id] = str(product.qty_available) + _(" In Stock") + res[product.id] = str(product.qty_available) + _(" On Hand") return res _columns = { 'reception_count': fields.function(_stock_move_count, string="Reception", type='integer', multi='pickings'), 'delivery_count': fields.function(_stock_move_count, string="Delivery", type='integer', multi='pickings'), - 'qty_in_stock': fields.function(_product_available_text, type='char'), + 'qty_available_text': fields.function(_product_available_text, type='char'), 'qty_available': fields.function(_product_available, multi='qty_available', type='float', digits_compute=dp.get_precision('Product Unit of Measure'), string='Quantity On Hand', diff --git a/addons/stock/stock.py b/addons/stock/stock.py index a8697dd435d..71512f633d0 100644 --- a/addons/stock/stock.py +++ b/addons/stock/stock.py @@ -3524,7 +3524,6 @@ class stock_location_path(osv.osv): # ------------------------- from openerp.report import report_sxw -report_sxw.report_sxw('report.stock.quant.package.barcode', 'stock.quant.package', 'addons/stock/report/package_barcode.rml') class stock_package(osv.osv): """ From 18696cd7bca1df91df5da8cd221585b8b7c6dcd2 Mon Sep 17 00:00:00 2001 From: Josse Colpaert Date: Mon, 2 Jun 2014 11:12:45 +0200 Subject: [PATCH 03/23] [IMP] Change logos and use qty_available_text --- addons/stock/product_view.xml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/addons/stock/product_view.xml b/addons/stock/product_view.xml index b482f2aeab3..5b229927d84 100644 --- a/addons/stock/product_view.xml +++ b/addons/stock/product_view.xml @@ -202,13 +202,13 @@