diff options
Diffstat (limited to 'addons/hr_expense/data')
| -rw-r--r-- | addons/hr_expense/data/digest_data.xml | 17 | ||||
| -rw-r--r-- | addons/hr_expense/data/hr_expense_data.xml | 16 | ||||
| -rw-r--r-- | addons/hr_expense/data/hr_expense_demo.xml | 256 | ||||
| -rw-r--r-- | addons/hr_expense/data/hr_expense_sequence.xml | 13 | ||||
| -rw-r--r-- | addons/hr_expense/data/mail_data.xml | 93 |
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&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> + </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> |
