[FIX] Freight tax not calculating automatically on invoice
authorado <ado@tinyerp.com>
Wed, 22 Feb 2012 08:34:10 +0000 (14:04 +0530)
committerado <ado@tinyerp.com>
Wed, 22 Feb 2012 08:34:10 +0000 (14:04 +0530)
bzr revid: ado@tinyerp.com-20120222083410-tmbmt56bzyvxkzfw

1  2 
addons/delivery/stock.py

@@@ -118,16 -118,20 +118,18 @@@ class stock_picking(osv.osv)
                  account_id = self.pool.get('account.fiscal.position').map_account(cursor, user, partner.property_account_position, account_id)
                  taxes_ids = self.pool.get('account.fiscal.position').map_tax(cursor, user, partner.property_account_position, taxes)
  
-             invoice_line_obj.create(cursor, user, {
-                 'name': picking.carrier_id.name,
-                 'invoice_id': invoice.id,
-                 'uos_id': picking.carrier_id.product_id.uos_id.id,
-                 'product_id': picking.carrier_id.product_id.id,
-                 'account_id': account_id,
-                 'price_unit': price,
-                 'quantity': 1,
-                 'invoice_line_tax_id': [(6, 0,taxes_ids)],
-             })
 -            if any(inv_line.product_id.id == picking.carrier_id.product_id.id for inv_line in invoice.invoice_line):
 -                continue
 -            else:
++            if not (inv_line.product_id.id == picking.carrier_id.product_id.id for inv_line in invoice.invoice_line):
+                 invoice_line_obj.create(cursor, user, {
+                     'name': picking.carrier_id.name,
+                     'invoice_id': invoice.id,
+                     'uos_id': picking.carrier_id.product_id.uos_id.id,
+                     'product_id': picking.carrier_id.product_id.id,
+                     'account_id': account_id,
+                     'price_unit': price,
+                     'quantity': 1,
+                     'invoice_line_tax_id': [(6, 0,taxes_ids)],
+                 })
+             invoice_obj.button_compute(cursor, user, [invoice.id], context=context)
          return result
  
  stock_picking()