Benefit tasks

This commit is contained in:
eman 2024-10-02 04:25:25 +03:00
parent 57229a71f5
commit e5888163a7
15 changed files with 175 additions and 13 deletions

View File

@ -38,6 +38,7 @@
'views/benefit_config_view.xml',
'views/generate_reports.xml',
'views/actions_and_menus.xml',
'views/res_country.xml',
'templates/benefit_email.xml',
'data/sequence_data.xml',
'wizards/entity_refused_wizard_view.xml',

View File

@ -23,4 +23,5 @@ from . import hr_department
from . import account_move_line
from . import family_expense
from . import services_settings
from . import res_country_inherit
# from . import res_config_settings

View File

@ -209,10 +209,12 @@ class GrantBenefitProfile(models.Model):
selection=[('continuous', 'continuous'), ('intermittent', 'intermittent'),
('graduate', 'Graduate')])
illiterate_reason = fields.Char(string='Illiterate Reason')
intermittent_reason = fields.Many2one('education.illiterate.reason',string='Intermittent Reason')
education_entity = fields.Selection(string='Education Entity', selection=[('governmental', 'Governmental'),
('special', 'Special')])
education_start_date = fields.Date(string='Education Start Date')
education_end_date = fields.Date(string='Education End Date')
educational_certificate = fields.Binary(attachment=True,string='Educational Certificate')
last_education_entity = fields.Selection(string='Last Education Entity',
selection=[('governmental', 'Governmental'),
('special', 'Special')])
@ -230,6 +232,7 @@ class GrantBenefitProfile(models.Model):
last_percentage = fields.Float(string="Last Percentage%")
last_education_start_date = fields.Date(string='Last Education Start Date')
last_education_end_date = fields.Date(string='Last Education End Date')
last_educational_certificate = fields.Binary(attachment=True,string='Last Educational Certificate')
end_date = fields.Date('End Date')
specialization_ids = fields.Many2one('specialization.specialization', string='specialization')
last_specialization_ids = fields.Many2one('specialization.specialization', string='Last Specialization')
@ -434,6 +437,17 @@ class GrantBenefitProfile(models.Model):
total_family_expenses = fields.Float(string="Total Family Expenses", compute='_get_family_monthly_values')
total_move_lines = fields.Integer(string="Total Move Lines", compute='_get_total_move_lines')
invoices_count = fields.Integer(string="Invoices Count", compute='_get_invoices_count')
required_attach = fields.Selection(selection=[('true', 'True'), ('false', 'False')],compute='get_required_attach',store=True)
@api.depends('attachment_ids')
def get_required_attach(self):
for rec in self.attachment_ids:
if rec.is_required and rec.datas:
self.required_attach = 'true'
elif rec.is_required and not rec.datas:
self.required_attach = None
else:
self.required_attach = None
def _get_invoices_count(self):
for rec in self:
@ -586,7 +600,7 @@ class GrantBenefitProfile(models.Model):
res = {}
for rec in self:
if rec.father_country_id and rec.mother_country_id:
if rec.mother_country_id.code != 'SA' and rec.father_country_id.code != 'SA':
if rec.mother_country_id.code != 'SA' and rec.father_country_id.code != 'SA' and not rec.mother_country_id.is_excluded and not rec.father_country_id.is_excluded :
rec.mother_country_id = False
res['warning'] = {'title': _('ValidationError'),
'message': _('Non-Saudi mothers and fathers cannot register')}
@ -704,10 +718,15 @@ class GrantBenefitProfile(models.Model):
res = super(GrantBenefitProfile, self).create(vals)
if not res.code or res.code == _('New'):
res.code = self.env['ir.sequence'].sudo().next_by_code('benefit.sequence') or _('New')
if res.partner_id:
res.partner_id.write({
'active': False
})
# if res.partner_id:
# res.partner_id.write({
# 'active': False
# })
default_attachment = self.env["attachments.settings"].search([('is_default','=',True)])
for attach in default_attachment:
if attach.attach_type == 'family_attach':
for rec in res:
rec.attachment_ids = [(0,0,{'name':attach.name,'is_required':attach.is_required,'is_default':attach.is_default})]
# if res.branch_id:
# if res.branch_id != self.env.user.branch_id:
# raise UserError(_('You cannot register outside Saudi Arabia'))

