118 lines
6.6 KiB
XML
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>
|
|
|