From 7af548ed3857212378bb6988c90c47d142ac0f6a Mon Sep 17 00:00:00 2001 From: eman Date: Tue, 10 Sep 2024 17:54:23 +0300 Subject: [PATCH 1/3] member Suspend --- odex25_ensan/odex_benefit/models/benefit.py | 7 ++- .../odex_benefit/models/family_members.py | 62 ++++++++++++++++++- .../odex_benefit/views/benefit_view.xml | 9 +-- .../odex_benefit/views/family_members.xml | 29 ++++++++- .../wizards/researcher_wizard.xml | 2 +- .../wizards/suspend_reason_wizard.py | 17 ++++- .../wizards/suspend_reason_wizard.xml | 26 ++++++++ 7 files changed, 141 insertions(+), 11 deletions(-) diff --git a/odex25_ensan/odex_benefit/models/benefit.py b/odex25_ensan/odex_benefit/models/benefit.py index d33b54cc8..a5e2205f2 100644 --- a/odex25_ensan/odex_benefit/models/benefit.py +++ b/odex25_ensan/odex_benefit/models/benefit.py @@ -31,6 +31,12 @@ class GrantBenefitProfile(models.Model): result.append((rec.id, name)) return result + @api.model + def name_search(self, name, args=None, operator='ilike', limit=100): + partners = self.search(['|', '|', ('name', operator, name), ('phone', operator, name), + ('code', operator, name)]) + return partners.name_get() + profile_step_count = fields.Integer() partner_id = fields.Many2one('res.partner', string='partner', required=True, ondelete="cascade") code = fields.Char(string="Code", copy=False, readonly=True, default=lambda x: _('New')) @@ -326,7 +332,6 @@ class GrantBenefitProfile(models.Model): ('second_approve', 'Second Approved'), ('refused', 'Refused'), ('temporarily_suspended', 'Temporarily suspended'), - ('suspended', 'suspended'), ('suspended_first_approve', 'Suspended First Approved'), ('suspended_second_approve', 'Suspended Second Approved'), ('not_leaving', 'Not Leaving'), diff --git a/odex25_ensan/odex_benefit/models/family_members.py b/odex25_ensan/odex_benefit/models/family_members.py index 53c28262d..45b3c595c 100644 --- a/odex25_ensan/odex_benefit/models/family_members.py +++ b/odex25_ensan/odex_benefit/models/family_members.py @@ -38,6 +38,7 @@ class FamilyMemberProfile(models.Model): birth_date = fields.Date(string="Birth Date") age = fields.Integer(string="Age", compute='_compute_get_age_date') is_work = fields.Boolean('Is Work?') + is_dead = fields.Boolean('Is Dead?') member_income = fields.Float('Member Income') is_married = fields.Boolean('Is Married?') relation = fields.Selection( @@ -131,13 +132,39 @@ class FamilyMemberProfile(models.Model): ('not_leaving', 'Not Leaving'), ('black_list', 'Black List'), ], string='state', default="draft", tracking=True,related="benefit_id.state") + state_a = fields.Selection([ + ('draft', 'Draft'), + ('complete_info', 'Complete Information'), + ('waiting_approve', 'Waiting Approved'), + ('woman_manager', 'Woman Manager'), + ('researcher_team', 'Researcher Team'), + ('edit_info', 'Edit Information'), + ('first_refusal', 'First Refusal'), + ('first_approve', 'First Approved'), + ('second_approve', 'Second Approved'), + ('refused', 'Refused'), + ('temporarily_suspended', 'Temporarily suspended'), + ('suspended', 'suspended'), + ('suspended_first_approve', 'Suspended First Approved'), + ('suspended_second_approve', 'Suspended Second Approved'), + ('not_leaving', 'Not Leaving'), + ('black_list', 'Black List'), + ], string='stateA', default="draft", tracking=True) member_status = fields.Selection(selection=[ ('benefit', 'Benefit'), ('non_benefit', 'Non Benefit'), ], string='Benefit Status', compute="check_member_status",default = False) + suspend_reason = fields.Many2one('suspend.reason', string='Suspend Reason') + reason = fields.Text(string='Reason') + suspend_description = fields.Text(string='Suspend Description') + suspend_attachment = fields.Binary(string='Suspend Attachment', attachment=True) + suspend_type = fields.Selection( + selection=[('temporarily_suspend', 'Temporarily Suspended'), ('suspend', 'Suspend')], string="Suspend Type") + suspend_method = fields.Selection(selection=[('manual', 'Manual'), ('auto', 'Auto')], string="Suspend Method",default='auto') + is_member_workflow = fields.Boolean('Is Member Workflow?') @api.depends('relation','birth_date', 'is_scientific_specialty', 'is_medical_specialty', 'has_disabilities', 'is_married', - 'minor_siblings','member_income','is_married','member_location','education_status','case_study','state') + 'minor_siblings','member_income','is_married','member_location','education_status','case_study','state','is_dead') def check_member_status(self): for rec in self: if rec.birth_date: @@ -176,7 +203,7 @@ class FamilyMemberProfile(models.Model): rec.member_status = 'non_benefit' if rec.member_location in ['with_relative', 'study_outside_saudi_arabia']: rec.member_status = 'non_benefit' - if rec.state == 'suspended_second_approve': + if rec.state == 'suspended_second_approve' or rec.is_dead == True: rec.member_status = 'non_benefit' elif rec.relation == 'daughter': if rec.age < female_benefit_age and rec.is_married: @@ -206,7 +233,7 @@ class FamilyMemberProfile(models.Model): rec.member_status = 'non_benefit' if rec.member_location in ['with_relative', 'study_outside_saudi_arabia']: rec.member_status = 'non_benefit' - if rec.state == 'suspended_second_approve': + if rec.state == 'suspended_second_approve' or rec.is_dead == True: rec.member_status = 'non_benefit' # General checks for all members # if rec.is_work: @@ -309,6 +336,35 @@ class FamilyMemberProfile(models.Model): 'message': _('Not Benefit')} return res + #Member Suspend Manual + def action_suspend(self): + for rec in self : + rec.is_member_workflow = True + return { + 'name': _('Suspend 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_suspend_member_reason_wizard_form').id, + 'target': 'new', + } + def action_suspend_first_accept(self): + for rec in self: + rec.state_a = 'suspended_first_approve' + def action_suspend_second_accept(self): + for rec in self: + rec.state_a = 'suspended_second_approve' + def action_suspend_refuse(self): + for rec in self: + rec.state_a = 'second_approve' + # def action_auto_suspend(self): + # obj = self.env["grant.benefit"].search([('state','=','second_approve'),('is_excluded_suspension','=',False)]) + # for rec in obj: + # if rec.benefit_member_count == 0 and rec.state == 'second_approve': + # rec.state = 'suspended_second_approve' + # rec.suspend_method = 'auto' + # Methods for Work flow for Member def complete_data(self): # message = self.create_message('complete_info') diff --git a/odex25_ensan/odex_benefit/views/benefit_view.xml b/odex25_ensan/odex_benefit/views/benefit_view.xml index 490d32c59..ed230fb00 100644 --- a/odex25_ensan/odex_benefit/views/benefit_view.xml +++ b/odex25_ensan/odex_benefit/views/benefit_view.xml @@ -132,7 +132,7 @@ + statusbar_visible="draft,complete_info,waiting_approve,first_approve,second_approve,first_refusal,refused,temporarily_suspended"/>
@@ -300,6 +300,7 @@ + @@ -698,7 +699,7 @@ - + @@ -706,8 +707,8 @@ - - + + diff --git a/odex25_ensan/odex_benefit/views/family_members.xml b/odex25_ensan/odex_benefit/views/family_members.xml index 42ef736bf..8ec195c4b 100644 --- a/odex25_ensan/odex_benefit/views/family_members.xml +++ b/odex25_ensan/odex_benefit/views/family_members.xml @@ -6,6 +6,16 @@
+
+

