Merge pull request #57 from pedrobaeza/8.0-mrp_operations_extension
[8.0] mrp_hook + mrp_operations_extension
@@ -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(
|
||||
|
||||
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
|
After Width: | Height: | Size: 114 KiB |
81
mrp_hook/images/image.svg
Normal file
|
After Width: | Height: | Size: 125 KiB |
5
mrp_hook/models/__init__.py
Normal 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
@@ -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
|
||||
BIN
mrp_hook/static/description/icon.png
Normal file
|
After Width: | Height: | Size: 8.7 KiB |
74
mrp_hook/static/description/icon.svg
Normal file
|
After Width: | Height: | Size: 9.0 KiB |
6
mrp_hook/tests/__init__.py
Normal 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
|
||||
54
mrp_hook/tests/test_mrp_hook.py
Normal 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)
|
||||
135
mrp_operations_extension/README.rst
Normal 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.
|
||||
8
mrp_operations_extension/__init__.py
Normal 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
|
||||
61
mrp_operations_extension/__openerp__.py
Normal 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
|
||||
}
|
||||
@@ -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>
|
||||
13
mrp_operations_extension/demo/hr_employee_demo.xml
Normal 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>
|
||||
102
mrp_operations_extension/demo/mrp_bom_demo.xml
Normal 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>
|
||||
16
mrp_operations_extension/demo/mrp_production_demo.xml
Normal 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>
|
||||
18
mrp_operations_extension/demo/mrp_routing_demo.xml
Normal 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>
|
||||
15
mrp_operations_extension/demo/mrp_workcenter_demo.xml
Normal 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>
|
||||
44
mrp_operations_extension/demo/res_partner_demo.xml
Normal 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>
|
||||
31
mrp_operations_extension/hooks.py
Normal 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)
|
||||
560
mrp_operations_extension/i18n/es.po
Normal 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 ""
|
||||
553
mrp_operations_extension/i18n/fr.po
Normal 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 ""
|
||||
559
mrp_operations_extension/i18n/it.po
Normal 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 ""
|
||||
559
mrp_operations_extension/i18n/pt_BR.po
Normal 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 ""
|
||||
559
mrp_operations_extension/i18n/ro.po
Normal 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 ""
|
||||
560
mrp_operations_extension/i18n/sl.po
Normal 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', '!=', [])]}"
|
||||
BIN
mrp_operations_extension/images/bom.png
Normal file
|
After Width: | Height: | Size: 55 KiB |
BIN
mrp_operations_extension/images/manufacturing_order.png
Normal file
|
After Width: | Height: | Size: 71 KiB |
BIN
mrp_operations_extension/images/operation.png
Normal file
|
After Width: | Height: | Size: 35 KiB |
BIN
mrp_operations_extension/images/routing.png
Normal file
|
After Width: | Height: | Size: 47 KiB |
BIN
mrp_operations_extension/images/routing_line.png
Normal file
|
After Width: | Height: | Size: 49 KiB |
BIN
mrp_operations_extension/images/work_order.png
Normal file
|
After Width: | Height: | Size: 39 KiB |
BIN
mrp_operations_extension/images/work_order2.png
Normal file
|
After Width: | Height: | Size: 58 KiB |
@@ -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)
|
||||
11
mrp_operations_extension/models/__init__.py
Normal 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
|
||||
61
mrp_operations_extension/models/mrp_bom.py
Normal 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')
|
||||
138
mrp_operations_extension/models/mrp_production.py
Normal 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()
|
||||
118
mrp_operations_extension/models/mrp_routing.py
Normal 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
|
||||
21
mrp_operations_extension/models/mrp_routing_operation.py
Normal 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')
|
||||
37
mrp_operations_extension/models/mrp_workcenter.py
Normal 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'))
|
||||
13
mrp_operations_extension/models/res_config.py
Normal 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')
|
||||
12
mrp_operations_extension/models/stock_move.py
Normal 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')
|
||||
3
mrp_operations_extension/security/ir.model.access.csv
Normal 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
|
||||
|
@@ -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>
|
||||
BIN
mrp_operations_extension/static/description/icon.png
Normal file
|
After Width: | Height: | Size: 7.4 KiB |
151
mrp_operations_extension/static/description/icon.svg
Normal file
|
After Width: | Height: | Size: 14 KiB |
5
mrp_operations_extension/tests/__init__.py
Normal 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
|
||||
189
mrp_operations_extension/tests/test_mrp_operations_extension.py
Normal 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')
|
||||
21
mrp_operations_extension/views/mrp_bom_view.xml
Normal 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>
|
||||
@@ -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>
|
||||
242
mrp_operations_extension/views/mrp_production_view.xml
Normal 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>
|
||||
@@ -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>
|
||||
92
mrp_operations_extension/views/mrp_routing_view.xml
Normal 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>
|
||||
32
mrp_operations_extension/views/mrp_workcenter_view.xml
Normal 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>
|
||||
19
mrp_operations_extension/views/res_config_view.xml
Normal 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>
|
||||
5
mrp_operations_extension/wizard/__init__.py
Normal 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
|
||||
116
mrp_operations_extension/wizard/mrp_work_order_produce.py
Normal 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')
|
||||
107
mrp_operations_extension/wizard/mrp_workorder_produce_view.xml
Normal 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 & 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>
|
||||