diff --git a/odex25_benefit/odex_benefit/models/payment_order.py b/odex25_benefit/odex_benefit/models/payment_order.py index b4627683e..688a496cf 100644 --- a/odex25_benefit/odex_benefit/models/payment_order.py +++ b/odex25_benefit/odex_benefit/models/payment_order.py @@ -56,6 +56,24 @@ class PaymentOrders(models.Model): company_id = fields.Many2one('res.company', string='Company', default=lambda self: self.env.company) currency_id = fields.Many2one('res.currency', string='Currency', related='company_id.currency_id') + can_user_act = fields.Boolean(compute='_compute_can_user_act', store=False) + + @api.depends('state') + @api.depends_context('uid') + def _compute_can_user_act(self): + user = self.env.user + for record in self: + can_act = False + if record.state in ['draft', 'waiting_deposit']: + can_act = user.has_group('odex_benefit.group_benefit_payment_accountant_accept') + elif record.state == 'waiting_head': + can_act = user.has_group('odex25_account_payment_fix.group_depart_manager') + elif record.state == 'waiting_finance': + can_act = user.has_group('odex25_account_payment_fix.group_accounting_manager') + elif record.state == 'waiting_gm': + can_act = user.has_group('odex25_account_payment_fix.group_general_manager') + + record.can_user_act = can_act @api.depends('service_requests_ids', 'benefit_expense_line_ids') def _compute_total_amount(self): @@ -162,14 +180,6 @@ class PaymentOrders(models.Model): )) return super(PaymentOrders, self).unlink() - # todo remove search override - @api.model - def search(self, args, offset=0, limit=None, order=None, count=False): - if self.env.user and self.env.user.id and self.env.user.has_group( - "odex_benefit.group_benefit_payment_accountant_accept"): - args += [('accountant_id', '=', self.env.user.id)] - return super(PaymentOrders, self).search(args, offset, limit, order, count) - def _compute_move_count(self): for rec in self: rec.move_count = 1 if rec.move_id else 0 diff --git a/odex25_benefit/odex_benefit/views/actions_and_menus.xml b/odex25_benefit/odex_benefit/views/actions_and_menus.xml index af89785a4..2596295b4 100644 --- a/odex25_benefit/odex_benefit/views/actions_and_menus.xml +++ b/odex25_benefit/odex_benefit/views/actions_and_menus.xml @@ -549,7 +549,7 @@ Services Requests service.request tree,form - [('is_seasonal','=',False)] + ['|',('is_seasonal','=',False),'&',('is_seasonal','=',True),('state','=','return_to_bank')]

Create the Service Request

@@ -559,7 +559,20 @@ Services Requests service.request tree,form - [('is_seasonal','=',False),('state','=','accounting_approve'),('payment_order_state','=','none')] + + [ + '|', + '&','&', + ('is_seasonal','=',False), + ('state','=','accounting_approve'), + ('payment_order_state','=','none'), + '&','&','&', + ('is_seasonal','=',True), + ('state','=','accounting_approve'), + ('payment_order_state','=','none'), + ('return_reason_id','!=',False) + ] +

Create the Service Request

diff --git a/odex25_benefit/odex_benefit/views/payment_order.xml b/odex25_benefit/odex_benefit/views/payment_order.xml index 6ceffbff3..1af9fa5d7 100644 --- a/odex25_benefit/odex_benefit/views/payment_order.xml +++ b/odex25_benefit/odex_benefit/views/payment_order.xml @@ -7,43 +7,51 @@
@@ -166,43 +174,43 @@ decoration-warning="state not in ['draft','done']" decoration-success="state == 'done'" /> -