[IMP] odex_benefit: Updates to Service Configuration and Request
This commit is contained in:
parent
7c86b831ee
commit
21e0ed1530
|
|
@ -2737,6 +2737,7 @@ msgstr "بإمكانه النشر "
|
|||
#: model_terms:ir.ui.view,arch_db:odex_benefit.receive_food_basket_form
|
||||
#: model_terms:ir.ui.view,arch_db:odex_benefit.view_confirm_benefit_expense_form
|
||||
#: model_terms:ir.ui.view,arch_db:odex_benefit.view_confirm_benefit_expense_search
|
||||
#: model_terms:ir.ui.view,arch_db:odex_benefit.view_family_bank_report_wizard_form
|
||||
#: model_terms:ir.ui.view,arch_db:odex_benefit.view_entity_black_list_wizard_form
|
||||
#: model_terms:ir.ui.view,arch_db:odex_benefit.view_entity_final_refused_reason_wizard_form
|
||||
#: model_terms:ir.ui.view,arch_db:odex_benefit.view_entity_refused_reason_wizard_form
|
||||
|
|
@ -16362,7 +16363,7 @@ msgstr "مبلغ العضو فاقد الأبوين"
|
|||
#. module: odex_benefit
|
||||
#: model:ir.model.fields,field_description:odex_benefit.field_service_request__member_age
|
||||
msgid "Member Age"
|
||||
msgstr "عمر العضو"
|
||||
msgstr "عمر الفرد"
|
||||
|
||||
#. module: odex_benefit
|
||||
#: model:ir.model.fields,field_description:odex_benefit.field_service_request__is_orphan
|
||||
|
|
@ -16605,4 +16606,10 @@ msgstr "يرجى اختيار مصروف شهري واحد على الأقل."
|
|||
#: code:addons/odex_benefit/wizards/family_bank_report_wizard.py:0
|
||||
#, python-format
|
||||
msgid "No debit lines with family information found."
|
||||
msgstr "لم يتم العثور على قيود تحتوي على معلومات الأسر."
|
||||
msgstr "لم يتم العثور على قيود تحتوي على معلومات الأسر."
|
||||
|
||||
#. module: odex_benefit
|
||||
#: model_terms:ir.ui.view,arch_db:odex_benefit.view_family_bank_report_wizard_form
|
||||
msgid "Print Excel Report"
|
||||
msgstr "طباعة تقرير Excel"
|
||||
|
||||
|
|
|
|||
|
|
@ -10,6 +10,7 @@ class ServiceRequest(models.Model):
|
|||
name = fields.Char(string='Reference', required=True, copy=False, readonly=True, index=True,default=lambda self: _('New'))
|
||||
benefit_type = fields.Selection(string='Benefit Type',selection=[('family', 'Family'),('member', 'Member')])
|
||||
date = fields.Datetime(string='Request Date',default=fields.Datetime.now)
|
||||
marriage_contract_date = fields.Date(string="Marriage Contract Date")
|
||||
family_id = fields.Many2one('grant.benefit',string='Family',domain="['|',('state','=','second_approve'),'&',('state','in',['waiting_approve','first_approve']),('action_type','=','suspended')]")
|
||||
researcher_id = fields.Many2one("committees.line", string="Researcher", related="family_id.researcher_id",store=True)
|
||||
family_category = fields.Many2one('benefit.category',string='Family Category',related='family_id.benefit_category_id')
|
||||
|
|
@ -561,6 +562,7 @@ class ServiceRequest(models.Model):
|
|||
'date',
|
||||
'service_cat',
|
||||
'family_id',
|
||||
'member_id',
|
||||
'exception_or_steal',
|
||||
'home_furnishing_exception',
|
||||
'has_marriage_course',
|
||||
|
|
@ -568,7 +570,8 @@ class ServiceRequest(models.Model):
|
|||
'service_reason_id',
|
||||
'device_id',
|
||||
'requested_quantity',
|
||||
'amount_for_buy_home_for_member_count'
|
||||
'amount_for_buy_home_for_member_count',
|
||||
'marriage_contract_date'
|
||||
)
|
||||
def onchange_requested_service_amount(self):
|
||||
res = {}
|
||||
|
|
@ -585,6 +588,9 @@ class ServiceRequest(models.Model):
|
|||
period = rec.service_cat.recurrence_period or 'months'
|
||||
max_limit_type = rec.service_cat.max_limit_type
|
||||
special_services = ['home_furnishing', 'electrical_devices','rent','alternative_housing']
|
||||
base_domain = [('family_id', '=', family_id),('service_cat', '=', rec.service_cat.id),('id', '!=', rec._origin.id),('state', '!=', 'refused')]
|
||||
if rec.benefit_type == "member":
|
||||
base_domain.append(('member_id', '=', rec.member_id.id))
|
||||
if rec.service_cat.service_type == 'buy_car':
|
||||
if rec.family_id.has_car:
|
||||
raise ValidationError(_("You cannot request this service because you have a car."))
|
||||
|
|
@ -616,7 +622,6 @@ class ServiceRequest(models.Model):
|
|||
if not rec.family_id.add_replacement_mother and not disable_mother and not work_mother:
|
||||
raise ValidationError(
|
||||
_("You cannot request this service because mother should be worked or has disability"))
|
||||
# check if 'home_restoration' service
|
||||
if service_type in ['home_maintenance','complete_building_house','buy_home']:
|
||||
existing_request_restoration = Service.search([
|
||||
('family_id', '=', family_id),
|
||||
|
|
@ -656,12 +661,6 @@ class ServiceRequest(models.Model):
|
|||
_("You cannot request this service Again Because the home Age More than %s") % rec.service_cat.home_age)
|
||||
|
||||
if allowed:
|
||||
base_domain = [
|
||||
('family_id', '=', family_id),
|
||||
('service_cat.service_type', '=', service_type),
|
||||
('id', '!=', rec._origin.id),
|
||||
('state', '!=', 'refused')
|
||||
]
|
||||
if allowed == 'unlimited':
|
||||
pass
|
||||
elif allowed == 'once':
|
||||
|
|
@ -750,17 +749,21 @@ class ServiceRequest(models.Model):
|
|||
continue
|
||||
|
||||
if rec.service_cat.service_type == 'health_care':
|
||||
domain = [
|
||||
('family_id', '=', self.family_id.id),
|
||||
('service_cat.service_type', '=', 'health_care'),
|
||||
('date', '>', date_before_year),
|
||||
('id', '!=', self._origin.id),
|
||||
('state', '!=', 'refused')
|
||||
]
|
||||
existing_requests_within_year = self.search(domain)
|
||||
domain = base_domain + [('date', '>', date_before_year)]
|
||||
existing_requests_within_year = Service.search(domain)
|
||||
rec.service_max_amount = rec.service_cat.max_health_care_amount - sum(existing_requests_within_year.mapped('requested_service_amount'))
|
||||
|
||||
if rec.service_cat.service_type == 'marriage':
|
||||
if rec.member_id.relationn.relation_type == 'son' and not rec.member_id.is_work:
|
||||
raise ValidationError(_("This service is not eligible because the son is not working."))
|
||||
|
||||
if rec.marriage_contract_date and rec.date:
|
||||
request_date = rec.date.date() if isinstance(rec.date, datetime) else rec.date
|
||||
contract_date = rec.marriage_contract_date
|
||||
diff_days = (request_date - contract_date).days
|
||||
if diff_days > 365:
|
||||
raise ValidationError(
|
||||
_("You cannot request this service because the marriage contract date exceeds one year."))
|
||||
rec.service_max_amount = rec.service_cat.fatherless_member_amount
|
||||
if rec.is_orphan:
|
||||
rec.service_max_amount = rec.service_cat.orphan_member_amount
|
||||
|
|
@ -781,18 +784,6 @@ class ServiceRequest(models.Model):
|
|||
_("You cannot request more than %s") % rec.service_max_amount
|
||||
)
|
||||
|
||||
|
||||
# if rec.benefit_type == 'family' and rec.service_cat.service_type == 'electrical_devices':
|
||||
# Check for existing request of the same type in seven years and not exception or steal
|
||||
# existing_request = self.search([
|
||||
# ('family_id', '=', rec.family_id.id),
|
||||
# ('service_cat.service_type', '=', 'electrical_devices'),
|
||||
# ('date', '>', date_before_seven_years), ('device_id', '=', rec.device_id.id)
|
||||
# ], limit=1)
|
||||
# if existing_request and not rec.exception_or_steal:
|
||||
# raise UserError(
|
||||
# _("You Cannot request this service twice in seven years"))
|
||||
|
||||
# Validation for 'member' benefit type
|
||||
if rec.benefit_type == 'member' and rec.service_cat.service_type == 'rent':
|
||||
max_requested_amount = rec.service_cat.max_amount_for_student
|
||||
|
|
|
|||
|
|
@ -20,7 +20,7 @@ class ServicesSettings(models.Model):
|
|||
('providing_medicines_medical_devices_and_needs_the_disabled','Providing Medicines Medical Devices And Needs The Disabled'),
|
||||
('recruiting_domestic_worker_or_nurse','Recruiting a domestic worker or nurse') ,('marriage','Marriage'),('eid_gift','Eid gift'),
|
||||
('winter_clothing','Winter clothing'),('ramadan_basket','Ramadan basket'),('natural_disasters','Natural disasters'),
|
||||
('legal_arguments','Legal arguments'),('buy_home','Buy Home'),('main_service','Main Service')]
|
||||
('legal_arguments','Legal arguments'),('buy_home','Buy Home'),('main_service','Main Service'),('normal_service', 'Normal Service')]
|
||||
,string='Service Type')
|
||||
max_amount_for_student = fields.Float(string='Max Amount for Student')
|
||||
raise_amount_for_orphan = fields.Float(string='Raise Amount For Orphan')
|
||||
|
|
|
|||
|
|
@ -145,12 +145,12 @@
|
|||
<button name="action_first_refuse" type="object"
|
||||
string="Return the request to the specialist" class="btn btn-warning"
|
||||
states="gm_assistant"
|
||||
groups="odex_benefit.group_benefit_branch_manager,odex_benefit.group_benefit_manager"
|
||||
groups="odex_benefit.group_benefit_branch_manager,odex_benefit.group_benefit_manager"
|
||||
/>
|
||||
<button name="action_refuse" type="object"
|
||||
string="Refuse" class="btn btn-danger"
|
||||
states="gm_assistant"
|
||||
groups="odex_benefit.group_benefit_branch_manager,odex_benefit.group_benefit_manager"
|
||||
groups="odex_benefit.group_benefit_branch_manager,odex_benefit.group_benefit_manager"
|
||||
/>
|
||||
<field name="state" widget="statusbar"
|
||||
statusbar_visible="draft,researcher,waiting_approve,first_approve,accounting_approve,send_request_to_supplier,family_received_device,refused"/>
|
||||
|
|
@ -182,6 +182,7 @@
|
|||
<field name="branch_custom_id" force_save="1"/>
|
||||
<field name="member_id"
|
||||
attrs="{'invisible':[('benefit_type','!=','member')],'readonly':[('state','not in',['draft','researcher','waiting_approve'])],'required':[('benefit_type','=','member')]}"/>
|
||||
<field name="is_orphan" attrs="{'invisible':[('service_type', '!=', 'marriage')]}"/>
|
||||
<field name="member_age" attrs="{'invisible':[('benefit_type','!=','member')]}"/>
|
||||
<field name="member_payroll" attrs="{'invisible':[('service_type','!=','marriage')]}"/>
|
||||
<field name="account_id" invisible="1"/>
|
||||
|
|
@ -203,8 +204,9 @@
|
|||
<field name="service_cat"
|
||||
attrs="{'readonly':[('state','not in',['draft','researcher','waiting_approve'])]}"
|
||||
domain="[('id','in',available_service_cats)]" required="1"/>
|
||||
<field name="is_orphan" attrs="{'invisible':[('service_type', '!=', 'marriage')]}"/>
|
||||
<field name="service_approval_date"/>
|
||||
<field name="marriage_contract_date" attrs="{'invisible':[('service_type', '!=', 'marriage')]}"/>
|
||||
<field name="service_approval_date"
|
||||
attrs="{'invisible':[('service_approval_date','=',False)]}"/>
|
||||
<field name="need_status"
|
||||
attrs="{'readonly':[('state','not in',['draft','researcher','waiting_approve'])]}"/>
|
||||
<field name="main_service_category"
|
||||
|
|
|
|||
|
|
@ -226,7 +226,7 @@
|
|||
</group>
|
||||
</page>
|
||||
<page string="Amounts by Number of Persons"
|
||||
attrs="{'invisible':['|',('service_type','!=','buy_home'),('max_limit_type', '!=', 'amount_person')]}">
|
||||
attrs="{'invisible':[('max_limit_type', '!=', 'amount_person')]}">
|
||||
<field name="limit_person_line_ids" widget="one2many_list">
|
||||
<tree editable="bottom">
|
||||
<field name="min_count_member"/>
|
||||
|
|
|
|||
Loading…
Reference in New Issue