diff options
| author | stephanchrst <stephanchrst@gmail.com> | 2022-05-10 21:51:50 +0700 |
|---|---|---|
| committer | stephanchrst <stephanchrst@gmail.com> | 2022-05-10 21:51:50 +0700 |
| commit | 3751379f1e9a4c215fb6eb898b4ccc67659b9ace (patch) | |
| tree | a44932296ef4a9b71d5f010906253d8c53727726 /addons/mrp/data | |
| parent | 0a15094050bfde69a06d6eff798e9a8ddf2b8c21 (diff) | |
initial commit 2
Diffstat (limited to 'addons/mrp/data')
| -rw-r--r-- | addons/mrp/data/digest_data.xml | 17 | ||||
| -rw-r--r-- | addons/mrp/data/mrp_data.xml | 76 | ||||
| -rw-r--r-- | addons/mrp/data/mrp_demo.xml | 769 |
3 files changed, 862 insertions, 0 deletions
diff --git a/addons/mrp/data/digest_data.xml b/addons/mrp/data/digest_data.xml new file mode 100644 index 00000000..d1ba37a3 --- /dev/null +++ b/addons/mrp/data/digest_data.xml @@ -0,0 +1,17 @@ +<?xml version='1.0' encoding='utf-8'?> +<odoo> + <data> + <record id="digest_tip_mrp_0" model="digest.tip"> + <field name="name">Tip: Use tablets in the shop to control manufacturing</field> + <field name="sequence">600</field> + <field name="group_id" ref="mrp.group_mrp_user" /> + <field name="tip_description" type="html"> +<div> + <p class="tip_title">Tip: Use tablets in the shop to control manufacturing</p> + <p class="tip_content">With the Odoo work center control panel, your worker can start work orders in the shop and follow instructions of the worksheet. Quality tests are perfectly integrated into the process. Workers can trigger feedback loops, maintenance alerts, scrap products, etc.</p> + <img src="/mrp/static/src/img/mrp-tablet.png" style="margin-top: 20px; max-width: 580px" width="100%" /> +</div> + </field> + </record> + </data> +</odoo> diff --git a/addons/mrp/data/mrp_data.xml b/addons/mrp/data/mrp_data.xml new file mode 100644 index 00000000..c41f0576 --- /dev/null +++ b/addons/mrp/data/mrp_data.xml @@ -0,0 +1,76 @@ +<?xml version="1.0" encoding="utf-8"?> +<odoo> + <data noupdate="1"> + + <function model="res.company" name="create_missing_unbuild_sequences" /> + <!-- + Stock rules and routes + --> + + <record id="route_warehouse0_manufacture" model='stock.location.route'> + <field name="name">Manufacture</field> + <field name="company_id"></field> + <field name="sequence">5</field> + </record> + + <!-- Enable the manufacturing in warehouse0 --> + <record id='stock.warehouse0' model='stock.warehouse'> + <field name='manufacture_to_resupply' eval='True'/> + </record> + + <!-- Category for Blocking Reasons Workcenter --> + <record id="category_availability" model="mrp.workcenter.productivity.loss.type"> + <field name="loss_type">availability</field> + </record> + <record id="category_performance" model="mrp.workcenter.productivity.loss.type"> + <field name="loss_type">performance</field> + </record> + <record id="category_quality" model="mrp.workcenter.productivity.loss.type"> + <field name="loss_type">quality</field> + </record> + <record id="category_productive" model="mrp.workcenter.productivity.loss.type"> + <field name="loss_type">productive</field> + </record> + + <!-- Reasons To Block Workcenter --> + <record id="block_reason0" model="mrp.workcenter.productivity.loss"> + <field name="name">Material Availability</field> + <field name="loss_id" ref="mrp.category_availability"></field> + <field name="sequence">1</field> + </record> + <record id="block_reason1" model="mrp.workcenter.productivity.loss"> + <field name="name">Equipment Failure</field> + <field name="loss_id" ref="mrp.category_availability"></field> + <field name="sequence">2</field> + </record> + <record id="block_reason2" model="mrp.workcenter.productivity.loss"> + <field name="name">Setup and Adjustments</field> + <field name="loss_id" ref="mrp.category_availability"></field> + <field name="sequence">3</field> + </record> + <record id="block_reason4" model="mrp.workcenter.productivity.loss"> + <field name="name">Reduced Speed</field> + <field name="loss_id" ref="mrp.category_performance"></field> + <field name="manual" eval="False"/> + <field name="sequence">5</field> + </record> + <record id="block_reason5" model="mrp.workcenter.productivity.loss"> + <field name="name">Process Defect</field> + <field name="loss_id" ref="mrp.category_quality"></field> + <field name="sequence">6</field> + </record> + <record id="block_reason6" model="mrp.workcenter.productivity.loss"> + <field name="name">Reduced Yield</field> + <field name="loss_id" ref="mrp.category_quality"></field> + <field name="sequence">7</field> + </record> + <record id="block_reason7" model="mrp.workcenter.productivity.loss"> + <field name="name">Fully Productive Time</field> + <field name="loss_id" ref="mrp.category_productive"></field> + <field name="manual" eval="False"/> + <field name="sequence">0</field> + </record> + + </data> + +</odoo> diff --git a/addons/mrp/data/mrp_demo.xml b/addons/mrp/data/mrp_demo.xml new file mode 100644 index 00000000..7b9cd2f7 --- /dev/null +++ b/addons/mrp/data/mrp_demo.xml @@ -0,0 +1,769 @@ +<?xml version="1.0" encoding="utf-8"?> +<odoo> + <data noupdate="1"> + + <record id="base.user_demo" model="res.users"> + <field eval="[(4, ref('group_mrp_user'))]" name="groups_id"/> + </record> + + <!-- Resource: res.company --> + <record id="stock.res_company_1" model="res.company"> + <field eval="1.0" name="manufacturing_lead"/> + </record> + + <!-- Resource: mrp.workcenter --> + + <record id="mrp_workcenter_3" model="mrp.workcenter"> + <field name="name">Assembly Line 1</field> + <field name="resource_calendar_id" ref="resource.resource_calendar_std"/> + </record> + + <record id="mrp_workcenter_1" model="mrp.workcenter"> + <field name="name">Drill Station 1</field> + <field name="resource_calendar_id" ref="resource.resource_calendar_std"/> + </record> + + <record id="mrp_workcenter_2" model="mrp.workcenter"> + <field name="name">Assembly Line 2</field> + <field name="resource_calendar_id" ref="resource.resource_calendar_std"/> + </record> + + <!-- Resource: mrp.bom --> + + <record id="product.product_product_3_product_template" model="product.template"> + <field name="route_ids" eval="[(6, 0, [ref('stock.route_warehouse0_mto'), ref('mrp.route_warehouse0_manufacture')])]"/> + </record> + <record id="mrp_bom_manufacture" model="mrp.bom"> + <field name="product_tmpl_id" ref="product.product_product_3_product_template"/> + <field name="product_uom_id" ref="uom.product_uom_unit"/> + <field name="sequence">1</field> + </record> + <record id="mrp_routing_workcenter_0" model="mrp.routing.workcenter"> + <field name="bom_id" ref="mrp_bom_manufacture"/> + <field name="workcenter_id" ref="mrp_workcenter_3"/> + <field name="name">Manual Assembly</field> + <field name="time_cycle">60</field> + <field name="sequence">5</field> + <field name="worksheet_type">pdf</field> + <field name="worksheet" type="base64" file="mrp/static/img/assebly-worksheet.pdf"/> + </record> + + <record id="mrp_bom_manufacture_line_1" model="mrp.bom.line"> + <field name="product_id" ref="product.product_product_12"/> + <field name="product_qty">1</field> + <field name="product_uom_id" ref="uom.product_uom_unit"/> + <field name="sequence">5</field> + <field name="bom_id" ref="mrp_bom_manufacture"/> + </record> + + <record id="mrp_bom_manufacture_line_2" model="mrp.bom.line"> + <field name="product_id" ref="product.product_product_13"/> + <field name="product_qty">1</field> + <field name="product_uom_id" ref="uom.product_uom_unit"/> + <field name="sequence">5</field> + <field name="bom_id" ref="mrp_bom_manufacture"/> + </record> + + <record id="mrp_bom_manufacture_line_3" model="mrp.bom.line"> + <field name="product_id" ref="product.product_product_16"/> + <field name="product_qty">1</field> + <field name="product_uom_id" ref="uom.product_uom_unit"/> + <field name="sequence">5</field> + <field name="bom_id" ref="mrp_bom_manufacture"/> + </record> + + <record id="mrp_production_1" model="mrp.production"> + <field name="product_id" ref="product.product_product_3"/> + <field name="product_uom_id" ref="uom.product_uom_unit"/> + <field name="product_qty">3</field> + <field name="bom_id" ref="mrp_bom_manufacture"/> + </record> + + <function model="stock.move" name="create"> + <value model="stock.move" eval=" + obj().env.ref('mrp.mrp_production_1')._get_moves_raw_values() + + obj().env.ref('mrp.mrp_production_1')._get_moves_finished_values()"/> + </function> + + <!-- Table --> + + <record id="product_product_computer_desk" model="product.product"> + <field name="name">Table</field> + <field name="categ_id" ref="product.product_category_5"/> + <field name="standard_price">290</field> + <field name="list_price">520</field> + <field name="type">product</field> + <field name="weight">0.01</field> + <field name="uom_id" ref="uom.product_uom_unit"/> + <field name="uom_po_id" ref="uom.product_uom_unit"/> + <field name="description">Solid wood table.</field> + <field name="default_code">FURN_9666</field> + <field name="tracking">serial</field> + <field name="image_1920" type="base64" file="mrp/static/img/table.png"/> + </record> + <record id="stock_warehouse_orderpoint_table" model="stock.warehouse.orderpoint"> + <field name="product_max_qty">0.0</field> + <field name="product_min_qty">0.0</field> + <field name="product_uom" ref="uom.product_uom_unit"/> + <field name="company_id" ref="base.main_company"/> + <field name="warehouse_id" ref="stock.warehouse0"/> + <field name="location_id" model="stock.location" eval="obj().env.ref('stock.warehouse0').lot_stock_id.id"/> + <field name="product_id" ref="product_product_computer_desk"/> + </record> + + <record id="product_product_computer_desk_head" model="product.product"> + <field name="name">Table Top</field> + <field name="categ_id" ref="product.product_category_5"/> + <field name="standard_price">240</field> + <field name="list_price">380</field> + <field name="type">product</field> + <field name="weight">0.01</field> + <field name="uom_id" ref="uom.product_uom_unit"/> + <field name="uom_po_id" ref="uom.product_uom_unit"/> + <field name="description">Solid wood is a durable natural material.</field> + <field name="default_code">FURN_8522</field> + <field name="tracking">serial</field> + <field name="image_1920" type="base64" file="mrp/static/img/table_top.png"/> + </record> + <record id="product_product_computer_desk_leg" model="product.product"> + <field name="name">Table Leg</field> + <field name="categ_id" ref="product.product_category_5"/> + <field name="standard_price">10</field> + <field name="list_price">50</field> + <field name="type">product</field> + <field name="weight">0.01</field> + <field name="uom_id" ref="uom.product_uom_unit"/> + <field name="uom_po_id" ref="uom.product_uom_unit"/> + <field name="description">18″ x 2½″ Square Leg</field> + <field name="default_code">FURN_2333</field> + <field name="tracking">lot</field> + <field name="image_1920" type="base64" file="mrp/static/img/table_leg.png"/> + </record> + <record id="product_product_computer_desk_bolt" model="product.product"> + <field name="name">Bolt</field> + <field name="categ_id" ref="product.product_category_consumable"/> + <field name="standard_price">0.5</field> + <field name="list_price">0.5</field> + <field name="type">consu</field> + <field name="weight">0.01</field> + <field name="uom_id" ref="uom.product_uom_unit"/> + <field name="uom_po_id" ref="uom.product_uom_unit"/> + <field name="description">Stainless steel screw full (dia - 5mm, Length - 10mm)</field> + <field name="default_code">CONS_89957</field> + <field name="image_1920" type="base64" file="mrp/static/img/product_product_computer_desk_bolt.png"/> + </record> + <record id="product_product_computer_desk_screw" model="product.product"> + <field name="name">Screw</field> + <field name="categ_id" ref="product.product_category_consumable"/> + <field name="standard_price">0.1</field> + <field name="list_price">0.2</field> + <field name="type">consu</field> + <field name="weight">0.01</field> + <field name="uom_id" ref="uom.product_uom_unit"/> + <field name="uom_po_id" ref="uom.product_uom_unit"/> + <field name="description">Stainless steel screw</field> + <field name="default_code">CONS_25630</field> + <field name="image_1920" type="base64" file="mrp/static/img/product_product_computer_desk_screw.png"/> + </record> + + <record id="product_product_wood_ply" model="product.product"> + <field name="name">Ply Layer</field> + <field name="categ_id" ref="product.product_category_5"/> + <field name="standard_price">10</field> + <field name="list_price">10</field> + <field name="type">product</field> + <field name="weight">0.01</field> + <field name="uom_id" ref="uom.product_uom_unit"/> + <field name="uom_po_id" ref="uom.product_uom_unit"/> + <field name="description">Layers that are stick together to assemble wood panels.</field> + <field name="default_code">FURN_7111</field> + <field name="image_1920" type="base64" file="mrp/static/img/product_product_wood_ply.png"/> + </record> + <record id="product_product_wood_wear" model="product.product"> + <field name="name">Wear Layer</field> + <field name="categ_id" ref="product.product_category_5"/> + <field name="standard_price">10</field> + <field name="list_price">10</field> + <field name="type">product</field> + <field name="weight">0.01</field> + <field name="uom_id" ref="uom.product_uom_unit"/> + <field name="uom_po_id" ref="uom.product_uom_unit"/> + <field name="description">Top layer of a wood panel.</field> + <field name="default_code">FURN_8111</field> + <field name="image_1920" type="base64" file="mrp/static/img/product_product_wood_wear.png"/> + </record> + <record id="product_product_ply_veneer" model="product.product"> + <field name="name">Ply Veneer</field> + <field name="categ_id" ref="product.product_category_5"/> + <field name="standard_price">10</field> + <field name="list_price">10</field> + <field name="type">product</field> + <field name="weight">0.01</field> + <field name="uom_id" ref="uom.product_uom_unit"/> + <field name="uom_po_id" ref="uom.product_uom_unit"/> + <field name="default_code">FURN_9111</field> + <field name="image_1920" type="base64" file="mrp/static/img/product_product_ply_veneer.png"/> + </record> + + <record id="product_product_wood_panel" model="product.product"> + <field name="name">Wood Panel</field> + <field name="categ_id" ref="product.product_category_5"/> + <field name="standard_price">80</field> + <field name="list_price">100</field> + <field name="type">product</field> + <field name="weight">0.01</field> + <field name="uom_id" ref="uom.product_uom_unit"/> + <field name="uom_po_id" ref="uom.product_uom_unit"/> + <field name="default_code">FURN_7023</field> + <field name="image_1920" type="base64" file="mrp/static/img/product_product_wood_panel.png"/> + </record> + <record id="product_product_plastic_laminate" model="product.product"> + <field name="name">Plastic Laminate</field> + <field name="categ_id" ref="product.product_category_5"/> + <field name="standard_price">3000</field> + <field name="list_price">1000</field> + <field name="type">product</field> + <field name="weight">0.01</field> + <field name="uom_id" ref="uom.product_uom_unit"/> + <field name="uom_po_id" ref="uom.product_uom_unit"/> + <field name="default_code">FURN_8621</field> + <field name="image_1920" type="base64" file="mrp/static/img/product_product_plastic_laminate.png"/> + </record> + + <record id="product_product_computer_desk_product_template" model="product.template"> + <field name="route_ids" eval="[(6, 0, [ref('stock.route_warehouse0_mto'), ref('mrp.route_warehouse0_manufacture')])]"/> + </record> + + <record id="mrp_bom_desk" model="mrp.bom"> + <field name="product_tmpl_id" ref="product_product_computer_desk_product_template"/> + <field name="product_uom_id" ref="uom.product_uom_unit"/> + <field name="sequence">3</field> + <field name="consumption">flexible</field> + </record> + <record id="mrp_routing_workcenter_5" model="mrp.routing.workcenter"> + <field name="bom_id" ref="mrp_bom_desk"/> + <field name="workcenter_id" ref="mrp_workcenter_3"/> + <field name="time_cycle">120</field> + <field name="sequence">10</field> + <field name="name">Assembly</field> + <field name="worksheet_type">pdf</field> + <field name="worksheet" type="base64" file="mrp/static/img/cutting-worksheet.pdf"/> + </record> + + <record id="mrp_bom_desk_line_1" model="mrp.bom.line"> + <field name="product_id" ref="product_product_computer_desk_head"/> + <field name="product_qty">1</field> + <field name="product_uom_id" ref="uom.product_uom_unit"/> + <field name="sequence">1</field> + <field name="bom_id" ref="mrp_bom_desk"/> + <field name="operation_id" ref="mrp.mrp_routing_workcenter_5"/> + </record> + + <record id="mrp_bom_desk_line_2" model="mrp.bom.line"> + <field name="product_id" ref="product_product_computer_desk_leg"/> + <field name="product_qty">4</field> + <field name="product_uom_id" ref="uom.product_uom_unit"/> + <field name="sequence">2</field> + <field name="bom_id" ref="mrp_bom_desk"/> + <field name="operation_id" ref="mrp.mrp_routing_workcenter_5"/> + </record> + + <record id="mrp_bom_desk_line_3" model="mrp.bom.line"> + <field name="product_id" ref="product_product_computer_desk_bolt"/> + <field name="product_qty">4</field> + <field name="product_uom_id" ref="uom.product_uom_unit"/> + <field name="sequence">3</field> + <field name="bom_id" ref="mrp_bom_desk"/> + <field name="operation_id" ref="mrp.mrp_routing_workcenter_5"/> + </record> + + <record id="mrp_bom_desk_line_4" model="mrp.bom.line"> + <field name="product_id" ref="product_product_computer_desk_screw"/> + <field name="product_qty">10</field> + <field name="product_uom_id" ref="uom.product_uom_unit"/> + <field name="sequence">4</field> + <field name="bom_id" ref="mrp_bom_desk"/> + <field name="operation_id" ref="mrp.mrp_routing_workcenter_5"/> + </record> + + <!-- Table MO --> + <record id="mrp_production_3" model="mrp.production"> + <field name="product_id" ref="product_product_computer_desk"/> + <field name="product_uom_id" ref="uom.product_uom_unit"/> + <field name="product_qty">1</field> + <field name="date_planned_start" eval="(DateTime.today() + relativedelta(days=1)).strftime('%Y-%m-%d %H:%M')"/> + <field name="bom_id" ref="mrp_bom_desk"/> + </record> + + <function model="stock.move" name="create"> + <value model="stock.move" eval=" + obj().env.ref('mrp.mrp_production_3')._get_moves_raw_values() + + obj().env.ref('mrp.mrp_production_3')._get_moves_finished_values()"/> + </function> + + <record id="mrp_bom_table_top" model="mrp.bom"> + <field name="product_tmpl_id" ref="product_product_computer_desk_head_product_template"/> + <field name="product_uom_id" ref="uom.product_uom_unit"/> + <field name="sequence">1</field> + </record> + <record id="mrp_routing_workcenter_0" model="mrp.routing.workcenter"> + <field name="bom_id" ref="mrp_bom_table_top"/> + <field name="workcenter_id" ref="mrp_workcenter_3"/> + <field name="name">Manual Assembly</field> + <field name="time_cycle">60</field> + <field name="sequence">5</field> + <field name="worksheet_type">pdf</field> + <field name="worksheet" type="base64" file="mrp/static/img/assebly-worksheet.pdf"/> + </record> + + <record id="mrp_bom_line_wood_panel" model="mrp.bom.line"> + <field name="product_id" ref="product_product_wood_panel"/> + <field name="product_qty">2</field> + <field name="product_uom_id" ref="uom.product_uom_unit"/> + <field name="sequence">1</field> + <field name="bom_id" ref="mrp_bom_table_top"/> + </record> + <record id="mrp_bom_line_plastic_laminate" model="mrp.bom.line"> + <field name="product_id" ref="product_product_plastic_laminate"/> + <field name="product_qty">4</field> + <field name="product_uom_id" ref="uom.product_uom_unit"/> + <field name="sequence">2</field> + <field name="bom_id" ref="mrp_bom_table_top"/> + </record> + + <record id="mrp_bom_plastic_laminate" model="mrp.bom"> + <field name="product_tmpl_id" ref="product_product_plastic_laminate_product_template"/> + <field name="product_uom_id" ref="uom.product_uom_unit"/> + <field name="sequence">1</field> + </record> + <record id="mrp_routing_workcenter_1" model="mrp.routing.workcenter"> + <field name="bom_id" ref="mrp_bom_plastic_laminate"/> + <field name="workcenter_id" ref="mrp_workcenter_3"/> + <field name="name">Long time assembly</field> + <field name="time_cycle">180</field> + <field name="sequence">15</field> + <field name="worksheet_type">pdf</field> + <field name="worksheet" type="base64" file="mrp/static/img/cutting-worksheet.pdf"/> + </record> + + <record id="mrp_routing_workcenter_3" model="mrp.routing.workcenter"> + <field name="bom_id" ref="mrp_bom_plastic_laminate"/> + <field name="workcenter_id" ref="mrp_workcenter_3"/> + <field name="name">Testing</field> + <field name="time_cycle">60</field> + <field name="sequence">10</field> + <field name="worksheet_type">pdf</field> + <field name="worksheet" type="base64" file="mrp/static/img/assebly-worksheet.pdf"/> + </record> + + <record id="mrp_routing_workcenter_4" model="mrp.routing.workcenter"> + <field name="bom_id" ref="mrp_bom_plastic_laminate"/> + <field name="workcenter_id" ref="mrp_workcenter_1"/> + <field name="name">Packing</field> + <field name="time_cycle">30</field> + <field name="sequence">5</field> + <field name="worksheet_type">pdf</field> + <field name="worksheet" type="base64" file="mrp/static/img/cutting-worksheet.pdf"/> + </record> + <record id="mrp_bom_line_plastic_laminate" model="mrp.bom.line"> + <field name="product_id" ref="product_product_ply_veneer"/> + <field name="product_qty">1</field> + <field name="product_uom_id" ref="uom.product_uom_unit"/> + <field name="sequence">1</field> + <field name="bom_id" ref="mrp_bom_plastic_laminate"/> + </record> + + <record id="mrp_bom_wood_panel" model="mrp.bom"> + <field name="product_tmpl_id" ref="product_product_wood_panel_product_template"/> + <field name="product_uom_id" ref="uom.product_uom_unit"/> + <field name="sequence">1</field> + </record> + <record id="mrp_bom_line_wood_panel_ply" model="mrp.bom.line"> + <field name="product_id" ref="product_product_wood_ply"/> + <field name="product_qty">3</field> + <field name="product_uom_id" ref="uom.product_uom_unit"/> + <field name="sequence">1</field> + <field name="bom_id" ref="mrp_bom_wood_panel"/> + </record> + <record id="mrp_bom_line_wood_panel_wear" model="mrp.bom.line"> + <field name="product_id" ref="product_product_wood_wear"/> + <field name="product_qty">1</field> + <field name="product_uom_id" ref="uom.product_uom_unit"/> + <field name="sequence">1</field> + <field name="bom_id" ref="mrp_bom_wood_panel"/> + </record> + + <!-- Table Top MO --> + <record id="mrp_production_4" model="mrp.production"> + <field name="product_id" ref="product_product_computer_desk_head"/> + <field name="product_uom_id" ref="uom.product_uom_unit"/> + <field name="product_qty">2</field> + <field name="location_src_id" ref="stock.stock_location_stock"/> + <field name="location_dest_id" ref="stock.stock_location_stock"/> + <field name="bom_id" ref="mrp_bom_table_top"/> + </record> + + <!-- Generate Table & Table Top MO's moves --> + <function model="stock.move" name="create"> + <value model="stock.move" eval=" + obj().env.ref('mrp.mrp_production_4')._get_moves_raw_values() + + obj().env.ref('mrp.mrp_production_4')._get_moves_finished_values()"/> + </function> + + <!-- Table Kit --> + + <record id="product_product_table_kit" model="product.product"> + <field name="name">Table Kit</field> + <field name="categ_id" ref="product.product_category_5"/> + <field name="standard_price">600.0</field> + <field name="list_price">147.0</field> + <field name="type">consu</field> + <field name="weight">0.01</field> + <field name="uom_id" ref="uom.product_uom_unit"/> + <field name="uom_po_id" ref="uom.product_uom_unit"/> + <field name="description">Table kit</field> + <field name="default_code">FURN_78236</field> + <field name="image_1920" type="base64" file="mrp/static/img/product_product_table_kit.png"/> + </record> + + <record id="product_product_table_kit_product_template" model="product.template"> + <field name="route_ids" eval="[(6, 0, [ref('mrp.route_warehouse0_manufacture')])]"/> + </record> + + <record id="mrp_bom_kit" model="mrp.bom"> + <field name="product_tmpl_id" ref="product_product_table_kit_product_template"/> + <field name="product_uom_id" ref="uom.product_uom_unit"/> + <field name="sequence">2</field> + <field name="type">phantom</field> + </record> + + <record id="mrp_bom_kit_line_1" model="mrp.bom.line"> + <field name="product_id" ref="product_product_wood_panel"/> + <field name="product_qty">1</field> + <field name="product_uom_id" ref="uom.product_uom_unit"/> + <field name="bom_id" ref="mrp_bom_kit"/> + </record> + + <record id="mrp_bom_kit_line_2" model="mrp.bom.line"> + <field name="product_id" ref="product_product_computer_desk_bolt"/> + <field name="product_qty">4</field> + <field name="product_uom_id" ref="uom.product_uom_unit"/> + <field name="bom_id" ref="mrp_bom_kit"/> + </record> + + + <!-- Manufacturing Order Demo With Lots--> + + <record id="product_product_drawer_drawer" model="product.product"> + <field name="name">Drawer Black</field> + <field name="categ_id" ref="product.product_category_5"/> + <field name="tracking">lot</field> + <field name="standard_price">2000.0</field> + <field name="list_price">2250.0</field> + <field name="type">product</field> + <field name="weight">0.01</field> + <field name="uom_id" ref="uom.product_uom_unit"/> + <field name="uom_po_id" ref="uom.product_uom_unit"/> + <field name="description">Drawer on casters for great usability.</field> + <field name="default_code">FURN_2100</field> + <field name="barcode">601647855646</field> + <field name="image_1920" type="base64" file="mrp/static/img/product_product_drawer_black.png"/> + </record> + + <record id="product_product_drawer_case" model="product.product"> + <field name="name">Drawer Case Black</field> + <field name="categ_id" ref="product.product_category_5"/> + <field name="tracking">lot</field> + <field name="standard_price">800</field> + <field name="list_price">850</field> + <field name="type">product</field> + <field name="weight">0.01</field> + <field name="uom_id" ref="uom.product_uom_unit"/> + <field name="uom_po_id" ref="uom.product_uom_unit"/> + <field name="default_code">FURN_5623</field> + <field name="barcode">601647855647</field> + <field name="image_1920" type="base64" file="mrp/static/img/product_product_drawer_case_black.png"/> + </record> + + <record id="product.product_product_27" model="product.product"> + <field name="tracking">lot</field> + </record> + + <record id="lot_product_27_0" model="stock.production.lot"> + <field name="name">0000000000030</field> + <field name="product_id" ref="product.product_product_27"/> + <field name="company_id" ref="base.main_company"/> + </record> + <record id="lot_product_27_1" model="stock.production.lot"> + <field name="name">0000000000031</field> + <field name="product_id" ref="product.product_product_27"/> + <field name="company_id" ref="base.main_company"/> + </record> + + <record id="lot_product_product_drawer_drawer_0" model="stock.production.lot"> + <field name="name">0000000010001</field> + <field name="product_id" ref="product_product_drawer_drawer"/> + <field name="company_id" ref="base.main_company"/> + </record> + + <record id="lot_product_product_drawer_case_0" model="stock.production.lot"> + <field name="name">0000000020045</field> + <field name="product_id" ref="product_product_drawer_case"/> + <field name="company_id" ref="base.main_company"/> + </record> + + + <!-- Initital Inventory --> + + <record id="stock_inventory_drawer" model="stock.inventory"> + <field name="name">Inventory: Drawer</field> + </record> + + <record id="stock_inventory_drawer_lot0" model="stock.inventory.line"> + <field name="product_id" ref="product.product_product_27"/> + <field name="product_uom_id" ref="uom.product_uom_unit"/> + <field name="inventory_id" ref="stock_inventory_drawer"/> + <field name="product_qty">50</field> + <field name="prod_lot_id" ref="lot_product_27_0"/> + <field name="location_id" model="stock.location" eval="obj().env.ref('stock.warehouse0').lot_stock_id.id"/> + </record> + <record id="stock_inventory_drawer_lot1" model="stock.inventory.line"> + <field name="product_id" ref="product.product_product_27"/> + <field name="product_uom_id" ref="uom.product_uom_unit"/> + <field name="inventory_id" ref="stock_inventory_drawer"/> + <field name="product_qty">40</field> + <field name="prod_lot_id" ref="lot_product_27_1"/> + <field name="location_id" model="stock.location" eval="obj().env.ref('stock.warehouse0').lot_stock_id.id"/> + </record> + <record id="stock_inventory_line_product_drawer_drawer" model="stock.inventory.line"> + <field name="product_id" ref="product_product_drawer_drawer"/> + <field name="product_uom_id" ref="uom.product_uom_unit"/> + <field name="inventory_id" ref="stock_inventory_drawer"/> + <field name="product_qty">50</field> + <field name="prod_lot_id" ref="lot_product_product_drawer_drawer_0"/> + <field name="location_id" model="stock.location" eval="obj().env.ref('stock.warehouse0').lot_stock_id.id"/> + </record> + <record id="stock_inventory_line_product_drawer_case" model="stock.inventory.line"> + <field name="product_id" ref="product_product_drawer_case"/> + <field name="product_uom_id" ref="uom.product_uom_unit"/> + <field name="inventory_id" ref="stock_inventory_drawer"/> + <field name="product_qty">50</field> + <field name="prod_lot_id" ref="lot_product_product_drawer_case_0"/> + <field name="location_id" model="stock.location" eval="obj().env.ref('stock.warehouse0').lot_stock_id.id"/> + </record> + + <record id="stock_inventory_line_product_wood_panel" model="stock.inventory.line"> + <field name="product_id" ref="product_product_wood_panel"/> + <field name="product_uom_id" ref="uom.product_uom_unit"/> + <field name="inventory_id" ref="stock_inventory_drawer"/> + <field name="product_qty">50</field> + <field name="location_id" model="stock.location" eval="obj().env.ref('stock.warehouse0').lot_stock_id.id"/> + </record> + <record id="stock_inventory_line_product_ply" model="stock.inventory.line"> + <field name="product_id" ref="product_product_wood_ply"/> + <field name="product_uom_id" ref="uom.product_uom_unit"/> + <field name="inventory_id" ref="stock_inventory_drawer"/> + <field name="product_qty">20</field> + <field name="location_id" model="stock.location" eval="obj().env.ref('stock.warehouse0').lot_stock_id.id"/> + </record> + <record id="stock_inventory_line_product_wear" model="stock.inventory.line"> + <field name="product_id" ref="product_product_wood_wear"/> + <field name="product_uom_id" ref="uom.product_uom_unit"/> + <field name="inventory_id" ref="stock_inventory_drawer"/> + <field name="product_qty">30</field> + <field name="location_id" model="stock.location" eval="obj().env.ref('stock.warehouse0').lot_stock_id.id"/> + </record> + + <function model="stock.inventory" name="_action_done"> + <function eval="[[('state','=','draft'), ('id', '=', ref('stock_inventory_drawer'))]]" model="stock.inventory" name="search"/> + </function> + + <!-- BoM --> + + <record id="mrp_bom_laptop_cust" model="mrp.bom"> + <field name="product_tmpl_id" ref="product.product_product_27_product_template"/> + <field name="product_uom_id" ref="uom.product_uom_unit"/> + <field name="sequence">1</field> + <field name="code">PRIM-ASSEM</field> + </record> + <record id="mrp_bom_laptop_cust_line_1" model="mrp.bom.line"> + <field name="product_id" ref="product_product_drawer_drawer"/> + <field name="product_qty">1</field> + <field name="product_uom_id" ref="uom.product_uom_unit"/> + <field name="sequence">1</field> + <field name="bom_id" ref="mrp_bom_laptop_cust"/> + </record> + <record id="mrp_bom_laptop_cust_line_2" model="mrp.bom.line"> + <field name="product_id" ref="product_product_drawer_case"/> + <field name="product_qty">1</field> + <field name="product_uom_id" ref="uom.product_uom_unit"/> + <field name="sequence">2</field> + <field name="bom_id" ref="mrp_bom_laptop_cust"/> + </record> + + <record id="mrp_bom_laptop_cust_rout" model="mrp.bom"> + <field name="product_tmpl_id" ref="product.product_product_27_product_template"/> + <field name="product_uom_id" ref="uom.product_uom_unit"/> + <field name="sequence">2</field> + <field name="code">SEC-ASSEM</field> + </record> + <record id="mrp_routing_workcenter_1" model="mrp.routing.workcenter"> + <field name="bom_id" ref="mrp_bom_laptop_cust_rout"/> + <field name="workcenter_id" ref="mrp_workcenter_3"/> + <field name="name">Long time assembly</field> + <field name="time_cycle">180</field> + <field name="sequence">15</field> + <field name="worksheet_type">pdf</field> + <field name="worksheet" type="base64" file="mrp/static/img/cutting-worksheet.pdf"/> + </record> + + <record id="mrp_routing_workcenter_3" model="mrp.routing.workcenter"> + <field name="bom_id" ref="mrp_bom_laptop_cust_rout"/> + <field name="workcenter_id" ref="mrp_workcenter_3"/> + <field name="name">Testing</field> + <field name="time_cycle">60</field> + <field name="sequence">10</field> + <field name="worksheet_type">pdf</field> + <field name="worksheet" type="base64" file="mrp/static/img/assebly-worksheet.pdf"/> + </record> + + <record id="mrp_routing_workcenter_4" model="mrp.routing.workcenter"> + <field name="bom_id" ref="mrp_bom_laptop_cust_rout"/> + <field name="workcenter_id" ref="mrp_workcenter_1"/> + <field name="name">Packing</field> + <field name="time_cycle">30</field> + <field name="sequence">5</field> + <field name="worksheet_type">pdf</field> + <field name="worksheet" type="base64" file="mrp/static/img/cutting-worksheet.pdf"/> + </record> + <record id="mrp_bom_laptop_cust_rout_line_1" model="mrp.bom.line"> + <field name="product_id" ref="product_product_drawer_drawer"/> + <field name="product_qty">1</field> + <field name="product_uom_id" ref="uom.product_uom_unit"/> + <field name="sequence">1</field> + <field name="bom_id" ref="mrp_bom_laptop_cust_rout"/> + </record> + <record id="mrp_bom_laptop_cust_rout_line_2" model="mrp.bom.line"> + <field name="product_id" ref="product_product_drawer_case"/> + <field name="product_qty">1</field> + <field name="product_uom_id" ref="uom.product_uom_unit"/> + <field name="sequence">2</field> + <field name="bom_id" ref="mrp_bom_laptop_cust_rout"/> + </record> + + <record id="product.product_product_27" model="product.product"> + <field name="type">product</field> + </record> + <record id="mrp_production_laptop_cust" model="mrp.production"> + <field name="product_id" ref="product.product_product_27"/> + <field name="product_uom_id" ref="uom.product_uom_unit"/> + <field name="product_qty">5</field> + <field name="location_src_id" ref="stock.stock_location_stock"/> + <field name="location_dest_id" ref="stock.stock_location_stock"/> + <field name="bom_id" ref="mrp_bom_laptop_cust"/> + </record> + + <function model="stock.move" name="create"> + <value model="stock.move" eval=" + obj().env.ref('mrp.mrp_production_laptop_cust')._get_moves_raw_values() + + obj().env.ref('mrp.mrp_production_laptop_cust')._get_moves_finished_values()"/> + </function> + + <!-- Run Scheduler --> + <function model="procurement.group" name="run_scheduler"/> + + + <!-- OEE --> + + <record id="mrp_workcenter_efficiency_0" model="mrp.workcenter.productivity"> + <field name="workcenter_id" ref="mrp_workcenter_3"/> + <field name="loss_id" ref="block_reason7"/> + <field name="date_start" eval="(datetime.now() - relativedelta(days=5)).strftime('%Y-%m-%d %H:%M:%S')"/> + <field name="date_end" eval="(datetime.now() - relativedelta(days=2)).strftime('%Y-%m-%d %H:%M:%S')"/> + </record> + + <record id="mrp_workcenter_efficiency_1" model="mrp.workcenter.productivity"> + <field name="workcenter_id" ref="mrp_workcenter_3"/> + <field name="loss_id" ref="block_reason0"/> + <field name="date_start" eval="(datetime.now() - timedelta(hours=5)).strftime('%Y-%m-%d %H:%M:%S')"/> + <field name="date_end" eval="(datetime.now() - timedelta(hours=3)).strftime('%Y-%m-%d %H:%M:%S')"/> + </record> + + <record id="mrp_workcenter_efficiency_2" model="mrp.workcenter.productivity"> + <field name="workcenter_id" ref="mrp_workcenter_3"/> + <field name="loss_id" ref="block_reason1"/> + <field name="date_start" eval="(datetime.now() - timedelta(days=5, hours=4)).strftime('%Y-%m-%d %H:%M:%S')"/> + <field name="date_end" eval="(datetime.now() - timedelta(days=5, hours=3)).strftime('%Y-%m-%d %H:%M:%S')"/> + </record> + + <record id="mrp_workcenter_efficiency_3" model="mrp.workcenter.productivity"> + <field name="workcenter_id" ref="mrp_workcenter_1"/> + <field name="loss_id" ref="block_reason7"/> + <field name="date_start" eval="(datetime.now() - relativedelta(days=5)).strftime('%Y-%m-%d %H:%M:%S')"/> + <field name="date_end" eval="(datetime.now() - relativedelta(days=3)).strftime('%Y-%m-%d %H:%M:%S')"/> + </record> + + <record id="mrp_workcenter_efficiency_4" model="mrp.workcenter.productivity"> + <field name="workcenter_id" ref="mrp_workcenter_1"/> + <field name="loss_id" ref="block_reason0"/> + <field name="date_start" eval="(datetime.now() - timedelta(days=5,hours=5)).strftime('%Y-%m-%d %H:%M:%S')"/> + <field name="date_end" eval="(datetime.now() - timedelta(days=5,hours=1)).strftime('%Y-%m-%d %H:%M:%S')"/> + </record> + + <record id="mrp_workcenter_efficiency_5" model="mrp.workcenter.productivity"> + <field name="workcenter_id" ref="mrp_workcenter_1"/> + <field name="loss_id" ref="block_reason1"/> + <field name="date_start" eval="(datetime.now() - timedelta(hours=1)).strftime('%Y-%m-%d %H:%M:%S')"/> + </record> + + <function model="mrp.production" name="_create_workorder"> + <value eval="[ref('mrp.mrp_production_3')]"/> + </function> + + <function model="mrp.production" name="action_confirm" eval="[[ + ref('mrp.mrp_production_3'), + ref('mrp.mrp_production_4'), + ref('mrp.mrp_production_laptop_cust'), + ]]"/> + + <function model="mrp.production" name="button_plan"> + <value eval="[ref('mrp.mrp_production_3')]"/> + </function> + + <function model="mrp.production" name="write"> + <value eval="[ref('mrp.mrp_production_laptop_cust')]"/> + <value eval="{'qty_producing': 5, 'lot_producing_id': ref('mrp.lot_product_27_0')}"/> + </function> + + <function model="mrp.production" name="action_assign"> + <value eval="[ref('mrp.mrp_production_laptop_cust')]"/> + </function> + + <function model="stock.move" name="write"> + <value model="stock.move" eval="obj().env['stock.move'].search([('raw_material_production_id', '=', obj().env.ref('mrp.mrp_production_laptop_cust').id)]).ids"/> + <value eval="{'quantity_done': 5}"/> + </function> + + <function model="mrp.production" name="_post_inventory"> + <value eval="[ref('mrp.mrp_production_laptop_cust')]"/> + </function> + + <function model="mrp.production" name="button_mark_done"> + <value eval="[ref('mrp.mrp_production_laptop_cust')]"/> + </function> + + <!-- set 'create component' as True for the demo manufacturing picking type + while leaving the default value to False for the others --> + <function model="stock.warehouse" name="write"> + <value model="stock.warehouse" eval="obj().env['stock.warehouse'].search([]).ids"/> + <value eval="{'manufacture_to_resupply': True}"/> + </function> + + <function model="stock.picking.type" name="write"> + <value model="stock.picking.type" eval="obj().env['stock.picking.type'].search([('code', '=', 'mrp_operation')]).ids"/> + <value eval="{'use_create_components_lots': True}"/> + </function> + + + </data> +</odoo> |
