← Back to team overview

openerp-dev-web team mailing list archive

lp:~openerp-dev/openobject-addons/fixed_invoice_id_error_problem into lp:~openobject-training/openobject-addons/training

 

gpa(Open ERP) has proposed merging lp:~openerp-dev/openobject-addons/fixed_invoice_id_error_problem into lp:~openobject-training/openobject-addons/training.

Requested reviews:
  Bhumika (OpenERP) (sbh-openerp)

For more details, see:
https://code.launchpad.net/~openerp-dev/openobject-addons/fixed_invoice_id_error_problem/+merge/54864

Fixed the invoice_id error problem for the stachk holder request and content review
-- 
https://code.launchpad.net/~openerp-dev/openobject-addons/fixed_invoice_id_error_problem/+merge/54864
Your team OpenERP R&D Team is subscribed to branch lp:~openerp-dev/openobject-addons/fixed_invoice_id_error_problem.
=== modified file 'training/training.py'
--- training/training.py	2011-03-25 09:59:07 +0000
+++ training/training.py	2011-03-25 13:36:53 +0000
@@ -1195,16 +1195,17 @@
                         raise osv.except_osv(_('Error'),
                                              _('There is no Purchase Order for a request'))
 
-                    if not contact.request_id.purchase_order_id.invoice_id:
+                    if not contact.request_id.purchase_order_id.invoice_ids:
                         raise osv.except_osv(_('Error'),
                                              _('There is no Invoice for the Purchase Order for this request'))
 
-                    res = self._get_report(cr, uid, contact.request_id.purchase_order_id.invoice_id.id, 'report.account.invoice', context=context)
-                    filename = os.path.join(directory, 'Request_%s_Invoice_%06d.pdf' % (re.sub('/|-', '_', contact.request_id.reference),
-                                                                                        contact.request_id.purchase_order_id.invoice_id.id))
-                    fp = file(filename, 'w')
-                    fp.write(res)
-                    fp.close()
+                    for invoice_id in contact.request_id.purchase_order_id.invoice_ids:
+                        res = self._get_report(cr, uid, invoice_id.id, 'report.account.invoice', context=context)
+                        filename = os.path.join(directory, 'Request_%s_Invoice_%06d.pdf' % (re.sub('/|-', '_', contact.request_id.reference),
+                                                                                            invoice_id.id))
+                        fp = file(filename, 'w')
+                        fp.write(res)
+                        fp.close()
 
 training_seance_generate_pdf_wizard()
 
@@ -3863,12 +3864,14 @@
 
         for request in self.browse(cr, uid, ids, context=context):
             try:
-                invoice_id = request.purchase_order_id.invoice_id.id
-                if invoice_id:
-                    request_invoices[invoice_id] = request.id
+                invoice_ids = request.purchase_order_id.invoice_ids
+                if invoice_ids:
+                    for invoice_id in request.purchase_order_id.invoice_ids:
+                        request_invoices[invoice_id.id] = request.id
             except AttributeError:
                 # catch: "bool object doesn't have 'x' attributte" errors
                 pass
+
         invoice_residual_amounts = invoice_pool._amount_to_pay(cr, uid, request_invoices.keys(), None, None, context)
         for invoice_id, residual_amount in invoice_residual_amounts.items():
             res[request_invoices[invoice_id]] = unicode(residual_amount)
@@ -3898,7 +3901,7 @@
                                    ('done', 'Done'),
                                   ], 'State', readonly=True, required=True),
         'purchase_order_id': fields.many2one('purchase.order', 'Purchase Order', readonly=True),
-        'purchase_paid': fields.related('purchase_order_id', 'invoice_id', 'reconciled', type='boolean', string='Invoice Paid', readonly=True,),
+        'purchase_paid': fields.related('purchase_order_id', 'invoice_ids', 'reconciled', type='boolean', string='Invoice Paid', readonly=True,),
         'amount_to_pay': fields.function(_amount_to_pay, string='Amount to pay', type='char', size='20', readonly=True, method=True),
         'price' : fields.function(_price_compute, method=True, string='Remuneration', type='float', digits_compute=dp.get_precision('Account'),
                                   store={
@@ -4033,6 +4036,7 @@
     def action_wkf_accept(self, cr, uid, ids, context=None):
         if context is None:
             context = {}
+        invoice_ids = []
         cr.sql_log = True
         report_invoice = netsvc.LocalService('report.account.invoice')
         self.write(cr, uid, ids, {'state': 'accepted'}, context=context)
@@ -4042,9 +4046,11 @@
         email_proxy = self.pool.get('training.email')
         for this in self.browse(cr, uid, ids, context=context):
             email_attachments = []
-            if this.purchase_order_id and this.purchase_order_id.invoice_id:
+            if this.purchase_order_id and this.purchase_order_id.invoice_ids:
                 # attach the draft invoice for this stakeholder request
-                pdf, _r = report_invoice.create(cr, uid, [this.purchase_order_id.invoice_id.id], {}, context=context)
+                for invoice_id in this.purchase_order_id.invoice_ids:
+                    invoice_ids.append(invoice_id.id)
+                pdf, _r = report_invoice.create(cr, uid, invoice_ids, {}, context=context)
                 email_attachments.append(('Invoice.pdf', pdf))
             seances = list(sh.seance_id for sh in this.participation_ids)
             seances.sort(cmp=self.sh_sort_by_date)
@@ -4316,8 +4322,9 @@
         for this in self.browse(cr, uid, ids, context):
             po = this.purchase_order_id
             if po:
-                if purchase_order_signal == 'purchase_cancel' and po.invoice_id:
-                    wkf.trg_validate(uid, 'account.invoice', po.invoice_id.id, 'invoice_cancel', cr)
+                if purchase_order_signal == 'purchase_cancel' and po.invoice_ids:
+                    for invoice_id in invoice_ids:
+                        wkf.trg_validate(uid, 'account.invoice', invoice_id.id, 'invoice_cancel', cr)
                     wkf.trg_validate(uid, 'purchase.order', po.id, 'cancel', cr)
                 else:
                     wkf.trg_validate(uid, 'purchase.order', this.purchase_order_id.id, purchase_order_signal, cr)

=== modified file 'training/training_view.xml'
--- training/training_view.xml	2011-03-24 09:31:32 +0000
+++ training/training_view.xml	2011-03-25 13:36:53 +0000
@@ -1071,7 +1071,7 @@
             <field name="model">training.subscription</field>
             <field name="type">form</field>
             <field name="arch" type="xml">
-                <form string="subscription">
+                <form string="Subscription">
                     <separator string="Subscription Description" colspan="4" />
                     <field name="name" />
                     <field name="create_date" />


Follow ups