Merge pull request #57 from pedrobaeza/8.0-mrp_operations_extension

[8.0] mrp_hook + mrp_operations_extension
This commit is contained in:
Pedro M. Baeza
2015-12-09 11:03:06 +01:00
67 changed files with 5983 additions and 4 deletions

View File

@@ -3,6 +3,7 @@
# License AGPL-3 - See http://www.gnu.org/licenses/agpl-3.0.html
from openerp import models, fields, api
from openerp.tools import config
class MrpBom(models.Model):
@@ -24,14 +25,29 @@ class MrpBom(models.Model):
parent = parent.parent_bom
self.old_versions = old_version
def _default_active(self):
"""Needed for preserving normal flow when testing other modules."""
res = False
if config['test_enable']:
res = not bool(self.env.context.get('test_mrp_bom_version'))
return res
def _default_state(self):
"""Needed for preserving normal flow when testing other modules."""
res = 'active'
if (config['test_enable'] and
self.env.context.get('test_mrp_bom_version')):
res = 'draft'
return res
active = fields.Boolean(
string='Active', default=False, readonly=True,
states={'draft': [('readonly', False)]})
default=_default_active,
readonly=True, states={'draft': [('readonly', False)]})
historical_date = fields.Date(string='Historical Date', readonly=True)
state = fields.Selection(
selection=[('draft', 'Draft'), ('active', 'Active'),
('historical', 'Historical')], string='State',
index=True, readonly=True, default='draft', copy=False)
index=True, readonly=True, default=_default_state, copy=False)
product_tmpl_id = fields.Many2one(
readonly=True, states={'draft': [('readonly', False)]})
product_id = fields.Many2one(

View File

@@ -10,7 +10,8 @@ class TestMrpBomVersion(common.TransactionCase):
def setUp(self):
super(TestMrpBomVersion, self).setUp()
self.parameter_model = self.env['ir.config_parameter']
self.bom_model = self.env['mrp.bom']
self.bom_model = self.env['mrp.bom'].with_context(
test_mrp_bom_version=True)
self.company = self.env.ref('base.main_company')
vals = {
'company_id': self.company.id,

61
mrp_hook/README.rst Normal file
View File

@@ -0,0 +1,61 @@
.. image:: https://img.shields.io/badge/licence-AGPL--3-blue.svg
:target: http://www.gnu.org/licenses/agpl-3.0-standalone.html
:alt: License: AGPL-3
===============================
Hooks for enabling advanced MRP
===============================
Technical module that provides the proper framework infrastructure (hooks,
fallback, etc) to enable advanced functionality in the manufacturing area,
as https://github.com/odoo/odoo/pull/8885 hasn't been accepted for v8:
* Hooks in *_bom_explode* method to return a dictionary for consumption and
workcenter lines.
* Provide product and template on *_bom_find*.
Usage
=====
By itself it doesn't provide anything visible, but serves as base for others
modules to develop its features.
.. image:: https://odoo-community.org/website/image/ir.attachment/5784_f2813bd/datas
:alt: Try me on Runbot
:target: https://runbot.odoo-community.org/runbot/129/8.0
Known issues / Roadmap
======================
* This module fully overwrites _bom_explode method, so any other module
inheriting this method should take this into account.
* On v9, this module can be removed, as the hooks have been integrated.
Credits
=======
Contributors
------------
* Pedro M. Baeza <pedro.baeza@serviciosbaeza.com>
Images
------
* Original Odoo MRP icon
* Thanks to https://openclipart.org/detail/151441/lifting-hook
Maintainer
----------
.. image:: https://odoo-community.org/logo.png
:alt: Odoo Community Association
:target: https://odoo-community.org
This module is maintained by the OCA.
OCA, or the Odoo Community Association, is a nonprofit organization whose
mission is to support the collaborative development of Odoo features and
promote its widespread use.
To contribute to this module, please visit https://odoo-community.org.

5
mrp_hook/__init__.py Normal file
View File

@@ -0,0 +1,5 @@
# -*- coding: utf-8 -*-
# © 2015 Serv. Tecnol. Avanzados - Pedro M. Baeza
# License AGPL-3 - See http://www.gnu.org/licenses/agpl-3.0.html
from . import models

26
mrp_hook/__openerp__.py Normal file
View File

@@ -0,0 +1,26 @@
# -*- coding: utf-8 -*-
# (c) 2015 Serv. Tecnol. Avanzados - Pedro M. Baeza
# License AGPL-3 - See http://www.gnu.org/licenses/agpl-3.0.html
{
"name": "MRP Hooks",
"version": "8.0.1.0.0",
"license": "AGPL-3",
"category": "Hidden",
"author": "OdooMRP team, "
"AvanzOSC, "
"Serv. Tecnol. Avanzados - Pedro M. Baeza, "
"Antiun Ingeniería, "
"Odoo Community Association (OCA), ",
"website": "http://www.odoomrp.com",
"contributors": [
"Pedro M. Baeza <pedro.baeza@serviciosbaeza.com>",
],
"depends": [
"mrp",
],
"images": [
"images/image.png"
],
"installable": True
}

39
mrp_hook/i18n/es.po Normal file
View File

@@ -0,0 +1,39 @@
# Translation of Odoo Server.
# This file contains the translation of the following modules:
# * mrp_hook
#
# Translators:
msgid ""
msgstr ""
"Project-Id-Version: odoomrp-wip (8.0)\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2015-11-20 17:16+0000\n"
"PO-Revision-Date: 2015-11-13 21:25+0000\n"
"Last-Translator: <>\n"
"Language-Team: Spanish (http://www.transifex.com/oca/odoomrp-wip-8-0/language/es/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: \n"
"Language: es\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
#. module: mrp_hook
#: model:ir.model,name:mrp_hook.model_mrp_bom
msgid "Bill of Material"
msgstr "Lista de material"
#. module: mrp_hook
#: code:addons/mrp_hook/models/mrp_bom.py:119
#, python-format
msgid "BoM \"%s\" contains a BoM line with a product recursion: \"%s\"."
msgstr "La LdM \"%s\" contiene una línea con un producto recursivo: \"%s\"."
#. module: mrp_hook
#: code:addons/mrp_hook/models/mrp_bom.py:147
#, python-format
msgid ""
"BoM \"%s\" contains a phantom BoM line but the product \"%s\" does not have "
"any BoM defined."
"La LdM \"%s\" contiene una línea fantasma pero el producto \"%s\" no tiene "
"ninguna LdM definida."
msgstr ""

37
mrp_hook/i18n/it.po Normal file
View File

@@ -0,0 +1,37 @@
# Translation of Odoo Server.
# This file contains the translation of the following modules:
# * mrp_hook
#
# Translators:
msgid ""
msgstr ""
"Project-Id-Version: odoomrp-wip (8.0)\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2015-11-20 17:16+0000\n"
"PO-Revision-Date: 2015-11-13 21:25+0000\n"
"Last-Translator: <>\n"
"Language-Team: Italian (http://www.transifex.com/oca/odoomrp-wip-8-0/language/it/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: \n"
"Language: it\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
#. module: mrp_hook
#: model:ir.model,name:mrp_hook.model_mrp_bom
msgid "Bill of Material"
msgstr "Distinta base"
#. module: mrp_hook
#: code:addons/mrp_hook/models/mrp_bom.py:119
#, python-format
msgid "BoM \"%s\" contains a BoM line with a product recursion: \"%s\"."
msgstr ""
#. module: mrp_hook
#: code:addons/mrp_hook/models/mrp_bom.py:147
#, python-format
msgid ""
"BoM \"%s\" contains a phantom BoM line but the product \"%s\" does not have "
"any BoM defined."
msgstr ""

37
mrp_hook/i18n/pt_BR.po Normal file
View File

@@ -0,0 +1,37 @@
# Translation of Odoo Server.
# This file contains the translation of the following modules:
# * mrp_hook
#
# Translators:
msgid ""
msgstr ""
"Project-Id-Version: odoomrp-wip (8.0)\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2015-11-20 17:16+0000\n"
"PO-Revision-Date: 2015-11-13 21:25+0000\n"
"Last-Translator: <>\n"
"Language-Team: Portuguese (Brazil) (http://www.transifex.com/oca/odoomrp-wip-8-0/language/pt_BR/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: \n"
"Language: pt_BR\n"
"Plural-Forms: nplurals=2; plural=(n > 1);\n"
#. module: mrp_hook
#: model:ir.model,name:mrp_hook.model_mrp_bom
msgid "Bill of Material"
msgstr "Lista de materiais"
#. module: mrp_hook
#: code:addons/mrp_hook/models/mrp_bom.py:119
#, python-format
msgid "BoM \"%s\" contains a BoM line with a product recursion: \"%s\"."
msgstr ""
#. module: mrp_hook
#: code:addons/mrp_hook/models/mrp_bom.py:147
#, python-format
msgid ""
"BoM \"%s\" contains a phantom BoM line but the product \"%s\" does not have "
"any BoM defined."
msgstr ""

38
mrp_hook/i18n/ro.po Normal file
View File

@@ -0,0 +1,38 @@
# Translation of Odoo Server.
# This file contains the translation of the following modules:
# * mrp_hook
#
# Translators:
# Dorin Hongu <dhongu@gmail.com>, 2015
msgid ""
msgstr ""
"Project-Id-Version: odoomrp-wip (8.0)\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2015-11-20 17:16+0000\n"
"PO-Revision-Date: 2015-11-18 00:46+0000\n"
"Last-Translator: Dorin Hongu <dhongu@gmail.com>\n"
"Language-Team: Romanian (http://www.transifex.com/oca/odoomrp-wip-8-0/language/ro/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: \n"
"Language: ro\n"
"Plural-Forms: nplurals=3; plural=(n==1?0:(((n%100>19)||((n%100==0)&&(n!=0)))?2:1));\n"
#. module: mrp_hook
#: model:ir.model,name:mrp_hook.model_mrp_bom
msgid "Bill of Material"
msgstr "Listă de materiale"
#. module: mrp_hook
#: code:addons/mrp_hook/models/mrp_bom.py:119
#, python-format
msgid "BoM \"%s\" contains a BoM line with a product recursion: \"%s\"."
msgstr "LdM\"%s\" conține o line cu un produs recurent: \"%s\"."
#. module: mrp_hook
#: code:addons/mrp_hook/models/mrp_bom.py:147
#, python-format
msgid ""
"BoM \"%s\" contains a phantom BoM line but the product \"%s\" does not have "
"any BoM defined."
msgstr "LdM \"%s\" conține o linie fantomă dar produsul \"%s\" nu are definită o LdM."

38
mrp_hook/i18n/sl.po Normal file
View File

@@ -0,0 +1,38 @@
# Translation of Odoo Server.
# This file contains the translation of the following modules:
# * mrp_hook
#
# Translators:
# Matjaž Mozetič <m.mozetic@matmoz.si>, 2015
msgid ""
msgstr ""
"Project-Id-Version: odoomrp-wip (8.0)\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2015-11-20 17:16+0000\n"
"PO-Revision-Date: 2015-11-14 04:47+0000\n"
"Last-Translator: Matjaž Mozetič <m.mozetic@matmoz.si>\n"
"Language-Team: Slovenian (http://www.transifex.com/oca/odoomrp-wip-8-0/language/sl/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: \n"
"Language: sl\n"
"Plural-Forms: nplurals=4; plural=(n%100==1 ? 0 : n%100==2 ? 1 : n%100==3 || n%100==4 ? 2 : 3);\n"
#. module: mrp_hook
#: model:ir.model,name:mrp_hook.model_mrp_bom
msgid "Bill of Material"
msgstr "Kosovnica"
#. module: mrp_hook
#: code:addons/mrp_hook/models/mrp_bom.py:119
#, python-format
msgid "BoM \"%s\" contains a BoM line with a product recursion: \"%s\"."
msgstr "Kosovnica \"%s\" vsebuje postavko z rekurzivnim proizvodom: \"%s\"."
#. module: mrp_hook
#: code:addons/mrp_hook/models/mrp_bom.py:147
#, python-format
msgid ""
"BoM \"%s\" contains a phantom BoM line but the product \"%s\" does not have "
"any BoM defined."
msgstr "Kosovnica \"%s\" vsebuje postavko navidezne kosovnice, a proizvod \"%s\" nima določene nobene kosovnice."

BIN
mrp_hook/images/image.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 114 KiB

81
mrp_hook/images/image.svg Normal file

File diff suppressed because one or more lines are too long

After

Width:  |  Height:  |  Size: 125 KiB

View File

@@ -0,0 +1,5 @@
# -*- coding: utf-8 -*-
# (c) 2015 Serv. Tecnol. Avanzados - Pedro M. Baeza
# License AGPL-3 - See http://www.gnu.org/licenses/agpl-3.0.html
from . import mrp_bom

154
mrp_hook/models/mrp_bom.py Normal file
View File

@@ -0,0 +1,154 @@
# -*- coding: utf-8 -*-
# (c) 2015 Serv. Tecnol. Avanzados - Pedro M. Baeza
# License AGPL-3 - See http://www.gnu.org/licenses/agpl-3.0.html
from openerp import api, models, tools, _
from openerp.exceptions import Warning as UserError
from openerp.addons.product import _common
class MrpBom(models.Model):
_inherit = 'mrp.bom'
@api.model
def _factor(self, factor, product_efficiency, product_rounding):
factor = factor / (product_efficiency or 1.0)
factor = _common.ceiling(factor, product_rounding)
if factor < product_rounding:
factor = product_rounding
return factor
@api.multi
def _prepare_wc_line(self, wc_use, level=0, factor=1):
self.ensure_one()
wc = wc_use.workcenter_id
d, m = divmod(factor, wc_use.workcenter_id.capacity_per_cycle)
mult = (d + (m and 1.0 or 0.0))
cycle = mult * wc_use.cycle_nbr
return {
'name': (tools.ustr(wc_use.name) + ' - ' +
tools.ustr(self.product_tmpl_id.name_get()[0][1])),
'workcenter_id': wc.id,
'sequence': level + (wc_use.sequence or 0),
'cycle': cycle,
'hour': float(
wc_use.hour_nbr * mult +
(wc.time_start or 0.0) +
(wc.time_stop or 0.0) +
cycle * (wc.time_cycle or 0.0) * (wc.time_efficiency or 1.0)),
}
@api.model
def _prepare_consume_line(self, bom_line, quantity, factor=1):
uos_qty = (bom_line.product_uos and
self._factor(
bom_line.product_uos_qty * factor,
bom_line.product_efficiency, bom_line.product_rounding))
return {
'name': bom_line.product_id.name,
'product_id': bom_line.product_id.id,
'product_qty': quantity,
'product_uom': bom_line.product_uom.id,
'product_uos_qty': uos_qty or False,
'product_uos': bom_line.product_uos.id,
}
@api.model
def _bom_find_prepare(self, bom_line, properties=None):
return self._bom_find(
product_id=bom_line.product_id.id, properties=properties)
@api.model
def _get_bom_product_name(self, bom_line):
return bom_line.product_id.name_get()[0][1]
@api.v7
def _bom_explode(self, cr, uid, bom, product, factor, properties=None,
level=0, routing_id=False, previous_products=None,
master_bom=None, context=None):
""" Finds Products and Work Centers for related BoM for manufacturing
order.
Verbatim copy of core method extracting the hooks already merged on
v9 branch.
@param bom: BoM of particular product template.
@param product: Select a particular variant of the BoM. If False use
BoM without variants.
@param factor: Factor represents the quantity, but in UoM of the BoM,
taking into account the numbers produced by the BoM
@param properties: A List of properties Ids.
@param level: Depth level to find BoM lines starts from 10.
@param previous_products: List of product previously use by bom
explore to avoid recursion
@param master_bom: When recursion, used to display the name of the
master bom
@return: result: List of dictionaries containing product details.
result2: List of dictionaries containing Work Center details.
"""
return bom._bom_explode(
product, factor, properties=properties, level=level,
routing_id=routing_id, previous_products=previous_products,
master_bom=master_bom)
@api.v8
def _bom_explode(self, product, factor, properties=None, level=0,
routing_id=False, previous_products=None,
master_bom=None):
self.ensure_one()
bom = self
uom_obj = self.env["product.uom"]
routing_obj = self.env['mrp.routing']
master_bom = master_bom or bom
factor = self._factor(
factor, bom.product_efficiency, bom.product_rounding)
result = []
result2 = []
routing = ((routing_id and routing_obj.browse(routing_id)) or
bom.routing_id or False)
if routing:
for wc_use in routing.workcenter_lines:
result2.append(self._prepare_wc_line(
wc_use, level=level, factor=factor))
for bom_line_id in bom.bom_line_ids:
if self._skip_bom_line(bom_line_id, product):
continue
if (set(map(int, bom_line_id.property_ids or [])) -
set(properties or [])):
continue
product_tmpl_id = bom_line_id.product_id.product_tmpl_id.id
if (previous_products and
product_tmpl_id in previous_products):
raise UserError(
_('BoM "%s" contains a BoM line with a product recursion: '
'"%s".') % (master_bom.name,
bom_line_id.product_id.name_get()[0][1]))
quantity = self._factor(
bom_line_id.product_qty * factor,
bom_line_id.product_efficiency, bom_line_id.product_rounding)
bom_id = self._bom_find_prepare(bom_line_id, properties=properties)
# If BoM should not behave like PhantoM, just add the product,
# otherwise explode further
if (bom_line_id.type != "phantom" and
(not bom_id or self.browse(bom_id).type != "phantom")):
result.append(
self._prepare_consume_line(bom_line_id, quantity, factor))
elif bom_id:
all_prod = [bom.product_tmpl_id.id] + (previous_products or [])
bom2 = self.browse(bom_id)
# We need to convert to units/UoM of chosen BoM
factor2 = uom_obj._compute_qty(
bom_line_id.product_uom.id, quantity, bom2.product_uom.id)
quantity2 = factor2 / bom2.product_qty
res = bom2._bom_explode(
bom_line_id.product_id, quantity2, properties=properties,
level=level + 10, previous_products=all_prod,
master_bom=master_bom)
result = result + res[0]
result2 = result2 + res[1]
else:
raise UserError(
_('BoM "%s" contains a phantom BoM line but the product '
'"%s" does not have any BoM defined.') %
(master_bom.name, self._get_bom_product_name(bom_line_id)))
return result, result2

Binary file not shown.

After

Width:  |  Height:  |  Size: 8.7 KiB

File diff suppressed because one or more lines are too long

After

Width:  |  Height:  |  Size: 9.0 KiB

View File

@@ -0,0 +1,6 @@
# -*- coding: utf-8 -*-
# © 2015 Pedro M. Baeza
# © 2015 Antiun Ingeniería
# License AGPL-3 - See http://www.gnu.org/licenses/agpl-3.0.html
from . import test_mrp_hook

View File

@@ -0,0 +1,54 @@
# -*- coding: utf-8 -*-
# © 2015 Avanzosc
# © 2015 Pedro M. Baeza - Antiun Ingeniería
# License AGPL-3 - See http://www.gnu.org/licenses/agpl-3.0.html
import openerp.tests.common as common
from openerp.exceptions import Warning as UserError
class TestMrpHook(common.TransactionCase):
def setUp(self):
super(TestMrpHook, self).setUp()
self.product_model = self.env['product.product']
self.product = self.product_model.create({'name': 'Test product'})
self.raw_product = self.product_model.create({'name': 'Raw product'})
self.bom = self.env['mrp.bom'].create(
{
'name': self.product.name,
'product_id': self.product.id,
'product_tmpl_id': self.product.product_tmpl_id.id,
'bom_line_ids': [
(0, 0, {'product_id': self.raw_product.id,
'type': 'normal',
'product_qty': 2})]
})
def test_bom_explode_normal(self):
products = self.bom._bom_explode(self.product, 1)[0]
self.assertEqual(len(products), 1)
self.assertEqual(products[0]['product_id'], self.raw_product.id)
self.assertEqual(products[0]['product_qty'], 2)
def test_bom_explode_phantom_error(self):
self.bom.bom_line_ids[0].type = 'phantom'
with self.assertRaises(UserError):
self.bom._bom_explode(self.product, 1)
def test_bom_explode_phantom(self):
self.bom.bom_line_ids[0].type = 'phantom'
raw_product_2 = self.product_model.create({'name': 'Raw product 2'})
self.env['mrp.bom'].create(
{
'name': self.raw_product.name,
'product_id': self.raw_product.id,
'product_tmpl_id': self.raw_product.product_tmpl_id.id,
'bom_line_ids': [
(0, 0, {'product_id': raw_product_2.id,
'type': 'normal',
'product_qty': 3})]
})
products = self.bom._bom_explode(self.product, 1)[0]
self.assertEqual(len(products), 1)
self.assertEqual(products[0]['product_id'], raw_product_2.id)
self.assertEqual(products[0]['product_qty'], 6)

View File

@@ -0,0 +1,135 @@
.. image:: https://img.shields.io/badge/licence-AGPL--3-blue.svg
:target: http://www.gnu.org/licenses/agpl-3.0-standalone.html
:alt: License: AGPL-3
==================================
Manufacturing Operations Extension
==================================
This module adds:
* New table to store operations to avoid typing them again.
* Adds a relation from workcenter lines to Bill of Materials (BoM) lists.
* Adds a relation between workcenter lines and Manufacturing Orders in
Scheduled/Consumed/Finished products.
* Adds a relation between workcenter lines and BoM lists.
* Allows to set specific times per routing in addition to workcenter times.
* Controls the availability of material in operations
* Controls operation beginning in previous operations are not finished.
Installation
============
Once the module is installed, it transforms all existing routings to:
* Mark the last operation as the one where the production is done.
* Create a workcenter routing line (new model for allowing more than one
workcenter per operation) for the current selected workcenter.
Configuration
=============
Go to *Settings > Manufacturing* and activate "Manage routings and work orders"
for handling the features of this module.
Usage
=====
You can go to *Manufacturing > Configuration > Operations* to add templates
of the operations you do on your manufacturing process defining:
* Possible workcenters to use.
* Number of operators involved.
* Extended description.
This operation template can then be selected when you create routing lines
in *Manufacturing > Products > Routings* as the default initial data for that
line.
In this screen, you are now allowed to put more than one possible work
centers, and you can also select if the capacity data of the work center
is specific for that route or the general one.
You can also define here in which of the lines the production is going to be
made, in order to prevent to do it before reaching this operation. This is done
marking the check "Produce here" in the routing line.
One last possibility for the routing lines is to set if you require to finish
previous operations before allowing to start this one, which is done marking
the check "Previous operations finished".
Once defined the routing, you can select the routing on your BoMs, going to
*Manufacturing > Products > Bill of Materials*, and select for each component
in which routing operation you are going to consume the material.
Finally, having all set, we can create a manufacturing order with a BoM and
a routing selected. Clicking on "Compute Data" button on "Work Orders" or
"Scheduled Products" tab, we will preview which work orders and products we
will need for this manufacturing.
Clicking on a work order line, we can see in detail the times involved for that
operation and the raw materials that are going to be consumed on it.
We can start the manufacturing process clicking on "Confirm Production" button.
Then, we can control each operation start from the "Work Orders" tab of the
manufacturing order, or go to *Manufacturing > Manufacturing > Work Orders*
to see them directly. We will only be allowed to consume the materials that
has been assigned to the corresponding work order, and to produce when the
operation with the "Produce here" flag is set.
.. image:: https://odoo-community.org/website/image/ir.attachment/5784_f2813bd/datas
:alt: Try me on Runbot
:target: https://runbot.odoo-community.org/runbot/129/8.0
Known issues
============
* *hr_timesheet* is a big dependency for only catching the employee cost when
selecting operators in the workcenter. A glue module for this operation
would be desired.
Bug Tracker
===========
Bugs are tracked on `GitHub Issues
<https://github.com/OCA/manufacture/issues>`_. In case of trouble, please
check there if your issue has already been reported. If you spotted it first,
help us smashing it by providing a detailed and welcomed `feedback
<https://github.com/OCA/
manufacture/issues/new?body=module:%20
mrp_operations_extension%0Aversion:%20
8.0%0A%0A**Steps%20to%20reproduce**%0A-%20...%0A%0A**Current%20behavior**%0A%0A**Expected%20behavior**>`_.
Credits
=======
Contributors
------------
* Daniel Campos <danielcampos@avanzosc.es>
* Mikel Arregi <mikelarregi@avanzosc.es>
* Oihane Crucelaegui <oihanecrucelaegi@avanzosc.es>
* Pedro M. Baeza <pedro.baeza@serviciosbaeza.com>
* Ana Juaristi <anajuaristi@avanzosc.es>
* Rafael Blasco <rafabn@antiun.com>
Images
------
* Original Odoo MRP icon
* Thanks to https://openclipart.org/detail/151831/work-bench
Maintainer
----------
.. image:: https://odoo-community.org/logo.png
:alt: Odoo Community Association
:target: https://odoo-community.org
This module is maintained by the OCA.
OCA, or the Odoo Community Association, is a nonprofit organization whose
mission is to support the collaborative development of Odoo features and
promote its widespread use.
To contribute to this module, please visit https://odoo-community.org.

View File

@@ -0,0 +1,8 @@
# -*- coding: utf-8 -*-
# (c) 2015 Avanzosc
# (c) 2015 Pedro M. Baeza - Antiun Ingeniería
# License AGPL-3 - See http://www.gnu.org/licenses/agpl-3.0.html
from . import models
from . import wizard
from .hooks import post_init_hook

View File

@@ -0,0 +1,61 @@
# -*- coding: utf-8 -*-
# (c) 2014-2015 Avanzosc
# (c) 2014-2015 Pedro M. Baeza
# (c) 2015 Antiun Ingeniería
# License AGPL-3 - See http://www.gnu.org/licenses/agpl-3.0.html
{
"name": "Manufacturing Operations Extension",
"version": "8.0.2.0.0",
"category": "Manufacturing",
"license": "AGPL-3",
"author": "OdooMRP team, "
"AvanzOSC, "
"Serv. Tecnol. Avanzados - Pedro M. Baeza, "
"Antiun Ingeniería S.L., "
"Odoo Community Association (OCA)",
"website": "http://www.odoomrp.com",
"contributors": [
"Daniel Campos <danielcampos@avanzosc.es>",
"Mikel Arregi <mikelarregi@avanzosc.es>",
"Oihane Crucelaegui <oihanecrucelaegi@avanzosc.es>",
"Pedro M. Baeza <pedro.baeza@serviciosbaeza.com>",
"Ana Juaristi <anajuaristi@avanzosc.es>",
],
"depends": [
"mrp_operations",
"mrp_hook",
"hr_timesheet",
],
"data": [
"data/mrp_operations_extension_data.xml",
"wizard/mrp_workorder_produce_view.xml",
"views/mrp_workcenter_view.xml",
"views/mrp_routing_operation_view.xml",
"views/mrp_production_view.xml",
"views/mrp_bom_view.xml",
"views/mrp_routing_view.xml",
"views/res_config_view.xml",
"security/ir.model.access.csv",
"security/mrp_operations_extension_security.xml",
],
"images": [
'images/operation.png',
'images/routing.png',
'images/routing_line.png',
'images/bom.png',
'images/manufacturing_order.png',
'images/work_order.png',
'images/work_order2.png',
],
"demo": [
"demo/res_partner_demo.xml",
"demo/hr_employee_demo.xml",
"demo/mrp_workcenter_demo.xml",
"demo/mrp_bom_demo.xml",
"demo/mrp_routing_demo.xml",
"demo/mrp_production_demo.xml",
],
"post_init_hook": "post_init_hook",
"installable": True
}

View File

@@ -0,0 +1,13 @@
<?xml version="1.0" encoding="UTF-8"?>
<openerp>
<data>
<record id="req_link_mrp_workcenter" model="res.request.link">
<field name="name">Work Center</field>
<field name="object">mrp.workcenter</field>
</record>
<record id="req_link_mrp_workcenter_line" model="res.request.link">
<field name="name">Work Order</field>
<field name="object">mrp.production.workcenter.line</field>
</record>
</data>
</openerp>

View File

@@ -0,0 +1,13 @@
<?xml version="1.0" encoding="UTF-8"?>
<openerp>
<data noupdate="1">
<record id="hr.employee_al" model="hr.employee">
<field name="user_id" ref="mrp_operations_extension.user_opeext_1"/>
</record>
<record id="hr.employee_jgo" model="hr.employee">
<field name="user_id" ref="mrp_operations_extension.user_opeext_2"/>
</record>
</data>
</openerp>

View File

@@ -0,0 +1,102 @@
<?xml version="1.0" encoding="UTF-8"?>
<openerp>
<data noupdate="1">
<record model="mrp.bom" id="mrp.mrp_bom_11">
<field name="routing_id" ref="mrp.mrp_routing_1" />
</record>
<record model="mrp.bom.line" id="mrp.mrp_bom_line_32">
<field name="operation" ref="mrp.mrp_routing_workcenter_4" />
</record>
<record model="mrp.bom.line" id="mrp.mrp_bom_line_33">
<field name="operation" ref="mrp.mrp_routing_workcenter_3" />
</record>
<record model="mrp.bom.line" id="mrp.mrp_bom_line_34">
<field name="operation" ref="mrp.mrp_routing_workcenter_1" />
</record>
<record model="mrp.bom" id="mrp.mrp_bom_8">
<field name="routing_id" ref="mrp.mrp_routing_2" />
</record>
<record model="mrp.bom.line" id="mrp.mrp_bom_line_1">
<field name="operation" ref="mrp.mrp_routing_workcenter_0" />
</record>
<record model="mrp.bom.line" id="mrp.mrp_bom_line_2">
<field name="operation" ref="mrp.mrp_routing_workcenter_1" />
</record>
<record model="mrp.bom.line" id="mrp.mrp_bom_line_4">
<field name="operation" ref="mrp.mrp_routing_workcenter_4" />
</record>
<record model="mrp.bom.line" id="mrp.mrp_bom_line_5">
<field name="operation" ref="mrp.mrp_routing_workcenter_4" />
</record>
<record model="mrp.bom.line" id="mrp.mrp_bom_line_6">
<field name="operation" ref="mrp.mrp_routing_workcenter_4" />
</record>
<record model="mrp.bom.line" id="mrp.mrp_bom_line_17">
<field name="operation" ref="mrp.mrp_routing_workcenter_2" />
</record>
<record model="mrp.bom.line" id="mrp.mrp_bom_line_18">
<field name="operation" ref="mrp.mrp_routing_workcenter_2" />
</record>
<record model="mrp.bom.line" id="mrp.mrp_bom_line_19">
<field name="operation" ref="mrp.mrp_routing_workcenter_2" />
</record>
<record model="mrp.bom.line" id="mrp.mrp_bom_line_20">
<field name="operation" ref="mrp.mrp_routing_workcenter_2" />
</record>
<record model="mrp.bom.line" id="mrp.mrp_bom_line_21">
<field name="operation" ref="mrp.mrp_routing_workcenter_2" />
</record>
<record model="mrp.bom.line" id="mrp.mrp_bom_line_22">
<field name="operation" ref="mrp.mrp_routing_workcenter_2" />
</record>
<record model="mrp.bom.line" id="mrp.mrp_bom_line_23">
<field name="operation" ref="mrp.mrp_routing_workcenter_2" />
</record>
<record model="mrp.bom.line" id="mrp.mrp_bom_line_24">
<field name="operation" ref="mrp.mrp_routing_workcenter_2" />
</record>
<record model="mrp.bom.line" id="mrp.mrp_bom_line_25">
<field name="operation" ref="mrp.mrp_routing_workcenter_2" />
</record>
<record model="mrp.bom.line" id="mrp.mrp_bom_line_26">
<field name="operation" ref="mrp.mrp_routing_workcenter_2" />
</record>
<record model="mrp.bom.line" id="mrp.mrp_bom_line_27">
<field name="operation" ref="mrp.mrp_routing_workcenter_2" />
</record>
<record model="mrp.bom.line" id="mrp.mrp_bom_line_28">
<field name="operation" ref="mrp.mrp_routing_workcenter_2" />
</record>
<record model="mrp.bom.line" id="mrp.mrp_bom_line_29">
<field name="operation" ref="mrp.mrp_routing_workcenter_2" />
</record>
<record model="mrp.bom.line" id="mrp.mrp_bom_line_30">
<field name="operation" ref="mrp.mrp_routing_workcenter_2" />
</record>
<record model="mrp.bom.line" id="mrp.mrp_bom_line_31">
<field name="operation" ref="mrp.mrp_routing_workcenter_2" />
</record>
</data>
</openerp>

View File

@@ -0,0 +1,16 @@
<?xml version="1.0" encoding="UTF-8"?>
<openerp>
<data noupdate="1">
<record id="mrp_production_opeext" model="mrp.production">
<field name="product_id" ref="product.product_product_4"/>
<field name="product_uom" ref="product.product_uom_unit"/>
<field name="location_src_id" ref="stock.stock_location_stock"/>
<field name="location_dest_id" ref="stock.stock_location_output"/>
<field name="bom_id" ref="mrp.mrp_bom_11"/>
<field name="routing_id" ref="mrp.mrp_routing_1"/>
<field name="origin">Created from mrp_operations_extension demo</field>
</record>
</data>
</openerp>

View File

@@ -0,0 +1,18 @@
<?xml version="1.0" encoding="UTF-8"?>
<openerp>
<data noupdate="1">
<record model="mrp.routing.workcenter" id="mrp.mrp_routing_workcenter_0">
<field name="do_production" eval="True" />
</record>
<record model="mrp.routing.workcenter" id="mrp.mrp_routing_workcenter_1">
<field name="do_production" eval="True" />
</record>
<record model="mrp.routing.workcenter" id="mrp.mrp_routing_workcenter_2">
<field name="do_production" eval="True" />
</record>
</data>
</openerp>

View File

@@ -0,0 +1,15 @@
<?xml version="1.0" encoding="UTF-8"?>
<openerp>
<data noupdate="1">
<record id="mrp.mrp_workcenter_0" model="mrp.workcenter">
<field name="op_number">1</field>
<field name="op_avg_cost">30.0</field>
<field name="operators" eval="[(6,0,[ref('mrp_operations_extension.user_opeext_1')])]"/>
</record>
<record id="mrp.mrp_workcenter_1" model="mrp.workcenter">
<field name="op_number">1</field>
<field name="op_avg_cost">30.0</field>
<field name="operators" eval="[(6,0,[ref('mrp_operations_extension.user_opeext_2')])]"/>
</record>
</data>
</openerp>

View File

@@ -0,0 +1,44 @@
<?xml version="1.0" encoding="UTF-8"?>
<openerp>
<data noupdate="1">
<record id="partner_opeext_1" model="res.partner">
<field name="name">User 1 operation extension</field>
<field name="company_id" ref="base.main_company"/>
<field name="customer" eval="False"/>
<field name="email">User_1_operation_extension@yourcompany.example.com</field>
<field name="street">C/Santa Clara 13</field>
<field name="city">Azkoitia (Gipuzkoa)</field>
<field name="zip">20720</field>
<field name="country_id" ref="base.es"/>
</record>
<record id="partner_opeext_2" model="res.partner">
<field name="name">User 2 operation extension</field>
<field name="company_id" ref="base.main_company"/>
<field name="customer" eval="False"/>
<field name="email">User_2_operation_extension@yourcompany.example.com</field>
<field name="street">C/Santa Elena 23</field>
<field name="city">Irun (Gipuzkoa)</field>
<field name="zip">20300</field>
<field name="country_id" ref="base.es"/>
</record>
<record id="user_opeext_1" model="res.users">
<field name="partner_id" ref="mrp_operations_extension.partner_opeext_1"/>
<field name="login">user_opeext_1</field>
<field name="password">user_opeext_1</field>
<field name="signature">--Mr User Opeext 1</field>
<field name="company_id" ref="base.main_company"/>
<field name="groups_id" eval="[(6,0,[ref('base.group_user'), ref('base.group_partner_manager')])]"/>
</record>
<record id="user_opeext_2" model="res.users">
<field name="partner_id" ref="mrp_operations_extension.partner_opeext_2"/>
<field name="login">user_opeext_2</field>
<field name="password">user_opeext_2</field>
<field name="signature">--Mr User Opeext 2</field>
<field name="company_id" ref="base.main_company"/>
<field name="groups_id" eval="[(6,0,[ref('base.group_user'), ref('base.group_partner_manager')])]"/>
</record>
</data>
</openerp>

View File

@@ -0,0 +1,31 @@
# -*- coding: utf-8 -*-
# © 2015 Pedro M. Baeza - Antiun Ingeniería
# License AGPL-3 - See http://www.gnu.org/licenses/agpl-3.0.html
from openerp import api, SUPERUSER_ID
def create_default_routing_workcenter_line(cr):
with api.Environment.manage():
env = api.Environment(cr, SUPERUSER_ID, {})
routing_wcs = env['mrp.routing.workcenter'].search(
[('op_wc_lines', '=', False)])
for routing_wc in routing_wcs:
routing_wc.op_wc_lines = [
(0, 0, {'workcenter': routing_wc.workcenter_id,
'default': True,
'custom_data': False})]
def post_init_hook(cr, pool):
""" Set do_production on the last workcenter line of each routing """
cr.execute(
"""
UPDATE mrp_routing_workcenter SET do_production = TRUE
WHERE id IN (
SELECT (
SELECT id FROM mrp_routing_workcenter WHERE routing_id = mr.id
ORDER BY sequence DESC, id DESC LIMIT 1)
FROM mrp_routing mr);
""")
create_default_routing_workcenter_line(cr)

View File

@@ -0,0 +1,560 @@
# Translation of Odoo Server.
# This file contains the translation of the following modules:
# * mrp_operations_extension
#
# Translators:
# Oihane Crucelaegui <oihanecruce@gmail.com>, 2015
msgid ""
msgstr ""
"Project-Id-Version: odoomrp-wip (8.0)\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2015-11-20 17:16+0000\n"
"PO-Revision-Date: 2015-10-22 16:40+0000\n"
"Last-Translator: Pedro M. Baeza <pedro.baeza@gmail.com>\n"
"Language-Team: Spanish (http://www.transifex.com/oca/odoomrp-wip-8-0/language/es/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: \n"
"Language: es\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
#. module: mrp_operations_extension
#: field:mrp.workcenter,op_number:0
msgid "# Operators"
msgstr "Nº operadores"
#. module: mrp_operations_extension
#: field:mrp.operation.workcenter,op_number:0
#: field:mrp.routing.operation,op_number:0
msgid "# operators"
msgstr "Nº operadores"
#. module: mrp_operations_extension
#: view:mrp.production:mrp_operations_extension.mrp_production_form_view_inh
#: view:mrp.production.workcenter.line:mrp_operations_extension.workcenter_line_inh_form_view
msgid "Actual Production Date"
msgstr "Fecha real de producción"
#. module: mrp_operations_extension
#: code:addons/mrp_operations_extension/models/mrp_production.py:35
#: code:addons/mrp_operations_extension/models/mrp_production.py:36
#, python-format
msgid "At least one work order must have checked 'Produce here'"
msgstr "Al menos una orden de trabajo debe tener marcada 'Producir aquí'"
#. module: mrp_operations_extension
#: model:ir.model,name:mrp_operations_extension.model_mrp_bom
msgid "Bill of Material"
msgstr "Lista de materiales"
#. module: mrp_operations_extension
#: view:mrp.work.order.produce:mrp_operations_extension.view_mrp_product_consume_wizard
#: view:mrp.work.order.produce:mrp_operations_extension.view_mrp_product_produce_wizard
msgid "Cancel"
msgstr "Cancelar"
#. module: mrp_operations_extension
#: view:mrp.production:mrp_operations_extension.mrp_production_operation_buttons_form_view
msgid "Cancel Order"
msgstr "Cancelar orden"
#. module: mrp_operations_extension
#: field:mrp.operation.workcenter,capacity_per_cycle:0
msgid "Capacity per cycle"
msgstr "Capacidad por ciclo"
#. module: mrp_operations_extension
#: code:addons/mrp_operations_extension/models/mrp_bom.py:39
#: code:addons/mrp_operations_extension/models/mrp_bom.py:49
#, python-format
msgid "Changing Routing"
msgstr "Cambiando ruta"
#. module: mrp_operations_extension
#: code:addons/mrp_operations_extension/models/mrp_bom.py:40
#: code:addons/mrp_operations_extension/models/mrp_bom.py:50
#, python-format
msgid ""
"Changing routing will cause to change the operation in which each component "
"will be consumed, by default it is set the first one of the routing"
msgstr "Cambiar la ruta causará que cambie la operación en la que cada componente se consumirá. Por defecto se establece la primera de la ruta."
#. module: mrp_operations_extension
#: view:mrp.production:mrp_operations_extension.mrp_production_operation_buttons_form_view
#: view:mrp.production.workcenter.line:mrp_operations_extension.workcenter_line_inh_form_view
msgid "Check Availability"
msgstr "Comprobar disponibilidad"
#. module: mrp_operations_extension
#: field:mrp.routing.operation,code:0
msgid "Code"
msgstr "Código"
#. module: mrp_operations_extension
#: model:ir.actions.act_window,name:mrp_operations_extension.act_mrp_work_order_consume
#: view:mrp.production:mrp_operations_extension.mrp_production_operation_buttons_form_view
#: view:mrp.production.workcenter.line:mrp_operations_extension.workcenter_line_inh_form_view
#: view:mrp.work.order.produce:mrp_operations_extension.view_mrp_product_consume_wizard
msgid "Consume"
msgstr "Consumir"
#. module: mrp_operations_extension
#: view:mrp.work.order.produce:mrp_operations_extension.view_mrp_product_produce_wizard
#: selection:mrp.work.order.produce,mode:0
msgid "Consume & Produce"
msgstr "Consumir y producir"
#. module: mrp_operations_extension
#: view:mrp.work.order.produce:mrp_operations_extension.view_mrp_product_consume_wizard
#: view:mrp.work.order.produce:mrp_operations_extension.view_mrp_product_produce_wizard
msgid "Consume Lines"
msgstr "Líneas de consumo"
#. module: mrp_operations_extension
#: selection:mrp.work.order.produce,mode:0
msgid "Consume Only"
msgstr "Sólo consumir"
#. module: mrp_operations_extension
#: field:mrp.bom.line,operation:0
msgid "Consumed in"
msgstr "Consumido en"
#. module: mrp_operations_extension
#: field:mrp.operation.workcenter,create_uid:0
#: field:mrp.routing.operation,create_uid:0
#: field:mrp.work.order.produce,create_uid:0
msgid "Created by"
msgstr "Creado por"
#. module: mrp_operations_extension
#: field:mrp.operation.workcenter,create_date:0
#: field:mrp.routing.operation,create_date:0
#: field:mrp.work.order.produce,create_date:0
msgid "Created on"
msgstr "Creado en"
#. module: mrp_operations_extension
#: field:mrp.operation.workcenter,default:0
msgid "Default"
msgstr "Por defecto"
#. module: mrp_operations_extension
#: view:mrp.routing.workcenter:mrp_operations_extension.mrp_routing_workcenter_tree_view_inh
msgid "Default workcenter"
msgstr "Centro de trabajo por defecto"
#. module: mrp_operations_extension
#: field:mrp.routing.operation,description:0
msgid "Description"
msgstr "Descripción"
#. module: mrp_operations_extension
#: view:mrp.production:mrp_operations_extension.mrp_production_form_view_inh
#: view:mrp.production.workcenter.line:mrp_operations_extension.workcenter_line_inh_form_view
msgid "Duration"
msgstr "Duración"
#. module: mrp_operations_extension
#: field:mrp.operation.workcenter,time_efficiency:0
msgid "Efficiency factor"
msgstr "Factor de eficacia"
#. module: mrp_operations_extension
#: view:mrp.production.workcenter.line:mrp_operations_extension.workcenter_line_inh_form_view
msgid "Extra Information"
msgstr "Información extra"
#. module: mrp_operations_extension
#: field:mrp.work.order.produce,final_product:0
msgid "Final Product to Stock"
msgstr "Producto final a existencias"
#. module: mrp_operations_extension
#: view:mrp.production:mrp_operations_extension.mrp_production_operation_buttons_form_view
#: view:mrp.production.workcenter.line:mrp_operations_extension.workcenter_line_inh_form_view
msgid "Force Reservation"
msgstr "Forzar reserva"
#. module: mrp_operations_extension
#: field:mrp.operation.workcenter,id:0 field:mrp.routing.operation,id:0
#: field:mrp.work.order.produce,id:0
msgid "ID"
msgstr "ID"
#. module: mrp_operations_extension
#: help:mrp.routing.workcenter,do_production:0
msgid ""
"If enabled, the production and movement to stock of the final products will "
"be done in this operation. There can be only one operation per route with "
"this check marked."
msgstr "Si está habilitado, la producción y el movimiento a existencias de los productos finales se realizará en esta operación. Sólo puede haber una operación por ruta con esta casilla marcada."
#. module: mrp_operations_extension
#: view:mrp.production:mrp_operations_extension.mrp_production_form_view_inh
#: view:mrp.production.workcenter.line:mrp_operations_extension.workcenter_line_inh_form_view
msgid "Information"
msgstr "Información"
#. module: mrp_operations_extension
#: field:mrp.operation.workcenter,write_uid:0
#: field:mrp.routing.operation,write_uid:0
#: field:mrp.work.order.produce,write_uid:0
msgid "Last Updated by"
msgstr "Última actualización por"
#. module: mrp_operations_extension
#: field:mrp.operation.workcenter,write_date:0
#: field:mrp.routing.operation,write_date:0
#: field:mrp.work.order.produce,write_date:0
msgid "Last Updated on"
msgstr "Última actualización en"
#. module: mrp_operations_extension
#: field:mrp.work.order.produce,lot_id:0
msgid "Lot"
msgstr "Lote"
#. module: mrp_operations_extension
#: model:ir.model,name:mrp_operations_extension.model_mrp_operation_workcenter
msgid "MRP Operation Workcenter"
msgstr "Centro de trabajo de la operación"
#. module: mrp_operations_extension
#: model:ir.model,name:mrp_operations_extension.model_mrp_routing_operation
msgid "MRP Routing Operation"
msgstr "Operación de la ruta"
#. module: mrp_operations_extension
#: field:mrp.config.settings,group_mrp_workers:0
msgid "Manage operators in work centers"
msgstr "Gestionar operadores en los centros de trabajo"
#. module: mrp_operations_extension
#: model:res.groups,name:mrp_operations_extension.group_mrp_workers
msgid "Manufacturing Operators"
msgstr "Operadores de fabricación"
#. module: mrp_operations_extension
#: model:ir.model,name:mrp_operations_extension.model_mrp_production
msgid "Manufacturing Order"
msgstr "Orden de producción"
#. module: mrp_operations_extension
#: view:mrp.production:mrp_operations_extension.mrp_production_form_view_inh
msgid "Materials"
msgstr "Materiales"
#. module: mrp_operations_extension
#: code:addons/mrp_operations_extension/models/mrp_production.py:158
#: code:addons/mrp_operations_extension/models/mrp_production.py:171
#, python-format
msgid "Missing materials to start the production"
msgstr "Faltan materiales para empezar la producción"
#. module: mrp_operations_extension
#: field:mrp.work.order.produce,mode:0
msgid "Mode"
msgstr "Modo"
#. module: mrp_operations_extension
#: field:mrp.production.workcenter.line,move_lines:0
msgid "Moves"
msgstr "Movimientos"
#. module: mrp_operations_extension
#: field:mrp.routing.operation,name:0
msgid "Name"
msgstr "Nombre"
#. module: mrp_operations_extension
#: field:mrp.routing.workcenter,operation:0
msgid "Operation"
msgstr "Operación"
#. module: mrp_operations_extension
#: model:ir.ui.menu,name:mrp_operations_extension.mrp_routing_menu
#: view:mrp.production.workcenter.line:mrp_operations_extension.workcenter_line_future_calendar
msgid "Operations"
msgstr "Operaciones"
#. module: mrp_operations_extension
#: field:mrp.workcenter,op_avg_cost:0
msgid "Operator average hourly cost"
msgstr "Coste hora medio del operador"
#. module: mrp_operations_extension
#: field:mrp.operation.workcenter,op_avg_cost:0
msgid "Operator average hourly cost"
msgstr "Coste hora medio operador"
#. module: mrp_operations_extension
#: view:mrp.workcenter:mrp_operations_extension.mrp_workcenter_form_view_inh
#: field:mrp.workcenter,operators:0
msgid "Operators"
msgstr "Operadores"
#. module: mrp_operations_extension
#: field:mrp.routing.operation,picking_type_id:0
#: field:mrp.routing.workcenter,picking_type_id:0
msgid "Picking Type"
msgstr "Tipo de albarán"
#. module: mrp_operations_extension
#: view:mrp.production:mrp_operations_extension.mrp_production_form_view_inh
#: view:mrp.production.workcenter.line:mrp_operations_extension.workcenter_line_inh_form_view
msgid "Planned Date"
msgstr "Fecha planificada"
#. module: mrp_operations_extension
#: field:mrp.routing.workcenter,op_wc_lines:0
msgid "Possible work centers for this operation"
msgstr "Posibles centros de trabajo para esta operación"
#. module: mrp_operations_extension
#: view:mrp.routing.workcenter:mrp_operations_extension.mrp_routing_workcenter_form_view_inh
msgid "Possible workcenters"
msgstr "Posibles centros de trabajo"
#. module: mrp_operations_extension
#: field:mrp.workcenter,post_op_product:0
msgid "Post-operation costing product"
msgstr "Producto de coste de post-operación"
#. module: mrp_operations_extension
#: field:mrp.workcenter,pre_op_product:0
msgid "Pre-operation costing product"
msgstr "Producto de coste de pre-operación"
#. module: mrp_operations_extension
#: field:mrp.routing,previous_operations_finished:0
#: field:mrp.routing.workcenter,previous_operations_finished:0
msgid "Previous operations finished"
msgstr "Operaciones previas terminadas"
#. module: mrp_operations_extension
#: code:addons/mrp_operations_extension/models/mrp_production.py:154
#: code:addons/mrp_operations_extension/models/mrp_production.py:167
#, python-format
msgid "Previous operations not finished"
msgstr "Operaciones previas no terminadas"
#. module: mrp_operations_extension
#: model:ir.actions.act_window,name:mrp_operations_extension.act_mrp_work_order_produce
#: view:mrp.production:mrp_operations_extension.mrp_production_operation_buttons_form_view
#: view:mrp.production.workcenter.line:mrp_operations_extension.workcenter_line_inh_form_view
#: view:mrp.work.order.produce:mrp_operations_extension.view_mrp_product_consume_wizard
#: view:mrp.work.order.produce:mrp_operations_extension.view_mrp_product_produce_wizard
msgid "Produce"
msgstr "Fabricar"
#. module: mrp_operations_extension
#: field:mrp.production.workcenter.line,do_production:0
#: field:mrp.routing.workcenter,do_production:0
msgid "Produce here"
msgstr "Producir aquí"
#. module: mrp_operations_extension
#: field:mrp.work.order.produce,product_id:0
msgid "Product"
msgstr "Producto"
#. module: mrp_operations_extension
#: view:mrp.production:mrp_operations_extension.mrp_production_form_view_inh
#: view:mrp.production.workcenter.line:mrp_operations_extension.workcenter_line_inh_form_view
#: field:mrp.production.workcenter.line,product_line:0
msgid "Product Lines"
msgstr "Líneas de producto"
#. module: mrp_operations_extension
#: model:ir.model,name:mrp_operations_extension.model_mrp_product_produce_line
msgid "Product Produce Consume lines"
msgstr "Líneas de consumo de los productos producidos"
#. module: mrp_operations_extension
#: view:mrp.production:mrp_operations_extension.mrp_production_form_view_inh
#: view:mrp.production.workcenter.line:mrp_operations_extension.workcenter_line_inh_form_view
msgid "Product to Produce"
msgstr "Producto a producir"
#. module: mrp_operations_extension
#: model:ir.model,name:mrp_operations_extension.model_mrp_production_product_line
msgid "Production Scheduled Product"
msgstr "Producto planificado de producción"
#. module: mrp_operations_extension
#: field:mrp.work.order.produce,consume_lines:0
msgid "Products Consumed"
msgstr "Productos consumidos"
#. module: mrp_operations_extension
#: field:mrp.routing.operation,steps:0
msgid "Relevant Steps"
msgstr "Pasos relevantes"
#. module: mrp_operations_extension
#: model:ir.model,name:mrp_operations_extension.model_mrp_routing
msgid "Routing"
msgstr "Proceso productivo"
#. module: mrp_operations_extension
#: model:ir.actions.act_window,name:mrp_operations_extension.mrp_routing_operation_action
#: view:mrp.routing.operation:mrp_operations_extension.rountig_operation_form
#: view:mrp.routing.operation:mrp_operations_extension.rountig_operation_tree
msgid "Routing Operation"
msgstr "Operación de la ruta"
#. module: mrp_operations_extension
#: view:mrp.workcenter:mrp_operations_extension.mrp_workcenter_form_view_inh
#: field:mrp.workcenter,rt_operations:0
msgid "Routing Operations"
msgstr "Operaciones de la ruta"
#. module: mrp_operations_extension
#: field:mrp.production.workcenter.line,routing_wc_line:0
msgid "Routing WC Line"
msgstr "Línea de CT de la ruta"
#. module: mrp_operations_extension
#: field:mrp.operation.workcenter,routing_workcenter:0
msgid "Routing workcenter"
msgstr "Centro de trabajo de la ruta"
#. module: mrp_operations_extension
#: field:mrp.work.order.produce,product_qty:0
msgid "Select Quantity"
msgstr "Seleccione cantidad"
#. module: mrp_operations_extension
#: model:ir.model,name:mrp_operations_extension.model_stock_move
msgid "Stock Move"
msgstr "Movimiento de existencias"
#. module: mrp_operations_extension
#: code:addons/mrp_operations_extension/models/mrp_routing.py:55
#: code:addons/mrp_operations_extension/models/mrp_routing.py:56
#, python-format
msgid "There must be one and only one line set as default."
msgstr "Debe haber una y sólo una línea marcado como por defecto."
#. module: mrp_operations_extension
#: code:addons/mrp_operations_extension/models/mrp_routing.py:19
#, python-format
msgid ""
"There must be one and only one operation with 'Produce here' check marked."
msgstr "Debe haber una y sólo una operación con la casilla 'Producir aquí' marcada."
#. module: mrp_operations_extension
#: field:mrp.production.workcenter.line,time_start:0
msgid "Time Start"
msgstr "Hora inicio"
#. module: mrp_operations_extension
#: field:mrp.production.workcenter.line,time_stop:0
msgid "Time Stop"
msgstr "Hora parada"
#. module: mrp_operations_extension
#: field:mrp.operation.workcenter,time_stop:0
msgid "Time after prod."
msgstr "Tiempo después de prod."
#. module: mrp_operations_extension
#: field:mrp.operation.workcenter,time_start:0
msgid "Time before prod."
msgstr "Tiempo antes de prod."
#. module: mrp_operations_extension
#: field:mrp.operation.workcenter,time_cycle:0
msgid "Time for 1 cycle (hours)"
msgstr "Tiempo para 1 ciclo (horas)"
#. module: mrp_operations_extension
#: help:mrp.operation.workcenter,time_cycle:0
msgid "Time in hours for doing one cycle."
msgstr "Tiempo en horas para realizar un ciclo."
#. module: mrp_operations_extension
#: help:mrp.operation.workcenter,time_stop:0
msgid "Time in hours for the cleaning."
msgstr "Tiempo en horas para la limpieza."
#. module: mrp_operations_extension
#: help:mrp.operation.workcenter,time_start:0
msgid "Time in hours for the setup."
msgstr "Tiempo en horas para la preparación"
#. module: mrp_operations_extension
#: view:mrp.work.order.produce:mrp_operations_extension.view_mrp_product_consume_wizard
#: view:mrp.work.order.produce:mrp_operations_extension.view_mrp_product_produce_wizard
msgid "To Consume"
msgstr "A consumir"
#. module: mrp_operations_extension
#: view:mrp.routing.workcenter:mrp_operations_extension.mrp_routing_workcenter_tree_view_inh
msgid "Total"
msgstr "Total"
#. module: mrp_operations_extension
#: field:mrp.work.order.produce,track_production:0
msgid "Track production"
msgstr "Rastrear producción"
#. module: mrp_operations_extension
#: model:ir.model,name:mrp_operations_extension.model_mrp_workcenter
msgid "Work Center"
msgstr "Centro de producción"
#. module: mrp_operations_extension
#: model:ir.model,name:mrp_operations_extension.model_mrp_routing_workcenter
msgid "Work Center Usage"
msgstr "Utilización del centro de producción"
#. module: mrp_operations_extension
#: model:ir.model,name:mrp_operations_extension.model_mrp_production_workcenter_line
#: field:mrp.production.product.line,work_order:0
#: model:res.request.link,name:mrp_operations_extension.req_link_mrp_workcenter
#: field:stock.move,work_order:0
msgid "Work Order"
msgstr "Orden de trabajo"
#. module: mrp_operations_extension
#: field:mrp.routing.operation,workcenters:0
msgid "Work centers"
msgstr "Centros de trabajo"
#. module: mrp_operations_extension
#: field:mrp.product.produce.line,work_produce_id:0
msgid "Work produce id"
msgstr "ID de centro de producción"
#. module: mrp_operations_extension
#: field:mrp.operation.workcenter,workcenter:0
msgid "Workcenter"
msgstr "Centro de trabajo"
#. module: mrp_operations_extension
#: view:mrp.routing.operation:mrp_operations_extension.rountig_operation_form
msgid "Workcenters"
msgstr "Centros de trabajo"
#. module: mrp_operations_extension
#: view:mrp.production:mrp_operations_extension.mrp_production_operation_buttons_form_view
msgid "draft,startworking"
msgstr ""
#. module: mrp_operations_extension
#: view:mrp.production:mrp_operations_extension.mrp_production_operation_buttons_form_view
msgid "oe_highlight"
msgstr ""
#. module: mrp_operations_extension
#: view:mrp.work.order.produce:mrp_operations_extension.view_mrp_product_consume_wizard
#: view:mrp.work.order.produce:mrp_operations_extension.view_mrp_product_produce_wizard
msgid "or"
msgstr "o"
#. module: mrp_operations_extension
#: view:mrp.routing.workcenter:mrp_operations_extension.mrp_routing_workcenter_form_view_inh
msgid "{'invisible': [('op_wc_lines', '!=', [])]}"
msgstr ""

View File

@@ -0,0 +1,553 @@
# Translation of Odoo Server.
# This file contains the translation of the following modules:
# * mrp_operations_extension
#
# Translators:
msgid ""
msgstr ""
"Project-Id-Version: odoomrp-wip (8.0)\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2015-10-07 10:43+0000\n"
"PO-Revision-Date: 2015-09-10 16:39+0000\n"
"Last-Translator: <>\n"
"Language-Team: French (http://www.transifex.com/oca/odoomrp-wip-8-0/language/fr/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: \n"
"Language: fr\n"
"Plural-Forms: nplurals=2; plural=(n > 1);\n"
#. module: mrp_operations_extension
#: field:mrp.workcenter,op_number:0
msgid "# Operators"
msgstr ""
#. module: mrp_operations_extension
#: field:mrp.operation.workcenter,op_number:0
#: field:mrp.routing.operation,op_number:0
msgid "# operators"
msgstr ""
#. module: mrp_operations_extension
#: view:mrp.production:mrp_operations_extension.mrp_production_form_view_inh
#: view:mrp.production.workcenter.line:mrp_operations_extension.workcenter_line_inh_form_view
msgid "Actual Production Date"
msgstr ""
#. module: mrp_operations_extension
#: code:addons/mrp_operations_extension/models/mrp_production.py:36
#, python-format
msgid "At least one work order must have checked 'Produce here'"
msgstr ""
#. module: mrp_operations_extension
#: model:ir.model,name:mrp_operations_extension.model_mrp_bom
msgid "Bill of Material"
msgstr ""
#. module: mrp_operations_extension
#: view:mrp.work.order.produce:mrp_operations_extension.view_mrp_product_consume_wizard
#: view:mrp.work.order.produce:mrp_operations_extension.view_mrp_product_produce_wizard
msgid "Cancel"
msgstr "Annuler"
#. module: mrp_operations_extension
#: view:mrp.production:mrp_operations_extension.mrp_production_operation_buttons_form_view
msgid "Cancel Order"
msgstr ""
#. module: mrp_operations_extension
#: field:mrp.operation.workcenter,capacity_per_cycle:0
msgid "Capacity per cycle"
msgstr ""
#. module: mrp_operations_extension
#: code:addons/mrp_operations_extension/models/mrp_bom.py:71
#, python-format
msgid "Changing Routing"
msgstr ""
#. module: mrp_operations_extension
#: code:addons/mrp_operations_extension/models/mrp_bom.py:72
#, python-format
msgid ""
"Changing routing will cause to change the operation in which each component "
"will be consumed, by default it is set the first one of the routing"
msgstr ""
#. module: mrp_operations_extension
#: view:mrp.production:mrp_operations_extension.mrp_production_operation_buttons_form_view
#: view:mrp.production.workcenter.line:mrp_operations_extension.workcenter_line_inh_form_view
msgid "Check Availability"
msgstr ""
#. module: mrp_operations_extension
#: field:mrp.routing.operation,code:0
msgid "Code"
msgstr ""
#. module: mrp_operations_extension
#: model:ir.actions.act_window,name:mrp_operations_extension.act_mrp_work_order_consume
#: view:mrp.production:mrp_operations_extension.mrp_production_operation_buttons_form_view
#: view:mrp.production.workcenter.line:mrp_operations_extension.workcenter_line_inh_form_view
#: view:mrp.work.order.produce:mrp_operations_extension.view_mrp_product_consume_wizard
msgid "Consume"
msgstr ""
#. module: mrp_operations_extension
#: view:mrp.work.order.produce:mrp_operations_extension.view_mrp_product_produce_wizard
#: selection:mrp.work.order.produce,mode:0
msgid "Consume & Produce"
msgstr ""
#. module: mrp_operations_extension
#: view:mrp.work.order.produce:mrp_operations_extension.view_mrp_product_consume_wizard
#: view:mrp.work.order.produce:mrp_operations_extension.view_mrp_product_produce_wizard
msgid "Consume Lines"
msgstr ""
#. module: mrp_operations_extension
#: selection:mrp.work.order.produce,mode:0
msgid "Consume Only"
msgstr ""
#. module: mrp_operations_extension
#: field:mrp.bom.line,operation:0
msgid "Consumed in"
msgstr ""
#. module: mrp_operations_extension
#: field:mrp.operation.workcenter,create_uid:0
#: field:mrp.routing.operation,create_uid:0
#: field:mrp.work.order.produce,create_uid:0
msgid "Created by"
msgstr "Créé par"
#. module: mrp_operations_extension
#: field:mrp.operation.workcenter,create_date:0
#: field:mrp.routing.operation,create_date:0
#: field:mrp.work.order.produce,create_date:0
msgid "Created on"
msgstr "Créé le"
#. module: mrp_operations_extension
#: field:mrp.operation.workcenter,default:0
msgid "Default"
msgstr ""
#. module: mrp_operations_extension
#: view:mrp.routing.workcenter:mrp_operations_extension.mrp_routing_workcenter_tree_view_inh
msgid "Default workcenter"
msgstr ""
#. module: mrp_operations_extension
#: field:mrp.routing.operation,description:0
msgid "Description"
msgstr ""
#. module: mrp_operations_extension
#: view:mrp.production:mrp_operations_extension.mrp_production_form_view_inh
#: view:mrp.production.workcenter.line:mrp_operations_extension.workcenter_line_inh_form_view
msgid "Duration"
msgstr ""
#. module: mrp_operations_extension
#: field:mrp.operation.workcenter,time_efficiency:0
msgid "Efficiency factor"
msgstr ""
#. module: mrp_operations_extension
#: view:mrp.production.workcenter.line:mrp_operations_extension.workcenter_line_inh_form_view
msgid "Extra Information"
msgstr ""
#. module: mrp_operations_extension
#: field:mrp.work.order.produce,final_product:0
msgid "Final Product to Stock"
msgstr ""
#. module: mrp_operations_extension
#: view:mrp.production:mrp_operations_extension.mrp_production_operation_buttons_form_view
#: view:mrp.production.workcenter.line:mrp_operations_extension.workcenter_line_inh_form_view
msgid "Force Reservation"
msgstr ""
#. module: mrp_operations_extension
#: field:mrp.operation.workcenter,id:0 field:mrp.routing.operation,id:0
#: field:mrp.work.order.produce,id:0
msgid "ID"
msgstr "Id."
#. module: mrp_operations_extension
#: help:mrp.routing.workcenter,do_production:0
msgid ""
"If enabled, the production and movement to stock of the final products will "
"be done in this operation. There can be only one operation per route with "
"this check marked."
msgstr ""
#. module: mrp_operations_extension
#: view:mrp.production:mrp_operations_extension.mrp_production_form_view_inh
#: view:mrp.production.workcenter.line:mrp_operations_extension.workcenter_line_inh_form_view
msgid "Information"
msgstr ""
#. module: mrp_operations_extension
#: field:mrp.operation.workcenter,write_uid:0
#: field:mrp.routing.operation,write_uid:0
#: field:mrp.work.order.produce,write_uid:0
msgid "Last Updated by"
msgstr "Mis à jour par"
#. module: mrp_operations_extension
#: field:mrp.operation.workcenter,write_date:0
#: field:mrp.routing.operation,write_date:0
#: field:mrp.work.order.produce,write_date:0
msgid "Last Updated on"
msgstr "Mis à jour le"
#. module: mrp_operations_extension
#: field:mrp.work.order.produce,lot_id:0
msgid "Lot"
msgstr "Lot"
#. module: mrp_operations_extension
#: model:ir.model,name:mrp_operations_extension.model_mrp_operation_workcenter
msgid "MRP Operation Workcenter"
msgstr ""
#. module: mrp_operations_extension
#: model:ir.model,name:mrp_operations_extension.model_mrp_routing_operation
msgid "MRP Routing Operation"
msgstr ""
#. module: mrp_operations_extension
#: field:mrp.config.settings,group_mrp_workers:0
msgid "Manage operators in work centers "
msgstr ""
#. module: mrp_operations_extension
#: model:res.groups,name:mrp_operations_extension.group_mrp_workers
msgid "Manufacturing Operators"
msgstr ""
#. module: mrp_operations_extension
#: model:ir.model,name:mrp_operations_extension.model_mrp_production
msgid "Manufacturing Order"
msgstr ""
#. module: mrp_operations_extension
#: view:mrp.production:mrp_operations_extension.mrp_production_form_view_inh
msgid "Materials"
msgstr ""
#. module: mrp_operations_extension
#: code:addons/mrp_operations_extension/models/mrp_production.py:170
#, python-format
msgid "Missing materials to start the production"
msgstr ""
#. module: mrp_operations_extension
#: field:mrp.work.order.produce,mode:0
msgid "Mode"
msgstr ""
#. module: mrp_operations_extension
#: field:mrp.production.workcenter.line,move_lines:0
msgid "Moves"
msgstr ""
#. module: mrp_operations_extension
#: field:mrp.routing.operation,name:0
msgid "Name"
msgstr ""
#. module: mrp_operations_extension
#: field:mrp.routing.workcenter,operation:0
msgid "Operation"
msgstr ""
#. module: mrp_operations_extension
#: model:ir.ui.menu,name:mrp_operations_extension.mrp_routing_menu
#: view:mrp.production.workcenter.line:mrp_operations_extension.workcenter_line_future_calendar
msgid "Operations"
msgstr ""
#. module: mrp_operations_extension
#: field:mrp.workcenter,op_avg_cost:0
msgid "Operator average hour cost"
msgstr ""
#. module: mrp_operations_extension
#: field:mrp.operation.workcenter,op_avg_cost:0
msgid "Operator avg. hour cost"
msgstr ""
#. module: mrp_operations_extension
#: view:mrp.workcenter:mrp_operations_extension.mrp_workcenter_form_view_inh
#: field:mrp.workcenter,operators:0
msgid "Operators"
msgstr ""
#. module: mrp_operations_extension
#: field:mrp.routing.operation,picking_type_id:0
#: field:mrp.routing.workcenter,picking_type_id:0
msgid "Picking Type"
msgstr ""
#. module: mrp_operations_extension
#: view:mrp.production:mrp_operations_extension.mrp_production_form_view_inh
#: view:mrp.production.workcenter.line:mrp_operations_extension.workcenter_line_inh_form_view
msgid "Planned Date"
msgstr ""
#. module: mrp_operations_extension
#: field:mrp.routing.workcenter,op_wc_lines:0
msgid "Possible work centers for this operation"
msgstr ""
#. module: mrp_operations_extension
#: view:mrp.routing.workcenter:mrp_operations_extension.mrp_routing_workcenter_form_view_inh
msgid "Possible workcenters"
msgstr ""
#. module: mrp_operations_extension
#: field:mrp.workcenter,post_op_product:0
msgid "Post-operation costing product"
msgstr ""
#. module: mrp_operations_extension
#: field:mrp.workcenter,pre_op_product:0
msgid "Pre-operation costing product"
msgstr ""
#. module: mrp_operations_extension
#: field:mrp.routing,previous_operations_finished:0
#: field:mrp.routing.workcenter,previous_operations_finished:0
msgid "Previous operations finished"
msgstr ""
#. module: mrp_operations_extension
#: code:addons/mrp_operations_extension/models/mrp_production.py:166
#, python-format
msgid "Previous operations not finished"
msgstr ""
#. module: mrp_operations_extension
#: model:ir.actions.act_window,name:mrp_operations_extension.act_mrp_work_order_produce
#: view:mrp.production:mrp_operations_extension.mrp_production_operation_buttons_form_view
#: view:mrp.production.workcenter.line:mrp_operations_extension.workcenter_line_inh_form_view
#: view:mrp.work.order.produce:mrp_operations_extension.view_mrp_product_consume_wizard
#: view:mrp.work.order.produce:mrp_operations_extension.view_mrp_product_produce_wizard
msgid "Produce"
msgstr ""
#. module: mrp_operations_extension
#: field:mrp.production.workcenter.line,do_production:0
#: field:mrp.routing.workcenter,do_production:0
msgid "Produce here"
msgstr ""
#. module: mrp_operations_extension
#: field:mrp.work.order.produce,product_id:0
msgid "Product"
msgstr "Article"
#. module: mrp_operations_extension
#: view:mrp.production:mrp_operations_extension.mrp_production_form_view_inh
#: view:mrp.production.workcenter.line:mrp_operations_extension.workcenter_line_inh_form_view
#: field:mrp.production.workcenter.line,product_line:0
msgid "Product Lines"
msgstr ""
#. module: mrp_operations_extension
#: model:ir.model,name:mrp_operations_extension.model_mrp_product_produce_line
msgid "Product Produce Consume lines"
msgstr ""
#. module: mrp_operations_extension
#: view:mrp.production:mrp_operations_extension.mrp_production_form_view_inh
#: view:mrp.production.workcenter.line:mrp_operations_extension.workcenter_line_inh_form_view
msgid "Product to Produce"
msgstr ""
#. module: mrp_operations_extension
#: model:ir.model,name:mrp_operations_extension.model_mrp_production_product_line
msgid "Production Scheduled Product"
msgstr ""
#. module: mrp_operations_extension
#: field:mrp.work.order.produce,consume_lines:0
msgid "Products Consumed"
msgstr ""
#. module: mrp_operations_extension
#: field:mrp.routing.operation,steps:0
msgid "Relevant Steps"
msgstr ""
#. module: mrp_operations_extension
#: model:ir.model,name:mrp_operations_extension.model_mrp_routing
msgid "Routing"
msgstr ""
#. module: mrp_operations_extension
#: model:ir.actions.act_window,name:mrp_operations_extension.mrp_routing_operation_action
#: view:mrp.routing.operation:mrp_operations_extension.rountig_operation_form
#: view:mrp.routing.operation:mrp_operations_extension.rountig_operation_tree
msgid "Routing Operation"
msgstr ""
#. module: mrp_operations_extension
#: view:mrp.workcenter:mrp_operations_extension.mrp_workcenter_form_view_inh
#: field:mrp.workcenter,rt_operations:0
msgid "Routing Operations"
msgstr ""
#. module: mrp_operations_extension
#: field:mrp.production.workcenter.line,routing_wc_line:0
msgid "Routing WC Line"
msgstr ""
#. module: mrp_operations_extension
#: field:mrp.operation.workcenter,routing_workcenter:0
msgid "Routing workcenter"
msgstr ""
#. module: mrp_operations_extension
#: field:mrp.work.order.produce,product_qty:0
msgid "Select Quantity"
msgstr ""
#. module: mrp_operations_extension
#: model:ir.model,name:mrp_operations_extension.model_stock_move
msgid "Stock Move"
msgstr ""
#. module: mrp_operations_extension
#: code:addons/mrp_operations_extension/models/mrp_routing.py:55
#, python-format
msgid "There must be one and only one line set as default."
msgstr ""
#. module: mrp_operations_extension
#: code:addons/mrp_operations_extension/models/mrp_routing.py:19
#, python-format
msgid ""
"There must be one and only one operation with 'Produce here' check marked."
msgstr ""
#. module: mrp_operations_extension
#: field:mrp.production.workcenter.line,time_start:0
msgid "Time Start"
msgstr ""
#. module: mrp_operations_extension
#: field:mrp.production.workcenter.line,time_stop:0
msgid "Time Stop"
msgstr ""
#. module: mrp_operations_extension
#: field:mrp.operation.workcenter,time_stop:0
msgid "Time after prod."
msgstr ""
#. module: mrp_operations_extension
#: field:mrp.operation.workcenter,time_start:0
msgid "Time before prod."
msgstr ""
#. module: mrp_operations_extension
#: field:mrp.operation.workcenter,time_cycle:0
msgid "Time for 1 cycle (hours)"
msgstr ""
#. module: mrp_operations_extension
#: help:mrp.operation.workcenter,time_cycle:0
msgid "Time in hours for doing one cycle."
msgstr ""
#. module: mrp_operations_extension
#: help:mrp.operation.workcenter,time_stop:0
msgid "Time in hours for the cleaning."
msgstr ""
#. module: mrp_operations_extension
#: help:mrp.operation.workcenter,time_start:0
msgid "Time in hours for the setup."
msgstr ""
#. module: mrp_operations_extension
#: view:mrp.work.order.produce:mrp_operations_extension.view_mrp_product_consume_wizard
#: view:mrp.work.order.produce:mrp_operations_extension.view_mrp_product_produce_wizard
msgid "To Consume"
msgstr ""
#. module: mrp_operations_extension
#: view:mrp.routing.workcenter:mrp_operations_extension.mrp_routing_workcenter_tree_view_inh
msgid "Total"
msgstr ""
#. module: mrp_operations_extension
#: field:mrp.work.order.produce,track_production:0
msgid "Track production"
msgstr ""
#. module: mrp_operations_extension
#: model:ir.model,name:mrp_operations_extension.model_mrp_workcenter
msgid "Work Center"
msgstr ""
#. module: mrp_operations_extension
#: model:ir.model,name:mrp_operations_extension.model_mrp_routing_workcenter
msgid "Work Center Usage"
msgstr ""
#. module: mrp_operations_extension
#: model:ir.model,name:mrp_operations_extension.model_mrp_production_workcenter_line
#: field:mrp.production.product.line,work_order:0
#: model:res.request.link,name:mrp_operations_extension.req_link_mrp_workcenter
#: field:stock.move,work_order:0
msgid "Work Order"
msgstr ""
#. module: mrp_operations_extension
#: field:mrp.routing.operation,workcenters:0
msgid "Work centers"
msgstr ""
#. module: mrp_operations_extension
#: field:mrp.product.produce.line,work_produce_id:0
msgid "Work produce id"
msgstr ""
#. module: mrp_operations_extension
#: field:mrp.operation.workcenter,workcenter:0
msgid "Workcenter"
msgstr ""
#. module: mrp_operations_extension
#: view:mrp.routing.operation:mrp_operations_extension.rountig_operation_form
msgid "Workcenters"
msgstr ""
#. module: mrp_operations_extension
#: view:mrp.production:mrp_operations_extension.mrp_production_operation_buttons_form_view
msgid "draft,startworking"
msgstr ""
#. module: mrp_operations_extension
#: view:mrp.production:mrp_operations_extension.mrp_production_operation_buttons_form_view
msgid "oe_highlight"
msgstr ""
#. module: mrp_operations_extension
#: view:mrp.work.order.produce:mrp_operations_extension.view_mrp_product_consume_wizard
#: view:mrp.work.order.produce:mrp_operations_extension.view_mrp_product_produce_wizard
msgid "or"
msgstr "ou"
#. module: mrp_operations_extension
#: view:mrp.routing.workcenter:mrp_operations_extension.mrp_routing_workcenter_form_view_inh
msgid "{'invisible': [('op_wc_lines', '!=', [])]}"
msgstr ""

View File

@@ -0,0 +1,559 @@
# Translation of Odoo Server.
# This file contains the translation of the following modules:
# * mrp_operations_extension
#
# Translators:
msgid ""
msgstr ""
"Project-Id-Version: odoomrp-wip (8.0)\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2015-11-20 17:16+0000\n"
"PO-Revision-Date: 2015-09-10 16:39+0000\n"
"Last-Translator: <>\n"
"Language-Team: Italian (http://www.transifex.com/oca/odoomrp-wip-8-0/language/it/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: \n"
"Language: it\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
#. module: mrp_operations_extension
#: field:mrp.workcenter,op_number:0
msgid "# Operators"
msgstr ""
#. module: mrp_operations_extension
#: field:mrp.operation.workcenter,op_number:0
#: field:mrp.routing.operation,op_number:0
msgid "# operators"
msgstr ""
#. module: mrp_operations_extension
#: view:mrp.production:mrp_operations_extension.mrp_production_form_view_inh
#: view:mrp.production.workcenter.line:mrp_operations_extension.workcenter_line_inh_form_view
msgid "Actual Production Date"
msgstr ""
#. module: mrp_operations_extension
#: code:addons/mrp_operations_extension/models/mrp_production.py:35
#: code:addons/mrp_operations_extension/models/mrp_production.py:36
#, python-format
msgid "At least one work order must have checked 'Produce here'"
msgstr ""
#. module: mrp_operations_extension
#: model:ir.model,name:mrp_operations_extension.model_mrp_bom
msgid "Bill of Material"
msgstr "Distinta base"
#. module: mrp_operations_extension
#: view:mrp.work.order.produce:mrp_operations_extension.view_mrp_product_consume_wizard
#: view:mrp.work.order.produce:mrp_operations_extension.view_mrp_product_produce_wizard
msgid "Cancel"
msgstr ""
#. module: mrp_operations_extension
#: view:mrp.production:mrp_operations_extension.mrp_production_operation_buttons_form_view
msgid "Cancel Order"
msgstr ""
#. module: mrp_operations_extension
#: field:mrp.operation.workcenter,capacity_per_cycle:0
msgid "Capacity per cycle"
msgstr ""
#. module: mrp_operations_extension
#: code:addons/mrp_operations_extension/models/mrp_bom.py:39
#: code:addons/mrp_operations_extension/models/mrp_bom.py:49
#, python-format
msgid "Changing Routing"
msgstr ""
#. module: mrp_operations_extension
#: code:addons/mrp_operations_extension/models/mrp_bom.py:40
#: code:addons/mrp_operations_extension/models/mrp_bom.py:50
#, python-format
msgid ""
"Changing routing will cause to change the operation in which each component "
"will be consumed, by default it is set the first one of the routing"
msgstr ""
#. module: mrp_operations_extension
#: view:mrp.production:mrp_operations_extension.mrp_production_operation_buttons_form_view
#: view:mrp.production.workcenter.line:mrp_operations_extension.workcenter_line_inh_form_view
msgid "Check Availability"
msgstr ""
#. module: mrp_operations_extension
#: field:mrp.routing.operation,code:0
msgid "Code"
msgstr ""
#. module: mrp_operations_extension
#: model:ir.actions.act_window,name:mrp_operations_extension.act_mrp_work_order_consume
#: view:mrp.production:mrp_operations_extension.mrp_production_operation_buttons_form_view
#: view:mrp.production.workcenter.line:mrp_operations_extension.workcenter_line_inh_form_view
#: view:mrp.work.order.produce:mrp_operations_extension.view_mrp_product_consume_wizard
msgid "Consume"
msgstr ""
#. module: mrp_operations_extension
#: view:mrp.work.order.produce:mrp_operations_extension.view_mrp_product_produce_wizard
#: selection:mrp.work.order.produce,mode:0
msgid "Consume & Produce"
msgstr ""
#. module: mrp_operations_extension
#: view:mrp.work.order.produce:mrp_operations_extension.view_mrp_product_consume_wizard
#: view:mrp.work.order.produce:mrp_operations_extension.view_mrp_product_produce_wizard
msgid "Consume Lines"
msgstr ""
#. module: mrp_operations_extension
#: selection:mrp.work.order.produce,mode:0
msgid "Consume Only"
msgstr ""
#. module: mrp_operations_extension
#: field:mrp.bom.line,operation:0
msgid "Consumed in"
msgstr ""
#. module: mrp_operations_extension
#: field:mrp.operation.workcenter,create_uid:0
#: field:mrp.routing.operation,create_uid:0
#: field:mrp.work.order.produce,create_uid:0
msgid "Created by"
msgstr ""
#. module: mrp_operations_extension
#: field:mrp.operation.workcenter,create_date:0
#: field:mrp.routing.operation,create_date:0
#: field:mrp.work.order.produce,create_date:0
msgid "Created on"
msgstr ""
#. module: mrp_operations_extension
#: field:mrp.operation.workcenter,default:0
msgid "Default"
msgstr ""
#. module: mrp_operations_extension
#: view:mrp.routing.workcenter:mrp_operations_extension.mrp_routing_workcenter_tree_view_inh
msgid "Default workcenter"
msgstr ""
#. module: mrp_operations_extension
#: field:mrp.routing.operation,description:0
msgid "Description"
msgstr ""
#. module: mrp_operations_extension
#: view:mrp.production:mrp_operations_extension.mrp_production_form_view_inh
#: view:mrp.production.workcenter.line:mrp_operations_extension.workcenter_line_inh_form_view
msgid "Duration"
msgstr ""
#. module: mrp_operations_extension
#: field:mrp.operation.workcenter,time_efficiency:0
msgid "Efficiency factor"
msgstr ""
#. module: mrp_operations_extension
#: view:mrp.production.workcenter.line:mrp_operations_extension.workcenter_line_inh_form_view
msgid "Extra Information"
msgstr ""
#. module: mrp_operations_extension
#: field:mrp.work.order.produce,final_product:0
msgid "Final Product to Stock"
msgstr ""
#. module: mrp_operations_extension
#: view:mrp.production:mrp_operations_extension.mrp_production_operation_buttons_form_view
#: view:mrp.production.workcenter.line:mrp_operations_extension.workcenter_line_inh_form_view
msgid "Force Reservation"
msgstr ""
#. module: mrp_operations_extension
#: field:mrp.operation.workcenter,id:0 field:mrp.routing.operation,id:0
#: field:mrp.work.order.produce,id:0
msgid "ID"
msgstr ""
#. module: mrp_operations_extension
#: help:mrp.routing.workcenter,do_production:0
msgid ""
"If enabled, the production and movement to stock of the final products will "
"be done in this operation. There can be only one operation per route with "
"this check marked."
msgstr ""
#. module: mrp_operations_extension
#: view:mrp.production:mrp_operations_extension.mrp_production_form_view_inh
#: view:mrp.production.workcenter.line:mrp_operations_extension.workcenter_line_inh_form_view
msgid "Information"
msgstr ""
#. module: mrp_operations_extension
#: field:mrp.operation.workcenter,write_uid:0
#: field:mrp.routing.operation,write_uid:0
#: field:mrp.work.order.produce,write_uid:0
msgid "Last Updated by"
msgstr ""
#. module: mrp_operations_extension
#: field:mrp.operation.workcenter,write_date:0
#: field:mrp.routing.operation,write_date:0
#: field:mrp.work.order.produce,write_date:0
msgid "Last Updated on"
msgstr ""
#. module: mrp_operations_extension
#: field:mrp.work.order.produce,lot_id:0
msgid "Lot"
msgstr ""
#. module: mrp_operations_extension
#: model:ir.model,name:mrp_operations_extension.model_mrp_operation_workcenter
msgid "MRP Operation Workcenter"
msgstr ""
#. module: mrp_operations_extension
#: model:ir.model,name:mrp_operations_extension.model_mrp_routing_operation
msgid "MRP Routing Operation"
msgstr ""
#. module: mrp_operations_extension
#: field:mrp.config.settings,group_mrp_workers:0
msgid "Manage operators in work centers "
msgstr ""
#. module: mrp_operations_extension
#: model:res.groups,name:mrp_operations_extension.group_mrp_workers
msgid "Manufacturing Operators"
msgstr ""
#. module: mrp_operations_extension
#: model:ir.model,name:mrp_operations_extension.model_mrp_production
msgid "Manufacturing Order"
msgstr "Ordine di produzione"
#. module: mrp_operations_extension
#: view:mrp.production:mrp_operations_extension.mrp_production_form_view_inh
msgid "Materials"
msgstr ""
#. module: mrp_operations_extension
#: code:addons/mrp_operations_extension/models/mrp_production.py:158
#: code:addons/mrp_operations_extension/models/mrp_production.py:171
#, python-format
msgid "Missing materials to start the production"
msgstr ""
#. module: mrp_operations_extension
#: field:mrp.work.order.produce,mode:0
msgid "Mode"
msgstr ""
#. module: mrp_operations_extension
#: field:mrp.production.workcenter.line,move_lines:0
msgid "Moves"
msgstr ""
#. module: mrp_operations_extension
#: field:mrp.routing.operation,name:0
msgid "Name"
msgstr ""
#. module: mrp_operations_extension
#: field:mrp.routing.workcenter,operation:0
msgid "Operation"
msgstr ""
#. module: mrp_operations_extension
#: model:ir.ui.menu,name:mrp_operations_extension.mrp_routing_menu
#: view:mrp.production.workcenter.line:mrp_operations_extension.workcenter_line_future_calendar
msgid "Operations"
msgstr ""
#. module: mrp_operations_extension
#: field:mrp.workcenter,op_avg_cost:0
msgid "Operator average hour cost"
msgstr ""
#. module: mrp_operations_extension
#: field:mrp.operation.workcenter,op_avg_cost:0
msgid "Operator avg. hour cost"
msgstr ""
#. module: mrp_operations_extension
#: view:mrp.workcenter:mrp_operations_extension.mrp_workcenter_form_view_inh
#: field:mrp.workcenter,operators:0
msgid "Operators"
msgstr ""
#. module: mrp_operations_extension
#: field:mrp.routing.operation,picking_type_id:0
#: field:mrp.routing.workcenter,picking_type_id:0
msgid "Picking Type"
msgstr ""
#. module: mrp_operations_extension
#: view:mrp.production:mrp_operations_extension.mrp_production_form_view_inh
#: view:mrp.production.workcenter.line:mrp_operations_extension.workcenter_line_inh_form_view
msgid "Planned Date"
msgstr ""
#. module: mrp_operations_extension
#: field:mrp.routing.workcenter,op_wc_lines:0
msgid "Possible work centers for this operation"
msgstr ""
#. module: mrp_operations_extension
#: view:mrp.routing.workcenter:mrp_operations_extension.mrp_routing_workcenter_form_view_inh
msgid "Possible workcenters"
msgstr ""
#. module: mrp_operations_extension
#: field:mrp.workcenter,post_op_product:0
msgid "Post-operation costing product"
msgstr ""
#. module: mrp_operations_extension
#: field:mrp.workcenter,pre_op_product:0
msgid "Pre-operation costing product"
msgstr ""
#. module: mrp_operations_extension
#: field:mrp.routing,previous_operations_finished:0
#: field:mrp.routing.workcenter,previous_operations_finished:0
msgid "Previous operations finished"
msgstr ""
#. module: mrp_operations_extension
#: code:addons/mrp_operations_extension/models/mrp_production.py:154
#: code:addons/mrp_operations_extension/models/mrp_production.py:167
#, python-format
msgid "Previous operations not finished"
msgstr ""
#. module: mrp_operations_extension
#: model:ir.actions.act_window,name:mrp_operations_extension.act_mrp_work_order_produce
#: view:mrp.production:mrp_operations_extension.mrp_production_operation_buttons_form_view
#: view:mrp.production.workcenter.line:mrp_operations_extension.workcenter_line_inh_form_view
#: view:mrp.work.order.produce:mrp_operations_extension.view_mrp_product_consume_wizard
#: view:mrp.work.order.produce:mrp_operations_extension.view_mrp_product_produce_wizard
msgid "Produce"
msgstr ""
#. module: mrp_operations_extension
#: field:mrp.production.workcenter.line,do_production:0
#: field:mrp.routing.workcenter,do_production:0
msgid "Produce here"
msgstr ""
#. module: mrp_operations_extension
#: field:mrp.work.order.produce,product_id:0
msgid "Product"
msgstr "Prodotto "
#. module: mrp_operations_extension
#: view:mrp.production:mrp_operations_extension.mrp_production_form_view_inh
#: view:mrp.production.workcenter.line:mrp_operations_extension.workcenter_line_inh_form_view
#: field:mrp.production.workcenter.line,product_line:0
msgid "Product Lines"
msgstr ""
#. module: mrp_operations_extension
#: model:ir.model,name:mrp_operations_extension.model_mrp_product_produce_line
msgid "Product Produce Consume lines"
msgstr ""
#. module: mrp_operations_extension
#: view:mrp.production:mrp_operations_extension.mrp_production_form_view_inh
#: view:mrp.production.workcenter.line:mrp_operations_extension.workcenter_line_inh_form_view
msgid "Product to Produce"
msgstr ""
#. module: mrp_operations_extension
#: model:ir.model,name:mrp_operations_extension.model_mrp_production_product_line
msgid "Production Scheduled Product"
msgstr ""
#. module: mrp_operations_extension
#: field:mrp.work.order.produce,consume_lines:0
msgid "Products Consumed"
msgstr ""
#. module: mrp_operations_extension
#: field:mrp.routing.operation,steps:0
msgid "Relevant Steps"
msgstr ""
#. module: mrp_operations_extension
#: model:ir.model,name:mrp_operations_extension.model_mrp_routing
msgid "Routing"
msgstr ""
#. module: mrp_operations_extension
#: model:ir.actions.act_window,name:mrp_operations_extension.mrp_routing_operation_action
#: view:mrp.routing.operation:mrp_operations_extension.rountig_operation_form
#: view:mrp.routing.operation:mrp_operations_extension.rountig_operation_tree
msgid "Routing Operation"
msgstr ""
#. module: mrp_operations_extension
#: view:mrp.workcenter:mrp_operations_extension.mrp_workcenter_form_view_inh
#: field:mrp.workcenter,rt_operations:0
msgid "Routing Operations"
msgstr ""
#. module: mrp_operations_extension
#: field:mrp.production.workcenter.line,routing_wc_line:0
msgid "Routing WC Line"
msgstr ""
#. module: mrp_operations_extension
#: field:mrp.operation.workcenter,routing_workcenter:0
msgid "Routing workcenter"
msgstr ""
#. module: mrp_operations_extension
#: field:mrp.work.order.produce,product_qty:0
msgid "Select Quantity"
msgstr ""
#. module: mrp_operations_extension
#: model:ir.model,name:mrp_operations_extension.model_stock_move
msgid "Stock Move"
msgstr ""
#. module: mrp_operations_extension
#: code:addons/mrp_operations_extension/models/mrp_routing.py:55
#: code:addons/mrp_operations_extension/models/mrp_routing.py:56
#, python-format
msgid "There must be one and only one line set as default."
msgstr ""
#. module: mrp_operations_extension
#: code:addons/mrp_operations_extension/models/mrp_routing.py:19
#, python-format
msgid ""
"There must be one and only one operation with 'Produce here' check marked."
msgstr ""
#. module: mrp_operations_extension
#: field:mrp.production.workcenter.line,time_start:0
msgid "Time Start"
msgstr ""
#. module: mrp_operations_extension
#: field:mrp.production.workcenter.line,time_stop:0
msgid "Time Stop"
msgstr ""
#. module: mrp_operations_extension
#: field:mrp.operation.workcenter,time_stop:0
msgid "Time after prod."
msgstr ""
#. module: mrp_operations_extension
#: field:mrp.operation.workcenter,time_start:0
msgid "Time before prod."
msgstr ""
#. module: mrp_operations_extension
#: field:mrp.operation.workcenter,time_cycle:0
msgid "Time for 1 cycle (hours)"
msgstr ""
#. module: mrp_operations_extension
#: help:mrp.operation.workcenter,time_cycle:0
msgid "Time in hours for doing one cycle."
msgstr ""
#. module: mrp_operations_extension
#: help:mrp.operation.workcenter,time_stop:0
msgid "Time in hours for the cleaning."
msgstr ""
#. module: mrp_operations_extension
#: help:mrp.operation.workcenter,time_start:0
msgid "Time in hours for the setup."
msgstr ""
#. module: mrp_operations_extension
#: view:mrp.work.order.produce:mrp_operations_extension.view_mrp_product_consume_wizard
#: view:mrp.work.order.produce:mrp_operations_extension.view_mrp_product_produce_wizard
msgid "To Consume"
msgstr ""
#. module: mrp_operations_extension
#: view:mrp.routing.workcenter:mrp_operations_extension.mrp_routing_workcenter_tree_view_inh
msgid "Total"
msgstr ""
#. module: mrp_operations_extension
#: field:mrp.work.order.produce,track_production:0
msgid "Track production"
msgstr ""
#. module: mrp_operations_extension
#: model:ir.model,name:mrp_operations_extension.model_mrp_workcenter
msgid "Work Center"
msgstr ""
#. module: mrp_operations_extension
#: model:ir.model,name:mrp_operations_extension.model_mrp_routing_workcenter
msgid "Work Center Usage"
msgstr ""
#. module: mrp_operations_extension
#: model:ir.model,name:mrp_operations_extension.model_mrp_production_workcenter_line
#: field:mrp.production.product.line,work_order:0
#: model:res.request.link,name:mrp_operations_extension.req_link_mrp_workcenter
#: field:stock.move,work_order:0
msgid "Work Order"
msgstr "Ordine di lavorazione"
#. module: mrp_operations_extension
#: field:mrp.routing.operation,workcenters:0
msgid "Work centers"
msgstr ""
#. module: mrp_operations_extension
#: field:mrp.product.produce.line,work_produce_id:0
msgid "Work produce id"
msgstr ""
#. module: mrp_operations_extension
#: field:mrp.operation.workcenter,workcenter:0
msgid "Workcenter"
msgstr ""
#. module: mrp_operations_extension
#: view:mrp.routing.operation:mrp_operations_extension.rountig_operation_form
msgid "Workcenters"
msgstr ""
#. module: mrp_operations_extension
#: view:mrp.production:mrp_operations_extension.mrp_production_operation_buttons_form_view
msgid "draft,startworking"
msgstr ""
#. module: mrp_operations_extension
#: view:mrp.production:mrp_operations_extension.mrp_production_operation_buttons_form_view
msgid "oe_highlight"
msgstr ""
#. module: mrp_operations_extension
#: view:mrp.work.order.produce:mrp_operations_extension.view_mrp_product_consume_wizard
#: view:mrp.work.order.produce:mrp_operations_extension.view_mrp_product_produce_wizard
msgid "or"
msgstr ""
#. module: mrp_operations_extension
#: view:mrp.routing.workcenter:mrp_operations_extension.mrp_routing_workcenter_form_view_inh
msgid "{'invisible': [('op_wc_lines', '!=', [])]}"
msgstr ""

View File

@@ -0,0 +1,559 @@
# Translation of Odoo Server.
# This file contains the translation of the following modules:
# * mrp_operations_extension
#
# Translators:
msgid ""
msgstr ""
"Project-Id-Version: odoomrp-wip (8.0)\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2015-11-20 17:16+0000\n"
"PO-Revision-Date: 2015-10-20 14:47+0000\n"
"Last-Translator: danimaribeiro <danimaribeiro@gmail.com>\n"
"Language-Team: Portuguese (Brazil) (http://www.transifex.com/oca/odoomrp-wip-8-0/language/pt_BR/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: \n"
"Language: pt_BR\n"
"Plural-Forms: nplurals=2; plural=(n > 1);\n"
#. module: mrp_operations_extension
#: field:mrp.workcenter,op_number:0
msgid "# Operators"
msgstr ""
#. module: mrp_operations_extension
#: field:mrp.operation.workcenter,op_number:0
#: field:mrp.routing.operation,op_number:0
msgid "# operators"
msgstr ""
#. module: mrp_operations_extension
#: view:mrp.production:mrp_operations_extension.mrp_production_form_view_inh
#: view:mrp.production.workcenter.line:mrp_operations_extension.workcenter_line_inh_form_view
msgid "Actual Production Date"
msgstr ""
#. module: mrp_operations_extension
#: code:addons/mrp_operations_extension/models/mrp_production.py:35
#: code:addons/mrp_operations_extension/models/mrp_production.py:36
#, python-format
msgid "At least one work order must have checked 'Produce here'"
msgstr ""
#. module: mrp_operations_extension
#: model:ir.model,name:mrp_operations_extension.model_mrp_bom
msgid "Bill of Material"
msgstr "Lista de materiais"
#. module: mrp_operations_extension
#: view:mrp.work.order.produce:mrp_operations_extension.view_mrp_product_consume_wizard
#: view:mrp.work.order.produce:mrp_operations_extension.view_mrp_product_produce_wizard
msgid "Cancel"
msgstr "Cancelar"
#. module: mrp_operations_extension
#: view:mrp.production:mrp_operations_extension.mrp_production_operation_buttons_form_view
msgid "Cancel Order"
msgstr ""
#. module: mrp_operations_extension
#: field:mrp.operation.workcenter,capacity_per_cycle:0
msgid "Capacity per cycle"
msgstr ""
#. module: mrp_operations_extension
#: code:addons/mrp_operations_extension/models/mrp_bom.py:39
#: code:addons/mrp_operations_extension/models/mrp_bom.py:49
#, python-format
msgid "Changing Routing"
msgstr ""
#. module: mrp_operations_extension
#: code:addons/mrp_operations_extension/models/mrp_bom.py:40
#: code:addons/mrp_operations_extension/models/mrp_bom.py:50
#, python-format
msgid ""
"Changing routing will cause to change the operation in which each component "
"will be consumed, by default it is set the first one of the routing"
msgstr ""
#. module: mrp_operations_extension
#: view:mrp.production:mrp_operations_extension.mrp_production_operation_buttons_form_view
#: view:mrp.production.workcenter.line:mrp_operations_extension.workcenter_line_inh_form_view
msgid "Check Availability"
msgstr "Checar disponibilidade"
#. module: mrp_operations_extension
#: field:mrp.routing.operation,code:0
msgid "Code"
msgstr ""
#. module: mrp_operations_extension
#: model:ir.actions.act_window,name:mrp_operations_extension.act_mrp_work_order_consume
#: view:mrp.production:mrp_operations_extension.mrp_production_operation_buttons_form_view
#: view:mrp.production.workcenter.line:mrp_operations_extension.workcenter_line_inh_form_view
#: view:mrp.work.order.produce:mrp_operations_extension.view_mrp_product_consume_wizard
msgid "Consume"
msgstr ""
#. module: mrp_operations_extension
#: view:mrp.work.order.produce:mrp_operations_extension.view_mrp_product_produce_wizard
#: selection:mrp.work.order.produce,mode:0
msgid "Consume & Produce"
msgstr ""
#. module: mrp_operations_extension
#: view:mrp.work.order.produce:mrp_operations_extension.view_mrp_product_consume_wizard
#: view:mrp.work.order.produce:mrp_operations_extension.view_mrp_product_produce_wizard
msgid "Consume Lines"
msgstr ""
#. module: mrp_operations_extension
#: selection:mrp.work.order.produce,mode:0
msgid "Consume Only"
msgstr ""
#. module: mrp_operations_extension
#: field:mrp.bom.line,operation:0
msgid "Consumed in"
msgstr ""
#. module: mrp_operations_extension
#: field:mrp.operation.workcenter,create_uid:0
#: field:mrp.routing.operation,create_uid:0
#: field:mrp.work.order.produce,create_uid:0
msgid "Created by"
msgstr "Criado por"
#. module: mrp_operations_extension
#: field:mrp.operation.workcenter,create_date:0
#: field:mrp.routing.operation,create_date:0
#: field:mrp.work.order.produce,create_date:0
msgid "Created on"
msgstr "Criado em"
#. module: mrp_operations_extension
#: field:mrp.operation.workcenter,default:0
msgid "Default"
msgstr ""
#. module: mrp_operations_extension
#: view:mrp.routing.workcenter:mrp_operations_extension.mrp_routing_workcenter_tree_view_inh
msgid "Default workcenter"
msgstr ""
#. module: mrp_operations_extension
#: field:mrp.routing.operation,description:0
msgid "Description"
msgstr "Descrição"
#. module: mrp_operations_extension
#: view:mrp.production:mrp_operations_extension.mrp_production_form_view_inh
#: view:mrp.production.workcenter.line:mrp_operations_extension.workcenter_line_inh_form_view
msgid "Duration"
msgstr ""
#. module: mrp_operations_extension
#: field:mrp.operation.workcenter,time_efficiency:0
msgid "Efficiency factor"
msgstr ""
#. module: mrp_operations_extension
#: view:mrp.production.workcenter.line:mrp_operations_extension.workcenter_line_inh_form_view
msgid "Extra Information"
msgstr "Informação extra"
#. module: mrp_operations_extension
#: field:mrp.work.order.produce,final_product:0
msgid "Final Product to Stock"
msgstr ""
#. module: mrp_operations_extension
#: view:mrp.production:mrp_operations_extension.mrp_production_operation_buttons_form_view
#: view:mrp.production.workcenter.line:mrp_operations_extension.workcenter_line_inh_form_view
msgid "Force Reservation"
msgstr "Forçar reserva"
#. module: mrp_operations_extension
#: field:mrp.operation.workcenter,id:0 field:mrp.routing.operation,id:0
#: field:mrp.work.order.produce,id:0
msgid "ID"
msgstr "ID"
#. module: mrp_operations_extension
#: help:mrp.routing.workcenter,do_production:0
msgid ""
"If enabled, the production and movement to stock of the final products will "
"be done in this operation. There can be only one operation per route with "
"this check marked."
msgstr ""
#. module: mrp_operations_extension
#: view:mrp.production:mrp_operations_extension.mrp_production_form_view_inh
#: view:mrp.production.workcenter.line:mrp_operations_extension.workcenter_line_inh_form_view
msgid "Information"
msgstr "Informação"
#. module: mrp_operations_extension
#: field:mrp.operation.workcenter,write_uid:0
#: field:mrp.routing.operation,write_uid:0
#: field:mrp.work.order.produce,write_uid:0
msgid "Last Updated by"
msgstr "Última atualização por"
#. module: mrp_operations_extension
#: field:mrp.operation.workcenter,write_date:0
#: field:mrp.routing.operation,write_date:0
#: field:mrp.work.order.produce,write_date:0
msgid "Last Updated on"
msgstr "Última atualização em"
#. module: mrp_operations_extension
#: field:mrp.work.order.produce,lot_id:0
msgid "Lot"
msgstr ""
#. module: mrp_operations_extension
#: model:ir.model,name:mrp_operations_extension.model_mrp_operation_workcenter
msgid "MRP Operation Workcenter"
msgstr "Centro de trabalho de Operação do MRP"
#. module: mrp_operations_extension
#: model:ir.model,name:mrp_operations_extension.model_mrp_routing_operation
msgid "MRP Routing Operation"
msgstr ""
#. module: mrp_operations_extension
#: field:mrp.config.settings,group_mrp_workers:0
msgid "Manage operators in work centers "
msgstr ""
#. module: mrp_operations_extension
#: model:res.groups,name:mrp_operations_extension.group_mrp_workers
msgid "Manufacturing Operators"
msgstr ""
#. module: mrp_operations_extension
#: model:ir.model,name:mrp_operations_extension.model_mrp_production
msgid "Manufacturing Order"
msgstr "Ordem de Produção"
#. module: mrp_operations_extension
#: view:mrp.production:mrp_operations_extension.mrp_production_form_view_inh
msgid "Materials"
msgstr ""
#. module: mrp_operations_extension
#: code:addons/mrp_operations_extension/models/mrp_production.py:158
#: code:addons/mrp_operations_extension/models/mrp_production.py:171
#, python-format
msgid "Missing materials to start the production"
msgstr ""
#. module: mrp_operations_extension
#: field:mrp.work.order.produce,mode:0
msgid "Mode"
msgstr ""
#. module: mrp_operations_extension
#: field:mrp.production.workcenter.line,move_lines:0
msgid "Moves"
msgstr ""
#. module: mrp_operations_extension
#: field:mrp.routing.operation,name:0
msgid "Name"
msgstr "Nome"
#. module: mrp_operations_extension
#: field:mrp.routing.workcenter,operation:0
msgid "Operation"
msgstr "Operação"
#. module: mrp_operations_extension
#: model:ir.ui.menu,name:mrp_operations_extension.mrp_routing_menu
#: view:mrp.production.workcenter.line:mrp_operations_extension.workcenter_line_future_calendar
msgid "Operations"
msgstr ""
#. module: mrp_operations_extension
#: field:mrp.workcenter,op_avg_cost:0
msgid "Operator average hour cost"
msgstr ""
#. module: mrp_operations_extension
#: field:mrp.operation.workcenter,op_avg_cost:0
msgid "Operator avg. hour cost"
msgstr ""
#. module: mrp_operations_extension
#: view:mrp.workcenter:mrp_operations_extension.mrp_workcenter_form_view_inh
#: field:mrp.workcenter,operators:0
msgid "Operators"
msgstr ""
#. module: mrp_operations_extension
#: field:mrp.routing.operation,picking_type_id:0
#: field:mrp.routing.workcenter,picking_type_id:0
msgid "Picking Type"
msgstr ""
#. module: mrp_operations_extension
#: view:mrp.production:mrp_operations_extension.mrp_production_form_view_inh
#: view:mrp.production.workcenter.line:mrp_operations_extension.workcenter_line_inh_form_view
msgid "Planned Date"
msgstr "Data Planejada"
#. module: mrp_operations_extension
#: field:mrp.routing.workcenter,op_wc_lines:0
msgid "Possible work centers for this operation"
msgstr ""
#. module: mrp_operations_extension
#: view:mrp.routing.workcenter:mrp_operations_extension.mrp_routing_workcenter_form_view_inh
msgid "Possible workcenters"
msgstr ""
#. module: mrp_operations_extension
#: field:mrp.workcenter,post_op_product:0
msgid "Post-operation costing product"
msgstr ""
#. module: mrp_operations_extension
#: field:mrp.workcenter,pre_op_product:0
msgid "Pre-operation costing product"
msgstr ""
#. module: mrp_operations_extension
#: field:mrp.routing,previous_operations_finished:0
#: field:mrp.routing.workcenter,previous_operations_finished:0
msgid "Previous operations finished"
msgstr ""
#. module: mrp_operations_extension
#: code:addons/mrp_operations_extension/models/mrp_production.py:154
#: code:addons/mrp_operations_extension/models/mrp_production.py:167
#, python-format
msgid "Previous operations not finished"
msgstr ""
#. module: mrp_operations_extension
#: model:ir.actions.act_window,name:mrp_operations_extension.act_mrp_work_order_produce
#: view:mrp.production:mrp_operations_extension.mrp_production_operation_buttons_form_view
#: view:mrp.production.workcenter.line:mrp_operations_extension.workcenter_line_inh_form_view
#: view:mrp.work.order.produce:mrp_operations_extension.view_mrp_product_consume_wizard
#: view:mrp.work.order.produce:mrp_operations_extension.view_mrp_product_produce_wizard
msgid "Produce"
msgstr "Produzir"
#. module: mrp_operations_extension
#: field:mrp.production.workcenter.line,do_production:0
#: field:mrp.routing.workcenter,do_production:0
msgid "Produce here"
msgstr ""
#. module: mrp_operations_extension
#: field:mrp.work.order.produce,product_id:0
msgid "Product"
msgstr "Produto"
#. module: mrp_operations_extension
#: view:mrp.production:mrp_operations_extension.mrp_production_form_view_inh
#: view:mrp.production.workcenter.line:mrp_operations_extension.workcenter_line_inh_form_view
#: field:mrp.production.workcenter.line,product_line:0
msgid "Product Lines"
msgstr ""
#. module: mrp_operations_extension
#: model:ir.model,name:mrp_operations_extension.model_mrp_product_produce_line
msgid "Product Produce Consume lines"
msgstr ""
#. module: mrp_operations_extension
#: view:mrp.production:mrp_operations_extension.mrp_production_form_view_inh
#: view:mrp.production.workcenter.line:mrp_operations_extension.workcenter_line_inh_form_view
msgid "Product to Produce"
msgstr ""
#. module: mrp_operations_extension
#: model:ir.model,name:mrp_operations_extension.model_mrp_production_product_line
msgid "Production Scheduled Product"
msgstr "Produção de produto agendada"
#. module: mrp_operations_extension
#: field:mrp.work.order.produce,consume_lines:0
msgid "Products Consumed"
msgstr ""
#. module: mrp_operations_extension
#: field:mrp.routing.operation,steps:0
msgid "Relevant Steps"
msgstr ""
#. module: mrp_operations_extension
#: model:ir.model,name:mrp_operations_extension.model_mrp_routing
msgid "Routing"
msgstr ""
#. module: mrp_operations_extension
#: model:ir.actions.act_window,name:mrp_operations_extension.mrp_routing_operation_action
#: view:mrp.routing.operation:mrp_operations_extension.rountig_operation_form
#: view:mrp.routing.operation:mrp_operations_extension.rountig_operation_tree
msgid "Routing Operation"
msgstr ""
#. module: mrp_operations_extension
#: view:mrp.workcenter:mrp_operations_extension.mrp_workcenter_form_view_inh
#: field:mrp.workcenter,rt_operations:0
msgid "Routing Operations"
msgstr ""
#. module: mrp_operations_extension
#: field:mrp.production.workcenter.line,routing_wc_line:0
msgid "Routing WC Line"
msgstr ""
#. module: mrp_operations_extension
#: field:mrp.operation.workcenter,routing_workcenter:0
msgid "Routing workcenter"
msgstr ""
#. module: mrp_operations_extension
#: field:mrp.work.order.produce,product_qty:0
msgid "Select Quantity"
msgstr ""
#. module: mrp_operations_extension
#: model:ir.model,name:mrp_operations_extension.model_stock_move
msgid "Stock Move"
msgstr "Movimentação de estoque"
#. module: mrp_operations_extension
#: code:addons/mrp_operations_extension/models/mrp_routing.py:55
#: code:addons/mrp_operations_extension/models/mrp_routing.py:56
#, python-format
msgid "There must be one and only one line set as default."
msgstr ""
#. module: mrp_operations_extension
#: code:addons/mrp_operations_extension/models/mrp_routing.py:19
#, python-format
msgid ""
"There must be one and only one operation with 'Produce here' check marked."
msgstr ""
#. module: mrp_operations_extension
#: field:mrp.production.workcenter.line,time_start:0
msgid "Time Start"
msgstr ""
#. module: mrp_operations_extension
#: field:mrp.production.workcenter.line,time_stop:0
msgid "Time Stop"
msgstr ""
#. module: mrp_operations_extension
#: field:mrp.operation.workcenter,time_stop:0
msgid "Time after prod."
msgstr ""
#. module: mrp_operations_extension
#: field:mrp.operation.workcenter,time_start:0
msgid "Time before prod."
msgstr ""
#. module: mrp_operations_extension
#: field:mrp.operation.workcenter,time_cycle:0
msgid "Time for 1 cycle (hours)"
msgstr ""
#. module: mrp_operations_extension
#: help:mrp.operation.workcenter,time_cycle:0
msgid "Time in hours for doing one cycle."
msgstr ""
#. module: mrp_operations_extension
#: help:mrp.operation.workcenter,time_stop:0
msgid "Time in hours for the cleaning."
msgstr ""
#. module: mrp_operations_extension
#: help:mrp.operation.workcenter,time_start:0
msgid "Time in hours for the setup."
msgstr ""
#. module: mrp_operations_extension
#: view:mrp.work.order.produce:mrp_operations_extension.view_mrp_product_consume_wizard
#: view:mrp.work.order.produce:mrp_operations_extension.view_mrp_product_produce_wizard
msgid "To Consume"
msgstr ""
#. module: mrp_operations_extension
#: view:mrp.routing.workcenter:mrp_operations_extension.mrp_routing_workcenter_tree_view_inh
msgid "Total"
msgstr ""
#. module: mrp_operations_extension
#: field:mrp.work.order.produce,track_production:0
msgid "Track production"
msgstr ""
#. module: mrp_operations_extension
#: model:ir.model,name:mrp_operations_extension.model_mrp_workcenter
msgid "Work Center"
msgstr "Centro de trabalho"
#. module: mrp_operations_extension
#: model:ir.model,name:mrp_operations_extension.model_mrp_routing_workcenter
msgid "Work Center Usage"
msgstr "Uso do centro de trabalho"
#. module: mrp_operations_extension
#: model:ir.model,name:mrp_operations_extension.model_mrp_production_workcenter_line
#: field:mrp.production.product.line,work_order:0
#: model:res.request.link,name:mrp_operations_extension.req_link_mrp_workcenter
#: field:stock.move,work_order:0
msgid "Work Order"
msgstr "Ordem de serviço"
#. module: mrp_operations_extension
#: field:mrp.routing.operation,workcenters:0
msgid "Work centers"
msgstr ""
#. module: mrp_operations_extension
#: field:mrp.product.produce.line,work_produce_id:0
msgid "Work produce id"
msgstr ""
#. module: mrp_operations_extension
#: field:mrp.operation.workcenter,workcenter:0
msgid "Workcenter"
msgstr ""
#. module: mrp_operations_extension
#: view:mrp.routing.operation:mrp_operations_extension.rountig_operation_form
msgid "Workcenters"
msgstr ""
#. module: mrp_operations_extension
#: view:mrp.production:mrp_operations_extension.mrp_production_operation_buttons_form_view
msgid "draft,startworking"
msgstr ""
#. module: mrp_operations_extension
#: view:mrp.production:mrp_operations_extension.mrp_production_operation_buttons_form_view
msgid "oe_highlight"
msgstr ""
#. module: mrp_operations_extension
#: view:mrp.work.order.produce:mrp_operations_extension.view_mrp_product_consume_wizard
#: view:mrp.work.order.produce:mrp_operations_extension.view_mrp_product_produce_wizard
msgid "or"
msgstr "ou"
#. module: mrp_operations_extension
#: view:mrp.routing.workcenter:mrp_operations_extension.mrp_routing_workcenter_form_view_inh
msgid "{'invisible': [('op_wc_lines', '!=', [])]}"
msgstr ""

View File

@@ -0,0 +1,559 @@
# Translation of Odoo Server.
# This file contains the translation of the following modules:
# * mrp_operations_extension
#
# Translators:
msgid ""
msgstr ""
"Project-Id-Version: odoomrp-wip (8.0)\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2015-11-20 17:16+0000\n"
"PO-Revision-Date: 2015-09-10 16:39+0000\n"
"Last-Translator: <>\n"
"Language-Team: Romanian (http://www.transifex.com/oca/odoomrp-wip-8-0/language/ro/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: \n"
"Language: ro\n"
"Plural-Forms: nplurals=3; plural=(n==1?0:(((n%100>19)||((n%100==0)&&(n!=0)))?2:1));\n"
#. module: mrp_operations_extension
#: field:mrp.workcenter,op_number:0
msgid "# Operators"
msgstr ""
#. module: mrp_operations_extension
#: field:mrp.operation.workcenter,op_number:0
#: field:mrp.routing.operation,op_number:0
msgid "# operators"
msgstr ""
#. module: mrp_operations_extension
#: view:mrp.production:mrp_operations_extension.mrp_production_form_view_inh
#: view:mrp.production.workcenter.line:mrp_operations_extension.workcenter_line_inh_form_view
msgid "Actual Production Date"
msgstr ""
#. module: mrp_operations_extension
#: code:addons/mrp_operations_extension/models/mrp_production.py:35
#: code:addons/mrp_operations_extension/models/mrp_production.py:36
#, python-format
msgid "At least one work order must have checked 'Produce here'"
msgstr ""
#. module: mrp_operations_extension
#: model:ir.model,name:mrp_operations_extension.model_mrp_bom
msgid "Bill of Material"
msgstr "Listă de materiale"
#. module: mrp_operations_extension
#: view:mrp.work.order.produce:mrp_operations_extension.view_mrp_product_consume_wizard
#: view:mrp.work.order.produce:mrp_operations_extension.view_mrp_product_produce_wizard
msgid "Cancel"
msgstr "Anulare"
#. module: mrp_operations_extension
#: view:mrp.production:mrp_operations_extension.mrp_production_operation_buttons_form_view
msgid "Cancel Order"
msgstr ""
#. module: mrp_operations_extension
#: field:mrp.operation.workcenter,capacity_per_cycle:0
msgid "Capacity per cycle"
msgstr ""
#. module: mrp_operations_extension
#: code:addons/mrp_operations_extension/models/mrp_bom.py:39
#: code:addons/mrp_operations_extension/models/mrp_bom.py:49
#, python-format
msgid "Changing Routing"
msgstr ""
#. module: mrp_operations_extension
#: code:addons/mrp_operations_extension/models/mrp_bom.py:40
#: code:addons/mrp_operations_extension/models/mrp_bom.py:50
#, python-format
msgid ""
"Changing routing will cause to change the operation in which each component "
"will be consumed, by default it is set the first one of the routing"
msgstr ""
#. module: mrp_operations_extension
#: view:mrp.production:mrp_operations_extension.mrp_production_operation_buttons_form_view
#: view:mrp.production.workcenter.line:mrp_operations_extension.workcenter_line_inh_form_view
msgid "Check Availability"
msgstr ""
#. module: mrp_operations_extension
#: field:mrp.routing.operation,code:0
msgid "Code"
msgstr ""
#. module: mrp_operations_extension
#: model:ir.actions.act_window,name:mrp_operations_extension.act_mrp_work_order_consume
#: view:mrp.production:mrp_operations_extension.mrp_production_operation_buttons_form_view
#: view:mrp.production.workcenter.line:mrp_operations_extension.workcenter_line_inh_form_view
#: view:mrp.work.order.produce:mrp_operations_extension.view_mrp_product_consume_wizard
msgid "Consume"
msgstr ""
#. module: mrp_operations_extension
#: view:mrp.work.order.produce:mrp_operations_extension.view_mrp_product_produce_wizard
#: selection:mrp.work.order.produce,mode:0
msgid "Consume & Produce"
msgstr ""
#. module: mrp_operations_extension
#: view:mrp.work.order.produce:mrp_operations_extension.view_mrp_product_consume_wizard
#: view:mrp.work.order.produce:mrp_operations_extension.view_mrp_product_produce_wizard
msgid "Consume Lines"
msgstr ""
#. module: mrp_operations_extension
#: selection:mrp.work.order.produce,mode:0
msgid "Consume Only"
msgstr ""
#. module: mrp_operations_extension
#: field:mrp.bom.line,operation:0
msgid "Consumed in"
msgstr ""
#. module: mrp_operations_extension
#: field:mrp.operation.workcenter,create_uid:0
#: field:mrp.routing.operation,create_uid:0
#: field:mrp.work.order.produce,create_uid:0
msgid "Created by"
msgstr "Creat de"
#. module: mrp_operations_extension
#: field:mrp.operation.workcenter,create_date:0
#: field:mrp.routing.operation,create_date:0
#: field:mrp.work.order.produce,create_date:0
msgid "Created on"
msgstr "Creat în"
#. module: mrp_operations_extension
#: field:mrp.operation.workcenter,default:0
msgid "Default"
msgstr "Implicit"
#. module: mrp_operations_extension
#: view:mrp.routing.workcenter:mrp_operations_extension.mrp_routing_workcenter_tree_view_inh
msgid "Default workcenter"
msgstr ""
#. module: mrp_operations_extension
#: field:mrp.routing.operation,description:0
msgid "Description"
msgstr ""
#. module: mrp_operations_extension
#: view:mrp.production:mrp_operations_extension.mrp_production_form_view_inh
#: view:mrp.production.workcenter.line:mrp_operations_extension.workcenter_line_inh_form_view
msgid "Duration"
msgstr ""
#. module: mrp_operations_extension
#: field:mrp.operation.workcenter,time_efficiency:0
msgid "Efficiency factor"
msgstr ""
#. module: mrp_operations_extension
#: view:mrp.production.workcenter.line:mrp_operations_extension.workcenter_line_inh_form_view
msgid "Extra Information"
msgstr ""
#. module: mrp_operations_extension
#: field:mrp.work.order.produce,final_product:0
msgid "Final Product to Stock"
msgstr ""
#. module: mrp_operations_extension
#: view:mrp.production:mrp_operations_extension.mrp_production_operation_buttons_form_view
#: view:mrp.production.workcenter.line:mrp_operations_extension.workcenter_line_inh_form_view
msgid "Force Reservation"
msgstr ""
#. module: mrp_operations_extension
#: field:mrp.operation.workcenter,id:0 field:mrp.routing.operation,id:0
#: field:mrp.work.order.produce,id:0
msgid "ID"
msgstr "ID"
#. module: mrp_operations_extension
#: help:mrp.routing.workcenter,do_production:0
msgid ""
"If enabled, the production and movement to stock of the final products will "
"be done in this operation. There can be only one operation per route with "
"this check marked."
msgstr ""
#. module: mrp_operations_extension
#: view:mrp.production:mrp_operations_extension.mrp_production_form_view_inh
#: view:mrp.production.workcenter.line:mrp_operations_extension.workcenter_line_inh_form_view
msgid "Information"
msgstr ""
#. module: mrp_operations_extension
#: field:mrp.operation.workcenter,write_uid:0
#: field:mrp.routing.operation,write_uid:0
#: field:mrp.work.order.produce,write_uid:0
msgid "Last Updated by"
msgstr "Ultima actualizare de"
#. module: mrp_operations_extension
#: field:mrp.operation.workcenter,write_date:0
#: field:mrp.routing.operation,write_date:0
#: field:mrp.work.order.produce,write_date:0
msgid "Last Updated on"
msgstr "Ultima actualizare în"
#. module: mrp_operations_extension
#: field:mrp.work.order.produce,lot_id:0
msgid "Lot"
msgstr ""
#. module: mrp_operations_extension
#: model:ir.model,name:mrp_operations_extension.model_mrp_operation_workcenter
msgid "MRP Operation Workcenter"
msgstr ""
#. module: mrp_operations_extension
#: model:ir.model,name:mrp_operations_extension.model_mrp_routing_operation
msgid "MRP Routing Operation"
msgstr ""
#. module: mrp_operations_extension
#: field:mrp.config.settings,group_mrp_workers:0
msgid "Manage operators in work centers "
msgstr ""
#. module: mrp_operations_extension
#: model:res.groups,name:mrp_operations_extension.group_mrp_workers
msgid "Manufacturing Operators"
msgstr ""
#. module: mrp_operations_extension
#: model:ir.model,name:mrp_operations_extension.model_mrp_production
msgid "Manufacturing Order"
msgstr "Comandă fabricație"
#. module: mrp_operations_extension
#: view:mrp.production:mrp_operations_extension.mrp_production_form_view_inh
msgid "Materials"
msgstr ""
#. module: mrp_operations_extension
#: code:addons/mrp_operations_extension/models/mrp_production.py:158
#: code:addons/mrp_operations_extension/models/mrp_production.py:171
#, python-format
msgid "Missing materials to start the production"
msgstr ""
#. module: mrp_operations_extension
#: field:mrp.work.order.produce,mode:0
msgid "Mode"
msgstr ""
#. module: mrp_operations_extension
#: field:mrp.production.workcenter.line,move_lines:0
msgid "Moves"
msgstr ""
#. module: mrp_operations_extension
#: field:mrp.routing.operation,name:0
msgid "Name"
msgstr ""
#. module: mrp_operations_extension
#: field:mrp.routing.workcenter,operation:0
msgid "Operation"
msgstr ""
#. module: mrp_operations_extension
#: model:ir.ui.menu,name:mrp_operations_extension.mrp_routing_menu
#: view:mrp.production.workcenter.line:mrp_operations_extension.workcenter_line_future_calendar
msgid "Operations"
msgstr ""
#. module: mrp_operations_extension
#: field:mrp.workcenter,op_avg_cost:0
msgid "Operator average hour cost"
msgstr ""
#. module: mrp_operations_extension
#: field:mrp.operation.workcenter,op_avg_cost:0
msgid "Operator avg. hour cost"
msgstr ""
#. module: mrp_operations_extension
#: view:mrp.workcenter:mrp_operations_extension.mrp_workcenter_form_view_inh
#: field:mrp.workcenter,operators:0
msgid "Operators"
msgstr ""
#. module: mrp_operations_extension
#: field:mrp.routing.operation,picking_type_id:0
#: field:mrp.routing.workcenter,picking_type_id:0
msgid "Picking Type"
msgstr ""
#. module: mrp_operations_extension
#: view:mrp.production:mrp_operations_extension.mrp_production_form_view_inh
#: view:mrp.production.workcenter.line:mrp_operations_extension.workcenter_line_inh_form_view
msgid "Planned Date"
msgstr ""
#. module: mrp_operations_extension
#: field:mrp.routing.workcenter,op_wc_lines:0
msgid "Possible work centers for this operation"
msgstr ""
#. module: mrp_operations_extension
#: view:mrp.routing.workcenter:mrp_operations_extension.mrp_routing_workcenter_form_view_inh
msgid "Possible workcenters"
msgstr ""
#. module: mrp_operations_extension
#: field:mrp.workcenter,post_op_product:0
msgid "Post-operation costing product"
msgstr ""
#. module: mrp_operations_extension
#: field:mrp.workcenter,pre_op_product:0
msgid "Pre-operation costing product"
msgstr ""
#. module: mrp_operations_extension
#: field:mrp.routing,previous_operations_finished:0
#: field:mrp.routing.workcenter,previous_operations_finished:0
msgid "Previous operations finished"
msgstr ""
#. module: mrp_operations_extension
#: code:addons/mrp_operations_extension/models/mrp_production.py:154
#: code:addons/mrp_operations_extension/models/mrp_production.py:167
#, python-format
msgid "Previous operations not finished"
msgstr ""
#. module: mrp_operations_extension
#: model:ir.actions.act_window,name:mrp_operations_extension.act_mrp_work_order_produce
#: view:mrp.production:mrp_operations_extension.mrp_production_operation_buttons_form_view
#: view:mrp.production.workcenter.line:mrp_operations_extension.workcenter_line_inh_form_view
#: view:mrp.work.order.produce:mrp_operations_extension.view_mrp_product_consume_wizard
#: view:mrp.work.order.produce:mrp_operations_extension.view_mrp_product_produce_wizard
msgid "Produce"
msgstr ""
#. module: mrp_operations_extension
#: field:mrp.production.workcenter.line,do_production:0
#: field:mrp.routing.workcenter,do_production:0
msgid "Produce here"
msgstr ""
#. module: mrp_operations_extension
#: field:mrp.work.order.produce,product_id:0
msgid "Product"
msgstr "Produs"
#. module: mrp_operations_extension
#: view:mrp.production:mrp_operations_extension.mrp_production_form_view_inh
#: view:mrp.production.workcenter.line:mrp_operations_extension.workcenter_line_inh_form_view
#: field:mrp.production.workcenter.line,product_line:0
msgid "Product Lines"
msgstr ""
#. module: mrp_operations_extension
#: model:ir.model,name:mrp_operations_extension.model_mrp_product_produce_line
msgid "Product Produce Consume lines"
msgstr ""
#. module: mrp_operations_extension
#: view:mrp.production:mrp_operations_extension.mrp_production_form_view_inh
#: view:mrp.production.workcenter.line:mrp_operations_extension.workcenter_line_inh_form_view
msgid "Product to Produce"
msgstr ""
#. module: mrp_operations_extension
#: model:ir.model,name:mrp_operations_extension.model_mrp_production_product_line
msgid "Production Scheduled Product"
msgstr ""
#. module: mrp_operations_extension
#: field:mrp.work.order.produce,consume_lines:0
msgid "Products Consumed"
msgstr ""
#. module: mrp_operations_extension
#: field:mrp.routing.operation,steps:0
msgid "Relevant Steps"
msgstr ""
#. module: mrp_operations_extension
#: model:ir.model,name:mrp_operations_extension.model_mrp_routing
msgid "Routing"
msgstr ""
#. module: mrp_operations_extension
#: model:ir.actions.act_window,name:mrp_operations_extension.mrp_routing_operation_action
#: view:mrp.routing.operation:mrp_operations_extension.rountig_operation_form
#: view:mrp.routing.operation:mrp_operations_extension.rountig_operation_tree
msgid "Routing Operation"
msgstr ""
#. module: mrp_operations_extension
#: view:mrp.workcenter:mrp_operations_extension.mrp_workcenter_form_view_inh
#: field:mrp.workcenter,rt_operations:0
msgid "Routing Operations"
msgstr ""
#. module: mrp_operations_extension
#: field:mrp.production.workcenter.line,routing_wc_line:0
msgid "Routing WC Line"
msgstr ""
#. module: mrp_operations_extension
#: field:mrp.operation.workcenter,routing_workcenter:0
msgid "Routing workcenter"
msgstr ""
#. module: mrp_operations_extension
#: field:mrp.work.order.produce,product_qty:0
msgid "Select Quantity"
msgstr ""
#. module: mrp_operations_extension
#: model:ir.model,name:mrp_operations_extension.model_stock_move
msgid "Stock Move"
msgstr "Mișcare stoc"
#. module: mrp_operations_extension
#: code:addons/mrp_operations_extension/models/mrp_routing.py:55
#: code:addons/mrp_operations_extension/models/mrp_routing.py:56
#, python-format
msgid "There must be one and only one line set as default."
msgstr ""
#. module: mrp_operations_extension
#: code:addons/mrp_operations_extension/models/mrp_routing.py:19
#, python-format
msgid ""
"There must be one and only one operation with 'Produce here' check marked."
msgstr ""
#. module: mrp_operations_extension
#: field:mrp.production.workcenter.line,time_start:0
msgid "Time Start"
msgstr ""
#. module: mrp_operations_extension
#: field:mrp.production.workcenter.line,time_stop:0
msgid "Time Stop"
msgstr ""
#. module: mrp_operations_extension
#: field:mrp.operation.workcenter,time_stop:0
msgid "Time after prod."
msgstr ""
#. module: mrp_operations_extension
#: field:mrp.operation.workcenter,time_start:0
msgid "Time before prod."
msgstr ""
#. module: mrp_operations_extension
#: field:mrp.operation.workcenter,time_cycle:0
msgid "Time for 1 cycle (hours)"
msgstr ""
#. module: mrp_operations_extension
#: help:mrp.operation.workcenter,time_cycle:0
msgid "Time in hours for doing one cycle."
msgstr ""
#. module: mrp_operations_extension
#: help:mrp.operation.workcenter,time_stop:0
msgid "Time in hours for the cleaning."
msgstr ""
#. module: mrp_operations_extension
#: help:mrp.operation.workcenter,time_start:0
msgid "Time in hours for the setup."
msgstr ""
#. module: mrp_operations_extension
#: view:mrp.work.order.produce:mrp_operations_extension.view_mrp_product_consume_wizard
#: view:mrp.work.order.produce:mrp_operations_extension.view_mrp_product_produce_wizard
msgid "To Consume"
msgstr ""
#. module: mrp_operations_extension
#: view:mrp.routing.workcenter:mrp_operations_extension.mrp_routing_workcenter_tree_view_inh
msgid "Total"
msgstr ""
#. module: mrp_operations_extension
#: field:mrp.work.order.produce,track_production:0
msgid "Track production"
msgstr ""
#. module: mrp_operations_extension
#: model:ir.model,name:mrp_operations_extension.model_mrp_workcenter
msgid "Work Center"
msgstr "Centru de lucru"
#. module: mrp_operations_extension
#: model:ir.model,name:mrp_operations_extension.model_mrp_routing_workcenter
msgid "Work Center Usage"
msgstr "Utilizare centru de lucru"
#. module: mrp_operations_extension
#: model:ir.model,name:mrp_operations_extension.model_mrp_production_workcenter_line
#: field:mrp.production.product.line,work_order:0
#: model:res.request.link,name:mrp_operations_extension.req_link_mrp_workcenter
#: field:stock.move,work_order:0
msgid "Work Order"
msgstr "Comandă de lucru"
#. module: mrp_operations_extension
#: field:mrp.routing.operation,workcenters:0
msgid "Work centers"
msgstr ""
#. module: mrp_operations_extension
#: field:mrp.product.produce.line,work_produce_id:0
msgid "Work produce id"
msgstr ""
#. module: mrp_operations_extension
#: field:mrp.operation.workcenter,workcenter:0
msgid "Workcenter"
msgstr ""
#. module: mrp_operations_extension
#: view:mrp.routing.operation:mrp_operations_extension.rountig_operation_form
msgid "Workcenters"
msgstr ""
#. module: mrp_operations_extension
#: view:mrp.production:mrp_operations_extension.mrp_production_operation_buttons_form_view
msgid "draft,startworking"
msgstr ""
#. module: mrp_operations_extension
#: view:mrp.production:mrp_operations_extension.mrp_production_operation_buttons_form_view
msgid "oe_highlight"
msgstr ""
#. module: mrp_operations_extension
#: view:mrp.work.order.produce:mrp_operations_extension.view_mrp_product_consume_wizard
#: view:mrp.work.order.produce:mrp_operations_extension.view_mrp_product_produce_wizard
msgid "or"
msgstr "sau"
#. module: mrp_operations_extension
#: view:mrp.routing.workcenter:mrp_operations_extension.mrp_routing_workcenter_form_view_inh
msgid "{'invisible': [('op_wc_lines', '!=', [])]}"
msgstr ""

View File

@@ -0,0 +1,560 @@
# Translation of Odoo Server.
# This file contains the translation of the following modules:
# * mrp_operations_extension
#
# Translators:
# Matjaž Mozetič <m.mozetic@matmoz.si>, 2015
msgid ""
msgstr ""
"Project-Id-Version: odoomrp-wip (8.0)\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2015-11-20 17:16+0000\n"
"PO-Revision-Date: 2015-09-20 18:56+0000\n"
"Last-Translator: Matjaž Mozetič <m.mozetic@matmoz.si>\n"
"Language-Team: Slovenian (http://www.transifex.com/oca/odoomrp-wip-8-0/language/sl/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: \n"
"Language: sl\n"
"Plural-Forms: nplurals=4; plural=(n%100==1 ? 0 : n%100==2 ? 1 : n%100==3 || n%100==4 ? 2 : 3);\n"
#. module: mrp_operations_extension
#: field:mrp.workcenter,op_number:0
msgid "# Operators"
msgstr "# operaterjev"
#. module: mrp_operations_extension
#: field:mrp.operation.workcenter,op_number:0
#: field:mrp.routing.operation,op_number:0
msgid "# operators"
msgstr "# operaterjev"
#. module: mrp_operations_extension
#: view:mrp.production:mrp_operations_extension.mrp_production_form_view_inh
#: view:mrp.production.workcenter.line:mrp_operations_extension.workcenter_line_inh_form_view
msgid "Actual Production Date"
msgstr "Dejanski datum proizvodnje"
#. module: mrp_operations_extension
#: code:addons/mrp_operations_extension/models/mrp_production.py:35
#: code:addons/mrp_operations_extension/models/mrp_production.py:36
#, python-format
msgid "At least one work order must have checked 'Produce here'"
msgstr "Vsaj en delovni nalog mora imeti označbo 'Proizvedi tukaj'"
#. module: mrp_operations_extension
#: model:ir.model,name:mrp_operations_extension.model_mrp_bom
msgid "Bill of Material"
msgstr "Kosovnica"
#. module: mrp_operations_extension
#: view:mrp.work.order.produce:mrp_operations_extension.view_mrp_product_consume_wizard
#: view:mrp.work.order.produce:mrp_operations_extension.view_mrp_product_produce_wizard
msgid "Cancel"
msgstr "Preklic"
#. module: mrp_operations_extension
#: view:mrp.production:mrp_operations_extension.mrp_production_operation_buttons_form_view
msgid "Cancel Order"
msgstr "Preklic naloga"
#. module: mrp_operations_extension
#: field:mrp.operation.workcenter,capacity_per_cycle:0
msgid "Capacity per cycle"
msgstr "Kapaciteta na cikel"
#. module: mrp_operations_extension
#: code:addons/mrp_operations_extension/models/mrp_bom.py:39
#: code:addons/mrp_operations_extension/models/mrp_bom.py:49
#, python-format
msgid "Changing Routing"
msgstr "Sprememba usmerjanja"
#. module: mrp_operations_extension
#: code:addons/mrp_operations_extension/models/mrp_bom.py:40
#: code:addons/mrp_operations_extension/models/mrp_bom.py:50
#, python-format
msgid ""
"Changing routing will cause to change the operation in which each component "
"will be consumed, by default it is set the first one of the routing"
msgstr "Sprememba usmerjanja povzroči spremembo operacije, v kateri se porabi vsaka komponenta. Privzeta je prva v delokrogu."
#. module: mrp_operations_extension
#: view:mrp.production:mrp_operations_extension.mrp_production_operation_buttons_form_view
#: view:mrp.production.workcenter.line:mrp_operations_extension.workcenter_line_inh_form_view
msgid "Check Availability"
msgstr "Preveri razpoložljivost"
#. module: mrp_operations_extension
#: field:mrp.routing.operation,code:0
msgid "Code"
msgstr "Koda"
#. module: mrp_operations_extension
#: model:ir.actions.act_window,name:mrp_operations_extension.act_mrp_work_order_consume
#: view:mrp.production:mrp_operations_extension.mrp_production_operation_buttons_form_view
#: view:mrp.production.workcenter.line:mrp_operations_extension.workcenter_line_inh_form_view
#: view:mrp.work.order.produce:mrp_operations_extension.view_mrp_product_consume_wizard
msgid "Consume"
msgstr "Porabi"
#. module: mrp_operations_extension
#: view:mrp.work.order.produce:mrp_operations_extension.view_mrp_product_produce_wizard
#: selection:mrp.work.order.produce,mode:0
msgid "Consume & Produce"
msgstr "Porabi in proizvedi"
#. module: mrp_operations_extension
#: view:mrp.work.order.produce:mrp_operations_extension.view_mrp_product_consume_wizard
#: view:mrp.work.order.produce:mrp_operations_extension.view_mrp_product_produce_wizard
msgid "Consume Lines"
msgstr "Postavke porabe"
#. module: mrp_operations_extension
#: selection:mrp.work.order.produce,mode:0
msgid "Consume Only"
msgstr "Samo porabi"
#. module: mrp_operations_extension
#: field:mrp.bom.line,operation:0
msgid "Consumed in"
msgstr "Porabljeno"
#. module: mrp_operations_extension
#: field:mrp.operation.workcenter,create_uid:0
#: field:mrp.routing.operation,create_uid:0
#: field:mrp.work.order.produce,create_uid:0
msgid "Created by"
msgstr "Ustvaril"
#. module: mrp_operations_extension
#: field:mrp.operation.workcenter,create_date:0
#: field:mrp.routing.operation,create_date:0
#: field:mrp.work.order.produce,create_date:0
msgid "Created on"
msgstr "Ustvarjeno"
#. module: mrp_operations_extension
#: field:mrp.operation.workcenter,default:0
msgid "Default"
msgstr "Privzeto"
#. module: mrp_operations_extension
#: view:mrp.routing.workcenter:mrp_operations_extension.mrp_routing_workcenter_tree_view_inh
msgid "Default workcenter"
msgstr "Privzeti delovni center"
#. module: mrp_operations_extension
#: field:mrp.routing.operation,description:0
msgid "Description"
msgstr "Opis"
#. module: mrp_operations_extension
#: view:mrp.production:mrp_operations_extension.mrp_production_form_view_inh
#: view:mrp.production.workcenter.line:mrp_operations_extension.workcenter_line_inh_form_view
msgid "Duration"
msgstr "Trajanje"
#. module: mrp_operations_extension
#: field:mrp.operation.workcenter,time_efficiency:0
msgid "Efficiency factor"
msgstr "Faktor učinkovitosti"
#. module: mrp_operations_extension
#: view:mrp.production.workcenter.line:mrp_operations_extension.workcenter_line_inh_form_view
msgid "Extra Information"
msgstr "Dodatne informacije"
#. module: mrp_operations_extension
#: field:mrp.work.order.produce,final_product:0
msgid "Final Product to Stock"
msgstr "Končni proizvod za zalogo"
#. module: mrp_operations_extension
#: view:mrp.production:mrp_operations_extension.mrp_production_operation_buttons_form_view
#: view:mrp.production.workcenter.line:mrp_operations_extension.workcenter_line_inh_form_view
msgid "Force Reservation"
msgstr "Vsili rezervacijo"
#. module: mrp_operations_extension
#: field:mrp.operation.workcenter,id:0 field:mrp.routing.operation,id:0
#: field:mrp.work.order.produce,id:0
msgid "ID"
msgstr "ID"
#. module: mrp_operations_extension
#: help:mrp.routing.workcenter,do_production:0
msgid ""
"If enabled, the production and movement to stock of the final products will "
"be done in this operation. There can be only one operation per route with "
"this check marked."
msgstr "Če je omogočeno, se v sklopu te operacije izvede proizvodnja in premik v zalogo končnih proizvodov. To oznako ima lahko le po ena operacija v vsakem usmerjanju."
#. module: mrp_operations_extension
#: view:mrp.production:mrp_operations_extension.mrp_production_form_view_inh
#: view:mrp.production.workcenter.line:mrp_operations_extension.workcenter_line_inh_form_view
msgid "Information"
msgstr "Podrobnosti"
#. module: mrp_operations_extension
#: field:mrp.operation.workcenter,write_uid:0
#: field:mrp.routing.operation,write_uid:0
#: field:mrp.work.order.produce,write_uid:0
msgid "Last Updated by"
msgstr "Zadnjič posodobil"
#. module: mrp_operations_extension
#: field:mrp.operation.workcenter,write_date:0
#: field:mrp.routing.operation,write_date:0
#: field:mrp.work.order.produce,write_date:0
msgid "Last Updated on"
msgstr "Zadnjič posodobljeno"
#. module: mrp_operations_extension
#: field:mrp.work.order.produce,lot_id:0
msgid "Lot"
msgstr "Lot"
#. module: mrp_operations_extension
#: model:ir.model,name:mrp_operations_extension.model_mrp_operation_workcenter
msgid "MRP Operation Workcenter"
msgstr "Delovni center proizvodnih operacij"
#. module: mrp_operations_extension
#: model:ir.model,name:mrp_operations_extension.model_mrp_routing_operation
msgid "MRP Routing Operation"
msgstr "Proizvodne operacije usmerjanja delokroga"
#. module: mrp_operations_extension
#: field:mrp.config.settings,group_mrp_workers:0
msgid "Manage operators in work centers "
msgstr "Upravljanje operacij v delovnih centrih"
#. module: mrp_operations_extension
#: model:res.groups,name:mrp_operations_extension.group_mrp_workers
msgid "Manufacturing Operators"
msgstr "Operaterji proizvodnje"
#. module: mrp_operations_extension
#: model:ir.model,name:mrp_operations_extension.model_mrp_production
msgid "Manufacturing Order"
msgstr "Proizvodni nalog"
#. module: mrp_operations_extension
#: view:mrp.production:mrp_operations_extension.mrp_production_form_view_inh
msgid "Materials"
msgstr "Materiali"
#. module: mrp_operations_extension
#: code:addons/mrp_operations_extension/models/mrp_production.py:158
#: code:addons/mrp_operations_extension/models/mrp_production.py:171
#, python-format
msgid "Missing materials to start the production"
msgstr "Manjkajoči materiali za zagon proizvodnje"
#. module: mrp_operations_extension
#: field:mrp.work.order.produce,mode:0
msgid "Mode"
msgstr "Način"
#. module: mrp_operations_extension
#: field:mrp.production.workcenter.line,move_lines:0
msgid "Moves"
msgstr "Premiki"
#. module: mrp_operations_extension
#: field:mrp.routing.operation,name:0
msgid "Name"
msgstr "Naziv"
#. module: mrp_operations_extension
#: field:mrp.routing.workcenter,operation:0
msgid "Operation"
msgstr "Operacija"
#. module: mrp_operations_extension
#: model:ir.ui.menu,name:mrp_operations_extension.mrp_routing_menu
#: view:mrp.production.workcenter.line:mrp_operations_extension.workcenter_line_future_calendar
msgid "Operations"
msgstr "Operacije"
#. module: mrp_operations_extension
#: field:mrp.workcenter,op_avg_cost:0
msgid "Operator average hour cost"
msgstr "Povprečni strošek operaterja"
#. module: mrp_operations_extension
#: field:mrp.operation.workcenter,op_avg_cost:0
msgid "Operator avg. hour cost"
msgstr "Povprečni strošek operaterja"
#. module: mrp_operations_extension
#: view:mrp.workcenter:mrp_operations_extension.mrp_workcenter_form_view_inh
#: field:mrp.workcenter,operators:0
msgid "Operators"
msgstr "Operaterji"
#. module: mrp_operations_extension
#: field:mrp.routing.operation,picking_type_id:0
#: field:mrp.routing.workcenter,picking_type_id:0
msgid "Picking Type"
msgstr "Tip prevzema"
#. module: mrp_operations_extension
#: view:mrp.production:mrp_operations_extension.mrp_production_form_view_inh
#: view:mrp.production.workcenter.line:mrp_operations_extension.workcenter_line_inh_form_view
msgid "Planned Date"
msgstr "Načrtovani datum"
#. module: mrp_operations_extension
#: field:mrp.routing.workcenter,op_wc_lines:0
msgid "Possible work centers for this operation"
msgstr "Možni delovni centri za to operacijo"
#. module: mrp_operations_extension
#: view:mrp.routing.workcenter:mrp_operations_extension.mrp_routing_workcenter_form_view_inh
msgid "Possible workcenters"
msgstr "Možni delovni centri"
#. module: mrp_operations_extension
#: field:mrp.workcenter,post_op_product:0
msgid "Post-operation costing product"
msgstr "Strošek proizvoda po operaciji"
#. module: mrp_operations_extension
#: field:mrp.workcenter,pre_op_product:0
msgid "Pre-operation costing product"
msgstr "Strošek proizvoda pred operacijo"
#. module: mrp_operations_extension
#: field:mrp.routing,previous_operations_finished:0
#: field:mrp.routing.workcenter,previous_operations_finished:0
msgid "Previous operations finished"
msgstr "Predhodne operacije dokončane"
#. module: mrp_operations_extension
#: code:addons/mrp_operations_extension/models/mrp_production.py:154
#: code:addons/mrp_operations_extension/models/mrp_production.py:167
#, python-format
msgid "Previous operations not finished"
msgstr "Predhodne operacije nedokončane"
#. module: mrp_operations_extension
#: model:ir.actions.act_window,name:mrp_operations_extension.act_mrp_work_order_produce
#: view:mrp.production:mrp_operations_extension.mrp_production_operation_buttons_form_view
#: view:mrp.production.workcenter.line:mrp_operations_extension.workcenter_line_inh_form_view
#: view:mrp.work.order.produce:mrp_operations_extension.view_mrp_product_consume_wizard
#: view:mrp.work.order.produce:mrp_operations_extension.view_mrp_product_produce_wizard
msgid "Produce"
msgstr "Proizvedi"
#. module: mrp_operations_extension
#: field:mrp.production.workcenter.line,do_production:0
#: field:mrp.routing.workcenter,do_production:0
msgid "Produce here"
msgstr "Proizvedi tukaj"
#. module: mrp_operations_extension
#: field:mrp.work.order.produce,product_id:0
msgid "Product"
msgstr "Proizvod"
#. module: mrp_operations_extension
#: view:mrp.production:mrp_operations_extension.mrp_production_form_view_inh
#: view:mrp.production.workcenter.line:mrp_operations_extension.workcenter_line_inh_form_view
#: field:mrp.production.workcenter.line,product_line:0
msgid "Product Lines"
msgstr "Postavke proizvoda"
#. module: mrp_operations_extension
#: model:ir.model,name:mrp_operations_extension.model_mrp_product_produce_line
msgid "Product Produce Consume lines"
msgstr "Postavke porabe ob proizvodnji proizvoda"
#. module: mrp_operations_extension
#: view:mrp.production:mrp_operations_extension.mrp_production_form_view_inh
#: view:mrp.production.workcenter.line:mrp_operations_extension.workcenter_line_inh_form_view
msgid "Product to Produce"
msgstr "Proizvod za proizvodnjo"
#. module: mrp_operations_extension
#: model:ir.model,name:mrp_operations_extension.model_mrp_production_product_line
msgid "Production Scheduled Product"
msgstr "Proizvod načrtovan za proizvodnjo"
#. module: mrp_operations_extension
#: field:mrp.work.order.produce,consume_lines:0
msgid "Products Consumed"
msgstr "Porabljeni proizvodi"
#. module: mrp_operations_extension
#: field:mrp.routing.operation,steps:0
msgid "Relevant Steps"
msgstr "Relevantni koraki"
#. module: mrp_operations_extension
#: model:ir.model,name:mrp_operations_extension.model_mrp_routing
msgid "Routing"
msgstr "Usmerjanje"
#. module: mrp_operations_extension
#: model:ir.actions.act_window,name:mrp_operations_extension.mrp_routing_operation_action
#: view:mrp.routing.operation:mrp_operations_extension.rountig_operation_form
#: view:mrp.routing.operation:mrp_operations_extension.rountig_operation_tree
msgid "Routing Operation"
msgstr "Usmerjevalna operacije"
#. module: mrp_operations_extension
#: view:mrp.workcenter:mrp_operations_extension.mrp_workcenter_form_view_inh
#: field:mrp.workcenter,rt_operations:0
msgid "Routing Operations"
msgstr "Usmerjevalne operacije"
#. module: mrp_operations_extension
#: field:mrp.production.workcenter.line,routing_wc_line:0
msgid "Routing WC Line"
msgstr "Postavka usmerjevalnega delovnega centra"
#. module: mrp_operations_extension
#: field:mrp.operation.workcenter,routing_workcenter:0
msgid "Routing workcenter"
msgstr "Usmerjevalni delovni center"
#. module: mrp_operations_extension
#: field:mrp.work.order.produce,product_qty:0
msgid "Select Quantity"
msgstr "Izbira količine"
#. module: mrp_operations_extension
#: model:ir.model,name:mrp_operations_extension.model_stock_move
msgid "Stock Move"
msgstr "Premik zaloge"
#. module: mrp_operations_extension
#: code:addons/mrp_operations_extension/models/mrp_routing.py:55
#: code:addons/mrp_operations_extension/models/mrp_routing.py:56
#, python-format
msgid "There must be one and only one line set as default."
msgstr "Samo ena postavka je lahko privzeta."
#. module: mrp_operations_extension
#: code:addons/mrp_operations_extension/models/mrp_routing.py:19
#, python-format
msgid ""
"There must be one and only one operation with 'Produce here' check marked."
msgstr "Samo ena operacija ima lahko označbo 'Proizvedi tukaj'."
#. module: mrp_operations_extension
#: field:mrp.production.workcenter.line,time_start:0
msgid "Time Start"
msgstr "Čas zagona"
#. module: mrp_operations_extension
#: field:mrp.production.workcenter.line,time_stop:0
msgid "Time Stop"
msgstr "Čas zaustavitve"
#. module: mrp_operations_extension
#: field:mrp.operation.workcenter,time_stop:0
msgid "Time after prod."
msgstr "Čas po proizvodnji"
#. module: mrp_operations_extension
#: field:mrp.operation.workcenter,time_start:0
msgid "Time before prod."
msgstr "Čas pred proizvodnjo"
#. module: mrp_operations_extension
#: field:mrp.operation.workcenter,time_cycle:0
msgid "Time for 1 cycle (hours)"
msgstr "Čas enega cikla (ur)"
#. module: mrp_operations_extension
#: help:mrp.operation.workcenter,time_cycle:0
msgid "Time in hours for doing one cycle."
msgstr "Čas v urah za izvedbo enega cikla."
#. module: mrp_operations_extension
#: help:mrp.operation.workcenter,time_stop:0
msgid "Time in hours for the cleaning."
msgstr "Čas v urah za čiščenje."
#. module: mrp_operations_extension
#: help:mrp.operation.workcenter,time_start:0
msgid "Time in hours for the setup."
msgstr "Čas v urah za pripravo."
#. module: mrp_operations_extension
#: view:mrp.work.order.produce:mrp_operations_extension.view_mrp_product_consume_wizard
#: view:mrp.work.order.produce:mrp_operations_extension.view_mrp_product_produce_wizard
msgid "To Consume"
msgstr "Za porabo"
#. module: mrp_operations_extension
#: view:mrp.routing.workcenter:mrp_operations_extension.mrp_routing_workcenter_tree_view_inh
msgid "Total"
msgstr "Skupaj"
#. module: mrp_operations_extension
#: field:mrp.work.order.produce,track_production:0
msgid "Track production"
msgstr "Sledenje proizvodnje"
#. module: mrp_operations_extension
#: model:ir.model,name:mrp_operations_extension.model_mrp_workcenter
msgid "Work Center"
msgstr "Delovni center"
#. module: mrp_operations_extension
#: model:ir.model,name:mrp_operations_extension.model_mrp_routing_workcenter
msgid "Work Center Usage"
msgstr "Uporaba delovnega centra"
#. module: mrp_operations_extension
#: model:ir.model,name:mrp_operations_extension.model_mrp_production_workcenter_line
#: field:mrp.production.product.line,work_order:0
#: model:res.request.link,name:mrp_operations_extension.req_link_mrp_workcenter
#: field:stock.move,work_order:0
msgid "Work Order"
msgstr "Delovni nalog"
#. module: mrp_operations_extension
#: field:mrp.routing.operation,workcenters:0
msgid "Work centers"
msgstr "Delovni centri"
#. module: mrp_operations_extension
#: field:mrp.product.produce.line,work_produce_id:0
msgid "Work produce id"
msgstr "ID proizvodnega dela"
#. module: mrp_operations_extension
#: field:mrp.operation.workcenter,workcenter:0
msgid "Workcenter"
msgstr "Delovni center"
#. module: mrp_operations_extension
#: view:mrp.routing.operation:mrp_operations_extension.rountig_operation_form
msgid "Workcenters"
msgstr "Delovni centri"
#. module: mrp_operations_extension
#: view:mrp.production:mrp_operations_extension.mrp_production_operation_buttons_form_view
msgid "draft,startworking"
msgstr "osnutek,zagon"
#. module: mrp_operations_extension
#: view:mrp.production:mrp_operations_extension.mrp_production_operation_buttons_form_view
msgid "oe_highlight"
msgstr "oe_highlight"
#. module: mrp_operations_extension
#: view:mrp.work.order.produce:mrp_operations_extension.view_mrp_product_consume_wizard
#: view:mrp.work.order.produce:mrp_operations_extension.view_mrp_product_produce_wizard
msgid "or"
msgstr "ali"
#. module: mrp_operations_extension
#: view:mrp.routing.workcenter:mrp_operations_extension.mrp_routing_workcenter_form_view_inh
msgid "{'invisible': [('op_wc_lines', '!=', [])]}"
msgstr "{'invisible': [('op_wc_lines', '!=', [])]}"

Binary file not shown.

After

Width:  |  Height:  |  Size: 55 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 71 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 35 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 47 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 49 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 39 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 58 KiB

View File

@@ -0,0 +1,9 @@
# -*- coding: utf-8 -*-
# (c) 2015 Serv. Tecnol. Avanzados - Pedro M. Baeza
# License AGPL-3 - See http://www.gnu.org/licenses/agpl-3.0.html
from openerp.addons.mrp_operations_extension import (
create_default_routing_workcenter_line)
def migrate(cr, version):
create_default_routing_workcenter_line(cr)

View File

@@ -0,0 +1,11 @@
# -*- coding: utf-8 -*-
##############################################################################
# For copyright and license notices, see __openerp__.py file in root directory
##############################################################################
from . import mrp_bom
from . import mrp_production
from . import mrp_routing
from . import mrp_routing_operation
from . import mrp_workcenter
from . import res_config
from . import stock_move

View File

@@ -0,0 +1,61 @@
# -*- coding: utf-8 -*-
##############################################################################
# For copyright and license notices, see __openerp__.py file in root directory
##############################################################################
from openerp import models, fields, api, _
import math
class MrpBom(models.Model):
_inherit = 'mrp.bom'
@api.multi
def _prepare_wc_line(self, wc_use, level=0, factor=1):
res = super(MrpBom, self)._prepare_wc_line(
wc_use, level=level, factor=factor)
cycle = int(math.ceil(factor / (wc_use.cycle_nbr or 1)))
hour = wc_use.hour_nbr * cycle
default_wc_line = wc_use.op_wc_lines.filtered(lambda r: r.default)
data_source = (default_wc_line if default_wc_line.custom_data else
default_wc_line.workcenter)
time_start = data_source.time_start
time_stop = data_source.time_stop
res.update({
'cycle': cycle,
'hour': hour,
'time_start': time_start,
'time_stop': time_stop,
'routing_wc_line': wc_use.id,
'do_production': wc_use.do_production,
})
return res
@api.model
def _prepare_consume_line(self, bom_line, quantity, factor=1):
res = super(MrpBom, self)._prepare_consume_line(
bom_line, quantity, factor=factor)
res['bom_line'] = bom_line.id
return res
@api.multi
@api.onchange('routing_id')
def onchange_routing_id(self):
for line in self.bom_line_ids:
line.operation = self.routing_id.workcenter_lines[:1]
res = {}
if self.routing_id:
res['warning'] = {
'title': _('Changing Routing'),
'message': _(
"Changing routing will cause to change the operation in "
"which each component will be consumed, by default it is "
"set the first one of the routing")
}
return res
class MrpBomLine(models.Model):
_inherit = 'mrp.bom.line'
operation = fields.Many2one(
comodel_name='mrp.routing.workcenter', string='Consumed in')

View File

@@ -0,0 +1,138 @@
# -*- coding: utf-8 -*-
##############################################################################
# For copyright and license notices, see __openerp__.py file in root directory
##############################################################################
from openerp import models, fields, api, exceptions, _
class MrpProduction(models.Model):
_inherit = 'mrp.production'
workcenter_lines = fields.One2many(readonly=False)
date_planned = fields.Datetime(
states={'draft': [('readonly', False)],
'confirmed': [('readonly', False)],
'ready': [('readonly', False)]})
@api.multi
def action_confirm(self):
for prod in self:
if (prod.workcenter_lines and
not len(prod.workcenter_lines.filtered('do_production'))):
raise exceptions.Warning(
_("At least one work order must have checked 'Produce "
"here'"))
return super(MrpProduction, self).action_confirm()
@api.multi
def _action_compute_lines(self, properties=None):
res = super(MrpProduction, self)._action_compute_lines(
properties=properties)
# Assign work orders to each consume line
for product_line in self.product_lines:
product_line.work_order = self.workcenter_lines.filtered(
lambda x: (x.routing_wc_line ==
product_line.bom_line.operation))
return res
@api.model
def _make_production_consume_line(self, line):
move_id = super(MrpProduction,
self)._make_production_consume_line(line)
if line.work_order and move_id:
move = self.env['stock.move'].browse(move_id)
move.work_order = line.work_order.id
return move_id
class MrpProductionProductLine(models.Model):
_inherit = 'mrp.production.product.line'
bom_line = fields.Many2one(comodel_name="mrp.bom.line")
work_order = fields.Many2one(
comodel_name='mrp.production.workcenter.line', string='Work Order')
class MrpProductionWorkcenterLine(models.Model):
_inherit = 'mrp.production.workcenter.line'
@api.one
def _compute_is_material_ready(self):
self.is_material_ready = True
if self.product_line:
moves = self.env['stock.move'].search(
[('work_order', '=', self.id)])
self.is_material_ready = not any(
x not in ('assigned', 'cancel', 'done') for x in
moves.mapped('state'))
@api.multi
@api.depends('routing_wc_line')
def _compute_possible_workcenters(self):
for line in self:
line.possible_workcenters = line.mapped(
'routing_wc_line.op_wc_lines.workcenter')
product_line = fields.One2many(
comodel_name='mrp.production.product.line', inverse_name='work_order',
string='Product Lines')
routing_wc_line = fields.Many2one(
comodel_name='mrp.routing.workcenter', string='Routing WC Line')
do_production = fields.Boolean(string='Produce here')
time_start = fields.Float(string="Time Start")
time_stop = fields.Float(string="Time Stop")
move_lines = fields.One2many(
comodel_name='stock.move', inverse_name='work_order', string='Moves')
is_material_ready = fields.Boolean(
string='Materials Ready', compute="_compute_is_material_ready")
possible_workcenters = fields.Many2many(
comodel_name="mrp.workcenter", compute="_compute_possible_workcenters")
workcenter_id = fields.Many2one(
domain="[('id', 'in', possible_workcenters[0][2])]")
@api.one
def action_assign(self):
self.move_lines.action_assign()
@api.one
def force_assign(self):
self.move_lines.force_assign()
@api.model
def create(self, vals):
if vals.get('date_planned') and vals.get('production_id'):
production = self.env['mrp.production'].browse(
vals['production_id'])
if vals['date_planned'] < production.date_planned:
production.date_planned = vals['date_planned']
return super(MrpProductionWorkcenterLine, self).create(vals)
@api.multi
def check_minor_sequence_operations(self):
self.ensure_one()
seq = self.sequence
res = True
for operation in self.production_id.workcenter_lines:
if operation.sequence < seq and operation.state != 'done':
res = False
break
return res
def check_operation_moves_state(self, states):
for move_line in self.move_lines:
if move_line.state not in states:
return False
return True
def action_start_working(self):
for workorder in self:
if workorder.routing_wc_line.previous_operations_finished and \
not workorder.check_minor_sequence_operations():
raise exceptions.Warning(_("Previous operations not finished"))
if not workorder.check_operation_moves_state(
['assigned', 'cancel', 'done']):
raise exceptions.Warning(
_("Missing materials to start the production"))
if workorder.production_id.state in ('confirmed', 'ready'):
workorder.production_id.state = 'in_production'
return super(MrpProductionWorkcenterLine, self).action_start_working()

View File

@@ -0,0 +1,118 @@
# -*- coding: utf-8 -*-
##############################################################################
# For copyright and license notices, see __openerp__.py file in root directory
##############################################################################
from openerp import models, fields, api, _
from openerp.addons import decimal_precision as dp
class MrpRouting(models.Model):
_inherit = 'mrp.routing'
@api.one
@api.constrains('workcenter_lines')
def _check_produce_operation(self):
num_produce = len(self.workcenter_lines.filtered('do_production'))
if num_produce != 1 and self.workcenter_lines:
raise Warning(_("There must be one and only one operation with "
"'Produce here' check marked."))
class MrpRoutingWorkcenter(models.Model):
_inherit = 'mrp.routing.workcenter'
operation = fields.Many2one('mrp.routing.operation', string='Operation')
op_wc_lines = fields.One2many(
'mrp.operation.workcenter', 'routing_workcenter',
string='Possible work centers for this operation')
do_production = fields.Boolean(
string='Produce here',
help="If enabled, the production and movement to stock of the final "
"products will be done in this operation. There can be only one "
"operation per route with this check marked.")
previous_operations_finished = fields.Boolean(
string='Previous operations finished')
picking_type_id = fields.Many2one('stock.picking.type', 'Picking Type',
domain=[('code', '=', 'outgoing')])
@api.constrains('op_wc_lines')
def _check_default_op_wc_lines(self):
num_default = len(self.op_wc_lines.filtered('default'))
if num_default != 1 and self.op_wc_lines:
raise Warning(
_('There must be one and only one line set as default.'))
@api.one
@api.onchange('operation')
def onchange_operation(self):
if self.operation:
self.name = self.operation.name
self.note = self.operation.description
self.picking_type_id = self.operation.picking_type_id
self.op_wc_lines = False
op_wc_lst = []
is_default = True
for operation_wc in self.operation.workcenters:
data = {
'default': is_default,
'workcenter': operation_wc.id,
'capacity_per_cycle': operation_wc.capacity_per_cycle,
'time_efficiency': operation_wc.time_efficiency,
'time_cycle': operation_wc.time_cycle,
'time_start': operation_wc.time_start,
'time_stop': operation_wc.time_stop,
'op_number': self.operation.op_number,
}
op_wc_lst.append(data)
is_default = False
self.op_wc_lines = op_wc_lst
self.operation = False
@api.one
@api.onchange('op_wc_lines')
def onchange_lines_default(self):
line = self.op_wc_lines.filtered('default')[:1]
self.workcenter_id = line.workcenter
data_source = line if line.custom_data else line.workcenter
self.cycle_nbr = data_source.capacity_per_cycle
self.hour_nbr = data_source.time_cycle
class MrpOperationWorkcenter(models.Model):
_name = 'mrp.operation.workcenter'
_description = 'MRP Operation Workcenter'
custom_data = fields.Boolean(
string="Custom", default=False,
help="If you mark this check, this means that the work center in this "
"routing has different capacity data than the defined on the "
"work center itself")
workcenter = fields.Many2one(
'mrp.workcenter', string='Workcenter', required=True)
routing_workcenter = fields.Many2one(
'mrp.routing.workcenter', 'Routing workcenter', required=True)
time_efficiency = fields.Float('Efficiency factor')
capacity_per_cycle = fields.Float('Capacity per cycle')
time_cycle = fields.Float(
string='Time for 1 cycle (hours)', help="Duration for one cycle.")
time_start = fields.Float(
string='Time before prod.', help="Duration for the setup.")
time_stop = fields.Float(
string='Time after prod.', help="Duartion for the cleaning.")
op_number = fields.Integer('# operators', default='0')
op_avg_cost = fields.Float(
string='Operator average hourly cost',
digits=dp.get_precision('Product Price'))
default = fields.Boolean('Default')
@api.one
@api.onchange('workcenter', 'custom_data')
def onchange_workcenter(self):
if self.workcenter:
self.capacity_per_cycle = self.workcenter.capacity_per_cycle
self.time_efficiency = self.workcenter.time_efficiency
self.time_cycle = self.workcenter.time_cycle
self.time_start = self.workcenter.time_start
self.time_stop = self.workcenter.time_stop
self.op_number = self.workcenter.op_number
self.op_avg_cost = self.workcenter.op_avg_cost

View File

@@ -0,0 +1,21 @@
# -*- coding: utf-8 -*-
##############################################################################
# For copyright and license notices, see __openerp__.py file in root directory
##############################################################################
from openerp import models, fields
class MrpRoutingOperation(models.Model):
_name = 'mrp.routing.operation'
_description = 'MRP Routing Operation'
name = fields.Char('Name', required=True)
code = fields.Char('Code')
description = fields.Text('Description')
steps = fields.Text('Relevant Steps')
workcenters = fields.Many2many(
'mrp.workcenter', 'mrp_operation_workcenter_rel', 'operation',
'workcenter', 'Work centers')
op_number = fields.Integer('# operators', default='0')
picking_type_id = fields.Many2one(
'stock.picking.type', string='Picking Type')

View File

@@ -0,0 +1,37 @@
# -*- coding: utf-8 -*-
# (c) 2015 Avanzosc
# (c) 2015 Pedro M. Baeza - Antiun Ingeniería
# License AGPL-3 - See http://www.gnu.org/licenses/agpl-3.0.html
from openerp import models, fields, api
from openerp.addons import decimal_precision as dp
class MrpWorkcenter(models.Model):
_inherit = 'mrp.workcenter'
@api.one
@api.onchange('operators')
def onchange_operators(self):
self.op_number = len(self.operators)
num_oper = 0
op_avg_cost = 0.0
for op in self.operators:
if op.employee_ids[:1].product_id:
num_oper += 1
op_avg_cost += op.employee_ids[:1].product_id.standard_price
self.op_avg_cost = op_avg_cost / (num_oper or 1)
pre_op_product = fields.Many2one(
'product.product', string='Pre-operation costing product')
post_op_product = fields.Many2one(
'product.product', string='Post-operation costing product')
rt_operations = fields.Many2many(
'mrp.routing.operation', 'mrp_operation_workcenter_rel', 'workcenter',
'operation', 'Routing Operations')
operators = fields.Many2many(
'res.users', 'mrp_wc_operator_rel', 'workcenter_id', 'operator_id',
string='Operators')
op_number = fields.Integer(string='# Operators')
op_avg_cost = fields.Float(string='Operator average hourly cost',
digits=dp.get_precision('Product Price'))

View File

@@ -0,0 +1,13 @@
# -*- coding: utf-8 -*-
##############################################################################
# For copyright and license notices, see __openerp__.py file in root directory
##############################################################################
from openerp import fields, models
class MrpConfigSettings(models.TransientModel):
_inherit = 'mrp.config.settings'
group_mrp_workers = fields.Boolean(
string='Manage operators in work centers',
implied_group='mrp_operations_extension.group_mrp_workers')

View File

@@ -0,0 +1,12 @@
# -*- coding: utf-8 -*-
##############################################################################
# For copyright and license notices, see __openerp__.py file in root directory
##############################################################################
from openerp import models, fields
class StockMove(models.Model):
_inherit = "stock.move"
work_order = fields.Many2one('mrp.production.workcenter.line',
string='Work Order')

View File

@@ -0,0 +1,3 @@
id,name,model_id:id,group_id:id,perm_read,perm_write,perm_create,perm_unlink
access_mrp_operation_workcenter,access_mrp_operation_workcenter,model_mrp_operation_workcenter,mrp.group_mrp_user,1,1,1,1
access_mrp_routing_operation,access_mrp_routing_operation,model_mrp_routing_operation,mrp.group_mrp_user,1,1,1,1
1 id name model_id:id group_id:id perm_read perm_write perm_create perm_unlink
2 access_mrp_operation_workcenter access_mrp_operation_workcenter model_mrp_operation_workcenter mrp.group_mrp_user 1 1 1 1
3 access_mrp_routing_operation access_mrp_routing_operation model_mrp_routing_operation mrp.group_mrp_user 1 1 1 1

View File

@@ -0,0 +1,9 @@
<?xml version="1.0" encoding="UTF-8"?>
<openerp>
<data noupdate="0">
<record id="group_mrp_workers" model="res.groups">
<field name="name">Manufacturing Operators</field>
<field name="category_id" ref="base.module_category_hidden" />
</record>
</data>
</openerp>

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.4 KiB

File diff suppressed because one or more lines are too long

After

Width:  |  Height:  |  Size: 14 KiB

View File

@@ -0,0 +1,5 @@
# -*- coding: utf-8 -*-
##############################################################################
# For copyright and license notices, see __openerp__.py file in root directory
##############################################################################
from . import test_mrp_operations_extension

View File

@@ -0,0 +1,189 @@
# -*- coding: utf-8 -*-
# © 2015 Avanzosc
# © 2015 Pedro M. Baeza
# © 2015 Antiun Ingeniería
# License AGPL-3 - See http://www.gnu.org/licenses/agpl-3.0.html
import openerp.tests.common as common
from openerp.exceptions import ValidationError, Warning as UserError
class TestMrpOperationsExtension(common.TransactionCase):
def setUp(self):
super(TestMrpOperationsExtension, self).setUp()
self.workcenter = self.env['mrp.workcenter'].create(
{'name': 'Test work center',
'op_number': 1,
'capacity_per_cycle': 5,
'time_cycle': 1.0}
)
self.operation = self.env['mrp.routing.operation'].create(
{'name': 'Test operation',
'op_number': 2,
'workcenters': [(6, 0, self.workcenter.ids)]})
self.routing = self.env['mrp.routing'].create(
{'name': 'Test routing'})
self.routing_workcenter = self.env['mrp.routing.workcenter'].create(
{
'name': 'Test routing line',
'do_production': True,
'workcenter_id': self.workcenter.id,
'routing_id': self.routing.id,
})
self.operation_workcenter = (
self.env['mrp.operation.workcenter'].create(
{
'workcenter': self.workcenter.id,
'routing_workcenter': self.routing_workcenter.id,
'default': True,
}))
self.production_model = self.env['mrp.production']
self.work_order_produce_model = self.env['mrp.work.order.produce']
self.produce_line_model = self.env['mrp.product.produce.line']
self.production = self.env.ref(
'mrp_operations_extension.mrp_production_opeext')
def test_check_do_production_mrp_routing(self):
# None of the workcenter lines have the check marked
with self.assertRaises(ValidationError):
self.routing.workcenter_lines = [
(1, self.routing_workcenter.id, {'do_production': False})]
def test_check_do_production_mrp_routing_2(self):
# Two workcenter lines have the check marked
with self.assertRaises(ValidationError):
self.routing.workcenter_lines = [(0, 0, {
'name': 'Other test routing line',
'do_production': True,
'workcenter_id': self.workcenter.id,
})]
def test_check_default_mrp_routing_workcenter(self):
# None of the operation workcenters have the check marked
with self.assertRaises(ValidationError):
self.routing_workcenter.op_wc_lines = [
(1, self.operation_workcenter.id, {'default': False})]
def test_check_default_mrp_routing_workcenter_2(self):
# Two operation workcenters have the check marked
with self.assertRaises(ValidationError):
self.routing_workcenter.op_wc_lines = [(0, 0, {
'default': True,
'routing_workcenter': self.routing_workcenter.id,
'workcenter': self.workcenter.id,
})]
def test_onchange_operation_mrp_routing_workcenter(self):
with self.env.do_in_onchange():
record = self.env['mrp.routing.workcenter'].new()
record.operation = self.operation.id
record.onchange_operation()
self.assertEqual(record.name, self.operation.name)
self.assertEqual(len(record.op_wc_lines), 1)
self.assertEqual(record.op_wc_lines[0].op_number, 2)
def test_onchange_workcenter_mrp_operation_workcenter(self):
with self.env.do_in_onchange():
record = self.env['mrp.operation.workcenter'].new()
record.workcenter = self.workcenter.id
record.onchange_workcenter()
self.assertEqual(
record.capacity_per_cycle, self.workcenter.capacity_per_cycle)
self.assertEqual(
record.time_efficiency, self.workcenter.time_efficiency)
self.assertEqual(record.op_number, self.workcenter.op_number)
def test_onchange_operators_mrp_workcenter(self):
user = self.env['res.users'].create({
'name': 'Test user',
'login': 'test',
})
cost_product = self.env['product.product'].create(
{'name': 'Cost product',
'standard_price': 15.0})
self.env['hr.employee'].create({
'name': 'Test employee',
'user_id': user.id,
'product_id': cost_product.id})
with self.env.do_in_onchange():
record = self.env['mrp.workcenter'].new()
record.operators = [(6, 0, user.ids)]
record.onchange_operators()
self.assertEqual(record.op_number, 1)
self.assertEqual(record.op_avg_cost, 15.0)
def test_onchange_routing_mrp_bom(self):
with self.env.do_in_onchange():
record = self.env['mrp.bom'].new()
record.bom_line_ids = self.env['mrp.bom.line'].new()
record.routing_id = self.routing.id
res = record.onchange_routing_id()
self.assertTrue(res['warning'])
def test_start_workorder_without_material(self):
self.production.signal_workflow('button_confirm')
workorder = self.production.workcenter_lines[0]
with self.assertRaises(UserError):
# Missing materials to start the production
workorder.action_start_working()
# In this case it should work
workorder.action_assign()
workorder.force_assign()
workorder.action_start_working()
def test_start_second_workorder(self):
self.production.signal_workflow('button_confirm')
self.production.workcenter_lines[1].routing_wc_line.\
previous_operations_finished = True
with self.assertRaises(UserError):
# Previous operations not finished
self.production.workcenter_lines[1].action_start_working()
def test_create_workcenter_minor_date(self):
date_planned = '1900-01-01 00:00:00'
self.env['mrp.production.workcenter.line'].create(
{'name': 'Test',
'date_planned': date_planned,
'workcenter_id': self.workcenter.id,
'production_id': self.production.id})
self.assertEqual(self.production.date_planned, date_planned)
def test_confirm_production_without_do_production_flag(self):
self.production.action_compute()
self.production.workcenter_lines.write({'do_production': False})
with self.assertRaises(UserError):
# At least one work order must have checked 'Produce here'
self.production.action_confirm()
def test_confirm_production_operation_extension_case1(self):
self.production.signal_workflow('button_confirm')
self.assertFalse(self.production.workcenter_lines[0].is_material_ready)
self.production.force_production()
for line in self.production.workcenter_lines:
self.assertTrue(line.is_material_ready)
self.assertEqual(len(line.possible_workcenters),
len(line.routing_wc_line.op_wc_lines))
line.signal_workflow('button_start_working')
self.assertEqual(
line.state, 'startworking',
'Error work center line not in start working state')
consume = self.work_order_produce_model.with_context(
active_ids=[line.id], active_id=line.id).create({})
result = consume.with_context(
active_ids=[line.id], active_id=line.id).on_change_qty(
consume.product_qty, [])
if 'value' in result:
if ('consume_lines' in result['value'] and
result['value']['consume_lines']):
for cl in result['value']['consume_lines']:
consu_vals = cl[2]
consu_vals['work_produce_id'] = consume.id
self.produce_line_model.create(consu_vals)
if not consume.final_product:
consume.with_context(active_id=line.id).do_consume()
else:
consume.with_context(active_id=line.id).do_consume_produce()
line.signal_workflow('button_done')
self.assertEqual(
line.state, 'done',
'Error work center line not in done state')

View File

@@ -0,0 +1,21 @@
<?xml version="1.0" encoding="utf-8"?>
<openerp>
<data>
<record id="mrp_bom_form_view_inh" model="ir.ui.view">
<field name="name">mrp.bom.form.inh</field>
<field name="model">mrp.bom</field>
<field name="inherit_id" ref="mrp.mrp_bom_form_view" />
<field name="arch" type="xml">
<xpath expr="//tree/field[@name='product_id']"
position="after">
<field name="operation"
widget="selection"
domain="[('routing_id', '=', parent.routing_id)]"
groups="mrp.group_mrp_routings" />
</xpath>
</field>
</record>
</data>
</openerp>

View File

@@ -0,0 +1,40 @@
<?xml version="1.0" encoding="utf-8"?>
<openerp>
<data>
<record id="operation_workcenter_tree" model="ir.ui.view">
<field name="name">rountig.operation.tree</field>
<field name="model">mrp.operation.workcenter</field>
<field name="arch" type="xml">
<tree string="Operation Workcenter">
<field name="workcenter" />
</tree>
</field>
</record>
<record id="operation_workcenter_form" model="ir.ui.view">
<field name="name">rountig.operation.tree</field>
<field name="model">mrp.operation.workcenter</field>
<field name="arch" type="xml">
<form string="Operation Workcenter">
<group>
<field name="workcenter"/>
<field name="time_efficiency" />
<field name="capacity_per_cycle" />
<field name="time_cycle" widget="float_time"/>
<field name="time_start" widget="float_time" />
<field name="time_stop" widget="float_time"/>
<field name="op_number" />
<field name="op_avg_cost" />
</group>
</form>
</field>
</record>
<record id="operation_workcenter_action" model="ir.actions.act_window">
<field name="name">Workcenter Operation</field>
<field name="type">ir.actions.act_window</field>
<field name="res_model">mrp.operation.workcenter</field>
<field name="view_type">form</field>
<field name="view_mode">tree,form</field>
</record>
</data>
</openerp>

View File

@@ -0,0 +1,242 @@
<?xml version="1.0" encoding="utf-8"?>
<openerp>
<data>
<record id="mrp_production_product_tree_view_inh" model="ir.ui.view">
<field name="name">mrp.production.product.tree.view.inh
</field>
<field name="model">mrp.production.product.line</field>
<field name="inherit_id" ref="mrp.mrp_production_product_tree_view" />
<field name="arch" type="xml">
<field name="product_id" position="after">
<field name="work_order" groups="mrp.group_mrp_routings"
domain="[('production_id', '=', production_id)]" />
</field>
</field>
</record>
<record id="mrp_production_product_form_view_inh" model="ir.ui.view">
<field name="name">mrp.production.product.form.view.inh
</field>
<field name="model">mrp.production.product.line</field>
<field name="inherit_id" ref="mrp.mrp_production_product_form_view" />
<field name="arch" type="xml">
<field name="product_id" position="after">
<field name="production_id" invisible="1" />
<field name="work_order" groups="mrp.group_mrp_routings"
domain="[('production_id', '=', production_id)]" />
</field>
</field>
</record>
<record id="mrp_production_form_view_inh" model="ir.ui.view">
<field name="name">mrp.production.form.view.inh</field>
<field name="model">mrp.production</field>
<field name="inherit_id" ref="mrp.mrp_production_form_view" />
<field name="arch" type="xml">
<xpath expr="//page//group[@string='Products to Consume']//field[@name='product_id']" position="after">
<field name="work_order" groups="mrp.group_mrp_routings" />
</xpath>
<xpath expr="//page//group[@string='Consumed Products']//field[@name='product_id']" position="after">
<field name="work_order" groups="mrp.group_mrp_routings" />
</xpath>
<xpath expr="//page//group[@string='Products to Produce']//field[@name='product_id']" position="after">
<field name="work_order" groups="mrp.group_mrp_routings" />
</xpath>
<xpath expr="//page//group[@string='Produced Products']//field[@name='product_id']" position="after">
<field name="work_order" groups="mrp.group_mrp_routings" />
</xpath>
<xpath expr="//field[@name='workcenter_lines']/tree//field[@name='sequence']" position="after">
<field name="do_production" colspan="2" />
</xpath>
<xpath expr="//field[@name='workcenter_lines']/tree//field[@name='hour']" position="after">
<field name="time_start" widget="float_time" />
<field name="time_stop" widget="float_time" />
</xpath>
<xpath expr="//field[@name='workcenter_lines']/form//field[@name='name']" position="attributes">
<attribute name="colspan">2</attribute>
</xpath>
<xpath expr="//field[@name='workcenter_lines']/form//field[@name='workcenter_id']" position="after">
<field name="possible_workcenters" invisible="1"/>
<field name="production_id" />
</xpath>
<xpath expr="//field[@name='workcenter_lines']/form//field[@name='sequence']" position="before">
<field name="production_state" />
</xpath>
<xpath expr="//field[@name='workcenter_lines']/form//field[@name='cycle']" position="replace"/>
<xpath expr="//field[@name='workcenter_lines']/form//field[@name='hour']" position="replace"/>
<xpath expr="//field[@name='workcenter_lines']/form//field[@name='sequence']" position="after">
<field name="do_production" colspan="2" />
<field name="is_material_ready" colspan="2"/>
<notebook colspan="4">
<page string="Materials">
<group string="Product Lines">
<field name="product_line" nolabel="1" colspan="4"/>
</group>
</page>
<page string="Information">
<group>
<group string="Planned Date">
<field name="date_planned" />
<field name="date_planned_end" />
</group>
<group string="Duration">
<field name="cycle" />
<field name="hour" widget="float_time"/>
</group>
<group string="Actual Production Date">
<field name="date_start" />
<field name="date_finished" />
<field name="delay" />
</group>
<group string="Product to Produce">
<field name="product" />
<field name="qty" />
<field name="uom" />
</group>
</group>
</page>
</notebook>
</xpath>
</field>
</record>
<record model="ir.ui.view" id="mrp_production_operation_buttons_form_view">
<field name="name">mrp.production.operation.buttons.form</field>
<field name="model">mrp.production</field>
<field name="inherit_id" ref="mrp_operations.mrp_production_form_inherit_view" />
<field name="arch" type="xml">
<xpath expr="//field[@name='workcenter_lines']/form//field[@name='state']" position="attributes">
<attribute name="statusbar_visible">draft,startworking</attribute>
</xpath>
<button name="button_start_working" position="attributes">
<attribute name="icon"/>
<attribute name="class">oe_highlight</attribute>
</button>
<button name="button_resume" position="attributes">
<attribute name="icon"/>
<attribute name="class">oe_highlight</attribute>
</button>
<button name="button_done" position="attributes">
<attribute name="icon"/>
<attribute name="class">oe_highlight</attribute>
</button>
<button name="button_pause" position="attributes">
<attribute name="icon"/>
</button>
<button name="button_draft" position="attributes">
<attribute name="icon"/>
</button>
<button string="Cancel Order" position="attributes">
<attribute name="icon"/>
</button>
<button string="Cancel Order" position="after">
<button name="action_assign"
states="startworking"
string="Check Availability"
type="object"
class="oe_highlight" />
<button name="force_assign"
states="startworking"
string="Force Reservation"
type="object" />
<button name='%(act_mrp_work_order_produce)d'
type='action' string='Produce'
attrs="{'invisible':['|',('do_production','=',False),('state','in',['draft','cancel','pause','done'])]}" />
<button name='%(act_mrp_work_order_consume)d'
type='action' string='Consume'
attrs="{'invisible':[('state','in',['draft','cancel','pause','done'])]}" />
</button>
</field>
</record>
<record model="ir.ui.view" id="workcenter_line_inh_form_view">
<field name="name">Workcenter line inh</field>
<field name="model">mrp.production.workcenter.line</field>
<field name="inherit_id"
ref="mrp_operations.mrp_production_workcenter_form_view_inherit" />
<field name="arch" type="xml">
<field name="workcenter_id" position="before">
<field name="possible_workcenters" invisible="1"/>
</field>
<button name="button_cancel" position="after">
<button name="action_assign" states="startworking"
string="Check Availability" type="object" class="oe_highlight" />
<button name="force_assign" states="startworking"
string="Force Reservation" type="object" />
<button name='%(act_mrp_work_order_produce)d'
type='action' string='Produce'
attrs="{'invisible':['|',('do_production','=',False),('state','in',['draft','cancel','pause','done'])]}"/>
<button name='%(act_mrp_work_order_consume)d'
type='action' string='Consume'
attrs="{'invisible':[('state','in',['draft','cancel','pause','done'])]}"/>
</button>
<page string="Information" position="inside">
<group string="Product Lines" colspan="4" col="4">
<field name="product_line" nolabel="1"
colspan="4" col="4" readonly="1"/>
</group>
<group string="Stock Moves" colspan="4" col="4">
<field name="move_lines" nolabel="1"/>
</group>
</page>
<group string="Product to Produce" position="replace" />
<group string="Duration" position="replace" />
<group string="Planned Date" position="replace" />
<group string="Actual Production Date" position="replace" />
<page string="Information" position="after">
<page string="Extra Information">
<group>
<group string="Planned Date">
<field name="date_planned" />
<field name="date_planned_end" />
</group>
<group string="Duration">
<field name="cycle" />
<field name="hour" widget="float_time" />
</group>
<group string="Actual Production Date">
<field name="date_start" readonly="1" />
<field name="date_finished"
readonly="1" />
<field name="delay" widget="float_time" />
</group>
<group string="Product to Produce">
<field name="product" />
<field name="qty" />
<field name="uom" />
</group>
</group>
</page>
</page>
<field name="sequence" position="after">
<field name="do_production" />
<field name="is_material_ready" />
</field>
</field>
</record>
<record model="ir.ui.view" id="mrp_production_workcenter_tree_view_inh_op_ext">
<field name="name">Workcenter line op ext</field>
<field name="model">mrp.production.workcenter.line</field>
<field name="inherit_id" ref="mrp_operations.mrp_production_workcenter_tree_view_inherit" />
<field name="arch" type="xml">
<field name="state" position="after">
<field name="production_state"/>
</field>
</field>
</record>
<record id="workcenter_line_future_calendar" model="ir.ui.view">
<field name="name">mrp.production.workcenter.line.future.calendar</field>
<field name="model">mrp.production.workcenter.line</field>
<field name="priority" eval="10"/>
<field name="arch" type="xml">
<calendar color="production_id" date_stop="date_planned_end" date_start="date_planned" string="Operations">
<field name="workcenter_id"/>
<field name="production_id"/>
<field name="product"/>
</calendar>
</field>
</record>
</data>
</openerp>

View File

@@ -0,0 +1,50 @@
<?xml version="1.0" encoding="utf-8"?>
<openerp>
<data>
<record id="rountig_operation_tree" model="ir.ui.view">
<field name="name">routing.operation.tree</field>
<field name="model">mrp.routing.operation</field>
<field name="arch" type="xml">
<tree string="Routing Operation">
<field name="name" />
<field name="code" />
<field name="description" />
</tree>
</field>
</record>
<record id="rountig_operation_form" model="ir.ui.view">
<field name="name">routing.operation.form</field>
<field name="model">mrp.routing.operation</field>
<field name="arch" type="xml">
<form string="Routing Operation">
<group col="4">
<field name="name" colspan="2"/>
<field name="code" colspan="2"/>
<field name="description" colspan="2"/>
<field name="steps" colspan="2"/>
<field name="op_number" colspan="2" />
<field name="picking_type_id" colspan="2" />
</group>
<notebook>
<page string="Workcenters">
<field name="workcenters" colspan="4" nolabel="1"/>
</page>
</notebook>
</form>
</field>
</record>
<record id="mrp_routing_operation_action" model="ir.actions.act_window">
<field name="name">Routing Operation</field>
<field name="type">ir.actions.act_window</field>
<field name="res_model">mrp.routing.operation</field>
<field name="view_type">form</field>
<field name="view_mode">tree,form</field>
</record>
<menuitem action="mrp_routing_operation_action"
name="Operations"
id="mrp_routing_menu"
parent="mrp.menu_mrp_configuration" />
</data>
</openerp>

View File

@@ -0,0 +1,92 @@
<?xml version="1.0" encoding="utf-8"?>
<openerp>
<data>
<record id="mrp.mrp_routing_action" model="ir.actions.act_window">
<field name="context">{'readonly_by_pass': True}</field>
</record>
<record id="mrp_routing_workcenter_tree_view_inh" model="ir.ui.view">
<field name="name">mrp.routing.workcenter.tree.inh</field>
<field name="model">mrp.routing.workcenter</field>
<field name="inherit_id" ref="mrp.mrp_routing_workcenter_tree_view" />
<field name="arch" type="xml">
<field name="workcenter_id" position="attributes">
<attribute name="string">Default workcenter</attribute>
</field>
<field name="hour_nbr" position="attributes">
<attribute name="sum">Total</attribute>
</field>
<field name="cycle_nbr" position="attributes">
<attribute name="sum">Total</attribute>
</field>
<field name="company_id" position="before">
<field name="do_production" />
</field>
</field>
</record>
<record id="mrp_routing_workcenter_form_view_inh" model="ir.ui.view">
<field name="name">mrp.routing.workcenter.form.inh</field>
<field name="model">mrp.routing.workcenter</field>
<field name="inherit_id" ref="mrp.mrp_routing_workcenter_form_view" />
<field name="arch" type="xml">
<field name="name" position="before">
<p colspan="4">Select the operation to copy its current data to this routing line. <strong>WARNING:</strong> Once copied, if you change operation data, it won't be reflected here, unless you select it again.</p>
<field name="operation" colspan="4"/>
</field>
<field name="workcenter_id" position="attributes">
<attribute name="invisible">1</attribute>
</field>
<field name="cycle_nbr" position="after">
<field name="previous_operations_finished" />
</field>
<field name="hour_nbr" position="after">
<field name="do_production" />
</field>
<field name="cycle_nbr" position="attributes">
<attribute name="invisible">1</attribute>
</field>
<field name="hour_nbr" position="attributes">
<attribute name="invisible">1</attribute>
</field>
<field name="workcenter_id" position="after">
<field name="picking_type_id" />
</field>
<label for="note" position="before">
<group string="Work centers">
<field name="op_wc_lines" nolabel="1">
<tree editable="bottom">
<field name="default" />
<field name="workcenter" />
<field name="custom_data" />
<field name="time_efficiency"
attrs="{'readonly': [('custom_data', '=', False)]}"
/>
<field name="capacity_per_cycle"
attrs="{'readonly': [('custom_data', '=', False)]}"
/>
<field name="time_start" widget="float_time"
attrs="{'readonly': [('custom_data', '=', False)]}"
/>
<field name="time_stop" widget="float_time"
attrs="{'readonly': [('custom_data', '=', False)]}"
/>
<field name="time_cycle" widget="float_time"
attrs="{'readonly': [('custom_data', '=', False)]}"
/>
<field name="op_number"
groups="mrp_operations_extension.group_mrp_workers"
attrs="{'readonly': [('custom_data', '=', False)]}"
/>
<field name="op_avg_cost"
groups="mrp_operations_extension.group_mrp_workers"
attrs="{'readonly': [('custom_data', '=', False)]}"
/>
</tree>
</field>
</group>
</label>
</field>
</record>
</data>
</openerp>

View File

@@ -0,0 +1,32 @@
<?xml version="1.0" encoding="utf-8"?>
<openerp>
<data>
<record id="mrp_workcenter_form_view_inh" model="ir.ui.view">
<field name="name">mrp.workcenter.form.inh</field>
<field name="model">mrp.workcenter</field>
<field name="inherit_id" ref="mrp.mrp_workcenter_view" />
<field name="arch" type="xml">
<field name="time_start" position="after">
<field name="pre_op_product" />
</field>
<field name="time_stop" position="after">
<field name="post_op_product" />
</field>
<xpath expr="//page[@string='General Information']"
position="after">
<page string="Operators"
groups="mrp_operations_extension.group_mrp_workers">
<group colspan="4">
<field name="op_number" />
<field name="op_avg_cost" />
</group>
<field name="operators" />
</page>
<page string="Routing Operations">
<field name="rt_operations" nolabel="1" />
</page>
</xpath>
</field>
</record>
</data>
</openerp>

View File

@@ -0,0 +1,19 @@
<?xml version="1.0" encoding="UTF-8"?>
<openerp>
<data>
<record model="ir.ui.view" id="mrp_settings_form_view">
<field name="name">mrp.settings.form</field>
<field name="model">mrp.config.settings</field>
<field name="inherit_id" ref="mrp.view_mrp_config" />
<field name="arch" type="xml">
<xpath expr="//label[@string='Planning']/../div" position="inside">
<div>
<field name="group_mrp_workers" class="oe_inline"/>
<label for="group_mrp_workers"/>
</div>
</xpath>
</field>
</record>
</data>
</openerp>

View File

@@ -0,0 +1,5 @@
# -*- coding: utf-8 -*-
##############################################################################
# For copyright and license notices, see __openerp__.py file in root directory
##############################################################################
from . import mrp_work_order_produce

View File

@@ -0,0 +1,116 @@
# -*- coding: utf-8 -*-
##############################################################################
# For copyright and license notices, see __openerp__.py file in root directory
##############################################################################
from openerp import fields, models
class MrpWorkOrderProduce(models.TransientModel):
_name = "mrp.work.order.produce"
def default_get(self, cr, uid, var_fields, context=None):
a = super(MrpWorkOrderProduce, self).default_get(
cr, uid, var_fields, context=context)
work = self.pool['mrp.production.workcenter.line'].browse(
cr, uid, context.get('active_ids'), context=context)[0]
a.update({'final_product': work.do_production})
return a
def _get_product_id(self):
""" To obtain product id
@return: id
"""
prod = False
if self.env.context.get("active_id"):
work_line = self.env['mrp.production.workcenter.line'].browse(
self.env.context.get("active_id"))
prod = work_line.production_id
return prod and prod.product_id or False
def _get_track(self):
prod = self._get_product_id()
return prod and (prod.track_all or prod.track_production) or False
def do_consume(self, cr, uid, ids, context=None):
work_line = self.pool['mrp.production.workcenter.line'].browse(
cr, uid, context.get("active_id"), context=context)
production_id = work_line.production_id.id
assert production_id
data = self.browse(cr, uid, ids[0], context=context)
self.pool['mrp.production'].action_produce(
cr, uid, production_id, False, 'consume', data, context=context)
return {}
def do_consume_produce(self, cr, uid, ids, context=None):
work_line = self.pool['mrp.production.workcenter.line'].browse(
cr, uid, context.get("active_id"), context=context)
production_id = work_line.production_id.id
assert production_id
data = self.browse(cr, uid, ids[0], context=context)
self.pool['mrp.production'].action_produce(
cr, uid, production_id, data.product_qty, 'consume_produce', data,
context=context)
return {}
def on_change_qty(self, cr, uid, ids, product_qty, consume_lines,
context=None):
"""
When changing the quantity of products to be producedit will
recalculate the number of raw materials needed according to
the scheduled products and the already consumed/produced products
It will return the consume lines needed for the products
to be produced which the user can still adapt
"""
prod_obj = self.pool["mrp.production"]
work_line = self.pool['mrp.production.workcenter.line'].browse(
cr, uid, context.get("active_id"), context=context)
production = work_line.production_id
consume_lines = []
new_consume_lines = []
if product_qty > 0.0:
consume_lines = prod_obj._calculate_qty(
cr, uid, production, product_qty=product_qty, context=context)
line_ids = [i.product_id.id for i in work_line.product_line]
for consume in consume_lines:
if consume['product_id'] in line_ids:
new_consume_lines.append([0, False, consume])
return {'value': {'consume_lines': new_consume_lines}}
def _default_product_qty(self):
""" To obtain product quantity
@param self: The object pointer.
@param cr: A database cursor
@param uid: ID of the user currently logged in
@param context: A standard dictionary
@return: Quantity
"""
work_line = self.env['mrp.production.workcenter.line'].browse(
self.env.context.get("active_id"))
prod = work_line.production_id
moves = prod.move_created_ids2.filtered(
lambda x: x.product_id == prod.product_id and not x.scrapped)
done = sum(moves.mapped('product_qty'))
return (prod.product_qty - done) or prod.product_qty
product_id = fields.Many2one(
'product.product', string='Product', default=_get_product_id)
product_qty = fields.Float(
string='Select Quantity', digits=(12, 6), required=True,
default=_default_product_qty)
mode = fields.Selection([('consume_produce', 'Consume & Produce'),
('consume', 'Consume Only')],
string='Mode', required=True,
default='consume')
lot_id = fields.Many2one('stock.production.lot', 'Lot')
consume_lines = fields.One2many('mrp.product.produce.line',
'work_produce_id',
string='Products Consumed')
track_production = fields.Boolean('Track production', default=_get_track)
final_product = fields.Boolean(string='Final Product to Stock')
class MrpProductProduceLine(models.TransientModel):
_inherit = "mrp.product.produce.line"
work_produce_id = fields.Many2one('mrp.work.order.produce')

View File

@@ -0,0 +1,107 @@
<?xml version="1.0" encoding="utf-8"?>
<openerp>
<data>
<!-- Produce -->
<record id="view_mrp_product_produce_wizard" model="ir.ui.view">
<field name="name">MRP Work Order Produce</field>
<field name="model">mrp.work.order.produce</field>
<field name="arch" type="xml">
<form string="Produce">
<group string="Produce">
<!-- <field name="mode" attrs="{'readonly':[('final_product','=',True)]}"/> -->
<field name="mode" invisible="1"/>
<field name="product_qty" colspan="2" on_change="on_change_qty(product_qty, consume_lines, context)" attrs="{'invisible':[('final_product','=',False)]}"/>
<field name="product_id" invisible="1"/>
<field name="final_product" invisible="1"/>
<field name="track_production" invisible="1"/>
<field name="lot_id" domain="[('product_id', '=', product_id)]"
context="{'default_product_id':product_id}"
attrs="{'required': [('track_production', '=', True), ('mode', '=', 'consume_produce')], 'invisible':[('final_product','=',False)]}"
groups="stock.group_production_lot"/>
</group>
<group string="To Consume">
<field name="consume_lines" nolabel="1" >
<tree string="Consume Lines" editable="top">
<field name="product_id"/>
<field name="product_qty"/>
<field name="lot_id" domain="[('product_id', '=', product_id)]"
context="{'default_product_id':product_id}"
groups="stock.group_production_lot"/>
</tree>
</field>
</group>
<footer>
<button name="do_consume_produce" type="object" string="Consume &amp; Produce" class="oe_highlight" attrs="{'invisible':[('final_product','=',False)]}"/>
or
<button string="Cancel" class="oe_link" special="cancel" />
</footer>
</form>
</field>
</record>
<!-- Consume -->
<record id="view_mrp_product_consume_wizard" model="ir.ui.view">
<field name="name">MRP Work Order Consume</field>
<field name="model">mrp.work.order.produce</field>
<field name="arch" type="xml">
<form string="Produce">
<group string="Produce">
<!-- <field name="mode" attrs="{'readonly':[('final_product','=',True)]}"/> -->
<field name="mode" invisible="1"/>
<field name="product_qty" colspan="2" on_change="on_change_qty(product_qty, consume_lines, context)" attrs="{'invisible':[('final_product','=',False)]}"/>
<field name="product_id" invisible="1"/>
<field name="final_product" invisible="1"/>
<field name="track_production" invisible="1"/>
<field name="lot_id" domain="[('product_id', '=', product_id)]"
context="{'default_product_id':product_id}"
attrs="{'required': [('track_production', '=', True), ('mode', '=', 'consume_produce')], 'invisible':[('final_product','=',False)]}"
groups="stock.group_production_lot"/>
</group>
<group string="To Consume">
<field name="consume_lines" nolabel="1" >
<tree string="Consume Lines" editable="top" >
<field name="product_id"/>
<field name="product_qty"/>
<field name="lot_id" domain="[('product_id', '=', product_id)]"
context="{'default_product_id':product_id}"
groups="stock.group_production_lot"/>
</tree>
</field>
</group>
<footer>
<button name="do_consume" type="object" string="Consume" class="oe_highlight"/>
or
<button string="Cancel" class="oe_link" special="cancel" />
</footer>
</form>
</field>
</record>
<record id="act_mrp_work_order_produce" model="ir.actions.act_window">
<field name="name">Produce</field>
<field name="type">ir.actions.act_window</field>
<field name="res_model">mrp.work.order.produce</field>
<field name="view_type">form</field>
<field name="view_mode">form</field>
<field name="target">new</field>
<field name="view_id" ref="view_mrp_product_produce_wizard"/>
</record>
<record id="act_mrp_work_order_consume" model="ir.actions.act_window">
<field name="name">Consume</field>
<field name="type">ir.actions.act_window</field>
<field name="res_model">mrp.work.order.produce</field>
<field name="view_type">form</field>
<field name="view_mode">form</field>
<field name="target">new</field>
<field name="view_id" ref="view_mrp_product_consume_wizard"/>
</record>
</data>
</openerp>