[FIX] (5.0 - 6.0)Mrp_repair : Corrected make invoice process and Quotation report
authorJay (OpenERP) <>
Tue, 11 May 2010 09:15:36 +0000 (14:45 +0530)
committervra <vra@tinyerp.com>
Tue, 11 May 2010 09:15:36 +0000 (14:45 +0530)
bzr revid: vra@tinyerp.com-20100511091536-vroh7w7yr2cmo33s

addons/mrp_repair/mrp_repair.py

index f59da6a..3cff374 100644 (file)
@@ -346,12 +346,14 @@ class mrp_repair(osv.osv):
                     }
                     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,
@@ -368,11 +370,19 @@ class mrp_repair(osv.osv):
                             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,