[FIX] account_anglo_saxon: Price calculation
authorhda(Open ERP) <>
Tue, 21 Dec 2010 12:32:02 +0000 (18:02 +0530)
committerpso <pso@tinyerp.com>
Tue, 21 Dec 2010 12:32:02 +0000 (18:02 +0530)
lp bug: https://launchpad.net/bugs/438717 fixed

bzr revid: pso@tinyerp.com-20101221123202-vegmmg2aoh97j3rv

addons/account_anglo_saxon/invoice.py

index a0aab82..784dd93 100644 (file)
@@ -29,6 +29,15 @@ class account_invoice_line(osv.osv):
     def move_line_get(self, cr, uid, invoice_id, context=None):
         res = super(account_invoice_line,self).move_line_get(cr, uid, invoice_id, context=context)
         inv = self.pool.get('account.invoice').browse(cr, uid, invoice_id, context=context)
+        company_currency = inv.company_id.currency_id.id
+        def get_price(cr, uid, inv, company_currency,i_line):
+            cur_obj = self.pool.get('res.currency')
+            if inv.currency_id.id != company_currency:
+                price = cur_obj.compute(cr, uid, company_currency, inv.currency_id.id, i_line.product_id.product_tmpl_id.standard_price * i_line.quantity, context={'date': inv.date_invoice})
+            else:
+                price = i_line.product_id.product_tmpl_id.standard_price * i_line.quantity
+            return price
+
         if inv.type in ('out_invoice','out_refund'):
             for i_line in inv.invoice_line:
                 if i_line.product_id:
@@ -56,7 +65,7 @@ class account_invoice_line(osv.osv):
                             'name': i_line.name[:64],
                             'price_unit':i_line.product_id.product_tmpl_id.standard_price,
                             'quantity':i_line.quantity,
-                            'price':i_line.product_id.product_tmpl_id.standard_price * i_line.quantity,
+                            'price':get_price(cr, uid, inv, company_currency, i_line),
                             'account_id':dacc,
                             'product_id':i_line.product_id.id,
                             'uos_id':i_line.uos_id.id,
@@ -69,7 +78,7 @@ class account_invoice_line(osv.osv):
                             'name': i_line.name[:64],
                             'price_unit':i_line.product_id.product_tmpl_id.standard_price,
                             'quantity':i_line.quantity,
-                            'price': -1 * i_line.product_id.product_tmpl_id.standard_price * i_line.quantity,
+                            'price': -1 * get_price(cr, uid, inv, company_currency, i_line),
                             'account_id':cacc,
                             'product_id':i_line.product_id.id,
                             'uos_id':i_line.uos_id.id,