From 0c0dbf29000fde19b78a510e7cbc2e60e9815bf3 Mon Sep 17 00:00:00 2001 From: mohammed-alkhazrji Date: Wed, 3 Dec 2025 02:20:33 +0300 Subject: [PATCH] tracking rejeceting --- .../models/annual_rfq.py | 39 ++++++++++++++----- 1 file changed, 29 insertions(+), 10 deletions(-) diff --git a/odex25_purchase/odex25_annual_purchase/models/annual_rfq.py b/odex25_purchase/odex25_annual_purchase/models/annual_rfq.py index ae53e3e1a..0d790f383 100644 --- a/odex25_purchase/odex25_annual_purchase/models/annual_rfq.py +++ b/odex25_purchase/odex25_annual_purchase/models/annual_rfq.py @@ -185,7 +185,7 @@ class PurchaseRFQ(models.Model): 'user_id': self.env.user.id, **vals }) - + self._check_committee_rejection() return { 'type': 'ir.actions.act_window', @@ -229,21 +229,40 @@ class PurchaseRFQ(models.Model): + # def _check_committee_rejection(self): + # self.ensure_one() + # + # if not self.source_request_ref or not self.source_request_ref.committe_members: + # return + # + # requisition_users = self.source_request_ref.committe_members + # rfq_users = self.committe_members.mapped('user_id') + # + # if set(requisition_users.ids) == set(rfq_users.ids): + # if self.committe_members and all(member.refused for member in self.committe_members): + # self.source_request_ref.write({'state': 'rejected_by_committee'}) + # self.action_reject() + # self.message_post(body=_("تم رفض عرض السعر من قبل جميع أعضاء اللجنة.")) + def _check_committee_rejection(self): self.ensure_one() - if not self.source_request_ref or not self.source_request_ref.committe_members: + if not self.source_request_ref or not self.committe_members: return - requisition_users = self.source_request_ref.committe_members - rfq_users = self.committe_members.mapped('user_id') - - if set(requisition_users.ids) == set(rfq_users.ids): - if self.committe_members and all(member.refused for member in self.committe_members): - self.source_request_ref.write({'state': 'rejected_by_committee'}) - self.action_reject() - self.message_post(body=_("تم رفض عرض السعر من قبل جميع أعضاء اللجنة.")) + if all(member.refused for member in self.committe_members): + self.action_reject() + self.message_post(body=_("تم رفض هذا العرض من قبل جميع أعضاء اللجنة.")) + all_rfqs = self.source_request_ref.rfq_ids + if all_rfqs and all( + rfq.committe_members and all(member.refused for member in rfq.committe_members) + for rfq in all_rfqs + ): + self.source_request_ref.write({'state': 'rejected_by_committee'}) + self.source_request_ref.message_post( + body=_("تم رفض جميع عروض الأسعار المرتبطة بهذا الطلب السنوي من قبل جميع أعضاء اللجنة.") + ) def action_submit_to_committees(self): res = super(PurchaseRFQ, self).action_submit_to_committees()