[IMP] properly cycle through the salesmen (round-robin) while converting leads into opps with salesmen assignation

bzr revid: abo@openerp.com-20121127165401-s8fgs553gr2amj3u
This commit is contained in:
Antonin Bourguignon 2012-11-27 17:54:01 +01:00
parent 34aa66449c
commit 26492d98d5
2 changed files with 10 additions and 7 deletions

View File

@ -732,7 +732,7 @@ class crm_lead(base_stage, format_address, osv.osv):
partner_ids[lead.id] = partner_id
return partner_ids
def allocate_salesman(self, cr, uid, ids, user_ids, team_id=False, context=None):
def allocate_salesman(self, cr, uid, ids, user_ids=None, team_id=False, context=None):
"""
Assign salesmen and salesteam to a batch of leads. If there are more
leads than salesmen, these salesmen will be assigned in round-robin.
@ -745,14 +745,18 @@ class crm_lead(base_stage, format_address, osv.osv):
:param int team_id: salesteam to assign
:return bool
"""
if user_ids is None:
user_ids = []
index = 0
for lead_id in ids:
value = {}
if team_id:
value['section_id'] = team_id
if index < len(user_ids):
if user_ids:
value['user_id'] = user_ids[index]
index += 1
# Cycle through user_ids
index = index+1 if (index < len(user_ids)-1) else 0
if value:
self.write(cr, uid, [lead_id], value, context=context)
return True

View File

@ -15,7 +15,6 @@
-
!python {model: crm.lead}: |
merge_id = self.search(cr, uid, [('partner_id','=', ref("base.res_partner_2"))])
assert merge_id, 'Fail to create Merge opportunity'
merge_data = self.browse(cr, uid, merge_id)[0]
assert merge_data.type == 'opportunity', 'Merged opportunity type didn\'t change'
assert merge_data.partner_id.id == ref("base.res_partner_2"), 'Partner missmatch'
assert merge_id, 'Fail to create merge opportunity wizard'
merge_result = self.browse(cr, uid, merge_id)[0]
assert merge_result.partner_id.id == ref("base.res_partner_2"), 'Partner missmatch'