Initial commit: OCA Mrp packages (117 packages)

This commit is contained in:
Ernad Husremovic 2025-08-29 15:43:05 +02:00
commit 277e84fd7a
4403 changed files with 395154 additions and 0 deletions

View file

@ -0,0 +1,60 @@
<?xml version="1.0" encoding="utf-8" ?>
<odoo>
<record model="ir.ui.view" id="mrp_area_tree">
<field name="name">mrp.area.tree</field>
<field name="model">mrp.area</field>
<field name="type">tree</field>
<field name="arch" type="xml">
<tree>
<field name="name" />
<field name="warehouse_id" />
<field name="company_id" groups="base.group_multi_company" />
<field name="location_id" />
<field name="calendar_id" />
</tree>
</field>
</record>
<record model="ir.ui.view" id="mrp_area_form">
<field name="name">mrp.area.form</field>
<field name="model">mrp.area</field>
<field name="type">form</field>
<field name="arch" type="xml">
<form string="MRP Area">
<sheet>
<div class="oe_button_box" name="button_box" />
<widget
name="web_ribbon"
title="Archived"
bg_color="bg-danger"
attrs="{'invisible': [('active', '=', True)]}"
/>
<label for="name" class="oe_edit_only" />
<h1>
<field name="name" />
</h1>
<group colspan="4" col="2">
<group>
<field name="active" invisible="1" />
<field name="warehouse_id" options="{'no_create': True}" />
<field name="location_id" options="{'no_create': True}" />
<field
name="company_id"
groups="base.group_multi_company"
/>
</group>
<group name="settings">
<field name="calendar_id" />
</group>
</group>
</sheet>
</form>
</field>
</record>
<record model="ir.actions.act_window" id="mrp_area_action">
<field name="name">MRP Area</field>
<field name="res_model">mrp.area</field>
<field name="type">ir.actions.act_window</field>
<field name="view_mode">tree,form</field>
<field name="view_id" ref="mrp_area_tree" />
</record>
</odoo>

View file

@ -0,0 +1,167 @@
<?xml version="1.0" encoding="utf-8" ?>
<odoo>
<record id="mrp_inventory_form" model="ir.ui.view">
<field name="name">mrp.inventory.form</field>
<field name="model">mrp.inventory</field>
<field name="type">form</field>
<field name="arch" type="xml">
<form string="MRP Inventory" create="false" edit="false">
<sheet>
<group>
<group>
<field name="mrp_area_id" />
<field
name="company_id"
groups="base.group_multi_company"
/>
<field name="product_id" />
<field name="product_mrp_area_id" />
<field name="supply_method" />
<field
name="main_supplier_id"
attrs="{'invisible': [('supply_method', '!=', 'buy')]}"
/>
<field name="date" />
</group>
<group>
<field name="initial_on_hand_qty" />
<field name="demand_qty" />
<field name="supply_qty" />
<field name="final_on_hand_qty" />
<field name="to_procure" />
<field name="uom_id" groups="uom.group_uom" />
</group>
</group>
</sheet>
</form>
</field>
</record>
<record id="mrp_inventory_tree" model="ir.ui.view">
<field name="name">mrp.inventory.tree</field>
<field name="model">mrp.inventory</field>
<field name="type">tree</field>
<field name="arch" type="xml">
<tree create="false">
<field name="mrp_area_id" />
<field name="company_id" groups="base.group_multi_company" />
<field name="product_id" />
<field name="date" />
<field name="uom_id" groups="uom.group_uom" />
<field name="initial_on_hand_qty" />
<field name="demand_qty" />
<field name="supply_qty" />
<field name="final_on_hand_qty" />
<field name="to_procure" />
<button
attrs="{'invisible': [('planned_order_ids', '=', [])]}"
name="action_open_planned_orders"
type="object"
icon="fa-list"
title="Details"
/>
<field name="order_release_date" />
<button
title="Create Procurement"
name="%(mrp_multi_level.act_mrp_inventory_procure)d"
icon="fa-cogs"
type="action"
attrs="{'invisible':[('to_procure','&lt;=',0.0)]}"
/>
<field name="planned_order_ids" invisible="1" />
<field name="supply_method" />
<field name="main_supplier_id" optional="hide" />
<field name="running_availability" />
</tree>
</field>
</record>
<record id="view_mrp_inventory_pivot" model="ir.ui.view">
<field name="name">mrp.inventory.pivot</field>
<field name="model">mrp.inventory</field>
<field name="arch" type="xml">
<pivot string="MRP Inventory">
<field name="final_on_hand_qty" type="measure" />
<field name="mrp_area_id" type="row" />
<field name="product_mrp_area_id" type="row" />
<field name="date" interval="day" type="col" />
</pivot>
</field>
</record>
<record id="view_mrp_inventory_graph" model="ir.ui.view">
<field name="name">mrp.inventory.graph</field>
<field name="model">mrp.inventory</field>
<field name="arch" type="xml">
<graph string="MRP Inventory" type="line">
<field name="final_on_hand_qty" type="measure" />
<field name="date" interval="day" type="row" />
<field name="product_mrp_area_id" type="row" />
</graph>
</field>
</record>
<record id="mrp_inventory_search" model="ir.ui.view">
<field name="name">mrp.inventory.search</field>
<field name="model">mrp.inventory</field>
<field name="type">search</field>
<field name="arch" type="xml">
<search string="MRP Inventory">
<group name="select" expand="0" string="Selection...">
<field name="product_id" />
<field name="mrp_area_id" />
<field name="company_id" groups="base.group_multi_company" />
</group>
<separator />
<field name="mrp_planner_id" invisible="1" />
<filter
string="My products"
name="mrp_planner_id"
domain="[('mrp_planner_id', '=', uid)]"
/>
<filter
string="To Procure"
name="filter_to_procure"
domain="[['to_procure','>',0.0]]"
/>
<separator />
<group expand="0" string="Group By...">
<filter
name="group_product"
string="Product"
context="{'group_by':'product_mrp_area_id'}"
/>
<filter
name="group_mrp_area"
string="MRP Area"
context="{'group_by':'mrp_area_id'}"
/>
<filter
name="group_supply_method"
string="Supply Method"
context="{'group_by':'supply_method'}"
/>
<filter
name="group_main_supplier_id"
string="Main Supplier"
context="{'group_by':'main_supplier_id'}"
/>
<filter
name="group_date"
string="Date"
context="{'group_by':'date'}"
/>
<filter
name="group_release_date"
string="Date to Procure"
context="{'group_by':'order_release_date'}"
/>
</group>
</search>
</field>
</record>
<record id="mrp_inventory_action" model="ir.actions.act_window">
<field name="name">MRP Inventory</field>
<field name="res_model">mrp.inventory</field>
<field name="type">ir.actions.act_window</field>
<field name="view_mode">tree,form,pivot,graph</field>
<field name="view_id" ref="mrp_inventory_tree" />
<field name="search_view_id" ref="mrp_inventory_search" />
</record>
</odoo>

