From bf2674a16e8ff9fdb1076b1851f54a21cadd01ea Mon Sep 17 00:00:00 2001 From: mohammed-alkhazrji Date: Wed, 10 Dec 2025 20:42:25 +0300 Subject: [PATCH] coc --- .../odex25_purchase_coc/i18n/ar_001.po | 5 +++ .../odex25_purchase_coc/models/new_models.py | 34 +++++++++---------- .../odex25_purchase_coc/security/security.xml | 8 ++--- 3 files changed, 26 insertions(+), 21 deletions(-) diff --git a/odex25_purchase/odex25_purchase_coc/i18n/ar_001.po b/odex25_purchase/odex25_purchase_coc/i18n/ar_001.po index 5a47e0243..a433aed26 100644 --- a/odex25_purchase/odex25_purchase_coc/i18n/ar_001.po +++ b/odex25_purchase/odex25_purchase_coc/i18n/ar_001.po @@ -868,3 +868,8 @@ msgid "" "Sorry, you are not allowed to Confirm this CoC.\n" "Allowed user: %s" msgstr "عذرًا، غير مسموح لك بتأكيد شهادة المطابقة (CoC).\nالمستخدم المسموح له: %s" + +#. module: odex25_purchase_coc +#: model:ir.model.fields,field_description:odex25_purchase_coc.field_purchase_order__is_manual_receipt_user +msgid "Is Manual Receipt User" +msgstr "مستخدم الاستلام اليدوي" \ No newline at end of file diff --git a/odex25_purchase/odex25_purchase_coc/models/new_models.py b/odex25_purchase/odex25_purchase_coc/models/new_models.py index b4a91d6cf..3fe008200 100644 --- a/odex25_purchase/odex25_purchase_coc/models/new_models.py +++ b/odex25_purchase/odex25_purchase_coc/models/new_models.py @@ -322,7 +322,7 @@ class PurchaseCoC(models.Model): def action_manager_reject(self): - request = self.po_id.request_id + request = self.po_id.sudo().request_id user = self.env.user if request: @@ -330,7 +330,7 @@ class PurchaseCoC(models.Model): if employee.parent_id.user_id.id != user.id: raise ValidationError(_('Sorry, you are not allowed to confirm this CoC.')) else: - department_manager = self.po_id.department_id.manager_id.sudo() + department_manager = self.po_id.sudo().department_id.sudo().manager_id.sudo() if department_manager.user_id.id != user.id: raise ValidationError(_('Sorry, you are not allowed to confirm this CoC.')) @@ -351,7 +351,7 @@ class PurchaseCoC(models.Model): self.ensure_one() user = self.env.user for rec in self: - request = rec.po_id.request_id + request = rec.po_id.sudo().request_id if request: if request.employee_id.user_id.id != user.id: allowed_name = request.employee_id.name @@ -359,8 +359,8 @@ class PurchaseCoC(models.Model): _('Sorry, you are not allowed to Confirm this CoC.\nAllowed user: %s') % allowed_name ) else: - if rec.po_id.department_id.manager_id.user_id.id != user.id: - allowed_name = rec.po_id.department_id.manager_id.name + if rec.po_id.sudo().department_id.sudo().manager_id.user_id.id != user.id: + allowed_name = rec.po_id.sudo().department_id.sudo().manager_id.name raise ValidationError( _('Sorry, you are not allowed to Confirm this CoC.\nAllowed user: %s') % allowed_name ) @@ -377,12 +377,12 @@ class PurchaseCoC(models.Model): manager = None manager_name = None - if request and request.employee_id and request.employee_id.coach_id: - coach = request.employee_id.sudo().coach_id + if request and request.employee_id and request.employee_id.partner_id: + coach = request.employee_id.sudo().partner_id manager = coach.work_email manager_name = coach.name - elif not request and rec.po_id.user_id.id == user.id and user.employee_id and user.employee_id.coach_id: - coach = user.employee_id.sudo().coach_id + elif not request and rec.po_id.sudo().user_id.id == user.id and user.employee_id and user.employee_id.partner_id: + coach = user.employee_id.sudo().partner_id manager = coach.work_email manager_name = coach.name @@ -405,15 +405,15 @@ class PurchaseCoC(models.Model): request = po.request_id if request: - coach_user = request.employee_id.sudo().coach_id.user_id + coach_user = request.employee_id.sudo().partner_id.user_id allowed_name = coach_user.name if coach_user.id != user.id: raise ValidationError( _('Sorry, you are not allowed to Confirm this CoC.\nAllowed user: %s') % allowed_name ) else: - dept_manager = self.po_id.department_id.manager_id.sudo() - coach_user = dept_manager.coach_id.user_id + dept_manager = self.po_id.sudo().department_id.manager_id.sudo() + coach_user = dept_manager.partner_id.user_id allowed_name = coach_user.name if coach_user.id != user.id: raise ValidationError( @@ -493,7 +493,7 @@ class PurchaseCoC(models.Model): def _create_backorder_coc(self, backorder_lines_data): backorder_coc = self.create({ - 'po_id': self.po_id.id, + 'po_id': self.po_id.sudo().id, 'parent_coc_id': self.id, 'is_backorder': True, 'date': fields.Date.today(), @@ -527,12 +527,12 @@ class PurchaseCoC(models.Model): request = po.request_id if request: - coach_user = request.employee_id.sudo().coach_id.user_id + coach_user = request.employee_id.sudo().partner_id.user_id if coach_user.id != user.id: raise ValidationError(_('Only the department manager can approve this CoC.')) else: - dept_manager = self.po_id.department_id.manager_id.sudo() - coach_user = dept_manager.coach_id.user_id + dept_manager = self.po_id.sudo().department_id.manager_id.sudo() + coach_user = dept_manager.partner_id.user_id if coach_user.id != user.id: raise ValidationError(_('You are not allowed to approve this CoC.')) @@ -554,7 +554,7 @@ class PurchaseCoC(models.Model): 'state': 'cancel', 'reject_reason': self.env.context.get('reject_reason') }) - self.po_id.message_post( + self.po_id.sudo().message_post( body=_('CoC %s Rejected By %s. Reject Reason: %s') % (self.name, self.env.user.name, self.reject_reason or 'No reason provided') ) diff --git a/odex25_purchase/odex25_purchase_coc/security/security.xml b/odex25_purchase/odex25_purchase_coc/security/security.xml index 2eb131ec2..76d8afe76 100644 --- a/odex25_purchase/odex25_purchase_coc/security/security.xml +++ b/odex25_purchase/odex25_purchase_coc/security/security.xml @@ -24,10 +24,10 @@ - - Manager Direct Group - - + + + + Manual Receipt