bug fix (313339): membership module state changes problem and associate membership
bzr revid: mra@tinyerp.com-20090219121205-0fgh5w0e69ctefga
This commit is contained in:
parent
1e2f825ba7
commit
6e75c64d3b
|
@ -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:
|
|
@ -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:
|
Loading…
Reference in New Issue