IMP benefit
This commit is contained in:
parent
851f0a2c49
commit
aabe1646a4
|
|
@ -9,7 +9,7 @@ class ServicesSettings(models.Model):
|
|||
help='Link the service to an HR department'
|
||||
)
|
||||
hr_department_id = fields.Many2one(
|
||||
'hr.department', string='Linked Department', readonly=True
|
||||
'hr.department', string='Linked Department'
|
||||
)
|
||||
manager_id = fields.Many2one(
|
||||
'hr.employee', string='Manager',
|
||||
|
|
@ -29,59 +29,6 @@ class ServicesSettings(models.Model):
|
|||
])
|
||||
|
||||
|
||||
@api.model
|
||||
def create(self, vals):
|
||||
service = super().create(vals)
|
||||
if service.linked_to_department:
|
||||
dept = self.env['hr.department'].search([('name', '=', service.service_name)], limit=1)
|
||||
if not dept:
|
||||
dept = self.env['hr.department'].create({
|
||||
'name': service.service_name,
|
||||
'department_type': 'unit',
|
||||
'manager_id': service.manager_id.id,
|
||||
|
||||
'service_link_id': service.id
|
||||
})
|
||||
service.hr_department_id = dept.id
|
||||
return service
|
||||
|
||||
def write(self, vals):
|
||||
res = super().write(vals)
|
||||
for service in self:
|
||||
# If linked_to_department field updated
|
||||
if 'linked_to_department' in vals:
|
||||
if service.linked_to_department and not service.hr_department_id:
|
||||
# Create department if missing
|
||||
dept = self.env['hr.department'].search([('name', '=', service.service_name)], limit=1)
|
||||
if not dept:
|
||||
dept = self.env['hr.department'].create({
|
||||
'name': service.service_name,
|
||||
'department_type': 'unit',
|
||||
'manager_id': service.manager_id.id,
|
||||
'service_link_id': service.id
|
||||
})
|
||||
service.hr_department_id = dept.id
|
||||
elif not service.linked_to_department and service.hr_department_id:
|
||||
# Remove linked department if no dependencies (employees or requests)
|
||||
hr_dept = service.hr_department_id
|
||||
empowerment_request = self.env['empowerment.request'].search([('department_id', '=', hr_dept.id)], limit=1)
|
||||
if hr_dept.employee_ids or empowerment_request:
|
||||
raise ValidationError(_('لا يمكن فك الربط، قسم الموارد البشرية مرتبط بموظفين أو طلبات.'))
|
||||
hr_dept.unlink()
|
||||
service.hr_department_id = False
|
||||
return res
|
||||
|
||||
def unlink(self):
|
||||
for service in self:
|
||||
if service.linked_to_department and service.hr_department_id:
|
||||
hr_dept = service.hr_department_id
|
||||
empowerment_request = self.env['empowerment.request'].search([('department_id', '=', hr_dept.id)], limit=1)
|
||||
if hr_dept.employee_ids or empowerment_request:
|
||||
raise ValidationError(_('لا يمكن حذف الخدمة، القسم مرتبط بموظفين أو طلبات.'))
|
||||
hr_dept.unlink()
|
||||
return super().unlink()
|
||||
|
||||
|
||||
class HrDepartment(models.Model):
|
||||
_inherit = 'hr.department'
|
||||
|
||||
|
|
|
|||
|
|
@ -9,7 +9,7 @@
|
|||
<group>
|
||||
|
||||
<field name="linked_to_department" />
|
||||
<field name="hr_department_id" readonly="1" />
|
||||
<field name="hr_department_id"/>
|
||||
<field name="manager_id" />
|
||||
</group>
|
||||
|
||||
|
|
|
|||
|
|
@ -9854,6 +9854,7 @@ msgstr "احتساب قيمة الإيجار"
|
|||
#. 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_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
|
||||
msgid "Rent Attachment"
|
||||
msgstr "مرفق عقد الإيجار"
|
||||
|
|
@ -9865,6 +9866,7 @@ msgstr "معلومات عقد الإيجار"
|
|||
|
||||
#. 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__new_rent_contract_number
|
||||
#: model:ir.model.fields,field_description:odex_benefit.field_service_request__rent_contract_number
|
||||
msgid "Rent Contract Number"
|
||||
msgstr "رقم العقد"
|
||||
|
|
@ -9872,6 +9874,7 @@ msgstr "رقم العقد"
|
|||
#. 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_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
|
||||
msgid "Rent End Date"
|
||||
msgstr "تاريخ نهاية العقد"
|
||||
|
|
@ -9905,6 +9908,7 @@ msgstr "سكن مشترك إيجار"
|
|||
#. 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_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
|
||||
msgid "Rent Start Date"
|
||||
msgstr "تاريخ بداية العقد"
|
||||
|
|
@ -10077,6 +10081,7 @@ msgstr ""
|
|||
|
||||
#. module: odex_benefit
|
||||
#: model:ir.model.fields,field_description:odex_benefit.field_grant_benefit__required_attach
|
||||
#: model:ir.model.fields,field_description:odex_benefit.field_services_settings__required_attach
|
||||
msgid "Required Attach"
|
||||
msgstr "ملفات مطلوبة"
|
||||
|
||||
|
|
@ -16382,3 +16387,39 @@ msgstr "عمر العضو"
|
|||
#: model:ir.model.fields,field_description:odex_benefit.field_service_request__is_orphan
|
||||
msgid "Orphaned (Both Parents Deceased)"
|
||||
msgstr "فاقد الأبوين"
|
||||
|
||||
#. module: odex_benefit
|
||||
#: model_terms:ir.ui.view,arch_db:odex_benefit.services_settings_form
|
||||
msgid "Services Attachments"
|
||||
msgstr "المستندات المطلوبة"
|
||||
|
||||
#. 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
|
||||
msgid "Rent Payment Date Exception?"
|
||||
msgstr "استثناء في تاريخ دفع الإيجار؟"
|
||||
|
||||
#. module: odex_benefit
|
||||
#: model:ir.model.fields,field_description:odex_benefit.field_service_request__rent_amount_payment
|
||||
msgid "Rent Amount Payment"
|
||||
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
|
||||
#: model:ir.model.fields,field_description:odex_benefit.field_service_request__estimated_rent_amount_payment
|
||||
msgid "Estimated Rent Amount Payment"
|
||||
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 "مبلغ دفع الإيجار الجديد"
|
||||
|
|
@ -564,7 +564,7 @@ class ServiceRequest(models.Model):
|
|||
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
|
||||
special_services = ['home_furnishing', 'electrical_devices']
|
||||
special_services = ['home_furnishing', 'electrical_devices','rent','alternative_housing']
|
||||
if rec.service_cat.service_type == 'buy_car':
|
||||
if rec.family_id.has_car:
|
||||
raise ValidationError(_("You cannot request this service because you have a car."))
|
||||
|
|
@ -867,7 +867,7 @@ class ServiceRequest(models.Model):
|
|||
ids.append(rec.id)
|
||||
default_service_ids = ids
|
||||
service_requests = self.env['service.request'].browse(ids)
|
||||
if any(request.state not in 'accounting_approve' for request in service_requests):
|
||||
if any(request.state not in 'send_request_to_supplier' for request in service_requests):
|
||||
raise UserError(_("All selected requests should be in Accounting Approve state"))
|
||||
if any(request.payment_order_id for request in service_requests):
|
||||
raise UserError(_("All selected requests should be not has payment order"))
|
||||
|
|
@ -887,7 +887,7 @@ class ServiceRequest(models.Model):
|
|||
ids.append(rec.id)
|
||||
service_requests = self.env['service.request'].browse(ids)
|
||||
service_producer_id = self.env['service.request'].search([('id','=',ids[0])],limit=1)
|
||||
if any(request.state not in 'family_received_device' for request in service_requests):
|
||||
if any(request.state not in 'approval_of_beneficiary_services' for request in service_requests):
|
||||
raise UserError(_("All selected requests should be in Family Received Device state"))
|
||||
if any(request.vendor_bill for request in service_requests):
|
||||
raise UserError(_("All selected requests should be not has Vendor Bill"))
|
||||
|
|
|
|||
|
|
@ -22,14 +22,15 @@
|
|||
</group>
|
||||
<group>
|
||||
<field name="service_category"/>
|
||||
<field name="parent_service" attrs="{'invisible':[('service_type','=','main_service')]}"/>
|
||||
<field name="parent_service"
|
||||
attrs="{'invisible':[('service_type','=','main_service')]}"/>
|
||||
<field name="benefit_category_ids" widget="many2many_tags" required="1"/>
|
||||
<field name="currency_id" groups="base.group_multi_currency"/>
|
||||
<field name="company_id" groups="base.group_multi_company"/>
|
||||
</group>
|
||||
</group>
|
||||
<notebook>
|
||||
<page string="Settings">
|
||||
<page string="Settings" attrs="{'invisible':[('service_type','=','main_service')]}">
|
||||
<group>
|
||||
<group>
|
||||
<field name="max_limit_type"/>
|
||||
|
|
@ -75,7 +76,8 @@
|
|||
<field name="is_main_service" invisible="1" widget="boolean_toggle"/>
|
||||
<field name="is_service_producer" widget="boolean_toggle"
|
||||
attrs="{'invisible':[('service_type','=','main_service')]}"/>
|
||||
<field name="is_this_service_for_student" invisible="1" widget="boolean_toggle"/>
|
||||
<field name="is_this_service_for_student" invisible="1"
|
||||
widget="boolean_toggle"/>
|
||||
<field name="needs_beneficiary_manager_approval" widget="boolean_toggle"
|
||||
attrs="{'invisible':[('service_type','=','main_service')]}"/>
|
||||
</group>
|
||||
|
|
@ -98,7 +100,7 @@
|
|||
</group>
|
||||
</group>
|
||||
</page>
|
||||
<page string="Eligibility Criteria">
|
||||
<page string="Eligibility Criteria" attrs="{'invisible':[('service_type','=','main_service')]}">
|
||||
<group>
|
||||
<field name="service_conditions"/>
|
||||
</group>
|
||||
|
|
@ -242,8 +244,9 @@
|
|||
<field name="name">services.settings.tree</field>
|
||||
<field name="model">services.settings</field>
|
||||
<field name="arch" type="xml">
|
||||
<tree string="Services Settings">
|
||||
<tree string="Services Settings" decoration-info="service_type=='main_service'">
|
||||
<field name="service_number"/>
|
||||
<field name="service_type" invisible="1"/>
|
||||
<field name="service_name"/>
|
||||
<field name="service_category"/>
|
||||
<field name="parent_service"/>
|
||||
|
|
|
|||
Loading…
Reference in New Issue