diff --git a/odex25_purchase/odex25_annual_purchase/models/annual_rfq.py b/odex25_purchase/odex25_annual_purchase/models/annual_rfq.py index 0d790f383..cfef0e94d 100644 --- a/odex25_purchase/odex25_annual_purchase/models/annual_rfq.py +++ b/odex25_purchase/odex25_annual_purchase/models/annual_rfq.py @@ -243,27 +243,45 @@ class PurchaseRFQ(models.Model): # 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.committe_members: return - if all(member.refused for member in self.committe_members): + main_committee_users = self.source_request_ref.committe_members + + rfq_members = self.committe_members + + rfq_refused_users = rfq_members.filtered(lambda m: m.refused).mapped('user_id') + + if ( + main_committee_users + and rfq_refused_users + and set(rfq_refused_users.ids) == set(main_committee_users.ids) + ): 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 - ): + + def rfq_fully_rejected_by_committee(rfq): + rfq_members = rfq.committe_members + rfq_refused_users = rfq_members.filtered(lambda m: m.refused).mapped('user_id') + return ( + rfq.committe_members + and rfq_refused_users + and set(rfq_refused_users.ids) == set(main_committee_users.ids) + ) + + if all_rfqs and all(rfq_fully_rejected_by_committee(rfq) 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() for rec in self: diff --git a/odex25_purchase/purchase_petty_invoice/models/purchase_order.py b/odex25_purchase/purchase_petty_invoice/models/purchase_order.py index 1a42aa1e3..b49719c4a 100644 --- a/odex25_purchase/purchase_petty_invoice/models/purchase_order.py +++ b/odex25_purchase/purchase_petty_invoice/models/purchase_order.py @@ -9,16 +9,7 @@ class PurchaseOrder(models.Model): petty_employee_id = fields.Many2one('hr.employee', string='Petty Cashier', copy=False) - def _prepare_invoice(self): - res = super(PurchaseOrder, self)._prepare_invoice() - res.update({ - 'purchase_id': self.id, - 'res_id': self.id, - 'res_model': 'purchase.order', - 'is_petty_paid': self.is_petty_paid, - 'petty_employee_id': self.petty_employee_id.id - }) - return res + class AccountMove(models.Model): _inherit = 'account.move'