1
0
forked from Mapan/odoo17e
odoo17e-kedaikipas58/addons/crm_enterprise/models/crm_lead.py
2024-12-10 09:04:09 +07:00

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