View File

@ -581,4 +581,21 @@ class RelationSettings(models.Model):
name = fields.Char(string='name')
relation_type = fields.Selection(
[('son', _('Son')), ('daughter', _('Daughter')),('mother', _('Mother')),('replacement_mother', _('Replacement Mother')),('other relation', _('Other Relation'))])
[('son', _('Son')), ('daughter', _('Daughter')),('mother', _('Mother')),('replacement_mother', _('Replacement Mother')),('other relation', _('Other Relation'))])
class AttachmentsSettings(models.Model):
_name = 'attachments.settings'
_description = "Attachments Settings"
name = fields.Char(string='name')
attach_type = fields.Selection(
[('family_attach', _('Family Attach')), ('member_attach', _('Member Attach')), ('hobbies_attach', _('Hobbies Attach')),
('diseases_attach', _('Diseases Attach')), ('disabilities_attach', _('Disabilities Attach'))])
is_required = fields.Boolean(string='Is Required?')
is_default = fields.Boolean(string='Is Default?')
class EducationIlliterateReason(models.Model):
_name = 'education.illiterate.reason'
_description = "Education Illiterate Reason"
name = fields.Char(string='name')

View File

@ -70,6 +70,8 @@ class FamilyMemberProfile(models.Model):
selection=[('continuous', 'continuous'), ('intermittent', 'intermittent'),
('graduate', 'Graduate')])
illiterate_reason = fields.Char(string='Illiterate Reason')
intermittent_reason = fields.Many2one('education.illiterate.reason',string='Intermittent Reason')
educational_certificate = fields.Binary(attachment=True,string='Educational Certificate')
education_entity = fields.Selection(string='Education Entity', selection=[('governmental', 'Governmental'),
('special', 'Special')])
last_education_entity = fields.Selection(string='Last Education Entity',
@ -83,6 +85,7 @@ class FamilyMemberProfile(models.Model):
literacy_school_note = fields.Text(string="Literacy School Note", required=False)
classroom = fields.Many2one('education.classroom', string='Classroom')
last_classroom = fields.Many2one('education.classroom', string='Last Classroom')
last_educational_certificate = fields.Binary(attachment=True,string='Last Educational Certificate')
degree = fields.Many2one('education.result', string='Degree')
last_degree = fields.Many2one('education.result', string='Last Degree')
percentage = fields.Float(string="Percentage%")

View File

@ -13,6 +13,9 @@ class BenefitAttachment(models.Model):
('expired', 'Expired'),
], string='Attach Status', required=True,compute = "get_status",store=True)
allow_days = fields.Integer(compute='get_allow_days',string='Allow Days')
# fields to management required and delete records in benefit attachment
is_required = fields.Boolean(string='Is Required?')
is_default = fields.Boolean(string='Is Default?')
@api.depends('expiration_date')
def get_status(self):
@ -37,4 +40,3 @@ class BenefitAttachment(models.Model):
else:
rec.allow_days = 0

View File

@ -0,0 +1,7 @@
from odoo import fields, models
class MemberHobbies(models.Model):
_inherit = 'res.country'
is_excluded = fields.Boolean(string='Is Excluded?')

View File

@ -111,4 +111,6 @@ access_confirm_benefit_expense,access_confirm_benefit_expense,model_confirm_bene
access_branch_settings,access_branch_settings,model_branch_settings,base.group_user,1,1,1,1
access_services_settings,access_services_settings,model_services_settings,base.group_user,1,1,1,1
access_rent_lines,access_rent_lines,model_rent_lines,base.group_user,1,1,1,1
access_relation_settings,access_relation_settings,model_relation_settings,base.group_user,1,1,1,1
access_relation_settings,access_relation_settings,model_relation_settings,base.group_user,1,1,1,1
access_attachments_settings,access_attachments_settings,model_attachments_settings,base.group_user,1,1,1,1
access_education_illiterate_reason,access_education_illiterate_reason,model_education_illiterate_reason,base.group_user,1,1,1,1
1 id name model_id:id group_id:id perm_read perm_write perm_create perm_unlink
111 access_branch_settings access_branch_settings model_branch_settings base.group_user 1 1 1 1
112 access_services_settings access_services_settings model_services_settings base.group_user 1 1 1 1
113 access_rent_lines access_rent_lines model_rent_lines base.group_user 1 1 1 1
114 access_relation_settings access_relation_settings model_relation_settings base.group_user 1 1 1 1
115 access_attachments_settings access_attachments_settings model_attachments_settings base.group_user 1 1 1 1
116 access_education_illiterate_reason access_education_illiterate_reason model_education_illiterate_reason base.group_user 1 1 1 1