@@ -68,6 +81,7 @@ + @@ -167,6 +181,19 @@ + + + + + + + + + + + + + diff --git a/odex25_ensan/odex_benefit/wizards/researcher_wizard.xml b/odex25_ensan/odex_benefit/wizards/researcher_wizard.xml index df08bc6d1..f4ae37f95 100644 --- a/odex25_ensan/odex_benefit/wizards/researcher_wizard.xml +++ b/odex25_ensan/odex_benefit/wizards/researcher_wizard.xml @@ -33,7 +33,7 @@ - +
+ + + +
+ From b800b9224706fce7d5922539f148988f186263bf Mon Sep 17 00:00:00 2001 From: eman Date: Tue, 10 Sep 2024 18:01:53 +0300 Subject: [PATCH 2/3] member Suspend --- odex25_ensan/odex_benefit/models/family_members.py | 1 + 1 file changed, 1 insertion(+) diff --git a/odex25_ensan/odex_benefit/models/family_members.py b/odex25_ensan/odex_benefit/models/family_members.py index 45b3c595c..366e67960 100644 --- a/odex25_ensan/odex_benefit/models/family_members.py +++ b/odex25_ensan/odex_benefit/models/family_members.py @@ -358,6 +358,7 @@ class FamilyMemberProfile(models.Model): def action_suspend_refuse(self): for rec in self: rec.state_a = 'second_approve' + rec.is_member_workflow = False # def action_auto_suspend(self): # obj = self.env["grant.benefit"].search([('state','=','second_approve'),('is_excluded_suspension','=',False)]) # for rec in obj: From 6d34c457e63ab57b0302b5c57182e95cb173296b Mon Sep 17 00:00:00 2001 From: eman Date: Thu, 12 Sep 2024 03:18:30 +0300 Subject: [PATCH 3/3] Benefit Security --- odex25_ensan/odex_benefit/models/benefit.py | 27 ++- .../odex_benefit/models/hr_department.py | 11 +- .../odex_benefit/security/ir.model.access.csv | 169 +++++++++--------- .../odex_benefit/security/security_view.xml | 28 +-- .../odex_benefit/views/actions_and_menus.xml | 2 +- .../odex_benefit/views/benefit_view.xml | 14 +- .../wizards/entity_refused_wizard.py | 63 ++++--- 7 files changed, 165 insertions(+), 149 deletions(-) diff --git a/odex25_ensan/odex_benefit/models/benefit.py b/odex25_ensan/odex_benefit/models/benefit.py index a5e2205f2..02d92929b 100644 --- a/odex25_ensan/odex_benefit/models/benefit.py +++ b/odex25_ensan/odex_benefit/models/benefit.py @@ -33,10 +33,19 @@ class GrantBenefitProfile(models.Model): @api.model def name_search(self, name, args=None, operator='ilike', limit=100): - partners = self.search(['|', '|', ('name', operator, name), ('phone', operator, name), - ('code', operator, name)]) + partners = self.search(['|', '|','|', ('name', operator, name), ('phone', operator, name), + ('code', operator, name),('father_id_number',operator,name)]) return partners.name_get() + @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_researcher"): + args += [('researcher_id.employee_id', '=', self.env.user.employee_id.id)] + if self.env.user and self.env.user.id and (self.env.user.has_group("odex_benefit.group_benefit_woman_commitee") or self.env.user.has_group("odex_benefit.group_benefit_branch_manager")): + args += [('branch_id', '=', self.env.user.employee_id.department_id.id)] + if self.env.user and self.env.user.id and self.env.user.has_group("odex_benefit.group_benefit_manager"): + args = [] + return super(GrantBenefitProfile, self).search(args, offset, limit, order, count) profile_step_count = fields.Integer() partner_id = fields.Many2one('res.partner', string='partner', required=True, ondelete="cascade") code = fields.Char(string="Code", copy=False, readonly=True, default=lambda x: _('New')) @@ -619,9 +628,9 @@ class GrantBenefitProfile(models.Model): rec.user_id.sudo().write({ 'groups_id': [(3, self.env.ref('base.group_user', False).id)], }) - rec.user_id.sudo().write({ - 'groups_id': [(4, self.env.ref('odex_benefit.group_benefit_user', False).id)], - }) + # rec.user_id.sudo().write({ + # 'groups_id': [(4, self.env.ref('odex_benefit.group_benefit_user', False).id)], + # }) rec.user_id.sudo().write({ 'groups_id': [(4, self.env.ref('base.group_portal', False).id)], }) @@ -1226,9 +1235,9 @@ class GrantBenefitProfile(models.Model): user.sudo().write({ 'groups_id': [(3, self.env.ref('base.group_user', False).id)], }) - user.sudo().write({ - 'groups_id': [(4, self.env.ref('odex_benefit.group_benefit_user', False).id)], - }) + # user.sudo().write({ + # 'groups_id': [(4, self.env.ref('odex_benefit.group_benefit_user', False).id)], + # }) user.sudo().write({ 'groups_id': [(4, self.env.ref('base.group_portal', False).id)], }) @@ -1465,4 +1474,4 @@ class Representative(models.Model): location = fields.Char(string='location') block = fields.Char('Benefit Block') work = fields.Char() - partner_id = fields.Many2one('res.partner', string='partner', required=True, ondelete="cascade") + partner_id = fields.Many2one('res.partner', string='partner', required=True, ondelete="cascade") \ No newline at end of file diff --git a/odex25_ensan/odex_benefit/models/hr_department.py b/odex25_ensan/odex_benefit/models/hr_department.py index 552cd5131..4f524c28c 100644 --- a/odex25_ensan/odex_benefit/models/hr_department.py +++ b/odex25_ensan/odex_benefit/models/hr_department.py @@ -10,4 +10,13 @@ class HrDepartment(models.Model): for department in self: name = department.name result.append((department.id, name)) - return result \ No newline at end of file + return result + + # def name_get(self): + # result = [] + # if self.env.context.get('special_display_name', True): + # for department in self: + # name = department.name + # result.append((department.id, name)) + # return result + # return super(HrDepartment, self).name_get() \ No newline at end of file diff --git a/odex25_ensan/odex_benefit/security/ir.model.access.csv b/odex25_ensan/odex_benefit/security/ir.model.access.csv index bb5d73b26..6b9c71f4f 100644 --- a/odex25_ensan/odex_benefit/security/ir.model.access.csv +++ b/odex25_ensan/odex_benefit/security/ir.model.access.csv @@ -1,91 +1,90 @@ id,name,model_id:id,group_id:id,perm_read,perm_write,perm_create,perm_unlink -access_benefit_record,access_benefit_record,model_grant_benefit,odex_benefit.group_benefit_user,1,0,1,0 -access_benefit_edit_record,access_benefit_edit_record,model_grant_benefit,odex_benefit.group_benefit_edit,1,1,0,0 -access_benefit_family_record,access_benefit_family_record,model_benefit_family,odex_benefit.group_benefit_user,1,1,1,0 -access_benefit_record_city,access_benefit_record_city,model_res_country_city,odex_benefit.group_benefit_user,1,1,0,0 -access_benefit_record_reason,access_benefit_record_reason,model_entity_refuse_reason,odex_benefit.group_benefit_user,1,1,1,0 -access_benefit_domestic_labor,access_domestic_labor,model_domestic_labor,odex_benefit.group_benefit_officer,1,1,1,1 -access_benefit_widow_family,access_widow_family,model_widow_family,odex_benefit.group_benefit_officer,1,1,1,1 -access_benefit_divorcee_family,access_divorcee_family,model_divorcee_family,odex_benefit.group_benefit_officer,1,1,1,1 -access_external_request,access_external_request,model_external_request,odex_benefit.group_benefit_officer,1,1,1,1 -access_benefit_food_basket,access_benefit_food_basket,model_benefit_food_basket,odex_benefit.group_benefit_officer,1,1,1,1 -access_food_basket_line,access_food_basket_line,model_food_basket_line,odex_benefit.group_benefit_officer,1,1,1,1 -access_benefit_zkat,access_benefit_zkat,model_benefit_zkat,odex_benefit.group_benefit_officer,1,1,1,1 -access_payment_collection_line,access_payment_collection_line,model_payment_collection_line,odex_benefit.group_benefit_officer,1,1,1,1 -access_benefit_food_surplus,access_benefit_food_surplus,model_benefit_food_surplus,odex_benefit.group_benefit_officer,1,1,1,1 -access_food_surplus_line,access_food_surplus_line,model_food_surplus_line,odex_benefit.group_benefit_officer,1,1,1,1 -access_food_surplus_type,access_food_surplus_type,model_food_surplus_type,odex_benefit.group_benefit_officer,1,1,1,1 -access_benefit_loans,access_benefit_loans,model_benefit_loans,odex_benefit.group_benefit_officer,1,1,1,1 -access_appliances_furniture,access_appliances_furniture,model_appliances_furniture,odex_benefit.group_benefit_officer,1,1,1,1 -access_specialization_specialization,access_specialization_specialization,model_specialization_specialization,odex_benefit.group_benefit_officer,1,1,1,1 -access_sport_type,access_sport_type,model_sport_type,odex_benefit.group_benefit_officer,1,1,1,1 -access_insurance_company,access_insurance_company,model_insurance_company,odex_benefit.group_benefit_officer,1,1,1,1 -access_other_associations,access_other_associations,model_other_associations,odex_benefit.group_benefit_officer,1,1,1,1 -access_craft_skills,access_craft_skills,model_craft_skills,odex_benefit.group_benefit_officer,1,1,1,1 -access_training_inclinations,access_training_inclinations,model_training_inclinations,odex_benefit.group_benefit_officer,1,1,1,1 -access_appliances_furniture_need,access_appliances_furniture_need,model_appliances_furniture_need,odex_benefit.group_benefit_officer,1,1,1,1 -access_salary_line,access_salary_line,model_salary_line,odex_benefit.group_benefit_officer,1,1,1,1 -access_benefit_club,access_benefit_club,model_benefit_club,odex_benefit.group_benefit_officer,1,1,1,1 -access_benefit_programs,access_benefit_programs,model_benefit_programs,odex_benefit.group_benefit_officer,1,1,1,1 -access_benefit_housing,access_benefit_housing,model_benefit_housing,odex_benefit.group_benefit_user,1,1,0,0 -access_benefit_housing,access_benefit_housing,model_benefit_housing,odex_benefit.group_benefit_officer,1,1,1,1 -access_benefit_housing_rooms,access_benefit_housing_rooms,model_benefit_housing_rooms,odex_benefit.group_benefit_officer,1,1,1,1 -access_benefit_housing_rooms_items,access_benefit_housing_rooms_items,model_benefit_housing_rooms_items,odex_benefit.group_benefit_officer,1,1,1,1 -access_housing_rooms_type,access_housing_rooms_type,model_housing_rooms_type,odex_benefit.group_benefit_user,1,1,1,1 -access_rooms_items,access_rooms_items,model_rooms_items,odex_benefit.group_benefit_user,1,1,1,1 -access_item_status,access_item_status,model_item_status,odex_benefit.group_benefit_user,1,1,1,1 -access_rooms_categories,access_rooms_categories,model_rooms_categories,odex_benefit.group_benefit_user,1,1,1,1 -access_housing_rooms_members,access_housing_rooms_members,model_housing_rooms_members,odex_benefit.group_benefit_user,1,1,1,1 -access_item_status,access_item_status,model_item_status,odex_benefit.group_benefit_user,1,1,1,1 -access_generate_reports,access_generate_reports,model_generate_reports,odex_benefit.group_benefit_user,1,1,1,1 -access_food_basket_benefits_line,access_food_basket_benefits_line,model_food_basket_benefits_line,odex_benefit.group_benefit_officer,1,1,1,1 -access_benefit_record_officer,access_benefit_record_officer,model_grant_benefit,odex_benefit.group_benefit_officer,1,1,1,1 -access_benefit_family_record_officer,access_benefit_family_record_officer,model_benefit_family,odex_benefit.group_benefit_officer,1,1,1,1 -access_benefit_record_city_officer,access_benefit_record_city_officer,model_res_country_city,odex_benefit.group_benefit_officer,1,1,1,1 -access_external_benefits,access_external_benefits,model_external_benefits,odex_benefit.group_benefit_user,1,1,1,0 -access_benefits_representative,access_benefits_representative,model_benefits_representative,odex_benefit.group_benefit_user,1,1,1,0 -access_benefits_needs,access_benefits_needs,model_benefits_needs,odex_benefit.group_benefit_user,1,1,1,0 -access_needs_payment_line,access_needs_payment_line,model_needs_payment_line,odex_benefit.group_benefit_user,1,1,1,0 -access_needs_categories,access_needs_categories,model_needs_categories,odex_benefit.group_benefit_user,1,1,1,0 -access_benefit_need,access_benefit_need,model_benefit_need,odex_benefit.group_benefit_user,1,1,1,0 -access_house_need,access_house_need,model_house_need,odex_benefit.group_benefit_user,1,1,1,0 -access_generate_reports_log,access_generate_reports_log,model_generate_reports_log,odex_benefit.group_benefit_user,1,1,1,0 -access_program_plane_line,access_program_plane_line,model_program_plane_line,odex_benefit.group_benefit_user,1,1,1,0 -access_benefit_club_activity,access_benefit_club_activity,model_benefit_club_activity,odex_benefit.group_benefit_user,1,1,1,0 -access_receive_benefit_loans,access_receive_benefit_loans,model_receive_benefit_loans,odex_benefit.group_benefit_user,1,1,1,0 -access_purchase_product_loan,access_purchase_product_loan,model_purchase_product_loan,odex_benefit.group_benefit_user,1,1,1,0 -access_receive_food_surplus,access_receive_food_surplus,model_receive_food_surplus,odex_benefit.group_benefit_user,1,1,1,0 -access_receive_appliances_furniture,access_receive_appliances_furniture,model_receive_appliances_furniture,odex_benefit.group_benefit_user,1,1,1,0 -access_donations_type,access_donations_type,model_donations_type,odex_benefit.group_benefit_user,1,1,1,0 -access_receive_benefit_zkat,access_receive_benefit_zkat,model_receive_benefit_zkat,odex_benefit.group_benefit_user,1,1,1,0 -access_zkat_line,access_zkat_line,model_zkat_line,odex_benefit.group_benefit_user,1,1,1,0 -access_benefit_zkat_line,access_benefit_zkat_line,model_benefit_zkat_line,odex_benefit.group_benefit_user,1,1,1,0 -access_receive_food_basket,access_receive_food_basket,model_receive_food_basket,odex_benefit.group_benefit_user,1,1,1,0 -access_benefit_sms_configuration,access_benefit_sms_configuration,model_benefit_sms_configuration,odex_benefit.group_benefit_user,1,1,1,0 -access_benefit_category,access_benefit_category,model_benefit_category,odex_benefit.group_benefit_user,1,1,1,1 -access_sport_line,access_sport_line,model_sport_line,odex_benefit.group_benefit_user,1,1,1,0 -access_benefit_behaviors,access_benefit_behaviors,model_benefit_behaviors,odex_benefit.group_benefit_user,1,1,1,0 -access_benefit_behaviors_type,access_benefit_behaviors_type,model_benefit_behaviors_type,odex_benefit.group_benefit_user,1,1,1,0 -access_benefit_expenses,access_benefit_expenses,model_benefit_expenses,odex_benefit.group_benefit_user,1,1,1,0 -access_benefit_cloth,access_benefit_cloth,model_benefit_cloth,odex_benefit.group_benefit_user,1,1,1,0 -access_cloth_type,access_cloth_type,model_cloth_type,odex_benefit.group_benefit_user,1,1,1,0 -access_cloth_size,access_cloth_size,model_cloth_size,odex_benefit.group_benefit_user,1,1,1,0 -access_expenses_line,access_expenses_line,model_expenses_line,odex_benefit.group_benefit_user,1,1,1,0 -access_associations_line,access_associations_line,model_associations_line,odex_benefit.group_benefit_user,1,1,1,0 -access_hospital_hospital,access_hospital_hospital,model_hospital_hospital,odex_benefit.group_benefit_user,1,1,1,0 -access_insurance_type,access_insurance_type,model_insurance_type,odex_benefit.group_benefit_user,1,1,1,0 -access_housing_need,access_housing_need,model_housing_need,odex_benefit.group_benefit_user,1,1,1,0 -access_cars_line,access_cars_line,model_cars_line,odex_benefit.group_benefit_user,1,1,1,0 -access_training_type,access_training_type,model_training_type,odex_benefit.group_benefit_user,1,1,1,0 -access_committees_line,access_committees_line,model_committees_line,odex_benefit.group_benefit_user,1,1,1,0 -access_benefit_followers,access_benefit_followers,model_benefit_followers,odex_benefit.group_benefit_user,1,1,1,0 -access_benefit_record_city_read,access_benefit_record_city_read,model_res_country_city,odex_benefit.group_benefit_user,1,0,0,0 -access_res_districts,access_res_districts,model_res_districts,odex_benefit.group_benefit_user,1,1,1,1 +access_benefit_record,access_benefit_record,model_grant_benefit,odex_benefit.group_benefit_researcher,1,1,1,0 +access_benefit_edit_record,access_benefit_edit_record,model_grant_benefit,odex_benefit.group_benefit_woman_commitee,odex_benefit.group_benefit_branch_manager,odex_benefit.group_benefit_manager,1,1,1,1 +access_benefit_family_record,access_benefit_family_record,model_benefit_family,,1,1,1,0 +access_benefit_record_city,access_benefit_record_city,model_res_country_city,,1,1,0,0 +access_benefit_record_reason,access_benefit_record_reason,model_entity_refuse_reason,,1,1,1,0 +access_benefit_domestic_labor,access_domestic_labor,model_domestic_labor,,1,1,1,1 +access_benefit_widow_family,access_widow_family,model_widow_family,,1,1,1,1 +access_benefit_divorcee_family,access_divorcee_family,model_divorcee_family,,1,1,1,1 +access_external_request,access_external_request,model_external_request,,1,1,1,1 +access_benefit_food_basket,access_benefit_food_basket,model_benefit_food_basket,,1,1,1,1 +access_food_basket_line,access_food_basket_line,model_food_basket_line,,1,1,1,1 +access_benefit_zkat,access_benefit_zkat,model_benefit_zkat,,1,1,1,1 +access_payment_collection_line,access_payment_collection_line,model_payment_collection_line,,1,1,1,1 +access_benefit_food_surplus,access_benefit_food_surplus,model_benefit_food_surplus,,1,1,1,1 +access_food_surplus_line,access_food_surplus_line,model_food_surplus_line,,1,1,1,1 +access_food_surplus_type,access_food_surplus_type,model_food_surplus_type,,1,1,1,1 +access_benefit_loans,access_benefit_loans,model_benefit_loans,,1,1,1,1 +access_appliances_furniture,access_appliances_furniture,model_appliances_furniture,,1,1,1,1 +access_specialization_specialization,access_specialization_specialization,model_specialization_specialization,,1,1,1,1 +access_sport_type,access_sport_type,model_sport_type,,1,1,1,1 +access_insurance_company,access_insurance_company,model_insurance_company,,1,1,1,1 +access_other_associations,access_other_associations,model_other_associations,,1,1,1,1 +access_craft_skills,access_craft_skills,model_craft_skills,,1,1,1,1 +access_training_inclinations,access_training_inclinations,model_training_inclinations,,1,1,1,1 +access_appliances_furniture_need,access_appliances_furniture_need,model_appliances_furniture_need,,1,1,1,1 +access_salary_line,access_salary_line,model_salary_line,,1,1,1,1 +access_benefit_club,access_benefit_club,model_benefit_club,,1,1,1,1 +access_benefit_programs,access_benefit_programs,model_benefit_programs,,1,1,1,1 +access_benefit_housing,access_benefit_housing,model_benefit_housing,,1,1,0,0 +access_benefit_housing,access_benefit_housing,model_benefit_housing,,1,1,1,1 +access_benefit_housing_rooms,access_benefit_housing_rooms,model_benefit_housing_rooms,,1,1,1,1 +access_benefit_housing_rooms_items,access_benefit_housing_rooms_items,model_benefit_housing_rooms_items,,1,1,1,1 +access_housing_rooms_type,access_housing_rooms_type,model_housing_rooms_type,,1,1,1,1 +access_rooms_items,access_rooms_items,model_rooms_items,,1,1,1,1 +access_item_status,access_item_status,model_item_status,,1,1,1,1 +access_rooms_categories,access_rooms_categories,model_rooms_categories,,1,1,1,1 +access_housing_rooms_members,access_housing_rooms_members,model_housing_rooms_members,,1,1,1,1 +access_item_status,access_item_status,model_item_status,,1,1,1,1 +access_generate_reports,access_generate_reports,model_generate_reports,,1,1,1,1 +access_food_basket_benefits_line,access_food_basket_benefits_line,model_food_basket_benefits_line,,1,1,1,1 +access_benefit_family_record_officer,access_benefit_family_record_officer,model_benefit_family,,1,1,1,1 +access_benefit_record_city_officer,access_benefit_record_city_officer,model_res_country_city,,1,1,1,1 +access_external_benefits,access_external_benefits,model_external_benefits,,1,1,1,0 +access_benefits_representative,access_benefits_representative,model_benefits_representative,,1,1,1,0 +access_benefits_needs,access_benefits_needs,model_benefits_needs,,1,1,1,0 +access_needs_payment_line,access_needs_payment_line,model_needs_payment_line,,1,1,1,0 +access_needs_categories,access_needs_categories,model_needs_categories,,1,1,1,0 +access_benefit_need,access_benefit_need,model_benefit_need,,1,1,1,0 +access_house_need,access_house_need,model_house_need,,1,1,1,0 +access_generate_reports_log,access_generate_reports_log,model_generate_reports_log,,1,1,1,0 +access_program_plane_line,access_program_plane_line,model_program_plane_line,,1,1,1,0 +access_benefit_club_activity,access_benefit_club_activity,model_benefit_club_activity,,1,1,1,0 +access_receive_benefit_loans,access_receive_benefit_loans,model_receive_benefit_loans,,1,1,1,0 +access_purchase_product_loan,access_purchase_product_loan,model_purchase_product_loan,,1,1,1,0 +access_receive_food_surplus,access_receive_food_surplus,model_receive_food_surplus,,1,1,1,0 +access_receive_appliances_furniture,access_receive_appliances_furniture,model_receive_appliances_furniture,,1,1,1,0 +access_donations_type,access_donations_type,model_donations_type,,1,1,1,0 +access_receive_benefit_zkat,access_receive_benefit_zkat,model_receive_benefit_zkat,,1,1,1,0 +access_zkat_line,access_zkat_line,model_zkat_line,,1,1,1,0 +access_benefit_zkat_line,access_benefit_zkat_line,model_benefit_zkat_line,,1,1,1,0 +access_receive_food_basket,access_receive_food_basket,model_receive_food_basket,,1,1,1,0 +access_benefit_sms_configuration,access_benefit_sms_configuration,model_benefit_sms_configuration,,1,1,1,0 +access_benefit_category,access_benefit_category,model_benefit_category,,1,1,1,1 +access_sport_line,access_sport_line,model_sport_line,,1,1,1,0 +access_benefit_behaviors,access_benefit_behaviors,model_benefit_behaviors,,1,1,1,0 +access_benefit_behaviors_type,access_benefit_behaviors_type,model_benefit_behaviors_type,,1,1,1,0 +access_benefit_expenses,access_benefit_expenses,model_benefit_expenses,,1,1,1,0 +access_benefit_cloth,access_benefit_cloth,model_benefit_cloth,,1,1,1,0 +access_cloth_type,access_cloth_type,model_cloth_type,,1,1,1,0 +access_cloth_size,access_cloth_size,model_cloth_size,,1,1,1,0 +access_expenses_line,access_expenses_line,model_expenses_line,,1,1,1,0 +access_associations_line,access_associations_line,model_associations_line,,1,1,1,0 +access_hospital_hospital,access_hospital_hospital,model_hospital_hospital,,1,1,1,0 +access_insurance_type,access_insurance_type,model_insurance_type,,1,1,1,0 +access_housing_need,access_housing_need,model_housing_need,,1,1,1,0 +access_cars_line,access_cars_line,model_cars_line,,1,1,1,0 +access_training_type,access_training_type,model_training_type,,1,1,1,0 +access_committees_line,access_committees_line,model_committees_line,,1,1,1,0 +access_benefit_followers,access_benefit_followers,model_benefit_followers,,1,1,1,0 +access_benefit_record_city_read,access_benefit_record_city_read,model_res_country_city,,1,0,0,0 +access_res_districts,access_res_districts,model_res_districts,,1,1,1,1 access_researcher_member_wizard,access_researcher_member_wizard,model_researcher_member_wizard,,1,1,1,1 access_researcher_family_wizard,access_researcher_family_wizard,model_researcher_family_wizard,,1,1,1,1 -access_visit_location,access_visit_location,model_visit_location,odex_benefit.group_benefit_user,1,1,1,1 -access_main_service,access_main_service,model_main_service,odex_benefit.group_benefit_user,1,1,1,1 -access_visits_types,access_visits_types,model_visits_types,odex_benefit.group_benefit_user,1,1,1,1 +access_visit_location,access_visit_location,model_visit_location,,1,1,1,1 +access_main_service,access_main_service,model_main_service,,1,1,1,1 +access_visits_types,access_visits_types,model_visits_types,,1,1,1,1 access_family_member,access_family_member,model_family_member,,1,1,1,1 access_member_location,access_member_location,model_member_location,,1,1,1,1 access_member_disabilities,access_member_disabilities,model_member_disabilities,,1,1,1,1 diff --git a/odex25_ensan/odex_benefit/security/security_view.xml b/odex25_ensan/odex_benefit/security/security_view.xml index c5288a83b..9e45d5656 100644 --- a/odex25_ensan/odex_benefit/security/security_view.xml +++ b/odex25_ensan/odex_benefit/security/security_view.xml @@ -1,34 +1,34 @@ - + Beneficiaries Management Helps you manage Beneficiaries Program 1 - - Beneficiaries User - - - - + + + + + + Beneficiaries Edit User - - Beneficiaries Officer - - - - + + + + + + Beneficiaries Manager - + the user will be able to approve Beneficiaries requests. diff --git a/odex25_ensan/odex_benefit/views/actions_and_menus.xml b/odex25_ensan/odex_benefit/views/actions_and_menus.xml index d64cec275..35ed34864 100644 --- a/odex25_ensan/odex_benefit/views/actions_and_menus.xml +++ b/odex25_ensan/odex_benefit/views/actions_and_menus.xml @@ -660,7 +660,7 @@ action="benefit_reports_log_action" sequence="2"/> + sequence="8"/> diff --git a/odex25_ensan/odex_benefit/views/benefit_view.xml b/odex25_ensan/odex_benefit/views/benefit_view.xml index ed230fb00..74a32040b 100644 --- a/odex25_ensan/odex_benefit/views/benefit_view.xml +++ b/odex25_ensan/odex_benefit/views/benefit_view.xml @@ -58,22 +58,22 @@