fix-refuse

This commit is contained in:
eslamabady 2024-10-09 10:19:21 +03:00
parent 648953d22a
commit 564d314d00
4 changed files with 24 additions and 14 deletions

View File

@ -49,9 +49,10 @@ class Timesheet(models.Model):
if users:
partner = users.mapped('partner_id')
for part in partner:
part.send_notification(
_("Employee %s Timesheet Waiting Your Approve") % (self.employee_id.name),
" %s - %s" % (self.date_start, self.date_end), data=data, all_device=True)
if not self.env.context.get('refuse'):
part.send_notification(
_("Employee %s Timesheet Waiting Your Approve") % (self.employee_id.name),
" %s - %s" % (self.date_start, self.date_end), data=data, all_device=True)
self.employee_id.user_id.partner_id.send_notification(
_("Timesheet Has been Updated to %s") % (validator.get_state_name(self, self.state)),
" %s - %s" % (self.date_start, self.date_end),
@ -99,8 +100,9 @@ class HrHolidays(models.Model):
if users:
partner = users.mapped('partner_id')
for part in partner:
part.send_notification(_("Employee %s Leave Waiting Your Approve") % (self.employee_id.name),
" %s - %s" % (str(self.date_from), str(self.date_to)), data=data, all_device=True)
if not self.env.context.get('refuse'):
part.send_notification(_("Employee %s Leave Waiting Your Approve") % (self.employee_id.name),
" %s - %s" % (str(self.date_from), str(self.date_to)), data=data, all_device=True)
self.employee_id.user_id.partner_id.send_notification(
_("Leave Request Has Been Updated to %s") % (validator.get_state_name(self, self.state)),
" %s - %s " % (self.date_from, self.date_to),
@ -156,9 +158,10 @@ class Overtime(models.Model):
if users:
partner = users.mapped('partner_id')
for part in partner:
part.send_notification(_("Employee Overtime Request Waiting Your Approve"),
" %s - %s" % (self.date_from, self.date_to), data=data,
all_device=True)
if not self.env.context.get('refuse'):
part.send_notification(_("Employee Overtime Request Waiting Your Approve"),
" %s - %s" % (self.date_from, self.date_to), data=data,
all_device=True)
if rec.employee_id.user_id:
rec.employee_id.user_id.partner_id.send_notification(
_("Overtime Request has been Updated to %s ") % (validator.get_state_name(self, self.state)), " %s - %s" % (self.date_from, self.date_to),
@ -188,8 +191,9 @@ class HrPersonalPermission(models.Model):
if users:
partner = users.mapped('partner_id')
for part in partner:
part.send_notification(_("Employee %s Permission Waiting Your Approve") % (self.employee_id.name),
" %s - %s" % (self.date_from, self.date_to), data=data, all_device=True)
if not self.env.context.get('refuse'):
part.send_notification(_("Employee %s Permission Waiting Your Approve") % (self.employee_id.name),
" %s - %s" % (self.date_from, self.date_to), data=data, all_device=True)
self.employee_id.user_id.partner_id.send_notification(
_("Permission Request has been updated to %s ") % (validator.get_state_name(self, self.state)) , " %s - %s" % (self.date_from, self.date_to),
data=data, all_device=True)
@ -239,8 +243,9 @@ class HrSalaryAdvance(models.Model):
if users:
partner = users.mapped('partner_id')
for part in partner:
part.send_notification(_("Employee %s Loan %s Waiting Your Approve") % (self.employee_id.name, self.code),
_("Loan %s Waiting Your Approve") % (self.code), data=data, all_device=True)
if not self.env.context.get('refuse'):
part.send_notification(_("Employee %s Loan %s Waiting Your Approve") % (self.employee_id.name, self.code),
_("Loan %s Waiting Your Approve") % (self.code), data=data, all_device=True)
self.employee_id.user_id.partner_id.send_notification(
_("Loan %s") % (self.code), _("Has been updated to %s") % (validator.get_state_name(self, self.state)),
data=data, all_device=True)

View File

@ -247,10 +247,13 @@ class RestApi(Controller):
btn.with_context(context)._run_code(active_id, btn.model, request.env)
res = obj.read(["id", "state"])[0]
state = res["state"]
refuse=False
btn_new = request.env[BTN].sudo().search([("workflow_id", "=", int(btn.workflow_id.id)), (("node_id.node_name", "=", state)), ], [],)
if any(btn.is_refuse for btn in btn_new):
refuse = True
if any(btn.send_manager for btn in btn_new):
emp_manager = self.get_emp_manager(obj)
obj.firebase_notification(emp_manager.user_id)
obj.with_context(refuse=refuse).firebase_notification(emp_manager.user_id)
return http_helper.response(message="Successful", data=res)
group_ids = btn_new.mapped("group_ids")
rule_groups = btn_new.mapped("group_ids").mapped("rule_groups").filtered(lambda rec:rec.model_id.model == obj._name)
@ -258,7 +261,7 @@ class RestApi(Controller):
users = request.env['res.users'].sudo().search([('id', 'in', users_list)])
if reject_reason:
obj.write({"reason": reject_reason})
obj.firebase_notification(users)
obj.with_context(refuse=refuse).firebase_notification(users)
return http_helper.response(message="Successful", data=res)
except (UserError, AccessError, ValidationError, Warning) as e:

View File

@ -388,6 +388,7 @@ class OdooWorkflowBtnWizard(models.Model):
btn_hide = fields.Boolean(string="Hide Button if Condition isn't fulfilled", help="If condition is false the button will be hidden.",readonly=True)
condition_code = fields.Text(string='Condition Code', default=CONDITION_CODE_TEMP, help="Enter condition to execute button action.",readonly=True)
send_manager = fields.Boolean(string="Send Direct Manager", help="Send Direct Manager")
is_refuse= fields.Boolean(string="Send Refuse", help="Send Refuse")
action_type = fields.Selection([
('link', 'Trigger Link'),
('code', 'Python Code'),

View File

@ -235,6 +235,7 @@ sell it under their names. ###-->
<field name="btn_key" />
<field name="node_id" />
<field name="send_manager" />
<field name="is_refuse" />
</group>
<group>
<field name="is_highlight" />