19.0 vanilla

This commit is contained in:
Ernad Husremovic 2026-03-09 09:32:12 +01:00
parent 79f83631d5
commit 73afc09215
6267 changed files with 1534193 additions and 1130106 deletions

View file

@ -2,21 +2,87 @@
<odoo>
<data noupdate="1">
<record id="sale_line_services" model="sale.order.line">
<field name="order_id" ref="sale.sale_order_3"/>
<field name="name" model="sale.order.line" eval="obj().env.ref('sale.advance_product_0').get_product_multiline_description_sale()"/>
<field name="product_id" ref="sale.advance_product_0"/>
<field name="product_uom" ref="uom.product_uom_unit"/>
<field name="price_unit">150.0</field>
<field name="product_uom_qty">5.0</field>
<record id="job_interior_designer" model="hr.job">
<field name="name">Interior Designer</field>
<field name="no_of_recruitment">5</field>
<field name="contract_type_id" ref="hr.contract_type_permanent"/>
</record>
<!-- Project Template -->
<record id="so_template_project" model="project.project">
<field name="name">Sales Order</field>
<field name="active">False</field>
<field name="type_ids" eval="[Command.link(ref('project.project_stage_0')), Command.link(ref('project.project_stage_1')), Command.link(ref('project.project_stage_2'))]"/>
<field name="description">This project is used as a template for projects created from sales orders.</field>
<record id="job_engineer" model="hr.job">
<field name="name">Site Manager</field>
<field name="no_of_recruitment">7</field>
<field name="contract_type_id" ref="hr.contract_type_permanent"/>
</record>
<record id="job_labour" model="hr.job">
<field name="name">Handyman</field>
<field name="no_of_recruitment">10</field>
<field name="contract_type_id" ref="hr.contract_type_permanent"/>
</record>
<record id="work_contact_jjo" model="res.partner">
<field name="name">Jessica Johnson</field>
<field name="email">jessica.johnson45@example.com</field>
<field name="image_1920" type="base64" file="sale_timesheet/static/img/employee_jjo-image.jpg"/>
</record>
<record id="employee_jjo" model="hr.employee">
<field name="name">Jessica Johnson</field>
<field name="parent_id" ref="hr.employee_al"/>
<field name="job_id" ref="sale_timesheet.job_engineer"/>
<field name="category_ids" eval="[(6, 0, [ref('hr.employee_category_4')])]"/>
<field name="resource_calendar_id" ref="resource.resource_calendar_std_38h"/>
<field name="work_location_id" ref="hr.work_location_1"/>
<field name="work_phone">(535)-495-4164</field>
<field name="work_contact_id" ref="sale_timesheet.work_contact_jjo"/>
<field name="image_1920" type="base64" file="sale_timesheet/static/img/employee_jjo-image.jpg"/>
<field name="create_date">2020-02-02 00:00:00</field>
<field name="sex">female</field>
</record>
<record id="work_contact_awa" model="res.partner">
<field name="name">Amy Watson</field>
<field name="email">amy.watson21@example.com</field>
<field name="image_1920" type="base64" file="sale_timesheet/static/img/employee_awa-image.jpg"/>
</record>
<record id="employee_awa" model="hr.employee">
<field name="name">Amy Watson</field>
<field name="parent_id" ref="sale_timesheet.employee_jjo"/>
<field name="job_id" ref="sale_timesheet.job_interior_designer"/>
<field name="category_ids" eval="[(6, 0, [ref('hr.employee_category_4')])]"/>
<field name="work_location_id" ref="hr.work_location_1"/>
<field name="work_phone">(535)-495-4222</field>
<field name="work_contact_id" ref="sale_timesheet.work_contact_awa"/>
<field name="image_1920" type="base64" file="sale_timesheet/static/img/employee_awa-image.jpg"/>
<field name="create_date">2020-01-01 00:00:00</field>
<field name="sex">female</field>
</record>
<record id="work_contact_jsm" model="res.partner">
<field name="name">Justin Smith</field>
<field name="email">justin.smith57@example.com</field>
<field name="image_1920" type="base64" file="sale_timesheet/static/img/employee_jsm-image.jpg"/>
</record>
<record id="employee_jsm" model="hr.employee">
<field name="name">Justin Smith</field>
<field name="parent_id" ref="sale_timesheet.employee_jjo"/>
<field name="job_id" ref="sale_timesheet.job_labour"/>
<field name="category_ids" eval="[(6, 0, [ref('hr.employee_category_4')])]"/>
<field name="work_location_id" ref="hr.work_location_1"/>
<field name="work_phone">(535)-495-4444</field>
<field name="work_contact_id" ref="sale_timesheet.work_contact_jsm"/>
<field name="image_1920" type="base64" file="sale_timesheet/static/img/employee_jsm-image.jpg"/>
<field name="create_date">2020-02-02 00:00:00</field>
<field name="sex">male</field>
</record>
<record id="sale_line_services" model="sale.order.line">
<field name="order_id" ref="sale.sale_order_3"/>
<field name="product_id" ref="sale.advance_product_0"/>
<field name="price_unit">150.0</field>
<field name="product_uom_qty">5.0</field>
</record>
<!-- Projects and Analytic Account -->
@ -25,14 +91,14 @@
<field name="code">INT</field>
<field name="active" eval="True"/>
<field name="plan_id" ref="analytic.analytic_plan_projects"/>
<field name="company_id" eval="False"/>
</record>
<record id="project_support" model="project.project">
<field name="date_start" eval="time.strftime('%Y-%m-01 10:00:00')"/>
<field name="name">After-Sales Services</field>
<field name="description">Services provided to customers who have purchased products.</field>
<field name="user_id" eval=""/>
<field name="analytic_account_id" ref="account_analytic_account_project_support"/>
<field name="account_id" ref="account_analytic_account_project_support"/>
<field name="allow_billable" eval="True" />
<field name="type_ids" eval="[Command.link(ref('project.project_stage_0')), Command.link(ref('project.project_stage_1')), Command.link(ref('project.project_stage_2'))]"/>
<field name="label_tasks">Services</field>
@ -66,12 +132,11 @@
<record id="product_service_order_timesheet" model="product.product">
<field name="name">Customer Care (Prepaid Hours)</field>
<field name="categ_id" ref="product.product_category_3"/>
<field name="categ_id" ref="product.product_category_services"/>
<field name="type">service</field>
<field name="list_price">250.00</field>
<field name="standard_price">190.00</field>
<field name="uom_id" ref="uom.product_uom_hour"/>
<field name="uom_po_id" ref="uom.product_uom_hour"/>
<field name="service_policy">ordered_prepaid</field>
<field name="service_tracking">task_global_project</field>
<field name="project_id" ref="project_support"/>
@ -80,54 +145,99 @@
<record id="product_service_deliver_timesheet_1" model="product.product">
<field name="name">Senior Architect (Invoice on Timesheets)</field>
<field name="categ_id" ref="product.product_category_3"/>
<field name="categ_id" ref="product.product_category_services"/>
<field name="list_price">200.00</field>
<field name="standard_price">150.00</field>
<field name="type">service</field>
<field name="uom_id" ref="uom.product_uom_hour"/>
<field name="uom_po_id" ref="uom.product_uom_hour"/>
<field name="service_policy">delivered_timesheet</field>
<field name="service_tracking">task_in_project</field>
<field name="project_template_id" ref="so_template_project"/>
<field name="project_template_id" ref="sale_project.so_template_project"/>
</record>
<record id="product_service_deliver_timesheet_2" model="product.product">
<field name="name">Junior Architect (Invoice on Timesheets)</field>
<field name="categ_id" ref="product.product_category_3"/>
<field name="categ_id" ref="product.product_category_services"/>
<field name="list_price">100.00</field>
<field name="standard_price">85.00</field>
<field name="type">service</field>
<field name="uom_id" ref="uom.product_uom_hour"/>
<field name="uom_po_id" ref="uom.product_uom_hour"/>
<field name="service_policy">delivered_timesheet</field>
<field name="service_tracking">task_in_project</field>
<field name="project_template_id" ref="so_template_project"/>
<field name="project_template_id" ref="sale_project.so_template_project"/>
</record>
<record id="product_service_deliver_milestones" model="product.product">
<field name="name">Kitchen Assembly (Milestones)</field>
<field name="categ_id" ref="product.product_category_3"/>
<field name="categ_id" ref="product.product_category_services"/>
<field name="list_price">500</field>
<field name="standard_price">420.00</field>
<field name="type">service</field>
<field name="invoice_policy">delivery</field>
<field name="uom_id" ref="uom.product_uom_unit"/>
<field name="uom_po_id" ref="uom.product_uom_unit"/>
<field name="service_type" model="product.product" eval="'milestones' if obj().env.user.has_group('project.group_project_milestone') else 'manual'" />
<field name="service_tracking">task_in_project</field>
<field name="project_template_id" ref="so_template_project"/>
<field name="project_template_id" ref="sale_project.so_template_project"/>
</record>
<record id="product_product_elevator_installation" model="product.product">
<field name="name">Elevator Installation</field>
<field name="categ_id" ref="product.product_category_construction"/>
<field name="list_price">5500.00</field>
<field name="standard_price">5000.00</field>
<field name="type">service</field>
<field name="uom_id" ref="uom.product_uom_hour"/>
<field name="service_policy">ordered_prepaid</field>
<field name="service_tracking">task_global_project</field>
<field name="project_id" ref="project.project_home_construction"/>
</record>
<record id="product_product_solar_installation" model="product.product">
<field name="name">Solar Panel Installation</field>
<field name="categ_id" ref="product.product_category_construction"/>
<field name="list_price">4050.00</field>
<field name="standard_price">4000.00</field>
<field name="type">service</field>
<field name="uom_id" ref="uom.product_uom_hour"/>
<field name="service_policy">delivered_timesheet</field>
<field name="service_tracking">task_global_project</field>
<field name="project_id" ref="project.project_home_construction"/>
</record>
<record id="product_product_interior_designing" model="product.product">
<field name="name">Interior Designing</field>
<field name="categ_id" ref="product.product_category_construction"/>
<field name="list_price">2500.00</field>
<field name="standard_price">2000.00</field>
<field name="type">service</field>
<field name="uom_id" ref="uom.product_uom_hour"/>
<field name="service_policy">delivered_milestones</field>
<field name="service_tracking">task_global_project</field>
<field name="project_id" ref="project.project_home_construction"/>
</record>
<record id="product_product_roofing" model="product.product">
<field name="name">Roofing</field>
<field name="categ_id" ref="product.product_category_construction"/>
<field name="list_price">4000.00</field>
<field name="standard_price">3500.00</field>
<field name="type">service</field>
<field name="uom_id" ref="uom.product_uom_hour"/>
<field name="service_policy">delivered_manual</field>
<field name="service_tracking">task_global_project</field>
<field name="project_id" ref="project.project_home_construction"/>
</record>
<record id="product_service_deliver_manual" model="product.product">
<field name="name">Furniture Delivery (Manual)</field>
<field name="categ_id" ref="product.product_category_3"/>
<field name="categ_id" ref="product.product_category_services"/>
<field name="list_price">200</field>
<field name="standard_price">150.00</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="service_policy">delivered_manual</field>
<field name="service_tracking">task_in_project</field>
<field name="project_template_id" ref="so_template_project"/>
<field name="project_template_id" ref="sale_project.so_template_project"/>
</record>
<!-- Sales order 'sale_order_1' (AGR) -->
@ -224,10 +334,10 @@
<field name="product_uom_qty">4</field>
</record>
<!-- Sale Order 'sale_order_3' (DECO) -->
<!-- Sale Order 'sale_order_3' (ACME) -->
<record id="sale_order_3" model="sale.order">
<field name="partner_id" ref="base.res_partner_2"/>
<field name="client_order_ref">DECO</field>
<field name="client_order_ref">ACME</field>
<field name="user_id" ref="base.user_admin"/>
<field name="tag_ids" eval="[Command.link(ref('sales_team.categ_oppor7'))]"/>
</record>
@ -257,6 +367,38 @@
<field name="product_uom_qty">14</field>
</record>
<record id="sale_order_4_construction" model="sale.order">
<field name="partner_id" ref="base.res_partner_2"/>
<field name="user_id" ref="base.user_admin"/>
<field name="tag_ids" eval="[Command.link(ref('sales_team.categ_oppor6'))]"/>
</record>
<record id="sale_line_construction_41" model="sale.order.line">
<field name="order_id" ref="sale_order_4_construction"/>
<field name="sequence" eval="1"/>
<field name="product_id" ref="product_product_elevator_installation"/>
<field name="product_uom_qty">20</field>
</record>
<record id="sale_line_construction_42" model="sale.order.line">
<field name="order_id" ref="sale_order_4_construction"/>
<field name="product_id" ref="product_product_solar_installation"/>
<field name="sequence" eval="2"/>
<field name="discount">18</field>
<field name="product_uom_qty">10</field>
</record>
<record id="sale_line_construction_43" model="sale.order.line">
<field name="order_id" ref="sale_order_4_construction"/>
<field name="sequence" eval="1"/>
<field name="product_id" ref="product_product_interior_designing"/>
<field name="product_uom_qty">15</field>
</record>
<record id="sale_line_construction_44" model="sale.order.line">
<field name="order_id" ref="sale_order_4_construction"/>
<field name="product_id" ref="product_product_roofing"/>
<field name="sequence" eval="2"/>
<field name="discount">10</field>
<field name="product_uom_qty">20</field>
</record>
<!-- Activity of sales order -->
<record id="sale_timesheet_activity_1" model="mail.activity">
<field name="res_id" ref="sale_timesheet.sale_order_2"/>
@ -272,6 +414,43 @@
<function model="sale.order" name="action_confirm" eval="[[ref('sale_order_1')]]"/>
<function model="sale.order" name="action_confirm" eval="[[ref('sale_order_2')]]"/>
<function model="sale.order" name="action_confirm" eval="[[ref('sale_order_3')]]"/>
<function model="sale.order" name="action_confirm" eval="[[ref('sale_order_4_construction')]]"/>
<!-- Function to set task stage and users -->
<function model="project.task" name="write">
<value model="project.task" search="[('sale_line_id', '=', ref('sale_timesheet.sale_line_construction_41'))]"/>
<value eval="{
'milestone_id': ref('project.project_home_construction_milestone_3'),
'stage_id': ref('project.project_stage_1'),
'user_ids':[Command.link(ref('base.user_admin'))],
'state': '03_approved',
}"/>
</function>
<function model="project.task" name="write">
<value model="project.task" search="[('sale_line_id', '=', ref('sale_timesheet.sale_line_construction_42'))]"/>
<value eval="{
'milestone_id': ref('project.project_home_construction_milestone_3'),
'stage_id': ref('project.project_stage_1'),
'user_ids': [Command.link(ref('base.user_demo'))],
}"/>
</function>
<function model="project.task" name="write">
<value model="project.task" search="[('sale_line_id', '=', ref('sale_timesheet.sale_line_construction_43'))]"/>
<value eval="{
'milestone_id': ref('project.project_home_construction_milestone_2'),
'stage_id': ref('project.project_stage_1'),
'user_ids':[Command.link(ref('base.user_admin'))],
'state': '03_approved',
}"/>
</function>
<function model="project.task" name="write">
<value model="project.task" search="[('sale_line_id', '=', ref('sale_timesheet.sale_line_construction_44'))]"/>
<value eval="{
'stage_id': ref('project.project_stage_1'),
'user_ids': [Command.link(ref('base.user_demo'))],
'state': '03_approved',
}"/>
</function>
<!-- Change order dates -->
<record id="sale_order_1" model="sale.order">
@ -348,7 +527,7 @@
}"/>
</function>
<!-- Assign DECO & to demo, clear description and set dates -->
<!-- Assign ACME to demo, clear description and set dates -->
<function model="project.project" name="write">
<value model="project.project" search="[('sale_line_id', '=', ref('sale_line_32'))]"/>
<value eval="{
@ -969,6 +1148,44 @@
<field name="so_line" ref="sale_line_33"/>
</record>
<!-- Timesheets on sale_order_4_construction -->
<record id="sale_line_41_task_timesheet" model="account.analytic.line">
<field name="name">Elevator Installation</field>
<field name="employee_id" ref="sale_timesheet.employee_jsm"/>
<field name="date" eval="(DateTime.now() + relativedelta(weekday=0,weeks=-2)).strftime('%Y-%m-%d')"/>
<field name="unit_amount">5.00</field>
<field name="project_id" ref="project.project_home_construction"/>
<field name="task_id" search="[('sale_line_id', '=', ref('sale_line_construction_41'))]"/>
<field name="so_line" ref="sale_line_construction_41"/>
</record>
<record id="sale_line_42_task_timesheet" model="account.analytic.line">
<field name="name">Solar Panel Installation</field>
<field name="employee_id" ref="sale_timesheet.employee_jsm"/>
<field name="date" eval="(DateTime.now() + relativedelta(weekday=0,weeks=-3)).strftime('%Y-%m-%d')"/>
<field name="unit_amount">4.00</field>
<field name="task_id" search="[('sale_line_id', '=', ref('sale_line_construction_42'))]"/>
<field name="project_id" ref="project.project_home_construction"/>
<field name="so_line" ref="sale_line_construction_42"/>
</record>
<record id="sale_line_43_task_timesheet" model="account.analytic.line">
<field name="name">House Interior Designing</field>
<field name="employee_id" ref="sale_timesheet.employee_jjo"/>
<field name="date" eval="(DateTime.now() + relativedelta(weekday=0,weeks=-4)).strftime('%Y-%m-%d')"/>
<field name="unit_amount">8.00</field>
<field name="task_id" search="[('sale_line_id', '=', ref('sale_line_construction_43'))]"/>
<field name="project_id" ref="project.project_home_construction"/>
<field name="so_line" ref="sale_line_construction_43"/>
</record>
<record id="sale_line_44_task_timesheet" model="account.analytic.line">
<field name="name">House Renovation</field>
<field name="employee_id" ref="sale_timesheet.employee_awa"/>
<field name="date" eval="(DateTime.now() + relativedelta(weekday=0,weeks=-5)).strftime('%Y-%m-%d')"/>
<field name="unit_amount">10.00</field>
<field name="task_id" search="[('sale_line_id', '=', ref('sale_line_construction_44'))]"/>
<field name="project_id" ref="project.project_home_construction"/>
<field name="so_line" ref="sale_line_construction_44"/>
</record>
<!-- Non billable Timesheets in project_support -->
<record id="project_task_internal_timesheet_1" model="account.analytic.line">
<field name="name">Technical training</field>
@ -1088,7 +1305,7 @@
<field name="name">Furniture Delivery</field>
<field name="project_id" search="[('sale_order_id', '=', ref('sale_timesheet.sale_order_1'))]"/>
<field name="stage_id" ref="project.project_stage_1"/>
<field name="kanban_state">done</field>
<field name="state">1_done</field>
<field name="sale_line_id" ref="sale_timesheet.sale_line_13"/>
<field name="sale_order_id" ref="sale_timesheet.sale_order_1"/>
<field name="partner_id" ref="base.res_partner_2"/>
@ -1103,7 +1320,7 @@
<field name="sale_order_id" ref="sale_timesheet.sale_order_2"/>
<field name="project_id" search="[('sale_order_id', '=', ref('sale_timesheet.sale_order_2'))]"/>
<field name="stage_id" ref="project.project_stage_1"/>
<field name="kanban_state">done</field>
<field name="state">1_done</field>
<field name="partner_id" ref="base.res_partner_4"/>
<field name="user_ids" eval="[Command.link(ref('base.user_admin'))]"/>
</record>
@ -1141,7 +1358,8 @@
<field name="name">Carpet fitting</field>
<field name="project_id" search="[('sale_order_id', '=', ref('sale_timesheet.sale_order_2'))]"/>
<field name="stage_id" ref="project.project_stage_0"/>
<field name="kanban_state">blocked</field>
<field name="state">02_changes_requested</field>
<field name="create_date" eval="DateTime.now() - relativedelta(days=4)"/>
<field name="sale_line_id" ref="sale_timesheet.sale_line_22"/>
<field name="sale_order_id" ref="sale_timesheet.sale_order_2"/>
<field name="partner_id" ref="base.res_partner_4"/>
@ -1174,6 +1392,7 @@
<field name="stage_id" ref="project.project_stage_2"/>
<field name="sale_line_id" ref="sale_timesheet.sale_line_22"/>
<field name="sale_order_id" ref="sale_timesheet.sale_order_2"/>
<field name="create_date" eval="DateTime.now() - relativedelta(days=4)"/>
<field name="partner_id" ref="base.res_partner_4"/>
<field name="user_ids" eval="[Command.link(ref('base.user_demo'))]"/>
</record>
@ -1217,7 +1436,7 @@
<field name="name">Ceiling fan</field>
<field name="project_id" search="[('sale_order_id', '=', ref('sale_timesheet.sale_order_2'))]"/>
<field name="stage_id" ref="project.project_stage_0"/>
<field name="kanban_state">blocked</field>
<field name="state">02_changes_requested</field>
<field name="sale_line_id" ref="sale_timesheet.sale_line_22"/>
<field name="sale_order_id" ref="sale_timesheet.sale_order_2"/>
<field name="partner_id" ref="base.res_partner_4"/>
@ -1228,7 +1447,7 @@
<field name="name">Plumbing</field>
<field name="project_id" search="[('sale_order_id', '=', ref('sale_timesheet.sale_order_2'))]"/>
<field name="stage_id" ref="project.project_stage_0"/>
<field name="kanban_state">blocked</field>
<field name="state">02_changes_requested</field>
<field name="sale_line_id" ref="sale_timesheet.sale_line_22"/>
<field name="sale_order_id" ref="sale_timesheet.sale_order_2"/>
<field name="partner_id" ref="base.res_partner_4"/>
@ -2578,5 +2797,16 @@
<field name="progress" eval="30"/>
<field name="status">at_risk</field>
</record>
<!-- Change task creation notifications date -->
<function model="mail.message" name="write">
<value model="mail.message"
eval="obj().env['mail.message'].search([
('subtype_id', '=', ref('project.mt_task_new')),
('res_id', 'in', [ref('sale_timesheet.project_dpc_task_4'), ref('sale_timesheet.project_dpc_task_5')]),
]).ids"
/>
<value eval="{'date': DateTime.now() - relativedelta(days=4)}"/>
</function>
</data>
</odoo>