تخطي للذهاب إلى المحتوى
القائمة
لقد تم الإبلاغ عن هذا السؤال
2614 أدوات العرض

Hello,

I have made some code for document expiry module, that when notification date comes then the email will be triggered  till the expiry date laps. A person can stop the email notification send for any particular document by marking check on Disable Notification check box. It's working fine but fails at one place when Notification date is not come and If Expiry Date laps then for both these case mail is triggered, but it should not be happened.

Here is my code:

class Employee(models.Model):

_inherit = 'hr.employee'

document_lines_ids = fields.One2many('document.lines', 'employee_id', string='Document Lines')

@api.model

def scheduler_document_expiration(self):

employee_obj = self.env['hr.employee'].search([])

template_id = self.env['ir.model.data'].get_object_reference('document_expiry_control', 'email_template_document_expiration')[1]

template_browse = self.env['mail.template'].browse(template_id)

DATE_FORMAT = '%Y-%m-%d'

today_date = datetime.strptime(

str(datetime.today().date()), DATE_FORMAT).date()

if template_browse:

for data in employee_obj:

documents = data.document_lines_ids.filtered(lambda r: not r.disable_notification)

for lines in documents.filtered(lambda r: today_date >= datetime.strptime(

str(r.notification_from), DATE_FORMAT).date() and today_date <= datetime.strptime(

str(r.expiry_date), DATE_FORMAT).date()):

if any(documents.filtered(lambda r: today_date >= datetime.strptime(

str(r.notification_from), DATE_FORMAT).date() and today_date <= datetime.strptime(

str(r.expiry_date), DATE_FORMAT).date())):

values = template_browse.generate_email(data.id, fields=None)

mail_mail_obj = self.env['mail.mail']

msg_id = mail_mail_obj.create(values)

if msg_id:

msg_id.send()

return True

Template:

<data noupdate="1">

<record id="email_template_document_expiration" model="mail.template">

<field name="name">Document Expiration Notification</field>

<field name="email_from">abc@gmail.com</field>

<field name="subject">Document Expiration</field>

<field name="email_to">xyz@gmail.com</field>

<field name="lang">${object.lang}</field>

<field name="model_id" ref="document_expiry_control.model_hr_employee"/>

<field name="auto_delete" eval="True"/>

<field name="body_html"><![CDATA[

<div style="font-family: 'Lucica Grande', Ubuntu, Arial, Verdana, sans-serif; font-size: 12px; color: rgb(34, 34, 34); background-color: #FFF; ">

<p>Hi,</p>

% for data in object.document_lines_ids:

% if data.disable_notification == False:

<p>The ${data.document_type.name} of ${object.name} is going to expire on ${data.expiry_date}.</p>

% endif

% endfor

<p>Kindly proceed with the renewal.</P>

<p>Best Regards,</p>

</div>

]]></field>

</record>

</data>

الصورة الرمزية
إهمال
المنشورات ذات الصلة الردود أدوات العرض النشاط
1
يناير 22
28953
1
يونيو 18
15443
1
مارس 18
4165
2
أكتوبر 23
6531
3
أكتوبر 23
6025