mirror of
https://github.com/bringout/oca-technical.git
synced 2026-04-18 13:32:01 +02:00
438 lines
20 KiB
XML
438 lines
20 KiB
XML
<?xml version="1.0" encoding="utf-8" ?>
|
|
<odoo>
|
|
<record id="hr_payslip_view_tree" model="ir.ui.view">
|
|
<field name="name">hr.payslip.tree</field>
|
|
<field name="model">hr.payslip</field>
|
|
<field name="arch" type="xml">
|
|
<tree
|
|
decoration-muted="state == 'cancel'"
|
|
string="Payslips"
|
|
multi_edit="1"
|
|
sample="1"
|
|
>
|
|
<field name="number" readonly="1" decoration-bf="1" />
|
|
<field name="employee_id" readonly="1" />
|
|
<field name="name" />
|
|
<field name="date_from" optional="show" decoration-bf="1" />
|
|
<field name="date_to" optional="show" decoration-bf="1" />
|
|
<field name="activity_ids" widget="list_activity" optional="show" />
|
|
<field
|
|
name="state"
|
|
decoration-success="state == 'done'"
|
|
decoration-warning="state == 'verify'"
|
|
decoration-info="state == 'draft'"
|
|
decoration-danger="state == 'cancel'"
|
|
widget="badge"
|
|
optional="show"
|
|
/>
|
|
<field
|
|
name="company_id"
|
|
groups="base.group_multi_company"
|
|
options="{'no_create': True}"
|
|
/>
|
|
<field name="payslip_run_id" invisible="1" />
|
|
<field name="message_needaction" invisible="1" />
|
|
</tree>
|
|
</field>
|
|
</record>
|
|
<record id="hr_payslip_view_kanban" model="ir.ui.view">
|
|
<field name="name">hr.payslip.kanban</field>
|
|
<field name="model">hr.payslip</field>
|
|
<field name="arch" type="xml">
|
|
<kanban class="o_kanban_mobile">
|
|
<templates>
|
|
<t t-name="kanban-box">
|
|
<div t-attf-class="oe_kanban_content oe_kanban_global_click">
|
|
<div class="row">
|
|
<div class="col-6">
|
|
<strong>
|
|
<field name="employee_id" />
|
|
</strong>
|
|
</div>
|
|
<div class="col-6">
|
|
<span class="float-right badge badge-secondary">
|
|
<field name="state" />
|
|
</span>
|
|
</div>
|
|
<div class="col-12">
|
|
<span>
|
|
<field name="date_from" />
|
|
-
|
|
<field name="date_to" />
|
|
</span>
|
|
</div>
|
|
<div class="col-12">
|
|
<span>
|
|
<field name="name" />
|
|
</span>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</t>
|
|
</templates>
|
|
</kanban>
|
|
</field>
|
|
</record>
|
|
<record id="hr_payslip_view_form" model="ir.ui.view">
|
|
<field name="name">hr.payslip.form</field>
|
|
<field name="model">hr.payslip</field>
|
|
<field name="arch" type="xml">
|
|
<form string="Payslip">
|
|
<header>
|
|
<field name="allow_cancel_payslips" invisible="1" />
|
|
<button
|
|
string="Confirm"
|
|
name="action_payslip_done"
|
|
type="object"
|
|
states="verify"
|
|
class="oe_highlight"
|
|
/>
|
|
<button
|
|
string="Refund"
|
|
name="refund_sheet"
|
|
states="done"
|
|
type='object'
|
|
/>
|
|
<button
|
|
string="Compute Sheet"
|
|
name="compute_sheet"
|
|
type="object"
|
|
states="draft,verify"
|
|
class="oe_highlight"
|
|
/>
|
|
<button
|
|
string="Set to Draft"
|
|
name="action_payslip_draft"
|
|
type="object"
|
|
states="cancel,verify"
|
|
/>
|
|
<button
|
|
string="Cancel Payslip"
|
|
name="action_payslip_cancel"
|
|
type="object"
|
|
states="draft,verify"
|
|
/>
|
|
<button
|
|
string="Cancel Payslip"
|
|
name="action_payslip_cancel"
|
|
type="object"
|
|
attrs="{'invisible': ['|', ('state', '!=', 'done'), ('allow_cancel_payslips', '=', False)]}"
|
|
/>
|
|
<button
|
|
string="Refetch Payslip Data"
|
|
name="onchange_employee"
|
|
type="object"
|
|
states="draft,verify"
|
|
/>
|
|
<field
|
|
name="state"
|
|
widget="statusbar"
|
|
statusbar_visible="draft,verify,done,cancel"
|
|
/>
|
|
</header>
|
|
<sheet>
|
|
<div class="oe_button_box" name="button_box">
|
|
<button
|
|
name="%(hr_payslip_line_action_computation_details)d"
|
|
class="oe_stat_button"
|
|
icon="fa-money"
|
|
type="action"
|
|
>
|
|
<field
|
|
name="payslip_count"
|
|
widget="statinfo"
|
|
string="Payslip Lines"
|
|
help="Payslip Computation Details"
|
|
/>
|
|
</button>
|
|
</div>
|
|
<div class="oe_title">
|
|
<label for="employee_id" class="oe_edit_only" />
|
|
<h1>
|
|
<field name="employee_id" placeholder="Employee" />
|
|
</h1>
|
|
</div>
|
|
<group col="4">
|
|
<label for="date_from" string="Period" />
|
|
<div>
|
|
<field
|
|
name="date_from"
|
|
widget="daterange"
|
|
class="oe_inline"
|
|
options="{'related_end_date': 'date_to'}"
|
|
/>
|
|
-
|
|
<field
|
|
name="date_to"
|
|
widget="daterange"
|
|
class="oe_inline"
|
|
options="{'related_start_date': 'date_from'}"
|
|
/>
|
|
</div>
|
|
<!--
|
|
<field
|
|
name="contract_id"
|
|
domain="[('employee_id','=',employee_id),('date_start','<=',date_to),'|',('date_end','>=',date_from),('date_end','=',False)]"
|
|
context="{'default_employee_id': employee_id}"
|
|
/>
|
|
-->
|
|
<field name="number" />
|
|
<!--
|
|
<field
|
|
name="struct_id"
|
|
attrs="{'required':[('contract_id','!=',False)]}"
|
|
/>
|
|
-->
|
|
<field name="name" />
|
|
<field name="credit_note" />
|
|
<field
|
|
name="refunded_id"
|
|
attrs="{'invisible': [('refunded_id', '=', False)]}"
|
|
/>
|
|
<field
|
|
name="compute_date"
|
|
attrs="{'invisible':[('compute_date','==',False)]}"
|
|
/>
|
|
</group>
|
|
<notebook>
|
|
<page name="input" string="Worked Days & Inputs">
|
|
<separator name="worked" string="Worked Days" />
|
|
<field name="worked_days_line_ids">
|
|
<tree string="Worked Days" editable="bottom">
|
|
<field name="name" />
|
|
<field name="code" />
|
|
<field name="number_of_days" />
|
|
<field name="number_of_hours" />
|
|
<field
|
|
name="contract_id"
|
|
domain="[('employee_id','=',parent.employee_id),('date_start','<=',parent.date_to),'|',('date_end','>=',parent.date_from),('date_end','=',False)]"
|
|
context="{'default_employee_id': parent.employee_id}"
|
|
/>
|
|
<field name="sequence" invisible="True" />
|
|
</tree>
|
|
<form string="Worked Day">
|
|
<group col="4">
|
|
<field name="name" />
|
|
<field name="code" />
|
|
<field name="sequence" />
|
|
<field name="number_of_days" />
|
|
<field name="number_of_hours" />
|
|
<field name="contract_id" />
|
|
</group>
|
|
</form>
|
|
</field>
|
|
<separator name="other" string="Other Inputs" />
|
|
<field name="input_line_ids" colspan="4" nolabel="1">
|
|
<tree string="Input Data" editable="bottom">
|
|
<field name="name" />
|
|
<field name="code" />
|
|
<field name="amount_qty" />
|
|
<field name="amount" />
|
|
<field
|
|
name="contract_id"
|
|
domain="[('employee_id','=',parent.employee_id),('date_start','<=',parent.date_to),'|',('date_end','>=',parent.date_from),('date_end','=',False)]"
|
|
context="{'default_employee_id': parent.employee_id}"
|
|
/>
|
|
<field name="sequence" invisible="True" />
|
|
</tree>
|
|
<form string="Payslip Line">
|
|
<group col="4">
|
|
<field name="name" />
|
|
<field name="code" />
|
|
<field name="sequence" />
|
|
<field name="amount" />
|
|
<field name="contract_id" />
|
|
</group>
|
|
</form>
|
|
</field>
|
|
</page>
|
|
<page name="computation" string="Salary Computation">
|
|
<group>
|
|
<field
|
|
name="hide_child_lines"
|
|
widget="boolean_toggle"
|
|
/>
|
|
</group>
|
|
<field
|
|
name="dynamic_filtered_payslip_lines"
|
|
colspan="4"
|
|
nolabel="1"
|
|
>
|
|
<tree
|
|
string="Salary Structure"
|
|
decoration-info="total == 0"
|
|
decoration-bf="parent_rule_id == False"
|
|
decoration-it="parent_rule_id != False"
|
|
decoration-muted="parent_rule_id != False"
|
|
create="false"
|
|
delete="false"
|
|
>
|
|
<field name="sequence" invisible="1" />
|
|
<field name="parent_line_id" invisible="1" />
|
|
<field name="parent_rule_id" invisible="1" />
|
|
<field name="code" readonly="1" />
|
|
<field
|
|
name="salary_rule_id"
|
|
readonly="1"
|
|
invisible="1"
|
|
/>
|
|
<field name="category_id" readonly="1" />
|
|
<field name="name" />
|
|
<field name="quantity" readonly="1" />
|
|
<field name="rate" readonly="1" />
|
|
<field name="amount" readonly="1" />
|
|
<field
|
|
name="total"
|
|
decoration-danger="0 > total and parent_rule_id == False"
|
|
decoration-success="total > 0 and parent_rule_id == False"
|
|
readonly="1"
|
|
/>
|
|
<field name="contract_id" readonly="1" />
|
|
</tree>
|
|
</field>
|
|
</page>
|
|
<page name="details" string="Salary rules apearing on payslip">
|
|
<field name="details_by_salary_rule_category">
|
|
<tree
|
|
string="Payslip Lines"
|
|
decoration-info="total == 0"
|
|
>
|
|
<field name="category_id" decoration-bf="1" />
|
|
<field name="code" widget="badge" />
|
|
<field name="name" />
|
|
<field
|
|
name="total"
|
|
decoration-bf="1"
|
|
decoration-danger="0 > total"
|
|
decoration-success="total > 0"
|
|
/>
|
|
</tree>
|
|
</field>
|
|
</page>
|
|
<page name="accounting" string="Accounting Information">
|
|
<group>
|
|
<group string="Miscellaneous">
|
|
<field
|
|
name="company_id"
|
|
groups="base.group_multi_company"
|
|
/>
|
|
<field
|
|
name="payslip_run_id"
|
|
domain="[('state','=','draft')]"
|
|
/>
|
|
</group>
|
|
<group name="accounting" string="Accounting">
|
|
<field name="paid" readonly="1" />
|
|
</group>
|
|
</group>
|
|
<div colspan="4">
|
|
<field
|
|
name="note"
|
|
placeholder="Add an internal note..."
|
|
/>
|
|
</div>
|
|
</page>
|
|
</notebook>
|
|
</sheet>
|
|
<div class="oe_chatter">
|
|
<field name="message_follower_ids" />
|
|
<field name="activity_ids" />
|
|
<field name="message_ids" />
|
|
</div>
|
|
</form>
|
|
</field>
|
|
</record>
|
|
<record id="hr_payslip_view_search" model="ir.ui.view">
|
|
<field name="name">hr.payslip.select</field>
|
|
<field name="model">hr.payslip</field>
|
|
<field name="arch" type="xml">
|
|
<search string="Search Payslips">
|
|
<field name="employee_id" />
|
|
<field
|
|
name="name"
|
|
string="Payslips"
|
|
filter_domain="['|',('name','ilike',self),('number','ilike',self)]"
|
|
/>
|
|
<field name="date_from" />
|
|
<!--
|
|
<field name="contract_id" />
|
|
-->
|
|
<field name="payslip_run_id" />
|
|
<filter
|
|
string="Draft"
|
|
name="draft"
|
|
domain="[('state', '=', 'draft')]"
|
|
/>
|
|
<filter
|
|
string="Pending Review"
|
|
name="verify"
|
|
domain="[('state', '=', 'verify')]"
|
|
/>
|
|
<filter
|
|
string="Done"
|
|
name="done"
|
|
domain="[('state','=','done')]"
|
|
help="Done Slip"
|
|
/>
|
|
<separator />
|
|
<filter
|
|
string="Date"
|
|
name="date_filter"
|
|
date="date_to"
|
|
default_period="last_month"
|
|
/>
|
|
<separator />
|
|
<filter
|
|
string="Refunded"
|
|
name="credit_note"
|
|
domain="[('credit_note', '=', True)]"
|
|
/>
|
|
<separator />
|
|
<group expand="0" string="Group By">
|
|
<filter
|
|
string="Employees"
|
|
name="employee_id"
|
|
context="{'group_by':'employee_id'}"
|
|
/>
|
|
<filter
|
|
string="PaySlip Batch"
|
|
name="payslip_run_id"
|
|
context="{'group_by':'payslip_run_id'}"
|
|
/>
|
|
<filter
|
|
string="Companies"
|
|
name="company_id"
|
|
groups="base.group_multi_company"
|
|
context="{'group_by':'company_id'}"
|
|
/>
|
|
<filter
|
|
string="States"
|
|
name="state"
|
|
context="{'group_by':'state'}"
|
|
/>
|
|
</group>
|
|
</search>
|
|
</field>
|
|
</record>
|
|
<record id="hr_payslip_action" model="ir.actions.act_window">
|
|
<field name="name">Employee Payslips</field>
|
|
<field name="res_model">hr.payslip</field>
|
|
<field name="view_mode">tree,kanban,form</field>
|
|
<field name="search_view_id" ref="hr_payslip_view_search" />
|
|
</record>
|
|
<record id="hr_payslip_action_employee" model="ir.actions.act_window">
|
|
<field name="res_model">hr.payslip</field>
|
|
<field name="name">Payslips</field>
|
|
<field name="view_mode">tree,form</field>
|
|
<field name="context">
|
|
{'search_default_employee_id': [active_id], 'default_employee_id':
|
|
active_id}
|
|
</field>
|
|
</record>
|
|
<menuitem
|
|
id="hr_payslip_menu"
|
|
action="hr_payslip_action"
|
|
parent="payroll_menu_root"
|
|
groups="payroll.group_payroll_user"
|
|
/>
|
|
</odoo>
|