summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDenis Ledoux <dle@openerp.com>2013-11-13 18:53:44 +0100
committerDenis Ledoux <dle@openerp.com>2013-11-13 18:53:44 +0100
commite13b2b45f8709072cd871defdff16571d83151e2 (patch)
treede6f4fe300dbddcf84e4d0242a9a7b337b5991b5
parent96726214f926443da204d85e3e4ca24f842f457c (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.py16
-rw-r--r--addons/crm_partner_assign/crm_lead_view.xml26
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>