This branch is the combination of several optimizations in the ORM: * store field values once in the cache: the cache reflects more faithfully the database, only fields that explicitly depend on the context have an extra indirection in the cache; * delay recomputations by default: use method `recompute` to explicitly flush out pending recomputations; * delay updates in method `write`: updates are stored in a data structure that can be flushed efficiently to the database with method `flush` (which also flush out recomputations); * make method `modified` take advantage of inverse fields to inverse dependencies; * filter records by evaluating a domain on records in Python; * a computed field with `readonly=False` behaves like a normal field with an onchange method; * computed fields are computed in superuser mode by default. Work done by Toufik Ben Jaa, Raphael Collet, Denis Ledoux and Fabien Pinckaers. closes odoo/odoo#35659 Signed-off-by: Denis Ledoux <beledouxdenis@users.noreply.github.com>
277 lines
13 KiB
XML
277 lines
13 KiB
XML
<?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" eval="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_admin" model="hr.employee">
|
|
<field name="address_home_id" ref="res_partner_address_fp"/>
|
|
</record>
|
|
|
|
<record id="hr.employee_qdp" model="hr.employee">
|
|
<field name="address_home_id" ref="res_partner_address_fp"/>
|
|
</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="default_code">EXP_CT</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="default_code">EXP_AF</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="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="default_code">EXP_GEN</field>
|
|
<field name="categ_id" ref="product.cat_expense"/>
|
|
<field name="can_be_expensed" eval="True"/>
|
|
</record>
|
|
|
|
<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_unit"/>
|
|
<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>
|