From d374d5376b0bcbcb95743b51c9d8e6e9bbca89b7 Mon Sep 17 00:00:00 2001 From: mso Date: Thu, 11 Mar 2010 13:17:54 +0530 Subject: [PATCH] [IMP] Stock, Sale:Code optimization in OSV_Memory wizard files bzr revid: mso@mso-20100311074754-aswbr7n13dtmxll3 --- addons/sale/wizard/sale_line_invoice.py | 16 +++++++++------- addons/sale/wizard/sale_make_invoice_advance.py | 10 ++++++---- addons/stock/wizard/stock_fill_inventory.py | 6 ++++-- .../stock/wizard/stock_inventory_line_split.py | 10 ++++++---- addons/stock/wizard/stock_invoice_onshipping.py | 8 ++++---- 5 files changed, 29 insertions(+), 21 deletions(-) diff --git a/addons/sale/wizard/sale_line_invoice.py b/addons/sale/wizard/sale_line_invoice.py index 7dd7fef78cb..c9d18fd86ed 100644 --- a/addons/sale/wizard/sale_line_invoice.py +++ b/addons/sale/wizard/sale_line_invoice.py @@ -36,7 +36,7 @@ class sale_order_line_make_invoice(osv.osv_memory): 'grouped' : lambda *a: False } - def makeInvoices(self, cr, uid, ids, context): + def make_invoices(self, cr, uid, ids, context): res = False invoices = {} @@ -65,26 +65,28 @@ class sale_order_line_make_invoice(osv.osv_memory): inv_id = self.pool.get('account.invoice').create(cr, uid, inv) return inv_id - for line in self.pool.get('sale.order.line').browse(cr,uid,context['active_ids']): + sales_order_line_obj = self.pool.get('sale.order.line') + wf_service = netsvc.LocalService('workflow') + for line in sales_order_line_obj.browse(cr,uid,context['active_ids']): if (not line.invoiced) and (line.state not in ('draft','cancel')): if not line.order_id.id in invoices: invoices[line.order_id.id] = [] - line_id = self.pool.get('sale.order.line').invoice_line_create(cr, uid, + line_id = sales_order_line_obj.invoice_line_create(cr, uid, [line.id]) for lid in line_id: invoices[line.order_id.id].append((line, lid)) - self.pool.get('sale.order.line').write(cr, uid, [line.id], + sales_order_line_obj.write(cr, uid, [line.id], {'invoiced': True}) flag = True - data_sale = self.pool.get('sale.order').browse(cr,uid,line.order_id.id) + sales_order_obj = self.pool.get('sale.order') + data_sale = sales_order_obj.browse(cr,uid,line.order_id.id) for line in data_sale.order_line: if not line.invoiced: flag = False break if flag: - wf_service = netsvc.LocalService('workflow') wf_service.trg_validate(uid, 'sale.order', line.order_id.id, 'all_lines', cr) - self.pool.get('sale.order').write(cr,uid,[line.order_id.id],{'state' : 'progress'}) + sales_order_obj.write(cr,uid,[line.order_id.id],{'state' : 'progress'}) for result in invoices.values(): order = result[0][0].order_id diff --git a/addons/sale/wizard/sale_make_invoice_advance.py b/addons/sale/wizard/sale_make_invoice_advance.py index 9a079c4f8ec..f441871946b 100644 --- a/addons/sale/wizard/sale_make_invoice_advance.py +++ b/addons/sale/wizard/sale_make_invoice_advance.py @@ -38,10 +38,12 @@ class sale_advance_payment_inv(osv.osv_memory): _default = { 'qtty' : lambda *a: 1 } - def createInvoices(self, cr, uid, ids, context={}): + def create_invoices(self, cr, uid, ids, context={}): list_inv = [] obj_sale = self.pool.get('sale.order') obj_lines = self.pool.get('account.invoice.line') + inv_obj = self.pool.get('account.invoice') + for sale_adv_obj in self.browse(cr, uid, ids): for sale in obj_sale.browse(cr, uid, context['active_ids']): address_contact = False @@ -83,7 +85,7 @@ class sale_advance_payment_inv(osv.osv_memory): 'payment_term':sale.payment_term.id, 'fiscal_position': sale.partner_id.property_account_position.id } - inv_obj = self.pool.get('account.invoice') + inv_id = inv_obj.create(cr, uid, inv) for inv in sale.invoice_ids: @@ -134,9 +136,9 @@ class sale_open_invoice(osv.osv_memory): for advance_pay in self.browse(cr, uid, ids): result = mod_obj._get_id(cr, uid, 'account', 'view_account_invoice_filter') id = mod_obj.read(cr, uid, result, ['res_id']) - model_data_ids = self.pool.get('ir.model.data').search(cr, uid, + model_data_ids = mod_obj.search(cr, uid, [('model', '=', 'ir.ui.view'), ('name', '=', 'invoice_form')]) - resource_id = self.pool.get('ir.model.data').read(cr, uid, model_data_ids, + resource_id = mod_obj.read(cr, uid, model_data_ids, fields=['res_id'])[0]['res_id'] return { # 'domain': "[('id','in', ["+','.join(map(str, invoices))+"])]", # TODO diff --git a/addons/stock/wizard/stock_fill_inventory.py b/addons/stock/wizard/stock_fill_inventory.py index 246aff9eabf..a7d68d4f0e3 100644 --- a/addons/stock/wizard/stock_fill_inventory.py +++ b/addons/stock/wizard/stock_fill_inventory.py @@ -40,6 +40,8 @@ class stock_fill_inventory(osv.osv_memory): def fill_inventory(self, cr, uid, ids, context): inventory_line_obj = self.pool.get('stock.inventory.line') location_obj = self.pool.get('stock.location') + product_obj = self.pool.get('product.product') + stock_location_obj = self.pool.get('stock.location') for fill_inventory in self.browse(cr, uid, ids): res = {} res_location = {} @@ -59,10 +61,10 @@ class stock_fill_inventory(osv.osv_memory): for location in res_location.keys(): res = res_location[location] for product_id in res.keys(): - prod = self.pool.get('product.product').browse(cr, uid, [product_id])[0] + prod = product_obj.browse(cr, uid, [product_id])[0] uom = prod.uom_id.id context.update({'uom': uom}) - amount = self.pool.get('stock.location')._product_get(cr, uid, + amount = stock_location_obj._product_get(cr, uid, location, [product_id], context=context)[product_id] if(amount): diff --git a/addons/stock/wizard/stock_inventory_line_split.py b/addons/stock/wizard/stock_inventory_line_split.py index 1723f7b3032..19a501478d3 100644 --- a/addons/stock/wizard/stock_inventory_line_split.py +++ b/addons/stock/wizard/stock_inventory_line_split.py @@ -37,7 +37,8 @@ class stock_inventory_line_split(osv.osv_memory): } def _check_production_lot(self, cr, uid, context): - for inv_obj in self.pool.get('stock.inventory.line').browse(cr, uid, \ + stock_inventory_line_obj = self.pool.get('stock.inventory.line') + for inv_obj in stock_inventory_line_obj.browse(cr, uid, \ context['active_ids']): if not inv_obj.prod_lot_id: raise osv.except_osv(_('Caution!'), _('Before splitting the \ @@ -53,10 +54,11 @@ inventory lines, make sure the production lot is assigned to this product.')) inv_id = context['active_id'] inv_line_obj = self.pool.get('stock.inventory.line') prodlot_obj = self.pool.get('stock.production.lot') - for linesplit_obj in self.browse(cr, uid, ids): - ir_sequence_obj = self.pool.get('ir.sequence') - sequence = ir_sequence_obj.get(cr, uid, 'stock.lot.serial') + ir_sequence_obj = self.pool.get('ir.sequence') + sequence = ir_sequence_obj.get(cr, uid, 'stock.lot.serial') + + for linesplit_obj in self.browse(cr, uid, ids): if not sequence: raise wizard.except_wizard(_('Error!'), _('No production sequence defined')) if linesplit_obj.prefix: diff --git a/addons/stock/wizard/stock_invoice_onshipping.py b/addons/stock/wizard/stock_invoice_onshipping.py index 82043fc0532..a4026e69827 100644 --- a/addons/stock/wizard/stock_invoice_onshipping.py +++ b/addons/stock/wizard/stock_invoice_onshipping.py @@ -70,15 +70,15 @@ class stock_invoice_onshipping(osv.osv_memory): def create_invoice(self, cr, uid, ids, context): result = [] + picking_obj = self.pool.get('stock.picking') + mod_obj = self.pool.get('ir.model.data') + act_obj = self.pool.get('ir.actions.act_window') + for onshipdata_obj in self.read(cr, uid, ids, ['journal_id', 'group', 'type', 'invoice_date']): if context.get('new_picking', False): onshipdata_obj[id] = onshipdata_obj.new_picking onshipdata_obj[ids] = onshipdata_obj.new_picking - picking_obj = self.pool.get('stock.picking') - mod_obj = self.pool.get('ir.model.data') - act_obj = self.pool.get('ir.actions.act_window') - type = onshipdata_obj['type'] context['date_inv'] = onshipdata_obj['invoice_date'] res = picking_obj.action_invoice_create(cr, uid,context['active_ids'],