View file

@ -0,0 +1,33 @@
<?xml version="1.0" encoding="utf-8" ?>
<odoo>
<menuitem name="MRP" id="menu_mrp_mrp" parent="mrp.menu_mrp_root" sequence="22" />
<menuitem
name="MRP Areas"
id="menu_mrp_areas"
action="mrp_area_action"
parent="mrp.menu_mrp_configuration"
sequence="50"
/>
<menuitem
name="Product MRP Area Parameters"
id="menu_product_mrp_area_parameters"
action="product_mrp_area_action"
parent="mrp.menu_mrp_bom"
sequence="10"
/>
<menuitem
name="MRP Inventory"
id="menu_mrp_inventory"
action="mrp_inventory_action"
parent="mrp.mrp_planning_menu_root"
sequence="30"
/>
<menuitem
name="Run MRP Multi Level"
id="menu_mrp_multi_level"
action="action_mrp_multi_level"
parent="mrp.mrp_planning_menu_root"
groups="mrp_multi_level.group_mrp_multi_level_run"
sequence="40"
/>
</odoo>

View file

@ -0,0 +1,98 @@
<?xml version="1.0" encoding="utf-8" ?>
<odoo>
<record id="mrp_move_view_tree" model="ir.ui.view">
<field name="name">mrp.move.tree</field>
<field name="model">mrp.move</field>
<field name="arch" type="xml">
<tree>
<field name="mrp_date" />
<field name="current_date" />
<field name="mrp_origin" />
<field name="state" />
<field name="mrp_order_number" />
<field name="parent_product_id" />
<field name="name" />
<field name="mrp_qty" />
<field name="current_qty" />
<field name="mrp_type" />
<field name="planned_order_up_ids" />
</tree>
</field>
</record>
<record id="mrp_move_view_form" model="ir.ui.view">
<field name="name">mrp.move.form</field>
<field name="model">mrp.move</field>
<field name="type">form</field>
<field name="arch" type="xml">
<form>
<sheet>
<group>
<group>
<field name="mrp_area_id" />
<field
name="company_id"
groups="base.group_multi_company"
/>
<field name="product_id" />
<field name="product_mrp_area_id" />
<field name="mrp_origin" />
<field
name="production_id"
attrs="{'invisible':[('mrp_origin', '!=', 'mo')]}"
/>
<field
name="purchase_order_id"
attrs="{'invisible':[('mrp_origin', '!=', 'po')]}"
/>
<field
name="purchase_line_id"
attrs="{'invisible':[('mrp_origin', '!=', 'po')]}"
/>
<field
name="stock_move_id"
attrs="{'invisible':[('mrp_origin', '!=', 'mv')]}"
/>
<field name="name" />
<field name="origin" />
</group>
<group>
<field name="mrp_date" />
<field
name="current_date"
attrs="{'invisible': [('current_date', '=', False)]}"
/>
<field
name="state"
attrs="{'invisible': [('state', '=', False)]}"
/>
<field
name="mrp_order_number"
attrs="{'invisible': [('mrp_order_number', '=', False)]}"
/>
<field
name="parent_product_id"
attrs="{'invisible': [('parent_product_id', '=', False)]}"
/>
<field name="mrp_qty" />
<field name="current_qty" />
<field name="mrp_type" />
</group>
</group>
<notebook>
<page string="Planned Orders UP" name="planned_orders_up">
<field name="planned_order_up_ids" readonly="1" />
</page>
</notebook>
</sheet>
</form>
</field>
</record>
<record id="mrp_move_action" model="ir.actions.act_window">
<field name="name">MRP Moves</field>
<field name="res_model">mrp.move</field>
<field name="type">ir.actions.act_window</field>
<field name="view_mode">tree,form</field>
</record>
</odoo>

