diff --git a/addons/account/account_invoice_view.xml b/addons/account/account_invoice_view.xml index b039349a8b9..b980cad2531 100644 --- a/addons/account/account_invoice_view.xml +++ b/addons/account/account_invoice_view.xml @@ -44,7 +44,7 @@ - + diff --git a/addons/account/invoice.py b/addons/account/invoice.py index 553f145291a..c5c164a569c 100644 --- a/addons/account/invoice.py +++ b/addons/account/invoice.py @@ -500,10 +500,15 @@ class account_invoice_line(osv.osv): 'quantity': lambda *a: 1, 'discount': lambda *a: 0.0 } - def product_id_change(self, cr, uid, ids, product, uom, qty=0, name='', type='out_invoice'): + def product_id_change(self, cr, uid, ids, product, uom, qty=0, name='', type='out_invoice', partner_id=None): if not product: return {'value': {'price_unit': 0.0}, 'domain':{'product_uom':[]}} - res = self.pool.get('product.product').browse(cr, uid, product) + lang=False + if partner_id: + lang=self.pool.get('res.partner').read(cr, uid, [partner_id])[0]['lang'] + context={'lang': lang} + print context + res = self.pool.get('product.product').browse(cr, uid, product, context=context) result = {'price_unit': res.list_price, 'invoice_line_tax_id':map(lambda x: x.id, res.taxes_id)} if not name: result['name'] = res.name diff --git a/addons/purchase/purchase.py b/addons/purchase/purchase.py index 41aaa075094..5cd59d9c87d 100644 --- a/addons/purchase/purchase.py +++ b/addons/purchase/purchase.py @@ -311,10 +311,14 @@ class purchase_order_line(osv.osv): raise osv.except_osv('No Pricelist !', 'You have to select a pricelist in the sale form !\n Please set one before choosing a product.') if not product: return {'value': {'price_unit': 0.0, 'name':'','notes':''}, 'domain':{'product_uom':[]}} + lang=False + if partner_id: + lang=self.pool.get('res.partner').read(cr, uid, [partner_id])[0]['lang'] + context={'lang':lang} price = self.pool.get('product.pricelist').price_get(cr,uid,[pricelist], product, qty or 1.0, partner_id, {'uom': uom})[pricelist] prod = self.pool.get('product.product').read(cr, uid, [product], ['taxes_id','name','seller_delay','uom_po_id','description_purchase'])[0] dt = (DateTime.now() + DateTime.RelativeDateTime(days=prod['seller_delay'] or 0.0)).strftime('%Y-%m-%d') - prod_name = self.pool.get('product.product').name_get(cr, uid, [product])[0][1] + prod_name = self.pool.get('product.product').name_get(cr, uid, [product], context=context)[0][1] res = {'value': {'price_unit': price, 'name':prod_name, 'taxes_id':prod['taxes_id'], 'date_planned': dt,'notes':prod['description_purchase']}} domain = {} if not uom: diff --git a/addons/sale/sale.py b/addons/sale/sale.py index 10cb2212a26..4deec00eb6e 100644 --- a/addons/sale/sale.py +++ b/addons/sale/sale.py @@ -588,6 +588,8 @@ class sale_order_line(osv.osv): return super(sale_order_line, self).copy(cr, uid, id, default, context) def product_id_change(self, cr, uid, ids, pricelist, product, qty=0, uom=False, qty_uos=0, uos=False, name='', partner_id=False, lang=False): + if partner_id: + lang=self.pool.get('res.partner').read(cr, uid, [partner_id])[0]['lang'] context = {'lang':lang} if not product: return {'value': {'price_unit': 0.0, 'notes':'', 'weight' : 0}, 'domain':{'product_uom':[]}}