You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
37 lines
1.3 KiB
37 lines
1.3 KiB
from dateutil.relativedelta import relativedelta
|
|
|
|
from odoo import api, fields, models
|
|
|
|
|
|
class ResPartnerIdNumber(models.Model):
|
|
_name = "res.partner.id_number"
|
|
_inherit = ["res.partner.id_number", "mail.thread", "mail.activity.mixin"]
|
|
|
|
notification_date = fields.Date(string="Notification Date")
|
|
|
|
@api.model
|
|
def send_notification(self):
|
|
today = fields.date.today()
|
|
rec_ids = self.search(
|
|
[
|
|
("category_id.send_notification", "=", True),
|
|
("category_id.days_before_expire", ">", 0),
|
|
("status", "in", ["open", "pending"]),
|
|
]
|
|
)
|
|
for rec in rec_ids:
|
|
days_before_expire = rec.category_id.days_before_expire
|
|
date_from = today - relativedelta(days=days_before_expire)
|
|
if (
|
|
rec.valid_until
|
|
and days_before_expire
|
|
and rec.valid_until >= date_from
|
|
and rec.valid_until <= today
|
|
and rec.category_id.email_template_id
|
|
and not rec.notification_date
|
|
):
|
|
rec.notification_date = today
|
|
rec.category_id.email_template_id.send_mail(
|
|
rec.id,
|
|
force_send=True,
|
|
)
|