[IMP] odex_benefit: IMP odex_benefit
This commit is contained in:
parent
123a83b727
commit
308c128498
|
|
@ -198,7 +198,6 @@
|
||||||
- `rent_amount`: مبلغ الإيجار
|
- `rent_amount`: مبلغ الإيجار
|
||||||
- `payment_type`: نوع الدفع
|
- `payment_type`: نوع الدفع
|
||||||
- `estimated_rent_amount`: المبلغ المقدر للإيجار
|
- `estimated_rent_amount`: المبلغ المقدر للإيجار
|
||||||
- `new_rent_contract`: عقد إيجار جديد؟
|
|
||||||
|
|
||||||
- **الحالة:**
|
- **الحالة:**
|
||||||
- `state`: حالة الطلب (draft/researcher/waiting_approve/first_approve/family_services_manager/legal_department/projects_department/gm_assistant/accounting_approve/approval_of_beneficiary_services/send_request_to_supplier/family_received_device/refused)
|
- `state`: حالة الطلب (draft/researcher/waiting_approve/first_approve/family_services_manager/legal_department/projects_department/gm_assistant/accounting_approve/approval_of_beneficiary_services/send_request_to_supplier/family_received_device/refused)
|
||||||
|
|
|
||||||
|
|
@ -2309,11 +2309,6 @@ msgstr "مؤهلات المستفيد"
|
||||||
msgid "Benefit Reject List"
|
msgid "Benefit Reject List"
|
||||||
msgstr "ملفات مرفوضة"
|
msgstr "ملفات مرفوضة"
|
||||||
|
|
||||||
#. module: odex_benefit
|
|
||||||
#: model_terms:ir.ui.view,arch_db:odex_benefit.services_settings_form
|
|
||||||
msgid "Benefit Rent Service Settings"
|
|
||||||
msgstr "إعدادات خدمة الإيجار للفرد"
|
|
||||||
|
|
||||||
#. module: odex_benefit
|
#. module: odex_benefit
|
||||||
#: model_terms:ir.ui.view,arch_db:odex_benefit.grant_benefit_form
|
#: model_terms:ir.ui.view,arch_db:odex_benefit.grant_benefit_form
|
||||||
msgid "Benefit Replacement Mother"
|
msgid "Benefit Replacement Mother"
|
||||||
|
|
@ -5796,7 +5791,6 @@ msgstr ""
|
||||||
|
|
||||||
#. module: odex_benefit
|
#. module: odex_benefit
|
||||||
#: model:ir.model.fields.selection,name:odex_benefit.selection__grant_benefit__payment_type__2
|
#: model:ir.model.fields.selection,name:odex_benefit.selection__grant_benefit__payment_type__2
|
||||||
#: model:ir.model.fields.selection,name:odex_benefit.selection__service_request__new_payment_type__2
|
|
||||||
#: model:ir.model.fields.selection,name:odex_benefit.selection__service_request__payment_type__2
|
#: model:ir.model.fields.selection,name:odex_benefit.selection__service_request__payment_type__2
|
||||||
msgid "Half-yearly"
|
msgid "Half-yearly"
|
||||||
msgstr "نصف سنوي"
|
msgstr "نصف سنوي"
|
||||||
|
|
@ -7819,11 +7813,6 @@ msgstr "الحالة الاجتماعية"
|
||||||
msgid "Material"
|
msgid "Material"
|
||||||
msgstr "مواد"
|
msgstr "مواد"
|
||||||
|
|
||||||
#. module: odex_benefit
|
|
||||||
#: model:ir.model.fields,field_description:odex_benefit.field_services_settings__max_amount_for_student
|
|
||||||
msgid "Max Amount for Student"
|
|
||||||
msgstr "الحد الاقصى لإيجار الطالب"
|
|
||||||
|
|
||||||
#. module: odex_benefit
|
#. module: odex_benefit
|
||||||
#: model:ir.model.fields,field_description:odex_benefit.field_education_result__max_degree
|
#: model:ir.model.fields,field_description:odex_benefit.field_education_result__max_degree
|
||||||
msgid "Max Degree"
|
msgid "Max Degree"
|
||||||
|
|
@ -8172,7 +8161,6 @@ msgstr "رقم الجوال"
|
||||||
#. module: odex_benefit
|
#. module: odex_benefit
|
||||||
#: model:ir.model.fields.selection,name:odex_benefit.selection__benefit_club__programs_type__monthly
|
#: model:ir.model.fields.selection,name:odex_benefit.selection__benefit_club__programs_type__monthly
|
||||||
#: model:ir.model.fields.selection,name:odex_benefit.selection__grant_benefit__payment_type__5
|
#: model:ir.model.fields.selection,name:odex_benefit.selection__grant_benefit__payment_type__5
|
||||||
#: model:ir.model.fields.selection,name:odex_benefit.selection__service_request__new_payment_type__5
|
|
||||||
#: model:ir.model.fields.selection,name:odex_benefit.selection__service_request__payment_type__5
|
#: model:ir.model.fields.selection,name:odex_benefit.selection__service_request__payment_type__5
|
||||||
#: model:ir.model.fields.selection,name:odex_benefit.selection__sport_line__Subtype__monthly
|
#: model:ir.model.fields.selection,name:odex_benefit.selection__sport_line__Subtype__monthly
|
||||||
msgid "Monthly"
|
msgid "Monthly"
|
||||||
|
|
@ -9148,7 +9136,6 @@ msgstr "رموز السداد السرية"
|
||||||
#. module: odex_benefit
|
#. module: odex_benefit
|
||||||
#: model:ir.model.fields,field_description:odex_benefit.field_benefit_loans__payment_method_id
|
#: model:ir.model.fields,field_description:odex_benefit.field_benefit_loans__payment_method_id
|
||||||
#: model:ir.model.fields,field_description:odex_benefit.field_grant_benefit__payment_type
|
#: model:ir.model.fields,field_description:odex_benefit.field_grant_benefit__payment_type
|
||||||
#: model:ir.model.fields,field_description:odex_benefit.field_service_request__new_payment_type
|
|
||||||
#: model:ir.model.fields,field_description:odex_benefit.field_service_request__payment_type
|
#: model:ir.model.fields,field_description:odex_benefit.field_service_request__payment_type
|
||||||
msgid "Payment Type"
|
msgid "Payment Type"
|
||||||
msgstr "نوع السداد"
|
msgstr "نوع السداد"
|
||||||
|
|
@ -9502,7 +9489,6 @@ msgstr "الكمية في اليد"
|
||||||
|
|
||||||
#. module: odex_benefit
|
#. module: odex_benefit
|
||||||
#: model:ir.model.fields.selection,name:odex_benefit.selection__grant_benefit__payment_type__4
|
#: model:ir.model.fields.selection,name:odex_benefit.selection__grant_benefit__payment_type__4
|
||||||
#: model:ir.model.fields.selection,name:odex_benefit.selection__service_request__new_payment_type__4
|
|
||||||
#: model:ir.model.fields.selection,name:odex_benefit.selection__service_request__payment_type__4
|
#: model:ir.model.fields.selection,name:odex_benefit.selection__service_request__payment_type__4
|
||||||
msgid "Quarterly"
|
msgid "Quarterly"
|
||||||
msgstr "ربع سنوي"
|
msgstr "ربع سنوي"
|
||||||
|
|
@ -9847,7 +9833,6 @@ msgstr "احتساب قيمة الإيجار"
|
||||||
#. module: odex_benefit
|
#. module: odex_benefit
|
||||||
#: model:ir.model.fields,field_description:odex_benefit.field_grant_benefit__rent_attachment
|
#: model:ir.model.fields,field_description:odex_benefit.field_grant_benefit__rent_attachment
|
||||||
#: model:ir.model.fields,field_description:odex_benefit.field_service_request__member_rent_attachment
|
#: model:ir.model.fields,field_description:odex_benefit.field_service_request__member_rent_attachment
|
||||||
#: model:ir.model.fields,field_description:odex_benefit.field_service_request__new_rent_attachment
|
|
||||||
#: model:ir.model.fields,field_description:odex_benefit.field_service_request__rent_attachment
|
#: model:ir.model.fields,field_description:odex_benefit.field_service_request__rent_attachment
|
||||||
msgid "Rent Attachment"
|
msgid "Rent Attachment"
|
||||||
msgstr "مرفق عقد الإيجار"
|
msgstr "مرفق عقد الإيجار"
|
||||||
|
|
@ -9859,7 +9844,6 @@ msgstr "معلومات عقد الإيجار"
|
||||||
|
|
||||||
#. module: odex_benefit
|
#. module: odex_benefit
|
||||||
#: model:ir.model.fields,field_description:odex_benefit.field_service_request__member_rent_contract_number
|
#: model:ir.model.fields,field_description:odex_benefit.field_service_request__member_rent_contract_number
|
||||||
#: model:ir.model.fields,field_description:odex_benefit.field_service_request__new_rent_contract_number
|
|
||||||
#: model:ir.model.fields,field_description:odex_benefit.field_service_request__rent_contract_number
|
#: model:ir.model.fields,field_description:odex_benefit.field_service_request__rent_contract_number
|
||||||
msgid "Rent Contract Number"
|
msgid "Rent Contract Number"
|
||||||
msgstr "رقم العقد"
|
msgstr "رقم العقد"
|
||||||
|
|
@ -9867,7 +9851,6 @@ msgstr "رقم العقد"
|
||||||
#. module: odex_benefit
|
#. module: odex_benefit
|
||||||
#: model:ir.model.fields,field_description:odex_benefit.field_grant_benefit__rent_end_date
|
#: model:ir.model.fields,field_description:odex_benefit.field_grant_benefit__rent_end_date
|
||||||
#: model:ir.model.fields,field_description:odex_benefit.field_service_request__member_rent_end_date
|
#: model:ir.model.fields,field_description:odex_benefit.field_service_request__member_rent_end_date
|
||||||
#: model:ir.model.fields,field_description:odex_benefit.field_service_request__new_rent_end_date
|
|
||||||
#: model:ir.model.fields,field_description:odex_benefit.field_service_request__rent_end_date
|
#: model:ir.model.fields,field_description:odex_benefit.field_service_request__rent_end_date
|
||||||
msgid "Rent End Date"
|
msgid "Rent End Date"
|
||||||
msgstr "تاريخ نهاية العقد"
|
msgstr "تاريخ نهاية العقد"
|
||||||
|
|
@ -9901,7 +9884,6 @@ msgstr "سكن مشترك إيجار"
|
||||||
#. module: odex_benefit
|
#. module: odex_benefit
|
||||||
#: model:ir.model.fields,field_description:odex_benefit.field_grant_benefit__rent_start_date
|
#: model:ir.model.fields,field_description:odex_benefit.field_grant_benefit__rent_start_date
|
||||||
#: model:ir.model.fields,field_description:odex_benefit.field_service_request__member_rent_start_date
|
#: model:ir.model.fields,field_description:odex_benefit.field_service_request__member_rent_start_date
|
||||||
#: model:ir.model.fields,field_description:odex_benefit.field_service_request__new_rent_start_date
|
|
||||||
#: model:ir.model.fields,field_description:odex_benefit.field_service_request__rent_start_date
|
#: model:ir.model.fields,field_description:odex_benefit.field_service_request__rent_start_date
|
||||||
msgid "Rent Start Date"
|
msgid "Rent Start Date"
|
||||||
msgstr "تاريخ بداية العقد"
|
msgstr "تاريخ بداية العقد"
|
||||||
|
|
@ -12301,7 +12283,6 @@ msgstr "سنة"
|
||||||
|
|
||||||
#. module: odex_benefit
|
#. module: odex_benefit
|
||||||
#: model:ir.model.fields.selection,name:odex_benefit.selection__grant_benefit__payment_type__1
|
#: model:ir.model.fields.selection,name:odex_benefit.selection__grant_benefit__payment_type__1
|
||||||
#: model:ir.model.fields.selection,name:odex_benefit.selection__service_request__new_payment_type__1
|
|
||||||
#: model:ir.model.fields.selection,name:odex_benefit.selection__service_request__payment_type__1
|
#: model:ir.model.fields.selection,name:odex_benefit.selection__service_request__payment_type__1
|
||||||
msgid "Yearly"
|
msgid "Yearly"
|
||||||
msgstr "سنوي"
|
msgstr "سنوي"
|
||||||
|
|
@ -15665,7 +15646,7 @@ msgstr "مبلغ حسب الفئة وعدد الأفراد"
|
||||||
#. module: odex_benefit
|
#. module: odex_benefit
|
||||||
#: model:ir.model.fields.selection,name:odex_benefit.selection__services_settings__max_limit_type__region
|
#: model:ir.model.fields.selection,name:odex_benefit.selection__services_settings__max_limit_type__region
|
||||||
msgid "Amount by Region"
|
msgid "Amount by Region"
|
||||||
msgstr "مبلغ حسب المنطقة"
|
msgstr "مبلغ حسب الفئة + عدد الأفراد + المنطقة"
|
||||||
|
|
||||||
#. module: odex_benefit
|
#. module: odex_benefit
|
||||||
#: model:ir.model.fields,field_description:odex_benefit.field_services_settings__max_limit_type
|
#: model:ir.model.fields,field_description:odex_benefit.field_services_settings__max_limit_type
|
||||||
|
|
@ -15896,7 +15877,6 @@ msgstr "بإنتظار مساعد المدير العام"
|
||||||
#: model:ir.model.fields,field_description:odex_benefit.field_benefit_expense_line__start_date
|
#: model:ir.model.fields,field_description:odex_benefit.field_benefit_expense_line__start_date
|
||||||
#: model:ir.model.fields,field_description:odex_benefit.field_confirm_benefit_expense__start_date
|
#: model:ir.model.fields,field_description:odex_benefit.field_confirm_benefit_expense__start_date
|
||||||
#: model:ir.model.fields,field_description:odex_benefit.field_family_bank_report_wizard__start_date
|
#: model:ir.model.fields,field_description:odex_benefit.field_family_bank_report_wizard__start_date
|
||||||
#: model:ir.model.fields,field_description:odex_benefit.field_service_request__new_start
|
|
||||||
#: model:ir.model.fields,field_description:odex_benefit.field_service_request__start
|
#: model:ir.model.fields,field_description:odex_benefit.field_service_request__start
|
||||||
msgid "Start Date"
|
msgid "Start Date"
|
||||||
msgstr "تاريخ البداية"
|
msgstr "تاريخ البداية"
|
||||||
|
|
@ -15906,7 +15886,6 @@ msgstr "تاريخ البداية"
|
||||||
#: model:ir.model.fields,field_description:odex_benefit.field_confirm_benefit_expense__end_date
|
#: model:ir.model.fields,field_description:odex_benefit.field_confirm_benefit_expense__end_date
|
||||||
#: model:ir.model.fields,field_description:odex_benefit.field_service_request__end
|
#: model:ir.model.fields,field_description:odex_benefit.field_service_request__end
|
||||||
#: model:ir.model.fields,field_description:odex_benefit.field_family_bank_report_wizard__end_date
|
#: model:ir.model.fields,field_description:odex_benefit.field_family_bank_report_wizard__end_date
|
||||||
#: model:ir.model.fields,field_description:odex_benefit.field_service_request__new_end
|
|
||||||
msgid "End Date"
|
msgid "End Date"
|
||||||
msgstr "تاريخ النهاية"
|
msgstr "تاريخ النهاية"
|
||||||
|
|
||||||
|
|
@ -16331,7 +16310,6 @@ msgid "Services Attachments"
|
||||||
msgstr "المستندات المطلوبة"
|
msgstr "المستندات المطلوبة"
|
||||||
|
|
||||||
#. module: odex_benefit
|
#. module: odex_benefit
|
||||||
#: model:ir.model.fields,field_description:odex_benefit.field_service_request__new_rent_payment_date_exception
|
|
||||||
#: model:ir.model.fields,field_description:odex_benefit.field_service_request__rent_payment_date_exception
|
#: model:ir.model.fields,field_description:odex_benefit.field_service_request__rent_payment_date_exception
|
||||||
msgid "Rent Payment Date Exception?"
|
msgid "Rent Payment Date Exception?"
|
||||||
msgstr "استثناء في تاريخ دفع الإيجار؟"
|
msgstr "استثناء في تاريخ دفع الإيجار؟"
|
||||||
|
|
@ -16341,26 +16319,11 @@ msgstr "استثناء في تاريخ دفع الإيجار؟"
|
||||||
msgid "Rent Amount Payment"
|
msgid "Rent Amount Payment"
|
||||||
msgstr "مبلغ دفع الإيجار"
|
msgstr "مبلغ دفع الإيجار"
|
||||||
|
|
||||||
#. module: odex_benefit
|
|
||||||
#: model:ir.model.fields,field_description:odex_benefit.field_service_request__new_rent_contract
|
|
||||||
msgid "New Rent Contract?"
|
|
||||||
msgstr "عقد إيجار جديد؟"
|
|
||||||
|
|
||||||
#. module: odex_benefit
|
#. module: odex_benefit
|
||||||
#: model:ir.model.fields,field_description:odex_benefit.field_service_request__estimated_rent_amount_payment
|
#: model:ir.model.fields,field_description:odex_benefit.field_service_request__estimated_rent_amount_payment
|
||||||
msgid "Estimated Rent Amount Payment"
|
msgid "Estimated Rent Amount Payment"
|
||||||
msgstr "المبلغ التقديري لدفع الإيجار"
|
msgstr "المبلغ التقديري لدفع الإيجار"
|
||||||
|
|
||||||
#. module: odex_benefit
|
|
||||||
#: model_terms:ir.ui.view,arch_db:odex_benefit.service_request_form
|
|
||||||
msgid "New Rent Contract Information"
|
|
||||||
msgstr "معلومات عقد الإيجار الجديد"
|
|
||||||
|
|
||||||
#. module: odex_benefit
|
|
||||||
#: model:ir.model.fields,field_description:odex_benefit.field_service_request__new_rent_amount_payment
|
|
||||||
msgid "New Rent Amount Payment"
|
|
||||||
msgstr "مبلغ دفع الإيجار الجديد"
|
|
||||||
|
|
||||||
#. module: odex_benefit
|
#. module: odex_benefit
|
||||||
#: model:ir.model.fields.selection,name:odex_benefit.selection__service_request__state__gm_assistant
|
#: model:ir.model.fields.selection,name:odex_benefit.selection__service_request__state__gm_assistant
|
||||||
#: model:ir.model.fields.selection,name:odex_benefit.selection__seasonal_service__state__gm_assistant
|
#: model:ir.model.fields.selection,name:odex_benefit.selection__seasonal_service__state__gm_assistant
|
||||||
|
|
|
||||||
|
|
@ -71,27 +71,6 @@ class ServiceRequest(models.Model):
|
||||||
rent_payment_date_exception = fields.Boolean(string='Rent Payment Date Exception?')
|
rent_payment_date_exception = fields.Boolean(string='Rent Payment Date Exception?')
|
||||||
start = fields.Date(string="Start Date")
|
start = fields.Date(string="Start Date")
|
||||||
end = fields.Date(string='End Date')
|
end = fields.Date(string='End Date')
|
||||||
# New Rent Contract
|
|
||||||
new_rent_contract = fields.Boolean(string='New Rent Contract?')
|
|
||||||
new_start = fields.Date(string="Start Date")
|
|
||||||
new_end = fields.Date(string='End Date')
|
|
||||||
new_rent_contract_number = fields.Char(string="Rent Contract Number")
|
|
||||||
new_rent_start_date = fields.Date(string='Rent Start Date')
|
|
||||||
new_rent_end_date = fields.Date(string='Rent End Date')
|
|
||||||
new_rent_amount = fields.Float(string='Rent Amount')
|
|
||||||
new_rent_amount_payment = fields.Float(string='New Rent Amount Payment', compute='_get_new_rent_amount_payment')
|
|
||||||
new_payment_type = fields.Selection([
|
|
||||||
('1', 'Yearly'),
|
|
||||||
('2', 'Half-yearly'),
|
|
||||||
('4', 'Quarterly'),
|
|
||||||
('5', 'Monthly')
|
|
||||||
],
|
|
||||||
string='Payment Type'
|
|
||||||
)
|
|
||||||
new_rent_attachment = fields.Many2many('ir.attachment', 'rel_rent_attachment_service_request', 'service_request_id',
|
|
||||||
'attachment_id', string='Rent Attachment')
|
|
||||||
new_rent_payment_date = fields.Date(string='Rent Payment Date')
|
|
||||||
new_rent_payment_date_exception = fields.Boolean(string='Rent Payment Date Exception?')
|
|
||||||
# Rent details for member
|
# Rent details for member
|
||||||
member_rent_contract_number = fields.Char(string="Rent Contract Number")
|
member_rent_contract_number = fields.Char(string="Rent Contract Number")
|
||||||
member_rent_start_date = fields.Date(string='Rent Start Date')
|
member_rent_start_date = fields.Date(string='Rent Start Date')
|
||||||
|
|
@ -320,71 +299,11 @@ class ServiceRequest(models.Model):
|
||||||
|
|
||||||
@api.model
|
@api.model
|
||||||
def create(self, vals):
|
def create(self, vals):
|
||||||
# Define the list of fields to check
|
|
||||||
new_rent_fields = [
|
|
||||||
'new_rent_contract_number',
|
|
||||||
'new_rent_start_date',
|
|
||||||
'new_rent_end_date',
|
|
||||||
'new_rent_amount',
|
|
||||||
'new_payment_type',
|
|
||||||
'new_rent_attachment'
|
|
||||||
]
|
|
||||||
res = super(ServiceRequest, self).create(vals)
|
res = super(ServiceRequest, self).create(vals)
|
||||||
if not res.name or res.name == _('New'):
|
if not res.name or res.name == _('New'):
|
||||||
res.name = self.env['ir.sequence'].sudo().next_by_code('service.request.sequence') or _('New')
|
res.name = self.env['ir.sequence'].sudo().next_by_code('service.request.sequence') or _('New')
|
||||||
# Check if any of the specified fields are present in vals
|
|
||||||
if any(field in vals for field in new_rent_fields) and vals['new_rent_contract']:
|
|
||||||
if res.family_id:
|
|
||||||
# Prepare values for family_id write
|
|
||||||
update_values = {}
|
|
||||||
if 'new_rent_contract_number' in vals:
|
|
||||||
update_values['contract_num'] = vals['new_rent_contract_number']
|
|
||||||
if 'new_rent_start_date' in vals:
|
|
||||||
update_values['rent_start_date'] = vals['new_rent_start_date']
|
|
||||||
if 'new_rent_end_date' in vals:
|
|
||||||
update_values['rent_end_date'] = vals['new_rent_end_date']
|
|
||||||
if 'new_rent_amount' in vals:
|
|
||||||
update_values['rent_amount'] = vals['new_rent_amount']
|
|
||||||
if 'new_payment_type' in vals:
|
|
||||||
update_values['payment_type'] = vals['new_payment_type']
|
|
||||||
if 'new_rent_attachment' in vals:
|
|
||||||
update_values['rent_attachment'] = vals['new_rent_attachment']
|
|
||||||
|
|
||||||
# Write updates to the related family_id
|
|
||||||
res.family_id.write(update_values)
|
|
||||||
return res
|
return res
|
||||||
|
|
||||||
def write(self, vals):
|
|
||||||
# Define the list of fields you want to check
|
|
||||||
new_rent_fields = ['new_rent_contract_number', 'new_rent_start_date', 'new_rent_end_date', 'new_rent_amount',
|
|
||||||
'new_payment_type', 'new_rent_attachment']
|
|
||||||
result = super(ServiceRequest, self).write(vals)
|
|
||||||
update_values = {}
|
|
||||||
if any(field in vals for field in new_rent_fields) and self.new_rent_contract:
|
|
||||||
for record in self:
|
|
||||||
# Ensure family_id exists before proceeding
|
|
||||||
if record.family_id:
|
|
||||||
# Prepare values for family_id write
|
|
||||||
update_values = {}
|
|
||||||
# Add fields to update_values only if they exist in vals
|
|
||||||
if 'new_rent_contract_number' in vals:
|
|
||||||
update_values['contract_num'] = vals['new_rent_contract_number']
|
|
||||||
if 'new_rent_start_date' in vals:
|
|
||||||
update_values['rent_start_date'] = vals['new_rent_start_date']
|
|
||||||
if 'new_rent_end_date' in vals:
|
|
||||||
update_values['rent_end_date'] = vals['new_rent_end_date']
|
|
||||||
if 'new_rent_amount' in vals:
|
|
||||||
update_values['rent_amount'] = vals['new_rent_amount']
|
|
||||||
if 'new_payment_type' in vals:
|
|
||||||
update_values['payment_type'] = vals['new_payment_type']
|
|
||||||
if 'new_rent_attachment' in vals:
|
|
||||||
update_values['rent_attachment'] = vals['new_rent_attachment']
|
|
||||||
|
|
||||||
# Write the prepared update values to `family_id`
|
|
||||||
record.family_id.write(update_values)
|
|
||||||
|
|
||||||
return result
|
|
||||||
|
|
||||||
def unlink(self):
|
def unlink(self):
|
||||||
for request in self:
|
for request in self:
|
||||||
if request.state not in ['draft']:
|
if request.state not in ['draft']:
|
||||||
|
|
@ -394,7 +313,6 @@ class ServiceRequest(models.Model):
|
||||||
@api.depends('family_id')
|
@api.depends('family_id')
|
||||||
def _compute_rent_details(self):
|
def _compute_rent_details(self):
|
||||||
for rec in self:
|
for rec in self:
|
||||||
# Compute values only if they are not already set
|
|
||||||
if rec.family_id:
|
if rec.family_id:
|
||||||
if not rec.rent_contract_number:
|
if not rec.rent_contract_number:
|
||||||
rec.rent_contract_number = rec.family_id.contract_num
|
rec.rent_contract_number = rec.family_id.contract_num
|
||||||
|
|
@ -453,8 +371,8 @@ class ServiceRequest(models.Model):
|
||||||
rec.estimated_rent_amount_payment = 0.0
|
rec.estimated_rent_amount_payment = 0.0
|
||||||
if rec.estimated_rent_amount and rec.payment_type:
|
if rec.estimated_rent_amount and rec.payment_type:
|
||||||
rec.estimated_rent_amount_payment = rec.estimated_rent_amount / int(rec.payment_type)
|
rec.estimated_rent_amount_payment = rec.estimated_rent_amount / int(rec.payment_type)
|
||||||
if rec.estimated_rent_amount and rec.new_payment_type:
|
if rec.estimated_rent_amount:
|
||||||
rec.estimated_rent_amount_payment = rec.estimated_rent_amount / int(rec.new_payment_type)
|
rec.estimated_rent_amount_payment = rec.estimated_rent_amount
|
||||||
|
|
||||||
def _get_rent_amount_payment(self):
|
def _get_rent_amount_payment(self):
|
||||||
for rec in self:
|
for rec in self:
|
||||||
|
|
@ -463,13 +381,6 @@ class ServiceRequest(models.Model):
|
||||||
else:
|
else:
|
||||||
rec.rent_amount_payment = 0.0
|
rec.rent_amount_payment = 0.0
|
||||||
|
|
||||||
def _get_new_rent_amount_payment(self):
|
|
||||||
for rec in self:
|
|
||||||
if rec.new_rent_amount and rec.new_payment_type:
|
|
||||||
rec.new_rent_amount_payment = rec.new_rent_amount / int(rec.new_payment_type)
|
|
||||||
else:
|
|
||||||
rec.new_rent_amount_payment = 0.0
|
|
||||||
|
|
||||||
def _get_paid_rent_amount(self):
|
def _get_paid_rent_amount(self):
|
||||||
for rec in self:
|
for rec in self:
|
||||||
rec.paid_rent_amount = min(rec.estimated_rent_amount_payment, rec.requested_service_amount)
|
rec.paid_rent_amount = min(rec.estimated_rent_amount_payment, rec.requested_service_amount)
|
||||||
|
|
@ -651,18 +562,14 @@ class ServiceRequest(models.Model):
|
||||||
'target': 'new',
|
'target': 'new',
|
||||||
}
|
}
|
||||||
|
|
||||||
@api.onchange('rent_payment_date', 'new_rent_payment_date')
|
@api.onchange('rent_payment_date')
|
||||||
def onchange_rent_payment_date(self):
|
def onchange_rent_payment_date(self):
|
||||||
today_date = fields.Date.today()
|
today_date = fields.Date.today()
|
||||||
for rec in self:
|
for rec in self:
|
||||||
if rec.rent_payment_date and not rec.rent_payment_date_exception and not rec.new_rent_payment_date:
|
if rec.rent_payment_date and not rec.rent_payment_date_exception:
|
||||||
month_before_rent_payment_date = rec.rent_payment_date - timedelta(days=30)
|
month_before_rent_payment_date = rec.rent_payment_date - timedelta(days=30)
|
||||||
if today_date > month_before_rent_payment_date:
|
if today_date > month_before_rent_payment_date:
|
||||||
raise UserError(_("You Should request At least a month ago rent payment date"))
|
raise UserError(_("You Should request At least a month ago rent payment date"))
|
||||||
if rec.new_rent_payment_date and not rec.new_rent_payment_date_exception:
|
|
||||||
new_month_before_rent_payment_date = rec.new_rent_payment_date - timedelta(days=30)
|
|
||||||
if today_date > new_month_before_rent_payment_date:
|
|
||||||
raise UserError(_("You Should request At least a month ago rent payment date"))
|
|
||||||
|
|
||||||
@api.onchange('furnishing_items_ids')
|
@api.onchange('furnishing_items_ids')
|
||||||
def _onchange_home_furnishing_cost(self):
|
def _onchange_home_furnishing_cost(self):
|
||||||
|
|
@ -682,7 +589,8 @@ class ServiceRequest(models.Model):
|
||||||
|
|
||||||
@api.onchange('service_cat', 'family_id')
|
@api.onchange('service_cat', 'family_id')
|
||||||
def _onchange_service_cat(self):
|
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':
|
if self.service_cat.service_type == 'rent' and self.family_id.property_type not in ['rent',
|
||||||
|
'rent_shared'] and self.benefit_type == 'family':
|
||||||
raise UserError(_("You cannot benefit from this service (property type not rent)"))
|
raise UserError(_("You cannot benefit from this service (property type not rent)"))
|
||||||
|
|
||||||
@api.onchange(
|
@api.onchange(
|
||||||
|
|
@ -895,6 +803,19 @@ class ServiceRequest(models.Model):
|
||||||
rec.service_cat.limit_person_line_ids.filtered(
|
rec.service_cat.limit_person_line_ids.filtered(
|
||||||
lambda
|
lambda
|
||||||
x: x.min_count_member <= rec.benefit_member_count <= x.max_count_member)).amount or 0
|
x: x.min_count_member <= rec.benefit_member_count <= x.max_count_member)).amount or 0
|
||||||
|
elif max_limit_type == 'region':
|
||||||
|
if rec.branch_custom_id.branch_type == 'branches':
|
||||||
|
field_name = 'estimated_rent_branches'
|
||||||
|
else:
|
||||||
|
field_name = 'estimated_rent_governorate'
|
||||||
|
rent_lines = rec.service_cat.rent_lines.filtered(
|
||||||
|
lambda x: x.benefit_category_id.id == rec.family_category.id
|
||||||
|
and x.benefit_count == rec.benefit_member_count
|
||||||
|
)
|
||||||
|
if rent_lines:
|
||||||
|
rec.service_max_amount = min(rent_lines.mapped(field_name))
|
||||||
|
else:
|
||||||
|
rec.service_max_amount = 0.0
|
||||||
|
|
||||||
if rec.max_limit_period:
|
if rec.max_limit_period:
|
||||||
if rec.max_limit_period == "month":
|
if rec.max_limit_period == "month":
|
||||||
|
|
@ -951,26 +872,6 @@ class ServiceRequest(models.Model):
|
||||||
_("You cannot request more than %s") % rec.service_max_amount
|
_("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
|
|
||||||
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
|
|
||||||
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
|
|
||||||
if rec.benefit_type == 'family' and rec.service_cat.service_type == 'alternative_housing' and not rec.providing_alternative_housing_based_rent:
|
if rec.benefit_type == 'family' and rec.service_cat.service_type == 'alternative_housing' and not rec.providing_alternative_housing_based_rent:
|
||||||
if rec.requested_service_amount > rec.service_cat.rent_amount_for_alternative_housing:
|
if rec.requested_service_amount > rec.service_cat.rent_amount_for_alternative_housing:
|
||||||
raise UserError(
|
raise UserError(
|
||||||
|
|
@ -978,16 +879,6 @@ class ServiceRequest(models.Model):
|
||||||
elif rec.rent_period > rec.service_cat.rent_period:
|
elif rec.rent_period > rec.service_cat.rent_period:
|
||||||
raise UserError(
|
raise UserError(
|
||||||
_("You Cannot request this service for period more than %s") % rec.service_cat.rent_period)
|
_("You Cannot request this service for period more than %s") % rec.service_cat.rent_period)
|
||||||
# Validation for 'family' benefit type with 'eid_gift' service type
|
|
||||||
# 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 because family should have members his age less than %s") % rec.service_cat.max_age)
|
|
||||||
# Validation for 'member' benefit type with 'eid_gift' service type
|
|
||||||
# if rec.benefit_type == 'member' and rec.service_cat.service_type == 'eid_gift':
|
|
||||||
# if rec.member_id.age > rec.service_cat.max_age:
|
|
||||||
# raise UserError(
|
|
||||||
# _("You cannot request this service because your age should be less than %s") % rec.service_cat.max_age)
|
|
||||||
|
|
||||||
@api.onchange('member_id')
|
@api.onchange('member_id')
|
||||||
def onchange_member_id(self):
|
def onchange_member_id(self):
|
||||||
|
|
@ -995,23 +886,15 @@ class ServiceRequest(models.Model):
|
||||||
if rec.member_id and rec.service_type == 'rent' and not rec.member_id.member_location_conf.is_far_from_family:
|
if rec.member_id and rec.service_type == 'rent' and not rec.member_id.member_location_conf.is_far_from_family:
|
||||||
raise UserError(_("You Cannot request Service if you not study inside Saudi Arabia"))
|
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',
|
@api.onchange('start', 'end', 'rent_start_date', 'rent_end_date')
|
||||||
'new_rent_end_date', 'new_rent_contract')
|
|
||||||
def _check_date_range(self):
|
def _check_date_range(self):
|
||||||
for rec in self:
|
for rec in self:
|
||||||
# Ensure both start and end dates are set
|
# Ensure both start and end dates are set
|
||||||
if rec.start and rec.end and rec.rent_start_date and rec.rent_end_date and not rec.new_rent_contract:
|
if rec.start and rec.end and rec.rent_start_date and rec.rent_end_date:
|
||||||
# Check if `start` and `end` are within `rent_start_date` and `rent_end_date`
|
|
||||||
if not (rec.rent_start_date <= rec.start <= rec.rent_end_date and
|
if not (rec.rent_start_date <= rec.start <= rec.rent_end_date and
|
||||||
rec.rent_start_date <= rec.end <= rec.rent_end_date):
|
rec.rent_start_date <= rec.end <= rec.rent_end_date):
|
||||||
raise UserError(
|
raise UserError(
|
||||||
"The Start Date and End Date must be within the Rent Start Date and Rent End Date range.")
|
"The Start Date and End Date must be within the Rent Start Date and Rent End Date range.")
|
||||||
if rec.new_start and rec.new_end and rec.new_rent_start_date and rec.new_rent_end_date and rec.new_rent_contract:
|
|
||||||
# Check if `start` and `end` are within `rent_start_date` and `rent_end_date`
|
|
||||||
if not (rec.new_rent_start_date <= rec.new_start <= rec.new_rent_end_date and
|
|
||||||
rec.new_rent_start_date <= rec.new_end <= rec.new_rent_end_date):
|
|
||||||
raise UserError(
|
|
||||||
"The Start Date and End Date must be within the Rent Start Date and Rent End Date range.")
|
|
||||||
|
|
||||||
@api.depends('family_category')
|
@api.depends('family_category')
|
||||||
def _compute_available_service_cats(self):
|
def _compute_available_service_cats(self):
|
||||||
|
|
|
||||||
|
|
@ -22,7 +22,6 @@ class ServicesSettings(models.Model):
|
||||||
('winter_clothing','Winter clothing'),('ramadan_basket','Ramadan basket'),('natural_disasters','Natural disasters'),
|
('winter_clothing','Winter clothing'),('ramadan_basket','Ramadan basket'),('natural_disasters','Natural disasters'),
|
||||||
('legal_arguments','Legal arguments'),('buy_home','Buy Home'),('main_service','Main Service'),('normal_service', 'Normal Service')]
|
('legal_arguments','Legal arguments'),('buy_home','Buy Home'),('main_service','Main Service'),('normal_service', 'Normal Service')]
|
||||||
,string='Service Type')
|
,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')
|
raise_amount_for_orphan = fields.Float(string='Raise Amount For Orphan')
|
||||||
rent_lines = fields.One2many('rent.lines','services_settings_id')
|
rent_lines = fields.One2many('rent.lines','services_settings_id')
|
||||||
attachment_lines = fields.One2many('service.attachments.settings','service_id')
|
attachment_lines = fields.One2many('service.attachments.settings','service_id')
|
||||||
|
|
|
||||||
|
|
@ -325,7 +325,8 @@
|
||||||
<br/>
|
<br/>
|
||||||
<field name="rent_payment_date_exception" widget="boolean_toggle"/>
|
<field name="rent_payment_date_exception" widget="boolean_toggle"/>
|
||||||
<field name="rent_payment_date"
|
<field name="rent_payment_date"
|
||||||
attrs="{'required':[('service_type','=','rent'),('new_rent_contract','=',False)]}"/>
|
attrs="{'required':[('service_type','=','rent')]}"/>
|
||||||
|
<!--Family Rent-->
|
||||||
<field name="rent_contract_number"
|
<field name="rent_contract_number"
|
||||||
attrs="{'invisible':[('benefit_type','!=','family')]}"
|
attrs="{'invisible':[('benefit_type','!=','family')]}"
|
||||||
force_save="1"/>
|
force_save="1"/>
|
||||||
|
|
@ -348,6 +349,7 @@
|
||||||
<field name="rent_attachment" widget="many2many_attachment_preview"
|
<field name="rent_attachment" widget="many2many_attachment_preview"
|
||||||
attrs="{'invisible':[('benefit_type','!=','family')]}"
|
attrs="{'invisible':[('benefit_type','!=','family')]}"
|
||||||
force_save="1"/>
|
force_save="1"/>
|
||||||
|
<!--Member Rent-->
|
||||||
<field name="member_rent_contract_number"
|
<field name="member_rent_contract_number"
|
||||||
attrs="{'invisible':[('benefit_type','!=','member')]}"
|
attrs="{'invisible':[('benefit_type','!=','member')]}"
|
||||||
force_save="1"/>
|
force_save="1"/>
|
||||||
|
|
@ -361,9 +363,6 @@
|
||||||
widget="many2many_attachment_preview"
|
widget="many2many_attachment_preview"
|
||||||
attrs="{'invisible':[('benefit_type','!=','member')]}"
|
attrs="{'invisible':[('benefit_type','!=','member')]}"
|
||||||
force_save="1"/>
|
force_save="1"/>
|
||||||
<field name="new_rent_contract" widget="boolean_toggle"
|
|
||||||
attrs="{'invisible':[('benefit_type','!=','family')]}"/>
|
|
||||||
<!-- <field name="is_alternative_housing" widget="boolean_toggle"/>-->
|
|
||||||
</group>
|
</group>
|
||||||
<group attrs="{'invisible':[('benefit_type','!=','family')]}">
|
<group attrs="{'invisible':[('benefit_type','!=','family')]}">
|
||||||
<separator string="Rent Amounts" colspan="2"/>
|
<separator string="Rent Amounts" colspan="2"/>
|
||||||
|
|
@ -375,45 +374,6 @@
|
||||||
attrs="{'invisible':[('service_type','=','alternative_housing')]}"/>
|
attrs="{'invisible':[('service_type','=','alternative_housing')]}"/>
|
||||||
</group>
|
</group>
|
||||||
</group>
|
</group>
|
||||||
<group attrs="{'invisible':[('new_rent_contract','=',False),'|',('service_type', '!=', 'alternative_housing'),('providing_alternative_housing_based_rent','=',False)]}">
|
|
||||||
<group>
|
|
||||||
<separator string="New Rent Contract Information" colspan="2"/>
|
|
||||||
<br/>
|
|
||||||
<field name="new_rent_payment_date_exception" widget="boolean_toggle"/>
|
|
||||||
<field name="new_rent_payment_date"
|
|
||||||
attrs="{'required':[('service_type','=','rent'),('new_rent_contract','=',True)]}"/>
|
|
||||||
<field name="new_rent_contract_number"
|
|
||||||
attrs="{'invisible':[('benefit_type','!=','family')]}"/>
|
|
||||||
<field name="new_rent_start_date"
|
|
||||||
attrs="{'invisible':[('benefit_type','!=','family')]}"/>
|
|
||||||
<field name="new_rent_end_date"
|
|
||||||
attrs="{'invisible':[('benefit_type','!=','family')]}"/>
|
|
||||||
<label for="new_start" string="Period"
|
|
||||||
attrs="{'invisible':[('benefit_type','!=','family')]}"/>
|
|
||||||
<div name="dates" class="o_row"
|
|
||||||
attrs="{'invisible':[('benefit_type','!=','family')]}">
|
|
||||||
<field name="new_start"
|
|
||||||
attrs="{'readonly':[('state','not in',['draft','researcher','waiting_approve'])]}"/>
|
|
||||||
<i class="fa fa-long-arrow-right mx-2 oe_edit_only"
|
|
||||||
aria-label="Arrow icon" title="Arrow"/>
|
|
||||||
<i class="fa fa-long-arrow-right mx-2 oe_read_only"
|
|
||||||
aria-label="Arrow icon" title="Arrow"
|
|
||||||
attrs="{'invisible': [('new_start', '=', False), ('new_end', '=', False)]}"/>
|
|
||||||
<field name="new_end"
|
|
||||||
attrs="{'readonly':[('state','not in',['draft','researcher','waiting_approve'])]}"/>
|
|
||||||
</div>
|
|
||||||
<field name="new_rent_amount"
|
|
||||||
attrs="{'invisible':[('benefit_type','!=','family')]}"/>
|
|
||||||
<field name="new_rent_amount_payment"
|
|
||||||
attrs="{'invisible':[('benefit_type','!=','family')]}"/>
|
|
||||||
<field name="new_payment_type"
|
|
||||||
attrs="{'invisible':[('benefit_type','!=','family')]}"/>
|
|
||||||
<field name="new_rent_attachment" widget="many2many_attachment_preview"
|
|
||||||
attrs="{'invisible':[('benefit_type','!=','family')]}"/>
|
|
||||||
</group>
|
|
||||||
<group>
|
|
||||||
</group>
|
|
||||||
</group>
|
|
||||||
</sheet>
|
</sheet>
|
||||||
</form>
|
</form>
|
||||||
</page>
|
</page>
|
||||||
|
|
|
||||||
|
|
@ -36,6 +36,8 @@
|
||||||
<field name="max_limit_type"/>
|
<field name="max_limit_type"/>
|
||||||
<field name="max_amount"
|
<field name="max_amount"
|
||||||
attrs="{'invisible': [('max_limit_type', '!=', 'fixed')]}"/>
|
attrs="{'invisible': [('max_limit_type', '!=', 'fixed')]}"/>
|
||||||
|
<field name="raise_amount_for_orphan"
|
||||||
|
attrs="{'invisible':['|',('service_type','!=','rent'),('benefit_type','!=','member')]}"/>
|
||||||
<field name="min_count_member"
|
<field name="min_count_member"
|
||||||
attrs="{'invisible':[('service_type','!=','buy_car')]}"/>
|
attrs="{'invisible':[('service_type','!=','buy_car')]}"/>
|
||||||
<field name="buy_home_max_total_amount"
|
<field name="buy_home_max_total_amount"
|
||||||
|
|
@ -123,25 +125,17 @@
|
||||||
</field>
|
</field>
|
||||||
</page>
|
</page>
|
||||||
<page string="Family Rent Service Settings"
|
<page string="Family Rent Service Settings"
|
||||||
attrs="{'invisible':[('service_type','!=','rent')]}">
|
attrs="{'invisible':['|',('service_type','!=','rent'),('benefit_type','!=','family')]}">
|
||||||
<field name="rent_lines" widget="one2many_list">
|
<field name="rent_lines" widget="one2many_list">
|
||||||
<tree editable="bottom">
|
<tree editable="bottom">
|
||||||
<field name="benefit_category_id"/>
|
<field name="benefit_category_id"/>
|
||||||
<field name="benefit_count"/>
|
<field name="benefit_count"/>
|
||||||
<field name="estimated_rent_branches"/>
|
<field name="estimated_rent_branches"/>
|
||||||
<field name="estimated_rent_governorate"/>
|
<field name="estimated_rent_governorate"/>
|
||||||
<!-- <field name="is_shared_housing"/>-->
|
|
||||||
<field name="discount_rate_shared_housing"/>
|
<field name="discount_rate_shared_housing"/>
|
||||||
</tree>
|
</tree>
|
||||||
</field>
|
</field>
|
||||||
</page>
|
</page>
|
||||||
<page string="Benefit Rent Service Settings"
|
|
||||||
attrs="{'invisible':[('service_type','!=','rent')]}">
|
|
||||||
<group>
|
|
||||||
<field name="max_amount_for_student"/>
|
|
||||||
<field name="raise_amount_for_orphan"/>
|
|
||||||
</group>
|
|
||||||
</page>
|
|
||||||
<page string="Amounts by Categories"
|
<page string="Amounts by Categories"
|
||||||
attrs="{'invisible':[('max_limit_type', '!=', 'category')]}">
|
attrs="{'invisible':[('max_limit_type', '!=', 'category')]}">
|
||||||
<field name="category_amount_lines" widget="one2many_list">
|
<field name="category_amount_lines" widget="one2many_list">
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue