mirror of
https://github.com/bringout/oca-ocb-hr.git
synced 2026-04-23 18:12:15 +02:00
19.0 vanilla
This commit is contained in:
parent
a1137a1456
commit
e1d89e11e3
2789 changed files with 1093187 additions and 605897 deletions
|
|
@ -9,7 +9,7 @@
|
|||
<div>
|
||||
<p class="tip_title">Tip: Snap pictures of your receipts with the remote app</p>
|
||||
<p class="tip_content">Do not keep your expense tickets in your pockets any longer. Just snap a picture of your receipt and let Odoo digitalizes it for you. The OCR and Artificial Intelligence will fill the data automatically.</p>
|
||||
<img src="https://download.odoocdn.com/digests/hr_expense/static/src/img/expense.png" class="illustration_border" />
|
||||
<img src="https://download.odoocdn.com/digests/hr_expense/static/src/img/milk-expense.png" width="540" class="illustration_border" />
|
||||
</div>
|
||||
</field>
|
||||
</record>
|
||||
|
|
|
|||
|
|
@ -0,0 +1,13 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<odoo>
|
||||
<data>
|
||||
<record id="ir_cron_send_submitted_expenses_mail" model="ir.cron">
|
||||
<field name="name">HR Expense: Send Submitted Expenses Mail</field>
|
||||
<field name="model_id" ref="model_hr_expense"/>
|
||||
<field name="state">code</field>
|
||||
<field name="code">model._cron_send_submitted_expenses_mail()</field>
|
||||
<field name="interval_number">1</field>
|
||||
<field name="interval_type">weeks</field>
|
||||
</record>
|
||||
</data>
|
||||
</odoo>
|
||||
|
|
@ -8,11 +8,11 @@
|
|||
<field name="standard_price">0.0</field>
|
||||
<field name="type">service</field>
|
||||
<field name="uom_id" ref="uom.product_uom_unit"/>
|
||||
<field name="uom_po_id" ref="uom.product_uom_unit"/>
|
||||
<field name="default_code">FOOD</field>
|
||||
<field name="can_be_expensed" eval="True"/>
|
||||
<field name="sale_ok" eval="False"/>
|
||||
<field name="purchase_ok" eval="False"/>
|
||||
<field name="purchase_ok" eval="True"/>
|
||||
<field name="categ_id" eval="ref('product.product_category_expenses', raise_if_not_found=False)"/>
|
||||
<field name="image_1920" type="base64" file="hr_expense/static/img/food.svg"/>
|
||||
</record>
|
||||
<record id="expense_product_travel_accommodation" model="product.product">
|
||||
|
|
@ -21,23 +21,27 @@
|
|||
<field name="standard_price">0.0</field>
|
||||
<field name="type">service</field>
|
||||
<field name="uom_id" ref="uom.product_uom_unit"/>
|
||||
<field name="uom_po_id" ref="uom.product_uom_unit"/>
|
||||
<field name="default_code">TRANS & ACC</field>
|
||||
<field name="can_be_expensed" eval="True"/>
|
||||
<field name="purchase_ok" eval="True"/>
|
||||
<field name="sale_ok" eval="False"/>
|
||||
<field name="purchase_ok" eval="False"/>
|
||||
<field name="purchase_ok" eval="True"/>
|
||||
<field name="categ_id" eval="ref('product.product_category_expenses', raise_if_not_found=False)"/>
|
||||
<field name="image_1920" type="base64" file="hr_expense/static/img/transport.svg"/>
|
||||
</record>
|
||||
<record id="uom.product_uom_km" model="uom.uom">
|
||||
<field name="active" eval="True"/>
|
||||
</record>
|
||||
<record id="expense_product_mileage" model="product.product">
|
||||
<field name="name">Mileage</field>
|
||||
<field name="standard_price">1.0</field>
|
||||
<field name="type">service</field>
|
||||
<field name="uom_id" ref="uom.product_uom_km"/>
|
||||
<field name="uom_po_id" ref="uom.product_uom_km"/>
|
||||
<field name="default_code">MIL</field>
|
||||
<field name="can_be_expensed" eval="True"/>
|
||||
<field name="sale_ok" eval="False"/>
|
||||
<field name="purchase_ok" eval="False"/>
|
||||
<field name="purchase_ok" eval="True"/>
|
||||
<field name="categ_id" eval="ref('product.product_category_expenses', raise_if_not_found=False)"/>
|
||||
<field name="image_1920" type="base64" file="hr_expense/static/img/mileage.svg"/>
|
||||
</record>
|
||||
<record id="expense_product_gift" model="product.product">
|
||||
|
|
@ -45,12 +49,12 @@
|
|||
<field name="description">Gifts to customers or vendors</field>
|
||||
<field name="standard_price">0.0</field>
|
||||
<field name="type">service</field>
|
||||
<field name="uom_id" ref="uom.product_uom_km"/>
|
||||
<field name="uom_po_id" ref="uom.product_uom_km"/>
|
||||
<field name="uom_id" ref="uom.product_uom_unit"/>
|
||||
<field name="default_code">GIFT</field>
|
||||
<field name="can_be_expensed" eval="True"/>
|
||||
<field name="sale_ok" eval="False"/>
|
||||
<field name="purchase_ok" eval="False"/>
|
||||
<field name="purchase_ok" eval="True"/>
|
||||
<field name="categ_id" eval="ref('product.product_category_expenses', raise_if_not_found=False)"/>
|
||||
<field name="image_1920" type="base64" file="hr_expense/static/img/gift.svg"/>
|
||||
</record>
|
||||
<record id="expense_product_communication" model="product.product">
|
||||
|
|
@ -58,21 +62,22 @@
|
|||
<field name="description">Phone bills, postage, etc.</field>
|
||||
<field name="standard_price">0.0</field>
|
||||
<field name="type">service</field>
|
||||
<field name="uom_id" ref="uom.product_uom_km"/>
|
||||
<field name="uom_po_id" ref="uom.product_uom_km"/>
|
||||
<field name="uom_id" ref="uom.product_uom_unit"/>
|
||||
<field name="default_code">COMM</field>
|
||||
<field name="can_be_expensed" eval="True"/>
|
||||
<field name="sale_ok" eval="False"/>
|
||||
<field name="purchase_ok" eval="False"/>
|
||||
<field name="purchase_ok" eval="True"/>
|
||||
<field name="categ_id" eval="ref('product.product_category_expenses', raise_if_not_found=False)"/>
|
||||
<field name="image_1920" type="base64" file="hr_expense/static/img/communication.svg"/>
|
||||
</record>
|
||||
<record id="product_product_no_cost" model="product.product">
|
||||
<field name="name">Others</field>
|
||||
<field name="name">Expenses</field>
|
||||
<field name="standard_price">0.0</field>
|
||||
<field name="type">service</field>
|
||||
<field name="default_code">EXP_GEN</field>
|
||||
<field name="categ_id" ref="product.cat_expense"/>
|
||||
<field name="categ_id" eval="ref('product.product_category_expenses', raise_if_not_found=False)"/>
|
||||
<field name="can_be_expensed" eval="True"/>
|
||||
<field name="purchase_ok" eval="True"/>
|
||||
<field name="image_1920" type="base64" file="hr_expense/static/img/other.svg"/>
|
||||
</record>
|
||||
</data>
|
||||
|
|
|
|||
|
|
@ -1,9 +1,21 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<odoo>
|
||||
<data noupdate="1">
|
||||
<record id="base.user_demo" model="res.users">
|
||||
<field name="group_ids" eval="[
|
||||
(3, ref('hr_expense.group_hr_expense_team_approver')),
|
||||
(3, ref('hr_expense.group_hr_expense_user')),
|
||||
(3, ref('hr_expense.group_hr_expense_manager')),
|
||||
]"/>
|
||||
</record>
|
||||
|
||||
<record id="base.default_user_group" model="res.groups">
|
||||
<field name="implied_ids" eval="[(4, ref('hr_expense.group_hr_expense_manager'))]"/>
|
||||
</record>
|
||||
|
||||
<record id="hr.employee_mit" model="hr.employee">
|
||||
<field name="address_home_id" ref="base.res_partner_address_3"/>
|
||||
<field name="private_email">douglas.fletcher51@example.com</field>
|
||||
<field name="private_phone">(132)-553-7242</field>
|
||||
</record>
|
||||
|
||||
<record id="hr_expense_account_journal" model="account.journal">
|
||||
|
|
@ -15,32 +27,30 @@
|
|||
<field name="alias_name">purchase_expense</field>
|
||||
</record>
|
||||
|
||||
<record id="res_partner_address_fp" model="res.partner">
|
||||
<field name="name">Pieter Parter's Farm</field>
|
||||
<field name="parent_id" ref="base.partner_root"/>
|
||||
<field name="street">Chaussée de Namur, 40</field>
|
||||
<field name="zip">1367</field>
|
||||
<field name="city">Grand-Rosière-Hottomont</field>
|
||||
<field name="country_id" ref="base.be"/>
|
||||
<field name="type">private</field>
|
||||
</record>
|
||||
|
||||
<record id="hr.employee_fme" model="hr.employee">
|
||||
<field name="address_home_id" ref="res_partner_address_fp"/>
|
||||
<field name="private_street">Chaussée de Namur, 40</field>
|
||||
<field name="private_zip">1367</field>
|
||||
<field name="private_city">Grand-Rosière-Hottomont</field>
|
||||
<field name="private_country_id" ref="base.be"/>
|
||||
</record>
|
||||
|
||||
<record id="hr.employee_al" model="hr.employee">
|
||||
<field name="address_home_id" ref="res_partner_address_fp"/>
|
||||
<field name="private_street">Chaussée de Namur, 40</field>
|
||||
<field name="private_zip">1367</field>
|
||||
<field name="private_city">Grand-Rosière-Hottomont</field>
|
||||
<field name="private_country_id" ref="base.be"/>
|
||||
</record>
|
||||
|
||||
<!-- ++++++++++++++ Expense sheet for Admin ++++++++++++++-->
|
||||
<!-- ++++++++++++++ Expense for Admin ++++++++++++++-->
|
||||
<record id="screen_expense" model="hr.expense">
|
||||
<field name="name">Screen</field>
|
||||
<field name="employee_id" ref="hr.employee_admin"/>
|
||||
<field name="analytic_distribution" eval="{ref('analytic.analytic_our_super_product'): 100}"/>
|
||||
<field name="product_id" ref="product_product_no_cost"/>
|
||||
<field eval="289.0" name="total_amount"/>
|
||||
<field eval="289.0" name="total_amount_currency"/>
|
||||
<field name="date" eval="time.strftime('%Y')+'-04-03'"/>
|
||||
<field name="payment_mode">company_account</field>
|
||||
<field name="approval_state">submitted</field>
|
||||
</record>
|
||||
|
||||
<record id="laptop_expense" model="hr.expense">
|
||||
|
|
@ -48,7 +58,7 @@
|
|||
<field name="employee_id" ref="hr.employee_admin"/>
|
||||
<field name="analytic_distribution" eval="{ref('analytic.analytic_our_super_product'): 100}"/>
|
||||
<field name="product_id" ref="product_product_no_cost"/>
|
||||
<field eval="889.0" name="total_amount"/>
|
||||
<field eval="889.0" name="total_amount_currency"/>
|
||||
<field name="date" eval="time.strftime('%Y')+'-04-03'"/>
|
||||
</record>
|
||||
|
||||
|
|
@ -56,23 +66,16 @@
|
|||
<field name="name">Travel by car</field>
|
||||
<field name="employee_id" ref="hr.employee_admin"/>
|
||||
<field name="product_id" ref="expense_product_mileage"/>
|
||||
<field eval="108.84" name="total_amount"/>
|
||||
<field name="product_uom_id" ref="uom.product_uom_km"/>
|
||||
<field eval="320.0" name="quantity"/>
|
||||
<field eval="108.84" name="quantity"/>
|
||||
<field name="approval_state">submitted</field>
|
||||
</record>
|
||||
|
||||
<record id="breakfast_admin_expense" model="hr.expense">
|
||||
<field name="name">BreakFast</field>
|
||||
<field name="employee_id" ref="hr.employee_admin"/>
|
||||
<field name="product_id" ref="expense_product_meal"/>
|
||||
<field eval="20" name="total_amount"/>
|
||||
<field eval="1.0" name="quantity"/>
|
||||
</record>
|
||||
|
||||
<record id="travel_ny_sheet" model="hr.expense.sheet">
|
||||
<field name="name">Commercial Travel at New York</field>
|
||||
<field name="employee_id" ref="hr.employee_admin"/>
|
||||
<field name="state">approve</field>
|
||||
<field eval="20" name="total_amount_currency"/>
|
||||
</record>
|
||||
|
||||
<record id="travel_by_air_expense" model="hr.expense">
|
||||
|
|
@ -80,11 +83,11 @@
|
|||
<field name="employee_id" ref="hr.employee_admin"/>
|
||||
<field name="analytic_distribution" eval="{ref('analytic.analytic_our_super_product'): 100}"/>
|
||||
<field name="product_id" ref="expense_product_travel_accommodation"/>
|
||||
<field eval="700.0" name="total_amount"/>
|
||||
<field eval="700.0" name="total_amount_currency"/>
|
||||
<field name="product_uom_id" ref="uom.product_uom_unit"/>
|
||||
<field eval="1.0" name="quantity"/>
|
||||
<field name="date" eval="time.strftime('%Y-%m')+'-12'"/>
|
||||
<field name="sheet_id" ref="travel_ny_sheet"/>
|
||||
<field name="approval_state">submitted</field>
|
||||
<field name="payment_mode">company_account</field>
|
||||
</record>
|
||||
|
||||
<record id="hotel_bill_expense" model="hr.expense">
|
||||
|
|
@ -92,11 +95,10 @@
|
|||
<field name="employee_id" ref="hr.employee_admin"/>
|
||||
<field name="analytic_distribution" eval="{ref('analytic.analytic_nebula'): 100}"/>
|
||||
<field name="product_id" ref="expense_product_travel_accommodation"/>
|
||||
<field eval="2000.0" name="total_amount"/>
|
||||
<field eval="2000.0" name="total_amount_currency"/>
|
||||
<field name="product_uom_id" ref="uom.product_uom_unit"/>
|
||||
<field eval="5.0" name="quantity"/>
|
||||
<field name="date" eval="time.strftime('%Y-%m')+'-17'"/>
|
||||
<field name="sheet_id" ref="travel_ny_sheet"/>
|
||||
<field name="approval_state">submitted</field>
|
||||
</record>
|
||||
|
||||
<record id="lunch_customer_bill_expense" model="hr.expense">
|
||||
|
|
@ -104,10 +106,8 @@
|
|||
<field name="employee_id" ref="hr.employee_admin"/>
|
||||
<field name="analytic_distribution" eval="{ref('analytic.analytic_nebula'): 100}"/>
|
||||
<field name="product_id" ref="expense_product_meal"/>
|
||||
<field eval="152.8" name="total_amount"/>
|
||||
<field eval="152.8" name="total_amount_currency"/>
|
||||
<field name="date" eval="time.strftime('%Y-%m')+'-13'"/>
|
||||
<field eval="1.0" name="quantity"/>
|
||||
<field name="sheet_id" ref="travel_ny_sheet"/>
|
||||
</record>
|
||||
|
||||
<record id="lunch_bill_expense" model="hr.expense">
|
||||
|
|
@ -116,28 +116,18 @@
|
|||
<field name="analytic_distribution" eval="{ref('analytic.analytic_nebula'): 100}"/>
|
||||
<field name="product_id" ref="expense_product_meal"/>
|
||||
<field name="date" eval="time.strftime('%Y-%m')+'-15'"/>
|
||||
<field eval="56.8" name="total_amount"/>
|
||||
<field eval="1.0" name="quantity"/>
|
||||
<field name="sheet_id" ref="travel_ny_sheet"/>
|
||||
</record>
|
||||
|
||||
<!-- ++++++++++++++ Expense sheet for Demo ++++++++++++++-->
|
||||
<record id="customer_meeting_sheet" model="hr.expense.sheet">
|
||||
<field name="name">Customer meeting</field>
|
||||
<field name="employee_id" ref="hr.employee_qdp"/>
|
||||
<field name="state">submit</field>
|
||||
<field eval="56.8" name="total_amount_currency"/>
|
||||
</record>
|
||||
|
||||
<!-- ++++++++++++++ Expense for Demo ++++++++++++++-->
|
||||
<record id="travel_demo_by_car_expense" model="hr.expense">
|
||||
<field name="name">Travel by Car</field>
|
||||
<field name="employee_id" ref="hr.employee_qdp"/>
|
||||
<field name="analytic_distribution" eval="{ref('analytic.analytic_our_super_product'): 100}"/>
|
||||
<field name="product_id" ref="expense_product_mileage"/>
|
||||
<field eval="120.85" name="total_amount"/>
|
||||
<field name="product_uom_id" ref="uom.product_uom_km"/>
|
||||
<field name="date" eval="time.strftime('%Y')+'-01-15'"/>
|
||||
<field eval="152.0" name="quantity"/>
|
||||
<field name="sheet_id" ref="customer_meeting_sheet"/>
|
||||
<field eval="120.85" name="quantity"/>
|
||||
</record>
|
||||
|
||||
<record id="lunch_demo_customer_bill_expense" model="hr.expense">
|
||||
|
|
@ -146,26 +136,18 @@
|
|||
<field name="analytic_distribution" eval="{ref('analytic.analytic_nebula'): 100}"/>
|
||||
<field name="product_id" ref="product_product_no_cost"/>
|
||||
<field name="date" eval="time.strftime('%Y')+'-01-15'"/>
|
||||
<field eval="152.8" name="total_amount"/>
|
||||
<field name="sheet_id" ref="customer_meeting_sheet"/>
|
||||
</record>
|
||||
|
||||
<!-- ++++++++++++++ Expense sheet for Keith Byrd ++++++++++++++-->
|
||||
<record id="team_building_sheet" model="hr.expense.sheet">
|
||||
<field name="name">Team Building</field>
|
||||
<field name="employee_id" ref="hr.employee_fme"/>
|
||||
<field name="state">submit</field>
|
||||
<field eval="152.8" name="total_amount_currency"/>
|
||||
<field name="approval_state">approved</field>
|
||||
</record>
|
||||
|
||||
<!-- ++++++++++++++ Expense for Keith Byrd ++++++++++++++-->
|
||||
<record id="pizzas_bill_expense" model="hr.expense">
|
||||
<field name="name">Pizzas</field>
|
||||
<field name="employee_id" ref="hr.employee_fme"/>
|
||||
<field name="analytic_distribution" eval="{ref('analytic.analytic_nebula'): 100}"/>
|
||||
<field name="product_id" ref="expense_product_meal"/>
|
||||
<field name="date" eval="time.strftime('%Y-%m')+'-05'"/>
|
||||
<field eval="154" name="total_amount"/>
|
||||
<field eval="12.0" name="quantity"/>
|
||||
<field name="sheet_id" ref="team_building_sheet"/>
|
||||
<field eval="154" name="total_amount_currency"/>
|
||||
</record>
|
||||
|
||||
<record id="drinks_bill_expense" model="hr.expense">
|
||||
|
|
@ -174,9 +156,7 @@
|
|||
<field name="analytic_distribution" eval="{ref('analytic.analytic_nebula'): 100}"/>
|
||||
<field name="product_id" ref="expense_product_meal"/>
|
||||
<field name="date" eval="time.strftime('%Y-%m')+'-05'"/>
|
||||
<field eval="42.5" name="total_amount"/>
|
||||
<field eval="17.0" name="quantity"/>
|
||||
<field name="sheet_id" ref="team_building_sheet"/>
|
||||
<field eval="42.5" name="total_amount_currency"/>
|
||||
</record>
|
||||
|
||||
<record id="paintball_bill_expense" model="hr.expense">
|
||||
|
|
@ -185,16 +165,11 @@
|
|||
<field name="analytic_distribution" eval="{ref('analytic.analytic_nebula'): 100}"/>
|
||||
<field name="product_id" ref="product_product_no_cost"/>
|
||||
<field name="date" eval="time.strftime('%Y-%m')+'-05'"/>
|
||||
<field eval="25" name="total_amount"/>
|
||||
<field name="sheet_id" ref="team_building_sheet"/>
|
||||
<field eval="25" name="total_amount_currency"/>
|
||||
<field name="approval_state">approved</field>
|
||||
</record>
|
||||
|
||||
<!-- ++++++++++++++ Expense sheet for Ronnie Hart ++++++++++++++-->
|
||||
<record id="office_furniture_sheet" model="hr.expense.sheet">
|
||||
<field name="name">Office furniture</field>
|
||||
<field name="employee_id" ref="hr.employee_al"/>
|
||||
<field name="state">submit</field>
|
||||
</record>
|
||||
|
||||
<record id="chair_bill_expense" model="hr.expense">
|
||||
<field name="name">Chairs</field>
|
||||
|
|
@ -202,8 +177,7 @@
|
|||
<field name="analytic_distribution" eval="{ref('analytic.analytic_nebula'): 100}"/>
|
||||
<field name="product_id" ref="product_product_no_cost"/>
|
||||
<field name="date" eval="time.strftime('%Y')+'-06-02'"/>
|
||||
<field eval="55.75" name="total_amount"/>
|
||||
<field name="sheet_id" ref="office_furniture_sheet"/>
|
||||
<field eval="55.75" name="total_amount_currency"/>
|
||||
</record>
|
||||
|
||||
<record id="lamp_bill_expense" model="hr.expense">
|
||||
|
|
@ -212,8 +186,8 @@
|
|||
<field name="analytic_distribution" eval="{ref('analytic.analytic_nebula'): 100}"/>
|
||||
<field name="product_id" ref="product_product_no_cost"/>
|
||||
<field name="date" eval="time.strftime('%Y')+'-06-02'"/>
|
||||
<field eval="28.99" name="total_amount"/>
|
||||
<field name="sheet_id" ref="office_furniture_sheet"/>
|
||||
<field eval="28.99" name="total_amount_currency"/>
|
||||
<field name="approval_state">refused</field>
|
||||
</record>
|
||||
|
||||
<!-- ++++++++++++++ Expense for Randall Lewis ++++++++++++++-->
|
||||
|
|
@ -223,8 +197,8 @@
|
|||
<field name="analytic_distribution" eval="{ref('analytic.analytic_nebula'): 100}"/>
|
||||
<field name="product_id" ref="product_product_no_cost"/>
|
||||
<field name="date" eval="time.strftime('%Y')+'-03-15'"/>
|
||||
<field eval="450.58" name="total_amount"/>
|
||||
<field eval="450.58" name="total_amount_currency"/>
|
||||
<field name="payment_mode">company_account</field>
|
||||
</record>
|
||||
|
||||
</data>
|
||||
</odoo>
|
||||
|
|
|
|||
|
|
@ -0,0 +1,7 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<odoo>
|
||||
<record id="hr_expense_tour" model="web_tour.tour">
|
||||
<field name="name">hr_expense_tour</field>
|
||||
<field name="rainbow_man_message">There you go - expense management in a nutshell!</field>
|
||||
</record>
|
||||
</odoo>
|
||||
|
|
@ -3,8 +3,9 @@
|
|||
<data noupdate="1">
|
||||
<record id="mail_act_expense_approval" model="mail.activity.type">
|
||||
<field name="name">Expense Approval</field>
|
||||
<field name="summary">Expense Approval</field>
|
||||
<field name="icon">fa-dollar</field>
|
||||
<field name="res_model">hr.expense.sheet</field>
|
||||
<field name="res_model">hr.expense</field>
|
||||
</record>
|
||||
</data>
|
||||
</odoo>
|
||||
|
|
|
|||
|
|
@ -5,7 +5,6 @@
|
|||
<record id="mail_alias_expense" model="mail.alias">
|
||||
<field name="alias_name">expense</field>
|
||||
<field name="alias_model_id" ref="model_hr_expense"/>
|
||||
<field name="alias_user_id" ref="base.user_admin"/>
|
||||
<field name="alias_contact">employees</field>
|
||||
</record>
|
||||
</data>
|
||||
|
|
|
|||
|
|
@ -4,21 +4,44 @@
|
|||
<!-- Expense-related subtypes for messaging / Chatter -->
|
||||
<record id="mt_expense_approved" model="mail.message.subtype">
|
||||
<field name="name">Approved</field>
|
||||
<field name="res_model">hr.expense.sheet</field>
|
||||
<field name="default" eval="True"/>
|
||||
<field name="description">Expense report approved</field>
|
||||
<field name="res_model">hr.expense</field>
|
||||
<field name="default" eval="False"/>
|
||||
<field name="description">Expense approved</field>
|
||||
</record>
|
||||
|
||||
<record id="mt_expense_refused" model="mail.message.subtype">
|
||||
<field name="name">Refused</field>
|
||||
<field name="res_model">hr.expense.sheet</field>
|
||||
<field name="default" eval="True"/>
|
||||
<field name="description">Expense report refused</field>
|
||||
<field name="res_model">hr.expense</field>
|
||||
<field name="default" eval="False"/>
|
||||
<field name="description">Expense refused</field>
|
||||
</record>
|
||||
|
||||
<record id="mt_expense_paid" model="mail.message.subtype">
|
||||
<field name="name">Paid</field>
|
||||
<field name="res_model">hr.expense.sheet</field>
|
||||
<field name="description">Expense report paid</field>
|
||||
<field name="default" eval="True"/>
|
||||
<field name="res_model">hr.expense</field>
|
||||
<field name="description">Expense paid</field>
|
||||
<field name="default" eval="False"/>
|
||||
</record>
|
||||
|
||||
<record id="mt_expense_reset" model="mail.message.subtype">
|
||||
<field name="name">Draft</field>
|
||||
<field name="res_model">hr.expense</field>
|
||||
<field name="default" eval="False"/>
|
||||
<field name="description">Expense reset to Draft</field>
|
||||
</record>
|
||||
|
||||
<record id="mt_expense_entry_delete" model="mail.message.subtype">
|
||||
<field name="name">Journal Entry Deleted</field>
|
||||
<field name="res_model">hr.expense</field>
|
||||
<field name="default" eval="False"/>
|
||||
<field name="description">Journal entry deleted</field>
|
||||
</record>
|
||||
|
||||
<record id="mt_expense_entry_draft" model="mail.message.subtype">
|
||||
<field name="name">Journal Entry Reset to Draft</field>
|
||||
<field name="res_model">hr.expense</field>
|
||||
<field name="default" eval="False"/>
|
||||
<field name="description">Journal entry reset to draft</field>
|
||||
</record>
|
||||
</data>
|
||||
</odoo>
|
||||
|
|
|
|||
|
|
@ -2,14 +2,14 @@
|
|||
<odoo>
|
||||
<data noupdate="1">
|
||||
<template id="hr_expense_template_refuse_reason">
|
||||
<p>Your Expense <t t-if="is_sheet">Report </t><t t-esc="name"/> has been refused</p>
|
||||
<p>Your Expense <t t-out="name"/> has been refused</p>
|
||||
<ul class="o_timeline_tracking_value_list">
|
||||
<li>Reason : <t t-esc="reason"/></li>
|
||||
<li>Reason: <t t-out="reason"/></li>
|
||||
</ul>
|
||||
</template>
|
||||
|
||||
<template id="hr_expense_template_register">
|
||||
<p>Dear <t t-esc="expense.employee_id.name"/>,</p>
|
||||
<p>Dear <t t-out="expense.employee_id.name"/>,</p>
|
||||
<p>
|
||||
Your expense has been successfully registered.
|
||||
<t t-if="expense.employee_id.user_id">
|
||||
|
|
@ -17,27 +17,61 @@
|
|||
</t>
|
||||
</p>
|
||||
<p t-if="expense.product_id">
|
||||
Category: <t t-esc="expense.product_id.name"/>
|
||||
Category: <t t-out="expense.product_id.name"/>
|
||||
</p>
|
||||
<div t-else="">
|
||||
<p>Category: not found</p>
|
||||
<p>The first word of the email subject did not correspond to any category code. You'll have to set the category manually on the expense.</p>
|
||||
</div>
|
||||
<p>
|
||||
Price: <t t-esc="expense.unit_amount"/><t t-esc="expense.currency_id.symbol"/>
|
||||
Price: <t t-out="expense.price_unit"/><t t-out="expense.currency_id.symbol"/>
|
||||
</p>
|
||||
<p t-if="expense.employee_id.user_id">
|
||||
<br/>
|
||||
<a t-att-href="'/web#id=%s&model=hr.expense&view_type=form' % (expense.id)" style="background-color: #9E588B; margin-top: 10px; padding: 10px; text-decoration: none; color: #fff; border-radius: 5px; font-size: 16px;">View Expense</a>
|
||||
<a t-att-href="'/odoo/hr.expense/%s' % (expense.id)" class="o_expense_button_mail">View Expense</a>
|
||||
</p>
|
||||
</template>
|
||||
|
||||
<template id="hr_expense_template_submitted_expenses">
|
||||
<div style="background:#F0F0F0;color:#515166;padding:10px 0px;font-family:Arial,Helvetica,sans-serif;font-size:14px;">
|
||||
<table style="width:600px;margin:5px auto;background:white;border:1px solid #e1e1e1;">
|
||||
<tbody><tr>
|
||||
<td style="padding:15px 20px 10px 20px;">
|
||||
<p style="font-size:20px;font-weight:bold;color:#515166;">Expenses approval</p>
|
||||
<hr style="background-color:rgb(204,204,204);border:medium none;clear:both;display:block;font-size:0px;min-height:1px;line-height:0; margin: 16px 0px 16px 0px;"/>
|
||||
<p>Dear <t t-out="manager_name"/>,</p>
|
||||
<p>New expenses are waiting for your approval. You can Review them by following this link.</p>
|
||||
<br/>
|
||||
<a t-att-href="url" style="padding: 8px 12px; font-size: 12px; color: #FFFFFF; text-decoration: none !important; font-weight: 400; background-color: #875A7B; border: 0px solid #875A7B; border-radius:3px">View expenses</a>
|
||||
<br/><br/>
|
||||
<hr style="background-color:rgb(204,204,204);border:medium none;clear:both;display:block;font-size:0px;min-height:1px;line-height:0; margin: 16px 0px 16px 0px;"/>
|
||||
<table style="width: 100%;">
|
||||
<tbody><tr>
|
||||
<td align="center" style="min-width: 590px; padding: 0 8px 0 8px; font-size:11px;">
|
||||
<b t-out="company.name"/><br/>
|
||||
<div style="color: #999999;">
|
||||
<t t-out="company.phone"/>
|
||||
<t t-if="company.email"> | <a t-att-href="'mailto:%s' % company.email" style="text-decoration:none; color: #999999;"><t t-out="company.email"/></a></t>
|
||||
<t t-if="company.website"> | <a t-att-href="company.website" style="text-decoration:none; color: #999999;"><t t-out="company.website"/></a></t>
|
||||
</div>
|
||||
</td>
|
||||
</tr></tbody>
|
||||
</table>
|
||||
</td>
|
||||
</tr></tbody>
|
||||
</table>
|
||||
<p style="text-align: center;font-size: 13px;">
|
||||
Powered by <a target="_blank" href="https://www.odoo.com?utm_source=db&utm_medium=expense" style="color: #9E588B;">Odoo</a>.
|
||||
</p>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<template id="hr_expense_template_register_no_user">
|
||||
<div style="background:#F0F0F0;color:#515166;padding:10px 0px;font-family:Arial,Helvetica,sans-serif;font-size:14px;">
|
||||
<table style="width:600px;margin:5px auto;">
|
||||
<table style="width:600px;margin:5px auto;" t-if="not expense.employee_id.company_id.uses_default_logo">
|
||||
<tbody>
|
||||
<tr>
|
||||
<td><a href="/"><img src="/web/binary/company_logo" style="vertical-align:baseline;max-width:100px;" /></a></td>
|
||||
<td><a href="/"><img t-attf-src="/logo.png?company={{ expense.employee_id.company_id.id }}" style="vertical-align:baseline;max-width:100px;max-height:50px;" /></a></td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue