|
|
@ -7,41 +7,59 @@ |
|
|
|
<field name="arch" type="xml"> |
|
|
|
<form> |
|
|
|
<header> |
|
|
|
<field name="state" widget="statusbar" statusbar_visible="draft,confirmed,department_approved,manager_approved"/> |
|
|
|
<button name="action_confirm" type="object" string="Confirm" |
|
|
|
attrs="{'invisible':[('state','!=','draft')]}" class="btn-primary"/> |
|
|
|
<button name="action_department_approve" type="object" string="Approve by Department" |
|
|
|
attrs="{'invisible':[('state','!=','confirmed')]}" class="btn-primary" |
|
|
|
<field name="state" widget="statusbar" |
|
|
|
statusbar_visible="draft,submitted,department_approved,manager_approved,accounting,posted"/> |
|
|
|
<button name="action_confirm" type="object" string="Submit" |
|
|
|
attrs="{'invisible': [('state', '!=', 'draft')]}" class="btn-primary"/> |
|
|
|
<button name="action_department_approve" type="object" |
|
|
|
string="Approve by Department" |
|
|
|
attrs="{'invisible': [('state', '!=', 'submitted')]}" class="btn-primary" |
|
|
|
groups="employee_bonus_manager.employee_bonus_manager_department"/> |
|
|
|
<button name="action_manager_approve" type="object" string="Approve by Manager" |
|
|
|
attrs="{'invisible':[('state','!=','department_approved')]}" class="btn-primary" |
|
|
|
<button name="action_manager_approve" type="object" |
|
|
|
string="Approve by Manager" |
|
|
|
attrs="{'invisible': [('state', '!=', 'department_approved')]}" class="btn-primary" |
|
|
|
groups="employee_bonus_manager.employee_bonus_manager_manager"/> |
|
|
|
<button name="action_reject" type="object" string="Reject" |
|
|
|
groups="employee_bonus_manager.employee_bonus_manager_department" |
|
|
|
attrs="{'invisible':[('state','!=','confirmed')]}"/> |
|
|
|
attrs="{'invisible': [('state', '!=', 'submitted')]}" class="oe_highlight"/> |
|
|
|
<button name="action_reject" type="object" string="Reject" |
|
|
|
groups="employee_bonus_manager.employee_bonus_manager_manager" |
|
|
|
attrs="{'invisible':[('state','!=','department_approved')]}"/> |
|
|
|
<button name="action_reset_to_draft" type="object" string="Reset to Draft" |
|
|
|
attrs="{'invisible': [('state', '!=', 'department_approved')]}" class="oe_highlight"/> |
|
|
|
<button name="action_reset_to_draft" type="object" |
|
|
|
string="Reset to Draft" |
|
|
|
groups="employee_bonus_manager.employee_bonus_manager_department" |
|
|
|
attrs="{'invisible':[('state','!=','rejected')]}"/> |
|
|
|
attrs="{'invisible': [('state', '!=', 'rejected')]}" class="oe_highlight"/> |
|
|
|
<button name="action_post_journal_entry" type="object" |
|
|
|
string="Accounting Head Approval" |
|
|
|
groups="account.group_account_manager" |
|
|
|
attrs="{'invisible': [('state', '!=', 'manager_approved')]}" class="oe_highlight"/> |
|
|
|
</header> |
|
|
|
<div class="oe_button_box" name="button_box"> |
|
|
|
<button class="oe_stat_button" type="object" |
|
|
|
name="action_view_journal_items" |
|
|
|
attrs="{'invisible': [('move_id', '=', False)]}" icon="fa-bars"> |
|
|
|
<div class="o_field_widget o_stat_info"> |
|
|
|
<span class="o_stat_text">Journal</span> |
|
|
|
<span class="o_stat_text">Items</span> |
|
|
|
</div> |
|
|
|
</button> |
|
|
|
</div> |
|
|
|
<sheet> |
|
|
|
<h1> |
|
|
|
<field name="reference_no" readonly="1"/> |
|
|
|
<field name="reference" readonly="1"/> |
|
|
|
</h1> |
|
|
|
<h2> |
|
|
|
<field name="employee_id" attrs="{'readonly':[('state','!=','draft')]}"/> |
|
|
|
<field name="employee_id" attrs="{'readonly': [('state', '!=', 'draft')]}" /> |
|
|
|
</h2> |
|
|
|
<group> |
|
|
|
<group> |
|
|
|
<field name="department_id"/> |
|
|
|
<field name="job_id"/> |
|
|
|
<field name="bonus_reason_id" attrs="{'readonly':[('state','!=','draft')]}"/> |
|
|
|
<field name="bonus_reason_id" attrs="{'readonly': [('state', '!=', 'draft')]}" /> |
|
|
|
</group> |
|
|
|
<group> |
|
|
|
<field name="create_date"/> |
|
|
|
<field name="bonus_amount" widget="monetary" attrs="{'readonly':[('state','not in',('draft','confirmed'))]}"/> |
|
|
|
<field name="bonus_amount" widget="monetary" attrs="{'readonly': [('state', 'not in', ('draft', 'submitted'))]}"/> |
|
|
|
<field name="currency_id" invisible="1"/> |
|
|
|
</group> |
|
|
|
</group> |
|
|
@ -52,6 +70,7 @@ |
|
|
|
<field name="confirmed_date"/> |
|
|
|
<field name="department_manager_id"/> |
|
|
|
<field name="department_approved_date"/> |
|
|
|
<field name="move_id" invisible="1"/> |
|
|
|
</group> |
|
|
|
<group> |
|
|
|
<field name="confirmed_user_id"/> |
|
|
@ -60,6 +79,21 @@ |
|
|
|
</group> |
|
|
|
</group> |
|
|
|
</page> |
|
|
|
<page string="Accounting Information" |
|
|
|
groups="account.group_account_manager" |
|
|
|
attrs="{'invisible': [('state', 'not in', ('manager_approved', 'accounting', 'posted'))]}"> |
|
|
|
<group> |
|
|
|
<group> |
|
|
|
<field name="journal_id"/> |
|
|
|
<field name="move_id"/> |
|
|
|
</group> |
|
|
|
<group> |
|
|
|
<field name="credit_account_id" |
|
|
|
attrs="{'readonly': [('state', '!=', 'manager_approved')], 'required': [('state', '=', 'manager_approved')]}" /> |
|
|
|
<field name="debit_account_id"/> |
|
|
|
</group> |
|
|
|
</group> |
|
|
|
</page> |
|
|
|
</notebook> |
|
|
|
</sheet> |
|
|
|
<div class="oe_chatter"> |
|
|
@ -69,17 +103,18 @@ |
|
|
|
</form> |
|
|
|
</field> |
|
|
|
</record> |
|
|
|
<!-- Tree view for Bonus Requests --> |
|
|
|
<record id="bonus_request_view_tree" model="ir.ui.view"> |
|
|
|
<field name="name">bonus.request.view.tree</field> |
|
|
|
|
|
|
|
<!-- List view for Bonus Requests --> |
|
|
|
<record id="bonus_request_view_list" model="ir.ui.view"> |
|
|
|
<field name="name">bonus.request.view.list</field> |
|
|
|
<field name="model">bonus.request</field> |
|
|
|
<field name="arch" type="xml"> |
|
|
|
<tree default_order='create_date' |
|
|
|
<tree default_order="create_date" |
|
|
|
decoration-warning="state == 'draft'" |
|
|
|
decoration-info="state == 'department_approved'" |
|
|
|
decoration-success="state == 'manager_approved'" |
|
|
|
decoration-danger="state == 'rejected'"> |
|
|
|
<field name="reference_no"/> |
|
|
|
<field name="reference"/> |
|
|
|
<field name="employee_id"/> |
|
|
|
<field name="department_id"/> |
|
|
|
<field name="job_id"/> |
|
|
@ -101,13 +136,14 @@ |
|
|
|
</tree> |
|
|
|
</field> |
|
|
|
</record> |
|
|
|
|
|
|
|
<!-- Kanban view for Bonus Requests --> |
|
|
|
<record id="bonus_request_view_kanban" model="ir.ui.view"> |
|
|
|
<field name="name">bonus.request.view.kanban</field> |
|
|
|
<field name="model">bonus.request</field> |
|
|
|
<field name="arch" type="xml"> |
|
|
|
<kanban class="o_bonus_request_kanban"> |
|
|
|
<field name="reference_no"/> |
|
|
|
<kanban class="o_bonus_request_kanban" records_draggable="0" default_group_by="state" default_order="state"> |
|
|
|
<field name="reference"/> |
|
|
|
<field name="employee_id"/> |
|
|
|
<field name="department_id"/> |
|
|
|
<field name="job_id"/> |
|
|
@ -139,7 +175,7 @@ |
|
|
|
</div> |
|
|
|
<div class="o_kanban_record_bottom flex-wrap"> |
|
|
|
<div class="oe_kanban_bottom_left"> |
|
|
|
<t t-esc="record.reference_no.value"/> |
|
|
|
<t t-esc="record.reference.value"/> |
|
|
|
</div> |
|
|
|
<div class="oe_kanban_bottom_right"> |
|
|
|
<t t-esc="record.state.value"/> |
|
|
@ -152,6 +188,7 @@ |
|
|
|
</kanban> |
|
|
|
</field> |
|
|
|
</record> |
|
|
|
|
|
|
|
<!-- Graph view for Bonus Requests --> |
|
|
|
<record id="bonus_request_view_graph" model="ir.ui.view"> |
|
|
|
<field name="name">bonus.request.view.graph</field> |
|
|
@ -163,6 +200,7 @@ |
|
|
|
</graph> |
|
|
|
</field> |
|
|
|
</record> |
|
|
|
|
|
|
|
<!-- Pivot view for Bonus Requests --> |
|
|
|
<record id="bonus_request_view_pivot" model="ir.ui.view"> |
|
|
|
<field name="name">bonus.request.view.pivot</field> |
|
|
@ -174,6 +212,7 @@ |
|
|
|
</pivot> |
|
|
|
</field> |
|
|
|
</record> |
|
|
|
|
|
|
|
<!-- Calendar view for Bonus Requests --> |
|
|
|
<record id="bonus_request_view_calendar" model="ir.ui.view"> |
|
|
|
<field name="name">bonus.request.view.calendar</field> |
|
|
@ -196,13 +235,14 @@ |
|
|
|
</calendar> |
|
|
|
</field> |
|
|
|
</record> |
|
|
|
|
|
|
|
<!-- Search view for Bonus Requests --> |
|
|
|
<record id="bonus_request_view_search" model="ir.ui.view"> |
|
|
|
<field name="name">bonus.request.view.search</field> |
|
|
|
<field name="model">bonus.request</field> |
|
|
|
<field name="arch" type="xml"> |
|
|
|
<search> |
|
|
|
<field name="reference_no"/> |
|
|
|
<field name="reference"/> |
|
|
|
<field name="employee_id"/> |
|
|
|
<field name="department_id"/> |
|
|
|
<field name="job_id"/> |
|
|
@ -225,18 +265,17 @@ |
|
|
|
</group> |
|
|
|
<filter name="created_today" string="Created Today" domain="[('create_date', '=', context_today().strftime('%Y-%m-%d'))]"/> |
|
|
|
<filter name="confirmed_today" string="Confirmed Today" domain="[('confirmed_date', '=', context_today().strftime('%Y-%m-%d'))]"/> |
|
|
|
<filter name="department_approved_date_today" string="Department Approved: Today" |
|
|
|
domain="[('department_approved_date', '=', context_today().strftime('%Y-%m-%d'))]"/> |
|
|
|
<filter name="manager_approved_date_today" string="Manager Approved: Today" |
|
|
|
domain="[('manager_approved_date', '=', context_today().strftime('%Y-%m-%d'))]"/> |
|
|
|
<filter name="draft" string="Draft" domain="[('state', '=','draft' )]"/> |
|
|
|
<filter name="confirmed" string="Confirmed" domain="[('state', '=','confirmed' )]"/> |
|
|
|
<filter name="department_approved" string="Approval by Department" domain="[('state', '=','department_approved' )]"/> |
|
|
|
<filter name="manager_approved" string="Approval by Manager" domain="[('state', '=','manager_approved' )]"/> |
|
|
|
<filter name="rejected" string="Rejected" domain="[('state', '=','rejected' )]"/> |
|
|
|
<filter name="department_approved_date_today" string="Department Approved: Today" domain="[('department_approved_date', '=', context_today().strftime('%Y-%m-%d'))]"/> |
|
|
|
<filter name="manager_approved_date_today" string="Manager Approved: Today" domain="[('manager_approved_date', '=', context_today().strftime('%Y-%m-%d'))]"/> |
|
|
|
<filter name="draft" string="Draft" domain="[('state', '=', 'draft')]"/> |
|
|
|
<filter name="submitted" string="Submitted" domain="[('state', '=', 'submitted')]"/> |
|
|
|
<filter name="department_approved" string="Approval by Department" domain="[('state', '=', 'department_approved')]"/> |
|
|
|
<filter name="manager_approved" string="Approval by Manager" domain="[('state', '=', 'manager_approved')]"/> |
|
|
|
<filter name="rejected" string="Rejected" domain="[('state', '=', 'rejected')]"/> |
|
|
|
</search> |
|
|
|
</field> |
|
|
|
</record> |
|
|
|
|
|
|
|
<!-- Action window for Bonus Request --> |
|
|
|
<record id="bonus_request_action" model="ir.actions.act_window"> |
|
|
|
<field name="name">Bonus Requests</field> |
|
|
@ -249,6 +288,7 @@ |
|
|
|
</p> |
|
|
|
</field> |
|
|
|
</record> |
|
|
|
|
|
|
|
<!-- Action window for Bonus Request: for Department Approval --> |
|
|
|
<record id="bonus_request_department_action" model="ir.actions.act_window"> |
|
|
|
<field name="name">Department Approval</field> |
|
|
@ -256,7 +296,7 @@ |
|
|
|
<field name="res_model">bonus.request</field> |
|
|
|
<field name="view_mode">tree,kanban,graph,pivot,calendar,form</field> |
|
|
|
<field name="context">{'create': False}</field> |
|
|
|
<field name="domain">[('state','=','confirmed')]</field> |
|
|
|
<field name="domain">[('state', '=', 'submitted')]</field> |
|
|
|
<field name="search_view_id" ref="bonus_request_view_search"/> |
|
|
|
<field name="help" type="html"> |
|
|
|
<p class="o_view_nocontent_smiling_face"> |
|
|
@ -264,6 +304,7 @@ |
|
|
|
</p> |
|
|
|
</field> |
|
|
|
</record> |
|
|
|
|
|
|
|
<!-- Action window for Bonus Request: for Manager Approval --> |
|
|
|
<record id="bonus_request_manager_action" model="ir.actions.act_window"> |
|
|
|
<field name="name">Manager Approval</field> |
|
|
@ -271,7 +312,7 @@ |
|
|
|
<field name="res_model">bonus.request</field> |
|
|
|
<field name="view_mode">tree,kanban,graph,pivot,calendar,form</field> |
|
|
|
<field name="context">{'create': False}</field> |
|
|
|
<field name="domain">[('state','=','department_approved')]</field> |
|
|
|
<field name="domain">[('state', '=', 'department_approved')]</field> |
|
|
|
<field name="search_view_id" ref="bonus_request_view_search"/> |
|
|
|
<field name="help" type="html"> |
|
|
|
<p class="o_view_nocontent_smiling_face"> |
|
|
@ -279,4 +320,20 @@ |
|
|
|
</p> |
|
|
|
</field> |
|
|
|
</record> |
|
|
|
|
|
|
|
<!-- Action window for Bonus Request: for Accounting Head --> |
|
|
|
<record id="bonus_request_accounting_action" model="ir.actions.act_window"> |
|
|
|
<field name="name">Accounting Head Approval</field> |
|
|
|
<field name="type">ir.actions.act_window</field> |
|
|
|
<field name="res_model">bonus.request</field> |
|
|
|
<field name="view_mode">tree,kanban,graph,pivot,calendar,form</field> |
|
|
|
<field name="context">{'create': False}</field> |
|
|
|
<field name="domain">[('state', '=', 'manager_approved')]</field> |
|
|
|
<field name="search_view_id" ref="bonus_request_view_search"/> |
|
|
|
<field name="help" type="html"> |
|
|
|
<p class="o_view_nocontent_smiling_face"> |
|
|
|
No requests found for Accounting Head |
|
|
|
</p> |
|
|
|
</field> |
|
|
|
</record> |
|
|
|
</odoo> |
|
|
|