refactor(Asignación de prospectos a operarios): Se extrae clase

This commit is contained in:
Camilo Gonzalez 2024-01-28 14:00:01 -05:00
parent 6f69709823
commit 950b9350cc

View File

@ -27,36 +27,10 @@ class AssignOperator(Wizard):
_prospects = self.start.prospects
_operator = self.start.operator
self._assign_operator(_prospects, _operator)
Assign.assign_operator(_prospects, _operator)
return 'end'
def _assign_operator(self, prospects, operator):
for prospect in prospects:
prospect.assigned_operator = operator
prospect.state = 'assigned'
prospect_trace = self._create_prospect_trace(prospect)
prospect.prospect_trace = prospect_trace
prospect.save()
def _create_prospect_trace(self, prospect: Prospect) -> ProspectTrace:
pool = Pool()
ProspectTrace = pool.get('sale.prospect_trace')
prospect_trace = ProspectTrace(
prospect=prospect,
prospect_city=prospect.city,
prospect_business_unit=prospect.business_unit,
prospect_assigned_operator=prospect.assigned_operator,
prospect_contacts=prospect.contact_methods
)
prospect_trace.save()
return prospect_trace
class AssignOperatorStart(ModelView):
'Inicio de asignación de operador'
@ -95,3 +69,32 @@ class AssignOperatorStart(ModelView):
[('state', '=', 'unassigned'),
('business_unit', '=', self.business_unit)],
limit=self.prospects_chunk)
class Assign():
@classmethod
def assign_operator(cls, prospects, operator):
for prospect in prospects:
prospect.assigned_operator = operator
prospect.state = 'assigned'
prospect_trace = cls._create_trace_to_prospect(prospect)
prospect.prospect_trace = prospect_trace
prospect.save()
@staticmethod
def _create_trace_to_prospect(prospect: Prospect) -> ProspectTrace:
pool = Pool()
ProspectTrace = pool.get('sale.prospect_trace')
prospect_trace = ProspectTrace(
prospect=prospect,
prospect_city=prospect.city,
prospect_business_unit=prospect.business_unit,
prospect_assigned_operator=prospect.assigned_operator,
prospect_contacts=prospect.contact_methods
)
prospect_trace.save()
return prospect_trace