}
invoice_obj.write(cr, uid, [inv_id], invoice_vals, context=context)
else:
- a = repair.partner_id.property_account_receivable.id
+ if not repair.partner_id.property_account_receivable:
+ raise osv.except_osv(_('Error !'), _('No account defined for partner "%s".') % repair.partner_id.name )
+ account_id = repair.partner_id.property_account_receivable.id
inv = {
'name': repair.name,
'origin':repair.name,
'type': 'out_invoice',
- 'account_id': a,
+ 'account_id': account_id,
'partner_id': repair.partner_id.id,
'address_invoice_id': repair.address_id.id,
'currency_id': repair.pricelist_id.currency_id.id,
name = repair.name + '-' + operation.name
else:
name = operation.name
+
+ if operation.product_id.property_account_income:
+ account_id = operation.product_id.property_account_income
+ elif operation.product_id.categ_id.property_account_income_categ:
+ account_id = operation.product_id.categ_id.property_account_income_categ.id
+ else:
+ raise osv.except_osv(_('Error !'), _('No account defined for product "%s".') % operation.product_id.name )
+
invoice_line_id = inv_line_obj.create(cr, uid, {
'invoice_id': inv_id,
'name': name,
'origin': repair.name,
- 'account_id': operation.product_id and operation.product_id.property_account_income and operation.product_id.property_account_income.id,
+ 'account_id': account_id,
'quantity': operation.product_uom_qty,
'invoice_line_tax_id': [(6,0,[x.id for x in operation.tax_id])],
'uos_id': operation.product_uom.id,