Files
gzth/yuthon_salary/views/yuthon_meal_expenses_views.xml
2026-05-20 10:29:26 +08:00

118 lines
6.6 KiB
XML

<?xml version="1.0" encoding="UTF-8" ?>
<odoo>
<record id="view_yuthon_meal_expenses_search" model="ir.ui.view">
<field name="name">yuthon.meal.expenses.search</field>
<field name="model">yuthon.meal.expenses</field>
<field name="arch" type="xml">
<search>
<field name="employee_id" string="姓名/身份证"
filter_domain="['|', ('employee_id.name', 'ilike', self), ('card', 'ilike', self)]"/>
<field name="card" string="身份证" filter_domain="[('card', 'ilike', self)]"/>
<field name="select_year"/>
<field name="select_time"/>
<field name="meal_state"/>
<group expand="0" string="分组">
<filter string="年份" name="group_by_year" context="{'group_by':'select_year'}"/>
<filter string="月份" name="group_by_month" context="{'group_by':'select_time'}"/>
<filter string="状态" name="group_by_state" context="{'group_by':'meal_state'}"/>
</group>
</search>
</field>
</record>
<record id="view_yuthon_meal_expenses_tree" model="ir.ui.view">
<field name="name">yuthon.meal.expenses.tree</field>
<field name="model">yuthon.meal.expenses</field>
<field name="arch" type="xml">
<tree string="餐费" editable="bottom" js_class="custom_meal_button" default_order="employee_number asc">
<header>
<button name="action_generate_missing_feb" string="批量生成2026年2月缺失数据" type="object" class="btn btn-blue"/>
<button name="action_generate_missing_mar" string="批量生成2026年3月缺失数据" type="object" class="btn btn-blue"/>
<button name="action_mark_meal_sent" string="批量标记已发送" type="object" class="btn btn-blue"/>
<button name="action_batch_send_reminder" string="批量催缴" type="object" class="btn btn-blue"/>
<button name="action_test_monthly_reminder" string="测试月度提醒" type="object" class="btn btn-blue"/>
</header>
<field name="employee_number" column_invisible="1"/>
<field name="select_year"/>
<field name="select_time"/>
<field name="employee_id"/>
<field name="card"/>
<field name="number_breakfasts"/>
<field name="number_lunches"/>
<field name="total_payment"/>
<field name="company_id"/>
<field name="toll_state"/>
<field name="meal_state"/>
<button name="action_view_detail" string="明细" type="object" class="btn btn-blue"/>
<button name="send_meal" string="发送" type="object" class="btn btn-blue" invisible="meal_state != 'to_do'"/>
<button name="action_review_confirm" string="复核确认" type="object" class="btn btn-blue" invisible="toll_state != 'done'"/>
<button name="action_send_reminder" string="催缴" type="object" class="btn btn-blue" invisible="toll_state != 'to_do' or meal_state != 'done'"/>
</tree>
</field>
</record>
<record id="view_my_yuthon_meal_expenses_tree" model="ir.ui.view">
<field name="name">my_yuthon.meal.expenses.tree</field>
<field name="model">yuthon.meal.expenses</field>
<field name="arch" type="xml">
<tree string="餐费" editable="bottom">
<field name="select_year"/>
<field name="select_time"/>
<field name="employee_id"/>
<field name="number_breakfasts"/>
<field name="number_lunches"/>
<field name="total_payment" readonly="1"/>
<field name="company_id" column_invisible="1"/>
<field name="toll_state"/>
<button name="toll_confirm" string="缴费确认" type="object" class="btn btn-blue" confirm="已缴费才点,由餐费管理员复核确认" invisible="toll_state != 'to_do'"/>
<!-- <button name="action_review_confirm" string="复核确认" type="object" class="btn btn-primary" invisible="toll_state != 'done'"/>-->
</tree>
</field>
</record>
<record id="view_yuthon_meal_expenses_action" model="ir.actions.act_window">
<field name="name">餐费</field>
<field name="res_model">yuthon.meal.expenses</field>
<field name="view_mode">tree</field>
<field name="view_ids" eval="[(5, 0, 0),
(0, 0, {'view_mode': 'tree', 'view_id': ref('yuthon_salary.view_yuthon_meal_expenses_tree')})]"/>
</record>
<record id="view_my_yuthon_meal_expenses_action" model="ir.actions.act_window">
<field name="name">餐费</field>
<field name="res_model">yuthon.meal.expenses</field>
<field name="domain">[('employee_id.user_id', '=', uid)]</field>
<field name="view_mode">tree</field>
<field name="view_ids" eval="[(5, 0, 0),
(0, 0, {'view_mode': 'tree', 'view_id': ref('yuthon_salary.view_my_yuthon_meal_expenses_tree')})]"/>
</record>
<!-- 只读视图 -->
<record id="view_yuthon_meal_expenses_tree_readonly" model="ir.ui.view">
<field name="name">yuthon.meal.expenses.tree.readonly</field>
<field name="model">yuthon.meal.expenses</field>
<field name="arch" type="xml">
<tree string="餐费" editable="false">
<field name="select_year"/>
<field name="select_time"/>
<field name="employee_id" column_invisible="True"/>
<field name="card" column_invisible="True"/>
<field name="number_breakfasts"/>
<field name="number_lunches"/>
<field name="total_payment"/>
<field name="company_id" column_invisible="True"/>
<field name="toll_state"/>
<field name="meal_state"/>
</tree>
</field>
</record>
<!-- 只读动作 -->
<record id="view_yuthon_meal_expenses_action_readonly" model="ir.actions.act_window">
<field name="name">餐费报表(员工)</field>
<field name="res_model">yuthon.meal.expenses</field>
<field name="domain">[('employee_id.user_id', '=', uid)]</field>
<field name="view_mode">tree</field>
<field name="view_ids" eval="[(5, 0, 0),
(0, 0, {'view_mode': 'tree', 'view_id': ref('yuthon_salary.view_yuthon_meal_expenses_tree_readonly')})]"/>
</record>
</odoo>