diff --git a/addons/membership/membership.py b/addons/membership/membership.py index 5c288ed5c98..86b09aa4f55 100644 --- a/addons/membership/membership.py +++ b/addons/membership/membership.py @@ -289,15 +289,8 @@ class Partner(osv.osv): if partner_data.free_member and s!=0: res[id] = 'free' if partner_data.associate_member: - associate_partners_list = [] - query="SELECT DISTINCT associate_member FROM res_partner" - cr.execute(query) - for p in cr.fetchall(): - if p != partner_data.id: - associate_partners_list.append(p) - if associate_partners_list != []: - self._membership_state(cr, uid, associate_partners_list, name, args, context) - res[id] = partner_data.associate_member.membership_state + res_state = self._membership_state(cr, uid, [partner_data.associate_member.id], name, args, context) + res[id] = res_state[partner_data.associate_member.id] return res def _membership_start(self, cr, uid, ids, name, args, context=None): @@ -372,7 +365,7 @@ class Partner(osv.osv): selection = STATE ,store = { 'account.invoice':(_get_invoice_partner,['state'], 10), 'membership.membership_line':(_get_partner_id,['state'], 10), - 'res.partner':(_get_partners, ['free_member'], 10) + 'res.partner':(_get_partners, ['free_member', 'membership_state'], 10) } ), 'membership_start': fields.function( @@ -710,8 +703,6 @@ class ReportPartnerMemberYearNew(osv.osv): """) ReportPartnerMemberYearNew() -# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4: - class account_invoice_line(osv.osv): _inherit='account.invoice.line' @@ -767,3 +758,4 @@ class account_invoice_line(osv.osv): }) return result account_invoice_line() +# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4: \ No newline at end of file diff --git a/addons/membership/wizard/invoice_membership.py b/addons/membership/wizard/invoice_membership.py index 1321bb38491..ce048e41611 100644 --- a/addons/membership/wizard/invoice_membership.py +++ b/addons/membership/wizard/invoice_membership.py @@ -27,9 +27,7 @@ import time def _invoice_membership(self, cr, uid, data, context): partner_ids = data['ids'] product_id = data['form']['product'] - pool = pooler.get_pool(cr.dbname) - cr.execute(''' SELECT partner_id, id, type FROM res_partner_address @@ -44,12 +42,10 @@ def _invoice_membership(self, cr, uid, data, context): pid = fetchal[x][0] id = fetchal[x][1] type = fetchal[x][2] - if partner_address_ids.has_key(pid) and partner_address_ids[pid]['type'] == 'invoice': continue partner_address_ids[pid] = {'id': id, 'type': type} - invoice_list= [] invoice_obj = pool.get('account.invoice') partner_obj = pool.get('res.partner') @@ -67,28 +63,27 @@ def _invoice_membership(self, cr, uid, data, context): } quantity = 1 - line_dict = invoice_line_obj.product_id_change(cr, uid, {}, product_id, product['uom_id'][0], quantity, '', 'out_invoice', partner_id, fpos_id, context=context) line_value.update(line_dict['value']) if line_value['invoice_line_tax_id']: tax_tab = [(6, 0, line_value['invoice_line_tax_id'])] line_value['invoice_line_tax_id'] = tax_tab - invoice_line_id = invoice_line_obj.create(cr, uid, line_value) invoice_id = invoice_obj.create(cr, uid, { 'partner_id' : partner_id, 'address_invoice_id': partner_address_ids[partner_id]['id'], 'account_id': account_id, - 'invoice_line':[(6,0,[invoice_line_id])], 'fiscal_position': fpos_id or False } ) + line_value['invoice_id'] = invoice_id + invoice_line_id = invoice_line_obj.create(cr, uid, line_value, context) + invoice_obj.write(cr, uid, invoice_id, {'invoice_line':[(6,0,[invoice_line_id])]}) invoice_list.append(invoice_id) if line_value['invoice_line_tax_id']: invoice_obj.write(cr, uid, [invoice_id], {'tax_line':tax_tab}) tax_value = invoice_tax_obj.compute(cr, uid, invoice_id).values()[0] invoice_tax_obj.create(cr, uid, tax_value) - value = { 'domain': [ ('id', 'in', invoice_list), @@ -99,7 +94,6 @@ def _invoice_membership(self, cr, uid, data, context): 'res_model': 'account.invoice', 'type': 'ir.actions.act_window', } - return value wizard_arch= """ @@ -111,12 +105,9 @@ wizard_arch= """ /> """ - - class wizard_invoice_membership(wizard.interface): states = { - 'init' : { 'actions' : [], 'result' : { @@ -132,7 +123,6 @@ class wizard_invoice_membership(wizard.interface): }, 'state' : [('end', 'Cancel'),('ok', 'Confirm') ]} }, - 'ok' : { 'actions' : [], 'result' : {'type' : 'action', @@ -145,5 +135,4 @@ class wizard_invoice_membership(wizard.interface): wizard_invoice_membership("wizard_invoice_membership") -# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4: - +# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4: \ No newline at end of file