forked from Mapan/odoo17e
45 lines
1.7 KiB
Python
45 lines
1.7 KiB
Python
# -*- coding: utf-8 -*-
|
|
# Part of Odoo. See LICENSE file for full copyright and licensing details.
|
|
|
|
from odoo import api, fields, models
|
|
|
|
|
|
class Lead(models.Model):
|
|
_inherit = 'crm.lead'
|
|
|
|
won_status = fields.Selection([
|
|
('won', 'Won'),
|
|
('lost', 'Lost'),
|
|
('pending', 'Pending'),
|
|
], string='Is Won', compute='_compute_won_status', store=True)
|
|
|
|
days_to_convert = fields.Float('Days To Convert', compute='_compute_days_to_convert', store=True)
|
|
|
|
days_exceeding_closing = fields.Float('Exceeded Closing Days', compute='_compute_days_exceeding_closing', store=True)
|
|
|
|
@api.depends('active', 'probability')
|
|
def _compute_won_status(self):
|
|
for lead in self:
|
|
if lead.active and lead.probability == 100:
|
|
lead.won_status = 'won'
|
|
elif not lead.active and lead.probability == 0:
|
|
lead.won_status = 'lost'
|
|
else:
|
|
lead.won_status = 'pending'
|
|
|
|
@api.depends('date_conversion', 'create_date')
|
|
def _compute_days_to_convert(self):
|
|
for lead in self:
|
|
if lead.date_conversion:
|
|
lead.days_to_convert = (fields.Datetime.from_string(lead.date_conversion) - fields.Datetime.from_string(lead.create_date)).days
|
|
else:
|
|
lead.days_to_convert = 0
|
|
|
|
@api.depends('date_deadline', 'date_closed')
|
|
def _compute_days_exceeding_closing(self):
|
|
for lead in self:
|
|
if lead.date_closed and lead.date_deadline:
|
|
lead.days_exceeding_closing = (fields.Datetime.from_string(lead.date_deadline) - fields.Datetime.from_string(lead.date_closed)).days
|
|
else:
|
|
lead.days_exceeding_closing = 0
|