def write(self, vals):
status_history_obj = self.env['hc.payment.notice.status.history']
fm_status_obj = self.env['hc.vs.fm.status']
res = super(PaymentNotice, self).write(vals)
status_history_record_ids = status_history_obj.search([('end_date','=', False)])
if status_history_record_ids:
if vals.get('status_id') and status_history_record_ids[0].status != vals.get('status_id'):
for status_history in status_history_record_ids:
status_history.end_date = datetime.strftime(datetime.today(), DTF)
time_diff = datetime.today() - datetime.strptime(status_history.start_date, DTF)
if time_diff:
days = str(time_diff).split(',')
if days and len(days) > 1:
status_history.time_diff_day = str(days[0])
times = str(days[1]).split(':')
if times and times > 1:
status_history.time_diff_hour = str(times[0])
status_history.time_diff_min = str(times[1])
status_history.time_diff_sec = str(times[2])
else:
times = str(time_diff).split(':')
if times and times > 1:
status_history.time_diff_hour = str(times[0])
status_history.time_diff_min = str(times[1])
status_history.time_diff_sec = str(times[2])
fm_status = fm_status_obj.browse(vals.get('status_id'))
status_history_vals = {
'payment_notice_id': self.id,
'status': fm_status.name,
'start_date': datetime.today()
}
if vals.get('status_id') == 'entered-in-error':
status_id_history_vals.update({'end_date': datetime.today()})
status_history_obj.create(status_history_vals)
return res
评论列表
文章目录