diff --git a/sale_discount_total/models/discount_approval.py b/sale_discount_total/models/discount_approval.py index bd17fc6f8..d2623d9df 100644 --- a/sale_discount_total/models/discount_approval.py +++ b/sale_discount_total/models/discount_approval.py @@ -39,25 +39,19 @@ class sale_discount(models.Model): def action_confirm(self): discnt = 0.0 no_line = 0.0 - for order in self: - if self.company_id.so_double_validation == 'two_step': - for line in order.order_line: - no_line += 1 - discnt += line.discount - discnt = (discnt / no_line) - if order.company_id.so_double_validation_limit and discnt > order.company_id.so_double_validation_limit: - order.state = 'waiting' - return True - order._action_confirm() - if order.env['ir.config_parameter'].sudo().get_param('sale.auto_done_setting'): - order.action_done() - return True + if self.company_id.so_double_validation == 'two_step': + for line in self.order_line: + no_line += 1 + discnt += line.discount + discnt = (discnt / no_line) + if self.company_id.so_double_validation_limit and discnt > self.company_id.so_double_validation_limit: + self.state = 'waiting' + return True + super(sale_discount, self).action_confirm() @api.multi def action_approve(self): - self._action_confirm() - if self.env['ir.config_parameter'].sudo().get_param('sale.auto_done_setting'): - self.action_done() + super(sale_discount, self).action_confirm() return True @@ -74,40 +68,15 @@ class Company(models.Model): help="Minimum discount percentage for which a double validation is required") - # @api.multi - # def set_default_discount(self): - # if self.discount_approval and self.discount_approval != self.company_id.discount_approval: - # self.company_id.write({'discount_approval': self.discount_approval}) - # if self.limit_discount and self.limit_discount != self.company_id.limit_discount: - # self.company_id.write({'limit_discount': self.limit_discount}) - - class ResDiscountSettings(models.TransientModel): _inherit = 'res.config.settings' so_order_approval = fields.Boolean("Sale Discount Approval", default=lambda self: self.env.user.company_id.so_double_validation == 'two_step') - so_double_validation = fields.Selection(related='company_id.so_double_validation',) - # help='Provide a double validation mechanism for sale exceeding maximum discount limit.') + so_double_validation = fields.Selection(related='company_id.so_double_validation',string="Levels of Approvals *", readonly=False) so_double_validation_limit = fields.Float(string="Discount limit requires approval in %", related='company_id.so_double_validation_limit') - - # @api.model - # def get_values(self): - # res = super(ResDiscountSettings, self).get_values() - # res.update( - # limit_discount=self.company_id.limit_discount if self.company_id.limit_discount else 0.0, - # discount_approval=True if self.company_id.discount_approval else False - # ) - # return res - # - # @api.multi - # def set_values(self): - # super(ResDiscountSettings, self).set_values() - # self.company_id.limit_discount = self.limit_discount - # self.company_id.discount_approval = self.discount_approval - def set_values(self): super(ResDiscountSettings, self).set_values() - self.so_double_validation = 'two_step' if self.so_order_approval else 'one_step' \ No newline at end of file + self.so_double_validation = 'two_step' if self.so_order_approval else 'one_step'