I added a field cartage about an half year ago, and i tried adding another field the exact same way. I get only one issue that is the entry i insert gets a double insert. Please anyone could help?
> def _amount_all(self, cr, uid, ids, field_name, arg, context=None):
> cur_obj = self.pool.get('res.currency')
> res = {}
> cartageflag = 'false'
> ordercartageflag = 'true'
> line_id = 0
> order_id = 0
> cartage_price = 0
> oldcartage = 0
> oldlabour = 0
> labour_price = 0
> labourflag = 'false'
> orderlabourflag = 'true'
> checklabourflag = 'false'
> oid = 0
>
>
> for order in self.browse(cr, uid, ids, context=context):
> res[order.id] = {
> 'amount_untaxed': 0.0,
> 'amount_tax': 0.0,
> 'amount_total': 0.0,
> }
> val = val1 = 0.0
> cur = order.pricelist_id.currency_id
>
> if order.cartage > 0.0:
> cartageflag = 'true'
> if order.labour > 0.0:
> labourflag = 'true'
>
> for line in order.order_line:
> if cartageflag == 'true':
> if line.name == 'Cartage':
> ordercartageflag = 'false' line_id
> = line.id oldcartage = line.price_unit cr.execute('update
> sale_order_line set price_unit=%s
> where id=%s',(order.cartage,line.id,))
>
> #line.update({'price_unit':order.cartage})
> if labourflag == 'true':
> if line.name == 'Labour':
> orderlabourflag = 'false'
> line_id = line.id
> oldlabour = line.price_unit
> cr.execute('update sale_order_line set
> price_unit=%s where
> id=%s',(order.labour,line.id,))
> val1 += line.price_subtotal
> val += self._amount_line_tax(cr, uid, line,
> context=context)
>
> res[order.id]['amount_tax'] =
> cur_obj.round(cr, uid, cur, val)
> res[order.id]['amount_untaxed'] =
> cur_obj.round(cr, uid, cur, val1)
> res[order.id]['amount_total'] =
> res[order.id]['amount_untaxed'] +
> res[order.id]['amount_tax']
>
> if ordercartageflag == 'true':
> res[order.id]['amount_total'] =
> res[order.id]['amount_total'] +
> order.cartage
> elif ordercartageflag == 'false':
> if oldcartage != order.cartage:
> res[order.id]['amount_total'] =
> (res[order.id]['amount_total'] +
> order.cartage) - oldcartage
>
> if orderlabourflag == 'true':
> res[order.id]['amount_total'] =
> res[order.id]['amount_total'] +
> order.labour
> elif orderlabourflag == 'false':
> if oldlabour != order.labour:
> res[order.id]['amount_total'] =
> (res[order.id]['amount_total'] +
> order.labour) - oldlabour
>
>
>
> oid = order.id
> if cartageflag == 'true' and ordercartageflag == 'true':
> self.pool.get('sale.order.line').create(cr,
> uid, {
> 'order_id':oid,
> 'name':'Cartage',
> 'price_unit':order.cartage,
> 'product_uos_qty':1,
> 'product_uom':1,
> 'product_uom_qty':1,
> 'delay':7,
> 'discount': 0.0})
>
> if labourflag == 'true' and orderlabourflag == 'true':
> self.pool.get('sale.order.line').create(cr,
> uid, {
> 'order_id':oid,
> 'name':'Labour',
> 'price_unit':order.labour,
> 'product_uos_qty':1,
> 'product_uom':1,
> 'product_uom_qty':1,
> 'delay':7,
> 'discount': 0.0})
return res