email_tem

This commit is contained in:
esam 2025-12-28 18:21:19 -05:00
parent 512708528e
commit 7a071b698e
2 changed files with 48 additions and 29 deletions

View File

@ -303,13 +303,16 @@ class AnnualPurchaseRequest(models.Model):
if manager and manager.user_id and manager.user_id.email: if manager and manager.user_id and manager.user_id.email:
try: try:
template = self.env.ref('odex25_annual_purchase.email_template_direct_manager_x') template = self.env.ref('odex25_annual_purchase.email_template_direct_manager_x')
template.send_mail(rec.id, force_send=True)
rec.message_post(body=_("Email sent to Direct Manager: %s") % manager.user_id.name)
except Exception as e:
rec.message_post(body=_("Failed to send email: %s") % str(e))
else:
rec.message_post(body=_("No direct manager email found"))
mail_values = {
'model': None,
'res_id': None,
}
template.send_mail(rec.id, force_send=True, email_values=mail_values)
except Exception as e:
pass
else:
pass
def action_to_draft(self): def action_to_draft(self):
for rec in self: for rec in self:
rec.write({'state': 'draft'}) rec.write({'state': 'draft'})
@ -330,13 +333,17 @@ class AnnualPurchaseRequest(models.Model):
template = self.env.ref('odex25_annual_purchase.email_template_purchase_manager') template = self.env.ref('odex25_annual_purchase.email_template_purchase_manager')
first_manager = managers[0] first_manager = managers[0]
cc_emails = ','.join(managers[1:].mapped('email')) if len(managers) > 1 else '' cc_emails = ','.join(managers[1:].mapped('email')) if len(managers) > 1 else ''
mail_values = {
'model': None,
'res_id': None,
}
template.with_context( template.with_context(
default_email_to=first_manager.email, default_email_to=first_manager.email,
default_email_cc=cc_emails default_email_cc=cc_emails
).send_mail(rec.id, force_send=True) ).send_mail(rec.id, force_send=True,email_values=mail_values)
rec.message_post(body=_("Email sent to %s Purchase Manager(s)") % len(managers))
except Exception as e: except Exception as e:
rec.message_post(body=_("Failed to send email: %s") % str(e)) pass
else: else:
raise UserError( raise UserError(
_("Sorry, The Approval For The Direct Manager '%s' Only !") % (rec.employee_id.parent_id.name)) _("Sorry, The Approval For The Direct Manager '%s' Only !") % (rec.employee_id.parent_id.name))
@ -352,13 +359,16 @@ class AnnualPurchaseRequest(models.Model):
template = self.env.ref('odex25_annual_purchase.email_template_purchase_manager') template = self.env.ref('odex25_annual_purchase.email_template_purchase_manager')
first_manager = managers[0] first_manager = managers[0]
cc_emails = ','.join(managers[1:].mapped('email')) if len(managers) > 1 else '' cc_emails = ','.join(managers[1:].mapped('email')) if len(managers) > 1 else ''
mail_values = {
'model': None,
'res_id': None,
}
template.with_context( template.with_context(
default_email_to=first_manager.email, default_email_to=first_manager.email,
default_email_cc=cc_emails default_email_cc=cc_emails
).send_mail(rec.id, force_send=True) ).send_mail(rec.id, force_send=True,email_values=mail_values)
rec.message_post(body=_("Email sent to %s Purchase Manager(s)") % len(managers))
except Exception as e: except Exception as e:
rec.message_post(body=_("Failed to send email: %s") % str(e)) pass
def action_manager_reject(self): def action_manager_reject(self):
self.ensure_one() self.ensure_one()
@ -383,19 +393,19 @@ class AnnualPurchaseRequest(models.Model):
template = self.env.ref('odex25_annual_purchase.email_template_committee_members') template = self.env.ref('odex25_annual_purchase.email_template_committee_members')
sent_count = 0 sent_count = 0
mail_values = {
'model': None,
'res_id': None,
}
for member in rec.committe_members: for member in rec.committe_members:
if member.email: if member.email:
try: try:
template.with_context( template.with_context(
default_email_to=member.email default_email_to=member.email
).send_mail(rec.id, force_send=True) ).send_mail(rec.id, force_send=True,email_values=mail_values)
sent_count += 1 sent_count += 1
except Exception as e: except Exception as e:
rec.message_post(body=_("Failed to send to %s: %s") % (member.name, str(e))) pass
rec.message_post(
body=_("Emails sent to %s/%s committee members") % (sent_count, len(rec.committe_members)))
else: else:
raise UserError("لا يمكن الإرسال إلى اللجنة لأن عدد RFQs يساوي صفر.") raise UserError("لا يمكن الإرسال إلى اللجنة لأن عدد RFQs يساوي صفر.")
@ -425,14 +435,17 @@ class AnnualPurchaseRequest(models.Model):
try: try:
template = self.env.ref('odex25_annual_purchase.email_template_general_manager') template = self.env.ref('odex25_annual_purchase.email_template_general_manager')
first_manager = managers[0] first_manager = managers[0]
mail_values = {
'model': None,
'res_id': None,
}
cc_emails = ','.join(managers[1:].mapped('email')) if len(managers) > 1 else '' cc_emails = ','.join(managers[1:].mapped('email')) if len(managers) > 1 else ''
template.with_context( template.with_context(
default_email_to=first_manager.email, default_email_to=first_manager.email,
default_email_cc=cc_emails default_email_cc=cc_emails
).send_mail(self.id, force_send=True) ).send_mail(self.id, force_send=True,email_values=mail_values)
self.message_post(body=_("Email sent to %s General Manager(s)") % len(managers))
except Exception as e: except Exception as e:
self.message_post(body=_("Failed to send email: %s") % str(e)) pass
else: else:
self.write({'state': 'purchase'}) self.write({'state': 'purchase'})

