Anto has proposed merging 
lp:~openerp-dev/openobject-addons/trunk-bug-1065751-abo into 
lp:openobject-addons.

Requested reviews:
  OpenERP Core Team (openerp)
Related bugs:
  Bug #1065751 in OpenERP Addons: "Lead -> Opportunity conversion creates 
customer duplicate"
  https://bugs.launchpad.net/openobject-addons/+bug/1065751

For more details, see:
https://code.launchpad.net/~openerp-dev/openobject-addons/trunk-bug-1065751-abo/+merge/133292
-- 
https://code.launchpad.net/~openerp-dev/openobject-addons/trunk-bug-1065751-abo/+merge/133292
Your team OpenERP R&D Team is subscribed to branch 
lp:~openerp-dev/openobject-addons/trunk-bug-1065751-abo.
=== modified file 'crm/crm_lead.py'
--- crm/crm_lead.py	2012-11-02 17:37:01 +0000
+++ crm/crm_lead.py	2012-11-07 16:41:32 +0000
@@ -610,9 +610,9 @@
         }
 
     def convert_opportunity(self, cr, uid, ids, partner_id, user_ids=False, section_id=False, context=None):
-        partner = self.pool.get('res.partner')
         customer = False
         if partner_id:
+            partner = self.pool.get('res.partner')
             customer = partner.browse(cr, uid, partner_id, context=context)
         for lead in self.browse(cr, uid, ids, context=context):
             if lead.state in ('done', 'cancel'):
@@ -676,19 +676,17 @@
 
     def convert_partner(self, cr, uid, ids, action='create', partner_id=False, context=None):
         """
-        This function convert partner based on action.
+        Convert partner based on action.
         if action is 'create', create new partner with contact and assign lead to new partner_id.
         otherwise assign lead to specified partner_id
         """
         if context is None:
             context = {}
         partner_ids = {}
-        force_partner_id = partner_id
         for lead in self.browse(cr, uid, ids, context=context):
             if action == 'create':
                 if not partner_id:
                     partner_id = self._create_lead_partner(cr, uid, lead, context)
-                partner_id = force_partner_id or self._create_lead_partner(cr, uid, lead, context=context)
             self._lead_set_partner(cr, uid, lead, partner_id, context=context)
             partner_ids[lead.id] = partner_id
         return partner_ids

=== modified file 'crm/wizard/crm_lead_to_opportunity.py'
--- crm/wizard/crm_lead_to_opportunity.py	2012-09-26 15:42:32 +0000
+++ crm/wizard/crm_lead_to_opportunity.py	2012-11-07 16:41:32 +0000
@@ -175,12 +175,19 @@
         return res
 
     def _convert_opportunity(self, cr, uid, ids, vals, context=None):
+        """
+        When "massively" (more than one at a time) converting leads to
+        opportunities, check the salesteam_id and salesmen_ids and update
+        the values before calling super.
+        """
+        if context is None:
+            context = {}
         data = self.browse(cr, uid, ids, context=context)[0]
         salesteam_id = data.section_id and data.section_id.id or False
-        salesman = []
+        salesmen_ids = []
         if data.user_ids:
-            salesman = [x.id for x in data.user_ids]
-        vals.update({'user_ids': salesman, 'section_id': salesteam_id})
+            salesmen_ids = [x.id for x in data.user_ids]
+        vals.update({'user_ids': salesmen_ids, 'section_id': salesteam_id})
         return super(crm_lead2opportunity_mass_convert, self)._convert_opportunity(cr, uid, ids, vals, context=context)
 
     def mass_convert(self, cr, uid, ids, context=None):

=== modified file 'crm/wizard/crm_lead_to_partner.py'
--- crm/wizard/crm_lead_to_partner.py	2012-09-26 08:54:54 +0000
+++ crm/wizard/crm_lead_to_partner.py	2012-11-07 16:41:32 +0000
@@ -35,7 +35,7 @@
     }
     def view_init(self, cr, uid, fields, context=None):
         """
-        This function checks for precondition before wizard executes
+        Check for precondition before wizard executes.
         """
         if context is None:
             context = {}
@@ -69,22 +69,19 @@
         return partner_id
 
     def default_get(self, cr, uid, fields, context=None):
-        """
-        This function gets default values
-        """
-        res = super(crm_lead2partner, self).default_get(cr, uid, fields, context=context)        
+        res = super(crm_lead2partner, self).default_get(cr, uid, fields, context=context)
         partner_id = self._select_partner(cr, uid, context=context)
 
         if 'partner_id' in fields:
             res.update({'partner_id': partner_id})
         if 'action' in fields:
             res.update({'action': partner_id and 'exist' or 'create'})
-            
+
         return res
 
     def open_create_partner(self, cr, uid, ids, context=None):
         """
-        This function Opens form of create partner.
+        Open form of create partner.
         """
         view_obj = self.pool.get('ir.ui.view')
         view_id = view_obj.search(cr, uid, [('model', '=', self._name), \
@@ -101,21 +98,21 @@
 
     def _create_partner(self, cr, uid, ids, context=None):
         """
-        This function Creates partner based on action.
+        Create partner based on action.
         """
         if context is None:
             context = {}
         lead = self.pool.get('crm.lead')
-        lead_ids = context and context.get('active_ids') or []
+        lead_ids = context.get('active_ids', [])
         data = self.browse(cr, uid, ids, context=context)[0]
         partner_id = data.partner_id and data.partner_id.id or False
         return lead.convert_partner(cr, uid, lead_ids, data.action, partner_id, context=context)
 
     def make_partner(self, cr, uid, ids, context=None):
         """
-        This function Makes partner based on action.
+        Make a partner based on action.
+        Only called from form view, so only meant to convert one lead at a time.
         """
-        # Only called from Form view, so only meant to convert  one Lead. 
         lead_id = context and context.get('active_id') or False
         partner_ids_map = self._create_partner(cr, uid, ids, context=context)
         return self.pool.get('res.partner').redirect_partner_form(cr, uid, partner_ids_map.get(lead_id, False), context=context)

_______________________________________________
Mailing list: https://launchpad.net/~openerp-dev-gtk
Post to     : [email protected]
Unsubscribe : https://launchpad.net/~openerp-dev-gtk
More help   : https://help.launchpad.net/ListHelp

Reply via email to