Merge pull request #5783 from expsa/youn_dev_odex25_benefit
Youn dev odex25 benefit
This commit is contained in:
commit
5f6b5e1a31
|
|
@ -2752,6 +2752,7 @@ msgstr "بإمكانه النشر "
|
||||||
#: model_terms:ir.ui.view,arch_db:odex_benefit.view_suspend_reason_wizard_form
|
#: model_terms:ir.ui.view,arch_db:odex_benefit.view_suspend_reason_wizard_form
|
||||||
#: model_terms:ir.ui.view,arch_db:odex_benefit.view_visit_skip_otp_wizard_form
|
#: model_terms:ir.ui.view,arch_db:odex_benefit.view_visit_skip_otp_wizard_form
|
||||||
#: model_terms:ir.ui.view,arch_db:odex_benefit.visit_location_otp_wizard_form
|
#: model_terms:ir.ui.view,arch_db:odex_benefit.visit_location_otp_wizard_form
|
||||||
|
#: model_terms:ir.ui.view,arch_db:odex_benefit.view_resume_reason_wizard_form
|
||||||
#: model_terms:ir.ui.view,arch_db:odex_benefit.view_visit_location_refusal_reason_wizard_form
|
#: model_terms:ir.ui.view,arch_db:odex_benefit.view_visit_location_refusal_reason_wizard_form
|
||||||
msgid "Cancel"
|
msgid "Cancel"
|
||||||
msgstr "إلغاء"
|
msgstr "إلغاء"
|
||||||
|
|
@ -8724,6 +8725,7 @@ msgstr "جوار السكن"
|
||||||
#: model:ir.model.fields,field_description:odex_benefit.field_grant_benefit__comment
|
#: model:ir.model.fields,field_description:odex_benefit.field_grant_benefit__comment
|
||||||
#: model:ir.model.fields,field_description:odex_benefit.field_service_attachments_settings__notes
|
#: model:ir.model.fields,field_description:odex_benefit.field_service_attachments_settings__notes
|
||||||
#: model:ir.model.fields,field_description:odex_benefit.field_visit_location_refusal_reason_wizard__refusal_notes
|
#: model:ir.model.fields,field_description:odex_benefit.field_visit_location_refusal_reason_wizard__refusal_notes
|
||||||
|
#: model_terms:ir.ui.view,arch_db:odex_benefit.view_resume_reason_wizard_form
|
||||||
msgid "Notes"
|
msgid "Notes"
|
||||||
msgstr "الملاحظات"
|
msgstr "الملاحظات"
|
||||||
|
|
||||||
|
|
@ -10888,6 +10890,7 @@ msgstr "الخدمة الفرعية"
|
||||||
#: model_terms:ir.ui.view,arch_db:odex_benefit.view_resarcher_member_wizard_form
|
#: model_terms:ir.ui.view,arch_db:odex_benefit.view_resarcher_member_wizard_form
|
||||||
#: model_terms:ir.ui.view,arch_db:odex_benefit.view_suspend_member_reason_wizard_form
|
#: model_terms:ir.ui.view,arch_db:odex_benefit.view_suspend_member_reason_wizard_form
|
||||||
#: model_terms:ir.ui.view,arch_db:odex_benefit.view_suspend_reason_wizard_form
|
#: model_terms:ir.ui.view,arch_db:odex_benefit.view_suspend_reason_wizard_form
|
||||||
|
#: model_terms:ir.ui.view,arch_db:odex_benefit.view_resume_reason_wizard_form
|
||||||
msgid "Submit"
|
msgid "Submit"
|
||||||
msgstr "إرسال"
|
msgstr "إرسال"
|
||||||
|
|
||||||
|
|
@ -10983,6 +10986,18 @@ msgstr "رابط الاستبيان"
|
||||||
msgid "Suspend"
|
msgid "Suspend"
|
||||||
msgstr "إيقاف نهائي"
|
msgstr "إيقاف نهائي"
|
||||||
|
|
||||||
|
#. module: odex_benefit
|
||||||
|
#: model_terms:ir.ui.view,arch_db:odex_benefit.grant_benefit_form
|
||||||
|
#: model_terms:ir.ui.view,arch_db:odex_benefit.family_member_form
|
||||||
|
msgid "Suspend"
|
||||||
|
msgstr "إيقاف"
|
||||||
|
|
||||||
|
#. module: odex_benefit
|
||||||
|
#: model_terms:ir.ui.view,arch_db:odex_benefit.grant_benefit_form
|
||||||
|
#: model_terms:ir.ui.view,arch_db:odex_benefit.family_member_form
|
||||||
|
msgid "Resume"
|
||||||
|
msgstr "الإعادة للخدمة"
|
||||||
|
|
||||||
#. module: odex_benefit
|
#. module: odex_benefit
|
||||||
#: model:ir.model,name:odex_benefit.model_suspend_reason
|
#: model:ir.model,name:odex_benefit.model_suspend_reason
|
||||||
msgid "Suspend - Reason"
|
msgid "Suspend - Reason"
|
||||||
|
|
@ -13290,6 +13305,7 @@ msgstr "خريطة جوجال"
|
||||||
#: model_terms:ir.ui.view,arch_db:odex_benefit.view_exception_wizard_form
|
#: model_terms:ir.ui.view,arch_db:odex_benefit.view_exception_wizard_form
|
||||||
#: model_terms:ir.ui.view,arch_db:odex_benefit.view_resarcher_member_wizard_form
|
#: model_terms:ir.ui.view,arch_db:odex_benefit.view_resarcher_member_wizard_form
|
||||||
#: model_terms:ir.ui.view,arch_db:odex_benefit.view_suspend_member_reason_wizard_form
|
#: model_terms:ir.ui.view,arch_db:odex_benefit.view_suspend_member_reason_wizard_form
|
||||||
|
#: model_terms:ir.ui.view,arch_db:odex_benefit.view_resume_reason_wizard_form
|
||||||
#: model_terms:ir.ui.view,arch_db:odex_benefit.view_suspend_reason_wizard_form
|
#: model_terms:ir.ui.view,arch_db:odex_benefit.view_suspend_reason_wizard_form
|
||||||
msgid "or"
|
msgid "or"
|
||||||
msgstr "أو"
|
msgstr "أو"
|
||||||
|
|
@ -14638,6 +14654,12 @@ msgstr "سبب الإرجاع"
|
||||||
msgid "Return Reason"
|
msgid "Return Reason"
|
||||||
msgstr "سبب إرجاع البنك"
|
msgstr "سبب إرجاع البنك"
|
||||||
|
|
||||||
|
#. module: odex_benefit
|
||||||
|
#: model:ir.model.fields,field_description:odex_benefit.field_family_member__resume_reason_id
|
||||||
|
#: model:ir.model.fields,field_description:odex_benefit.field_grant_benefit__resume_reason_id
|
||||||
|
msgid "Return Reason"
|
||||||
|
msgstr "سبب الإعادة"
|
||||||
|
|
||||||
#. module: odex_benefit
|
#. module: odex_benefit
|
||||||
#: model_terms:ir.ui.view,arch_db:odex_benefit.view_entity_return_reason_wizard_form
|
#: model_terms:ir.ui.view,arch_db:odex_benefit.view_entity_return_reason_wizard_form
|
||||||
msgid "Retrun"
|
msgid "Retrun"
|
||||||
|
|
@ -17750,4 +17772,114 @@ msgstr "التزامات الأم"
|
||||||
#. module: odex_benefit
|
#. module: odex_benefit
|
||||||
#: model_terms:ir.ui.view,arch_db:odex_benefit.grant_benefit_form
|
#: model_terms:ir.ui.view,arch_db:odex_benefit.grant_benefit_form
|
||||||
msgid "Deduct from Mother Income"
|
msgid "Deduct from Mother Income"
|
||||||
msgstr "يتم الخصم من دخل الأم"
|
msgstr "يتم الخصم من دخل الأم"
|
||||||
|
|
||||||
|
#. module: odex_benefit
|
||||||
|
#: model:ir.model.fields.selection,name:odex_benefit.selection__family_member__action_type__resume_from_temporary
|
||||||
|
#: model:ir.model.fields.selection,name:odex_benefit.selection__grant_benefit__action_type__resume_from_temporary
|
||||||
|
#: model_terms:ir.ui.view,arch_db:odex_benefit.grant_benefit_form
|
||||||
|
msgid "Resume from Temporary Suspension"
|
||||||
|
msgstr "إعادة من الإيقاف المؤقت"
|
||||||
|
|
||||||
|
#. module: odex_benefit
|
||||||
|
#: model:ir.model.fields.selection,name:odex_benefit.selection__family_member__action_type__resume_from_final
|
||||||
|
#: model:ir.model.fields.selection,name:odex_benefit.selection__grant_benefit__action_type__resume_from_final
|
||||||
|
#: model_terms:ir.ui.view,arch_db:odex_benefit.grant_benefit_form
|
||||||
|
msgid "Resume from Final Suspension"
|
||||||
|
msgstr "إعادة من الإيقاف النهائي"
|
||||||
|
|
||||||
|
#. module: odex_benefit
|
||||||
|
#: model:ir.model.fields,field_description:odex_benefit.field_family_member__resume_date
|
||||||
|
#: model:ir.model.fields,field_description:odex_benefit.field_grant_benefit__resume_date
|
||||||
|
msgid "Return Date"
|
||||||
|
msgstr "تاريخ الإعادة"
|
||||||
|
|
||||||
|
#. module: odex_benefit
|
||||||
|
#: model:ir.model.fields,field_description:odex_benefit.field_family_member__resume_notes
|
||||||
|
#: model:ir.model.fields,field_description:odex_benefit.field_grant_benefit__resume_notes
|
||||||
|
msgid "Return Notes"
|
||||||
|
msgstr "ملاحظات الإعادة"
|
||||||
|
|
||||||
|
#. module: odex_benefit
|
||||||
|
#: code:addons/odex_benefit/models/benefit.py:0
|
||||||
|
#: code:addons/odex_benefit/models/family_members.py:0
|
||||||
|
#, python-format
|
||||||
|
msgid "Resume Reason Wizard"
|
||||||
|
msgstr "سبب الإعادة"
|
||||||
|
|
||||||
|
#. module: odex_benefit
|
||||||
|
#: code:addons/odex_benefit/models/benefit.py:0
|
||||||
|
#: code:addons/odex_benefit/models/family_members.py:0
|
||||||
|
#, python-format
|
||||||
|
msgid ""
|
||||||
|
"Final suspension cannot be executed until after the specified final "
|
||||||
|
"suspension date."
|
||||||
|
msgstr "لا يمكن تنفيذ الإيقاف النهائي حتى بعد تاريخ الإيقاف النهائي المحدد."
|
||||||
|
|
||||||
|
#. module: odex_benefit
|
||||||
|
#: model:ir.model.fields,field_description:odex_benefit.field_suspend_reason__is_resume_reason
|
||||||
|
msgid "Resume Reason"
|
||||||
|
msgstr "سبب الإعادة"
|
||||||
|
|
||||||
|
#. module: odex_benefit
|
||||||
|
#: model_terms:ir.ui.view,arch_db:odex_benefit.family_member_form
|
||||||
|
#: model_terms:ir.ui.view,arch_db:odex_benefit.grant_benefit_form
|
||||||
|
msgid "Resume Approval by Operations Head"
|
||||||
|
msgstr "اعتماد رئيس العمليات للإعادة"
|
||||||
|
|
||||||
|
#. module: odex_benefit
|
||||||
|
#: model_terms:ir.ui.view,arch_db:odex_benefit.family_member_form
|
||||||
|
#: model_terms:ir.ui.view,arch_db:odex_benefit.grant_benefit_form
|
||||||
|
msgid "Resume Approval by Branch Manager"
|
||||||
|
msgstr "اعتماد مدير الفرع للإعادة"
|
||||||
|
|
||||||
|
#. module: odex_benefit
|
||||||
|
#: model_terms:ir.ui.view,arch_db:odex_benefit.family_member_form
|
||||||
|
#: model_terms:ir.ui.view,arch_db:odex_benefit.grant_benefit_form
|
||||||
|
msgid "Resume Approval by Family Services Manager"
|
||||||
|
msgstr "اعتماد مديرة خدمات المستفيدين للإعادة"
|
||||||
|
|
||||||
|
#. module: odex_benefit
|
||||||
|
#: model_terms:ir.ui.view,arch_db:odex_benefit.family_member_form
|
||||||
|
#: model_terms:ir.ui.view,arch_db:odex_benefit.grant_benefit_form
|
||||||
|
msgid "Resume Family Service"
|
||||||
|
msgstr "إعادة الأسرة للخدمة"
|
||||||
|
|
||||||
|
#. module: odex_benefit
|
||||||
|
#: model_terms:ir.ui.view,arch_db:odex_benefit.family_member_form
|
||||||
|
#: model_terms:ir.ui.view,arch_db:odex_benefit.grant_benefit_form
|
||||||
|
msgid "Final Suspension"
|
||||||
|
msgstr "الإيقاف النهائي"
|
||||||
|
|
||||||
|
#. module: odex_benefit
|
||||||
|
#: model_terms:ir.ui.view,arch_db:odex_benefit.family_member_form
|
||||||
|
#: model_terms:ir.ui.view,arch_db:odex_benefit.grant_benefit_form
|
||||||
|
msgid "Reject Resume"
|
||||||
|
msgstr "رفض الإعادة"
|
||||||
|
|
||||||
|
#. module: odex_benefit
|
||||||
|
#: model:ir.model.fields,field_description:odex_benefit.field_suspend_reason_wizard__resume_date
|
||||||
|
msgid "Resume Date"
|
||||||
|
msgstr "تاريخ الإعادة"
|
||||||
|
|
||||||
|
#. module: odex_benefit
|
||||||
|
#: code:addons/odex_benefit/wizards/suspend_reason_wizard.py:0
|
||||||
|
#, python-format
|
||||||
|
msgid "No family record found."
|
||||||
|
msgstr "لم يتم العثور على سجل الأسرة."
|
||||||
|
|
||||||
|
#. module: odex_benefit
|
||||||
|
#: code:addons/odex_benefit/wizards/suspend_reason_wizard.py:0
|
||||||
|
#, python-format
|
||||||
|
msgid "No member record found."
|
||||||
|
msgstr "لم يتم العثور على سجل الفرد."
|
||||||
|
|
||||||
|
#. module: odex_benefit
|
||||||
|
#: model_terms:ir.ui.view,arch_db:odex_benefit.view_resume_reason_wizard_form
|
||||||
|
msgid "Reason for return"
|
||||||
|
msgstr "سبب الإعادة"
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -608,6 +608,8 @@ class GrantBenefitProfile(models.Model):
|
||||||
('edit_info', 'Edit Information'),
|
('edit_info', 'Edit Information'),
|
||||||
('approved', 'Approved'),
|
('approved', 'Approved'),
|
||||||
('suspended', 'Suspended'),
|
('suspended', 'Suspended'),
|
||||||
|
('resume_from_temporary', 'Resume from Temporary Suspension'),
|
||||||
|
('resume_from_final', 'Resume from Final Suspension'),
|
||||||
('exception', 'Exception'),
|
('exception', 'Exception'),
|
||||||
], string='Action Type', default='new', tracking=True)
|
], string='Action Type', default='new', tracking=True)
|
||||||
contact_type = fields.Selection([
|
contact_type = fields.Selection([
|
||||||
|
|
@ -626,6 +628,11 @@ class GrantBenefitProfile(models.Model):
|
||||||
total_mother_families = fields.Integer(string="Mother Families", compute='_compute_total_families')
|
total_mother_families = fields.Integer(string="Mother Families", compute='_compute_total_families')
|
||||||
total_replacement_mother_families = fields.Integer(string="Replacement Mother Families", compute='_compute_total_families')
|
total_replacement_mother_families = fields.Integer(string="Replacement Mother Families", compute='_compute_total_families')
|
||||||
final_suspend_date = fields.Date(string="Final Suspend Date")
|
final_suspend_date = fields.Date(string="Final Suspend Date")
|
||||||
|
resume_reason_id = fields.Many2one('suspend.reason', string='Return Reason')
|
||||||
|
resume_date = fields.Date(string="Return Date")
|
||||||
|
resume_notes = fields.Text(string="Return Notes")
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
_sql_constraints = [
|
_sql_constraints = [
|
||||||
('unique_code', "unique (code) WHERE state NOT IN ('draft', 'new')", 'This code already exists')
|
('unique_code', "unique (code) WHERE state NOT IN ('draft', 'new')", 'This code already exists')
|
||||||
|
|
@ -1683,10 +1690,28 @@ class GrantBenefitProfile(models.Model):
|
||||||
'target': 'new',
|
'target': 'new',
|
||||||
}
|
}
|
||||||
|
|
||||||
|
def action_resume_family(self):
|
||||||
|
ctx = dict(self.env.context or {})
|
||||||
|
ctx['resume_family'] = True
|
||||||
|
return {
|
||||||
|
'name': _('Resume Reason Wizard'),
|
||||||
|
'view_mode': 'form',
|
||||||
|
'view_type': 'form',
|
||||||
|
'type': 'ir.actions.act_window',
|
||||||
|
'res_model': 'suspend.reason.wizard',
|
||||||
|
'view_id': self.env.ref('odex_benefit.view_resume_reason_wizard_form').id,
|
||||||
|
'target': 'new',
|
||||||
|
'context': ctx,
|
||||||
|
}
|
||||||
|
|
||||||
def action_suspend_first_accept(self):
|
def action_suspend_first_accept(self):
|
||||||
for rec in self:
|
for rec in self:
|
||||||
rec.state = 'first_approve'
|
rec.state = 'first_approve'
|
||||||
|
|
||||||
|
def action_resume_first_accept(self):
|
||||||
|
for rec in self:
|
||||||
|
rec.state = 'first_approve'
|
||||||
|
|
||||||
def action_suspend_second_accept(self):
|
def action_suspend_second_accept(self):
|
||||||
for rec in self:
|
for rec in self:
|
||||||
rec.action_type = 'suspended'
|
rec.action_type = 'suspended'
|
||||||
|
|
@ -1697,6 +1722,14 @@ class GrantBenefitProfile(models.Model):
|
||||||
else:
|
else:
|
||||||
rec.state = 'suspended_second_approve'
|
rec.state = 'suspended_second_approve'
|
||||||
|
|
||||||
|
def action_resume_second_accept(self):
|
||||||
|
for rec in self:
|
||||||
|
if rec.suspend_reason.need_service_manager_approval:
|
||||||
|
rec.state = 'family_services_manager'
|
||||||
|
else:
|
||||||
|
rec.state = 'second_approve'
|
||||||
|
rec.action_type = 'approved'
|
||||||
|
|
||||||
def action_suspend_third_accept(self):
|
def action_suspend_third_accept(self):
|
||||||
for rec in self:
|
for rec in self:
|
||||||
if rec.suspend_reason.suspend_type == 'temporarily_suspend':
|
if rec.suspend_reason.suspend_type == 'temporarily_suspend':
|
||||||
|
|
@ -1704,6 +1737,22 @@ class GrantBenefitProfile(models.Model):
|
||||||
else:
|
else:
|
||||||
rec.state = 'suspended_second_approve'
|
rec.state = 'suspended_second_approve'
|
||||||
|
|
||||||
|
def action_resume_third_accept(self):
|
||||||
|
for rec in self:
|
||||||
|
rec.state = 'second_approve'
|
||||||
|
rec.action_type = 'approved'
|
||||||
|
|
||||||
|
def action_final_suspend(self):
|
||||||
|
today = fields.Date.today()
|
||||||
|
for rec in self:
|
||||||
|
if rec.final_suspend_date and today >= rec.final_suspend_date:
|
||||||
|
rec.write({
|
||||||
|
'state': 'suspended_second_approve',
|
||||||
|
'suspend_type': 'suspend',
|
||||||
|
})
|
||||||
|
else:
|
||||||
|
raise UserError(_("Final suspension cannot be executed until after the specified final suspension date."))
|
||||||
|
|
||||||
def action_auto_suspend(self):
|
def action_auto_suspend(self):
|
||||||
# Fetch grants in second approval state that are not excluded from suspension
|
# Fetch grants in second approval state that are not excluded from suspension
|
||||||
grants = self.env["grant.benefit"].search(
|
grants = self.env["grant.benefit"].search(
|
||||||
|
|
@ -1743,6 +1792,14 @@ class GrantBenefitProfile(models.Model):
|
||||||
rec.action_type = 'approved'
|
rec.action_type = 'approved'
|
||||||
rec.get_member_income()
|
rec.get_member_income()
|
||||||
|
|
||||||
|
def action_reject_resume(self):
|
||||||
|
for rec in self:
|
||||||
|
if rec.action_type == 'resume_from_temporary':
|
||||||
|
rec.state = 'temporary_suspended'
|
||||||
|
elif rec.action_type == 'resume_from_final':
|
||||||
|
rec.state = 'suspended_second_approve'
|
||||||
|
rec.action_type = 'suspended'
|
||||||
|
|
||||||
#Excption Work flow
|
#Excption Work flow
|
||||||
def action_exception(self):
|
def action_exception(self):
|
||||||
return {
|
return {
|
||||||
|
|
|
||||||
|
|
@ -723,6 +723,7 @@ class SuspendReason(models.Model):
|
||||||
is_stop_reason = fields.Boolean(string="Stop Reason",default=False)
|
is_stop_reason = fields.Boolean(string="Stop Reason",default=False)
|
||||||
is_reject_reason = fields.Boolean(string="Reject Reason",default=False)
|
is_reject_reason = fields.Boolean(string="Reject Reason",default=False)
|
||||||
is_return_reason = fields.Boolean(string="Return Reason",default=False)
|
is_return_reason = fields.Boolean(string="Return Reason",default=False)
|
||||||
|
is_resume_reason = fields.Boolean(string="Resume Reason", default=False)
|
||||||
is_family_return_reason = fields.Boolean(string="Family Return Reason",default=False)
|
is_family_return_reason = fields.Boolean(string="Family Return Reason",default=False)
|
||||||
is_incomplete_visit_reason = fields.Boolean(string="Incomplete Visit Reason",default=False)
|
is_incomplete_visit_reason = fields.Boolean(string="Incomplete Visit Reason",default=False)
|
||||||
active = fields.Boolean(default=True)
|
active = fields.Boolean(default=True)
|
||||||
|
|
|
||||||
|
|
@ -239,6 +239,8 @@ class FamilyMemberProfile(models.Model):
|
||||||
('edit_info', 'Edit Information'),
|
('edit_info', 'Edit Information'),
|
||||||
('approved', 'Approved'),
|
('approved', 'Approved'),
|
||||||
('suspended', 'Suspended'),
|
('suspended', 'Suspended'),
|
||||||
|
('resume_from_temporary', 'Resume from Temporary Suspension'),
|
||||||
|
('resume_from_final', 'Resume from Final Suspension'),
|
||||||
('exception', 'Exception'),
|
('exception', 'Exception'),
|
||||||
], string='Action Type', default='new', tracking=True)
|
], string='Action Type', default='new', tracking=True)
|
||||||
member_status = fields.Selection(selection=[
|
member_status = fields.Selection(selection=[
|
||||||
|
|
@ -276,6 +278,9 @@ class FamilyMemberProfile(models.Model):
|
||||||
non_benefit_reason = fields.Text(string="Non Benefit Reason", tracking=True)
|
non_benefit_reason = fields.Text(string="Non Benefit Reason", tracking=True)
|
||||||
final_suspend_date = fields.Date(string="Final Suspend Date")
|
final_suspend_date = fields.Date(string="Final Suspend Date")
|
||||||
active = fields.Boolean(string='Active', default=True)
|
active = fields.Boolean(string='Active', default=True)
|
||||||
|
resume_reason_id = fields.Many2one('suspend.reason', string='Return Reason')
|
||||||
|
resume_date = fields.Date(string="Return Date")
|
||||||
|
resume_notes = fields.Text(string="Return Notes")
|
||||||
|
|
||||||
# def create(self, vals):
|
# def create(self, vals):
|
||||||
# for line_vals in vals:
|
# for line_vals in vals:
|
||||||
|
|
@ -828,10 +833,39 @@ class FamilyMemberProfile(models.Model):
|
||||||
'target': 'new',
|
'target': 'new',
|
||||||
}
|
}
|
||||||
|
|
||||||
|
def action_resume_member(self):
|
||||||
|
ctx = dict(self.env.context or {})
|
||||||
|
ctx['resume_family'] = True
|
||||||
|
return {
|
||||||
|
'name': _('Resume Reason Wizard'),
|
||||||
|
'view_mode': 'form',
|
||||||
|
'view_type': 'form',
|
||||||
|
'type': 'ir.actions.act_window',
|
||||||
|
'res_model': 'suspend.reason.wizard',
|
||||||
|
'view_id': self.env.ref('odex_benefit.view_resume_reason_wizard_form').id,
|
||||||
|
'target': 'new',
|
||||||
|
'context': ctx,
|
||||||
|
}
|
||||||
|
|
||||||
|
def action_final_suspend(self):
|
||||||
|
today = fields.Date.today()
|
||||||
|
for rec in self:
|
||||||
|
if rec.final_suspend_date and today >= rec.final_suspend_date:
|
||||||
|
rec.write({
|
||||||
|
'state': 'suspended_second_approve',
|
||||||
|
'suspend_type': 'suspend',
|
||||||
|
})
|
||||||
|
else:
|
||||||
|
raise UserError(_("Final suspension cannot be executed until after the specified final suspension date."))
|
||||||
|
|
||||||
def action_suspend_first_accept(self):
|
def action_suspend_first_accept(self):
|
||||||
for rec in self:
|
for rec in self:
|
||||||
rec.state_a = 'first_approve'
|
rec.state_a = 'first_approve'
|
||||||
|
|
||||||
|
def action_resume_first_accept(self):
|
||||||
|
for rec in self:
|
||||||
|
rec.state_a = 'first_approve'
|
||||||
|
|
||||||
def action_suspend_second_accept(self):
|
def action_suspend_second_accept(self):
|
||||||
for rec in self:
|
for rec in self:
|
||||||
if rec.suspend_reason.need_service_manager_approval:
|
if rec.suspend_reason.need_service_manager_approval:
|
||||||
|
|
@ -841,6 +875,14 @@ class FamilyMemberProfile(models.Model):
|
||||||
else:
|
else:
|
||||||
rec.state_a = 'suspended_second_approve'
|
rec.state_a = 'suspended_second_approve'
|
||||||
|
|
||||||
|
def action_resume_second_accept(self):
|
||||||
|
for rec in self:
|
||||||
|
if rec.suspend_reason.need_service_manager_approval:
|
||||||
|
rec.state_a = 'family_services_manager'
|
||||||
|
else:
|
||||||
|
rec.state_a = 'second_approve'
|
||||||
|
rec.action_type = 'approved'
|
||||||
|
|
||||||
def action_suspend_third_accept(self):
|
def action_suspend_third_accept(self):
|
||||||
for rec in self:
|
for rec in self:
|
||||||
if rec.suspend_reason.suspend_type == 'temporarily_suspend':
|
if rec.suspend_reason.suspend_type == 'temporarily_suspend':
|
||||||
|
|
@ -848,11 +890,24 @@ class FamilyMemberProfile(models.Model):
|
||||||
else:
|
else:
|
||||||
rec.state_a = 'suspended_second_approve'
|
rec.state_a = 'suspended_second_approve'
|
||||||
|
|
||||||
|
def action_resume_third_accept(self):
|
||||||
|
for rec in self:
|
||||||
|
rec.state_a = 'second_approve'
|
||||||
|
rec.action_type = 'approved'
|
||||||
|
|
||||||
def action_suspend_refuse(self):
|
def action_suspend_refuse(self):
|
||||||
for rec in self:
|
for rec in self:
|
||||||
rec.state_a = 'second_approve'
|
rec.state_a = 'second_approve'
|
||||||
rec.is_member_workflow = False
|
rec.is_member_workflow = False
|
||||||
|
|
||||||
|
def action_reject_resume(self):
|
||||||
|
for rec in self:
|
||||||
|
if rec.action_type == 'resume_from_temporary':
|
||||||
|
rec.state = 'temporary_suspended'
|
||||||
|
elif rec.action_type == 'resume_from_final':
|
||||||
|
rec.state = 'suspended_second_approve'
|
||||||
|
rec.action_type = 'suspended'
|
||||||
|
|
||||||
# Excption Work flow
|
# Excption Work flow
|
||||||
def action_exception(self):
|
def action_exception(self):
|
||||||
for rec in self:
|
for rec in self:
|
||||||
|
|
|
||||||
|
|
@ -247,7 +247,7 @@ class SeasonalService(models.Model):
|
||||||
'price_unit': request.requested_service_amount,
|
'price_unit': request.requested_service_amount,
|
||||||
})
|
})
|
||||||
line_ids.append(invoice_line)
|
line_ids.append(invoice_line)
|
||||||
vendor_bill = self.env['account.move'].create({
|
vendor_bill = self.env['account.move'].sudo().create({
|
||||||
'move_type': 'in_invoice',
|
'move_type': 'in_invoice',
|
||||||
'partner_id': rec.service_type_id.service_producer_id.id,
|
'partner_id': rec.service_type_id.service_producer_id.id,
|
||||||
'journal_id': validation_setting.journal_id.id,
|
'journal_id': validation_setting.journal_id.id,
|
||||||
|
|
|
||||||
|
|
@ -943,10 +943,11 @@
|
||||||
<group>
|
<group>
|
||||||
<group>
|
<group>
|
||||||
<field name="is_stop_reason" widget="boolean_toggle"/>
|
<field name="is_stop_reason" widget="boolean_toggle"/>
|
||||||
|
<field name="is_resume_reason" widget="boolean_toggle"/>
|
||||||
<field name="need_service_manager_approval" widget="boolean_toggle"
|
<field name="need_service_manager_approval" widget="boolean_toggle"
|
||||||
attrs="{'invisible': [('is_stop_reason','=',False)]}"/>
|
attrs="{'invisible': [('is_stop_reason','=',False)]}"/>
|
||||||
<field name="entity_type"
|
<field name="entity_type"
|
||||||
attrs="{'invisible': [('is_stop_reason','=',False)]}"/>
|
attrs="{'invisible': [('is_stop_reason','=',False),('is_resume_reason','=',False)]}"/>
|
||||||
<field name="suspend_type"
|
<field name="suspend_type"
|
||||||
attrs="{'invisible': [('is_stop_reason','=',False)]}"/>
|
attrs="{'invisible': [('is_stop_reason','=',False)]}"/>
|
||||||
<field name="days_before_final_suspend"
|
<field name="days_before_final_suspend"
|
||||||
|
|
@ -974,6 +975,7 @@
|
||||||
<field name="is_reject_reason" widget="boolean_toggle"/>
|
<field name="is_reject_reason" widget="boolean_toggle"/>
|
||||||
<field name="is_return_reason" widget="boolean_toggle"/>
|
<field name="is_return_reason" widget="boolean_toggle"/>
|
||||||
<field name="is_family_return_reason" widget="boolean_toggle"/>
|
<field name="is_family_return_reason" widget="boolean_toggle"/>
|
||||||
|
<field name="is_resume_reason" widget="boolean_toggle"/>
|
||||||
<field name="is_incomplete_visit_reason" widget="boolean_toggle"/>
|
<field name="is_incomplete_visit_reason" widget="boolean_toggle"/>
|
||||||
<field name="allow_service" widget="boolean_toggle"/>
|
<field name="allow_service" widget="boolean_toggle"/>
|
||||||
</tree>
|
</tree>
|
||||||
|
|
|
||||||
|
|
@ -431,6 +431,32 @@
|
||||||
string="Third Approve" class="oe_highlight"
|
string="Third Approve" class="oe_highlight"
|
||||||
groups="odex_benefit.group_benefit_manager"
|
groups="odex_benefit.group_benefit_manager"
|
||||||
attrs="{'invisible': ['|',('action_type','!=','suspended'),('state', 'not in', ['family_services_manager'])]}"/>
|
attrs="{'invisible': ['|',('action_type','!=','suspended'),('state', 'not in', ['family_services_manager'])]}"/>
|
||||||
|
<!-- Resume from suspension -->
|
||||||
|
<button name="action_resume_first_accept" type="object"
|
||||||
|
string="Resume Approval by Operations Head" class="oe_highlight"
|
||||||
|
attrs="{'invisible': ['|',('action_type','not in',['resume_from_final','resume_from_temporary']),('state', 'not in', ['waiting_approve'])]}"
|
||||||
|
groups="odex_benefit.group_benefit_woman_commitee,odex_benefit.group_benefit_manager"
|
||||||
|
/>
|
||||||
|
<button name="action_resume_second_accept" type="object"
|
||||||
|
string="Resume Approval by Branch Manager" class="oe_highlight"
|
||||||
|
groups="odex_benefit.group_benefit_branch_manager,odex_benefit.group_benefit_manager"
|
||||||
|
attrs="{'invisible': ['|',('action_type','not in',['resume_from_final','resume_from_temporary']),('state', 'not in', ['first_approve'])]}"/>
|
||||||
|
<button name="action_resume_third_accept" type="object"
|
||||||
|
string="Resume Approval by Family Services Manager" class="oe_highlight"
|
||||||
|
groups="odex_benefit.group_benefit_manager"
|
||||||
|
attrs="{'invisible': ['|',('action_type','not in',['resume_from_final','resume_from_temporary']),('state', 'not in', ['family_services_manager'])]}"/>
|
||||||
|
<button name="action_resume_family" string="Resume Family Service"
|
||||||
|
type="object" class="btn btn-success"
|
||||||
|
attrs="{'invisible': [('state', 'not in', ['temporary_suspended', 'suspended_second_approve'])]}"
|
||||||
|
groups="odex_benefit.group_benefit_researcher"/>
|
||||||
|
<button name="action_final_suspend" type="object"
|
||||||
|
string="Final Suspension" class="btn btn-danger"
|
||||||
|
attrs="{'invisible': [('state', '!=', 'temporary_suspended')]}"
|
||||||
|
groups="odex_benefit.group_benefit_manager"/>
|
||||||
|
<button name="action_reject_resume" type="object"
|
||||||
|
string="Reject Resume" class="oe_highlight"
|
||||||
|
attrs="{'invisible': ['|',('action_type','not in',['resume_from_final','resume_from_temporary']),('state', 'not in', ['waiting_approve','first_approve','family_services_manager'])]}"
|
||||||
|
/>
|
||||||
<button name="action_suspend_refuse" type="object"
|
<button name="action_suspend_refuse" type="object"
|
||||||
string="Suspend Refuse" class="oe_highlight"
|
string="Suspend Refuse" class="oe_highlight"
|
||||||
attrs="{'invisible': ['|',('action_type','!=','suspended'),('state', 'not in', ['waiting_approve','first_approve','family_services_manager','suspended_second_approve'])]}"
|
attrs="{'invisible': ['|',('action_type','!=','suspended'),('state', 'not in', ['waiting_approve','first_approve','family_services_manager','suspended_second_approve'])]}"
|
||||||
|
|
@ -539,6 +565,10 @@
|
||||||
attrs="{'invisible': [('action_type', '!=', 'suspended')]}"/>
|
attrs="{'invisible': [('action_type', '!=', 'suspended')]}"/>
|
||||||
<widget name="web_ribbon" title="Exception" bg_color="bg-secondary"
|
<widget name="web_ribbon" title="Exception" bg_color="bg-secondary"
|
||||||
attrs="{'invisible': [('action_type', '!=', 'exception')]}"/>
|
attrs="{'invisible': [('action_type', '!=', 'exception')]}"/>
|
||||||
|
<widget name="web_ribbon" title="Resume from Temporary Suspension" bg_color="bg-warning"
|
||||||
|
attrs="{'invisible': [('action_type', '!=', 'resume_from_temporary')]}"/>
|
||||||
|
<widget name="web_ribbon" title="Resume from Final Suspension" bg_color="bg-warning"
|
||||||
|
attrs="{'invisible': [('action_type', '!=', 'resume_from_final')]}"/>
|
||||||
<div class="oe_title">
|
<div class="oe_title">
|
||||||
<h1>
|
<h1>
|
||||||
<field name="code" readonly="1" class="oe_inline"/>
|
<field name="code" readonly="1" class="oe_inline"/>
|
||||||
|
|
@ -883,7 +913,8 @@
|
||||||
<field name="note"/>
|
<field name="note"/>
|
||||||
<field name="currency_id" invisible="1"/>
|
<field name="currency_id" invisible="1"/>
|
||||||
<field name="state" invisible="1"/>
|
<field name="state" invisible="1"/>
|
||||||
<field name="deduct_from_family_income" string="Deduct from Mother Income" widget="boolean_toggle"/>
|
<field name="deduct_from_family_income"
|
||||||
|
string="Deduct from Mother Income" widget="boolean_toggle"/>
|
||||||
</tree>
|
</tree>
|
||||||
</field>
|
</field>
|
||||||
</page>
|
</page>
|
||||||
|
|
@ -918,7 +949,8 @@
|
||||||
<field name="mother_benefit_id" invisible="1"/>
|
<field name="mother_benefit_id" invisible="1"/>
|
||||||
<field name="loan_start_date"/>
|
<field name="loan_start_date"/>
|
||||||
<field name="loan_end_date"/>
|
<field name="loan_end_date"/>
|
||||||
<field name="deduct_from_family_income" string="Deduct from Mother Income"
|
<field name="deduct_from_family_income"
|
||||||
|
string="Deduct from Mother Income"
|
||||||
widget="boolean_toggle"/>
|
widget="boolean_toggle"/>
|
||||||
</group>
|
</group>
|
||||||
</group>
|
</group>
|
||||||
|
|
@ -933,7 +965,8 @@
|
||||||
<field name="currency_id" invisible="1"/>
|
<field name="currency_id" invisible="1"/>
|
||||||
<field name="state" invisible="1"/>
|
<field name="state" invisible="1"/>
|
||||||
<field name="loan_attach" widget="binary"/>
|
<field name="loan_attach" widget="binary"/>
|
||||||
<field name="deduct_from_family_income" string="Deduct from Mother Income" widget="boolean_toggle"/>
|
<field name="deduct_from_family_income"
|
||||||
|
string="Deduct from Mother Income" widget="boolean_toggle"/>
|
||||||
</tree>
|
</tree>
|
||||||
</field>
|
</field>
|
||||||
</page>
|
</page>
|
||||||
|
|
@ -1770,9 +1803,9 @@
|
||||||
</group>
|
</group>
|
||||||
</page>
|
</page>
|
||||||
<page string="Suspend Reason"
|
<page string="Suspend Reason"
|
||||||
attrs="{'invisible': [('action_type','not in',['suspended','exception'])]}"
|
attrs="{'invisible': [('action_type','not in',['suspended','exception','resume_from_temporary','resume_from_final'])]}"
|
||||||
>
|
>
|
||||||
<group>
|
<group string="Suspend">
|
||||||
<group>
|
<group>
|
||||||
<field name="suspend_reason"
|
<field name="suspend_reason"
|
||||||
options="{'no_create': True, 'no_create_edit': True,'no_quick_create': True, 'no_open': True}"/>
|
options="{'no_create': True, 'no_create_edit': True,'no_quick_create': True, 'no_open': True}"/>
|
||||||
|
|
@ -1785,6 +1818,16 @@
|
||||||
<field name="suspend_method" readonly="1" force_save="1"/>
|
<field name="suspend_method" readonly="1" force_save="1"/>
|
||||||
</group>
|
</group>
|
||||||
</group>
|
</group>
|
||||||
|
<group string="Resume">
|
||||||
|
<group >
|
||||||
|
<field name="resume_reason_id"
|
||||||
|
options="{'no_create': True, 'no_create_edit': True,'no_quick_create': True, 'no_open': True}"/>
|
||||||
|
<field name="resume_date"/>
|
||||||
|
</group>
|
||||||
|
<group>
|
||||||
|
<field name="resume_notes"/>
|
||||||
|
</group>
|
||||||
|
</group>
|
||||||
</page>
|
</page>
|
||||||
<page string="Exception"
|
<page string="Exception"
|
||||||
attrs="{'invisible': [('action_type', 'not in', ['exception']),('is_excluded_suspension','=',False)]}">
|
attrs="{'invisible': [('action_type', 'not in', ['exception']),('is_excluded_suspension','=',False)]}">
|
||||||
|
|
|
||||||
|
|
@ -23,6 +23,31 @@
|
||||||
string="Third Approve" class="oe_highlight"
|
string="Third Approve" class="oe_highlight"
|
||||||
groups="odex_benefit.group_benefit_manager"
|
groups="odex_benefit.group_benefit_manager"
|
||||||
attrs="{'invisible': ['|',('action_type','!=','suspended'),('state', 'not in', ['family_services_manager'])]}"/>
|
attrs="{'invisible': ['|',('action_type','!=','suspended'),('state', 'not in', ['family_services_manager'])]}"/>
|
||||||
|
<button name="action_resume_first_accept" type="object"
|
||||||
|
string="Resume Approval by Operations Head" class="oe_highlight"
|
||||||
|
attrs="{'invisible': ['|',('action_type','not in',['resume_from_final','resume_from_temporary']),('state', 'not in', ['waiting_approve'])]}"
|
||||||
|
groups="odex_benefit.group_benefit_woman_commitee,odex_benefit.group_benefit_manager"
|
||||||
|
/>
|
||||||
|
<button name="action_resume_second_accept" type="object"
|
||||||
|
string="Resume Approval by Branch Manager" class="oe_highlight"
|
||||||
|
groups="odex_benefit.group_benefit_branch_manager,odex_benefit.group_benefit_manager"
|
||||||
|
attrs="{'invisible': ['|',('action_type','not in',['resume_from_final','resume_from_temporary']),('state', 'not in', ['first_approve'])]}"/>
|
||||||
|
<button name="action_resume_third_accept" type="object"
|
||||||
|
string="Resume Approval by Family Services Manager" class="oe_highlight"
|
||||||
|
groups="odex_benefit.group_benefit_manager"
|
||||||
|
attrs="{'invisible': ['|',('action_type','not in',['resume_from_final','resume_from_temporary']),('state', 'not in', ['family_services_manager'])]}"/>
|
||||||
|
<button name="action_resume_member" string="Resume Family Service"
|
||||||
|
type="object" class="btn btn-success"
|
||||||
|
attrs="{'invisible': [('state', 'not in', ['temporary_suspended', 'suspended_second_approve'])]}"
|
||||||
|
groups="odex_benefit.group_benefit_researcher"/>
|
||||||
|
<button name="action_final_suspend" type="object"
|
||||||
|
string="Final Suspension" class="btn btn-danger"
|
||||||
|
attrs="{'invisible': [('state', '!=', 'temporary_suspended')]}"
|
||||||
|
groups="odex_benefit.group_benefit_manager"/>
|
||||||
|
<button name="action_reject_resume" type="object"
|
||||||
|
string="Reject Resume" class="oe_highlight"
|
||||||
|
attrs="{'invisible': ['|',('action_type','not in',['resume_from_final','resume_from_temporary']),('state', 'not in', ['waiting_approve','first_approve','family_services_manager'])]}"
|
||||||
|
/>
|
||||||
<button name="action_suspend_refuse" type="object"
|
<button name="action_suspend_refuse" type="object"
|
||||||
string="Suspend Refuse" class="oe_highlight"
|
string="Suspend Refuse" class="oe_highlight"
|
||||||
attrs="{'invisible': ['|',('action_type','!=','suspended'),('state', 'not in', ['waiting_approve','first_approve','family_services_manager','suspended_second_approve'])]}"
|
attrs="{'invisible': ['|',('action_type','!=','suspended'),('state', 'not in', ['waiting_approve','first_approve','family_services_manager','suspended_second_approve'])]}"
|
||||||
|
|
@ -238,8 +263,8 @@
|
||||||
</field>
|
</field>
|
||||||
</page>
|
</page>
|
||||||
<page string="Suspend Reason"
|
<page string="Suspend Reason"
|
||||||
attrs="{'invisible': [('action_type','not in',['suspended','exception'])]}">
|
attrs="{'invisible': [('action_type','not in',['suspended','exception','resume_from_temporary','resume_from_final'])]}">
|
||||||
<group>
|
<group string="Suspend">
|
||||||
<group>
|
<group>
|
||||||
<field name="suspend_reason"/>
|
<field name="suspend_reason"/>
|
||||||
<field name="suspend_description"/>
|
<field name="suspend_description"/>
|
||||||
|
|
@ -251,6 +276,16 @@
|
||||||
<field name="suspend_method" readonly="1" force_save="1"/>
|
<field name="suspend_method" readonly="1" force_save="1"/>
|
||||||
</group>
|
</group>
|
||||||
</group>
|
</group>
|
||||||
|
<group string="Resume">
|
||||||
|
<group >
|
||||||
|
<field name="resume_reason_id"
|
||||||
|
options="{'no_create': True, 'no_create_edit': True,'no_quick_create': True, 'no_open': True}"/>
|
||||||
|
<field name="resume_date"/>
|
||||||
|
</group>
|
||||||
|
<group>
|
||||||
|
<field name="resume_notes"/>
|
||||||
|
</group>
|
||||||
|
</group>
|
||||||
</page>
|
</page>
|
||||||
<page string="Exception"
|
<page string="Exception"
|
||||||
attrs="{'invisible': [('action_type','not in',['exception'])]}">
|
attrs="{'invisible': [('action_type','not in',['exception'])]}">
|
||||||
|
|
|
||||||
|
|
@ -4,6 +4,7 @@ from odoo import models, fields, _, api
|
||||||
from odoo.exceptions import UserError
|
from odoo.exceptions import UserError
|
||||||
from datetime import datetime, timedelta
|
from datetime import datetime, timedelta
|
||||||
|
|
||||||
|
|
||||||
class SuspendReasonWizard(models.TransientModel):
|
class SuspendReasonWizard(models.TransientModel):
|
||||||
_name = 'suspend.reason.wizard'
|
_name = 'suspend.reason.wizard'
|
||||||
|
|
||||||
|
|
@ -25,8 +26,9 @@ class SuspendReasonWizard(models.TransientModel):
|
||||||
suspend_reason = fields.Many2one('suspend.reason', string='Suspend Reason',
|
suspend_reason = fields.Many2one('suspend.reason', string='Suspend Reason',
|
||||||
domain=lambda self: self._get_suspend_reason_domain(), required=True)
|
domain=lambda self: self._get_suspend_reason_domain(), required=True)
|
||||||
suspend_description = fields.Text(string='Suspend Description', required=True)
|
suspend_description = fields.Text(string='Suspend Description', required=True)
|
||||||
suspend_attachment = fields.Binary(string='Suspend Attachment', attachment=True, required=True)
|
suspend_attachment = fields.Binary(string='Suspend Attachment', attachment=True)
|
||||||
final_suspend_date = fields.Date(string="Final Suspend Date",default=fields.Date.context_today)
|
final_suspend_date = fields.Date(string="Final Suspend Date", default=fields.Date.context_today)
|
||||||
|
resume_date = fields.Date(string="Resume Date", default=fields.Date.today)
|
||||||
|
|
||||||
@api.onchange('suspend_reason')
|
@api.onchange('suspend_reason')
|
||||||
def _onchange_compute_final_suspend_date(self):
|
def _onchange_compute_final_suspend_date(self):
|
||||||
|
|
@ -37,11 +39,17 @@ class SuspendReasonWizard(models.TransientModel):
|
||||||
self.final_suspend_date = fields.Date.context_today(self)
|
self.final_suspend_date = fields.Date.context_today(self)
|
||||||
|
|
||||||
def _get_suspend_reason_domain(self):
|
def _get_suspend_reason_domain(self):
|
||||||
domain = [('is_stop_reason', '=', True)]
|
domain = []
|
||||||
|
if self._context.get('resume_family'):
|
||||||
|
domain.append(('is_resume_reason', '=', True))
|
||||||
|
else:
|
||||||
|
domain.append(('is_stop_reason', '=', True))
|
||||||
|
|
||||||
if self._context.get('active_model') == 'family.member':
|
if self._context.get('active_model') == 'family.member':
|
||||||
domain.append(('entity_type', '=', 'member'))
|
domain.append(('entity_type', '=', 'member'))
|
||||||
elif self._context.get('active_model') == 'grant.benefit':
|
elif self._context.get('active_model') == 'grant.benefit':
|
||||||
domain.append(('entity_type', '=', 'family'))
|
domain.append(('entity_type', '=', 'family'))
|
||||||
|
|
||||||
return domain
|
return domain
|
||||||
|
|
||||||
def _create_attachment_record_from_binary(self):
|
def _create_attachment_record_from_binary(self):
|
||||||
|
|
@ -65,36 +73,75 @@ class SuspendReasonWizard(models.TransientModel):
|
||||||
|
|
||||||
def action_submit(self):
|
def action_submit(self):
|
||||||
for rec in self:
|
for rec in self:
|
||||||
rec.entity_id.member_ids.write({
|
benefit = rec.entity_id
|
||||||
'is_excluded_suspension': False,
|
if not benefit:
|
||||||
'is_member_workflow': False,
|
raise UserError(_("No family record found."))
|
||||||
'final_suspend_date': rec.final_suspend_date,
|
|
||||||
})
|
if self._context.get('resume_family'):
|
||||||
attachment = rec._create_attachment_record_from_binary()
|
action_type = ('resume_from_temporary'
|
||||||
rec.entity_id.suspend_attachment = [(4, attachment.id)]
|
if benefit.state == 'temporary_suspended'
|
||||||
rec.entity_id.write({
|
else 'resume_from_final')
|
||||||
'state': 'waiting_approve',
|
vals = {
|
||||||
'action_type': 'suspended',
|
'state': 'waiting_approve',
|
||||||
'suspend_reason': rec.suspend_reason.id,
|
'action_type': action_type,
|
||||||
'suspend_description': rec.suspend_description,
|
'resume_reason_id': rec.suspend_reason.id,
|
||||||
'suspend_type': rec.suspend_reason.suspend_type,
|
'resume_date': rec.resume_date,
|
||||||
'suspend_method': 'manual',
|
'resume_notes': rec.suspend_description,
|
||||||
'final_suspend_date': rec.final_suspend_date,
|
}
|
||||||
'is_excluded_suspension': False,
|
else:
|
||||||
})
|
benefit.member_ids.write({
|
||||||
|
'is_excluded_suspension': False,
|
||||||
|
'is_member_workflow': False,
|
||||||
|
'final_suspend_date': rec.final_suspend_date,
|
||||||
|
})
|
||||||
|
if rec.suspend_attachment:
|
||||||
|
attachment = rec._create_attachment_record_from_binary()
|
||||||
|
benefit.suspend_attachment = [(4, attachment.id)]
|
||||||
|
|
||||||
|
vals = {
|
||||||
|
'state': 'waiting_approve',
|
||||||
|
'action_type': 'suspended',
|
||||||
|
'suspend_reason': rec.suspend_reason.id,
|
||||||
|
'suspend_description': rec.suspend_description,
|
||||||
|
'suspend_type': rec.suspend_reason.suspend_type,
|
||||||
|
'suspend_method': 'manual',
|
||||||
|
'final_suspend_date': rec.final_suspend_date,
|
||||||
|
'is_excluded_suspension': False,
|
||||||
|
}
|
||||||
|
benefit.write(vals)
|
||||||
|
|
||||||
def action_member_submit(self):
|
def action_member_submit(self):
|
||||||
for rec in self:
|
for rec in self:
|
||||||
rec.member_id.write({
|
member = rec.member_id
|
||||||
'state_a': 'waiting_approve',
|
if not member:
|
||||||
'action_type': 'suspended',
|
raise UserError(_("No member record found."))
|
||||||
'suspend_reason': rec.suspend_reason.id,
|
|
||||||
'suspend_description': rec.suspend_description,
|
if self._context.get('resume_family'):
|
||||||
'suspend_type': rec.suspend_reason.suspend_type,
|
action_type = ('resume_from_temporary'
|
||||||
'suspend_method': 'manual',
|
if member.state == 'temporary_suspended'
|
||||||
'final_suspend_date': rec.final_suspend_date,
|
else 'resume_from_final')
|
||||||
'is_member_workflow': True,
|
|
||||||
'is_excluded_suspension': False,
|
vals = {
|
||||||
})
|
'state_a': 'waiting_approve',
|
||||||
attachment = rec._create_attachment_record_from_binary()
|
'action_type': action_type,
|
||||||
rec.member_id.suspend_attachment = [(4, attachment.id)]
|
'resume_reason_id': rec.suspend_reason.id,
|
||||||
|
'resume_date': rec.resume_date,
|
||||||
|
'resume_notes': rec.suspend_description,
|
||||||
|
}
|
||||||
|
else:
|
||||||
|
vals = {
|
||||||
|
'state_a': 'waiting_approve',
|
||||||
|
'action_type': 'suspended',
|
||||||
|
'suspend_reason': rec.suspend_reason.id,
|
||||||
|
'suspend_description': rec.suspend_description,
|
||||||
|
'suspend_type': rec.suspend_reason.suspend_type,
|
||||||
|
'suspend_method': 'manual',
|
||||||
|
'final_suspend_date': rec.final_suspend_date,
|
||||||
|
'is_member_workflow': True,
|
||||||
|
'is_excluded_suspension': False,
|
||||||
|
}
|
||||||
|
|
||||||
|
if rec.suspend_attachment:
|
||||||
|
attachment = rec._create_attachment_record_from_binary()
|
||||||
|
member.suspend_attachment = [(4, attachment.id)]
|
||||||
|
member.write(vals)
|
||||||
|
|
|
||||||
|
|
@ -9,13 +9,13 @@
|
||||||
<sheet>
|
<sheet>
|
||||||
<group>
|
<group>
|
||||||
<group>
|
<group>
|
||||||
<field name="suspend_reason"/>
|
<field name="suspend_reason"/>
|
||||||
<field name="suspend_description"/>
|
<field name="suspend_description"/>
|
||||||
</group>
|
</group>
|
||||||
<group>
|
<group>
|
||||||
<field name="suspend_attachment"/>
|
<field name="suspend_attachment" required="1"/>
|
||||||
<field name="final_suspend_date" readonly="1" force_save="1"/>
|
<field name="final_suspend_date" readonly="1" force_save="1"/>
|
||||||
</group>
|
</group>
|
||||||
</group>
|
</group>
|
||||||
<footer>
|
<footer>
|
||||||
<button name="action_submit" type="object" string="Submit" class="oe_highlight"/>
|
<button name="action_submit" type="object" string="Submit" class="oe_highlight"/>
|
||||||
|
|
@ -35,13 +35,13 @@
|
||||||
<sheet>
|
<sheet>
|
||||||
<group>
|
<group>
|
||||||
<group>
|
<group>
|
||||||
<field name="suspend_reason"/>
|
<field name="suspend_reason"/>
|
||||||
<field name="suspend_description"/>
|
<field name="suspend_description"/>
|
||||||
</group>
|
</group>
|
||||||
<group>
|
<group>
|
||||||
<field name="suspend_attachment"/>
|
<field name="suspend_attachment" required="1"/>
|
||||||
<field name="final_suspend_date" readonly="1" force_save="1"/>
|
<field name="final_suspend_date" readonly="1" force_save="1"/>
|
||||||
</group>
|
</group>
|
||||||
</group>
|
</group>
|
||||||
<footer>
|
<footer>
|
||||||
<button name="action_member_submit" type="object" string="Submit" class="oe_highlight"/>
|
<button name="action_member_submit" type="object" string="Submit" class="oe_highlight"/>
|
||||||
|
|
@ -50,6 +50,35 @@
|
||||||
</footer>
|
</footer>
|
||||||
</sheet>
|
</sheet>
|
||||||
</form>
|
</form>
|
||||||
|
</field>
|
||||||
|
</record>
|
||||||
|
<record id="view_resume_reason_wizard_form" model="ir.ui.view">
|
||||||
|
<field name="name">resume.reason.wizard.form</field>
|
||||||
|
<field name="model">suspend.reason.wizard</field>
|
||||||
|
<field name="arch" type="xml">
|
||||||
|
<form>
|
||||||
|
<sheet>
|
||||||
|
<group>
|
||||||
|
<group>
|
||||||
|
<field name="suspend_reason" string="Reason for return"/>
|
||||||
|
<field name="suspend_description" string="Notes"/>
|
||||||
|
</group>
|
||||||
|
<group>
|
||||||
|
<field name="resume_date" required="1"/>
|
||||||
|
</group>
|
||||||
|
</group>
|
||||||
|
<footer>
|
||||||
|
<button name="action_submit"
|
||||||
|
invisible="not context.get('active_model') == 'grant.benefit'" type="object"
|
||||||
|
string="Submit" class="oe_highlight"/>
|
||||||
|
<button name="action_member_submit"
|
||||||
|
invisible="not context.get('active_model') == 'family.member'" type="object"
|
||||||
|
string="Submit" class="oe_highlight"/>
|
||||||
|
or
|
||||||
|
<button special="cancel" string="Cancel"/>
|
||||||
|
</footer>
|
||||||
|
</sheet>
|
||||||
|
</form>
|
||||||
|
|
||||||
</field>
|
</field>
|
||||||
</record>
|
</record>
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue