diff --git a/__init__.py b/__init__.py
index 2d75d81..088e8f8 100644
--- a/__init__.py
+++ b/__init__.py
@@ -22,12 +22,14 @@ def register():
prospect_trace.ScheduleCallStart,
prospect_trace.MakeCallStart,
prospect.ReassignProspectByOperatorStart,
+ prospect.ReassignProspectByProspectStart,
module='sale_opportunity_management', type_='model')
Pool.register(
prospect_trace.ScheduleCall,
prospect.AssignOperator,
prospect_trace.MakeCall,
prospect.ReassignProspectByOperator,
+ prospect.ReasignProspectByProspect,
module='sale_opportunity_management', type_='wizard')
Pool.register(
module='sale_opportunity_management', type_='report')
diff --git a/prospect.py b/prospect.py
index 02ae412..14070be 100644
--- a/prospect.py
+++ b/prospect.py
@@ -199,8 +199,8 @@ class ReassignProspectByOperator(Wizard):
'sale.prospect.reassign_by_operator.start',
'sale_opportunity_management.reassign_by_operator_start_view_form',
[Button("Cancel", 'end', 'tryton-cancel'),
- Button(
- "Reassign", 'reassign_by_operator', 'tryton-ok', default=True)])
+ Button("Reassign", 'reassign_by_operator', 'tryton-ok', default=True)
+ ])
reassign_by_operator = StateTransition()
@@ -221,3 +221,41 @@ class ReassignProspectByOperator(Wizard):
prospect.save()
return 'end'
+
+
+class ReassignProspectByProspectStart(ModelView):
+ 'Inicio de reasignación de un prospecto en específico'
+ __name__ = 'sale.prospect.reassign_by_prospect.start'
+
+ prospect = fields.Many2One('sale.prospect', 'Prospect', required=True)
+ new_operator = fields.Many2One('res.user', "New operator", required=True)
+
+
+class ReasignProspectByProspect(Wizard):
+ 'Reasignar un prospecto en específico a un nuevo operario'
+ __name__ = 'sale.prospect.reassign_by_prospect'
+
+ start = StateView(
+ 'sale.prospect.reassign_by_prospect.start',
+ 'sale_opportunity_management.reassign_by_prospect_start_view_form',
+ [Button("Cancel", 'end', 'tryton-cancel'),
+ Button("Reassign", 'reassign_by_prospect', 'tryton-ok', default=True)
+ ])
+
+ reassign_by_prospect = StateTransition()
+
+ def transition_reassign_by_prospect(self):
+ pool = Pool()
+ ProspectTrace = pool.get('sale.prospect_trace')
+
+ self.start.prospect.assigned_operator = self.start.new_operator
+
+ if self.start.prospect.prospect_trace:
+ prospect_trace, = ProspectTrace.search(
+ [('prospect', '=', self.start.prospect)])
+ prospect_trace.prospect_assigned_operator =\
+ self.start.new_operator
+ prospect_trace.save()
+
+ self.start.prospect.save()
+ return 'end'
diff --git a/prospect.xml b/prospect.xml
index 33b6303..c104baf 100644
--- a/prospect.xml
+++ b/prospect.xml
@@ -164,5 +164,11 @@ this repository contains the full copyright notices and license terms. -->
sequence="50"
id="menu_reassign_by_operator_wizard"
action="reassign_by_operator_wizard"/>
+
+