View File

@ -194,7 +194,6 @@
</p>
</field>
</record>
<record model="ir.actions.act_window" id="districts_action">
<field name="name">Districts</field>
<field name="res_model">res.districts</field>
@ -317,6 +316,16 @@
</p>
</field>
</record>
<!-- Attachments Settings Action -->
<record model="ir.actions.act_window" id="attachments_settings_action">
<field name="name">Attachments Settings</field>
<field name="res_model">attachments.settings</field>
<field name="view_mode">tree,form</field>
<field name="help" type="html">
<p class="oe_view_nocontent_create">Create the Attachment Setting
</p>
</field>
</record>
<record model="ir.actions.act_window" id="food_surplus_type_action">
<field name="name">Food Surplus Type</field>
<field name="res_model">food.surplus.type</field>
@ -757,6 +766,15 @@
parent="menu_benefits_config_addresses" action="res_branch_action"/>
<menuitem id="res_district_menu" name="Districts" sequence="4"
parent="menu_benefits_config_addresses" action="districts_action"/>
<!-- Attachment Settings menu -->
<menuitem
id="menu_attachment_settings"
name="Attachments Settings"
parent="benefit_tools"
sequence="3"/>
<menuitem id="attachment_settings_menu" name="Attachments Settings"
parent="menu_attachment_settings" action="attachments_settings_action" sequence="1"/>
<!-- Housing Settings -->
<menuitem
id="menu_benefits_config_housing"
name="Housing"

View File

@ -984,5 +984,59 @@
</tree>
</field>
</record>
<record id="attachments_settings_form" model="ir.ui.view">
<field name="name">Attachments Settings</field>
<field name="model">attachments.settings</field>
<field name="arch" type="xml">
<form>
<sheet>
<group>
<group>
<field name="name"/>
<field name="attach_type"/>
<field name="is_required"/>
<field name="is_default"/>
</group>
</group>
</sheet>
</form>
</field>
</record>
<record id="attachments_settings_tree" model="ir.ui.view">
<field name="name">Attachments Settings</field>
<field name="model">attachments.settings</field>
<field name="arch" type="xml">
<tree>
<field name="name"/>
<field name="attach_type"/>
<field name="is_required"/>
<field name="is_default"/>
</tree>
</field>
</record>
<record id="education_illiterate_reason_form" model="ir.ui.view">
<field name="name">Education Illiterate Reason</field>
<field name="model">education.illiterate.reason</field>
<field name="arch" type="xml">
<form>
<sheet>
<group>
<group>
<field name="name"/>
</group>
</group>
</sheet>
</form>
</field>
</record>
<record id="education_illiterate_reason_tree" model="ir.ui.view">
<field name="name">Education Illiterate Reason</field>
<field name="model">education.illiterate.reason</field>
<field name="arch" type="xml">
<tree>
<field name="name"/>
</tree>
</field>
</record>
</data>
</odoo>

View File

