yun_product/yuthon_salary/views/salary_slip_views.xml
2026-07-30 19:56:43 +08:00

138 lines
6.7 KiB
XML

<?xml version="1.0" encoding="utf-8"?>
<odoo>
<record id="view_salary_slip_tree" model="ir.ui.view">
<field name="name">yuthon.salary.slip.tree</field>
<field name="model">yuthon.salary.slip</field>
<field name="arch" type="xml">
<list>
<field name="name"/>
<field name="year"/>
<field name="month"/>
<field name="employee_id"/>
<field name="department_id"/>
<field name="total_income"/>
<field name="total_deduction"/>
<field name="net_salary"/>
<field name="state" widget="badge" decoration-success="state == 'paid'" decoration-info="state == 'approved'" decoration-muted="state == 'draft'"/>
</list>
</field>
</record>
<record id="view_salary_slip_form" model="ir.ui.view">
<field name="name">yuthon.salary.slip.form</field>
<field name="model">yuthon.salary.slip</field>
<field name="arch" type="xml">
<form>
<header>
<button name="action_calculate" string="计算薪资" type="object" class="oe_highlight" invisible="state != 'draft'"/>
<button name="action_confirm" string="确认" type="object" class="oe_highlight" invisible="state != 'draft'"/>
<button name="action_approve" string="审核" type="object" class="oe_highlight" invisible="state != 'confirmed'"/>
<button name="action_pay" string="发放" type="object" class="oe_highlight" invisible="state != 'approved'"/>
<button name="action_draft" string="退回草稿" type="object" invisible="state not in ('confirmed', 'approved')"/>
<field name="state" widget="statusbar" statusbar_visible="draft,confirmed,approved,paid"/>
</header>
<sheet>
<div class="oe_title">
<h1><field name="name" readonly="1"/></h1>
</div>
<group>
<group string="基本信息">
<field name="employee_id"/>
<field name="department_id" readonly="1"/>
<field name="job_id" readonly="1"/>
<field name="salary_record_id"/>
</group>
<group string="薪资周期">
<field name="year"/>
<field name="month"/>
<field name="date_from"/>
<field name="date_to"/>
</group>
</group>
<group string="收入明细">
<group>
<field name="basic_salary"/>
<field name="position_salary"/>
<field name="performance_salary"/>
<field name="class_hour_fee"/>
<field name="class_teacher_allowance"/>
</group>
<group>
<field name="seniority_allowance"/>
<field name="education_allowance"/>
<field name="title_allowance"/>
<field name="other_income"/>
</group>
</group>
<group string="扣款明细">
<group>
<field name="pension_personal"/>
<field name="medical_personal"/>
<field name="unemployment_personal"/>
<field name="provident_fund_personal"/>
</group>
<group>
<field name="personal_income_tax"/>
<field name="other_deduction"/>
</group>
</group>
<group class="oe_subtotal_footer">
<group>
<field name="total_income"/>
<field name="total_deduction"/>
<div class="oe_subtotal_footer_separator">
<label for="net_salary"/>
</div>
<field name="net_salary" nolabel="1" class="oe_subtotal_footer_separator"/>
</group>
</group>
<group string="发放信息">
<field name="bank_name"/>
<field name="bank_account"/>
</group>
<field name="note" placeholder="备注..."/>
</sheet>
<div class="oe_chatter">
<field name="message_follower_ids"/>
<field name="activity_ids"/>
<field name="message_ids"/>
</div>
</form>
</field>
</record>
<record id="view_salary_slip_search" model="ir.ui.view">
<field name="name">yuthon.salary.slip.search</field>
<field name="model">yuthon.salary.slip</field>
<field name="arch" type="xml">
<search>
<field name="name"/>
<field name="employee_id"/>
<field name="department_id"/>
<filter name="draft" string="草稿" domain="[('state', '=', 'draft')]"/>
<filter name="confirmed" string="已确认" domain="[('state', '=', 'confirmed')]"/>
<filter name="approved" string="已审核" domain="[('state', '=', 'approved')]"/>
<filter name="paid" string="已发放" domain="[('state', '=', 'paid')]"/>
<group expand="0" string="分组">
<filter name="group_department" string="按部门" context="{'group_by': 'department_id'}"/>
<filter name="group_month" string="按月" context="{'group_by': 'month'}"/>
<filter name="group_state" string="按状态" context="{'group_by': 'state'}"/>
</group>
</search>
</field>
</record>
<record id="action_salary_slip" model="ir.actions.act_window">
<field name="name">薪资单</field>
<field name="res_model">yuthon.salary.slip</field>
<field name="view_mode">list,form</field>
</record>
<!-- 薪资报表动作 -->
<record id="action_salary_report" model="ir.actions.act_window">
<field name="name">薪资报表</field>
<field name="res_model">yuthon.salary.slip</field>
<field name="view_mode">list,form,pivot,graph</field>
</record>
</odoo>