|
|
today = fields.Date.context_today(self)
for rec in self:
rec.state = False
if rec.display_type:
continue
if rec.is_canceled:
rec.state = "canceled"
continue
if rec.date_start and rec.date_start > today:
# Before period
rec.state = "upcoming"
continue
if (
rec.date_start
and rec.date_start <= today
and (not rec.date_end or rec.date_end >= today)
):
# In period
if (
rec.termination_notice_date
and rec.termination_notice_date < today
and not rec.is_auto_renew
and not rec.manual_renew_needed
):
rec.state = "upcoming-close"
else:
rec.state = "in-progress"
continue
if rec.date_end and rec.date_end < today:
# After
if (
rec.manual_renew_needed
and not rec.successor_contract_line_id
or rec.is_auto_renew
):
rec.state = "to-renew"
else:
rec.state = "closed"
|
|