@ -183,6 +183,7 @@
<field name="sponsor_id" attrs="{'readonly':[('state','not in',['draft','complete_info','edit_info'])]}"/>
<field name="researcher_id"
attrs="{'readonly':[('state','not in',['draft','complete_info'])],'required':[('state','not in',['draft'])]}"/>
<field name="required_attach" attrs="{'required':[('state','not in',['draft'])]}"/>
<field name="last_visit_date" readonly="1"/>
</group>
<group>
@ -307,12 +308,13 @@
'invisible':[('education_status','!=','illiterate')]}"/>
<field name="case_study"
attrs="{'readonly':[('state','not in',['draft','complete_info','edit_info'])],'invisible':[('education_status','=','illiterate')]}"/>
<field name="intermittent_reason" attrs="{'readonly':[('state','not in',['draft','complete_info','edit_info'])],'invisible':[('case_study','!=','intermittent')]}"/>
<field name="education_entity"
attrs="{'readonly':[('state','not in',['draft','complete_info','edit_info'])],'invisible':[('education_status','=','illiterate')]}"/>
<field name="entities"
attrs="{'readonly':[('state','not in',['draft','complete_info','edit_info'])],'invisible':[('education_status','=','illiterate')]}"/>
<field name="education_levels"
attrs="{'readonly':[('state','not in',['draft','complete_info','edit_info'])],'invisible':[('education_status','=','illiterate')]}"/>
<field name="education_levels" attrs="{'readonly':[('state','not in',['draft','complete_info','edit_info'])],'invisible':[('education_status','=','illiterate')]}"/>
<field name="educational_certificate" attrs="{'readonly':[('state','not in',['draft','complete_info','edit_info'])],'invisible':[('education_status','=','illiterate')]}"/>
</group>
<group>
<field name="specialization_ids"
@ -340,6 +342,7 @@
attrs="{'readonly':[('state','not in',['draft','complete_info','edit_info'])],'invisible':[('education_status','=','illiterate')]}"/>
<field name="last_specialization_ids"
attrs="{'readonly':[('state','not in',['draft','complete_info','edit_info'])],'invisible':[('education_status','=','illiterate')]}"/>
<field name="last_educational_certificate" attrs="{'readonly':[('state','not in',['draft','complete_info','edit_info'])],'invisible':[('education_status','=','illiterate')]}"/>
</group>
<group>
<field name="last_classroom"
@ -459,12 +462,14 @@
'invisible':[('education_status','!=','illiterate')]}"/>
<field name="case_study"
attrs="{'readonly':[('parent.state','not in',['draft','complete_info','edit_info'])],'invisible':[('education_status','=','illiterate')]}"/>
<field name="intermittent_reason" attrs="{'readonly':[('parent.state','not in',['draft','complete_info','edit_info'])],'invisible':[('case_study','!=','intermittent')]}"/>
<field name="education_entity"
attrs="{'readonly':[('parent.state','not in',['draft','complete_info','edit_info'])],'invisible':[('education_status','=','illiterate')]}"/>
<field name="entities"
attrs="{'readonly':[('parent.state','not in',['draft','complete_info','edit_info'])],'invisible':[('education_status','=','illiterate')]}"/>
<field name="education_levels"
attrs="{'readonly':[('parent.state','not in',['draft','complete_info','edit_info'])],'invisible':[('education_status','=','illiterate')]}"/>
<field name="educational_certificate" attrs="{'readonly':[('parent.state','not in',['draft','complete_info','edit_info'])],'invisible':[('education_status','=','illiterate')]}"/>
</group>
<group>
<field name="specialization_ids"
@ -492,6 +497,7 @@
attrs="{'readonly':[('parent.state','not in',['draft','complete_info','edit_info'])],'invisible':[('education_status','=','illiterate')]}"/>
<field name="last_specialization_ids"
attrs="{'readonly':[('parent.state','not in',['draft','complete_info','edit_info'])],'invisible':[('education_status','=','illiterate')]}"/>
<field name="last_educational_certificate" attrs="{'readonly':[('parent.state','not in',['draft','complete_info','edit_info'])],'invisible':[('education_status','=','illiterate')]}"/>
</group>
<group>
<field name="last_classroom"
@ -833,13 +839,15 @@
</page>
<page string="Attachments">
<field name="attachment_ids" widget="one2many_list" attrs="{'readonly':[('state','not in',['draft','complete_info','edit_info'])]}">
<tree editable="bottom">
<field name="name"/>
<tree editable="bottom" delete="0">
<field name="name" attrs="{'readonly':[('is_default','=',True)]}"/>
<field name="datas"/>
<field name="expiration_date"/>
<field name="attach_status"/>
<field name="allow_days"/>
<field name="benefit_id" invisible="1"/>
<field name="is_required" invisible="1"/>
<field name="is_default" invisible="1"/>
</tree>
</field>
</page>

View File