View file

@ -0,0 +1,139 @@
<?xml version="1.0" encoding="utf-8" ?>
<!-- Copyright 2019-20 ForgeFlow S.L. (https://www.forgeflow.com)
Part of ForgeFlow. See LICENSE file for full copyright and licensing details. -->
<odoo>
<record id="mrp_planned_order_view_tree" model="ir.ui.view">
<field name="name">mrp.planned.order.tree</field>
<field name="model">mrp.planned.order</field>
<field name="arch" type="xml">
<tree
decoration-info="fixed != True and mrp_action != 'phantom'"
decoration-muted="mrp_action == 'phantom'"
>
<field name="name" />
<field name="origin" />
<field name="product_mrp_area_id" />
<field name="product_id" />
<field name="mrp_area_id" />
<field name="order_release_date" />
<field name="due_date" />
<field name="qty_released" />
<field name="mrp_qty" />
<field name="fixed" />
<field name="mrp_action" optional="hide" />
</tree>
</field>
</record>
<record id="mrp_planned_order_view_form" model="ir.ui.view">
<field name="name">mrp.planned.order.form</field>
<field name="model">mrp.planned.order</field>
<field name="arch" type="xml">
<form>
<sheet>
<div class="oe_button_box" name="button_box">
<button
name="action_open_linked_mrp_production"
type="object"
icon="fa-wrench"
attrs="{'invisible':[('mo_count', '=', 0)]}"
class="oe_stat_button"
>
<field name="mo_count" widget="statinfo" string="MOs" />
</button>
</div>
<group>
<group>
<field name="product_mrp_area_id" />
<field name="product_id" />
<field name="mrp_area_id" />
<field name="name" />
<field name="origin" />
<field name="fixed" />
</group>
<group>
<field name="mrp_action" />
<field name="order_release_date" />
<field name="due_date" />
<field name="mrp_qty" />
<field name="qty_released" />
</group>
</group>
<group groups="base.group_no_one">
<field name="mrp_move_down_ids" readonly="True" />
</group>
</sheet>
</form>
</field>
</record>
<record id="mrp_planned_order_view_pivot" model="ir.ui.view">
<field name="name">mrp.planned.order.pivot</field>
<field name="model">mrp.planned.order</field>
<field name="arch" type="xml">
<pivot>
<field name="mrp_area_id" type="row" />
<field name="product_id" type="row" />
<field name="mrp_qty" type="measure" />
<field name="due_date" interval="week" type="col" />
</pivot>
</field>
</record>
<record id="mrp_planned_order_view_search" model="ir.ui.view">
<field name="name">mrp.planned.order.search</field>
<field name="model">mrp.planned.order</field>
<field name="arch" type="xml">
<search>
<field name="origin" />
<field name="name" />
<field name="product_id" />
<field name="mrp_area_id" />
<separator />
<filter
string="My products"
name="mrp_planner_id"
domain="[('mrp_planner_id', '=', uid)]"
/>
<filter string="Fixed" name="fixed" domain="[('fixed','=',True)]" />
<group name='group_by' expand="0" string="Group By...">
<filter
name='product_parameters'
string="Product Parameters"
context="{'group_by':'product_mrp_area_id'}"
/>
<filter
name='due_date'
string="Due Date"
context="{'group_by':'due_date'}"
/>
</group>
</search>
</field>
</record>
<record id="mrp_planned_order_action" model="ir.actions.act_window">
<field name="name">Planned Orders</field>
<field name="res_model">mrp.planned.order</field>
<field name="type">ir.actions.act_window</field>
<field name="view_mode">tree,form,pivot</field>
<field name="context">{'search_default_fixed': 1}</field>
</record>
<menuitem
name="Planned Orders"
id="menu_mrp_planned_order"
action="mrp_planned_order_action"
parent="mrp.mrp_planning_menu_root"
sequence="20"
/>
<record id="action_server_planned_order_toggle_fixed" model="ir.actions.server">
<field name="name">Toggle Fixed</field>
<field name="model_id" ref="mrp_multi_level.model_mrp_planned_order" />
<field name="binding_model_id" ref="mrp_multi_level.model_mrp_planned_order" />
<field name="state">code</field>
<field name="code">records.action_toggle_fixed()</field>
</record>
<record id="act_mrp_inventory_procure_planned_order" model="ir.actions.act_window">
<field name="name">Procure</field>
<field name="res_model">mrp.inventory.procure</field>
<field name="view_mode">form</field>
<field name="target">new</field>
<field name="binding_model_id" ref="mrp_multi_level.model_mrp_planned_order" />
</record>
</odoo>

View file

@ -0,0 +1,183 @@
<?xml version="1.0" encoding="utf-8" ?>
<odoo>
<record model="ir.ui.view" id="product_mrp_area_tree">
<field name="name">product.mrp.area.tree</field>
<field name="model">product.mrp.area</field>
<field name="type">tree</field>
<field name="arch" type="xml">
<tree>
<field name="mrp_area_id" />
<field name="company_id" groups="base.group_multi_company" />
<field name="product_tmpl_id" />
<field name="product_id" groups="product.group_product_variant" />
<field name="mrp_exclude" />
<field name="mrp_verified" />
<field name="mrp_nbr_days" />
<field name="mrp_transit_delay" />
<field name="mrp_inspection_delay" />
<field name="mrp_minimum_stock" />
<field name="mrp_minimum_order_qty" />
<field name="mrp_maximum_order_qty" />
<field name="mrp_qty_multiple" />
<field name="supply_method" />
<field name="main_supplierinfo_id" />
</tree>
</field>
</record>
<record model="ir.ui.view" id="product_mrp_area_form">
<field name="name">product.mrp.area.form</field>
<field name="model">product.mrp.area</field>
<field name="type">form</field>
<field name="arch" type="xml">
<form string="Product MRP Area parameters">
<sheet>
<div class="oe_button_box" name="button_box">
<button
name="action_view_incoming_stock_moves"
string="Incoming Moves"
type="object"
class="oe_stat_button"
icon="fa-list"
/>
<button
name="action_view_outgoing_stock_moves"
string="Outgoing Moves"
type="object"
class="oe_stat_button"
icon="fa-list"
/>
</div>
<widget
name="web_ribbon"
title="Archived"
bg_color="bg-danger"
attrs="{'invisible': [('active', '=', True)]}"
/>
<group colspan="4" col="2">
<group>
<field name="active" invisible="1" />
<field name="mrp_area_id" />
<field
name="company_id"
groups="base.group_multi_company"
/>
<field name="product_tmpl_id" invisible="1" />
<field name="product_id" />
<field name="mrp_planner_id" />
<field name="location_id" invisible="1" />
<field
name="location_proc_id"
options="{'no_create': True}"
/>
</group>
<group>
<field name="mrp_exclude" />
<field name="mrp_verified" />
<field name="mrp_nbr_days" />
<!--hide delays for now-->
<field name="mrp_transit_delay" invisible="1" />
<field name="mrp_inspection_delay" invisible="1" />
<field name="mrp_minimum_stock" />
<label for="mrp_minimum_order_qty" />
<div name="mrp_minimum_order_qty" class="o_row">
<field name="mrp_minimum_order_qty" />
<span name="update_min_qty">
<button
string="Get from main supplier"
type="object"
name="update_min_qty_from_main_supplier"
attrs="{'invisible':[('supply_method', '!=', 'buy'), ('main_supplierinfo_id', '=', False)]}"
class="oe_link pt-0 oe_inline"
/>
</span>
</div>
<field name="mrp_maximum_order_qty" />
<field name="mrp_qty_multiple" />
<field name="supply_method" />
<field
name="distribution_lead_time"
attrs="{'invisible': [('supply_method', 'not in', ('pull', 'push', 'pull_push'))]}"
/>
<field name="mrp_lead_time" />
<field
name="main_supplierinfo_id"
attrs="{'invisible':[('supply_method', '!=', 'buy')]}"
/>
</group>
</group>
<notebook>
<page
name="mrp_moves"
string="MRP Moves"
groups="base.group_no_one"
>
<field name="mrp_move_ids" nolabel="1">
<tree>
<field name="mrp_date" />
<field name="current_date" />
<field name="mrp_origin" />
<field name="state" />
<field name="mrp_order_number" />
<field name="parent_product_id" />
<field name="name" />
<field name="mrp_qty" />
<field name="current_qty" />
<field name="mrp_type" />
<field name="planned_order_up_ids" />
</tree>
</field>
</page>
<page
name="planned_orders"
string="Planned Orders"
groups="base.group_no_one"
>
<field name="planned_order_ids" nolabel="1">
<tree>
<field name="order_release_date" />
<field name="due_date" />
<field name="name" />
<field name="mrp_qty" />
<field name="mrp_action" />
<field name="qty_released" />
<field name="fixed" />
</tree>
</field>
</page>
</notebook>
</sheet>
</form>
</field>
</record>
<record model="ir.ui.view" id="product_mrp_area_search">
<field name="name">product.mrp.area.search</field>
<field name="model">product.mrp.area</field>
<field name="type">search</field>
<field name="arch" type="xml">
<search string="Product MRP Area parameters">
<field name="product_id" />
<field name="mrp_area_id" />
<separator />
<filter
string="Archived"
name="inactive"
domain="[('active','=',False)]"
/>
<separator />
<filter
string="My products"
name="mrp_planner_id"
domain="[('mrp_planner_id', '=', uid)]"
/>
</search>
</field>
</record>
<record model="ir.actions.act_window" id="product_mrp_area_action">
<field name="name">Product MRP Area Parameters</field>
<field name="res_model">product.mrp.area</field>
<field name="type">ir.actions.act_window</field>
<field name="view_mode">tree,form</field>
<field name="view_id" ref="product_mrp_area_tree" />
<field name="search_view_id" ref="product_mrp_area_search" />
</record>
</odoo>

View file

@ -0,0 +1,22 @@
<?xml version="1.0" encoding="utf-8" ?>
<odoo>
<record model="ir.ui.view" id="view_mrp_product_product_form">
<field name="name">view.product.mrp.area.product.form</field>
<field name="model">product.product</field>
<field name="inherit_id" ref="product.product_normal_form_view" />
<field name="type">form</field>
<field name="arch" type="xml">
<div name="button_box" position="inside">
<button
type="object"
name="action_view_mrp_area_parameters"
class="oe_stat_button"
icon="fa-eject"
groups="mrp.group_mrp_user"
>
<field name="mrp_area_count" widget="statinfo" string="MRP Areas" />
</button>
</div>
</field>
</record>
</odoo>

View file

@ -0,0 +1,21 @@
<?xml version="1.0" encoding="utf-8" ?>
<odoo>
<record id="product_template_only_form_view_mrp" model="ir.ui.view">
<field name="name">product.template.product.form.mrp</field>
<field name="model">product.template</field>
<field name="inherit_id" ref="product.product_template_only_form_view" />
<field name="arch" type="xml">
<div name="button_box" position="inside">
<button
type="object"
name="action_view_mrp_area_parameters"
class="oe_stat_button"
icon="fa-eject"
groups="mrp.group_mrp_user"
>
<field name="mrp_area_count" widget="statinfo" string="MRP Areas" />
</button>
</div>
</field>
</record>
</odoo>

View file

@ -0,0 +1,20 @@
<?xml version="1.0" encoding="utf-8" ?>
<odoo>
<record id="view_location_form" model="ir.ui.view">
<field name="name">stock.location.form</field>
<field name="model">stock.location</field>
<field name="inherit_id" ref="stock.view_location_form" />
<field name="arch" type="xml">
<xpath expr="//button" position="before">
<button
type="object"
name="action_view_mrp_area_location"
class="oe_stat_button"
icon="fa-eject"
>
<field name="mrp_area_count" widget="statinfo" string="MRP Areas" />
</button>
</xpath>
</field>
</record>
</odoo>