IMP benefit

This commit is contained in:
younes 2025-10-19 15:29:12 +01:00
parent b1eaaa726c
commit e220f1ac7d
6 changed files with 143 additions and 8 deletions

View File

@ -10026,7 +10026,7 @@ msgstr "تاريخ الطلب"
#. module: odex_benefit
#: model_terms:ir.ui.view,arch_db:odex_benefit.service_request_form
msgid "Request First Approve"
msgid "Operations Manager Approval"
msgstr "اعتماد رئيس العمليات للطلب"
#. module: odex_benefit
@ -14825,7 +14825,9 @@ msgstr "بانتظار رئيسة العمليات"
#: model:ir.model.fields.selection,name:odex_benefit.selection__grant_benefit__state__first_approve
#: model:ir.model.fields.selection,name:odex_benefit.selection__family_member__state_a__exception_first_approve
#: model:ir.model.fields.selection,name:odex_benefit.selection__grant_benefit__state__exception_first_approve
#: model:ir.model.fields.selection,name:odex_benefit.selection__service_request__state__first_approve
#: model_terms:ir.ui.view,arch_db:odex_benefit.grant_benefit_search
#: model_terms:ir.ui.view,arch_db:odex_benefit.service_request_search
msgid "Waiting for Branch Manager"
msgstr "بانتظار مدير الفرع"
@ -16429,3 +16431,9 @@ msgstr "معلومات عقد الإيجار الجديد"
#: model:ir.model.fields,field_description:odex_benefit.field_service_request__new_rent_amount_payment
msgid "New Rent Amount Payment"
msgstr "مبلغ دفع الإيجار الجديد"
#. module: odex_benefit
#: model:ir.model.fields.selection,name:odex_benefit.selection__service_request__state__gm_assistant
#: model_terms:ir.ui.view,arch_db:odex_benefit.service_request_search
msgid "Waiting Assistant General Manager"
msgstr "بانتظار مساعد المدير العام"

View File

@ -146,6 +146,9 @@ class ServiceRequest(models.Model):
('researcher', 'Researcher'),
('waiting_approve', 'Waiting for Operation Manager'),
('first_approve', 'Waiting for Branch Manager'),
('family_services_manager', 'Waiting Family Services Manager'),
('legal_department', 'Waiting Legal Department'),
('projects_department', 'Waiting Projects Department'),
('gm_assistant', 'Waiting Assistant General Manager'),
('accounting_approve', 'Accounting Approve'),
('approval_of_beneficiary_services', 'Approval of beneficiary services'),
@ -440,7 +443,32 @@ class ServiceRequest(models.Model):
def action_branch_manager_approve(self):
for rec in self:
if rec.service_cat.needs_beneficiary_manager_approval:
if rec.service_cat.needs_services_head_approval or rec.exception:
rec.state = 'family_services_manager'
else:
rec.state = 'accounting_approve'
def action_family_services_manager_approve(self):
for rec in self:
if rec.service_cat.needs_legal_approval:
rec.state = 'legal_department'
elif rec.service_cat.needs_project_management_approval:
rec.state = 'projects_department'
elif rec.service_cat.needs_beneficiary_manager_approval or rec.exception:
rec.state = 'gm_assistant'
else:
rec.state = 'accounting_approve'
def action_legal_department_approve(self):
for rec in self:
if rec.service_cat.needs_project_management_approval:
rec.state = 'projects_department'
elif rec.service_cat.needs_beneficiary_manager_approval:
rec.state = 'gm_assistant'
def action_projects_department_approve(self):
for rec in self:
if rec.service_cat.needs_beneficiary_manager_approval or rec.exception:
rec.state = 'gm_assistant'
else:
rec.state = 'accounting_approve'

View File

@ -119,6 +119,25 @@
<field name="users" eval="[(4, ref('base.user_root'))]"/>
</record>
<record id="group_family_services_manager" model="res.groups">
<field name="name">Family Services Manager</field>
<field name="category_id" ref="module_category_benefit"/>
<field name="users" eval="[(4, ref('base.user_root'))]"/>
<field name="implied_ids" eval="[(4, ref('group_benefit_manager'))]"/>
</record>
<record id="group_service_legal_department" model="res.groups">
<field name="name">Services - Legal Department</field>
<field name="category_id" ref="module_category_benefit"/>
<field name="users" eval="[(4, ref('base.user_root'))]"/>
</record>
<record id="group_service_projects_department" model="res.groups">
<field name="name">Services - Projects Department</field>
<field name="category_id" ref="module_category_benefit"/>
<field name="users" eval="[(4, ref('base.user_root'))]"/>
</record>
<!-- Add rules for grant.benefit -->
<record id="grant_benefit_show_all_rule" model="ir.rule">
<field name="name">Show All Benefits Profiles</field>
@ -269,5 +288,13 @@
<field name="groups" eval="[(4, ref('group_benefit_branch_manager')), (4, ref('group_benefit_woman_commitee'))]"/>
<field name="active" eval="True" />
</record>
<record id="service_request_rule_legal_department" model="ir.rule">
<field name="name">Service Requests - Legal Department</field>
<field name="model_id" ref="model_service_request"/>
<field name="groups" eval="[(4, ref('odex_benefit.group_service_legal_department'))]"/>
<field name="domain_force">[('service_cat.needs_legal_approval', '=', True)]</field>
<field name="active" eval="True"/>
</record>
</data>
</odoo>

