[FIX] crm: fixed day_open and day_close computation (conditional store + be sure that date_open and date_closed fields are set)
This commit is contained in:
parent
622b52d262
commit
2ca875572a
|
@ -229,10 +229,12 @@ class crm_lead(format_address, osv.osv):
|
||||||
'user_id': fields.many2one('res.users', 'Salesperson', select=True, track_visibility='onchange'),
|
'user_id': fields.many2one('res.users', 'Salesperson', select=True, track_visibility='onchange'),
|
||||||
'referred': fields.char('Referred By'),
|
'referred': fields.char('Referred By'),
|
||||||
'date_open': fields.datetime('Assigned', readonly=True),
|
'date_open': fields.datetime('Assigned', readonly=True),
|
||||||
'day_open': fields.function(_compute_day, string='Days to Open', \
|
'day_open': fields.function(_compute_day, string='Days to Assign',
|
||||||
multi='day_open', type="float", store=True),
|
multi='day_open', type="float",
|
||||||
'day_close': fields.function(_compute_day, string='Days to Close', \
|
store={'crm.lead': (lambda self, cr, uid, ids, c={}: ids, ['date_open'], 10)}),
|
||||||
multi='day_open', type="float", store=True),
|
'day_close': fields.function(_compute_day, string='Days to Close',
|
||||||
|
multi='day_open', type="float",
|
||||||
|
store={'crm.lead': (lambda self, cr, uid, ids, c={}: ids, ['date_closed'], 10)}),
|
||||||
'date_last_stage_update': fields.datetime('Last Stage Update', select=True),
|
'date_last_stage_update': fields.datetime('Last Stage Update', select=True),
|
||||||
|
|
||||||
# Messaging and marketing
|
# Messaging and marketing
|
||||||
|
@ -887,6 +889,8 @@ class crm_lead(format_address, osv.osv):
|
||||||
context['default_type'] = vals.get('type')
|
context['default_type'] = vals.get('type')
|
||||||
if vals.get('section_id') and not context.get('default_section_id'):
|
if vals.get('section_id') and not context.get('default_section_id'):
|
||||||
context['default_section_id'] = vals.get('section_id')
|
context['default_section_id'] = vals.get('section_id')
|
||||||
|
if vals.get('user_id'):
|
||||||
|
vals['date_open'] = fields.datetime.now()
|
||||||
|
|
||||||
# context: no_log, because subtype already handle this
|
# context: no_log, because subtype already handle this
|
||||||
create_context = dict(context, mail_create_nolog=True)
|
create_context = dict(context, mail_create_nolog=True)
|
||||||
|
@ -896,7 +900,9 @@ class crm_lead(format_address, osv.osv):
|
||||||
# stage change: update date_last_stage_update
|
# stage change: update date_last_stage_update
|
||||||
if 'stage_id' in vals:
|
if 'stage_id' in vals:
|
||||||
vals['date_last_stage_update'] = fields.datetime.now()
|
vals['date_last_stage_update'] = fields.datetime.now()
|
||||||
# stage change with new stage: update probability
|
if vals.get('user_id'):
|
||||||
|
vals['date_open'] = fields.datetime.now()
|
||||||
|
# stage change with new stage: update probability and date_closed
|
||||||
if vals.get('stage_id') and not vals.get('probability'):
|
if vals.get('stage_id') and not vals.get('probability'):
|
||||||
onchange_stage_values = self.onchange_stage_id(cr, uid, ids, vals.get('stage_id'), context=context)['value']
|
onchange_stage_values = self.onchange_stage_id(cr, uid, ids, vals.get('stage_id'), context=context)['value']
|
||||||
vals.update(onchange_stage_values)
|
vals.update(onchange_stage_values)
|
||||||
|
|
Loading…
Reference in New Issue