View File

@ -434,15 +434,18 @@ class PurchaseRFQ(models.Model):
try: try:
template = self.env.ref('odex25_annual_purchase.email_template_services_manager') template = self.env.ref('odex25_annual_purchase.email_template_services_manager')
first_manager = managers[0] first_manager = managers[0]
mail_values = {
'model': None,
'res_id': None,
}
cc_emails = ','.join(managers[1:].mapped('email')) if len(managers) > 1 else '' cc_emails = ','.join(managers[1:].mapped('email')) if len(managers) > 1 else ''
template.with_context( template.with_context(
default_email_to=first_manager.email, default_email_to=first_manager.email,
default_email_cc=cc_emails default_email_cc=cc_emails
).send_mail(rec.source_request_ref.id, force_send=True) ).send_mail(rec.source_request_ref.id, force_send=True,email_values=mail_values)
rec.source_request_ref.message_post(
body=_("Email sent to %s Services Manager(s)") % len(managers))
except Exception as e: except Exception as e:
rec.source_request_ref.message_post(body=_("Failed to send email: %s") % str(e)) pass
elif rec.source_request_ref.seo_approve: elif rec.source_request_ref.seo_approve:
rec.source_request_ref.state = 'ceo' rec.source_request_ref.state = 'ceo'
gm_group = self.env.ref('hr_base.group_general_manager') gm_group = self.env.ref('hr_base.group_general_manager')
@ -454,15 +457,18 @@ class PurchaseRFQ(models.Model):
try: try:
template = self.env.ref('odex25_annual_purchase.email_template_general_manager') template = self.env.ref('odex25_annual_purchase.email_template_general_manager')
first_manager = managers[0] first_manager = managers[0]
mail_values = {
'model': None,
'res_id': None,
}
cc_emails = ','.join(managers[1:].mapped('email')) if len(managers) > 1 else '' cc_emails = ','.join(managers[1:].mapped('email')) if len(managers) > 1 else ''
template.with_context( template.with_context(
default_email_to=first_manager.email, default_email_to=first_manager.email,
default_email_cc=cc_emails default_email_cc=cc_emails
).send_mail(rec.source_request_ref.id, force_send=True) ).send_mail(rec.source_request_ref.id, force_send=True,email_values=mail_values)
rec.source_request_ref.message_post(
body=_("Email sent to %s General Manager(s)") % len(managers))
except Exception as e: except Exception as e:
rec.source_request_ref.message_post(body=_("Failed to send email: %s") % str(e)) pass
else: else:
rec.source_request_ref.state = 'purchase' rec.source_request_ref.state = 'purchase'
else: else: