[tryton-debian-vcs] tryton-modules-stock-lot branch upstream updated. upstream/2.8.0-1-gf7b6c9e
git repository hosting
tryton-debian-vcs at m9s.biz
Mon Nov 25 19:38:10 UTC 2013
The following commit has been merged in the upstream branch:
http://debian.tryton.org/gitweb/?p=packages/tryton-modules-stock-lot.git;a=commitdiff;h=upstream/2.8.0-1-gf7b6c9e
commit f7b6c9e6f23b886fc1c4a461c998f60469920359
Author: Mathias Behrle <mathiasb at m9s.biz>
Date: Sun Nov 24 17:28:26 2013 +0100
Adding upstream version 3.0.0.
diff --git a/CHANGELOG b/CHANGELOG
index 3ac4e21..8b6585f 100644
--- a/CHANGELOG
+++ b/CHANGELOG
@@ -1,3 +1,9 @@
+Version 3.0.0 - 2013-10-21
+* Bug fixes (see mercurial logs for details)
+* Add quantity and forecast_quantity fields on Lot
+* Add lot in inventory
+* Add Period Cache per lot
+
Version 2.8.0 - 2013-04-22
* Bug fixes (see mercurial logs for details)
diff --git a/PKG-INFO b/PKG-INFO
index aa102f8..0e80546 100644
--- a/PKG-INFO
+++ b/PKG-INFO
@@ -1,12 +1,12 @@
Metadata-Version: 1.1
Name: trytond_stock_lot
-Version: 2.8.0
+Version: 3.0.0
Summary: Tryton module for lot of products
Home-page: http://www.tryton.org/
Author: Tryton
Author-email: UNKNOWN
License: GPL-3
-Download-URL: http://downloads.tryton.org/2.8/
+Download-URL: http://downloads.tryton.org/3.0/
Description: trytond_stock_lot
=================
@@ -60,6 +60,7 @@ Classifier: Natural Language :: English
Classifier: Natural Language :: French
Classifier: Natural Language :: German
Classifier: Natural Language :: Russian
+Classifier: Natural Language :: Slovenian
Classifier: Natural Language :: Spanish
Classifier: Operating System :: OS Independent
Classifier: Programming Language :: Python :: 2.6
diff --git a/__init__.py b/__init__.py
index a41bf3c..e9898f7 100644
--- a/__init__.py
+++ b/__init__.py
@@ -14,6 +14,10 @@ def register():
ShipmentIn,
ShipmentOut,
ShipmentOutReturn,
+ Period,
+ PeriodCacheLot,
+ Inventory,
+ InventoryLine,
Template,
Product,
TemplateLotType,
diff --git a/locale/bg_BG.po b/locale/bg_BG.po
index 75605bb..da3662a 100644
--- a/locale/bg_BG.po
+++ b/locale/bg_BG.po
@@ -42,6 +42,11 @@ msgctxt "field:product.template-stock.lot.type,write_uid:"
msgid "Write User"
msgstr "Записано от"
+#, fuzzy
+msgctxt "field:stock.inventory.line,lot:"
+msgid "Lot"
+msgstr "Партида"
+
msgctxt "field:stock.lot,create_date:"
msgid "Create Date"
msgstr "Създадено на"
@@ -50,6 +55,11 @@ msgctxt "field:stock.lot,create_uid:"
msgid "Create User"
msgstr "Създадено от"
+#, fuzzy
+msgctxt "field:stock.lot,forecast_quantity:"
+msgid "Forecast Quantity"
+msgstr "Планирано количество"
+
msgctxt "field:stock.lot,id:"
msgid "ID"
msgstr "ID"
@@ -62,6 +72,11 @@ msgctxt "field:stock.lot,product:"
msgid "Product"
msgstr "Продукт"
+#, fuzzy
+msgctxt "field:stock.lot,quantity:"
+msgid "Quantity"
+msgstr "Количество"
+
msgctxt "field:stock.lot,rec_name:"
msgid "Name"
msgstr "Име"
@@ -110,6 +125,65 @@ msgctxt "field:stock.move,lot:"
msgid "Lot"
msgstr "Партида"
+msgctxt "field:stock.period,lot_caches:"
+msgid "Lot Caches"
+msgstr ""
+
+#, fuzzy
+msgctxt "field:stock.period.cache.lot,create_date:"
+msgid "Create Date"
+msgstr "Създадено на"
+
+#, fuzzy
+msgctxt "field:stock.period.cache.lot,create_uid:"
+msgid "Create User"
+msgstr "Създадено от"
+
+#, fuzzy
+msgctxt "field:stock.period.cache.lot,id:"
+msgid "ID"
+msgstr "ID"
+
+#, fuzzy
+msgctxt "field:stock.period.cache.lot,internal_quantity:"
+msgid "Internal Quantity"
+msgstr "Вътрешно количество"
+
+#, fuzzy
+msgctxt "field:stock.period.cache.lot,location:"
+msgid "Location"
+msgstr "Местоположение"
+
+#, fuzzy
+msgctxt "field:stock.period.cache.lot,lot:"
+msgid "Lot"
+msgstr "Партида"
+
+#, fuzzy
+msgctxt "field:stock.period.cache.lot,period:"
+msgid "Period"
+msgstr "Период"
+
+#, fuzzy
+msgctxt "field:stock.period.cache.lot,product:"
+msgid "Product"
+msgstr "Продукт"
+
+#, fuzzy
+msgctxt "field:stock.period.cache.lot,rec_name:"
+msgid "Name"
+msgstr "Име на прикачен файл"
+
+#, fuzzy
+msgctxt "field:stock.period.cache.lot,write_date:"
+msgid "Write Date"
+msgstr "Променено на"
+
+#, fuzzy
+msgctxt "field:stock.period.cache.lot,write_uid:"
+msgid "Write User"
+msgstr "Променено от"
+
msgctxt "help:product.template,lot_required:"
msgid "The type of location for which lot is required"
msgstr "Вида местонахождение за което е необходима партидата"
@@ -154,6 +228,10 @@ msgctxt "model:stock.lot.type,name:type_supplier"
msgid "Supplier"
msgstr "Доставчик"
+msgctxt "model:stock.period.cache.lot,name:"
+msgid "Stock Period Cache per Lot"
+msgstr ""
+
msgctxt "view:product.product:"
msgid "Lots"
msgstr "Партиди"
@@ -170,3 +248,11 @@ msgstr "Партида"
msgctxt "view:stock.lot:"
msgid "Lots"
msgstr "Партиди"
+
+msgctxt "view:stock.period.cache.lot:"
+msgid "Period Lot Cache"
+msgstr ""
+
+msgctxt "view:stock.period.cache.lot:"
+msgid "Period Lot Caches"
+msgstr ""
diff --git a/locale/ca_ES.po b/locale/ca_ES.po
index 65b0bda..538154a 100644
--- a/locale/ca_ES.po
+++ b/locale/ca_ES.po
@@ -42,6 +42,10 @@ msgctxt "field:product.template-stock.lot.type,write_uid:"
msgid "Write User"
msgstr "Usuari modificació"
+msgctxt "field:stock.inventory.line,lot:"
+msgid "Lot"
+msgstr "Lot"
+
msgctxt "field:stock.lot,create_date:"
msgid "Create Date"
msgstr "Data creació"
@@ -50,6 +54,10 @@ msgctxt "field:stock.lot,create_uid:"
msgid "Create User"
msgstr "Usuari creació"
+msgctxt "field:stock.lot,forecast_quantity:"
+msgid "Forecast Quantity"
+msgstr "Quantitat prevista"
+
msgctxt "field:stock.lot,id:"
msgid "ID"
msgstr "ID"
@@ -62,6 +70,10 @@ msgctxt "field:stock.lot,product:"
msgid "Product"
msgstr "Productes"
+msgctxt "field:stock.lot,quantity:"
+msgid "Quantity"
+msgstr "Quantitat"
+
msgctxt "field:stock.lot,rec_name:"
msgid "Name"
msgstr "Nom"
@@ -110,6 +122,54 @@ msgctxt "field:stock.move,lot:"
msgid "Lot"
msgstr "Lot"
+msgctxt "field:stock.period,lot_caches:"
+msgid "Lot Caches"
+msgstr "Precàlculs de lot"
+
+msgctxt "field:stock.period.cache.lot,create_date:"
+msgid "Create Date"
+msgstr "Data creació"
+
+msgctxt "field:stock.period.cache.lot,create_uid:"
+msgid "Create User"
+msgstr "Usuari creació"
+
+msgctxt "field:stock.period.cache.lot,id:"
+msgid "ID"
+msgstr "ID"
+
+msgctxt "field:stock.period.cache.lot,internal_quantity:"
+msgid "Internal Quantity"
+msgstr "Quantitat interna"
+
+msgctxt "field:stock.period.cache.lot,location:"
+msgid "Location"
+msgstr "Ubicació"
+
+msgctxt "field:stock.period.cache.lot,lot:"
+msgid "Lot"
+msgstr "Lot"
+
+msgctxt "field:stock.period.cache.lot,period:"
+msgid "Period"
+msgstr "Període"
+
+msgctxt "field:stock.period.cache.lot,product:"
+msgid "Product"
+msgstr "Productes"
+
+msgctxt "field:stock.period.cache.lot,rec_name:"
+msgid "Name"
+msgstr "Nom"
+
+msgctxt "field:stock.period.cache.lot,write_date:"
+msgid "Write Date"
+msgstr "Data modificació"
+
+msgctxt "field:stock.period.cache.lot,write_uid:"
+msgid "Write User"
+msgstr "Usuari modificació"
+
msgctxt "help:product.template,lot_required:"
msgid "The type of location for which lot is required"
msgstr "Tipus d'ubicació per la qual el lot és obligatori"
@@ -154,6 +214,10 @@ msgctxt "model:stock.lot.type,name:type_supplier"
msgid "Supplier"
msgstr "Proveïdor"
+msgctxt "model:stock.period.cache.lot,name:"
+msgid "Stock Period Cache per Lot"
+msgstr "Període d'estoc precalculat per lot"
+
msgctxt "view:product.product:"
msgid "Lots"
msgstr "Lots"
@@ -169,3 +233,11 @@ msgstr "Lot"
msgctxt "view:stock.lot:"
msgid "Lots"
msgstr "Lots"
+
+msgctxt "view:stock.period.cache.lot:"
+msgid "Period Lot Cache"
+msgstr "Període d'estoc precalculat "
+
+msgctxt "view:stock.period.cache.lot:"
+msgid "Period Lot Caches"
+msgstr "Períodes d'estoc precalculat "
diff --git a/locale/cs_CZ.po b/locale/cs_CZ.po
index 837c670..1214beb 100644
--- a/locale/cs_CZ.po
+++ b/locale/cs_CZ.po
@@ -42,6 +42,11 @@ msgctxt "field:product.template-stock.lot.type,write_uid:"
msgid "Write User"
msgstr ""
+#, fuzzy
+msgctxt "field:stock.inventory.line,lot:"
+msgid "Lot"
+msgstr "Lot"
+
msgctxt "field:stock.lot,create_date:"
msgid "Create Date"
msgstr ""
@@ -50,6 +55,10 @@ msgctxt "field:stock.lot,create_uid:"
msgid "Create User"
msgstr ""
+msgctxt "field:stock.lot,forecast_quantity:"
+msgid "Forecast Quantity"
+msgstr ""
+
msgctxt "field:stock.lot,id:"
msgid "ID"
msgstr ""
@@ -62,6 +71,10 @@ msgctxt "field:stock.lot,product:"
msgid "Product"
msgstr ""
+msgctxt "field:stock.lot,quantity:"
+msgid "Quantity"
+msgstr ""
+
msgctxt "field:stock.lot,rec_name:"
msgid "Name"
msgstr ""
@@ -111,6 +124,55 @@ msgctxt "field:stock.move,lot:"
msgid "Lot"
msgstr "Lot"
+msgctxt "field:stock.period,lot_caches:"
+msgid "Lot Caches"
+msgstr ""
+
+msgctxt "field:stock.period.cache.lot,create_date:"
+msgid "Create Date"
+msgstr ""
+
+msgctxt "field:stock.period.cache.lot,create_uid:"
+msgid "Create User"
+msgstr ""
+
+msgctxt "field:stock.period.cache.lot,id:"
+msgid "ID"
+msgstr ""
+
+msgctxt "field:stock.period.cache.lot,internal_quantity:"
+msgid "Internal Quantity"
+msgstr ""
+
+msgctxt "field:stock.period.cache.lot,location:"
+msgid "Location"
+msgstr ""
+
+#, fuzzy
+msgctxt "field:stock.period.cache.lot,lot:"
+msgid "Lot"
+msgstr "Lot"
+
+msgctxt "field:stock.period.cache.lot,period:"
+msgid "Period"
+msgstr ""
+
+msgctxt "field:stock.period.cache.lot,product:"
+msgid "Product"
+msgstr ""
+
+msgctxt "field:stock.period.cache.lot,rec_name:"
+msgid "Name"
+msgstr ""
+
+msgctxt "field:stock.period.cache.lot,write_date:"
+msgid "Write Date"
+msgstr ""
+
+msgctxt "field:stock.period.cache.lot,write_uid:"
+msgid "Write User"
+msgstr ""
+
msgctxt "help:product.template,lot_required:"
msgid "The type of location for which lot is required"
msgstr ""
@@ -155,6 +217,10 @@ msgctxt "model:stock.lot.type,name:type_supplier"
msgid "Supplier"
msgstr ""
+msgctxt "model:stock.period.cache.lot,name:"
+msgid "Stock Period Cache per Lot"
+msgstr ""
+
msgctxt "view:product.product:"
msgid "Lots"
msgstr ""
@@ -171,3 +237,11 @@ msgstr "Lot"
msgctxt "view:stock.lot:"
msgid "Lots"
msgstr ""
+
+msgctxt "view:stock.period.cache.lot:"
+msgid "Period Lot Cache"
+msgstr ""
+
+msgctxt "view:stock.period.cache.lot:"
+msgid "Period Lot Caches"
+msgstr ""
diff --git a/locale/de_DE.po b/locale/de_DE.po
index 291ccb7..e3593a9 100644
--- a/locale/de_DE.po
+++ b/locale/de_DE.po
@@ -42,6 +42,10 @@ msgctxt "field:product.template-stock.lot.type,write_uid:"
msgid "Write User"
msgstr "Letzte Änderung durch"
+msgctxt "field:stock.inventory.line,lot:"
+msgid "Lot"
+msgstr "Charge"
+
msgctxt "field:stock.lot,create_date:"
msgid "Create Date"
msgstr "Erstellungsdatum"
@@ -50,6 +54,10 @@ msgctxt "field:stock.lot,create_uid:"
msgid "Create User"
msgstr "Erstellt durch"
+msgctxt "field:stock.lot,forecast_quantity:"
+msgid "Forecast Quantity"
+msgstr "Voraussichtliche Anzahl"
+
msgctxt "field:stock.lot,id:"
msgid "ID"
msgstr "ID"
@@ -62,6 +70,10 @@ msgctxt "field:stock.lot,product:"
msgid "Product"
msgstr "Artikel"
+msgctxt "field:stock.lot,quantity:"
+msgid "Quantity"
+msgstr "Anzahl"
+
msgctxt "field:stock.lot,rec_name:"
msgid "Name"
msgstr "Name"
@@ -110,6 +122,54 @@ msgctxt "field:stock.move,lot:"
msgid "Lot"
msgstr "Charge"
+msgctxt "field:stock.period,lot_caches:"
+msgid "Lot Caches"
+msgstr "Caches Charge"
+
+msgctxt "field:stock.period.cache.lot,create_date:"
+msgid "Create Date"
+msgstr "Erstellungsdatum"
+
+msgctxt "field:stock.period.cache.lot,create_uid:"
+msgid "Create User"
+msgstr "Erstellt durch"
+
+msgctxt "field:stock.period.cache.lot,id:"
+msgid "ID"
+msgstr "ID"
+
+msgctxt "field:stock.period.cache.lot,internal_quantity:"
+msgid "Internal Quantity"
+msgstr "Interne Anzahl"
+
+msgctxt "field:stock.period.cache.lot,location:"
+msgid "Location"
+msgstr "Ort"
+
+msgctxt "field:stock.period.cache.lot,lot:"
+msgid "Lot"
+msgstr "Charge"
+
+msgctxt "field:stock.period.cache.lot,period:"
+msgid "Period"
+msgstr "Periode"
+
+msgctxt "field:stock.period.cache.lot,product:"
+msgid "Product"
+msgstr "Artikel"
+
+msgctxt "field:stock.period.cache.lot,rec_name:"
+msgid "Name"
+msgstr "Name"
+
+msgctxt "field:stock.period.cache.lot,write_date:"
+msgid "Write Date"
+msgstr "Zuletzt geändert"
+
+msgctxt "field:stock.period.cache.lot,write_uid:"
+msgid "Write User"
+msgstr "Letzte Änderung durch"
+
msgctxt "help:product.template,lot_required:"
msgid "The type of location for which lot is required"
msgstr "Typ des Lagerorts, für den eine Chargen-Nummer erforderlich ist"
@@ -154,6 +214,10 @@ msgctxt "model:stock.lot.type,name:type_supplier"
msgid "Supplier"
msgstr "Lieferant"
+msgctxt "model:stock.period.cache.lot,name:"
+msgid "Stock Period Cache per Lot"
+msgstr "Lager Cache Periode pro Charge"
+
msgctxt "view:product.product:"
msgid "Lots"
msgstr "Chargen"
@@ -169,3 +233,11 @@ msgstr "Charge"
msgctxt "view:stock.lot:"
msgid "Lots"
msgstr "Chargen"
+
+msgctxt "view:stock.period.cache.lot:"
+msgid "Period Lot Cache"
+msgstr "Cache Periode Charge"
+
+msgctxt "view:stock.period.cache.lot:"
+msgid "Period Lot Caches"
+msgstr "Caches Perioden Chargen"
diff --git a/locale/es_AR.po b/locale/es_AR.po
index 36350f3..d1f4bb8 100644
--- a/locale/es_AR.po
+++ b/locale/es_AR.po
@@ -42,6 +42,10 @@ msgctxt "field:product.template-stock.lot.type,write_uid:"
msgid "Write User"
msgstr "Usuario modificación"
+msgctxt "field:stock.inventory.line,lot:"
+msgid "Lot"
+msgstr "Lote"
+
msgctxt "field:stock.lot,create_date:"
msgid "Create Date"
msgstr "Fecha creación"
@@ -50,6 +54,10 @@ msgctxt "field:stock.lot,create_uid:"
msgid "Create User"
msgstr "Usuario creación"
+msgctxt "field:stock.lot,forecast_quantity:"
+msgid "Forecast Quantity"
+msgstr "Cantidad prevista"
+
msgctxt "field:stock.lot,id:"
msgid "ID"
msgstr "ID"
@@ -62,6 +70,10 @@ msgctxt "field:stock.lot,product:"
msgid "Product"
msgstr "Producto"
+msgctxt "field:stock.lot,quantity:"
+msgid "Quantity"
+msgstr "Cantidad"
+
msgctxt "field:stock.lot,rec_name:"
msgid "Name"
msgstr "Nombre"
@@ -110,6 +122,54 @@ msgctxt "field:stock.move,lot:"
msgid "Lot"
msgstr "Lote"
+msgctxt "field:stock.period,lot_caches:"
+msgid "Lot Caches"
+msgstr "Lote precalculado"
+
+msgctxt "field:stock.period.cache.lot,create_date:"
+msgid "Create Date"
+msgstr "Fecha creación"
+
+msgctxt "field:stock.period.cache.lot,create_uid:"
+msgid "Create User"
+msgstr "Usuario creación"
+
+msgctxt "field:stock.period.cache.lot,id:"
+msgid "ID"
+msgstr "ID"
+
+msgctxt "field:stock.period.cache.lot,internal_quantity:"
+msgid "Internal Quantity"
+msgstr "Cantidad interna"
+
+msgctxt "field:stock.period.cache.lot,location:"
+msgid "Location"
+msgstr "Ubicación"
+
+msgctxt "field:stock.period.cache.lot,lot:"
+msgid "Lot"
+msgstr "Lote"
+
+msgctxt "field:stock.period.cache.lot,period:"
+msgid "Period"
+msgstr "Período"
+
+msgctxt "field:stock.period.cache.lot,product:"
+msgid "Product"
+msgstr "Productos"
+
+msgctxt "field:stock.period.cache.lot,rec_name:"
+msgid "Name"
+msgstr "Nombre"
+
+msgctxt "field:stock.period.cache.lot,write_date:"
+msgid "Write Date"
+msgstr "Fecha modificación"
+
+msgctxt "field:stock.period.cache.lot,write_uid:"
+msgid "Write User"
+msgstr "Usuario modificación"
+
msgctxt "help:product.template,lot_required:"
msgid "The type of location for which lot is required"
msgstr "El tipo de ubicación para la cual el lote es requerido"
@@ -154,6 +214,10 @@ msgctxt "model:stock.lot.type,name:type_supplier"
msgid "Supplier"
msgstr "Proveedor"
+msgctxt "model:stock.period.cache.lot,name:"
+msgid "Stock Period Cache per Lot"
+msgstr "Período de stock precalculado por lote"
+
msgctxt "view:product.product:"
msgid "Lots"
msgstr "Lotes"
@@ -169,3 +233,11 @@ msgstr "Lote"
msgctxt "view:stock.lot:"
msgid "Lots"
msgstr "Lotes"
+
+msgctxt "view:stock.period.cache.lot:"
+msgid "Period Lot Cache"
+msgstr "Período lote precalculado"
+
+msgctxt "view:stock.period.cache.lot:"
+msgid "Period Lot Caches"
+msgstr "Período lote precalculados"
diff --git a/locale/es_CO.po b/locale/es_CO.po
index 22e48cd..1ceec73 100644
--- a/locale/es_CO.po
+++ b/locale/es_CO.po
@@ -4,11 +4,11 @@ msgstr "Content-Type: text/plain; charset=utf-8\n"
msgctxt "error:stock.move:"
msgid "Lot is required for move of product \"%s\"."
-msgstr ""
+msgstr "EL lote es requerido para el movimiento de producto \"%s\"."
msgctxt "field:product.template,lot_required:"
msgid "Lot Required"
-msgstr "El lote es requerido"
+msgstr "Lote Requerido"
msgctxt "field:product.template-stock.lot.type,create_date:"
msgid "Create Date"
@@ -42,6 +42,10 @@ msgctxt "field:product.template-stock.lot.type,write_uid:"
msgid "Write User"
msgstr "Modificado por Usuario"
+msgctxt "field:stock.inventory.line,lot:"
+msgid "Lot"
+msgstr "Lote"
+
msgctxt "field:stock.lot,create_date:"
msgid "Create Date"
msgstr "Fecha de Creación"
@@ -50,6 +54,10 @@ msgctxt "field:stock.lot,create_uid:"
msgid "Create User"
msgstr "Creado por Usuario"
+msgctxt "field:stock.lot,forecast_quantity:"
+msgid "Forecast Quantity"
+msgstr "Cantidad Proyectada"
+
msgctxt "field:stock.lot,id:"
msgid "ID"
msgstr "ID"
@@ -62,6 +70,10 @@ msgctxt "field:stock.lot,product:"
msgid "Product"
msgstr "Productos"
+msgctxt "field:stock.lot,quantity:"
+msgid "Quantity"
+msgstr "Cantidad"
+
msgctxt "field:stock.lot,rec_name:"
msgid "Name"
msgstr "Nombre"
@@ -110,6 +122,54 @@ msgctxt "field:stock.move,lot:"
msgid "Lot"
msgstr "Lote"
+msgctxt "field:stock.period,lot_caches:"
+msgid "Lot Caches"
+msgstr "Caches de Lote"
+
+msgctxt "field:stock.period.cache.lot,create_date:"
+msgid "Create Date"
+msgstr "Fecha de Creación"
+
+msgctxt "field:stock.period.cache.lot,create_uid:"
+msgid "Create User"
+msgstr "Creado por Usuario"
+
+msgctxt "field:stock.period.cache.lot,id:"
+msgid "ID"
+msgstr "ID"
+
+msgctxt "field:stock.period.cache.lot,internal_quantity:"
+msgid "Internal Quantity"
+msgstr "Cantidad Interna"
+
+msgctxt "field:stock.period.cache.lot,location:"
+msgid "Location"
+msgstr "Bodega"
+
+msgctxt "field:stock.period.cache.lot,lot:"
+msgid "Lot"
+msgstr "Lote"
+
+msgctxt "field:stock.period.cache.lot,period:"
+msgid "Period"
+msgstr "Período"
+
+msgctxt "field:stock.period.cache.lot,product:"
+msgid "Product"
+msgstr "Productos"
+
+msgctxt "field:stock.period.cache.lot,rec_name:"
+msgid "Name"
+msgstr "Nombre"
+
+msgctxt "field:stock.period.cache.lot,write_date:"
+msgid "Write Date"
+msgstr "Modificado por Usuario"
+
+msgctxt "field:stock.period.cache.lot,write_uid:"
+msgid "Write User"
+msgstr "Modificado por Usuario"
+
msgctxt "help:product.template,lot_required:"
msgid "The type of location for which lot is required"
msgstr "El tipo de bodega para la cual el lote es requerido"
@@ -154,11 +214,14 @@ msgctxt "model:stock.lot.type,name:type_supplier"
msgid "Supplier"
msgstr "Proveedor"
+msgctxt "model:stock.period.cache.lot,name:"
+msgid "Stock Period Cache per Lot"
+msgstr "Cache de Periodo de Inventarios por Lote"
+
msgctxt "view:product.product:"
msgid "Lots"
msgstr "Lotes"
-#, fuzzy
msgctxt "view:product.template:"
msgid "Lots"
msgstr "Lotes"
@@ -170,3 +233,11 @@ msgstr "Lote"
msgctxt "view:stock.lot:"
msgid "Lots"
msgstr "Lotes"
+
+msgctxt "view:stock.period.cache.lot:"
+msgid "Period Lot Cache"
+msgstr "Cache de Periodo Lote"
+
+msgctxt "view:stock.period.cache.lot:"
+msgid "Period Lot Caches"
+msgstr "Caches de Periodo Lote"
diff --git a/locale/es_ES.po b/locale/es_ES.po
index 9341b02..c8b12e9 100644
--- a/locale/es_ES.po
+++ b/locale/es_ES.po
@@ -42,6 +42,10 @@ msgctxt "field:product.template-stock.lot.type,write_uid:"
msgid "Write User"
msgstr "Usuario modificación"
+msgctxt "field:stock.inventory.line,lot:"
+msgid "Lot"
+msgstr "Lote"
+
msgctxt "field:stock.lot,create_date:"
msgid "Create Date"
msgstr "Fecha creación"
@@ -50,6 +54,10 @@ msgctxt "field:stock.lot,create_uid:"
msgid "Create User"
msgstr "Usuario creación"
+msgctxt "field:stock.lot,forecast_quantity:"
+msgid "Forecast Quantity"
+msgstr "Cantidad prevista"
+
msgctxt "field:stock.lot,id:"
msgid "ID"
msgstr "ID"
@@ -62,6 +70,10 @@ msgctxt "field:stock.lot,product:"
msgid "Product"
msgstr "Producto"
+msgctxt "field:stock.lot,quantity:"
+msgid "Quantity"
+msgstr "Cantidad"
+
msgctxt "field:stock.lot,rec_name:"
msgid "Name"
msgstr "Nombre"
@@ -110,6 +122,54 @@ msgctxt "field:stock.move,lot:"
msgid "Lot"
msgstr "Lote"
+msgctxt "field:stock.period,lot_caches:"
+msgid "Lot Caches"
+msgstr "Lote precalculado"
+
+msgctxt "field:stock.period.cache.lot,create_date:"
+msgid "Create Date"
+msgstr "Fecha creación"
+
+msgctxt "field:stock.period.cache.lot,create_uid:"
+msgid "Create User"
+msgstr "Usuario creación"
+
+msgctxt "field:stock.period.cache.lot,id:"
+msgid "ID"
+msgstr "ID"
+
+msgctxt "field:stock.period.cache.lot,internal_quantity:"
+msgid "Internal Quantity"
+msgstr "Cantidad interna"
+
+msgctxt "field:stock.period.cache.lot,location:"
+msgid "Location"
+msgstr "Ubicación"
+
+msgctxt "field:stock.period.cache.lot,lot:"
+msgid "Lot"
+msgstr "Lote"
+
+msgctxt "field:stock.period.cache.lot,period:"
+msgid "Period"
+msgstr "Período"
+
+msgctxt "field:stock.period.cache.lot,product:"
+msgid "Product"
+msgstr "Productos"
+
+msgctxt "field:stock.period.cache.lot,rec_name:"
+msgid "Name"
+msgstr "Nombre"
+
+msgctxt "field:stock.period.cache.lot,write_date:"
+msgid "Write Date"
+msgstr "Fecha modificación"
+
+msgctxt "field:stock.period.cache.lot,write_uid:"
+msgid "Write User"
+msgstr "Usuario modificación"
+
msgctxt "help:product.template,lot_required:"
msgid "The type of location for which lot is required"
msgstr "El tipo de ubicación por cada lote es requerido."
@@ -154,6 +214,10 @@ msgctxt "model:stock.lot.type,name:type_supplier"
msgid "Supplier"
msgstr "Proveedor"
+msgctxt "model:stock.period.cache.lot,name:"
+msgid "Stock Period Cache per Lot"
+msgstr "Período de stock precalculado por lote"
+
msgctxt "view:product.product:"
msgid "Lots"
msgstr "Lotes"
@@ -169,3 +233,11 @@ msgstr "Lote"
msgctxt "view:stock.lot:"
msgid "Lots"
msgstr "Lotes"
+
+msgctxt "view:stock.period.cache.lot:"
+msgid "Period Lot Cache"
+msgstr "Período lote precalculado"
+
+msgctxt "view:stock.period.cache.lot:"
+msgid "Period Lot Caches"
+msgstr "Período lote precalculados"
diff --git a/locale/fr_FR.po b/locale/fr_FR.po
index fe63cbb..dab89a9 100644
--- a/locale/fr_FR.po
+++ b/locale/fr_FR.po
@@ -42,6 +42,10 @@ msgctxt "field:product.template-stock.lot.type,write_uid:"
msgid "Write User"
msgstr "Mis à jour par"
+msgctxt "field:stock.inventory.line,lot:"
+msgid "Lot"
+msgstr "Lot"
+
msgctxt "field:stock.lot,create_date:"
msgid "Create Date"
msgstr "Date de création"
@@ -50,6 +54,10 @@ msgctxt "field:stock.lot,create_uid:"
msgid "Create User"
msgstr "Créé par"
+msgctxt "field:stock.lot,forecast_quantity:"
+msgid "Forecast Quantity"
+msgstr "Quantités prévisionnelles"
+
msgctxt "field:stock.lot,id:"
msgid "ID"
msgstr "ID"
@@ -62,6 +70,10 @@ msgctxt "field:stock.lot,product:"
msgid "Product"
msgstr "Produit"
+msgctxt "field:stock.lot,quantity:"
+msgid "Quantity"
+msgstr "Quantité"
+
msgctxt "field:stock.lot,rec_name:"
msgid "Name"
msgstr "Nom"
@@ -110,6 +122,54 @@ msgctxt "field:stock.move,lot:"
msgid "Lot"
msgstr "Lot"
+msgctxt "field:stock.period,lot_caches:"
+msgid "Lot Caches"
+msgstr "Caches de lot"
+
+msgctxt "field:stock.period.cache.lot,create_date:"
+msgid "Create Date"
+msgstr "Date de création"
+
+msgctxt "field:stock.period.cache.lot,create_uid:"
+msgid "Create User"
+msgstr "Créé par"
+
+msgctxt "field:stock.period.cache.lot,id:"
+msgid "ID"
+msgstr "ID"
+
+msgctxt "field:stock.period.cache.lot,internal_quantity:"
+msgid "Internal Quantity"
+msgstr "Quantité interne"
+
+msgctxt "field:stock.period.cache.lot,location:"
+msgid "Location"
+msgstr "Emplacement"
+
+msgctxt "field:stock.period.cache.lot,lot:"
+msgid "Lot"
+msgstr "Lot"
+
+msgctxt "field:stock.period.cache.lot,period:"
+msgid "Period"
+msgstr "Période"
+
+msgctxt "field:stock.period.cache.lot,product:"
+msgid "Product"
+msgstr "Produit"
+
+msgctxt "field:stock.period.cache.lot,rec_name:"
+msgid "Name"
+msgstr "Nom"
+
+msgctxt "field:stock.period.cache.lot,write_date:"
+msgid "Write Date"
+msgstr "Date de mise à jour"
+
+msgctxt "field:stock.period.cache.lot,write_uid:"
+msgid "Write User"
+msgstr "Mis à jour par"
+
msgctxt "help:product.template,lot_required:"
msgid "The type of location for which lot is required"
msgstr "Le type d'emplacement pour lequel un lot est requis"
@@ -154,6 +214,10 @@ msgctxt "model:stock.lot.type,name:type_supplier"
msgid "Supplier"
msgstr "Fournisseur"
+msgctxt "model:stock.period.cache.lot,name:"
+msgid "Stock Period Cache per Lot"
+msgstr "Caches de période de stock par lot"
+
msgctxt "view:product.product:"
msgid "Lots"
msgstr "Lots"
@@ -169,3 +233,11 @@ msgstr "Lot"
msgctxt "view:stock.lot:"
msgid "Lots"
msgstr "Lots"
+
+msgctxt "view:stock.period.cache.lot:"
+msgid "Period Lot Cache"
+msgstr "Cache de période et lot"
+
+msgctxt "view:stock.period.cache.lot:"
+msgid "Period Lot Caches"
+msgstr "Caches de période et lot"
diff --git a/locale/nl_NL.po b/locale/nl_NL.po
index c05fb75..6303008 100644
--- a/locale/nl_NL.po
+++ b/locale/nl_NL.po
@@ -45,6 +45,11 @@ msgctxt "field:product.template-stock.lot.type,write_uid:"
msgid "Write User"
msgstr ""
+#, fuzzy
+msgctxt "field:stock.inventory.line,lot:"
+msgid "Lot"
+msgstr "Lot"
+
msgctxt "field:stock.lot,create_date:"
msgid "Create Date"
msgstr ""
@@ -53,6 +58,10 @@ msgctxt "field:stock.lot,create_uid:"
msgid "Create User"
msgstr ""
+msgctxt "field:stock.lot,forecast_quantity:"
+msgid "Forecast Quantity"
+msgstr ""
+
msgctxt "field:stock.lot,id:"
msgid "ID"
msgstr ""
@@ -68,6 +77,11 @@ msgid "Product"
msgstr "Producten"
#, fuzzy
+msgctxt "field:stock.lot,quantity:"
+msgid "Quantity"
+msgstr "Hoeveelheid"
+
+#, fuzzy
msgctxt "field:stock.lot,rec_name:"
msgid "Name"
msgstr "Naam bijlage"
@@ -120,6 +134,58 @@ msgctxt "field:stock.move,lot:"
msgid "Lot"
msgstr "Lot"
+msgctxt "field:stock.period,lot_caches:"
+msgid "Lot Caches"
+msgstr ""
+
+msgctxt "field:stock.period.cache.lot,create_date:"
+msgid "Create Date"
+msgstr ""
+
+msgctxt "field:stock.period.cache.lot,create_uid:"
+msgid "Create User"
+msgstr ""
+
+msgctxt "field:stock.period.cache.lot,id:"
+msgid "ID"
+msgstr ""
+
+msgctxt "field:stock.period.cache.lot,internal_quantity:"
+msgid "Internal Quantity"
+msgstr ""
+
+msgctxt "field:stock.period.cache.lot,location:"
+msgid "Location"
+msgstr ""
+
+#, fuzzy
+msgctxt "field:stock.period.cache.lot,lot:"
+msgid "Lot"
+msgstr "Lot"
+
+#, fuzzy
+msgctxt "field:stock.period.cache.lot,period:"
+msgid "Period"
+msgstr "Periode"
+
+#, fuzzy
+msgctxt "field:stock.period.cache.lot,product:"
+msgid "Product"
+msgstr "Producten"
+
+#, fuzzy
+msgctxt "field:stock.period.cache.lot,rec_name:"
+msgid "Name"
+msgstr "Naam bijlage"
+
+msgctxt "field:stock.period.cache.lot,write_date:"
+msgid "Write Date"
+msgstr ""
+
+msgctxt "field:stock.period.cache.lot,write_uid:"
+msgid "Write User"
+msgstr ""
+
msgctxt "help:product.template,lot_required:"
msgid "The type of location for which lot is required"
msgstr ""
@@ -166,6 +232,10 @@ msgctxt "model:stock.lot.type,name:type_supplier"
msgid "Supplier"
msgstr "Leverancier"
+msgctxt "model:stock.period.cache.lot,name:"
+msgid "Stock Period Cache per Lot"
+msgstr ""
+
msgctxt "view:product.product:"
msgid "Lots"
msgstr ""
@@ -182,3 +252,11 @@ msgstr "Lot"
msgctxt "view:stock.lot:"
msgid "Lots"
msgstr ""
+
+msgctxt "view:stock.period.cache.lot:"
+msgid "Period Lot Cache"
+msgstr ""
+
+msgctxt "view:stock.period.cache.lot:"
+msgid "Period Lot Caches"
+msgstr ""
diff --git a/locale/ru_RU.po b/locale/ru_RU.po
index fc117d6..6295f6f 100644
--- a/locale/ru_RU.po
+++ b/locale/ru_RU.po
@@ -50,6 +50,10 @@ msgctxt "field:product.template-stock.lot.type,write_uid:"
msgid "Write User"
msgstr "Изменено пользователем"
+msgctxt "field:stock.inventory.line,lot:"
+msgid "Lot"
+msgstr ""
+
#, fuzzy
msgctxt "field:stock.lot,create_date:"
msgid "Create Date"
@@ -61,6 +65,11 @@ msgid "Create User"
msgstr "Создано пользователем"
#, fuzzy
+msgctxt "field:stock.lot,forecast_quantity:"
+msgid "Forecast Quantity"
+msgstr "Прогноз количества"
+
+#, fuzzy
msgctxt "field:stock.lot,id:"
msgid "ID"
msgstr "ID"
@@ -76,6 +85,11 @@ msgid "Product"
msgstr "Товарно материальные ценности (ТМЦ)"
#, fuzzy
+msgctxt "field:stock.lot,quantity:"
+msgid "Quantity"
+msgstr "Кол-во"
+
+#, fuzzy
msgctxt "field:stock.lot,rec_name:"
msgid "Name"
msgstr "Наименование"
@@ -134,6 +148,64 @@ msgctxt "field:stock.move,lot:"
msgid "Lot"
msgstr ""
+msgctxt "field:stock.period,lot_caches:"
+msgid "Lot Caches"
+msgstr ""
+
+#, fuzzy
+msgctxt "field:stock.period.cache.lot,create_date:"
+msgid "Create Date"
+msgstr "Дата создания"
+
+#, fuzzy
+msgctxt "field:stock.period.cache.lot,create_uid:"
+msgid "Create User"
+msgstr "Создано пользователем"
+
+#, fuzzy
+msgctxt "field:stock.period.cache.lot,id:"
+msgid "ID"
+msgstr "ID"
+
+#, fuzzy
+msgctxt "field:stock.period.cache.lot,internal_quantity:"
+msgid "Internal Quantity"
+msgstr "Внутреннее количество"
+
+#, fuzzy
+msgctxt "field:stock.period.cache.lot,location:"
+msgid "Location"
+msgstr "Местоположение"
+
+msgctxt "field:stock.period.cache.lot,lot:"
+msgid "Lot"
+msgstr ""
+
+#, fuzzy
+msgctxt "field:stock.period.cache.lot,period:"
+msgid "Period"
+msgstr "Период"
+
+#, fuzzy
+msgctxt "field:stock.period.cache.lot,product:"
+msgid "Product"
+msgstr "Товарно материальные ценности (ТМЦ)"
+
+#, fuzzy
+msgctxt "field:stock.period.cache.lot,rec_name:"
+msgid "Name"
+msgstr "Полное наименование"
+
+#, fuzzy
+msgctxt "field:stock.period.cache.lot,write_date:"
+msgid "Write Date"
+msgstr "Дата изменения"
+
+#, fuzzy
+msgctxt "field:stock.period.cache.lot,write_uid:"
+msgid "Write User"
+msgstr "Изменено пользователем"
+
msgctxt "help:product.template,lot_required:"
msgid "The type of location for which lot is required"
msgstr ""
@@ -183,6 +255,10 @@ msgctxt "model:stock.lot.type,name:type_supplier"
msgid "Supplier"
msgstr "Поставщик"
+msgctxt "model:stock.period.cache.lot,name:"
+msgid "Stock Period Cache per Lot"
+msgstr ""
+
msgctxt "view:product.product:"
msgid "Lots"
msgstr ""
@@ -198,3 +274,11 @@ msgstr ""
msgctxt "view:stock.lot:"
msgid "Lots"
msgstr ""
+
+msgctxt "view:stock.period.cache.lot:"
+msgid "Period Lot Cache"
+msgstr ""
+
+msgctxt "view:stock.period.cache.lot:"
+msgid "Period Lot Caches"
+msgstr ""
diff --git a/locale/es_AR.po b/locale/sl_SI.po
similarity index 53%
copy from locale/es_AR.po
copy to locale/sl_SI.po
index 36350f3..817b98d 100644
--- a/locale/es_AR.po
+++ b/locale/sl_SI.po
@@ -4,19 +4,19 @@ msgstr "Content-Type: text/plain; charset=utf-8\n"
msgctxt "error:stock.move:"
msgid "Lot is required for move of product \"%s\"."
-msgstr "El lote es requerido para el movimiento del producto «%s»."
+msgstr "Šarža je obvezna pri prometu izdelka \"%s\"."
msgctxt "field:product.template,lot_required:"
msgid "Lot Required"
-msgstr "Lote requerido"
+msgstr "Šarža zahtevana"
msgctxt "field:product.template-stock.lot.type,create_date:"
msgid "Create Date"
-msgstr "Fecha creación"
+msgstr "Ustvarjeno"
msgctxt "field:product.template-stock.lot.type,create_uid:"
msgid "Create User"
-msgstr "Usuario creación"
+msgstr "Ustvaril"
msgctxt "field:product.template-stock.lot.type,id:"
msgid "ID"
@@ -24,31 +24,39 @@ msgstr "ID"
msgctxt "field:product.template-stock.lot.type,rec_name:"
msgid "Name"
-msgstr "Nombre"
+msgstr "Ime"
msgctxt "field:product.template-stock.lot.type,template:"
msgid "Template"
-msgstr "Plantilla"
+msgstr "Predloga"
msgctxt "field:product.template-stock.lot.type,type:"
msgid "Type"
-msgstr "Tipo"
+msgstr "Vrsta"
msgctxt "field:product.template-stock.lot.type,write_date:"
msgid "Write Date"
-msgstr "Fecha modificación"
+msgstr "Zapisano"
msgctxt "field:product.template-stock.lot.type,write_uid:"
msgid "Write User"
-msgstr "Usuario modificación"
+msgstr "Zapisal"
+
+msgctxt "field:stock.inventory.line,lot:"
+msgid "Lot"
+msgstr "Šarža"
msgctxt "field:stock.lot,create_date:"
msgid "Create Date"
-msgstr "Fecha creación"
+msgstr "Ustvarjeno"
msgctxt "field:stock.lot,create_uid:"
msgid "Create User"
-msgstr "Usuario creación"
+msgstr "Ustvaril"
+
+msgctxt "field:stock.lot,forecast_quantity:"
+msgid "Forecast Quantity"
+msgstr "Predvidena količina"
msgctxt "field:stock.lot,id:"
msgid "ID"
@@ -56,35 +64,39 @@ msgstr "ID"
msgctxt "field:stock.lot,number:"
msgid "Number"
-msgstr "Número"
+msgstr "Številka"
msgctxt "field:stock.lot,product:"
msgid "Product"
-msgstr "Producto"
+msgstr "Izdelek"
+
+msgctxt "field:stock.lot,quantity:"
+msgid "Quantity"
+msgstr "Količina"
msgctxt "field:stock.lot,rec_name:"
msgid "Name"
-msgstr "Nombre"
+msgstr "Ime"
msgctxt "field:stock.lot,write_date:"
msgid "Write Date"
-msgstr "Fecha modificación"
+msgstr "Zapisano"
msgctxt "field:stock.lot,write_uid:"
msgid "Write User"
-msgstr "Usuario modificación"
+msgstr "Zapisal"
msgctxt "field:stock.lot.type,code:"
msgid "Code"
-msgstr "Código"
+msgstr "Šifra"
msgctxt "field:stock.lot.type,create_date:"
msgid "Create Date"
-msgstr "Fecha creación"
+msgstr "Ustvarjeno"
msgctxt "field:stock.lot.type,create_uid:"
msgid "Create User"
-msgstr "Usuario creación"
+msgstr "Ustvaril"
msgctxt "field:stock.lot.type,id:"
msgid "ID"
@@ -92,80 +104,136 @@ msgstr "ID"
msgctxt "field:stock.lot.type,name:"
msgid "Name"
-msgstr "Nombre"
+msgstr "Naziv"
msgctxt "field:stock.lot.type,rec_name:"
msgid "Name"
-msgstr "Nombre"
+msgstr "Ime"
msgctxt "field:stock.lot.type,write_date:"
msgid "Write Date"
-msgstr "Fecha modificación"
+msgstr "Zapisano"
msgctxt "field:stock.lot.type,write_uid:"
msgid "Write User"
-msgstr "Usuario modificación"
+msgstr "Zapisal"
msgctxt "field:stock.move,lot:"
msgid "Lot"
-msgstr "Lote"
+msgstr "Šarža"
+
+msgctxt "field:stock.period,lot_caches:"
+msgid "Lot Caches"
+msgstr "Predpomnjene šarže"
+
+msgctxt "field:stock.period.cache.lot,create_date:"
+msgid "Create Date"
+msgstr "Ustvarjeno"
+
+msgctxt "field:stock.period.cache.lot,create_uid:"
+msgid "Create User"
+msgstr "Ustvaril"
+
+msgctxt "field:stock.period.cache.lot,id:"
+msgid "ID"
+msgstr "ID"
+
+msgctxt "field:stock.period.cache.lot,internal_quantity:"
+msgid "Internal Quantity"
+msgstr "Notranja količina"
+
+msgctxt "field:stock.period.cache.lot,location:"
+msgid "Location"
+msgstr "Lokacija"
+
+msgctxt "field:stock.period.cache.lot,lot:"
+msgid "Lot"
+msgstr "Šarža"
+
+msgctxt "field:stock.period.cache.lot,period:"
+msgid "Period"
+msgstr "Obdobje"
+
+msgctxt "field:stock.period.cache.lot,product:"
+msgid "Product"
+msgstr "Izdelek"
+
+msgctxt "field:stock.period.cache.lot,rec_name:"
+msgid "Name"
+msgstr "Ime"
+
+msgctxt "field:stock.period.cache.lot,write_date:"
+msgid "Write Date"
+msgstr "Zapisano"
+
+msgctxt "field:stock.period.cache.lot,write_uid:"
+msgid "Write User"
+msgstr "Zapisal"
msgctxt "help:product.template,lot_required:"
msgid "The type of location for which lot is required"
-msgstr "El tipo de ubicación para la cual el lote es requerido"
+msgstr "Tip lokacije, za katero je šarža obvezna"
msgctxt "model:ir.action,name:act_lot_form"
msgid "Lots"
-msgstr "Lotes"
+msgstr "Šarže"
msgctxt "model:ir.ui.menu,name:menu_lot_form"
msgid "Lots"
-msgstr "Lotes"
+msgstr "Šarže"
msgctxt "model:product.template-stock.lot.type,name:"
msgid "Template - Stock Lot Type"
-msgstr "Plantilla - Tipo de lote de inventario"
+msgstr "Predloga - Tip šarže"
msgctxt "model:stock.lot,name:"
msgid "Stock Lot"
-msgstr "Lote de inventario"
+msgstr "Šarža"
msgctxt "model:stock.lot.type,name:"
msgid "Stock Lot Type"
-msgstr "Tipo de lote de inventario"
+msgstr "Tip šarže"
msgctxt "model:stock.lot.type,name:type_customer"
msgid "Customer"
-msgstr "Cliente"
+msgstr "Kupec"
msgctxt "model:stock.lot.type,name:type_lost_found"
msgid "Lost and Found"
-msgstr "Perdido y encontrado"
+msgstr "Izgubljeno/najdeno"
msgctxt "model:stock.lot.type,name:type_production"
msgid "Production"
-msgstr "Producción"
+msgstr "Proizvodnja"
msgctxt "model:stock.lot.type,name:type_storage"
msgid "Storage"
-msgstr "Depósito"
+msgstr "Shramba"
msgctxt "model:stock.lot.type,name:type_supplier"
msgid "Supplier"
-msgstr "Proveedor"
+msgstr "Dobavitelj"
-msgctxt "view:product.product:"
-msgid "Lots"
-msgstr "Lotes"
+msgctxt "model:stock.period.cache.lot,name:"
+msgid "Stock Period Cache per Lot"
+msgstr "Predpomnjena obdobja po šaržah"
msgctxt "view:product.template:"
msgid "Lots"
-msgstr "Lotes"
+msgstr "Šarže"
msgctxt "view:stock.lot:"
msgid "Lot"
-msgstr "Lote"
+msgstr "Šarža"
msgctxt "view:stock.lot:"
msgid "Lots"
-msgstr "Lotes"
+msgstr "Šarže"
+
+msgctxt "view:stock.period.cache.lot:"
+msgid "Period Lot Cache"
+msgstr "Predpomnjena šarža po obdobjih"
+
+msgctxt "view:stock.period.cache.lot:"
+msgid "Period Lot Caches"
+msgstr "Predpomnjene šarže po obdobjih"
diff --git a/setup.py b/setup.py
index 46abc2d..983b0f3 100644
--- a/setup.py
+++ b/setup.py
@@ -66,6 +66,7 @@ setup(name='trytond_stock_lot',
'Natural Language :: French',
'Natural Language :: German',
'Natural Language :: Russian',
+ 'Natural Language :: Slovenian',
'Natural Language :: Spanish',
'Operating System :: OS Independent',
'Programming Language :: Python :: 2.6',
diff --git a/stock.py b/stock.py
index 73bdc51..27915c6 100644
--- a/stock.py
+++ b/stock.py
@@ -1,20 +1,43 @@
#This file is part of Tryton. The COPYRIGHT file at the top level of
#this repository contains the full copyright notices and license terms.
+from collections import defaultdict
+
from trytond.model import ModelView, ModelSQL, Workflow, fields
from trytond.pyson import Eval
from trytond.pool import Pool, PoolMeta
+from trytond.transaction import Transaction
+from trytond.modules.stock import StockMixin
__all__ = ['Lot', 'LotType', 'Move', 'ShipmentIn', 'ShipmentOut',
- 'ShipmentOutReturn']
+ 'ShipmentOutReturn',
+ 'Period', 'PeriodCacheLot',
+ 'Inventory', 'InventoryLine']
__metaclass__ = PoolMeta
-class Lot(ModelSQL, ModelView):
+class Lot(ModelSQL, ModelView, StockMixin):
"Stock Lot"
__name__ = 'stock.lot'
_rec_name = 'number'
number = fields.Char('Number', required=True, select=True)
product = fields.Many2One('product.product', 'Product', required=True)
+ quantity = fields.Function(fields.Float('Quantity'), 'get_quantity',
+ searcher='search_quantity')
+ forecast_quantity = fields.Function(fields.Float('Forecast Quantity'),
+ 'get_quantity', searcher='search_quantity')
+
+ @classmethod
+ def get_quantity(cls, lots, name):
+ location_ids = Transaction().context.get('locations')
+ products = list(set(l.product for l in lots))
+ return cls._get_quantity(lots, name, location_ids, products,
+ grouping=('product', 'lot'))
+
+ @classmethod
+ def search_quantity(cls, name, domain=None):
+ location_ids = Transaction().context.get('locations')
+ return cls._search_quantity(name, location_ids, domain,
+ grouping=('product', 'lot'))
class LotType(ModelSQL, ModelView):
@@ -42,27 +65,20 @@ class Move:
'lot_required': 'Lot is required for move of product "%s".',
})
- @classmethod
- def check_lot(cls, moves):
+ def check_lot(self):
"Check if lot is required"
- for move in moves:
- if (move.state == 'done'
- and move.internal_quantity
- and not move.lot
- and move.product.lot_is_required(
- move.from_location, move.to_location)):
- cls.raise_user_error('lot_required', (move.product.rec_name,))
-
- @classmethod
- def create(cls, vlist):
- moves = super(Move, cls).create(vlist)
- cls.check_lot(moves)
- return moves
+ if (self.state == 'done'
+ and self.internal_quantity
+ and not self.lot
+ and self.product.lot_is_required(
+ self.from_location, self.to_location)):
+ self.raise_user_error('lot_required', self.product.rec_name)
@classmethod
- def write(cls, moves, values):
- super(Move, cls).write(moves, values)
- cls.check_lot(moves)
+ def validate(cls, moves):
+ super(Move, cls).validate(moves)
+ for move in moves:
+ move.check_lot()
class ShipmentIn:
@@ -134,3 +150,133 @@ class ShipmentOutReturn:
if move and incoming_move.lot:
move.lot = incoming_move.lot
return move
+
+
+class Period:
+ __name__ = 'stock.period'
+ lot_caches = fields.One2Many('stock.period.cache.lot', 'period',
+ 'Lot Caches', readonly=True)
+
+ @classmethod
+ def groupings(cls):
+ return super(Period, cls).groupings() + [('product', 'lot')]
+
+ @classmethod
+ def get_cache(cls, grouping):
+ pool = Pool()
+ Cache = super(Period, cls).get_cache(grouping)
+ if grouping == ('product', 'lot'):
+ return pool.get('stock.period.cache.lot')
+ return Cache
+
+
+class PeriodCacheLot(ModelSQL, ModelView):
+ '''
+ Stock Period Cache per Lot
+
+ It is used to store cached computation of stock quantities per lot.
+ '''
+ __name__ = 'stock.period.cache.lot'
+ period = fields.Many2One('stock.period', 'Period', required=True,
+ readonly=True, select=True, ondelete='CASCADE')
+ location = fields.Many2One('stock.location', 'Location', required=True,
+ readonly=True, select=True, ondelete='CASCADE')
+ product = fields.Many2One('product.product', 'Product', required=True,
+ readonly=True, ondelete='CASCADE')
+ lot = fields.Many2One('stock.lot', 'Lot', readonly=True,
+ ondelete='CASCADE')
+ internal_quantity = fields.Float('Internal Quantity', readonly=True)
+
+
+class Inventory:
+ __name__ = 'stock.inventory'
+
+ @classmethod
+ def complete_lines(cls, inventories):
+ pool = Pool()
+ Product = pool.get('product.product')
+ Line = pool.get('stock.inventory.line')
+
+ super(Inventory, cls).complete_lines(inventories)
+
+ # Create and/or update lines with product that will require lot for
+ # their moves.
+ to_create = []
+ for inventory in inventories:
+ product2lines = defaultdict(list)
+ for line in inventory.lines:
+ if (line.product.lot_is_required(inventory.location,
+ inventory.lost_found)
+ or line.product.lot_is_required(inventory.lost_found,
+ inventory.location)):
+ product2lines[line.product.id].append(line)
+ if product2lines:
+ with Transaction().set_context(stock_date_end=inventory.date):
+ pbl = Product.products_by_location([inventory.location.id],
+ product_ids=product2lines.keys(),
+ grouping=('product', 'lot'))
+ product_qty = defaultdict(dict)
+ for (location_id, product_id, lot_id), quantity \
+ in pbl.iteritems():
+ product_qty[product_id][lot_id] = quantity
+
+ products = Product.browse(product_qty.keys())
+ product2uom = dict((p.id, p.default_uom.id) for p in products)
+
+ for product_id, lines in product2lines.iteritems():
+ quantities = product_qty[product_id]
+ uom_id = product2uom[product_id]
+ for line in lines:
+ lot_id = line.lot.id if line.lot else None
+ if lot_id in quantities:
+ quantity = quantities.pop(lot_id)
+ elif lot_id is None and quantities:
+ lot_id = quantities.keys()[0]
+ quantity = quantities.pop(lot_id)
+ else:
+ lot_id = None
+ quantity = 0.0
+
+ values = line.update_values4complete(quantity, uom_id)
+ if (values or lot_id != (line.lot.id
+ if line.lot else None)):
+ values['lot'] = lot_id
+ Line.write([line], values)
+ if quantities:
+ for lot_id, quantity in quantities.iteritems():
+ values = Line.create_values4complete(product_id,
+ inventory, quantity, uom_id)
+ values['lot'] = lot_id
+ to_create.append(values)
+ if to_create:
+ Line.create(to_create)
+
+
+class InventoryLine:
+ __name__ = 'stock.inventory.line'
+ lot = fields.Many2One('stock.lot', 'Lot',
+ domain=[
+ ('product', '=', Eval('product')),
+ ],
+ depends=['product'])
+
+ @classmethod
+ def __setup__(cls):
+ super(InventoryLine, cls).__setup__()
+ cls._order.insert(1, ('lot', 'ASC'))
+
+ def get_rec_name(self, name):
+ rec_name = super(InventoryLine, self).get_rec_name(name)
+ if self.lot:
+ rec_name += ' - %s' % self.lot.rec_name
+ return rec_name
+
+ @property
+ def unique_key(self):
+ return super(InventoryLine, self).unique_key + (self.lot,)
+
+ def _get_move(self):
+ move = super(InventoryLine, self)._get_move()
+ if move:
+ move.lot = self.lot
+ return move
diff --git a/stock.xml b/stock.xml
index e7b2d80..d12ca2b 100644
--- a/stock.xml
+++ b/stock.xml
@@ -90,5 +90,52 @@ this repository contains the full copyright notices and license terms. -->
<field name="name">move_tree</field>
</record>
+ <record model="ir.ui.view" id="period_cache_lot_view_form">
+ <field name="model">stock.period.cache.lot</field>
+ <field name="type">form</field>
+ <field name="name">period_cache_lot_form</field>
+ </record>
+ <record model="ir.ui.view" id="period_cache_lot_view_list">
+ <field name="model">stock.period.cache.lot</field>
+ <field name="type">tree</field>
+ <field name="name">period_cache_lot_list</field>
+ </record>
+
+ <record model="ir.model.access" id="access_period_cache_lot">
+ <field name="model" search="[('model', '=', 'stock.period.cache.lot')]"/>
+ <field name="perm_read" eval="False"/>
+ <field name="perm_write" eval="False"/>
+ <field name="perm_create" eval="False"/>
+ <field name="perm_delete" eval="False"/>
+ </record>
+ <record model="ir.model.access" id="access_period_cache_lot_stock">
+ <field name="model" search="[('model', '=', 'stock.period.cache.lot')]"/>
+ <field name="group" ref="stock.group_stock"/>
+ <field name="perm_read" eval="True"/>
+ <field name="perm_write" eval="False"/>
+ <field name="perm_create" eval="False"/>
+ <field name="perm_delete" eval="False"/>
+ </record>
+ <record model="ir.model.access" id="access_period_cache_lot_admin">
+ <field name="model" search="[('model', '=', 'stock.period.cache.lot')]"/>
+ <field name="group" ref="stock.group_stock_admin"/>
+ <field name="perm_read" eval="True"/>
+ <field name="perm_write" eval="True"/>
+ <field name="perm_create" eval="True"/>
+ <field name="perm_delete" eval="True"/>
+ </record>
+
+ <record model="ir.ui.view" id="inventory_line_view_form">
+ <field name="model">stock.inventory.line</field>
+ <field name="inherit" ref="stock.inventory_line_view_form"/>
+ <field name="name">inventory_line_form</field>
+ </record>
+
+ <record model="ir.ui.view" id="inventory_line_view_tree">
+ <field name="model">stock.inventory.line</field>
+ <field name="inherit" ref="stock.inventory_line_view_tree"/>
+ <field name="name">inventory_line_tree</field>
+ </record>
+
</data>
</tryton>
diff --git a/tests/__init__.py b/tests/__init__.py
index 96d4ef9..cf849d9 100644
--- a/tests/__init__.py
+++ b/tests/__init__.py
@@ -2,3 +2,5 @@
#this repository contains the full copyright notices and license terms.
from .test_stock_lot import suite
+
+__all__ = ['suite']
diff --git a/tests/test_stock_lot.py b/tests/test_stock_lot.py
index a137b11..0a0abce 100644
--- a/tests/test_stock_lot.py
+++ b/tests/test_stock_lot.py
@@ -11,10 +11,15 @@ if os.path.isdir(DIR):
import unittest
import doctest
+import datetime
+from dateutil.relativedelta import relativedelta
+from decimal import Decimal
import trytond.tests.test_tryton
-from trytond.tests.test_tryton import test_view, test_depends
+from trytond.tests.test_tryton import POOL, DB_NAME, USER, CONTEXT, test_view,\
+ test_depends
from trytond.backend.sqlite.database import Database as SQLiteDatabase
+from trytond.transaction import Transaction
class StockLotTestCase(unittest.TestCase):
@@ -24,6 +29,16 @@ class StockLotTestCase(unittest.TestCase):
def setUp(self):
trytond.tests.test_tryton.install_module('stock_lot')
+ self.template = POOL.get('product.template')
+ self.product = POOL.get('product.product')
+ self.uom = POOL.get('product.uom')
+ self.lot = POOL.get('stock.lot')
+ self.location = POOL.get('stock.location')
+ self.move = POOL.get('stock.move')
+ self.company = POOL.get('company.company')
+ self.user = POOL.get('res.user')
+ self.period = POOL.get('stock.period')
+ self.cache = POOL.get('stock.period.cache')
def test0005views(self):
'''
@@ -37,6 +52,203 @@ class StockLotTestCase(unittest.TestCase):
'''
test_depends()
+ def test0010products_by_location(self):
+ '''
+ Test products_by_location.
+ '''
+ with Transaction().start(DB_NAME, USER, context=CONTEXT):
+ kg, = self.uom.search([('name', '=', 'Kilogram')])
+ g, = self.uom.search([('name', '=', 'Gram')])
+ template, = self.template.create([{
+ 'name': 'Test products_by_location',
+ 'type': 'goods',
+ 'list_price': Decimal(0),
+ 'cost_price': Decimal(0),
+ 'cost_price_method': 'fixed',
+ 'default_uom': kg.id,
+ }])
+ product, = self.product.create([{
+ 'template': template.id,
+ }])
+ supplier, = self.location.search([('code', '=', 'SUP')])
+ customer, = self.location.search([('code', '=', 'CUS')])
+ storage, = self.location.search([('code', '=', 'STO')])
+ company, = self.company.search([('rec_name', '=', 'B2CK')])
+ currency = company.currency
+ self.user.write([self.user(USER)], {
+ 'main_company': company.id,
+ 'company': company.id,
+ })
+
+ lot1, lot2 = self.lot.create([{
+ 'number': '1',
+ 'product': product.id,
+ }, {
+ 'number': '2',
+ 'product': product.id,
+ }])
+
+ moves = self.move.create([{
+ 'product': product.id,
+ 'lot': lot1.id,
+ 'uom': kg.id,
+ 'quantity': 5,
+ 'from_location': supplier.id,
+ 'to_location': storage.id,
+ 'company': company.id,
+ 'unit_price': Decimal('1'),
+ 'currency': currency.id,
+ }, {
+ 'product': product.id,
+ 'lot': lot2.id,
+ 'uom': kg.id,
+ 'quantity': 10,
+ 'from_location': supplier.id,
+ 'to_location': storage.id,
+ 'company': company.id,
+ 'unit_price': Decimal('1'),
+ 'currency': currency.id,
+ }, {
+ 'product': product.id,
+ 'lot': lot2.id,
+ 'uom': kg.id,
+ 'quantity': 2,
+ 'from_location': storage.id,
+ 'to_location': customer.id,
+ 'company': company.id,
+ 'unit_price': Decimal('1'),
+ 'currency': currency.id,
+ }, {
+ 'product': product.id,
+ 'lot': None,
+ 'uom': kg.id,
+ 'quantity': 3,
+ 'from_location': supplier.id,
+ 'to_location': storage.id,
+ 'company': company.id,
+ 'unit_price': Decimal('1'),
+ 'currency': currency.id,
+ }])
+ self.move.do(moves)
+
+ self.assertEqual(self.product.products_by_location([storage.id],
+ [product.id]), {
+ (storage.id, product.id): 16,
+ })
+ self.assertEqual(self.product.products_by_location([storage.id],
+ [product.id], grouping=('product', 'lot')), {
+ (storage.id, product.id, lot1.id): 5,
+ (storage.id, product.id, lot2.id): 8,
+ (storage.id, product.id, None): 3,
+ })
+ with Transaction().set_context(locations=[storage.id]):
+ self.assertEqual(lot1.quantity, 5)
+ self.assertEqual(lot2.quantity, 8)
+
+ def test0020period(self):
+ '''
+ Test period.
+ '''
+ with Transaction().start(DB_NAME, USER, context=CONTEXT):
+ unit, = self.uom.search([('name', '=', 'Unit')])
+ template, = self.template.create([{
+ 'name': 'Test period',
+ 'type': 'goods',
+ 'cost_price_method': 'fixed',
+ 'default_uom': unit.id,
+ 'list_price': Decimal(0),
+ 'cost_price': Decimal(0),
+ }])
+ product, = self.product.create([{
+ 'template': template.id,
+ }])
+ supplier, = self.location.search([('code', '=', 'SUP')])
+ storage, = self.location.search([('code', '=', 'STO')])
+ company, = self.company.search([('rec_name', '=', 'B2CK')])
+ currency = company.currency
+ self.user.write([self.user(USER)], {
+ 'main_company': company.id,
+ 'company': company.id,
+ })
+
+ lot1, lot2 = self.lot.create([{
+ 'number': '1',
+ 'product': product.id,
+ }, {
+ 'number': '2',
+ 'product': product.id,
+ }])
+
+ today = datetime.date.today()
+
+ moves = self.move.create([{
+ 'product': product.id,
+ 'lot': lot1.id,
+ 'uom': unit.id,
+ 'quantity': 5,
+ 'from_location': supplier.id,
+ 'to_location': storage.id,
+ 'planned_date': today - relativedelta(days=1),
+ 'effective_date': today - relativedelta(days=1),
+ 'company': company.id,
+ 'unit_price': Decimal('1'),
+ 'currency': currency.id,
+ }, {
+ 'product': product.id,
+ 'lot': lot2.id,
+ 'uom': unit.id,
+ 'quantity': 10,
+ 'from_location': supplier.id,
+ 'to_location': storage.id,
+ 'planned_date': today - relativedelta(days=1),
+ 'effective_date': today - relativedelta(days=1),
+ 'company': company.id,
+ 'unit_price': Decimal('1'),
+ 'currency': currency.id,
+ }, {
+ 'product': product.id,
+ 'lot': None,
+ 'uom': unit.id,
+ 'quantity': 3,
+ 'from_location': supplier.id,
+ 'to_location': storage.id,
+ 'planned_date': today - relativedelta(days=1),
+ 'effective_date': today - relativedelta(days=1),
+ 'company': company.id,
+ 'unit_price': Decimal('1'),
+ 'currency': currency.id,
+ }])
+ self.move.do(moves)
+
+ period, = self.period.create([{
+ 'date': today - relativedelta(days=1),
+ 'company': company.id,
+ }])
+ self.period.close([period])
+ self.assertEqual(period.state, 'closed')
+
+ quantities = {
+ supplier: -18,
+ storage: 18,
+ }
+ for cache in period.caches:
+ self.assertEqual(cache.product, product)
+ self.assertEqual(cache.internal_quantity,
+ quantities[cache.location])
+
+ quantities = {
+ (supplier, lot1): -5,
+ (storage, lot1): 5,
+ (supplier, lot2): -10,
+ (storage, lot2): 10,
+ (supplier, None): -3,
+ (storage, None): 3,
+ }
+ for lot_cache in period.lot_caches:
+ self.assertEqual(lot_cache.product, product)
+ self.assertEqual(lot_cache.internal_quantity,
+ quantities[(lot_cache.location, lot_cache.lot)])
+
def doctest_dropdb(test):
'''
@@ -53,6 +265,10 @@ def doctest_dropdb(test):
def suite():
suite = trytond.tests.test_tryton.suite()
+ from trytond.modules.company.tests import test_company
+ for test in test_company.suite():
+ if test not in suite:
+ suite.addTest(test)
suite.addTests(unittest.TestLoader().loadTestsFromTestCase(
StockLotTestCase))
suite.addTests(doctest.DocFileSuite('scenario_stock_lot_shipment_out.rst',
diff --git a/tryton.cfg b/tryton.cfg
index 1d48d02..d6d3790 100644
--- a/tryton.cfg
+++ b/tryton.cfg
@@ -1,5 +1,5 @@
[tryton]
-version=2.8.0
+version=3.0.0
depends:
ir
product
diff --git a/trytond_stock_lot.egg-info/PKG-INFO b/trytond_stock_lot.egg-info/PKG-INFO
index 1d54c97..ebdd1f9 100644
--- a/trytond_stock_lot.egg-info/PKG-INFO
+++ b/trytond_stock_lot.egg-info/PKG-INFO
@@ -1,12 +1,12 @@
Metadata-Version: 1.1
Name: trytond-stock-lot
-Version: 2.8.0
+Version: 3.0.0
Summary: Tryton module for lot of products
Home-page: http://www.tryton.org/
Author: Tryton
Author-email: UNKNOWN
License: GPL-3
-Download-URL: http://downloads.tryton.org/2.8/
+Download-URL: http://downloads.tryton.org/3.0/
Description: trytond_stock_lot
=================
@@ -60,6 +60,7 @@ Classifier: Natural Language :: English
Classifier: Natural Language :: French
Classifier: Natural Language :: German
Classifier: Natural Language :: Russian
+Classifier: Natural Language :: Slovenian
Classifier: Natural Language :: Spanish
Classifier: Operating System :: OS Independent
Classifier: Programming Language :: Python :: 2.6
diff --git a/trytond_stock_lot.egg-info/SOURCES.txt b/trytond_stock_lot.egg-info/SOURCES.txt
index 5b81fd1..68da135 100644
--- a/trytond_stock_lot.egg-info/SOURCES.txt
+++ b/trytond_stock_lot.egg-info/SOURCES.txt
@@ -24,6 +24,7 @@ locale/es_ES.po
locale/fr_FR.po
locale/nl_NL.po
locale/ru_RU.po
+locale/sl_SI.po
tests/scenario_stock_lot_shipment_out.rst
trytond_stock_lot.egg-info/PKG-INFO
trytond_stock_lot.egg-info/SOURCES.txt
@@ -32,8 +33,12 @@ trytond_stock_lot.egg-info/entry_points.txt
trytond_stock_lot.egg-info/not-zip-safe
trytond_stock_lot.egg-info/requires.txt
trytond_stock_lot.egg-info/top_level.txt
+view/inventory_line_form.xml
+view/inventory_line_tree.xml
view/lot_form.xml
view/lot_tree.xml
view/move_form.xml
view/move_tree.xml
+view/period_cache_lot_form.xml
+view/period_cache_lot_list.xml
view/template_form.xml
\ No newline at end of file
diff --git a/trytond_stock_lot.egg-info/requires.txt b/trytond_stock_lot.egg-info/requires.txt
index eb4aa19..943e3c2 100644
--- a/trytond_stock_lot.egg-info/requires.txt
+++ b/trytond_stock_lot.egg-info/requires.txt
@@ -1,3 +1,3 @@
-trytond_product >= 2.8, < 2.9
-trytond_stock >= 2.8, < 2.9
-trytond >= 2.8, < 2.9
\ No newline at end of file
+trytond_product >= 3.0, < 3.1
+trytond_stock >= 3.0, < 3.1
+trytond >= 3.0, < 3.1
\ No newline at end of file
diff --git a/view/inventory_line_form.xml b/view/inventory_line_form.xml
new file mode 100644
index 0000000..6882aa4
--- /dev/null
+++ b/view/inventory_line_form.xml
@@ -0,0 +1,9 @@
+<?xml version="1.0"?>
+<!-- This file is part of Tryton. The COPYRIGHT file at the top level of
+this repository contains the full copyright notices and license terms. -->
+<data>
+ <xpath expr="/form/field[@name='product']" position="after">
+ <label name="lot"/>
+ <field name="lot"/>
+ </xpath>
+</data>
diff --git a/view/inventory_line_tree.xml b/view/inventory_line_tree.xml
new file mode 100644
index 0000000..0d6460f
--- /dev/null
+++ b/view/inventory_line_tree.xml
@@ -0,0 +1,8 @@
+<?xml version="1.0"?>
+<!-- This file is part of Tryton. The COPYRIGHT file at the top level of
+this repository contains the full copyright notices and license terms. -->
+<data>
+ <xpath expr="/tree/field[@name='product']" position="after">
+ <field name="lot"/>
+ </xpath>
+</data>
diff --git a/view/period_cache_lot_form.xml b/view/period_cache_lot_form.xml
new file mode 100644
index 0000000..02e525a
--- /dev/null
+++ b/view/period_cache_lot_form.xml
@@ -0,0 +1,15 @@
+<?xml version="1.0"?>
+<!-- This file is part of Tryton. The COPYRIGHT file at the top level of
+this repository contains the full copyright notices and license terms. -->
+<form string="Period Lot Cache" col="8">
+ <label name="period"/>
+ <field name="period" colspan="6"/>
+ <label name="location"/>
+ <field name="location"/>
+ <label name="product"/>
+ <field name="product"/>
+ <label name="lot"/>
+ <field name="lot"/>
+ <label name="internal_quantity"/>
+ <field name="internal_quantity"/>
+</form>
diff --git a/view/period_cache_lot_list.xml b/view/period_cache_lot_list.xml
new file mode 100644
index 0000000..060418d
--- /dev/null
+++ b/view/period_cache_lot_list.xml
@@ -0,0 +1,10 @@
+<?xml version="1.0"?>
+<!-- This file is part of Tryton. The COPYRIGHT file at the top level of
+this repository contains the full copyright notices and license terms. -->
+<tree string="Period Lot Caches">
+ <field name="period"/>
+ <field name="location"/>
+ <field name="product"/>
+ <field name="lot"/>
+ <field name="internal_quantity"/>
+</tree>
--
tryton-modules-stock-lot
More information about the tryton-debian-vcs
mailing list