commit
424ebeafcc
|
|
@ -2346,7 +2346,6 @@ msgstr "اسم المرفق"
|
|||
#: model:ir.model.fields,field_description:odex_benefit.field_home_furnishing_lines__attachment_ids
|
||||
#: model:ir.model.fields,field_description:odex_benefit.field_home_maintenance_items__attachment_ids
|
||||
#: model:ir.model.fields,field_description:odex_benefit.field_home_maintenance_lines__attachment_ids
|
||||
#: model:ir.model.fields,field_description:odex_benefit.field_home_restoration_lines__attachment_ids
|
||||
#: model:ir.model.fields,field_description:odex_benefit.field_hospital_hospital__attachment_ids
|
||||
#: model:ir.model.fields,field_description:odex_benefit.field_house_need__attachment_ids
|
||||
#: model:ir.model.fields,field_description:odex_benefit.field_housing_need__attachment_ids
|
||||
|
|
@ -2685,7 +2684,6 @@ msgstr "فئات الاسرة"
|
|||
#. module: odex_benefit
|
||||
#: model:ir.model.fields,field_description:odex_benefit.field_electricity_bill_lines__benefit_category_id
|
||||
#: model:ir.model.fields,field_description:odex_benefit.field_grant_benefit__benefit_category_id
|
||||
#: model:ir.model.fields,field_description:odex_benefit.field_home_restoration_lines__benefit_category_id
|
||||
#: model:ir.model.fields,field_description:odex_benefit.field_rent_lines__benefit_category_id
|
||||
#: model:ir.model.fields,field_description:odex_benefit.field_water_bill_lines__benefit_category_id
|
||||
msgid "Benefit Category"
|
||||
|
|
@ -4342,7 +4340,6 @@ msgstr "قم بإنشاء أول فترة تعليمية"
|
|||
#: model:ir.model.fields,field_description:odex_benefit.field_home_furnishing_lines__create_uid
|
||||
#: model:ir.model.fields,field_description:odex_benefit.field_home_maintenance_items__create_uid
|
||||
#: model:ir.model.fields,field_description:odex_benefit.field_home_maintenance_lines__create_uid
|
||||
#: model:ir.model.fields,field_description:odex_benefit.field_home_restoration_lines__create_uid
|
||||
#: model:ir.model.fields,field_description:odex_benefit.field_hospital_hospital__create_uid
|
||||
#: model:ir.model.fields,field_description:odex_benefit.field_house_need__create_uid
|
||||
#: model:ir.model.fields,field_description:odex_benefit.field_housing_need__create_uid
|
||||
|
|
@ -4498,7 +4495,6 @@ msgstr "انشئ بواسطة"
|
|||
#: model:ir.model.fields,field_description:odex_benefit.field_home_furnishing_lines__create_date
|
||||
#: model:ir.model.fields,field_description:odex_benefit.field_home_maintenance_items__create_date
|
||||
#: model:ir.model.fields,field_description:odex_benefit.field_home_maintenance_lines__create_date
|
||||
#: model:ir.model.fields,field_description:odex_benefit.field_home_restoration_lines__create_date
|
||||
#: model:ir.model.fields,field_description:odex_benefit.field_hospital_hospital__create_date
|
||||
#: model:ir.model.fields,field_description:odex_benefit.field_house_need__create_date
|
||||
#: model:ir.model.fields,field_description:odex_benefit.field_housing_need__create_date
|
||||
|
|
@ -5118,7 +5114,6 @@ msgstr "نوع المرض"
|
|||
#: model:ir.model.fields,field_description:odex_benefit.field_home_furnishing_lines__display_name
|
||||
#: model:ir.model.fields,field_description:odex_benefit.field_home_maintenance_items__display_name
|
||||
#: model:ir.model.fields,field_description:odex_benefit.field_home_maintenance_lines__display_name
|
||||
#: model:ir.model.fields,field_description:odex_benefit.field_home_restoration_lines__display_name
|
||||
#: model:ir.model.fields,field_description:odex_benefit.field_hospital_hospital__display_name
|
||||
#: model:ir.model.fields,field_description:odex_benefit.field_house_need__display_name
|
||||
#: model:ir.model.fields,field_description:odex_benefit.field_housing_need__display_name
|
||||
|
|
@ -7039,93 +7034,11 @@ msgstr ""
|
|||
msgid "Has Unreconciled Entries"
|
||||
msgstr "يحتوي قيود غير مسواة"
|
||||
|
||||
#. module: odex_benefit
|
||||
#: model:ir.model.fields,field_description:odex_benefit.field_service_request__has_money_field_is_appearance
|
||||
#: model:ir.model.fields,field_description:odex_benefit.field_service_request__has_money_for_payment_is_appearance
|
||||
msgid "Has money Field is appearance?"
|
||||
msgstr ""
|
||||
|
||||
#. module: odex_benefit
|
||||
#: model:ir.model.fields,field_description:odex_benefit.field_service_request__has_money_for_payment
|
||||
msgid "Has money for payment?"
|
||||
msgstr ""
|
||||
|
||||
#. module: odex_benefit
|
||||
#: model:ir.model.fields,field_description:odex_benefit.field_service_request__has_money_to_pay_first_payment
|
||||
msgid "Has money to pay first payment?"
|
||||
msgstr ""
|
||||
|
||||
#. module: odex_benefit
|
||||
#: code:addons/odex_benefit/models/family_members.py:0
|
||||
#, python-format
|
||||
msgid "He does not reside with his family."
|
||||
msgstr "لايقيم مع اسرته"
|
||||
|
||||
#. module: odex_benefit
|
||||
#: code:addons/odex_benefit/models/family_members.py:0
|
||||
#, python-format
|
||||
msgid ""
|
||||
"He has a physical or intellectual disability but is over %s years of age."
|
||||
msgstr "لديه إعاقة جسدية أو فكرية ولكنه تجاوز عمر %s"
|
||||
|
||||
#. module: odex_benefit
|
||||
#: code:addons/odex_benefit/models/family_members.py:0
|
||||
#, python-format
|
||||
msgid "He is employed with a salary exceeding %s."
|
||||
msgstr "يعمل براتب اكبر من %s"
|
||||
|
||||
#. module: odex_benefit
|
||||
#: code:addons/odex_benefit/models/family_members.py:0
|
||||
#, python-format
|
||||
msgid ""
|
||||
"He is enrolled in a medical specialization but is over %s years of age."
|
||||
msgstr "منتظم في أحد التخصصات الطبية ولكنه تجاوز عمر %s"
|
||||
|
||||
#. module: odex_benefit
|
||||
#: code:addons/odex_benefit/models/family_members.py:0
|
||||
#, python-format
|
||||
msgid ""
|
||||
"He is enrolled in a scientific or vocational specialization but is over %s "
|
||||
"years of age."
|
||||
msgstr "منتظم في أحد التخصصات العلمية أو المهنية ولكنه تجاوز عمر %s"
|
||||
|
||||
#. module: odex_benefit
|
||||
#: code:addons/odex_benefit/models/family_members.py:0
|
||||
#, python-format
|
||||
msgid "He is over %s years of age and has completed his education."
|
||||
msgstr "تجاوز عمر %s واكمل تعليمه"
|
||||
|
||||
#. module: odex_benefit
|
||||
#: code:addons/odex_benefit/models/family_members.py:0
|
||||
#, python-format
|
||||
msgid ""
|
||||
"He is over %s years of age and not enrolled in a scientific or medical "
|
||||
"specialization."
|
||||
msgstr "تجاوز عمر %s وليس منتظم في تخصص علمي أو طبي"
|
||||
|
||||
#. module: odex_benefit
|
||||
#: code:addons/odex_benefit/models/family_members.py:0
|
||||
#: code:addons/odex_benefit/models/family_members.py:0
|
||||
#, python-format
|
||||
msgid ""
|
||||
"He is over %s years of age and not enrolled in an educational institution."
|
||||
msgstr "تجاوز عمر %s وغير منتظم بجهة تعلمية"
|
||||
|
||||
#. module: odex_benefit
|
||||
#: model:res.groups,name:odex_benefit.group_benefit_woman_commitee
|
||||
msgid "Head of the Women's Committee"
|
||||
msgstr "رئيس العمليات"
|
||||
|
||||
#. module: odex_benefit
|
||||
#: model:ir.model.fields.selection,name:odex_benefit.selection__services_settings__service_type__health_care
|
||||
msgid "Health Care"
|
||||
msgstr ""
|
||||
|
||||
#. module: odex_benefit
|
||||
#: model_terms:ir.ui.view,arch_db:odex_benefit.services_settings_form
|
||||
msgid "Health Care Settings"
|
||||
msgstr ""
|
||||
|
||||
#. module: odex_benefit
|
||||
#: model:ir.model.fields,field_description:odex_benefit.field_benefits_representative__health_status
|
||||
#: model:ir.model.fields,field_description:odex_benefit.field_external_benefits__health_status
|
||||
|
|
@ -7222,31 +7135,11 @@ msgstr ""
|
|||
msgid "Home Restoration"
|
||||
msgstr ""
|
||||
|
||||
#. module: odex_benefit
|
||||
#: model:ir.model.fields,field_description:odex_benefit.field_services_settings__home_restoration_lines
|
||||
msgid "Home Restoration Lines"
|
||||
msgstr ""
|
||||
|
||||
#. module: odex_benefit
|
||||
#: model_terms:ir.ui.view,arch_db:odex_benefit.service_request_form
|
||||
msgid "Home Restoration Service"
|
||||
msgstr ""
|
||||
|
||||
#. module: odex_benefit
|
||||
#: model_terms:ir.ui.view,arch_db:odex_benefit.services_settings_form
|
||||
msgid "Home Restoration Service Settings"
|
||||
msgstr ""
|
||||
|
||||
#. module: odex_benefit
|
||||
#: model:ir.model.fields.selection,name:odex_benefit.selection__services_settings__service_type__home_furnishing
|
||||
msgid "Home furnishing"
|
||||
msgstr ""
|
||||
|
||||
#. module: odex_benefit
|
||||
#: model_terms:ir.ui.view,arch_db:odex_benefit.services_settings_form
|
||||
msgid "Home furnishing Settings"
|
||||
msgstr ""
|
||||
|
||||
#. module: odex_benefit
|
||||
#: model:ir.model.fields,field_description:odex_benefit.field_grant_benefit__hospital_id
|
||||
msgid "Hospital"
|
||||
|
|
@ -7459,7 +7352,6 @@ msgstr "مرفق الآيبان مطلوب."
|
|||
#: model:ir.model.fields,field_description:odex_benefit.field_home_furnishing_lines__id
|
||||
#: model:ir.model.fields,field_description:odex_benefit.field_home_maintenance_items__id
|
||||
#: model:ir.model.fields,field_description:odex_benefit.field_home_maintenance_lines__id
|
||||
#: model:ir.model.fields,field_description:odex_benefit.field_home_restoration_lines__id
|
||||
#: model:ir.model.fields,field_description:odex_benefit.field_hospital_hospital__id
|
||||
#: model:ir.model.fields,field_description:odex_benefit.field_house_need__id
|
||||
#: model:ir.model.fields,field_description:odex_benefit.field_housing_need__id
|
||||
|
|
@ -8714,7 +8606,6 @@ msgstr "الجهة التعليمية السابقة"
|
|||
#: model:ir.model.fields,field_description:odex_benefit.field_home_furnishing_lines____last_update
|
||||
#: model:ir.model.fields,field_description:odex_benefit.field_home_maintenance_items____last_update
|
||||
#: model:ir.model.fields,field_description:odex_benefit.field_home_maintenance_lines____last_update
|
||||
#: model:ir.model.fields,field_description:odex_benefit.field_home_restoration_lines____last_update
|
||||
#: model:ir.model.fields,field_description:odex_benefit.field_hospital_hospital____last_update
|
||||
#: model:ir.model.fields,field_description:odex_benefit.field_house_need____last_update
|
||||
#: model:ir.model.fields,field_description:odex_benefit.field_housing_need____last_update
|
||||
|
|
@ -8895,7 +8786,6 @@ msgstr "التخصص السابق"
|
|||
#: model:ir.model.fields,field_description:odex_benefit.field_home_furnishing_lines__write_uid
|
||||
#: model:ir.model.fields,field_description:odex_benefit.field_home_maintenance_items__write_uid
|
||||
#: model:ir.model.fields,field_description:odex_benefit.field_home_maintenance_lines__write_uid
|
||||
#: model:ir.model.fields,field_description:odex_benefit.field_home_restoration_lines__write_uid
|
||||
#: model:ir.model.fields,field_description:odex_benefit.field_hospital_hospital__write_uid
|
||||
#: model:ir.model.fields,field_description:odex_benefit.field_house_need__write_uid
|
||||
#: model:ir.model.fields,field_description:odex_benefit.field_housing_need__write_uid
|
||||
|
|
@ -9051,7 +8941,6 @@ msgstr "آخر تحديث بواسطة"
|
|||
#: model:ir.model.fields,field_description:odex_benefit.field_home_furnishing_lines__write_date
|
||||
#: model:ir.model.fields,field_description:odex_benefit.field_home_maintenance_items__write_date
|
||||
#: model:ir.model.fields,field_description:odex_benefit.field_home_maintenance_lines__write_date
|
||||
#: model:ir.model.fields,field_description:odex_benefit.field_home_restoration_lines__write_date
|
||||
#: model:ir.model.fields,field_description:odex_benefit.field_hospital_hospital__write_date
|
||||
#: model:ir.model.fields,field_description:odex_benefit.field_house_need__write_date
|
||||
#: model:ir.model.fields,field_description:odex_benefit.field_housing_need__write_date
|
||||
|
|
@ -9451,17 +9340,9 @@ msgid "Marriage"
|
|||
msgstr ""
|
||||
|
||||
#. module: odex_benefit
|
||||
#: model:ir.model.fields,field_description:odex_benefit.field_family_member__marriage_certificate
|
||||
msgid "Marriage Certificate"
|
||||
msgstr "شهادة الزواج"
|
||||
|
||||
#. module: odex_benefit
|
||||
#: code:addons/odex_benefit/models/family_members.py:0
|
||||
#, python-format
|
||||
msgid ""
|
||||
"Marriage Certificate is required for member '%s' when marked as married and "
|
||||
"not a mother."
|
||||
msgstr "شهادة الزواج مطلوبة للفرد '%s' عند تحديده كمتزوج وليس أماً."
|
||||
#: model:ir.model.fields,field_description:odex_benefit.field_services_settings__max_amount_for_student
|
||||
msgid "Max Amount for Student"
|
||||
msgstr "الحد الاقصى لإيجار الطالب"
|
||||
|
||||
#. module: odex_benefit
|
||||
#: model_terms:ir.ui.view,arch_db:odex_benefit.service_request_form
|
||||
|
|
@ -10593,7 +10474,6 @@ msgstr "نوع النشاط التالي"
|
|||
#. module: odex_benefit
|
||||
#: model:ir.model.fields.selection,name:odex_benefit.selection__service_request__has_marriage_course__no
|
||||
#: model:ir.model.fields.selection,name:odex_benefit.selection__service_request__has_money_for_payment__no
|
||||
#: model:ir.model.fields.selection,name:odex_benefit.selection__service_request__has_money_to_pay_first_payment__no
|
||||
msgid "No"
|
||||
msgstr "لا"
|
||||
|
||||
|
|
@ -13222,7 +13102,6 @@ msgstr "طلبات الخدمات"
|
|||
#: model:ir.model.fields,field_description:odex_benefit.field_electricity_bill_lines__services_settings_id
|
||||
#: model:ir.model.fields,field_description:odex_benefit.field_home_furnishing_lines__services_settings_id
|
||||
#: model:ir.model.fields,field_description:odex_benefit.field_home_maintenance_lines__services_settings_id
|
||||
#: model:ir.model.fields,field_description:odex_benefit.field_home_restoration_lines__services_settings_id
|
||||
#: model:ir.model.fields,field_description:odex_benefit.field_rent_lines__services_settings_id
|
||||
#: model:ir.model.fields,field_description:odex_benefit.field_transportation_insurance__services_settings_id
|
||||
#: model:ir.model.fields,field_description:odex_benefit.field_water_bill_lines__services_settings_id
|
||||
|
|
@ -15595,7 +15474,6 @@ msgstr "سنوي"
|
|||
#. module: odex_benefit
|
||||
#: model:ir.model.fields.selection,name:odex_benefit.selection__service_request__has_marriage_course__yes
|
||||
#: model:ir.model.fields.selection,name:odex_benefit.selection__service_request__has_money_for_payment__yes
|
||||
#: model:ir.model.fields.selection,name:odex_benefit.selection__service_request__has_money_to_pay_first_payment__yes
|
||||
msgid "Yes"
|
||||
msgstr "نعم"
|
||||
|
||||
|
|
@ -16533,11 +16411,6 @@ msgstr ""
|
|||
msgid "home.maintenance.lines"
|
||||
msgstr ""
|
||||
|
||||
#. module: odex_benefit
|
||||
#: model:ir.model,name:odex_benefit.model_home_restoration_lines
|
||||
msgid "home.restoration.lines"
|
||||
msgstr ""
|
||||
|
||||
#. module: odex_benefit
|
||||
#: model_terms:ir.ui.view,arch_db:odex_benefit.hospital_tree
|
||||
msgid "hospital"
|
||||
|
|
@ -18005,11 +17878,6 @@ msgstr "مرة كل فترة"
|
|||
msgid "Unlimited"
|
||||
msgstr "غير محدد"
|
||||
|
||||
#. module: odex_benefit
|
||||
#: model:ir.model.fields,field_description:odex_benefit.field_services_settings__recurrence_period
|
||||
msgid "Recurrence Period (Months)"
|
||||
msgstr "فترة التكرار(عدد الشهور)"
|
||||
|
||||
#. module: odex_benefit
|
||||
#: model:ir.model.fields,field_description:odex_benefit.field_services_settings__requires_visit
|
||||
msgid "Requires Visit?"
|
||||
|
|
|
|||
|
|
@ -105,9 +105,7 @@ class ServiceRequest(models.Model):
|
|||
# maintenance_items_id = fields.Many2one('home.maintenance.lines', string="Maintenance Items")
|
||||
maintenance_items_ids = fields.One2many('home.maintenance.items','service_request_id', string="Maintenance Items",)
|
||||
#Home restoration fields
|
||||
restoration_max_amount = fields.Float(string='Restoration Max Amount',compute='_get_restoration_max_amount')
|
||||
has_money_to_pay_first_payment = fields.Selection([('yes', 'Yes'), ('no', 'No')],string='Has money to pay first payment?')
|
||||
has_money_field_is_appearance = fields.Boolean(string='Has money Field is appearance?',compute='_get_money_field_is_appearance')
|
||||
restoration_max_amount = fields.Float(string='Restoration Max Amount')
|
||||
payment_order_id = fields.Many2one('payment.orders',string='Payment Order')
|
||||
is_payment_order_done = fields.Boolean(string='Is Payment Order Done?')
|
||||
aid_amount = fields.Float(string='Aid Amount',compute='_get_aid_amount')
|
||||
|
|
@ -180,6 +178,10 @@ class ServiceRequest(models.Model):
|
|||
exception_attach = fields.Many2many('ir.attachment', 'rel_exception_attachment_service_request', 'service_request_id',
|
||||
'attachment_id', string='Exception Attachment')
|
||||
service_conditions = fields.Html(related='service_cat.service_conditions', string="Service Conditions")
|
||||
service_approval_date = fields.Datetime(string="Service Approval Date",readonly=True,)
|
||||
company_id = fields.Many2one('res.company', string="Company", default=lambda self: self.env.user.company_id)
|
||||
currency_id = fields.Many2one('res.currency', string="Currency", related='company_id.currency_id')
|
||||
service_max_amount = fields.Monetary(string="Maximum Amount", currency_field='currency_id', copy=False)
|
||||
|
||||
|
||||
|
||||
|
|
@ -385,21 +387,6 @@ class ServiceRequest(models.Model):
|
|||
rec.added_amount_if_mother_dead = 0.0
|
||||
if rec.family_id.mother_marital_conf.is_dead:
|
||||
rec.added_amount_if_mother_dead = rec.service_cat.raise_amount_for_orphan
|
||||
@api.depends('service_cat','family_id')
|
||||
def _get_restoration_max_amount(self):
|
||||
self.restoration_max_amount = 0.0
|
||||
for line in self.service_cat.home_restoration_lines:
|
||||
if line.benefit_category_id == self.family_category:
|
||||
self.restoration_max_amount = line.max_amount
|
||||
# else:
|
||||
# self.restoration_max_amount = 0.0
|
||||
@api.depends('requested_service_amount', 'restoration_max_amount')
|
||||
def _get_money_field_is_appearance(self):
|
||||
for rec in self:
|
||||
if rec.requested_service_amount and rec.restoration_max_amount and rec.requested_service_amount > rec.restoration_max_amount :
|
||||
rec.has_money_field_is_appearance = True
|
||||
else:
|
||||
rec.has_money_field_is_appearance = False
|
||||
|
||||
@api.depends('requested_service_amount', 'max_complete_building_house_amount')
|
||||
def _get_money_for_payment_is_appearance(self):
|
||||
|
|
@ -474,10 +461,12 @@ class ServiceRequest(models.Model):
|
|||
else:
|
||||
if rec.service_type == 'buy_car':
|
||||
rec.family_id.has_car = True
|
||||
rec.service_approval_date = fields.Datetime.now()
|
||||
rec.state = 'send_request_to_supplier'
|
||||
|
||||
def action_supplier_approve(self):
|
||||
for rec in self:
|
||||
rec.service_approval_date = fields.Datetime.now()
|
||||
rec.state = 'send_request_to_supplier'
|
||||
|
||||
def action_request_done(self):
|
||||
|
|
@ -506,13 +495,6 @@ class ServiceRequest(models.Model):
|
|||
'target': 'new',
|
||||
}
|
||||
|
||||
@api.onchange('service_cat','family_id')
|
||||
def onchange_service_cat(self):
|
||||
for rec in self:
|
||||
if rec.service_cat.service_type == 'rent' and rec.family_id.property_type != 'rent' and rec.family_id.property_type != 'rent_shared' and rec.benefit_type == 'family':
|
||||
raise UserError(_("You cannot benefit from this service (property type not rent)"))
|
||||
if rec.service_cat.service_type == 'home_restoration' and rec.family_id.property_type != 'ownership' and rec.family_id.property_type != 'ownership_shared' and rec.family_id.property_type != 'charitable' and rec.benefit_type == 'family':
|
||||
raise UserError(_("You cannot benefit from this service (property type not ownership)"))
|
||||
|
||||
@api.onchange('rent_payment_date','new_rent_payment_date')
|
||||
def onchange_rent_payment_date(self):
|
||||
|
|
@ -557,6 +539,8 @@ class ServiceRequest(models.Model):
|
|||
|
||||
@api.onchange('service_cat','family_id')
|
||||
def _onchange_service_cat(self):
|
||||
if self.service_cat.service_type == 'rent' and self.family_id.property_type != 'rent' and self.family_id.property_type != 'rent_shared' and self.benefit_type == 'family':
|
||||
raise UserError(_("You cannot benefit from this service (property type not rent)"))
|
||||
electricity_bill_amount = max(self.service_cat.electricity_bill_lines.filtered(lambda x : x.benefit_category_id.id == self.family_category.id and
|
||||
x.min_count_member <= self.benefit_member_count <= x.max_count_member).mapped('max_amount_for_electricity_bill'), default=0.0)
|
||||
water_bill_amount = max(self.service_cat.water_bill_lines.filtered(lambda x : x.benefit_category_id.id == self.family_category.id and
|
||||
|
|
@ -650,8 +634,7 @@ 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)
|
||||
home_restoration_line_id = rec.service_cat.category_amount_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
|
||||
|
|
@ -969,6 +952,8 @@ class ServiceRequest(models.Model):
|
|||
if rec.benefit_type:
|
||||
if rec.benefit_type == 'family':
|
||||
domain = [('service_type', '!=', 'main_service'),('benefit_type','!=','member'),('benefit_category_ids', 'in', [rec.family_category.id])]
|
||||
if rec.family_id.property_type not in ['ownership','ownership_shared','charitable']:
|
||||
domain.append(('service_type','!=','home_restoration'))
|
||||
rec.available_service_cats = rec.available_service_cats.sudo().search(domain)
|
||||
elif rec.benefit_type == 'member' and rec.member_id:
|
||||
domain = [
|
||||
|
|
|
|||
|
|
@ -27,7 +27,7 @@ class ServicesSettings(models.Model):
|
|||
rent_lines = fields.One2many('rent.lines','services_settings_id')
|
||||
attachment_lines = fields.One2many('service.attachments.settings','service_id')
|
||||
#Fields for home restoration
|
||||
home_restoration_lines = fields.One2many('home.restoration.lines','services_settings_id')
|
||||
category_amount_lines = fields.One2many('category.amount.line','services_settings_id')
|
||||
rent_amount_for_alternative_housing = fields.Float(string='Rent Amount For Alternative Housing')
|
||||
rent_period = fields.Integer('Rent Period')
|
||||
home_maintenance_lines = fields.One2many('home.maintenance.lines','services_settings_id')
|
||||
|
|
@ -102,8 +102,14 @@ class ServicesSettings(models.Model):
|
|||
('periodic', 'Every Period'),
|
||||
('unlimited', 'Unlimited'),
|
||||
], string="Allowed Recurrence", default='once')
|
||||
recurrence_period = fields.Integer(
|
||||
string="Recurrence Period (Months)"
|
||||
recurrence_period = fields.Selection([
|
||||
('months', 'Months'),
|
||||
('years', 'Years'),],
|
||||
string="Recurrence Period", default='months'
|
||||
)
|
||||
recurrence_interval = fields.Integer(
|
||||
string="Recurrence Interval",
|
||||
default=1,
|
||||
)
|
||||
requires_visit = fields.Boolean(
|
||||
string="Requires Visit?"
|
||||
|
|
@ -137,10 +143,10 @@ class RentLines(models.Model):
|
|||
_("Couldn't create same benefit category and count")
|
||||
)
|
||||
]
|
||||
|
||||
|
||||
class HomeRestorationLines(models.Model):
|
||||
_name = 'home.restoration.lines'
|
||||
|
||||
class CategoryAmountLine(models.Model):
|
||||
_name = 'category.amount.line'
|
||||
|
||||
benefit_category_id = fields.Many2one('benefit.category', string='Benefit Category')
|
||||
services_settings_id = fields.Many2one('services.settings', string='Services Settings')
|
||||
|
|
@ -205,8 +211,8 @@ class TransportationInsurance(models.Model):
|
|||
name = fields.Char(string="Insurance Name", required=True)
|
||||
limit_amount = fields.Float(required=True)
|
||||
account_id = fields.Many2one(
|
||||
'account.account',
|
||||
string='Expenses Account',
|
||||
domain="[('user_type_id.id', '=', 15)]",
|
||||
'account.account',
|
||||
string='Expenses Account',
|
||||
domain="[('user_type_id.id', '=', 15)]",
|
||||
required=True
|
||||
)
|
||||
|
|
|
|||
|
|
@ -135,7 +135,7 @@ access_seasonal_service,access_seasonal_services,model_seasonal_service,base.gro
|
|||
access_seasonal_grant_benefit,access_seasonal_grant_benefits,model_seasonal_grant_benefit,base.group_user,1,1,1,1
|
||||
access_marital_status,access_marital_status,model_marital_status,base.group_user,1,1,1,1
|
||||
access_service_attachments_settings,access_service_attachments_settings,model_service_attachments_settings,base.group_user,1,1,1,1
|
||||
access_home_restoration_lines,access_home_restoration_lines,model_home_restoration_lines,base.group_user,1,1,1,1
|
||||
access_category_amount_line,access_category_amount_line,model_category_amount_line,base.group_user,1,1,1,1
|
||||
access_home_maintenance_lines,access_home_maintenance_lines,model_home_maintenance_lines,base.group_user,1,1,1,1
|
||||
access_home_maintenance_items,access_home_maintenance_items,model_home_maintenance_items,base.group_user,1,1,1,1
|
||||
access_exchange_order_wizard,access_exchange_order_wizard,model_exchange_order_wizard,base.group_user,1,1,1,1
|
||||
|
|
|
|||
|
|
|
@ -8,7 +8,7 @@
|
|||
<form string="Service Request">
|
||||
<header>
|
||||
<button name="action_send_to_researcher" type="object" states="draft"
|
||||
string="Send" class="oe_highlight" />
|
||||
string="Send" class="oe_highlight"/>
|
||||
<button name="action_researcher_send_request" type="object" states="researcher"
|
||||
string="Researcher Approval" class="oe_highlight"
|
||||
groups="odex_benefit.group_benefit_researcher"
|
||||
|
|
@ -126,12 +126,15 @@
|
|||
<field name="is_service_producer" invisible="1"/>
|
||||
<field name="service_producer_id"
|
||||
attrs="{'invisible':[('is_service_producer','=',False)],'readonly':[('state','not in',['draft','researcher','send_request'])]}"/>
|
||||
<field name="currency_id" groups="base.group_multi_currency"/>
|
||||
<field name="company_id" groups="base.group_multi_company"/>
|
||||
</group>
|
||||
<group>
|
||||
<field name="available_service_cats" invisible="1"/>
|
||||
<field name="service_cat"
|
||||
attrs="{'readonly':[('state','not in',['draft','researcher','send_request'])]}"
|
||||
domain="[('id','in',available_service_cats)]" required="1"/>
|
||||
<field name="service_approval_date"/>
|
||||
<field name="need_status"
|
||||
attrs="{'readonly':[('state','not in',['draft','researcher','send_request'])]}"/>
|
||||
<field name="main_service_category"
|
||||
|
|
@ -147,6 +150,8 @@
|
|||
('service_type', 'in', ['marriage', 'eid_gift', 'winter_clothing', 'ramadan_basket']),
|
||||
('service_type', 'in', ['electrical_devices', 'home_furnishing'])
|
||||
]}" force_save="1" required="1"/>
|
||||
<field name="service_max_amount"
|
||||
attrs="{'readonly':[('state','not in',['draft','researcher','send_request'])]}"/>
|
||||
<field name="exception"
|
||||
attrs="{'readonly':[('state','not in',['draft','researcher','send_request'])]}"/>
|
||||
<field name="exception_attach" attrs="{'invisible': [('exception', '=', False)]}"
|
||||
|
|
@ -308,15 +313,6 @@
|
|||
</tree>
|
||||
</field>
|
||||
</page>
|
||||
<page string="Home Restoration Service"
|
||||
attrs="{'invisible':[('service_type', '!=', 'home_restoration')]}">
|
||||
<group>
|
||||
<field name="restoration_max_amount"/>
|
||||
<field name="has_money_field_is_appearance" invisible="1"/>
|
||||
<field name="has_money_to_pay_first_payment"
|
||||
attrs="{'invisible':[('has_money_field_is_appearance', '=', False)],'required':[('has_money_field_is_appearance', '=', True)]}"/>
|
||||
</group>
|
||||
</page>
|
||||
<page string="Complete Building House"
|
||||
attrs="{'invisible':[('service_type', '!=', 'complete_building_house')]}">
|
||||
<group>
|
||||
|
|
|
|||
|
|
@ -32,7 +32,8 @@
|
|||
<page string="Settings">
|
||||
<group>
|
||||
<group>
|
||||
<field name="max_amount"/>
|
||||
<field name="max_limit_type"/>
|
||||
<field name="max_amount" attrs="{'invisible': [('max_limit_type', '!=', 'fixed')]}"/>
|
||||
<field name="currency_id" invisible="1"/>
|
||||
</group>
|
||||
<group>
|
||||
|
|
@ -59,12 +60,15 @@
|
|||
<group>
|
||||
<group>
|
||||
<field name="allowed_recurrence"/>
|
||||
<field name="recurrence_period"
|
||||
<label for="recurrence_interval"
|
||||
attrs="{'invisible': [('allowed_recurrence', '!=', 'periodic')]}"/>
|
||||
<div class="o_row" attrs="{'invisible': [('allowed_recurrence', '!=', 'periodic')]}">
|
||||
<field name="recurrence_interval" class="oe_inline" nolabel="1"/>
|
||||
<field name="recurrence_period" class="oe_inline" nolabel="1"/>
|
||||
</div>
|
||||
</group>
|
||||
<group>
|
||||
<field name="requires_visit" widget="boolean_toggle"/>
|
||||
<field name="max_limit_type"/>
|
||||
</group>
|
||||
</group>
|
||||
</page>
|
||||
|
|
@ -114,9 +118,9 @@
|
|||
<field name="raise_amount_for_orphan"/>
|
||||
</group>
|
||||
</page>
|
||||
<page string="Home Restoration Service Settings"
|
||||
attrs="{'invisible':[('service_type','!=','home_restoration')]}">
|
||||
<field name="home_restoration_lines" widget="one2many_list">
|
||||
<page string="Amounts by Categories"
|
||||
attrs="{'invisible':[('max_limit_type', '!=', 'category')]}">
|
||||
<field name="category_amount_lines" widget="one2many_list">
|
||||
<tree editable="bottom">
|
||||
<field name="benefit_category_id"/>
|
||||
<field name="max_amount"/>
|
||||
|
|
|
|||
|
|
@ -20,16 +20,6 @@ msgstr ""
|
|||
msgid "Alternative Housing"
|
||||
msgstr ""
|
||||
|
||||
#. module: odex_benefit_project
|
||||
#: model:ir.model.fields,field_description:odex_benefit_project.field_project_project__has_money_field_is_appearance
|
||||
msgid "Has money Field is appearance?"
|
||||
msgstr ""
|
||||
|
||||
#. module: odex_benefit_project
|
||||
#: model:ir.model.fields,field_description:odex_benefit_project.field_project_project__has_money_to_pay_first_payment
|
||||
msgid "Has money to pay first payment?"
|
||||
msgstr ""
|
||||
|
||||
#. module: odex_benefit_project
|
||||
#: model:ir.model.fields.selection,name:odex_benefit_project.selection__project_project__service_type__home_maintenance
|
||||
msgid "Home Maintenance"
|
||||
|
|
|
|||
|
|
@ -7,8 +7,6 @@ class ProjectProjectInherit(models.Model):
|
|||
#Fields for 'Home restoration' service and 'alternative_housing' service
|
||||
requested_service_amount = fields.Float(string="Requested Service Amount")
|
||||
restoration_max_amount = fields.Float(string='Restoration Max Amount')
|
||||
has_money_field_is_appearance = fields.Boolean(string='Has money Field is appearance?')
|
||||
has_money_to_pay_first_payment = fields.Boolean(string='Has money to pay first payment?')
|
||||
is_family_need_evacuate = fields.Boolean(string='Is family need evacuate?')
|
||||
#Fields for 'complete building house' service
|
||||
max_complete_building_house_amount = fields.Float(string='Max Complete Building House Amount')
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
from odoo import fields, models, api, _
|
||||
from odoo.exceptions import UserError, ValidationError
|
||||
from datetime import timedelta
|
||||
from datetime import datetime,timedelta
|
||||
from dateutil.relativedelta import relativedelta
|
||||
|
||||
class ServiceRequestInherit(models.Model):
|
||||
|
|
@ -8,14 +8,15 @@ class ServiceRequestInherit(models.Model):
|
|||
_inherit = 'service.request'
|
||||
|
||||
project_id = fields.Many2one('project.project',srting='Project')
|
||||
project_expected_delivery_date = fields.Date(string='Expected Delivery Date',related='project_id.date',)
|
||||
rent_period = fields.Integer('Rent Period')
|
||||
project_create = fields.Boolean(string='Project Create?',related='service_cat.project_create')
|
||||
|
||||
def action_accounting_approve(self):
|
||||
super(ServiceRequestInherit, self).action_accounting_approve()
|
||||
for rec in self:
|
||||
if rec.service_cat.project_create:
|
||||
project = self.env['project.project'].create(
|
||||
if rec.service_cat.project_create and not rec.project_id:
|
||||
project = self.env['project.project'].sudo().create(
|
||||
{
|
||||
'name': (_('%s')%rec.service_cat.service_type) +"/"+ rec.family_id.name +"/"+ rec.family_id.code,
|
||||
'partner_id': rec.service_producer_id.id,
|
||||
|
|
@ -23,12 +24,19 @@ class ServiceRequestInherit(models.Model):
|
|||
'category_id' : rec.service_cat.category_id.id,
|
||||
'requested_service_amount' : rec.requested_service_amount,
|
||||
'restoration_max_amount' : rec.restoration_max_amount,
|
||||
'has_money_field_is_appearance': rec.has_money_field_is_appearance,
|
||||
'has_money_to_pay_first_payment' : rec.has_money_to_pay_first_payment,
|
||||
'service_type' : rec.service_cat.service_type,
|
||||
'max_complete_building_house_amount' : rec.max_complete_building_house_amount,
|
||||
'has_money_for_payment_is_appearance' : rec.has_money_for_payment_is_appearance,
|
||||
'has_money_for_payment' : rec.has_money_for_payment,
|
||||
'department_execute_id': rec.family_id.branch_custom_id.branch.id,
|
||||
'project_latitude': rec.family_id.lat,
|
||||
'project_longitude': rec.family_id.lon,
|
||||
'street': rec.family_id.street,
|
||||
'street2': rec.family_id.house_number,
|
||||
'city': rec.family_id.city_id.name,
|
||||
'state_id': rec.family_id.city_id.state_id.id,
|
||||
'zip': rec.family_id.zip,
|
||||
'country_id':rec.family_id.city_id.country_id.id,
|
||||
}
|
||||
)
|
||||
rec.project_id = project
|
||||
|
|
@ -47,14 +55,70 @@ class ServiceRequestInherit(models.Model):
|
|||
)
|
||||
def onchange_requested_service_amount(self):
|
||||
res = {}
|
||||
Service = self.env['service.request']
|
||||
today = fields.Date.today()
|
||||
|
||||
#to delete
|
||||
date_before_year = today - timedelta(days=365)
|
||||
date_before_seven_years = today - relativedelta(years=7)
|
||||
date_before_three_years = today - relativedelta(years=3)
|
||||
date_before_ten_years = today - timedelta(days=3650)
|
||||
date_before_month = today - timedelta(days=30)
|
||||
|
||||
for rec in self:
|
||||
if not rec.exception and not rec.exception_attach:
|
||||
family_id = rec.family_id.id
|
||||
service_type = rec.service_cat.service_type
|
||||
allowed = rec.service_cat.allowed_recurrence
|
||||
interval = rec.service_cat.recurrence_interval or 1
|
||||
period = rec.service_cat.recurrence_period or 'months'
|
||||
max_limit_type = rec.service_cat.max_limit_type
|
||||
if allowed:
|
||||
if allowed == 'unlimited':
|
||||
continue
|
||||
base_domain = [
|
||||
('family_id', '=', family_id),
|
||||
('service_cat.service_type', '=', service_type),
|
||||
('id', '!=', rec._origin.id),
|
||||
('state', '!=', 'refused')
|
||||
]
|
||||
if allowed == 'once':
|
||||
if Service.search_count(base_domain):
|
||||
raise UserError(_("You cannot request this service more than once."))
|
||||
continue
|
||||
|
||||
last_request = Service.search(base_domain, order='date desc', limit=1)
|
||||
if last_request and last_request.date:
|
||||
last_date = (
|
||||
last_request.date.date()
|
||||
if isinstance(last_request.date, datetime)
|
||||
else last_request.date
|
||||
)
|
||||
next_allowed_date = (
|
||||
last_date + relativedelta(months=interval)
|
||||
if period == 'months'
|
||||
else last_date + relativedelta(years=interval)
|
||||
)
|
||||
if isinstance(next_allowed_date, datetime):
|
||||
next_allowed_date = next_allowed_date.date()
|
||||
|
||||
if today < next_allowed_date:
|
||||
raise UserError(_(
|
||||
"You can only request this service again after %s."
|
||||
) % next_allowed_date.strftime('%Y-%m-%d'))
|
||||
|
||||
if max_limit_type:
|
||||
if max_limit_type == 'fixed':
|
||||
rec.service_max_amount = rec.service_cat.max_amount
|
||||
elif max_limit_type == 'category':
|
||||
rec.service_max_amount = rec.service_cat.category_amount_lines.filtered(
|
||||
lambda r: r.benefit_category_id.id == rec.family_category.id).max_amount
|
||||
|
||||
if rec.requested_service_amount > rec.service_max_amount:
|
||||
raise UserError(
|
||||
_("You cannot request more than %s") % rec.service_max_amount
|
||||
)
|
||||
|
||||
|
||||
# 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
|
||||
|
|
@ -101,31 +165,6 @@ class ServiceRequestInherit(models.Model):
|
|||
if existing_request_restoration:
|
||||
raise UserError(
|
||||
_("You cannot request this service with restoration service in the same year."))
|
||||
# Validation for 'family' benefit type with 'home_restoration'
|
||||
if rec.benefit_type == 'family' and rec.service_cat.service_type == 'home_restoration':
|
||||
# Prevent multiple 'home_maintenance' requests within the same year
|
||||
existing_request_restoration = self.search([
|
||||
('date', '>', date_before_ten_years),
|
||||
('family_id', '=', rec.family_id.id),
|
||||
('service_cat.service_type', '=', 'home_restoration'), ('id', '!=', self._origin.id)
|
||||
], limit=1)
|
||||
if existing_request_restoration:
|
||||
raise UserError(_("You cannot request this service more than once a ten years."))
|
||||
existing_request_maintenance = self.search([
|
||||
('date', '>', date_before_year),
|
||||
('family_id', '=', rec.family_id.id),
|
||||
('service_cat.service_type', '=', 'home_maintenance')
|
||||
], limit=1)
|
||||
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':
|
||||
# Check for existing request of the same type
|
||||
|
|
|
|||
|
|
@ -125,5 +125,5 @@ access_exception_reason,access_exception_reason,model_exception_reason,base.grou
|
|||
access_service_request,access_service_request,model_service_request,base.group_user,1,1,1,1
|
||||
access_marital_status,access_marital_status,model_marital_status,base.group_user,1,1,1,1
|
||||
access_service_attachments_settings,access_service_attachments_settings,model_service_attachments_settings,base.group_user,1,1,1,1
|
||||
access_home_restoration_lines,access_home_restoration_lines,model_home_restoration_lines,base.group_user,1,1,1,1
|
||||
access_category_amount_line,access_category_amount_line,model_category_amount_line,base.group_user,1,1,1,1
|
||||
access_home_maintenance_lines,access_home_maintenance_lines,model_home_maintenance_lines,base.group_user,1,1,1,1
|
||||
|
|
|
@ -18,8 +18,6 @@
|
|||
<field name="service_type" readonly="1" force_save="1"/>
|
||||
<field name="requested_service_amount"/>
|
||||
<field name="restoration_max_amount"/>
|
||||
<field name="has_money_field_is_appearance" invisible="1"/>
|
||||
<field name="has_money_to_pay_first_payment" widget="boolean_toggle" attrs="{'invisible':[('has_money_field_is_appearance', '=', False)]}"/>
|
||||
<field name="is_family_need_evacuate" groups="project_base.group_project_department_manager"/>
|
||||
</group>
|
||||
</page>
|
||||
|
|
|
|||
|
|
@ -1,36 +1,19 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<odoo>
|
||||
<data>
|
||||
<record id="service_request_inherit_view_form" model="ir.ui.view">
|
||||
<record id="service_request_inherit_view_form" model="ir.ui.view">
|
||||
<field name="name">service.request.form</field>
|
||||
<field name="model">service.request</field>
|
||||
<field name="inherit_id" ref="odex_benefit.service_request_form"/>
|
||||
<field name="arch" type="xml">
|
||||
<field name="arch" type="xml">
|
||||
<xpath expr="//field[@name='requested_service_amount']" position="after">
|
||||
<field name="rent_period" attrs="{'invisible': [('service_type', '!=', 'alternative_housing')],'required':[('service_type', '=','alternative_housing')]}"/>
|
||||
<field name="rent_period"
|
||||
attrs="{'invisible': [('service_type', '!=', 'alternative_housing')],'required':[('service_type', '=','alternative_housing')]}"/>
|
||||
<field name="project_create" invisible="1"/>
|
||||
<field name="project_id" readonly="1" attrs="{'invisible': ['|',('state','!=','accounting_approve'),('project_create', '=',False)]}"/>
|
||||
<field name="project_id" readonly="1" attrs="{'invisible': [('project_create', '=',False)]}"/>
|
||||
<field name="project_expected_delivery_date" readonly="1" attrs="{'invisible': [('project_create', '=',False)]}"/>
|
||||
</xpath>
|
||||
<!-- <xpath expr="//button[@name='action_branch_manager_approve']" position="after">
|
||||
<button name="action_approval_of_beneficiary_services" type="object"
|
||||
string="Approval of beneficiary services" class="oe_highlight"
|
||||
confirm="Are you sure you want to approval beneficiary services ?" groups="odex_benefit.group_approval_of_beneficiary_services" attrs="{'invisible': ['|',('project_create', '=', False),('state', '!=', 'second_approve')]}"/>
|
||||
</xpath>
|
||||
|
||||
<xpath expr="//button[@name='action_accounting_approve']" position="replace">
|
||||
<button name="action_accounting_approve" type="object"
|
||||
string="Accounting Approve" class="oe_highlight"
|
||||
confirm="Are you sure you want to approve ?"
|
||||
attrs="{'invisible':['|',('state','!=','approval_of_beneficiary_services'),('project_create', '=', False)]}"
|
||||
groups="odex_benefit.group_benefit_accounting_accept"/>
|
||||
|
||||
<button name="action_accounting_approve" type="object"
|
||||
string="Accounting Approve" class="oe_highlight"
|
||||
confirm="Are you sure you want to approve ?"
|
||||
attrs="{'invisible':['|',('state','!=','second_approve'),('project_create', '=', True)]}"
|
||||
groups="odex_benefit.group_benefit_accounting_accept"/>
|
||||
</xpath> -->
|
||||
</field>
|
||||
</record>
|
||||
</field>
|
||||
</record>
|
||||
</data>
|
||||
</odoo>
|
||||
|
|
|
|||
Loading…
Reference in New Issue