======= This PR is in the continuity of odoo#62360. - Display remaining hours in task sales_line_id (name_get + task form view) - Remove internal reference from services demo data - Display sol in project timesheets list if project is billable - Remove use of non_allow_billable in timesheets as it has been removed from project and task in previous PR (see above) - Only recompute planned_hours for service product - Determine the correct SOL for timesheet - Set the last SOL of customer on timesheet if none is set on task or project - Allow edition of so_line in timesheet - Restrict SOL on project to sale lines with a service product - Use same widget on partner_id many2One than in sale.order (using ranking) - Remove timesheets table in SO and invoice portal.They were added in previous PR (see above). This introduces the use of links to /my/timesheets/. - Review portal timesheets (my/timesheets/ and link from orders and invoices) - Activate group_uom "Units of Measure" on sale_timesheet install - Hide partner phone number in task form view - Only determine SOL of task and timesheet if allow_billable=True - Filter SOL in task so that it matches the SOL of the project SO - Display red label if remaining hours is negative - Change SO compute behavior - Only open SO for salesman on project overview task-2409761 -- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr closes odoo/odoo#63695 Forward-port-of: #62900 X-original-commit: b1985773f3a67e28049f9e2bb635bcab059ad9c0 Related: odoo/enterprise#15427 Signed-off-by: Yannick Tivisse (yti) <yti@odoo.com>
257 lines
12 KiB
XML
257 lines
12 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" 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>
|