@@ -414,6 +431,14 @@
+
+ Bank Return Processing
+ confirm.benefit.expense
+ tree,form
+ [('state','=','waiting_processing')]
+
+
+
account.move.line.form
diff --git a/odex25_benefit/odex_benefit/wizards/reason_for_return_wizard.py b/odex25_benefit/odex_benefit/wizards/reason_for_return_wizard.py
index ab309f447..3dbf8b3c6 100644
--- a/odex25_benefit/odex_benefit/wizards/reason_for_return_wizard.py
+++ b/odex25_benefit/odex_benefit/wizards/reason_for_return_wizard.py
@@ -1,6 +1,6 @@
# -*- coding: utf-8 -*-
-from odoo import models, fields, api
+from odoo import models, fields, api,_
class ReasonForReturnWizard(models.TransientModel):
_name = 'reason.for.return.wizard'
@@ -9,11 +9,33 @@ class ReasonForReturnWizard(models.TransientModel):
reason = fields.Text(string="reason for return", required=True)
def action_confirm(self):
- for record in self:
- record.env['service.request'].browse(self._context.get('active_id')).write({
- 'return_reason': record.reason,
+ active_id = self._context.get('active_id')
+ active_model = self._context.get('active_model')
+
+ if active_model == 'service.request':
+ self.env[active_model].browse(active_id).write({
+ 'return_reason': self.reason,
'state': 'researcher',
})
+ elif active_model == 'confirm.benefit.expense':
+ expense = self.env[active_model].browse(active_id)
+ message = _(
+ 'State Changed: %s → Calculated
'
+ 'Reset By: %s
'
+ 'Reason: %s'
+ ) % (dict(expense._fields['state'].selection).get(expense.state), self.env.user.name,self.reason)
+ expense.sudo().message_post(
+ body=message,
+ subject=_('Benefit Expense Reset'),
+ message_type='notification',)
+
+ if expense.payment_order_id:
+ expense.sudo().payment_order_id.unlink()
+ if expense.move_id:
+ expense.sudo().move_id.unlink()
+ expense.sudo().state = 'calculated'
+
+ return {'type': 'ir.actions.act_window_close'}
class ReturnReasonWizard(models.TransientModel):
_name = "return.reason.wizard"
diff --git a/odex25_benefit/odex_benefit/wizards/researcher_wizard.py b/odex25_benefit/odex_benefit/wizards/researcher_wizard.py
index 8b8aa30a6..56cfe88e0 100644
--- a/odex25_benefit/odex_benefit/wizards/researcher_wizard.py
+++ b/odex25_benefit/odex_benefit/wizards/researcher_wizard.py
@@ -192,3 +192,36 @@ class ReasearcherFamilyWizard(models.TransientModel):
subtype_id=self.env.ref('mail.mt_note').id,
notify_by_email=False,
)
+
+
+class AssignSupervisorWizard(models.TransientModel):
+ _name = 'assign.supervisor.wizard'
+ _description = 'Assign Supervisor Wizard'
+
+ supervisor_id = fields.Many2one('hr.employee',string='Supervisor',required=True,domain=[('job_id', '!=', False)])
+
+ def action_confirm(self):
+ self.ensure_one()
+
+ active_id = self._context.get('active_id')
+ active_model = self._context.get('active_model')
+
+ if active_model == 'confirm.benefit.expense':
+ expense = self.env[active_model].browse(active_id)
+ message = _(
+ 'Assigned to Supervisor
'
+ 'Supervisor: %s
'
+ 'Assigned By: %s'
+ ) % (self.supervisor_id.name,self.env.user.name)
+
+ expense.message_post(
+ body=message,
+ subject=_('Assigned to Supervisor'),
+ message_type='notification',
+ )
+ expense.write({
+ 'assigned_supervisor_id': self.supervisor_id.id,
+ 'state': 'waiting_processing'
+ })
+
+ return {'type': 'ir.actions.act_window_close'}
diff --git a/odex25_benefit/odex_benefit/wizards/researcher_wizard.xml b/odex25_benefit/odex_benefit/wizards/researcher_wizard.xml
index 91d94a809..2c986fbe2 100644
--- a/odex25_benefit/odex_benefit/wizards/researcher_wizard.xml
+++ b/odex25_benefit/odex_benefit/wizards/researcher_wizard.xml
@@ -8,13 +8,14 @@
+
+
+ assign.supervisor.wizard.form
+ assign.supervisor.wizard
+
+
+
+