Benefit tasks
This commit is contained in:
parent
57229a71f5
commit
e5888163a7
|
|
@ -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',
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
@ -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'))
|
||||
|
|
|
|||
|
|
@ -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')
|
||||
|
|
@ -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%")
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
||||
|
||||
|
|
|
|||
|
|
@ -0,0 +1,7 @@
|
|||
from odoo import fields, models
|
||||
|
||||
class MemberHobbies(models.Model):
|
||||
_inherit = 'res.country'
|
||||
|
||||
is_excluded = fields.Boolean(string='Is Excluded?')
|
||||
|
||||
|
|
@ -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
|
||||
|
|
|
@ -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"
|
||||
|
|
|
|||
|
|
@ -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>
|
||||
|
|
|
|||
|
|
@ -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>
|
||||
|
|
|
|||
|
|
@ -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>
|
||||
|
|
|
|||
|
|
@ -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')]}"/>
|
||||
|
|
|
|||
|
|
@ -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>
|
||||
|
|
|
|||
|
|
@ -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>
|
||||
Loading…
Reference in New Issue