diff options
| author | Denis Ledoux <dle@openerp.com> | 2013-11-13 18:53:44 +0100 |
|---|---|---|
| committer | Denis Ledoux <dle@openerp.com> | 2013-11-13 18:53:44 +0100 |
| commit | e13b2b45f8709072cd871defdff16571d83151e2 (patch) | |
| tree | de6f4fe300dbddcf84e4d0242a9a7b337b5991b5 | |
| parent | 96726214f926443da204d85e3e4ca24f842f457c (diff) | |
[ADD]crm_partner_assign: ir value Assign salesman of assigned partner in leads
bzr revid: dle@openerp.com-20131113175344-zxhh79sxyzb8aglw
| -rw-r--r-- | addons/crm_partner_assign/crm_lead.py | 16 | ||||
| -rw-r--r-- | addons/crm_partner_assign/crm_lead_view.xml | 26 |
2 files changed, 42 insertions, 0 deletions
diff --git a/addons/crm_partner_assign/crm_lead.py b/addons/crm_partner_assign/crm_lead.py index 37f4b9aedff..5b1d1546c71 100644 --- a/addons/crm_partner_assign/crm_lead.py +++ b/addons/crm_partner_assign/crm_lead.py @@ -42,3 +42,19 @@ class crm_lead(osv.osv): def case_disinterested(self, cr, uid, ids, context=None): return self.get_interested_action(cr, uid, False, context=context) + + def assign_salesman_of_assigned_partner(self, cr, uid, ids, context=None): + salesmans_leads = {} + for lead in self.browse(cr, uid, ids, context=context): + if (lead.probability > 0 and lead.probability < 100) or lead.stage_id.sequence == 1: + if lead.partner_assigned_id and lead.partner_assigned_id.user_id and lead.partner_assigned_id.user_id != lead.user_id: + salesman_id = lead.partner_assigned_id.user_id.id + if salesmans_leads.get(salesman_id): + salesmans_leads[salesman_id].append(lead.id) + else: + salesmans_leads[salesman_id] = [lead.id] + for salesman_id, lead_ids in salesmans_leads.items(): + salesteam_id = self.on_change_user(cr, uid, lead_ids, salesman_id, context=None)['value'].get('section_id') + import pudb + pudb.set_trace() + self.write(cr, uid, lead_ids, {'user_id': salesman_id, 'section_id': salesteam_id}, context=context) diff --git a/addons/crm_partner_assign/crm_lead_view.xml b/addons/crm_partner_assign/crm_lead_view.xml index 7550396e886..faa961d92b5 100644 --- a/addons/crm_partner_assign/crm_lead_view.xml +++ b/addons/crm_partner_assign/crm_lead_view.xml @@ -137,5 +137,31 @@ </field> </record> + <record id="action_assign_salesman_according_assigned_partner" model="ir.actions.server"> + <field name="name">Assign salesman of assigned partner</field> + <field name="model_id" ref="model_crm_lead"/> + <field name="state">code</field> + <field name="code"> + if context.get('active_model') == 'crm.lead': + ids = [] + if context.get('active_domain'): + ids = self.search(cr, uid, context['active_domain'], context=context) + elif context.get('active_ids'): + ids = context['active_ids'] + if ids: + self.assign_salesman_of_assigned_partner(cr, uid, ids, context=context) + </field> + <field name="groups_id" eval="[(4,ref('base.group_sale_manager'))]"/> + </record> + + <record model="ir.values" id="ir_assign_salesman_according_assigned_partner"> + <field name="model_id" ref="model_crm_lead" /> + <field name="name">Assign salesman of assigned partner</field> + <field name="key2">client_action_multi</field> + <field eval="'ir.actions.server,%d'%action_assign_salesman_according_assigned_partner" name="value"/> + <field name="key">action</field> + <field name="model">crm.lead</field> + </record> + </data> </openerp> |
