[FIX] odex_benefit
This commit is contained in:
parent
27884b4e66
commit
ed4cb18cdf
|
|
@ -11954,8 +11954,8 @@ msgstr ""
|
|||
#. module: odex_benefit
|
||||
#: code:addons/odex_benefit/models/service_request.py:0
|
||||
#, python-format
|
||||
msgid "You Cannot request More than %s"
|
||||
msgstr ""
|
||||
msgid "You cannot request more than %s"
|
||||
msgstr "لا يمكنك طلب أكثر من %s"
|
||||
|
||||
#. module: odex_benefit
|
||||
#: code:addons/odex_benefit/models/service_request.py:0
|
||||
|
|
@ -11987,7 +11987,7 @@ msgstr ""
|
|||
#: code:addons/odex_benefit/models/service_request.py:0
|
||||
#, python-format
|
||||
msgid "You cannot benefit from this service (property type not ownership)"
|
||||
msgstr ""
|
||||
msgstr "لا يمكنك الاستفادة من هذه الخدمة (نوع العقار ايجار وليس ملك)"
|
||||
|
||||
#. module: odex_benefit
|
||||
#: code:addons/odex_benefit/models/service_request.py:0
|
||||
|
|
@ -13890,6 +13890,11 @@ msgstr "عدد الطلبات"
|
|||
msgid "Is Family member?"
|
||||
msgstr "هل صاحب الحساب من أفراد الأسرة؟"
|
||||
|
||||
#. module: odex_benefit
|
||||
#: model:ir.model.fields,field_description:odex_benefit.field_location_settings__is_far_from_family
|
||||
msgid "Is Far From Family?"
|
||||
msgstr "هل هو بعيد عن سكن العائلة؟"
|
||||
|
||||
#. module: odex_benefit
|
||||
#: model:ir.model.fields,field_description:odex_benefit.field_grant_benefit__owner_identity_attachment_ids
|
||||
msgid "Account holder identity"
|
||||
|
|
|
|||
|
|
@ -664,6 +664,7 @@ class LocationSettings(models.Model):
|
|||
name = fields.Char(string='name')
|
||||
location_type = fields.Selection([('member', _('Member')), ('mother_location', _('Mother Location'))])
|
||||
is_benefit = fields.Boolean(string='Is Benefit?')
|
||||
is_far_from_family = fields.Boolean(string='Is Far From Family?')
|
||||
|
||||
class AttachmentsSettings(models.Model):
|
||||
_name = 'attachments.settings'
|
||||
|
|
@ -781,6 +782,7 @@ class ServiceAttachmentsSettings(models.Model):
|
|||
('natural_disasters', 'Natural disasters'), ('legal_arguments', 'Legal arguments')],string='Service Type',related="service_id.service_type")
|
||||
service_id = fields.Many2one('services.settings',string='Service')
|
||||
service_request_id = fields.Many2one('service.request',string='Service Request')
|
||||
previous_service_attachment_settings_id = fields.Many2one('service.attachments.settings', readonly=True)
|
||||
notes = fields.Text(string='Notes')
|
||||
|
||||
class HomeMaintenanceItems(models.Model):
|
||||
|
|
|
|||
|
|
@ -19,7 +19,7 @@ class ServiceRequest(models.Model):
|
|||
family_category = fields.Many2one('benefit.category',string='Family Category',related='family_id.benefit_category_id')
|
||||
benefit_member_count = fields.Integer(string="Benefit Member count", related='family_id.benefit_member_count')
|
||||
branch_custom_id = fields.Many2one('branch.settings', string="Branch",related='family_id.branch_custom_id',store=True)
|
||||
member_id = fields.Many2one('family.member',domain="[('benefit_id','=',family_id)]",string='Member')
|
||||
member_id = fields.Many2one('family.member',domain="[('benefit_id','=',family_id), ('member_status', '=', 'benefit')]",string='Member')
|
||||
description = fields.Char(string='Description')
|
||||
need_status = fields.Selection(string='Need Status',selection=[('urgent', 'urgent'),('not_urgent', 'Not urgent')])
|
||||
main_service_category = fields.Many2one('services.settings',domain="[('is_main_service','=',True)]",string="Main Service Category")
|
||||
|
|
@ -66,7 +66,14 @@ class ServiceRequest(models.Model):
|
|||
member_rent_attachment = fields.Many2many('ir.attachment', 'rel_member_rent_attachment_service_request', 'service_request_id',
|
||||
'attachment_id', string='Rent Attachment')
|
||||
added_amount_if_mother_dead = fields.Float(string="Added Amount (If mother dead)",compute="_get_added_amount_if_mother_dead")
|
||||
attachment_lines = fields.One2many('service.attachments.settings','service_request_id',related='service_cat.attachment_lines',readonly=False)
|
||||
attachment_lines = fields.One2many(
|
||||
'service.attachments.settings',
|
||||
'service_request_id',
|
||||
compute='_compute_attachment_lines',
|
||||
readonly=False,
|
||||
copy=False,
|
||||
store=True
|
||||
)
|
||||
account_id = fields.Many2one(
|
||||
'account.account',
|
||||
string='Expenses Account',
|
||||
|
|
@ -165,6 +172,17 @@ class ServiceRequest(models.Model):
|
|||
for rec in self:
|
||||
if rec.service_type == 'electrical_devices':
|
||||
rec.requested_service_amount = rec.device_id.price_unit if rec.device_id else 0.0
|
||||
|
||||
@api.depends('service_cat')
|
||||
def _compute_attachment_lines(self):
|
||||
for rec in self:
|
||||
rec.attachment_lines.unlink()
|
||||
for attachment_line in rec.service_cat.attachment_lines:
|
||||
attachment_line.copy({
|
||||
'service_id': False,
|
||||
'service_request_id': rec.id,
|
||||
'previous_service_attachment_settings_id': attachment_line.id
|
||||
})
|
||||
|
||||
@api.model
|
||||
def search(self, args, offset=0, limit=None, order=None, count=False):
|
||||
|
|
@ -539,6 +557,18 @@ class ServiceRequest(models.Model):
|
|||
'message': _("You cannot request more than %s") % max_requested_amount}
|
||||
return res
|
||||
|
||||
# Validation for 'family' benefit type
|
||||
if rec.benefit_type == 'family' and rec.service_cat.service_type == 'rent':
|
||||
rent_line_id = rec.service_cat.rent_lines.filtered(lambda r: r.benefit_category_id.id == rec.family_category.id \
|
||||
and r.benefit_count == rec.benefit_member_count
|
||||
)
|
||||
max_requested_amount = rent_line_id.estimated_rent_branches if rec.branch_custom_id.branch_type == 'branches' else rent_line_id.estimated_rent_governorate
|
||||
if rec.requested_service_amount > max_requested_amount:
|
||||
self.benefit_type = False
|
||||
res['warning'] = {'title': _('ValidationError'),
|
||||
'message': _("You cannot request more than %s") % max_requested_amount}
|
||||
return res
|
||||
|
||||
# Validation for 'family' benefit type with 'home_maintenance'
|
||||
if rec.benefit_type == 'family' and rec.service_cat.service_type == 'home_maintenance':
|
||||
max_requested_amount = rec.service_cat.max_maintenance_amount
|
||||
|
|
@ -581,6 +611,12 @@ class ServiceRequest(models.Model):
|
|||
if existing_request_maintenance:
|
||||
raise UserError(
|
||||
_("You cannot request this service with maintenance service in the same year."))
|
||||
if rec.has_money_to_pay_first_payment == 'no':
|
||||
home_restoration_line_id = rec.service_cat.home_restoration_lines.filtered(lambda r: r.benefit_category_id.id == rec.family_category.id)
|
||||
if rec.requested_service_amount > home_restoration_line_id.max_amount:
|
||||
raise UserError(
|
||||
_("You cannot request more than %s") % home_restoration_line_id.max_amount
|
||||
)
|
||||
|
||||
# Validation for 'family' benefit type with 'complete_building_house' service type
|
||||
if rec.benefit_type == 'family' and rec.service_cat.service_type == 'complete_building_house':
|
||||
|
|
@ -748,8 +784,8 @@ class ServiceRequest(models.Model):
|
|||
'message': _(
|
||||
"You cannot request more than %s") % rec.service_cat.max_debits_amount}
|
||||
return res
|
||||
# Validation for 'family' benefit type with 'health_care' service type
|
||||
if rec.benefit_type == 'family' and rec.service_cat.service_type == 'health_care':
|
||||
# Validation for 'family and member' benefit type with 'health_care' service type
|
||||
if rec.service_cat.service_type == 'health_care':
|
||||
# Add current record conditionally
|
||||
domain = [
|
||||
('family_id', '=', self.family_id.id),
|
||||
|
|
@ -769,8 +805,8 @@ class ServiceRequest(models.Model):
|
|||
'message': _(
|
||||
"You cannot request more than %s within year") % rec.service_cat.max_health_care_amount}
|
||||
return res
|
||||
# Validation for 'family' benefit type with 'health_care' service type
|
||||
if rec.benefit_type == 'family' and rec.service_cat.service_type == 'recruiting_domestic_worker_or_nurse':
|
||||
# Validation for 'family and member' benefit type with 'health_care' service type
|
||||
if rec.service_cat.service_type == 'recruiting_domestic_worker_or_nurse':
|
||||
# Add current record conditionally
|
||||
domain = [
|
||||
('family_id', '=', self.family_id.id),
|
||||
|
|
@ -808,16 +844,16 @@ class ServiceRequest(models.Model):
|
|||
if rec.benefit_type == 'family' and rec.service_cat.service_type == 'eid_gift':
|
||||
if rec.eid_gift_benefit_count == 0:
|
||||
raise UserError(_("You cannot request this service"))
|
||||
# Validation for 'family' benefit type with 'natural_disasters' service type
|
||||
if rec.benefit_type == 'family' and rec.service_cat.service_type == 'natural_disasters':
|
||||
# Validation for 'family and member' benefit type with 'natural_disasters' service type
|
||||
if rec.service_cat.service_type == 'natural_disasters':
|
||||
if rec.requested_service_amount > rec.service_cat.natural_disasters_max_amount:
|
||||
self.benefit_type = False
|
||||
res['warning'] = {'title': _('ValidationError'),
|
||||
'message': _(
|
||||
"You cannot request more than %s") % rec.service_cat.natural_disasters_max_amount}
|
||||
return res
|
||||
# Validation for 'family' benefit type with 'legal_arguments' service type
|
||||
if rec.benefit_type == 'family' and rec.service_cat.service_type == 'legal_arguments':
|
||||
# Validation for 'family and member' benefit type with 'legal_arguments' service type
|
||||
if rec.service_cat.service_type == 'legal_arguments':
|
||||
if rec.requested_service_amount > rec.service_cat.legal_arguments_max_amount:
|
||||
self.benefit_type = False
|
||||
res['warning'] = {'title': _('ValidationError'),
|
||||
|
|
@ -863,7 +899,7 @@ class ServiceRequest(models.Model):
|
|||
@api.onchange('member_id')
|
||||
def onchange_member_id(self):
|
||||
for rec in self:
|
||||
if rec.member_id and rec.member_id.member_location != 'study_inside_saudi_arabia' and rec.service_type == 'rent':
|
||||
if rec.member_id and rec.service_type == 'rent' and (rec.member_id.member_location != 'study_inside_saudi_arabia' or not rec.member_id.member_location_conf.is_far_from_family):
|
||||
raise UserError(_("You Cannot request Service if you not study inside Saudi Arabia"))
|
||||
|
||||
@api.onchange('start', 'end', 'rent_start_date', 'rent_end_date','new_start', 'new_end', 'new_rent_start_date', 'new_rent_end_date', 'new_rent_contract')
|
||||
|
|
|
|||
|
|
@ -995,6 +995,7 @@
|
|||
<field name="name"/>
|
||||
<field name="location_type"/>
|
||||
<field name="is_benefit"/>
|
||||
<field name="is_far_from_family" />
|
||||
</group>
|
||||
</group>
|
||||
</sheet>
|
||||
|
|
@ -1009,6 +1010,7 @@
|
|||
<field name="name"/>
|
||||
<field name="location_type"/>
|
||||
<field name="is_benefit"/>
|
||||
<field name="is_far_from_family" />
|
||||
</tree>
|
||||
</field>
|
||||
</record>
|
||||
|
|
|
|||
|
|
@ -78,8 +78,8 @@
|
|||
'|',
|
||||
'&',
|
||||
('state', 'not in', ['draft', 'researcher', 'send_request', 'first_approve', 'second_approve', 'accounting_approve']),
|
||||
('service_type', 'in', ['home_furnishing', 'marriage', 'eid_gift', 'winter_clothing', 'ramadan_basket']),
|
||||
('service_type', '=', 'electrical_devices')
|
||||
('service_type', 'in', ['marriage', 'eid_gift', 'winter_clothing', 'ramadan_basket']),
|
||||
('service_type', 'in', ['electrical_devices', 'home_furnishing'])
|
||||
]}" force_save="1" required="1" />
|
||||
<field name="amount_for_buy_home_for_member_count" attrs="{'invisible':[('service_type','!=','buy_home')]}"/>
|
||||
<field name="home_age" attrs="{'invisible':[('service_type','!=','buy_home')]}"/>
|
||||
|
|
|
|||
Loading…
Reference in New Issue