~openerp-dev/openobject-addons/trunk-bug-986088-amb

« back to all changes in this revision

Viewing changes to event/wizard/event_make_invoice.py

[BACKPORT] Stable fixes and refactorings to trunk

Show diffs side-by-side

added added

removed removed

Lines of Context:
68
68
                inv_reject = inv_reject + 1
69
69
                inv_rej_reason += "ID "+str(reg.id)+": Registration doesn't have any partner to invoice. \n"
70
70
                continue
71
 
            partner_address_list = reg.partner_invoice_id and self.pool.get('res.partner').address_get(cr, uid, [reg.partner_invoice_id.id], adr_pref=['invoice'])
72
 
            partner_address_id = partner_address_list['invoice']
 
71
            else:
 
72
                val_invoice = pool_obj.get('account.invoice').onchange_partner_id(cr, uid, [], 'out_invoice', reg.partner_invoice_id.id, False, False)
 
73
                val_invoice['value'].update({'partner_id': reg.partner_invoice_id.id})
 
74
                partner_address_id = val_invoice['value']['address_invoice_id']
 
75
                
73
76
            if not partner_address_id:
74
77
                inv_reject = inv_reject + 1
75
78
                inv_rej_reason += "ID "+str(reg.id)+": Registered partner doesn't have an address to make the invoice. \n"
82
85
                tax_ids.append(tax.id)
83
86
 
84
87
            vals = value['value']
 
88
            c_name = reg.contact_id and ('-' + self.pool.get('res.partner.contact').name_get(cr, uid, [reg.contact_id.id])[0][1]) or ''
85
89
            vals.update({
86
 
                'name': reg.name,
 
90
                'name': reg.invoice_label + '-' + c_name,
87
91
                'price_unit': reg.unit_price,
88
92
                'quantity': reg.nb_register,
89
93
                'product_id':reg.event_id.product_id.id,
91
95
            })
92
96
            inv_line_ids = obj_event_reg._create_invoice_lines(cr, uid, [reg.id], vals)
93
97
 
94
 
            inv = {
95
 
                'name': reg.invoice_label,
 
98
            val_invoice['value'].update({
96
99
                'origin': reg.invoice_label,
97
 
                'type': 'out_invoice',
98
100
                'reference': False,
99
 
                'account_id': reg.partner_invoice_id.property_account_receivable.id,
100
 
                'partner_id': reg.partner_invoice_id.id,
101
 
                'address_invoice_id':partner_address_id,
102
 
                'address_contact_id':partner_address_id,
103
101
                'invoice_line': [(6,0,[inv_line_ids])],
104
 
                'currency_id' :reg.partner_invoice_id.property_product_pricelist.currency_id.id,
105
102
                'comment': "",
106
 
                'payment_term':reg.partner_invoice_id.property_payment_term.id,
107
 
                'fiscal_position': reg.partner_invoice_id.property_account_position.id
108
 
            }
 
103
            })
109
104
 
110
 
            inv_id = inv_obj.create(cr, uid, inv)
 
105
            inv_id = inv_obj.create(cr, uid, val_invoice['value'])
111
106
            list_inv.append(inv_id)
112
107
            obj_event_reg.write(cr, uid, reg.id, {'invoice_id': inv_id, 'state': 'done'})
113
108
            obj_event_reg._history(cr, uid, [reg.id], 'Invoiced', history=True)