From 950b9350cc399f1a904f39efd83071e053c924a0 Mon Sep 17 00:00:00 2001 From: camilogs Date: Sun, 28 Jan 2024 14:00:01 -0500 Subject: [PATCH] =?UTF-8?q?refactor(Asignaci=C3=B3n=20de=20prospectos=20a?= =?UTF-8?q?=20operarios):=20Se=20extrae=20clase?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- core/Prospect/wizards/assign_operator.py | 57 +++++++++++++----------- 1 file changed, 30 insertions(+), 27 deletions(-) diff --git a/core/Prospect/wizards/assign_operator.py b/core/Prospect/wizards/assign_operator.py index a3492bd..4868ed0 100644 --- a/core/Prospect/wizards/assign_operator.py +++ b/core/Prospect/wizards/assign_operator.py @@ -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