mirror of
https://github.com/bringout/oca-ocb-mrp.git
synced 2026-04-18 05:31:59 +02:00
Initial commit: Mrp packages
This commit is contained in:
commit
50d736b3bd
739 changed files with 538193 additions and 0 deletions
14
README.md
Normal file
14
README.md
Normal file
|
|
@ -0,0 +1,14 @@
|
||||||
|
# Mrp
|
||||||
|
|
||||||
|
This repository contains OCA OCB packages for mrp.
|
||||||
|
|
||||||
|
## Packages Included
|
||||||
|
|
||||||
|
- odoo-bringout-oca-ocb-mrp
|
||||||
|
- odoo-bringout-oca-ocb-mrp_landed_costs
|
||||||
|
- odoo-bringout-oca-ocb-mrp_repair
|
||||||
|
- odoo-bringout-oca-ocb-mrp_subcontracting
|
||||||
|
- odoo-bringout-oca-ocb-mrp_subcontracting_dropshipping
|
||||||
|
- odoo-bringout-oca-ocb-mrp_subcontracting_purchase
|
||||||
|
- odoo-bringout-oca-ocb-mrp_subcontracting_repair
|
||||||
|
- odoo-bringout-oca-ocb-mrp_subonctracting_landed_costs
|
||||||
48
odoo-bringout-oca-ocb-mrp/README.md
Normal file
48
odoo-bringout-oca-ocb-mrp/README.md
Normal file
|
|
@ -0,0 +1,48 @@
|
||||||
|
# Manufacturing
|
||||||
|
|
||||||
|
Odoo addon: mrp
|
||||||
|
|
||||||
|
## Installation
|
||||||
|
|
||||||
|
```bash
|
||||||
|
pip install odoo-bringout-oca-ocb-mrp
|
||||||
|
```
|
||||||
|
|
||||||
|
## Dependencies
|
||||||
|
|
||||||
|
This addon depends on:
|
||||||
|
- product
|
||||||
|
- stock
|
||||||
|
- resource
|
||||||
|
|
||||||
|
## Manifest Information
|
||||||
|
|
||||||
|
- **Name**: Manufacturing
|
||||||
|
- **Version**: 2.0
|
||||||
|
- **Category**: Manufacturing/Manufacturing
|
||||||
|
- **License**: LGPL-3
|
||||||
|
- **Installable**: False
|
||||||
|
|
||||||
|
## Source
|
||||||
|
|
||||||
|
Based on [OCA/OCB](https://github.com/OCA/OCB) branch 16.0, addon `mrp`.
|
||||||
|
|
||||||
|
## License
|
||||||
|
|
||||||
|
This package maintains the original LGPL-3 license from the upstream Odoo project.
|
||||||
|
|
||||||
|
## Documentation
|
||||||
|
|
||||||
|
- Overview: doc/OVERVIEW.md
|
||||||
|
- Architecture: doc/ARCHITECTURE.md
|
||||||
|
- Models: doc/MODELS.md
|
||||||
|
- Controllers: doc/CONTROLLERS.md
|
||||||
|
- Wizards: doc/WIZARDS.md
|
||||||
|
- Reports: doc/REPORTS.md
|
||||||
|
- Security: doc/SECURITY.md
|
||||||
|
- Install: doc/INSTALL.md
|
||||||
|
- Usage: doc/USAGE.md
|
||||||
|
- Configuration: doc/CONFIGURATION.md
|
||||||
|
- Dependencies: doc/DEPENDENCIES.md
|
||||||
|
- Troubleshooting: doc/TROUBLESHOOTING.md
|
||||||
|
- FAQ: doc/FAQ.md
|
||||||
32
odoo-bringout-oca-ocb-mrp/doc/ARCHITECTURE.md
Normal file
32
odoo-bringout-oca-ocb-mrp/doc/ARCHITECTURE.md
Normal file
|
|
@ -0,0 +1,32 @@
|
||||||
|
# Architecture
|
||||||
|
|
||||||
|
```mermaid
|
||||||
|
flowchart TD
|
||||||
|
U[Users] -->|HTTP| V[Views and QWeb Templates]
|
||||||
|
V --> C[Controllers]
|
||||||
|
V --> W[Wizards – Transient Models]
|
||||||
|
C --> M[Models and ORM]
|
||||||
|
W --> M
|
||||||
|
M --> R[Reports]
|
||||||
|
DX[Data XML] --> M
|
||||||
|
S[Security – ACLs and Groups] -. enforces .-> M
|
||||||
|
|
||||||
|
subgraph Mrp Module - mrp
|
||||||
|
direction LR
|
||||||
|
M:::layer
|
||||||
|
W:::layer
|
||||||
|
C:::layer
|
||||||
|
V:::layer
|
||||||
|
R:::layer
|
||||||
|
S:::layer
|
||||||
|
DX:::layer
|
||||||
|
end
|
||||||
|
|
||||||
|
classDef layer fill:#eef8ff,stroke:#6ea8fe,stroke-width:1px
|
||||||
|
```
|
||||||
|
|
||||||
|
Notes
|
||||||
|
- Views include tree/form/kanban templates and report templates.
|
||||||
|
- Controllers provide website/portal routes when present.
|
||||||
|
- Wizards are UI flows implemented with `models.TransientModel`.
|
||||||
|
- Data XML loads data/demo records; Security defines groups and access.
|
||||||
3
odoo-bringout-oca-ocb-mrp/doc/CONFIGURATION.md
Normal file
3
odoo-bringout-oca-ocb-mrp/doc/CONFIGURATION.md
Normal file
|
|
@ -0,0 +1,3 @@
|
||||||
|
# Configuration
|
||||||
|
|
||||||
|
Refer to Odoo settings for mrp. Configure related models, access rights, and options as needed.
|
||||||
3
odoo-bringout-oca-ocb-mrp/doc/CONTROLLERS.md
Normal file
3
odoo-bringout-oca-ocb-mrp/doc/CONTROLLERS.md
Normal file
|
|
@ -0,0 +1,3 @@
|
||||||
|
# Controllers
|
||||||
|
|
||||||
|
This module does not define custom HTTP controllers.
|
||||||
7
odoo-bringout-oca-ocb-mrp/doc/DEPENDENCIES.md
Normal file
7
odoo-bringout-oca-ocb-mrp/doc/DEPENDENCIES.md
Normal file
|
|
@ -0,0 +1,7 @@
|
||||||
|
# Dependencies
|
||||||
|
|
||||||
|
This addon depends on:
|
||||||
|
|
||||||
|
- [product](../../odoo-bringout-oca-ocb-product)
|
||||||
|
- [stock](../../odoo-bringout-oca-ocb-stock)
|
||||||
|
- [resource](../../odoo-bringout-oca-ocb-resource)
|
||||||
4
odoo-bringout-oca-ocb-mrp/doc/FAQ.md
Normal file
4
odoo-bringout-oca-ocb-mrp/doc/FAQ.md
Normal file
|
|
@ -0,0 +1,4 @@
|
||||||
|
# FAQ
|
||||||
|
|
||||||
|
- Q: Which Odoo version? A: 16.0 (OCA/OCB packaged).
|
||||||
|
- Q: How to enable? A: Start server with --addon mrp or install in UI.
|
||||||
7
odoo-bringout-oca-ocb-mrp/doc/INSTALL.md
Normal file
7
odoo-bringout-oca-ocb-mrp/doc/INSTALL.md
Normal file
|
|
@ -0,0 +1,7 @@
|
||||||
|
# Install
|
||||||
|
|
||||||
|
```bash
|
||||||
|
pip install odoo-bringout-oca-ocb-mrp"
|
||||||
|
# or
|
||||||
|
uv pip install odoo-bringout-oca-ocb-mrp"
|
||||||
|
```
|
||||||
41
odoo-bringout-oca-ocb-mrp/doc/MODELS.md
Normal file
41
odoo-bringout-oca-ocb-mrp/doc/MODELS.md
Normal file
|
|
@ -0,0 +1,41 @@
|
||||||
|
# Models
|
||||||
|
|
||||||
|
Detected core models and extensions in mrp.
|
||||||
|
|
||||||
|
```mermaid
|
||||||
|
classDiagram
|
||||||
|
class mrp_bom
|
||||||
|
class mrp_bom_byproduct
|
||||||
|
class mrp_bom_line
|
||||||
|
class mrp_document
|
||||||
|
class mrp_production
|
||||||
|
class mrp_routing_workcenter
|
||||||
|
class mrp_unbuild
|
||||||
|
class mrp_workcenter
|
||||||
|
class mrp_workcenter_capacity
|
||||||
|
class mrp_workcenter_productivity
|
||||||
|
class mrp_workcenter_productivity_loss
|
||||||
|
class mrp_workcenter_productivity_loss_type
|
||||||
|
class mrp_workcenter_tag
|
||||||
|
class mrp_workorder
|
||||||
|
class procurement_group
|
||||||
|
class product_product
|
||||||
|
class product_template
|
||||||
|
class res_company
|
||||||
|
class res_config_settings
|
||||||
|
class stock_lot
|
||||||
|
class stock_move
|
||||||
|
class stock_move_line
|
||||||
|
class stock_picking
|
||||||
|
class stock_picking_type
|
||||||
|
class stock_quant
|
||||||
|
class stock_rule
|
||||||
|
class stock_scrap
|
||||||
|
class stock_traceability_report
|
||||||
|
class stock_warehouse
|
||||||
|
class stock_warehouse_orderpoint
|
||||||
|
```
|
||||||
|
|
||||||
|
Notes
|
||||||
|
- Classes show model technical names; fields omitted for brevity.
|
||||||
|
- Items listed under _inherit are extensions of existing models.
|
||||||
6
odoo-bringout-oca-ocb-mrp/doc/OVERVIEW.md
Normal file
6
odoo-bringout-oca-ocb-mrp/doc/OVERVIEW.md
Normal file
|
|
@ -0,0 +1,6 @@
|
||||||
|
# Overview
|
||||||
|
|
||||||
|
Packaged Odoo addon: mrp. Provides features documented in upstream Odoo 16 under this addon.
|
||||||
|
|
||||||
|
- Source: OCA/OCB 16.0, addon mrp
|
||||||
|
- License: LGPL-3
|
||||||
48
odoo-bringout-oca-ocb-mrp/doc/REPORTS.md
Normal file
48
odoo-bringout-oca-ocb-mrp/doc/REPORTS.md
Normal file
|
|
@ -0,0 +1,48 @@
|
||||||
|
# Reports
|
||||||
|
|
||||||
|
Report definitions and templates in mrp.
|
||||||
|
|
||||||
|
```mermaid
|
||||||
|
classDiagram
|
||||||
|
class ReportStockRule
|
||||||
|
AbstractModel <|-- ReportStockRule
|
||||||
|
class ReplenishmentReport
|
||||||
|
AbstractModel <|-- ReplenishmentReport
|
||||||
|
class ReceptionReport
|
||||||
|
AbstractModel <|-- ReceptionReport
|
||||||
|
class ReportBomStructure
|
||||||
|
AbstractModel <|-- ReportBomStructure
|
||||||
|
```
|
||||||
|
|
||||||
|
## Available Reports
|
||||||
|
|
||||||
|
### PDF/Document Reports
|
||||||
|
- **Production Order** (PDF/Print)
|
||||||
|
- **BoM Overview** (PDF/Print)
|
||||||
|
- **Finished Product Label (ZPL)** (PDF/Print)
|
||||||
|
- **Finished Product Label (PDF)** (PDF/Print)
|
||||||
|
- **Work Order** (PDF/Print)
|
||||||
|
|
||||||
|
|
||||||
|
## Report Files
|
||||||
|
|
||||||
|
- **__init__.py** (Python logic)
|
||||||
|
- **mrp_production_templates.xml** (XML template/definition)
|
||||||
|
- **mrp_report_bom_structure.py** (Python logic)
|
||||||
|
- **mrp_report_bom_structure.xml** (XML template/definition)
|
||||||
|
- **mrp_report_views_main.xml** (XML template/definition)
|
||||||
|
- **mrp_workorder_templates.xml** (XML template/definition)
|
||||||
|
- **mrp_zebra_production_templates.xml** (XML template/definition)
|
||||||
|
- **report_deliveryslip.xml** (XML template/definition)
|
||||||
|
- **report_stock_forecasted.xml** (XML template/definition)
|
||||||
|
- **report_stock_reception.py** (Python logic)
|
||||||
|
- **report_stock_reception.xml** (XML template/definition)
|
||||||
|
- **report_stock_rule.py** (Python logic)
|
||||||
|
- **report_stock_rule.xml** (XML template/definition)
|
||||||
|
- **stock_forecasted.py** (Python logic)
|
||||||
|
|
||||||
|
## Notes
|
||||||
|
- Named reports above are accessible through Odoo's reporting menu
|
||||||
|
- Python files define report logic and data processing
|
||||||
|
- XML files contain report templates, definitions, and formatting
|
||||||
|
- Reports are integrated with Odoo's printing and email systems
|
||||||
42
odoo-bringout-oca-ocb-mrp/doc/SECURITY.md
Normal file
42
odoo-bringout-oca-ocb-mrp/doc/SECURITY.md
Normal file
|
|
@ -0,0 +1,42 @@
|
||||||
|
# Security
|
||||||
|
|
||||||
|
Access control and security definitions in mrp.
|
||||||
|
|
||||||
|
## Access Control Lists (ACLs)
|
||||||
|
|
||||||
|
Model access permissions defined in:
|
||||||
|
- **[ir.model.access.csv](../mrp/security/ir.model.access.csv)**
|
||||||
|
- 64 model access rules
|
||||||
|
|
||||||
|
## Record Rules
|
||||||
|
|
||||||
|
Row-level security rules defined in:
|
||||||
|
|
||||||
|
## Security Groups & Configuration
|
||||||
|
|
||||||
|
Security groups and permissions defined in:
|
||||||
|
- **[mrp_security.xml](../mrp/security/mrp_security.xml)**
|
||||||
|
- 7 security groups defined
|
||||||
|
|
||||||
|
```mermaid
|
||||||
|
graph TB
|
||||||
|
subgraph "Security Layers"
|
||||||
|
A[Users] --> B[Groups]
|
||||||
|
B --> C[Access Control Lists]
|
||||||
|
C --> D[Models]
|
||||||
|
B --> E[Record Rules]
|
||||||
|
E --> F[Individual Records]
|
||||||
|
end
|
||||||
|
```
|
||||||
|
|
||||||
|
Security files overview:
|
||||||
|
- **[ir.model.access.csv](../mrp/security/ir.model.access.csv)**
|
||||||
|
- Model access permissions (CRUD rights)
|
||||||
|
- **[mrp_security.xml](../mrp/security/mrp_security.xml)**
|
||||||
|
- Security groups, categories, and XML-based rules
|
||||||
|
|
||||||
|
Notes
|
||||||
|
- Access Control Lists define which groups can access which models
|
||||||
|
- Record Rules provide row-level security (filter records by user/group)
|
||||||
|
- Security groups organize users and define permission sets
|
||||||
|
- All security is enforced at the ORM level by Odoo
|
||||||
5
odoo-bringout-oca-ocb-mrp/doc/TROUBLESHOOTING.md
Normal file
5
odoo-bringout-oca-ocb-mrp/doc/TROUBLESHOOTING.md
Normal file
|
|
@ -0,0 +1,5 @@
|
||||||
|
# Troubleshooting
|
||||||
|
|
||||||
|
- Ensure Python and Odoo environment matches repo guidance.
|
||||||
|
- Check database connectivity and logs if startup fails.
|
||||||
|
- Validate that dependent addons listed in DEPENDENCIES.md are installed.
|
||||||
7
odoo-bringout-oca-ocb-mrp/doc/USAGE.md
Normal file
7
odoo-bringout-oca-ocb-mrp/doc/USAGE.md
Normal file
|
|
@ -0,0 +1,7 @@
|
||||||
|
# Usage
|
||||||
|
|
||||||
|
Start Odoo including this addon (from repo root):
|
||||||
|
|
||||||
|
```bash
|
||||||
|
python3 scripts/nix_odoo_web_server.py --db-name mydb --addon mrp
|
||||||
|
```
|
||||||
19
odoo-bringout-oca-ocb-mrp/doc/WIZARDS.md
Normal file
19
odoo-bringout-oca-ocb-mrp/doc/WIZARDS.md
Normal file
|
|
@ -0,0 +1,19 @@
|
||||||
|
# Wizards
|
||||||
|
|
||||||
|
Transient models exposed as UI wizards in mrp.
|
||||||
|
|
||||||
|
```mermaid
|
||||||
|
classDiagram
|
||||||
|
class ChangeProductionQty
|
||||||
|
class MrpConsumptionWarning
|
||||||
|
class MrpConsumptionWarningLine
|
||||||
|
class MrpImmediateProduction
|
||||||
|
class MrpImmediateProductionLine
|
||||||
|
class MrpProductionBackorder
|
||||||
|
class MrpProductionBackorderLine
|
||||||
|
class MrpProductionSplit
|
||||||
|
class MrpProductionSplitLine
|
||||||
|
class MrpProductionSplitMulti
|
||||||
|
class StockAssignSerialNumbers
|
||||||
|
class StockWarnInsufficientQtyUnbuild
|
||||||
|
```
|
||||||
62
odoo-bringout-oca-ocb-mrp/mrp/README.md
Normal file
62
odoo-bringout-oca-ocb-mrp/mrp/README.md
Normal file
|
|
@ -0,0 +1,62 @@
|
||||||
|
Odoo Manufacturing Resource Planning
|
||||||
|
------------------------------------
|
||||||
|
|
||||||
|
Manage Bill of Materials, plan manufacturing orders, track work orders with the
|
||||||
|
Odoo <a href="https://www.odoo.com/app/manufacturing">Open Source MRP</a> app.
|
||||||
|
|
||||||
|
Get all your assembly or manufacturing operations managed by Odoo. Schedule
|
||||||
|
manufacturing orders and work orders automatically. Review the proposed
|
||||||
|
planning with the smart kanban and gantt views. Use the advanced analytics
|
||||||
|
features to detect bottleneck in resources capacities and inventory locations.
|
||||||
|
|
||||||
|
Schedule Manufacturing Orders Efficiently
|
||||||
|
-----------------------------------------
|
||||||
|
|
||||||
|
Get manufacturing orders and work orders scheduled automatically based on your
|
||||||
|
procurement rules, quantities forecasted and dependent demand (demand for this
|
||||||
|
part based on another part consuming it).
|
||||||
|
|
||||||
|
Define Flexible Master Data
|
||||||
|
---------------------------
|
||||||
|
|
||||||
|
Get the flexibility to create multi-level bill of materials, optional routing,
|
||||||
|
version changes and phantom bill of materials. You can use BoM for kits or for
|
||||||
|
manufacturing orders.
|
||||||
|
|
||||||
|
Get Flexibility In All Operations
|
||||||
|
---------------------------------
|
||||||
|
|
||||||
|
Edit manually all proposed operations at any level of the progress. With Odoo,
|
||||||
|
you will not be frustrated by a rigid system.
|
||||||
|
|
||||||
|
Schedule Work Orders
|
||||||
|
--------------------
|
||||||
|
|
||||||
|
Check resources capacities and fix bottlenecks. Define routings and plan the
|
||||||
|
working time and capacity of your resources. Quickly identify resource
|
||||||
|
requirements and bottlenecks to ensure your production meets your delivery
|
||||||
|
schedule dates.
|
||||||
|
|
||||||
|
|
||||||
|
A Productive User Interface
|
||||||
|
---------------------------
|
||||||
|
|
||||||
|
Organize manufacturing orders and work orders the way you like it. Process next
|
||||||
|
orders from the list view, control in the calendar view and edit the proposed
|
||||||
|
schedule in the Gantt view.
|
||||||
|
|
||||||
|
|
||||||
|
Inventory & Manufacturing Analytics
|
||||||
|
-----------------------------------
|
||||||
|
|
||||||
|
Track the evolution of the stock value, according to the level of manufacturing
|
||||||
|
activities as they progress in the transformation process.
|
||||||
|
|
||||||
|
Fully Integrated with Operations
|
||||||
|
--------------------------------
|
||||||
|
|
||||||
|
Get your manufacturing resource planning accurate with it's full integration
|
||||||
|
with sales and purchases apps. The accounting integration allows real time
|
||||||
|
accounting valuation and deeper reporting on costs and revenues on your
|
||||||
|
manufacturing operations.
|
||||||
|
|
||||||
46
odoo-bringout-oca-ocb-mrp/mrp/__init__.py
Normal file
46
odoo-bringout-oca-ocb-mrp/mrp/__init__.py
Normal file
|
|
@ -0,0 +1,46 @@
|
||||||
|
# -*- coding: utf-8 -*-
|
||||||
|
# Part of Odoo. See LICENSE file for full copyright and licensing details.
|
||||||
|
|
||||||
|
from . import models
|
||||||
|
from . import wizard
|
||||||
|
from . import report
|
||||||
|
from . import controller
|
||||||
|
from . import populate
|
||||||
|
|
||||||
|
from odoo import api, SUPERUSER_ID
|
||||||
|
|
||||||
|
|
||||||
|
def _pre_init_mrp(cr):
|
||||||
|
""" Allow installing MRP in databases with large stock.move table (>1M records)
|
||||||
|
- Creating the computed+stored field stock_move.is_done and
|
||||||
|
stock_move.unit_factor is terribly slow with the ORM and leads to "Out of
|
||||||
|
Memory" crashes
|
||||||
|
"""
|
||||||
|
cr.execute("""ALTER TABLE "stock_move" ADD COLUMN "is_done" bool;""")
|
||||||
|
cr.execute("""UPDATE stock_move
|
||||||
|
SET is_done=COALESCE(state in ('done', 'cancel'), FALSE);""")
|
||||||
|
cr.execute("""ALTER TABLE "stock_move" ADD COLUMN "unit_factor" double precision;""")
|
||||||
|
cr.execute("""UPDATE stock_move
|
||||||
|
SET unit_factor=1;""")
|
||||||
|
|
||||||
|
def _create_warehouse_data(cr, registry):
|
||||||
|
""" This hook is used to add a default manufacture_pull_id, manufacture
|
||||||
|
picking_type on every warehouse. It is necessary if the mrp module is
|
||||||
|
installed after some warehouses were already created.
|
||||||
|
"""
|
||||||
|
env = api.Environment(cr, SUPERUSER_ID, {})
|
||||||
|
warehouse_ids = env['stock.warehouse'].search([('manufacture_pull_id', '=', False)])
|
||||||
|
warehouse_ids.write({'manufacture_to_resupply': True})
|
||||||
|
|
||||||
|
def uninstall_hook(cr, registry):
|
||||||
|
env = api.Environment(cr, SUPERUSER_ID, {})
|
||||||
|
warehouses = env["stock.warehouse"].search([])
|
||||||
|
pbm_routes = warehouses.mapped("pbm_route_id")
|
||||||
|
warehouses.write({"pbm_route_id": False})
|
||||||
|
# Fail unlink means that the route is used somewhere (e.g. route_id on stock.rule). In this case
|
||||||
|
# we don't try to do anything.
|
||||||
|
try:
|
||||||
|
with env.cr.savepoint():
|
||||||
|
pbm_routes.unlink()
|
||||||
|
except:
|
||||||
|
pass
|
||||||
71
odoo-bringout-oca-ocb-mrp/mrp/__manifest__.py
Normal file
71
odoo-bringout-oca-ocb-mrp/mrp/__manifest__.py
Normal file
|
|
@ -0,0 +1,71 @@
|
||||||
|
# -*- coding: utf-8 -*-
|
||||||
|
# Part of Odoo. See LICENSE file for full copyright and licensing details.
|
||||||
|
|
||||||
|
|
||||||
|
{
|
||||||
|
'name': 'Manufacturing',
|
||||||
|
'version': '2.0',
|
||||||
|
'website': 'https://www.odoo.com/app/manufacturing',
|
||||||
|
'category': 'Manufacturing/Manufacturing',
|
||||||
|
'sequence': 55,
|
||||||
|
'summary': 'Manufacturing Orders & BOMs',
|
||||||
|
'depends': ['product', 'stock', 'resource'],
|
||||||
|
'data': [
|
||||||
|
'security/mrp_security.xml',
|
||||||
|
'security/ir.model.access.csv',
|
||||||
|
'data/digest_data.xml',
|
||||||
|
'data/mail_templates.xml',
|
||||||
|
'data/mrp_data.xml',
|
||||||
|
'wizard/change_production_qty_views.xml',
|
||||||
|
'wizard/mrp_workcenter_block_view.xml',
|
||||||
|
'wizard/stock_warn_insufficient_qty_views.xml',
|
||||||
|
'wizard/mrp_production_backorder.xml',
|
||||||
|
'wizard/mrp_consumption_warning_views.xml',
|
||||||
|
'wizard/mrp_immediate_production_views.xml',
|
||||||
|
'wizard/stock_assign_serial_numbers.xml',
|
||||||
|
'wizard/mrp_production_split.xml',
|
||||||
|
'views/mrp_views_menus.xml',
|
||||||
|
'views/stock_move_views.xml',
|
||||||
|
'views/mrp_workorder_views.xml',
|
||||||
|
'views/mrp_workcenter_views.xml',
|
||||||
|
'views/mrp_bom_views.xml',
|
||||||
|
'views/mrp_production_views.xml',
|
||||||
|
'views/mrp_routing_views.xml',
|
||||||
|
'views/product_views.xml',
|
||||||
|
'views/stock_orderpoint_views.xml',
|
||||||
|
'views/stock_warehouse_views.xml',
|
||||||
|
'views/stock_picking_views.xml',
|
||||||
|
'views/mrp_unbuild_views.xml',
|
||||||
|
'views/ir_attachment_view.xml',
|
||||||
|
'views/res_config_settings_views.xml',
|
||||||
|
'views/stock_scrap_views.xml',
|
||||||
|
'report/report_deliveryslip.xml',
|
||||||
|
'report/mrp_report_views_main.xml',
|
||||||
|
'report/mrp_report_bom_structure.xml',
|
||||||
|
'report/mrp_production_templates.xml',
|
||||||
|
'report/report_stock_forecasted.xml',
|
||||||
|
'report/report_stock_reception.xml',
|
||||||
|
'report/report_stock_rule.xml',
|
||||||
|
'report/mrp_zebra_production_templates.xml',
|
||||||
|
'report/mrp_workorder_templates.xml',
|
||||||
|
],
|
||||||
|
'demo': [
|
||||||
|
'data/mrp_demo.xml',
|
||||||
|
],
|
||||||
|
'application': True,
|
||||||
|
'pre_init_hook': '_pre_init_mrp',
|
||||||
|
'post_init_hook': '_create_warehouse_data',
|
||||||
|
'uninstall_hook': 'uninstall_hook',
|
||||||
|
'assets': {
|
||||||
|
'web.assets_backend': [
|
||||||
|
'mrp/static/src/**/*',
|
||||||
|
],
|
||||||
|
'web.assets_tests': [
|
||||||
|
'mrp/static/tests/tours/**/*',
|
||||||
|
],
|
||||||
|
'web.qunit_suite_tests': [
|
||||||
|
'mrp/static/tests/**/*',
|
||||||
|
],
|
||||||
|
},
|
||||||
|
'license': 'LGPL-3',
|
||||||
|
}
|
||||||
Binary file not shown.
4
odoo-bringout-oca-ocb-mrp/mrp/controller/__init__.py
Normal file
4
odoo-bringout-oca-ocb-mrp/mrp/controller/__init__.py
Normal file
|
|
@ -0,0 +1,4 @@
|
||||||
|
# -*- coding: utf-8 -*-
|
||||||
|
# Part of Odoo. See LICENSE file for full copyright and licensing details.
|
||||||
|
|
||||||
|
from . import main
|
||||||
Binary file not shown.
Binary file not shown.
35
odoo-bringout-oca-ocb-mrp/mrp/controller/main.py
Normal file
35
odoo-bringout-oca-ocb-mrp/mrp/controller/main.py
Normal file
|
|
@ -0,0 +1,35 @@
|
||||||
|
# -*- coding: utf-8 -*-
|
||||||
|
# Part of Odoo. See LICENSE file for full copyright and licensing details.
|
||||||
|
|
||||||
|
import base64
|
||||||
|
import json
|
||||||
|
import logging
|
||||||
|
|
||||||
|
from odoo import http
|
||||||
|
from odoo.http import request
|
||||||
|
from odoo.tools.translate import _
|
||||||
|
|
||||||
|
logger = logging.getLogger(__name__)
|
||||||
|
|
||||||
|
|
||||||
|
class MrpDocumentRoute(http.Controller):
|
||||||
|
|
||||||
|
@http.route('/mrp/upload_attachment', type='http', methods=['POST'], auth="user")
|
||||||
|
def upload_document(self, ufile, **kwargs):
|
||||||
|
files = request.httprequest.files.getlist('ufile')
|
||||||
|
result = {'success': _("All files uploaded")}
|
||||||
|
for ufile in files:
|
||||||
|
try:
|
||||||
|
mimetype = ufile.content_type
|
||||||
|
request.env['mrp.document'].create({
|
||||||
|
'name': ufile.filename,
|
||||||
|
'res_model': kwargs.get('res_model'),
|
||||||
|
'res_id': int(kwargs.get('res_id')),
|
||||||
|
'mimetype': mimetype,
|
||||||
|
'datas': base64.encodebytes(ufile.read()),
|
||||||
|
})
|
||||||
|
except Exception as e:
|
||||||
|
logger.exception("Fail to upload document %s" % ufile.filename)
|
||||||
|
result = {'error': str(e)}
|
||||||
|
|
||||||
|
return json.dumps(result)
|
||||||
17
odoo-bringout-oca-ocb-mrp/mrp/data/digest_data.xml
Normal file
17
odoo-bringout-oca-ocb-mrp/mrp/data/digest_data.xml
Normal file
|
|
@ -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="https://download.odoocdn.com/digests/mrp/static/src/img/mrp-tablet.png" style="margin-top: 20px; max-width: 580px" width="100%" />
|
||||||
|
</div>
|
||||||
|
</field>
|
||||||
|
</record>
|
||||||
|
</data>
|
||||||
|
</odoo>
|
||||||
53
odoo-bringout-oca-ocb-mrp/mrp/data/mail_templates.xml
Normal file
53
odoo-bringout-oca-ocb-mrp/mrp/data/mail_templates.xml
Normal file
|
|
@ -0,0 +1,53 @@
|
||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<odoo>
|
||||||
|
<template id="exception_on_mo">
|
||||||
|
<div class="alert alert-warning" role="alert">
|
||||||
|
Exception(s) occurred on the manufacturing order(s):
|
||||||
|
<a href="#" data-oe-model="mrp.production" t-att-data-oe-id="production_order.id"><t t-esc="production_order.name"/></a>.
|
||||||
|
Manual actions may be needed.
|
||||||
|
<div class="mt16">
|
||||||
|
<p>Exception(s):</p>
|
||||||
|
<ul t-foreach="order_exceptions.items()" t-as="order_exception">
|
||||||
|
<li>
|
||||||
|
<t t-set="move_raw_id" t-value="order_exception[0]"/>
|
||||||
|
<t t-set="exception" t-value="order_exception[1]"/>
|
||||||
|
<t t-set="order" t-value="exception[0]"/>
|
||||||
|
<t t-set="new_qty" t-value="exception[1][0]"/>
|
||||||
|
<t t-set="old_qty" t-value="exception[1][1]"/>
|
||||||
|
<a href="#" data-oe-model="mrp.production" t-att-data-oe-id="production_order.id"><t t-esc="production_order.name"/></a>:
|
||||||
|
<t t-esc="new_qty"/> <t t-esc="move_raw_id.product_uom.name"/> of <t t-esc="move_raw_id.product_id.name"/>
|
||||||
|
<t t-if="cancel">
|
||||||
|
cancelled
|
||||||
|
</t>
|
||||||
|
<t t-if="not cancel">
|
||||||
|
ordered instead of <t t-esc="old_qty"/> <t t-esc="move_raw_id.product_uom.name"/>
|
||||||
|
</t>
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
<div class="mt16" t-if="not cancel and impacted_pickings">
|
||||||
|
<p>Impacted Transfer(s):</p>
|
||||||
|
<ul t-foreach="impacted_pickings" t-as="picking">
|
||||||
|
<li><a href="#" data-oe-model="stock.picking" t-att-data-oe-id="picking.id"><t t-esc="picking.name"/></a></li>
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<template id="production_message">
|
||||||
|
<t t-if="move.move_id.raw_material_production_id">
|
||||||
|
<t t-set="message">Consumed</t>
|
||||||
|
</t>
|
||||||
|
<t t-if="move.move_id.production_id">
|
||||||
|
<t t-set="message">Produced</t>
|
||||||
|
</t>
|
||||||
|
<strong><t t-esc="message"/> quantity has been updated.</strong>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<template id="track_production_move_template">
|
||||||
|
<div>
|
||||||
|
<t t-call="mrp.production_message"/>
|
||||||
|
<t t-call="stock.message_body"/>
|
||||||
|
</div>
|
||||||
|
</template>
|
||||||
|
</odoo>
|
||||||
76
odoo-bringout-oca-ocb-mrp/mrp/data/mrp_data.xml
Normal file
76
odoo-bringout-oca-ocb-mrp/mrp/data/mrp_data.xml
Normal file
|
|
@ -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.route'>
|
||||||
|
<field name="name">Manufacture</field>
|
||||||
|
<field name="company_id"></field>
|
||||||
|
<field name="sequence">10</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>
|
||||||
729
odoo-bringout-oca-ocb-mrp/mrp/data/mrp_demo.xml
Normal file
729
odoo-bringout-oca-ocb-mrp/mrp/data/mrp_demo.xml
Normal file
|
|
@ -0,0 +1,729 @@
|
||||||
|
<?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="active">False</field>
|
||||||
|
<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>
|
||||||
|
<!-- 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="detailed_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="detailed_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="detailed_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="detailed_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="detailed_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="detailed_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="detailed_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="detailed_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="detailed_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="detailed_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="active">False</field>
|
||||||
|
<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"/>
|
||||||
|
</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"/>
|
||||||
|
</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>
|
||||||
|
|
||||||
|
<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="active">False</field>
|
||||||
|
<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="active">False</field>
|
||||||
|
<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="active">False</field>
|
||||||
|
<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="active">False</field>
|
||||||
|
<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>
|
||||||
|
<!-- 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="detailed_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">20.0</field>
|
||||||
|
<field name="list_price">24.0</field>
|
||||||
|
<field name="detailed_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">10</field>
|
||||||
|
<field name="list_price">20</field>
|
||||||
|
<field name="detailed_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.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.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.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.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_lot0" model="stock.quant">
|
||||||
|
<field name="product_id" ref="product.product_product_27"/>
|
||||||
|
<field name="inventory_quantity">50.0</field>
|
||||||
|
<field name="location_id" model="stock.location" eval="obj().env.ref('stock.warehouse0').lot_stock_id.id"/>
|
||||||
|
<field name="lot_id" ref="lot_product_27_0"/>
|
||||||
|
</record>
|
||||||
|
<record id="stock_inventory_drawer_lot1" model="stock.quant">
|
||||||
|
<field name="product_id" ref="product.product_product_27"/>
|
||||||
|
<field name="inventory_quantity">40.0</field>
|
||||||
|
<field name="location_id" model="stock.location" eval="obj().env.ref('stock.warehouse0').lot_stock_id.id"/>
|
||||||
|
<field name="lot_id" ref="lot_product_27_1"/>
|
||||||
|
</record>
|
||||||
|
<record id="stock_inventory_product_drawer_drawer" model="stock.quant">
|
||||||
|
<field name="product_id" ref="product_product_drawer_drawer"/>
|
||||||
|
<field name="inventory_quantity">50.0</field>
|
||||||
|
<field name="location_id" model="stock.location" eval="obj().env.ref('stock.warehouse0').lot_stock_id.id"/>
|
||||||
|
<field name="lot_id" ref="lot_product_product_drawer_drawer_0"/>
|
||||||
|
</record>
|
||||||
|
<record id="stock_inventory_product_drawer_case" model="stock.quant">
|
||||||
|
<field name="product_id" ref="product_product_drawer_case"/>
|
||||||
|
<field name="inventory_quantity">50.0</field>
|
||||||
|
<field name="location_id" model="stock.location" eval="obj().env.ref('stock.warehouse0').lot_stock_id.id"/>
|
||||||
|
<field name="lot_id" ref="lot_product_product_drawer_case_0"/>
|
||||||
|
</record>
|
||||||
|
<record id="stock_inventory_product_wood_panel" model="stock.quant">
|
||||||
|
<field name="product_id" ref="product_product_wood_panel"/>
|
||||||
|
<field name="inventory_quantity">50.0</field>
|
||||||
|
<field name="location_id" model="stock.location" eval="obj().env.ref('stock.warehouse0').lot_stock_id.id"/>
|
||||||
|
</record>
|
||||||
|
<record id="stock_inventory_product_ply" model="stock.quant">
|
||||||
|
<field name="product_id" ref="product_product_wood_ply"/>
|
||||||
|
<field name="inventory_quantity">20.0</field>
|
||||||
|
<field name="location_id" model="stock.location" eval="obj().env.ref('stock.warehouse0').lot_stock_id.id"/>
|
||||||
|
</record>
|
||||||
|
<record id="stock_inventory_product_wear" model="stock.quant">
|
||||||
|
<field name="product_id" ref="product_product_wood_wear"/>
|
||||||
|
<field name="inventory_quantity">30.0</field>
|
||||||
|
<field name="location_id" model="stock.location" eval="obj().env.ref('stock.warehouse0').lot_stock_id.id"/>
|
||||||
|
</record>
|
||||||
|
|
||||||
|
<function model="stock.quant" name="action_apply_inventory">
|
||||||
|
<function eval="[[('id', 'in', (ref('stock_inventory_drawer_lot0'),
|
||||||
|
ref('stock_inventory_drawer_lot1'),
|
||||||
|
ref('stock_inventory_product_drawer_drawer'),
|
||||||
|
ref('stock_inventory_product_drawer_case'),
|
||||||
|
ref('stock_inventory_product_wood_panel'),
|
||||||
|
ref('stock_inventory_product_ply'),
|
||||||
|
ref('stock_inventory_product_wear'),
|
||||||
|
))]]" model="stock.quant" name="search"/>
|
||||||
|
</function>
|
||||||
|
|
||||||
|
<!-- BoM -->
|
||||||
|
|
||||||
|
<record id="mrp_bom_drawer" 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_drawer_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_drawer"/>
|
||||||
|
</record>
|
||||||
|
<record id="mrp_bom_drawer_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_drawer"/>
|
||||||
|
</record>
|
||||||
|
|
||||||
|
<record id="mrp_bom_drawer_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_drawer_rout"/>
|
||||||
|
<field name="active">False</field>
|
||||||
|
<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_drawer_rout"/>
|
||||||
|
<field name="active">False</field>
|
||||||
|
<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_drawer_rout"/>
|
||||||
|
<field name="active">False</field>
|
||||||
|
<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_drawer_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_drawer_rout"/>
|
||||||
|
</record>
|
||||||
|
<record id="mrp_bom_drawer_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_drawer_rout"/>
|
||||||
|
</record>
|
||||||
|
|
||||||
|
<record id="product.product_product_27" model="product.product">
|
||||||
|
<field name="detailed_type">product</field>
|
||||||
|
</record>
|
||||||
|
<record id="mrp_production_drawer" 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_drawer"/>
|
||||||
|
</record>
|
||||||
|
|
||||||
|
<!-- 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="action_confirm" eval="[[
|
||||||
|
ref('mrp.mrp_production_3'),
|
||||||
|
ref('mrp.mrp_production_4'),
|
||||||
|
ref('mrp.mrp_production_drawer'),
|
||||||
|
]]"/>
|
||||||
|
|
||||||
|
<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_drawer')]"/>
|
||||||
|
<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_drawer')]"/>
|
||||||
|
</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_drawer').id)]).ids"/>
|
||||||
|
<value eval="{'quantity_done': 5}"/>
|
||||||
|
</function>
|
||||||
|
|
||||||
|
<function model="mrp.production" name="button_mark_done">
|
||||||
|
<value eval="[ref('mrp.mrp_production_drawer')]"/>
|
||||||
|
</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>
|
||||||
6275
odoo-bringout-oca-ocb-mrp/mrp/i18n/af.po
Normal file
6275
odoo-bringout-oca-ocb-mrp/mrp/i18n/af.po
Normal file
File diff suppressed because it is too large
Load diff
6275
odoo-bringout-oca-ocb-mrp/mrp/i18n/am.po
Normal file
6275
odoo-bringout-oca-ocb-mrp/mrp/i18n/am.po
Normal file
File diff suppressed because it is too large
Load diff
6495
odoo-bringout-oca-ocb-mrp/mrp/i18n/ar.po
Normal file
6495
odoo-bringout-oca-ocb-mrp/mrp/i18n/ar.po
Normal file
File diff suppressed because it is too large
Load diff
6410
odoo-bringout-oca-ocb-mrp/mrp/i18n/az.po
Normal file
6410
odoo-bringout-oca-ocb-mrp/mrp/i18n/az.po
Normal file
File diff suppressed because it is too large
Load diff
6287
odoo-bringout-oca-ocb-mrp/mrp/i18n/be.po
Normal file
6287
odoo-bringout-oca-ocb-mrp/mrp/i18n/be.po
Normal file
File diff suppressed because it is too large
Load diff
6409
odoo-bringout-oca-ocb-mrp/mrp/i18n/bg.po
Normal file
6409
odoo-bringout-oca-ocb-mrp/mrp/i18n/bg.po
Normal file
File diff suppressed because it is too large
Load diff
6283
odoo-bringout-oca-ocb-mrp/mrp/i18n/bs.po
Normal file
6283
odoo-bringout-oca-ocb-mrp/mrp/i18n/bs.po
Normal file
File diff suppressed because it is too large
Load diff
6613
odoo-bringout-oca-ocb-mrp/mrp/i18n/ca.po
Normal file
6613
odoo-bringout-oca-ocb-mrp/mrp/i18n/ca.po
Normal file
File diff suppressed because it is too large
Load diff
6470
odoo-bringout-oca-ocb-mrp/mrp/i18n/cs.po
Normal file
6470
odoo-bringout-oca-ocb-mrp/mrp/i18n/cs.po
Normal file
File diff suppressed because it is too large
Load diff
6485
odoo-bringout-oca-ocb-mrp/mrp/i18n/da.po
Normal file
6485
odoo-bringout-oca-ocb-mrp/mrp/i18n/da.po
Normal file
File diff suppressed because it is too large
Load diff
6640
odoo-bringout-oca-ocb-mrp/mrp/i18n/de.po
Normal file
6640
odoo-bringout-oca-ocb-mrp/mrp/i18n/de.po
Normal file
File diff suppressed because it is too large
Load diff
4432
odoo-bringout-oca-ocb-mrp/mrp/i18n/el.po
Normal file
4432
odoo-bringout-oca-ocb-mrp/mrp/i18n/el.po
Normal file
File diff suppressed because it is too large
Load diff
3766
odoo-bringout-oca-ocb-mrp/mrp/i18n/en_GB.po
Normal file
3766
odoo-bringout-oca-ocb-mrp/mrp/i18n/en_GB.po
Normal file
File diff suppressed because it is too large
Load diff
6613
odoo-bringout-oca-ocb-mrp/mrp/i18n/es.po
Normal file
6613
odoo-bringout-oca-ocb-mrp/mrp/i18n/es.po
Normal file
File diff suppressed because it is too large
Load diff
96
odoo-bringout-oca-ocb-mrp/mrp/i18n/es_BO.po
Normal file
96
odoo-bringout-oca-ocb-mrp/mrp/i18n/es_BO.po
Normal file
|
|
@ -0,0 +1,96 @@
|
||||||
|
# Translation of Odoo Server.
|
||||||
|
# This file contains the translation of the following modules:
|
||||||
|
# * mrp
|
||||||
|
#
|
||||||
|
# Translators:
|
||||||
|
# Martin Trigaux <mat@odoo.com>, 2017
|
||||||
|
msgid ""
|
||||||
|
msgstr ""
|
||||||
|
"Project-Id-Version: Odoo Server 11.0\n"
|
||||||
|
"Report-Msgid-Bugs-To: \n"
|
||||||
|
"POT-Creation-Date: 2017-11-16 08:08+0000\n"
|
||||||
|
"PO-Revision-Date: 2017-11-16 08:08+0000\n"
|
||||||
|
"Last-Translator: Martin Trigaux <mat@odoo.com>, 2017\n"
|
||||||
|
"Language-Team: Spanish (Bolivia) (https://www.transifex.com/odoo/teams/41243/"
|
||||||
|
"es_BO/)\n"
|
||||||
|
"Language: es_BO\n"
|
||||||
|
"MIME-Version: 1.0\n"
|
||||||
|
"Content-Type: text/plain; charset=UTF-8\n"
|
||||||
|
"Content-Transfer-Encoding: \n"
|
||||||
|
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
|
||||||
|
|
||||||
|
#. module: mrp
|
||||||
|
#: model_terms:ir.ui.view,arch_db:mrp.mrp_workcenter_kanban
|
||||||
|
msgid "<span>PLAN ORDERS</span>"
|
||||||
|
msgstr "<span>PLANITICAR ÓRDENES</span>"
|
||||||
|
|
||||||
|
#. module: mrp
|
||||||
|
#: model:ir.model.fields,field_description:mrp.field_change_production_qty__create_date
|
||||||
|
#: model:ir.model.fields,field_description:mrp.field_mrp_bom__create_date
|
||||||
|
#: model:ir.model.fields,field_description:mrp.field_mrp_bom_byproduct__create_date
|
||||||
|
#: model:ir.model.fields,field_description:mrp.field_mrp_bom_line__create_date
|
||||||
|
#: model:ir.model.fields,field_description:mrp.field_mrp_document__create_date
|
||||||
|
#: model:ir.model.fields,field_description:mrp.field_mrp_product_produce__create_date
|
||||||
|
#: model:ir.model.fields,field_description:mrp.field_mrp_product_produce_line__create_date
|
||||||
|
#: model:ir.model.fields,field_description:mrp.field_mrp_production__create_date
|
||||||
|
#: model:ir.model.fields,field_description:mrp.field_mrp_routing__create_date
|
||||||
|
#: model:ir.model.fields,field_description:mrp.field_mrp_routing_workcenter__create_date
|
||||||
|
#: model:ir.model.fields,field_description:mrp.field_mrp_unbuild__create_date
|
||||||
|
#: model:ir.model.fields,field_description:mrp.field_mrp_workcenter__create_date
|
||||||
|
#: model:ir.model.fields,field_description:mrp.field_mrp_workcenter_productivity__create_date
|
||||||
|
#: model:ir.model.fields,field_description:mrp.field_mrp_workcenter_productivity_loss__create_date
|
||||||
|
#: model:ir.model.fields,field_description:mrp.field_mrp_workcenter_productivity_loss_type__create_date
|
||||||
|
#: model:ir.model.fields,field_description:mrp.field_mrp_workorder__create_date
|
||||||
|
#: model:ir.model.fields,field_description:mrp.field_mrp_workorder_line__create_date
|
||||||
|
#: model:ir.model.fields,field_description:mrp.field_stock_warn_insufficient_qty_unbuild__create_date
|
||||||
|
msgid "Created on"
|
||||||
|
msgstr "Creado en"
|
||||||
|
|
||||||
|
#. module: mrp
|
||||||
|
#: model:ir.model.fields,field_description:mrp.field_change_production_qty__write_uid
|
||||||
|
#: model:ir.model.fields,field_description:mrp.field_mrp_bom__write_uid
|
||||||
|
#: model:ir.model.fields,field_description:mrp.field_mrp_bom_byproduct__write_uid
|
||||||
|
#: model:ir.model.fields,field_description:mrp.field_mrp_bom_line__write_uid
|
||||||
|
#: model:ir.model.fields,field_description:mrp.field_mrp_document__write_uid
|
||||||
|
#: model:ir.model.fields,field_description:mrp.field_mrp_product_produce__write_uid
|
||||||
|
#: model:ir.model.fields,field_description:mrp.field_mrp_product_produce_line__write_uid
|
||||||
|
#: model:ir.model.fields,field_description:mrp.field_mrp_production__write_uid
|
||||||
|
#: model:ir.model.fields,field_description:mrp.field_mrp_routing__write_uid
|
||||||
|
#: model:ir.model.fields,field_description:mrp.field_mrp_routing_workcenter__write_uid
|
||||||
|
#: model:ir.model.fields,field_description:mrp.field_mrp_unbuild__write_uid
|
||||||
|
#: model:ir.model.fields,field_description:mrp.field_mrp_workcenter__write_uid
|
||||||
|
#: model:ir.model.fields,field_description:mrp.field_mrp_workcenter_productivity__write_uid
|
||||||
|
#: model:ir.model.fields,field_description:mrp.field_mrp_workcenter_productivity_loss__write_uid
|
||||||
|
#: model:ir.model.fields,field_description:mrp.field_mrp_workcenter_productivity_loss_type__write_uid
|
||||||
|
#: model:ir.model.fields,field_description:mrp.field_mrp_workorder__write_uid
|
||||||
|
#: model:ir.model.fields,field_description:mrp.field_mrp_workorder_line__write_uid
|
||||||
|
#: model:ir.model.fields,field_description:mrp.field_stock_warn_insufficient_qty_unbuild__write_uid
|
||||||
|
msgid "Last Updated by"
|
||||||
|
msgstr "Última actualización de"
|
||||||
|
|
||||||
|
#. module: mrp
|
||||||
|
#: model:ir.model.fields,field_description:mrp.field_change_production_qty__write_date
|
||||||
|
#: model:ir.model.fields,field_description:mrp.field_mrp_bom__write_date
|
||||||
|
#: model:ir.model.fields,field_description:mrp.field_mrp_bom_byproduct__write_date
|
||||||
|
#: model:ir.model.fields,field_description:mrp.field_mrp_bom_line__write_date
|
||||||
|
#: model:ir.model.fields,field_description:mrp.field_mrp_document__write_date
|
||||||
|
#: model:ir.model.fields,field_description:mrp.field_mrp_product_produce__write_date
|
||||||
|
#: model:ir.model.fields,field_description:mrp.field_mrp_product_produce_line__write_date
|
||||||
|
#: model:ir.model.fields,field_description:mrp.field_mrp_production__write_date
|
||||||
|
#: model:ir.model.fields,field_description:mrp.field_mrp_routing__write_date
|
||||||
|
#: model:ir.model.fields,field_description:mrp.field_mrp_routing_workcenter__write_date
|
||||||
|
#: model:ir.model.fields,field_description:mrp.field_mrp_unbuild__write_date
|
||||||
|
#: model:ir.model.fields,field_description:mrp.field_mrp_workcenter__write_date
|
||||||
|
#: model:ir.model.fields,field_description:mrp.field_mrp_workcenter_productivity__write_date
|
||||||
|
#: model:ir.model.fields,field_description:mrp.field_mrp_workcenter_productivity_loss__write_date
|
||||||
|
#: model:ir.model.fields,field_description:mrp.field_mrp_workcenter_productivity_loss_type__write_date
|
||||||
|
#: model:ir.model.fields,field_description:mrp.field_mrp_workorder__write_date
|
||||||
|
#: model:ir.model.fields,field_description:mrp.field_mrp_workorder_line__write_date
|
||||||
|
#: model:ir.model.fields,field_description:mrp.field_stock_warn_insufficient_qty_unbuild__write_date
|
||||||
|
msgid "Last Updated on"
|
||||||
|
msgstr "Última actualización en"
|
||||||
|
|
||||||
|
#. module: mrp
|
||||||
|
#: model:ir.ui.menu,name:mrp.menu_mrp_reporting
|
||||||
|
msgid "Reporting"
|
||||||
|
msgstr "Informe"
|
||||||
3766
odoo-bringout-oca-ocb-mrp/mrp/i18n/es_CL.po
Normal file
3766
odoo-bringout-oca-ocb-mrp/mrp/i18n/es_CL.po
Normal file
File diff suppressed because it is too large
Load diff
3766
odoo-bringout-oca-ocb-mrp/mrp/i18n/es_CO.po
Normal file
3766
odoo-bringout-oca-ocb-mrp/mrp/i18n/es_CO.po
Normal file
File diff suppressed because it is too large
Load diff
3766
odoo-bringout-oca-ocb-mrp/mrp/i18n/es_CR.po
Normal file
3766
odoo-bringout-oca-ocb-mrp/mrp/i18n/es_CR.po
Normal file
File diff suppressed because it is too large
Load diff
3766
odoo-bringout-oca-ocb-mrp/mrp/i18n/es_DO.po
Normal file
3766
odoo-bringout-oca-ocb-mrp/mrp/i18n/es_DO.po
Normal file
File diff suppressed because it is too large
Load diff
3766
odoo-bringout-oca-ocb-mrp/mrp/i18n/es_EC.po
Normal file
3766
odoo-bringout-oca-ocb-mrp/mrp/i18n/es_EC.po
Normal file
File diff suppressed because it is too large
Load diff
6615
odoo-bringout-oca-ocb-mrp/mrp/i18n/es_MX.po
Normal file
6615
odoo-bringout-oca-ocb-mrp/mrp/i18n/es_MX.po
Normal file
File diff suppressed because it is too large
Load diff
3766
odoo-bringout-oca-ocb-mrp/mrp/i18n/es_PE.po
Normal file
3766
odoo-bringout-oca-ocb-mrp/mrp/i18n/es_PE.po
Normal file
File diff suppressed because it is too large
Load diff
3766
odoo-bringout-oca-ocb-mrp/mrp/i18n/es_PY.po
Normal file
3766
odoo-bringout-oca-ocb-mrp/mrp/i18n/es_PY.po
Normal file
File diff suppressed because it is too large
Load diff
3766
odoo-bringout-oca-ocb-mrp/mrp/i18n/es_VE.po
Normal file
3766
odoo-bringout-oca-ocb-mrp/mrp/i18n/es_VE.po
Normal file
File diff suppressed because it is too large
Load diff
6547
odoo-bringout-oca-ocb-mrp/mrp/i18n/et.po
Normal file
6547
odoo-bringout-oca-ocb-mrp/mrp/i18n/et.po
Normal file
File diff suppressed because it is too large
Load diff
3766
odoo-bringout-oca-ocb-mrp/mrp/i18n/eu.po
Normal file
3766
odoo-bringout-oca-ocb-mrp/mrp/i18n/eu.po
Normal file
File diff suppressed because it is too large
Load diff
6572
odoo-bringout-oca-ocb-mrp/mrp/i18n/fa.po
Normal file
6572
odoo-bringout-oca-ocb-mrp/mrp/i18n/fa.po
Normal file
File diff suppressed because it is too large
Load diff
6595
odoo-bringout-oca-ocb-mrp/mrp/i18n/fi.po
Normal file
6595
odoo-bringout-oca-ocb-mrp/mrp/i18n/fi.po
Normal file
File diff suppressed because it is too large
Load diff
3766
odoo-bringout-oca-ocb-mrp/mrp/i18n/fo.po
Normal file
3766
odoo-bringout-oca-ocb-mrp/mrp/i18n/fo.po
Normal file
File diff suppressed because it is too large
Load diff
6625
odoo-bringout-oca-ocb-mrp/mrp/i18n/fr.po
Normal file
6625
odoo-bringout-oca-ocb-mrp/mrp/i18n/fr.po
Normal file
File diff suppressed because it is too large
Load diff
3766
odoo-bringout-oca-ocb-mrp/mrp/i18n/fr_CA.po
Normal file
3766
odoo-bringout-oca-ocb-mrp/mrp/i18n/fr_CA.po
Normal file
File diff suppressed because it is too large
Load diff
3766
odoo-bringout-oca-ocb-mrp/mrp/i18n/gl.po
Normal file
3766
odoo-bringout-oca-ocb-mrp/mrp/i18n/gl.po
Normal file
File diff suppressed because it is too large
Load diff
6281
odoo-bringout-oca-ocb-mrp/mrp/i18n/gu.po
Normal file
6281
odoo-bringout-oca-ocb-mrp/mrp/i18n/gu.po
Normal file
File diff suppressed because it is too large
Load diff
6477
odoo-bringout-oca-ocb-mrp/mrp/i18n/he.po
Normal file
6477
odoo-bringout-oca-ocb-mrp/mrp/i18n/he.po
Normal file
File diff suppressed because it is too large
Load diff
6303
odoo-bringout-oca-ocb-mrp/mrp/i18n/hi.po
Normal file
6303
odoo-bringout-oca-ocb-mrp/mrp/i18n/hi.po
Normal file
File diff suppressed because it is too large
Load diff
6390
odoo-bringout-oca-ocb-mrp/mrp/i18n/hr.po
Normal file
6390
odoo-bringout-oca-ocb-mrp/mrp/i18n/hr.po
Normal file
File diff suppressed because it is too large
Load diff
6355
odoo-bringout-oca-ocb-mrp/mrp/i18n/hu.po
Normal file
6355
odoo-bringout-oca-ocb-mrp/mrp/i18n/hu.po
Normal file
File diff suppressed because it is too large
Load diff
6271
odoo-bringout-oca-ocb-mrp/mrp/i18n/hy.po
Normal file
6271
odoo-bringout-oca-ocb-mrp/mrp/i18n/hy.po
Normal file
File diff suppressed because it is too large
Load diff
6543
odoo-bringout-oca-ocb-mrp/mrp/i18n/id.po
Normal file
6543
odoo-bringout-oca-ocb-mrp/mrp/i18n/id.po
Normal file
File diff suppressed because it is too large
Load diff
6282
odoo-bringout-oca-ocb-mrp/mrp/i18n/is.po
Normal file
6282
odoo-bringout-oca-ocb-mrp/mrp/i18n/is.po
Normal file
File diff suppressed because it is too large
Load diff
6616
odoo-bringout-oca-ocb-mrp/mrp/i18n/it.po
Normal file
6616
odoo-bringout-oca-ocb-mrp/mrp/i18n/it.po
Normal file
File diff suppressed because it is too large
Load diff
6390
odoo-bringout-oca-ocb-mrp/mrp/i18n/ja.po
Normal file
6390
odoo-bringout-oca-ocb-mrp/mrp/i18n/ja.po
Normal file
File diff suppressed because it is too large
Load diff
3766
odoo-bringout-oca-ocb-mrp/mrp/i18n/ka.po
Normal file
3766
odoo-bringout-oca-ocb-mrp/mrp/i18n/ka.po
Normal file
File diff suppressed because it is too large
Load diff
3766
odoo-bringout-oca-ocb-mrp/mrp/i18n/kab.po
Normal file
3766
odoo-bringout-oca-ocb-mrp/mrp/i18n/kab.po
Normal file
File diff suppressed because it is too large
Load diff
6321
odoo-bringout-oca-ocb-mrp/mrp/i18n/km.po
Normal file
6321
odoo-bringout-oca-ocb-mrp/mrp/i18n/km.po
Normal file
File diff suppressed because it is too large
Load diff
6405
odoo-bringout-oca-ocb-mrp/mrp/i18n/ko.po
Normal file
6405
odoo-bringout-oca-ocb-mrp/mrp/i18n/ko.po
Normal file
File diff suppressed because it is too large
Load diff
4744
odoo-bringout-oca-ocb-mrp/mrp/i18n/lb.po
Normal file
4744
odoo-bringout-oca-ocb-mrp/mrp/i18n/lb.po
Normal file
File diff suppressed because it is too large
Load diff
6279
odoo-bringout-oca-ocb-mrp/mrp/i18n/lo.po
Normal file
6279
odoo-bringout-oca-ocb-mrp/mrp/i18n/lo.po
Normal file
File diff suppressed because it is too large
Load diff
6398
odoo-bringout-oca-ocb-mrp/mrp/i18n/lt.po
Normal file
6398
odoo-bringout-oca-ocb-mrp/mrp/i18n/lt.po
Normal file
File diff suppressed because it is too large
Load diff
6324
odoo-bringout-oca-ocb-mrp/mrp/i18n/lv.po
Normal file
6324
odoo-bringout-oca-ocb-mrp/mrp/i18n/lv.po
Normal file
File diff suppressed because it is too large
Load diff
3766
odoo-bringout-oca-ocb-mrp/mrp/i18n/mk.po
Normal file
3766
odoo-bringout-oca-ocb-mrp/mrp/i18n/mk.po
Normal file
File diff suppressed because it is too large
Load diff
6282
odoo-bringout-oca-ocb-mrp/mrp/i18n/ml.po
Normal file
6282
odoo-bringout-oca-ocb-mrp/mrp/i18n/ml.po
Normal file
File diff suppressed because it is too large
Load diff
6513
odoo-bringout-oca-ocb-mrp/mrp/i18n/mn.po
Normal file
6513
odoo-bringout-oca-ocb-mrp/mrp/i18n/mn.po
Normal file
File diff suppressed because it is too large
Load diff
6283
odoo-bringout-oca-ocb-mrp/mrp/i18n/mrp.pot
Normal file
6283
odoo-bringout-oca-ocb-mrp/mrp/i18n/mrp.pot
Normal file
File diff suppressed because it is too large
Load diff
6283
odoo-bringout-oca-ocb-mrp/mrp/i18n/ms.po
Normal file
6283
odoo-bringout-oca-ocb-mrp/mrp/i18n/ms.po
Normal file
File diff suppressed because it is too large
Load diff
6551
odoo-bringout-oca-ocb-mrp/mrp/i18n/nb.po
Normal file
6551
odoo-bringout-oca-ocb-mrp/mrp/i18n/nb.po
Normal file
File diff suppressed because it is too large
Load diff
3763
odoo-bringout-oca-ocb-mrp/mrp/i18n/ne.po
Normal file
3763
odoo-bringout-oca-ocb-mrp/mrp/i18n/ne.po
Normal file
File diff suppressed because it is too large
Load diff
6611
odoo-bringout-oca-ocb-mrp/mrp/i18n/nl.po
Normal file
6611
odoo-bringout-oca-ocb-mrp/mrp/i18n/nl.po
Normal file
File diff suppressed because it is too large
Load diff
6275
odoo-bringout-oca-ocb-mrp/mrp/i18n/no.po
Normal file
6275
odoo-bringout-oca-ocb-mrp/mrp/i18n/no.po
Normal file
File diff suppressed because it is too large
Load diff
6617
odoo-bringout-oca-ocb-mrp/mrp/i18n/pl.po
Normal file
6617
odoo-bringout-oca-ocb-mrp/mrp/i18n/pl.po
Normal file
File diff suppressed because it is too large
Load diff
6346
odoo-bringout-oca-ocb-mrp/mrp/i18n/pt.po
Normal file
6346
odoo-bringout-oca-ocb-mrp/mrp/i18n/pt.po
Normal file
File diff suppressed because it is too large
Load diff
6602
odoo-bringout-oca-ocb-mrp/mrp/i18n/pt_BR.po
Normal file
6602
odoo-bringout-oca-ocb-mrp/mrp/i18n/pt_BR.po
Normal file
File diff suppressed because it is too large
Load diff
6589
odoo-bringout-oca-ocb-mrp/mrp/i18n/ro.po
Normal file
6589
odoo-bringout-oca-ocb-mrp/mrp/i18n/ro.po
Normal file
File diff suppressed because it is too large
Load diff
6617
odoo-bringout-oca-ocb-mrp/mrp/i18n/ru.po
Normal file
6617
odoo-bringout-oca-ocb-mrp/mrp/i18n/ru.po
Normal file
File diff suppressed because it is too large
Load diff
6559
odoo-bringout-oca-ocb-mrp/mrp/i18n/sk.po
Normal file
6559
odoo-bringout-oca-ocb-mrp/mrp/i18n/sk.po
Normal file
File diff suppressed because it is too large
Load diff
6337
odoo-bringout-oca-ocb-mrp/mrp/i18n/sl.po
Normal file
6337
odoo-bringout-oca-ocb-mrp/mrp/i18n/sl.po
Normal file
File diff suppressed because it is too large
Load diff
6271
odoo-bringout-oca-ocb-mrp/mrp/i18n/sq.po
Normal file
6271
odoo-bringout-oca-ocb-mrp/mrp/i18n/sq.po
Normal file
File diff suppressed because it is too large
Load diff
6526
odoo-bringout-oca-ocb-mrp/mrp/i18n/sr.po
Normal file
6526
odoo-bringout-oca-ocb-mrp/mrp/i18n/sr.po
Normal file
File diff suppressed because it is too large
Load diff
3811
odoo-bringout-oca-ocb-mrp/mrp/i18n/sr@latin.po
Normal file
3811
odoo-bringout-oca-ocb-mrp/mrp/i18n/sr@latin.po
Normal file
File diff suppressed because it is too large
Load diff
6595
odoo-bringout-oca-ocb-mrp/mrp/i18n/sv.po
Normal file
6595
odoo-bringout-oca-ocb-mrp/mrp/i18n/sv.po
Normal file
File diff suppressed because it is too large
Load diff
6271
odoo-bringout-oca-ocb-mrp/mrp/i18n/sw.po
Normal file
6271
odoo-bringout-oca-ocb-mrp/mrp/i18n/sw.po
Normal file
File diff suppressed because it is too large
Load diff
6271
odoo-bringout-oca-ocb-mrp/mrp/i18n/ta.po
Normal file
6271
odoo-bringout-oca-ocb-mrp/mrp/i18n/ta.po
Normal file
File diff suppressed because it is too large
Load diff
6513
odoo-bringout-oca-ocb-mrp/mrp/i18n/th.po
Normal file
6513
odoo-bringout-oca-ocb-mrp/mrp/i18n/th.po
Normal file
File diff suppressed because it is too large
Load diff
Some files were not shown because too many files have changed in this diff Show more
Loading…
Add table
Add a link
Reference in a new issue