- res = super(account_invoice_line, self).move_line_get_item(cr, uid, line, context)
- if line.asset_category_id and line.asset_category_id.id:
- vals = {
- 'name': line.product_id and (line.name + ": " + line.product_id.name) or line.name,
- 'category_id': line.asset_category_id.id,
- 'purchase_value': line.price_subtotal
- }
- asset_id = asset_obj.create(cr, uid, vals, context=context)
- if line.asset_category_id.asset_normal:
- asset_obj.validate(cr, uid, [asset_id], context=context)
- return res
+ for line in lines:
+ if line.asset_category_id:
+ vals = {
+ 'name': line.name,
+ 'code': line.invoice_id.number or False,
+ 'category_id': line.asset_category_id.id,
+ 'purchase_value': line.price_subtotal,
+ 'period_id': line.invoice_id.period_id.id,
+ 'partner_id': line.invoice_id.partner_id.id,
+ 'company_id': line.invoice_id.company_id.id,
+ 'currency_id': line.invoice_id.currency_id.id,
+ }
+ changed_vals = asset_obj.onchange_category_id(cr, uid, [], vals['category_id'], context=context)
+ vals.update(changed_vals['value'])
+ asset_id = asset_obj.create(cr, uid, vals, context=context)
+ if line.asset_category_id.open_asset:
+ asset_obj.validate(cr, uid, [asset_id], context=context)
+ return True
+