# -*- coding: utf-8 -*- ############################################################################### # # Copyright (C) 2024-TODAY Cybrosys Technologies() # Author: AFRA MP (odoo@cybrosys.com) # # This program is under the terms of the Odoo Proprietary License v1.0 (OPL-1) # It is forbidden to publish, distribute, sublicense, or sell copies of the # Software or modified copies of the Software. # # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR # IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, # FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. # IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, # DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR # OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE # USE OR OTHER DEALINGS IN THE SOFTWARE. # ############################################################################### from odoo import fields, models, _ class ApprovalRequest(models.Model): _inherit = 'approval.request' """Class inherit for the approval request button in the form""" order_id = fields.Many2one('sale.order', string='Document', help="Connection id for the sale order") def action_approve(self, approver=None): """This method is used to confirm the order Approval""" res = super(ApprovalRequest, self).action_approve(approver) for order in [self.order_id]: approve_status = self.approver_ids.mapped('status') if all(status == 'approved' for status in approve_status) and order: order.write({'state': 'approved', 'is_approved': True}) order.message_post( body=_('Requested approval is Confirmed'), message_type='comment') return res def action_refuse(self, approver=None): """This method is used to reject the approval request""" res = super().action_refuse(approver) if self.order_id: self.order_id._action_cancel() return res