View File

@ -17,7 +17,7 @@
string="Refuse" class="btn btn-danger"
states="researcher" groups="odex_benefit.group_benefit_researcher"/>
<button name="action_operations_chief_approve" type="object"
string="Request First Approve" class="oe_highlight"
string="Operations Manager Approval" class="oe_highlight"
confirm="Are you sure you want to first approve ?"
states="waiting_approve"
groups="odex_benefit.group_benefit_woman_commitee"
@ -45,6 +45,55 @@
states="first_approve"
groups="odex_benefit.group_benefit_branch_manager"
/>
<button name="action_family_services_manager_approve" type="object"
string="Family Services Manager Approval" class="oe_highlight"
states="family_services_manager"
groups="odex_benefit.group_family_services_manager"
/>
<button name="action_first_refuse" type="object"
string="Return the request to the specialist" class="btn btn-warning"
states="family_services_manager"
groups="odex_benefit.group_family_services_manager"
/>
<button name="action_refuse" type="object"
string="Refuse" class="btn btn-danger"
states="family_services_manager"
groups="odex_benefit.group_family_services_manager"
/>
<button name="action_legal_department_approve" type="object"
string="Legal Department Approval" class="oe_highlight"
states="legal_department"
groups="odex_benefit.group_service_legal_department"
/>
<button name="action_first_refuse" type="object"
string="Return the request to the specialist" class="btn btn-warning"
states="legal_department"
groups="odex_benefit.group_service_legal_department"
/>
<button name="action_refuse" type="object"
string="Refuse" class="btn btn-danger"
states="legal_department"
groups="odex_benefit.group_service_legal_department"
/>
<button name="action_projects_department_approve" type="object"
string="Projects Department Approval" class="oe_highlight"
states="projects_department"
groups="odex_benefit.group_service_projects_department"
/>
<button name="action_first_refuse" type="object"
string="Return the request to the specialist" class="btn btn-warning"
states="projects_department"
groups="odex_benefit.group_service_projects_department"
/>
<button name="action_refuse" type="object"
string="Refuse" class="btn btn-danger"
states="projects_department"
groups="odex_benefit.group_service_projects_department"
/>
<button name="action_accounting_approve" type="object"
string="Accounting Approve" class="oe_highlight"
confirm="Are you sure you want to approve ?"
@ -93,6 +142,16 @@
confirm="Are you sure you want to approve ?"
states="gm_assistant"
groups="odex_benefit.group_benefit_branch_manager,odex_benefit.group_benefit_manager"/>
<button name="action_first_refuse" type="object"
string="Return the request to the specialist" class="btn btn-warning"
states="gm_assistant"
groups="odex_benefit.group_benefit_branch_manager,odex_benefit.group_benefit_manager"
/>
<button name="action_refuse" type="object"
string="Refuse" class="btn btn-danger"
states="gm_assistant"
groups="odex_benefit.group_benefit_branch_manager,odex_benefit.group_benefit_manager"
/>
<field name="state" widget="statusbar"
statusbar_visible="draft,researcher,waiting_approve,first_approve,accounting_approve,send_request_to_supplier,family_received_device,refused"/>
@ -422,14 +481,15 @@
<filter string="Draft" name="draft" domain="[('state','=','draft')]"/>
<separator/>
<separator/>
<filter string="Waiting for Operation Manager" name="waiting_approve" domain="[('state', '=', 'waiting_approve')]"/>
<filter string="Waiting for Operation Manager" name="waiting_approve"
domain="[('state', '=', 'waiting_approve')]"/>
<separator/>
<separator/>
<filter string="Request First Approve" name="first_approve"
<filter string="Waiting for Branch Manager" name="first_approve"
domain="[('state', '=', 'first_approve')]"/>
<separator/>
<separator/>
<filter string="Request Second Approve" name="gm_assistant"
<filter string="Waiting Assistant General Manager" name="gm_assistant"
domain="[('state', '=', 'gm_assistant')]"/>
<separator/>
<separator/>

View File

@ -7,8 +7,9 @@
'website': 'http://exp-sa.com',
'license': 'GPL-3',
'author': 'Expert Ltd',
'depends': ['odex_benefit','project_base'],
'data': ['views/services_settings_inherit.xml',
'depends': ['odex_benefit', 'project_base'],
'data': ['security/security_view.xml',
'views/services_settings_inherit.xml',
'views/project_project_inherit.xml',
'views/service_request_inherit.xml',
],

View File

@ -0,0 +1,11 @@
<odoo>
<data noupdate="1">
<record id="service_request_rule_projects_department" model="ir.rule">
<field name="name">Service Requests - Project-related (Projects Department)</field>
<field name="model_id" ref="model_service_request"/>
<field name="groups" eval="[(4, ref('odex_benefit.group_service_projects_department'))]"/>
<field name="domain_force">[('service_cat.needs_project_management_approval', '=', True)]</field>
<field name="active" eval="True"/>
</record>
</data>
</odoo>