summaryrefslogtreecommitdiff
path: root/addons/hr_expense/data
diff options
context:
space:
mode:
Diffstat (limited to 'addons/hr_expense/data')
-rw-r--r--addons/hr_expense/data/digest_data.xml17
-rw-r--r--addons/hr_expense/data/hr_expense_data.xml16
-rw-r--r--addons/hr_expense/data/hr_expense_demo.xml256
-rw-r--r--addons/hr_expense/data/hr_expense_sequence.xml13
-rw-r--r--addons/hr_expense/data/mail_data.xml93
5 files changed, 395 insertions, 0 deletions
diff --git a/addons/hr_expense/data/digest_data.xml b/addons/hr_expense/data/digest_data.xml
new file mode 100644
index 00000000..bd61e8f6
--- /dev/null
+++ b/addons/hr_expense/data/digest_data.xml
@@ -0,0 +1,17 @@
+<?xml version='1.0' encoding='utf-8'?>
+<odoo>
+ <data>
+ <record id="digest_tip_hr_expense_0" model="digest.tip">
+ <field name="name">Tip: Snap pictures of your receipts with the remote app</field>
+ <field name="sequence">1100</field>
+ <field name="group_id" ref="base.group_user" />
+ <field name="tip_description" type="html">
+<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="/hr_expense/static/src/img/expense.png" class="illustration_border" />
+</div>
+ </field>
+ </record>
+ </data>
+</odoo>
diff --git a/addons/hr_expense/data/hr_expense_data.xml b/addons/hr_expense/data/hr_expense_data.xml
new file mode 100644
index 00000000..5005c238
--- /dev/null
+++ b/addons/hr_expense/data/hr_expense_data.xml
@@ -0,0 +1,16 @@
+<?xml version="1.0" encoding="utf-8"?>
+<odoo>
+ <data noupdate="1">
+ <record id="product_product_fixed_cost" model="product.product">
+ <field name="name">Expenses</field>
+ <field name="list_price">0.0</field>
+ <field name="standard_price">1.0</field>
+ <field name="type">service</field>
+ <field name="categ_id" ref="product.cat_expense"/>
+ <field name="can_be_expensed" eval="True"/>
+ </record>
+ </data>
+ <data>
+ <function model="ir.config_parameter" name="set_param" eval="('hr_expense.use_mailgateway', True)"/>
+ </data>
+</odoo>
diff --git a/addons/hr_expense/data/hr_expense_demo.xml b/addons/hr_expense/data/hr_expense_demo.xml
new file mode 100644
index 00000000..5ce0198e
--- /dev/null
+++ b/addons/hr_expense/data/hr_expense_demo.xml
@@ -0,0 +1,256 @@
+<?xml version="1.0" encoding="utf-8"?>
+<odoo>
+ <data noupdate="1">
+
+ <record id="hr.employee_mit" model="hr.employee">
+ <field name="address_home_id" ref="base.res_partner_address_3"/>
+ </record>
+
+ <record id="hr_expense_account_journal" model="account.journal">
+ <field name="name">Expense</field>
+ <field name="code">EXP</field>
+ <field name="type">purchase</field>
+ <!-- avoid being selected as default journal -->
+ <field name="sequence">99</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"/>
+ </record>
+
+ <record id="hr.employee_al" model="hr.employee">
+ <field name="address_home_id" ref="res_partner_address_fp"/>
+ </record>
+
+ <record id="car_travel" model="product.product">
+ <field name="list_price">0.50</field>
+ <field name="standard_price">0.32</field>
+ <field name="type">service</field>
+ <field name="name">Car Travel Expenses</field>
+ <field name="uom_id" ref="uom.product_uom_km"/>
+ <field name="uom_po_id" ref="uom.product_uom_km"/>
+ <field name="categ_id" ref="product.cat_expense"/>
+ <field name="can_be_expensed" eval="True" />
+ <field name="image_1920" type="base64" file="hr_expense/static/img/car_travel-image.jpg"/>
+ </record>
+
+ <record id="air_ticket" model="product.product">
+ <field name="list_price">700.0</field>
+ <field name="standard_price">700.0</field>
+ <field name="type">service</field>
+ <field name="name">Air Flight</field>
+ <field name="categ_id" ref="product.cat_expense"/>
+ <field name="can_be_expensed" eval="True" />
+ <field name="image_1920" type="base64" file="hr_expense/static/img/air_ticket-image.jpg"/>
+ </record>
+
+ <record id="product.expense_hotel" model="product.product">
+ <field name="can_be_expensed" eval="True" />
+ </record>
+
+ <record id="product.product_delivery_01" model="product.product">
+ <field name="can_be_expensed" eval="True" />
+ </record>
+
+ <record id="product.product_delivery_02" model="product.product">
+ <field name="can_be_expensed" eval="True" />
+ </record>
+
+ <!-- ++++++++++++++ Expense sheet 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_account_id" ref="analytic.analytic_our_super_product"/>
+ <field name="product_id" ref="product_product_fixed_cost"/>
+ <field eval="289.0" name="unit_amount"/>
+ <field name="product_uom_id" ref="uom.product_uom_unit"/>
+ <field eval="1.0" name="quantity"/>
+ <field name="date" eval="time.strftime('%Y')+'-04-03'"/>
+ </record>
+
+ <record id="laptop_expense" model="hr.expense">
+ <field name="name">Laptop</field>
+ <field name="employee_id" ref="hr.employee_admin"/>
+ <field name="analytic_account_id" ref="analytic.analytic_our_super_product"/>
+ <field name="product_id" ref="product_product_fixed_cost"/>
+ <field eval="889.0" name="unit_amount"/>
+ <field name="product_uom_id" ref="uom.product_uom_unit"/>
+ <field eval="1.0" name="quantity"/>
+ <field name="date" eval="time.strftime('%Y')+'-04-03'"/>
+ </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>
+ </record>
+
+ <record id="travel_by_air_expense" model="hr.expense">
+ <field name="name">Travel by Air</field>
+ <field name="employee_id" ref="hr.employee_admin"/>
+ <field name="analytic_account_id" ref="analytic.analytic_our_super_product"/>
+ <field name="product_id" ref="air_ticket"/>
+ <field eval="700.0" name="unit_amount"/>
+ <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"/>
+ </record>
+
+ <record id="hotel_bill_expense" model="hr.expense">
+ <field name="name">Hotel Expenses</field>
+ <field name="employee_id" ref="hr.employee_admin"/>
+ <field name="analytic_account_id" ref="analytic.analytic_nebula"/>
+ <field name="product_id" ref="product.expense_hotel"/>
+ <field eval="400.0" name="unit_amount"/>
+ <field name="product_uom_id" ref="uom.product_uom_day"/>
+ <field eval="5.0" name="quantity"/>
+ <field name="date" eval="time.strftime('%Y-%m')+'-17'"/>
+ <field name="sheet_id" ref="travel_ny_sheet"/>
+ </record>
+
+ <record id="lunch_customer_bill_expense" model="hr.expense">
+ <field name="name">Lunch with Customer</field>
+ <field name="employee_id" ref="hr.employee_admin"/>
+ <field name="analytic_account_id" ref="analytic.analytic_nebula"/>
+ <field name="product_id" ref="product_product_fixed_cost"/>
+ <field eval="152.8" name="unit_amount"/>
+ <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">
+ <field name="name">Lunch</field>
+ <field name="employee_id" ref="hr.employee_admin"/>
+ <field name="analytic_account_id" ref="analytic.analytic_nebula"/>
+ <field name="product_id" ref="product_product_fixed_cost"/>
+ <field name="date" eval="time.strftime('%Y-%m')+'-15'"/>
+ <field eval="56.8" name="unit_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>
+ </record>
+
+ <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_account_id" ref="analytic.analytic_our_super_product"/>
+ <field name="product_id" ref="car_travel"/>
+ <field eval="0.52" name="unit_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"/>
+ </record>
+
+ <record id="lunch_demo_customer_bill_expense" model="hr.expense">
+ <field name="name">Lunch with Customer</field>
+ <field name="employee_id" ref="hr.employee_qdp"/>
+ <field name="analytic_account_id" ref="analytic.analytic_nebula"/>
+ <field name="product_id" ref="product_product_fixed_cost"/>
+ <field name="date" eval="time.strftime('%Y')+'-01-15'"/>
+ <field eval="152.8" name="unit_amount"/>
+ <field eval="1.0" name="quantity"/>
+ <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>
+ </record>
+
+ <record id="pizzas_bill_expense" model="hr.expense">
+ <field name="name">Pizzas</field>
+ <field name="employee_id" ref="hr.employee_fme"/>
+ <field name="analytic_account_id" ref="analytic.analytic_nebula"/>
+ <field name="product_id" ref="product_product_fixed_cost"/>
+ <field name="date" eval="time.strftime('%Y-%m')+'-05'"/>
+ <field eval="12.5" name="unit_amount"/>
+ <field eval="12.0" name="quantity"/>
+ <field name="sheet_id" ref="team_building_sheet"/>
+ </record>
+
+ <record id="drinks_bill_expense" model="hr.expense">
+ <field name="name">Drinks</field>
+ <field name="employee_id" ref="hr.employee_fme"/>
+ <field name="analytic_account_id" ref="analytic.analytic_nebula"/>
+ <field name="product_id" ref="product_product_fixed_cost"/>
+ <field name="date" eval="time.strftime('%Y-%m')+'-05'"/>
+ <field eval="2.5" name="unit_amount"/>
+ <field eval="17.0" name="quantity"/>
+ <field name="sheet_id" ref="team_building_sheet"/>
+ </record>
+
+ <record id="paintball_bill_expense" model="hr.expense">
+ <field name="name">Paintball</field>
+ <field name="employee_id" ref="hr.employee_fme"/>
+ <field name="analytic_account_id" ref="analytic.analytic_nebula"/>
+ <field name="product_id" ref="product_product_fixed_cost"/>
+ <field name="date" eval="time.strftime('%Y-%m')+'-05'"/>
+ <field eval="25" name="unit_amount"/>
+ <field eval="12.0" name="quantity"/>
+ <field name="sheet_id" ref="team_building_sheet"/>
+ </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>
+ <field name="employee_id" ref="hr.employee_al"/>
+ <field name="analytic_account_id" ref="analytic.analytic_nebula"/>
+ <field name="product_id" ref="product.product_delivery_01"/>
+ <field name="date" eval="time.strftime('%Y')+'-06-02'"/>
+ <field eval="55.75" name="unit_amount"/>
+ <field eval="6.0" name="quantity"/>
+ <field name="sheet_id" ref="office_furniture_sheet"/>
+ </record>
+
+ <record id="lamp_bill_expense" model="hr.expense">
+ <field name="name">Lamp</field>
+ <field name="employee_id" ref="hr.employee_al"/>
+ <field name="analytic_account_id" ref="analytic.analytic_nebula"/>
+ <field name="product_id" ref="product.product_delivery_02"/>
+ <field name="date" eval="time.strftime('%Y')+'-06-02'"/>
+ <field eval="28.99" name="unit_amount"/>
+ <field eval="1.0" name="quantity"/>
+ <field name="sheet_id" ref="office_furniture_sheet"/>
+ </record>
+
+ <!-- ++++++++++++++ Expense for Randall Lewis ++++++++++++++-->
+ <record id="afterwork_bill_expense" model="hr.expense">
+ <field name="name">Car tyres</field>
+ <field name="employee_id" ref="hr.employee_stw"/>
+ <field name="analytic_account_id" ref="analytic.analytic_nebula"/>
+ <field name="product_id" ref="product_product_fixed_cost"/>
+ <field name="date" eval="time.strftime('%Y')+'-03-15'"/>
+ <field eval="112.58" name="unit_amount"/>
+ <field eval="4.0" name="quantity"/>
+ </record>
+
+ </data>
+</odoo>
diff --git a/addons/hr_expense/data/hr_expense_sequence.xml b/addons/hr_expense/data/hr_expense_sequence.xml
new file mode 100644
index 00000000..1138efed
--- /dev/null
+++ b/addons/hr_expense/data/hr_expense_sequence.xml
@@ -0,0 +1,13 @@
+<?xml version="1.0" encoding="utf-8"?>
+<odoo>
+ <data noupdate="1">
+
+ <record id="seq_hr_expense_invoice" model="ir.sequence">
+ <field name="name">Expense invoice</field>
+ <field name="code">hr.expense.invoice</field>
+ <field name="prefix">EXP/</field>
+ <field name="padding">3</field>
+ </record>
+
+ </data>
+</odoo>
diff --git a/addons/hr_expense/data/mail_data.xml b/addons/hr_expense/data/mail_data.xml
new file mode 100644
index 00000000..735771fb
--- /dev/null
+++ b/addons/hr_expense/data/mail_data.xml
@@ -0,0 +1,93 @@
+<?xml version="1.0" encoding="utf-8"?>
+<odoo>
+ <data noupdate="1">
+
+ <record id="mail_act_expense_approval" model="mail.activity.type">
+ <field name="name">Expense Approval</field>
+ <field name="icon">fa-dollar</field>
+ <field name="res_model_id" ref="hr_expense.model_hr_expense_sheet"/>
+ </record>
+
+ <!-- default alias for expenses -->
+ <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>
+
+ <!-- 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>
+ </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>
+ </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"/>
+ </record>
+
+ <!-- Email Templates -->
+ <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>
+ <ul class="o_timeline_tracking_value_list">
+ <li>Reason : <t t-esc="reason"/></li>
+ </ul>
+ </template>
+
+ <template id="hr_expense_template_register">
+ <p>Dear <t t-esc="expense.employee_id.name"/>,</p>
+ <p>
+ Your expense has been successfully registered.
+ <t t-if="expense.employee_id.user_id">
+ You can now submit it to the manager from the following link.
+ </t>
+ </p>
+ <p t-if="expense.product_id">
+ Product: <t t-esc="expense.product_id.name"/>
+ </p>
+ <div t-else="">
+ <p>Product: not found</p>
+ <p>The first word of the email subject did not correspond to any product code. You'll have to set the product manually on the expense.</p>
+ </div>
+ <p>
+ Price: <t t-esc="expense.unit_amount"/><t t-esc="expense.currency_id.symbol"/>
+ </p>
+ <p t-if="expense.employee_id.user_id">
+ <br/>
+ <a t-att-href="'/web#id=%s&amp;model=hr.expense&amp;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>
+ </p>
+ </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;">
+ <tbody>
+ <tr>
+ <td><a href="/"><img src="/web/binary/company_logo" style="vertical-align:baseline;max-width:100px;" /></a></td>
+ </tr>
+ </tbody>
+ </table>
+ <table style="width:600px;margin:0px auto;background:white;border:1px solid #e1e1e1;">
+ <tbody>
+ <tr>
+ <td style="padding:15px 20px 10px 20px;">
+ <t t-call="hr_expense.hr_expense_template_register"/>
+ <p style="color:#9E588B;">Powered by <a target="_blank" href="https://www.odoo.com">Odoo</a>.</p>
+ </td>
+ </tr>
+ </tbody>
+ </table>
+ </div>
+ </template>
+ </data>
+</odoo>