diff --git a/odex25_purchase/odex25_annual_purchase/i18n/ar_001.po b/odex25_purchase/odex25_annual_purchase/i18n/ar_001.po
index 7ccd40633..bfa1a1603 100644
--- a/odex25_purchase/odex25_annual_purchase/i18n/ar_001.po
+++ b/odex25_purchase/odex25_annual_purchase/i18n/ar_001.po
@@ -1451,3 +1451,8 @@ msgstr ""
"
\n"
"\n"
" "
+
+#. module: odex25_annual_purchase
+#: model:ir.model.fields.selection,name:odex25_annual_purchase.selection__odx_annual_request__state__manprocurement
+msgid "Purchasing Manager"
+msgstr "رئيس قسم المشتريات"
diff --git a/odex25_purchase/odex25_annual_purchase/models/annual_request.py b/odex25_purchase/odex25_annual_purchase/models/annual_request.py
index 33ad98445..f220320d3 100644
--- a/odex25_purchase/odex25_annual_purchase/models/annual_request.py
+++ b/odex25_purchase/odex25_annual_purchase/models/annual_request.py
@@ -5,7 +5,7 @@ from datetime import datetime
STATES = [
('draft', 'Draft'),
- ('to_manager', 'Waiting Manager'),
+ ('manprocurement', 'Purchasing Manager'),
('rejected_by_committee', 'Rejected by Committee'),
('procurement', 'Purchasing'),
('committee', 'Committee Review'),
@@ -298,21 +298,57 @@ class AnnualPurchaseRequest(models.Model):
def action_send(self):
self._check_lines()
for rec in self:
- rec.write({'state': 'to_manager'})
manager = rec.sudo().employee_id.parent_id
- if manager and manager.user_id and manager.user_id.email:
- try:
- template = self.env.ref('odex25_annual_purchase.email_template_direct_manager_x')
+ if manager:
+ if manager.user_id.id == rec.env.uid:
+ rec.write({'state': 'manprocurement'})
+ purchase_group = self.env.ref('purchase.group_purchase_manager')
+ managers = self.env['res.users'].search([
+ ('groups_id', '=', purchase_group.id),
+ ('email', '!=', False)
+ ])
+ if managers:
+ try:
+ template = self.env.ref('odex25_annual_purchase.email_template_purchase_manager')
+ first_manager = managers[0]
+ cc_emails = ','.join(managers[1:].mapped('email')) if len(managers) > 1 else ''
- mail_values = {
- 'model': None,
- 'res_id': None,
- }
- template.send_mail(rec.id, force_send=True, email_values=mail_values)
- except Exception as e:
- pass
+ mail_values = {
+ 'model': None,
+ 'res_id': None,
+ }
+ template.with_context(
+ default_email_to=first_manager.email,
+ default_email_cc=cc_emails
+ ).send_mail(rec.id, force_send=True, email_values=mail_values)
+ except Exception as e:
+ pass
+ else:
+ raise UserError(
+ _("Sorry, The Approval For The Direct Manager '%s' Only !") % (rec.employee_id.parent_id.name))
else:
- pass
+ rec.write({'state': 'manprocurement'})
+ purchase_group = self.env.ref('purchase.group_purchase_manager')
+ managers = self.env['res.users'].search([
+ ('groups_id', '=', purchase_group.id),
+ ('email', '!=', False)
+ ])
+ if managers:
+ try:
+ template = self.env.ref('odex25_annual_purchase.email_template_purchase_manager')
+ first_manager = managers[0]
+ cc_emails = ','.join(managers[1:].mapped('email')) if len(managers) > 1 else ''
+ mail_values = {
+ 'model': None,
+ 'res_id': None,
+ }
+ template.with_context(
+ default_email_to=first_manager.email,
+ default_email_cc=cc_emails
+ ).send_mail(rec.id, force_send=True, email_values=mail_values)
+ except Exception as e:
+ pass
+
def action_to_draft(self):
for rec in self:
rec.write({'state': 'draft'})
diff --git a/odex25_purchase/odex25_annual_purchase/views/annual_request_views.xml b/odex25_purchase/odex25_annual_purchase/views/annual_request_views.xml
index 3eeb63532..efb3d2942 100644
--- a/odex25_purchase/odex25_annual_purchase/views/annual_request_views.xml
+++ b/odex25_purchase/odex25_annual_purchase/views/annual_request_views.xml
@@ -25,8 +25,8 @@
-
-
+
+
@@ -37,7 +37,7 @@
-
+
@@ -73,7 +73,7 @@
-
+