bug fix (313339): membership module state changes problem and associate membership

bzr revid: mra@tinyerp.com-20090219121205-0fgh5w0e69ctefga
This commit is contained in:
mra (Open ERP) 2009-02-19 17:42:05 +05:30
parent 1e2f825ba7
commit 6e75c64d3b
2 changed files with 8 additions and 27 deletions

View File

@ -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:

View File

@ -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= """<?xml version="1.0"?>
@ -111,12 +105,9 @@ wizard_arch= """<?xml version="1.0"?>
/>
</form>"""
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: