fix: Un seguimiento a prospecto solo debe tener máximo una llamada agendada, closed #28
All checks were successful
ci/woodpecker/push/woodpecker Pipeline was successful

This commit is contained in:
Camilo Gonzalez 2023-08-13 20:31:59 -05:00
parent 452b97cdf9
commit 1d38d797c5
7 changed files with 24 additions and 22 deletions

View File

@ -8,4 +8,4 @@ class PendingCall(ModelSQL, ModelView):
__name__ = "sale.pending_call" __name__ = "sale.pending_call"
date = fields.Date('Date', required=True) date = fields.Date('Date', required=True)
prospect_trace = fields.Many2One('sale.prospect_trace', 'Prospect trace') # prospect_trace = fields.Many2One('sale.prospect_trace', 'Prospect trace')

View File

@ -18,8 +18,9 @@ class ProspectTrace(DeactivableMixin, ModelSQL, ModelView):
states={'readonly': True}) states={'readonly': True})
calls = fields.One2Many('sale.call', 'prospect_trace', 'Calls') calls = fields.One2Many('sale.call', 'prospect_trace', 'Calls')
pending_calls = fields.One2Many( # pending_calls = fields.One2Many(
'sale.pending_call', 'prospect_trace', 'Pending calls') # 'sale.pending_call', 'prospect_trace', 'Pending calls')
pending_call = fields.Many2One('sale.pending_call', 'Pending call')
current_interest = fields.Selection( current_interest = fields.Selection(
Interest.get_interest_levels(), 'Current interest') Interest.get_interest_levels(), 'Current interest')
@ -35,7 +36,8 @@ class ProspectTrace(DeactivableMixin, ModelSQL, ModelView):
def default_state(cls): def default_state(cls):
return 'open' return 'open'
@fields.depends('calls', 'pending_calls', 'current_interest', 'state') # 'pending_calls'
@fields.depends('calls', 'pending_call', 'current_interest', 'state')
def on_change_calls(self): def on_change_calls(self):
if not self.calls: if not self.calls:
return return
@ -51,14 +53,13 @@ class ProspectTrace(DeactivableMixin, ModelSQL, ModelView):
first_call_type = CallTypes.get_call_types()[0][0] first_call_type = CallTypes.get_call_types()[0][0]
last_call.call_type = first_call_type last_call.call_type = first_call_type
there_is_a_pending_call = len(self.pending_calls) >= 1 if self.pending_call:
if there_is_a_pending_call: self.pending_call = None
self.pending_calls = None
self.state = 'open' self.state = 'open'
@fields.depends('pending_calls', 'state') @fields.depends('pending_call', 'state')
def on_change_pending_calls(self): def on_change_pending_call(self):
if len(self.pending_calls) >= 1: if self.pending_call:
self.state = 'with_pending_calls' self.state = 'with_pending_calls'
@fields.depends('prospect', 'prospect_city', 'prospect_contact') @fields.depends('prospect', 'prospect_city', 'prospect_contact')

View File

@ -200,20 +200,21 @@ Verificar estado final del seguimiento del prospecto y sus llamadas
'open' 'open'
Programar una próxima llamada pendiente al seguimiento de prospecto:: Programar una próxima llamada pendiente al seguimiento de prospecto::
>>> pending_call4 = prospect_trace.pending_calls.new(date = date.today() + timedelta(days=7)) >>> PendingCall = Model.get('sale.pending_call')
>>> prospect_trace.save() >>> pending_call = PendingCall()
>>> pending_call.date = date(year=2023, month=8, day=8)
>>> prospect_trace.pending_calls >>> prospect_trace.pending_call = pending_call
[proteus.Model.get('sale.pending_call')(1)]
>>> prospect_trace.pending_call.date
datetime.date(2023, 8, 8)
>>> prospect_trace.state >>> prospect_trace.state
'with_pending_calls' 'with_pending_calls'
Crear una llamada agendada previamente: Crear una llamada agendada previamente:
>>> call4 = prospect_trace.calls.new(description='fourth call', interest='3') >>> call4 = prospect_trace.calls.new(description='fourth call', interest='3')
>>> prospect_trace.pending_calls >>> prospect_trace.pending_call
[]
>>> prospect_trace.state >>> prospect_trace.state
'open' 'open'

View File

@ -5,6 +5,6 @@ this repository contains the full copyright notices and license terms. -->
<label name="date"/> <label name="date"/>
<field name="date"/> <field name="date"/>
<label name="prospect_trace"/> <!-- <label name="prospect_trace"/>
<field name="prospect_trace"/> <field name="prospect_trace"/> -->
</form> </form>

View File

@ -3,5 +3,5 @@
this repository contains the full copyright notices and license terms. --> this repository contains the full copyright notices and license terms. -->
<tree> <tree>
<field name="date" expand="1"/> <field name="date" expand="1"/>
<field name="prospect_trace" expand="1"/> <!-- <field name="prospect_trace" expand="1"/> -->
</tree> </tree>

View File

@ -25,7 +25,7 @@ this repository contains the full copyright notices and license terms. -->
</page> </page>
</notebook> </notebook>
<field name="pending_calls" colspan="6"/> <!-- <field name="pending_calls" colspan="6"/> -->
<label name="state"/> <label name="state"/>
<field name="state"/> <field name="state"/>
</form> </form>

View File

@ -7,5 +7,5 @@ this repository contains the full copyright notices and license terms. -->
<field name="prospect_city" expand="1"/> <field name="prospect_city" expand="1"/>
<field name="current_interest" expand="1"/> <field name="current_interest" expand="1"/>
<field name="calls" expand="1"/> <field name="calls" expand="1"/>
<field name="pending_calls" expand="1"/> <!-- <field name="pending_calls" expand="1"/> -->
</tree> </tree>