@ -154,6 +154,11 @@
<field name="res_model">study.material</field>
<field name="view_mode">tree,form</field>
</record>
<record model="ir.actions.act_window" id="education_illiterate_reason_action">
<field name="name">Education Illiterate Reason</field>
<field name="res_model">education.illiterate.reason</field>
<field name="view_mode">tree,form</field>
</record>
<menuitem id="education_main_menu" name="Education Settings"
parent="odex_benefit.benefit_tools" sequence="3"/>
@ -169,5 +174,7 @@
parent="education_main_menu" action="education_result_action" sequence="4"/>
<menuitem id="study_material_menu" name="Study Material"
parent="education_main_menu" action="study_material_action" sequence="5"/>
<menuitem id="illiterate_reason_menu" name="Education Illiterate Reason"
parent="education_main_menu" action="education_illiterate_reason_action" sequence="6"/>
</data>
</odoo>

View File

@ -154,9 +154,11 @@
<field name="illiterate_reason" attrs="{'readonly':[('state','not in',['draft','complete_info','edit_info'])],
'invisible':[('education_status','!=','illiterate')]}"/>
<field name="case_study" attrs="{'readonly':[('state','not in',['draft','complete_info','edit_info'])],'invisible':[('education_status','=','illiterate')]}"/>
<field name="intermittent_reason" attrs="{'readonly':[('state','not in',['draft','complete_info','edit_info'])],'invisible':[('case_study','!=','intermittent')]}"/>
<field name="education_entity" attrs="{'readonly':[('state','not in',['draft','complete_info','edit_info'])],'invisible':[('education_status','=','illiterate')]}"/>
<field name="entities" attrs="{'readonly':[('state','not in',['draft','complete_info','edit_info'])],'invisible':[('education_status','=','illiterate')]}"/>
<field name="education_levels" attrs="{'readonly':[('state','not in',['draft','complete_info','edit_info'])],'invisible':[('education_status','=','illiterate')]}"/>
<field name="educational_certificate" attrs="{'readonly':[('state','not in',['draft','complete_info','edit_info'])],'invisible':[('education_status','=','illiterate')]}"/>
</group>
<group>
<field name="specialization_ids" attrs="{'readonly':[('state','not in',['draft','complete_info','edit_info'])],'invisible':[('education_status','=','illiterate')],'invisible':[('education_status','=','illiterate')]}"/>
@ -174,6 +176,7 @@
<field name="last_entities" attrs="{'readonly':[('state','not in',['draft','complete_info','edit_info'])],'invisible':[('education_status','=','illiterate')]}"/>
<field name="last_education_levels" attrs="{'readonly':[('state','not in',['draft','complete_info','edit_info'])],'invisible':[('education_status','=','illiterate')]}"/>
<field name="last_specialization_ids" attrs="{'readonly':[('state','not in',['draft','complete_info','edit_info'])],'invisible':[('education_status','=','illiterate')]}"/>
<field name="last_educational_certificate" attrs="{'readonly':[('state','not in',['draft','complete_info','edit_info'])],'invisible':[('education_status','=','illiterate')]}"/>
</group>
<group>
<field name="last_classroom" attrs="{'readonly':[('state','not in',['draft','complete_info','edit_info'])],'invisible':[('education_status','=','illiterate')]}"/>

View File

@ -11,6 +11,8 @@
<field name="expiration_date" invisible="1"/>
<field name="attach_status" invisible="1"/>
<field name="allow_days" invisible="1"/>
<field name="is_required" invisible="1"/>
<field name="is_default" invisible="1"/>
</xpath>
</field>
</record>

View File

@ -0,0 +1,18 @@
<?xml version="1.0" encoding="utf-8"?>
<odoo>
<data>
<!-- Inherit Form res.country View to add is_excluded field to exclude some family in registration -->
<record id="res_partner_data" model="ir.ui.view">
<field name="name">res.country.inherit</field>
<field name="model">res.country</field>
<field name="inherit_id" ref="base.view_country_form"/>
<field name="arch" type="xml">
<xpath expr="//group[@name='country_details']" position="after">
<group>
<field name="is_excluded" groups="odex_benefit.group_benefit_manager"></field>
</group>
</xpath>
</field>
</record>
</data>
</odoo>