[tryton-debian-vcs] tryton-modules-stock-lot branch upstream updated. upstream/4.0.2-1-gb0ee53b

Mathias Behrle tryton-debian-vcs at alioth.debian.org
Tue Dec 6 16:09:12 UTC 2016


The following commit has been merged in the upstream branch:
https://alioth.debian.org/plugins/scmgit/cgi-bin/gitweb.cgi/?p=tryton/tryton-modules-stock-lot.git;a=commitdiff;h=upstream/4.0.2-1-gb0ee53b

commit b0ee53b34f8a9fe81fbca3d27aff20c5c7a2af79
Author: Mathias Behrle <mathiasb at m9s.biz>
Date:   Mon Dec 5 09:34:47 2016 +0100

    Adding upstream version 4.2.0.
    
    Signed-off-by: Mathias Behrle <mathiasb at m9s.biz>

diff --git a/CHANGELOG b/CHANGELOG
index ff2fc6d..fda2eb3 100644
--- a/CHANGELOG
+++ b/CHANGELOG
@@ -1,8 +1,6 @@
-Version 4.0.2 - 2016-09-03
-* Bug fixes (see mercurial logs for details)
-
-Version 4.0.1 - 2016-05-11
+Version 4.2.0 - 2016-11-28
 * Bug fixes (see mercurial logs for details)
+* Add entry to show lot quantities
 
 Version 4.0.0 - 2016-05-02
 * Bug fixes (see mercurial logs for details)
diff --git a/INSTALL b/INSTALL
index 0f4e4a8..12c5c5d 100644
--- a/INSTALL
+++ b/INSTALL
@@ -24,7 +24,7 @@ directory on your system.
 For advanced options, please refer to the easy_install and/or the distutils
 documentation:
 
-  http://peak.telecommunity.com/DevCenter/EasyInstall
+  http://setuptools.readthedocs.io/en/latest/easy_install.html
   http://docs.python.org/inst/inst.html
 
 To use without installation, extract the archive into ``trytond/modules`` with
diff --git a/PKG-INFO b/PKG-INFO
index 0857904..4734fba 100644
--- a/PKG-INFO
+++ b/PKG-INFO
@@ -1,12 +1,12 @@
 Metadata-Version: 1.1
 Name: trytond_stock_lot
-Version: 4.0.2
+Version: 4.2.0
 Summary: Tryton module for lot of products
 Home-page: http://www.tryton.org/
 Author: Tryton
 Author-email: issue_tracker at tryton.org
 License: GPL-3
-Download-URL: http://downloads.tryton.org/4.0/
+Download-URL: http://downloads.tryton.org/4.2/
 Description: trytond_stock_lot
         =================
         
@@ -63,6 +63,7 @@ Classifier: Natural Language :: French
 Classifier: Natural Language :: German
 Classifier: Natural Language :: Hungarian
 Classifier: Natural Language :: Italian
+Classifier: Natural Language :: Polish
 Classifier: Natural Language :: Portuguese (Brazilian)
 Classifier: Natural Language :: Russian
 Classifier: Natural Language :: Slovenian
diff --git a/__init__.py b/__init__.py
index 60647e8..1d4845b 100644
--- a/__init__.py
+++ b/__init__.py
@@ -9,6 +9,7 @@ from .product import *
 def register():
     Pool.register(
         Lot,
+        LotByLocationContext,
         LotType,
         Move,
         ShipmentIn,
diff --git a/locale/bg_BG.po b/locale/bg.po
similarity index 89%
rename from locale/bg_BG.po
rename to locale/bg.po
index d5ce1e7..e5b64a3 100644
--- a/locale/bg_BG.po
+++ b/locale/bg.po
@@ -126,6 +126,19 @@ msgctxt "field:stock.lot.type,write_uid:"
 msgid "Write User"
 msgstr "Записано от"
 
+msgctxt "field:stock.lots_by_location.context,forecast_date:"
+msgid "At Date"
+msgstr ""
+
+#, fuzzy
+msgctxt "field:stock.lots_by_location.context,id:"
+msgid "ID"
+msgstr "ID"
+
+msgctxt "field:stock.lots_by_location.context,stock_date_end:"
+msgid "At Date"
+msgstr ""
+
 msgctxt "field:stock.move,lot:"
 msgid "Lot"
 msgstr "Партида"
@@ -198,11 +211,23 @@ msgctxt "help:product.template,lot_required:"
 msgid "The type of location for which lot is required"
 msgstr "Вида местонахождение за което е необходима партидата"
 
+msgctxt "help:stock.lots_by_location.context,forecast_date:"
+msgid ""
+"Allow to compute expected stock quantities for this date.\n"
+"* An empty value is an infinite date in the future.\n"
+"* A date in the past will provide historical values."
+msgstr ""
+
 msgctxt "model:ir.action,name:act_lot_form"
 msgid "Lots"
 msgstr "Партиди"
 
 #, fuzzy
+msgctxt "model:ir.action,name:act_lots_by_locations"
+msgid "Lot"
+msgstr "Партида"
+
+#, fuzzy
 msgctxt "model:ir.action,name:act_move_form_relate_lot"
 msgid "Moves"
 msgstr "Движения"
@@ -243,6 +268,10 @@ msgctxt "model:stock.lot.type,name:type_supplier"
 msgid "Supplier"
 msgstr "Доставчик"
 
+msgctxt "model:stock.lots_by_location.context,name:"
+msgid "Lot by Location"
+msgstr ""
+
 msgctxt "model:stock.period.cache.lot,name:"
 msgid "Stock Period Cache per Lot"
 msgstr ""
@@ -259,11 +288,3 @@ 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.po
similarity index 78%
rename from locale/ca_ES.po
rename to locale/ca.po
index d558df6..9eb66cf 100644
--- a/locale/ca_ES.po
+++ b/locale/ca.po
@@ -16,11 +16,11 @@ msgstr "Lot obligatori"
 
 msgctxt "field:product.template-stock.lot.type,create_date:"
 msgid "Create Date"
-msgstr "Data creació"
+msgstr "Data de creació"
 
 msgctxt "field:product.template-stock.lot.type,create_uid:"
 msgid "Create User"
-msgstr "Usuari creació"
+msgstr "Usuari de creació"
 
 msgctxt "field:product.template-stock.lot.type,id:"
 msgid "ID"
@@ -40,11 +40,11 @@ msgstr "Tipus"
 
 msgctxt "field:product.template-stock.lot.type,write_date:"
 msgid "Write Date"
-msgstr "Data modificació"
+msgstr "Data de modificació"
 
 msgctxt "field:product.template-stock.lot.type,write_uid:"
 msgid "Write User"
-msgstr "Usuari modificació"
+msgstr "Usuari de modificació"
 
 msgctxt "field:stock.inventory.line,lot:"
 msgid "Lot"
@@ -52,11 +52,11 @@ msgstr "Lot"
 
 msgctxt "field:stock.lot,create_date:"
 msgid "Create Date"
-msgstr "Data creació"
+msgstr "Data de creació"
 
 msgctxt "field:stock.lot,create_uid:"
 msgid "Create User"
-msgstr "Usuari creació"
+msgstr "Usuari de creació"
 
 msgctxt "field:stock.lot,forecast_quantity:"
 msgid "Forecast Quantity"
@@ -84,11 +84,11 @@ msgstr "Nom"
 
 msgctxt "field:stock.lot,write_date:"
 msgid "Write Date"
-msgstr "Data modificació"
+msgstr "Data de modificació"
 
 msgctxt "field:stock.lot,write_uid:"
 msgid "Write User"
-msgstr "Usuari modificació"
+msgstr "Usuari de modificació"
 
 msgctxt "field:stock.lot.type,code:"
 msgid "Code"
@@ -96,11 +96,11 @@ msgstr "Codi"
 
 msgctxt "field:stock.lot.type,create_date:"
 msgid "Create Date"
-msgstr "Data creació"
+msgstr "Data de creació"
 
 msgctxt "field:stock.lot.type,create_uid:"
 msgid "Create User"
-msgstr "Usuari creació"
+msgstr "Usuari de creació"
 
 msgctxt "field:stock.lot.type,id:"
 msgid "ID"
@@ -116,11 +116,23 @@ msgstr "Nom"
 
 msgctxt "field:stock.lot.type,write_date:"
 msgid "Write Date"
-msgstr "Data modificació"
+msgstr "Data de modificació"
 
 msgctxt "field:stock.lot.type,write_uid:"
 msgid "Write User"
-msgstr "Usuari modificació"
+msgstr "Usuari de modificació"
+
+msgctxt "field:stock.lots_by_location.context,forecast_date:"
+msgid "At Date"
+msgstr "A data"
+
+msgctxt "field:stock.lots_by_location.context,id:"
+msgid "ID"
+msgstr "ID"
+
+msgctxt "field:stock.lots_by_location.context,stock_date_end:"
+msgid "At Date"
+msgstr "A data"
 
 msgctxt "field:stock.move,lot:"
 msgid "Lot"
@@ -132,11 +144,11 @@ msgstr "Precàlculs de lot"
 
 msgctxt "field:stock.period.cache.lot,create_date:"
 msgid "Create Date"
-msgstr "Data creació"
+msgstr "Data de creació"
 
 msgctxt "field:stock.period.cache.lot,create_uid:"
 msgid "Create User"
-msgstr "Usuari creació"
+msgstr "Usuari de creació"
 
 msgctxt "field:stock.period.cache.lot,id:"
 msgid "ID"
@@ -168,11 +180,11 @@ msgstr "Nom"
 
 msgctxt "field:stock.period.cache.lot,write_date:"
 msgid "Write Date"
-msgstr "Data modificació"
+msgstr "Data de modificació"
 
 msgctxt "field:stock.period.cache.lot,write_uid:"
 msgid "Write User"
-msgstr "Usuari modificació"
+msgstr "Usuari de modificació"
 
 msgctxt "help:product.product,lot_required:"
 msgid "The type of location for which lot is required"
@@ -182,10 +194,24 @@ 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."
 
+msgctxt "help:stock.lots_by_location.context,forecast_date:"
+msgid ""
+"Allow to compute expected stock quantities for this date.\n"
+"* An empty value is an infinite date in the future.\n"
+"* A date in the past will provide historical values."
+msgstr ""
+"Permet calcular les quantitats previstes d'estoc per a aquesta data.\n"
+"* Un valor buit és un data infinita en el futur.\n"
+"* Una data en el passat proporcionarà valors històrics. "
+
 msgctxt "model:ir.action,name:act_lot_form"
 msgid "Lots"
 msgstr "Lots"
 
+msgctxt "model:ir.action,name:act_lots_by_locations"
+msgid "Lot"
+msgstr "Lot"
+
 msgctxt "model:ir.action,name:act_move_form_relate_lot"
 msgid "Moves"
 msgstr "Moviments"
@@ -226,6 +252,10 @@ msgctxt "model:stock.lot.type,name:type_supplier"
 msgid "Supplier"
 msgstr "Proveïdor"
 
+msgctxt "model:stock.lots_by_location.context,name:"
+msgid "Lot by Location"
+msgstr "Lot per ubicació"
+
 msgctxt "model:stock.period.cache.lot,name:"
 msgid "Stock Period Cache per Lot"
 msgstr "Període d'estoc precalculat per lot"
diff --git a/locale/cs_CZ.po b/locale/cs.po
similarity index 86%
copy from locale/cs_CZ.po
copy to locale/cs.po
index 928dbac..8426fd0 100644
--- a/locale/cs_CZ.po
+++ b/locale/cs.po
@@ -26,9 +26,10 @@ msgctxt "field:product.template-stock.lot.type,id:"
 msgid "ID"
 msgstr ""
 
+#, fuzzy
 msgctxt "field:product.template-stock.lot.type,rec_name:"
 msgid "Name"
-msgstr ""
+msgstr "Namu"
 
 msgctxt "field:product.template-stock.lot.type,template:"
 msgid "Template"
@@ -79,9 +80,10 @@ msgctxt "field:stock.lot,quantity:"
 msgid "Quantity"
 msgstr ""
 
+#, fuzzy
 msgctxt "field:stock.lot,rec_name:"
 msgid "Name"
-msgstr ""
+msgstr "Namu"
 
 msgctxt "field:stock.lot,write_date:"
 msgid "Write Date"
@@ -107,13 +109,15 @@ msgctxt "field:stock.lot.type,id:"
 msgid "ID"
 msgstr ""
 
+#, fuzzy
 msgctxt "field:stock.lot.type,name:"
 msgid "Name"
-msgstr ""
+msgstr "Namu"
 
+#, fuzzy
 msgctxt "field:stock.lot.type,rec_name:"
 msgid "Name"
-msgstr ""
+msgstr "Namu"
 
 msgctxt "field:stock.lot.type,write_date:"
 msgid "Write Date"
@@ -123,6 +127,18 @@ msgctxt "field:stock.lot.type,write_uid:"
 msgid "Write User"
 msgstr ""
 
+msgctxt "field:stock.lots_by_location.context,forecast_date:"
+msgid "At Date"
+msgstr ""
+
+msgctxt "field:stock.lots_by_location.context,id:"
+msgid "ID"
+msgstr ""
+
+msgctxt "field:stock.lots_by_location.context,stock_date_end:"
+msgid "At Date"
+msgstr ""
+
 #, fuzzy
 msgctxt "field:stock.move,lot:"
 msgid "Lot"
@@ -165,9 +181,10 @@ msgctxt "field:stock.period.cache.lot,product:"
 msgid "Product"
 msgstr ""
 
+#, fuzzy
 msgctxt "field:stock.period.cache.lot,rec_name:"
 msgid "Name"
-msgstr ""
+msgstr "Namu"
 
 msgctxt "field:stock.period.cache.lot,write_date:"
 msgid "Write Date"
@@ -185,11 +202,23 @@ msgctxt "help:product.template,lot_required:"
 msgid "The type of location for which lot is required"
 msgstr ""
 
+msgctxt "help:stock.lots_by_location.context,forecast_date:"
+msgid ""
+"Allow to compute expected stock quantities for this date.\n"
+"* An empty value is an infinite date in the future.\n"
+"* A date in the past will provide historical values."
+msgstr ""
+
 #, fuzzy
 msgctxt "model:ir.action,name:act_lot_form"
 msgid "Lots"
 msgstr "Lot"
 
+#, fuzzy
+msgctxt "model:ir.action,name:act_lots_by_locations"
+msgid "Lot"
+msgstr "Lot"
+
 msgctxt "model:ir.action,name:act_move_form_relate_lot"
 msgid "Moves"
 msgstr ""
@@ -231,6 +260,10 @@ msgctxt "model:stock.lot.type,name:type_supplier"
 msgid "Supplier"
 msgstr ""
 
+msgctxt "model:stock.lots_by_location.context,name:"
+msgid "Lot by Location"
+msgstr ""
+
 msgctxt "model:stock.period.cache.lot,name:"
 msgid "Stock Period Cache per Lot"
 msgstr ""
@@ -249,11 +282,3 @@ msgstr "Lot"
 msgctxt "view:stock.lot:"
 msgid "Lots"
 msgstr "Lot"
-
-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.po
similarity index 85%
rename from locale/de_DE.po
rename to locale/de.po
index d72dbbe..74e67c5 100644
--- a/locale/de_DE.po
+++ b/locale/de.po
@@ -122,6 +122,18 @@ msgctxt "field:stock.lot.type,write_uid:"
 msgid "Write User"
 msgstr "Letzte Änderung durch"
 
+msgctxt "field:stock.lots_by_location.context,forecast_date:"
+msgid "At Date"
+msgstr "Ermittlungsdatum"
+
+msgctxt "field:stock.lots_by_location.context,id:"
+msgid "ID"
+msgstr "ID"
+
+msgctxt "field:stock.lots_by_location.context,stock_date_end:"
+msgid "At Date"
+msgstr "Ermittlungsdatum"
+
 msgctxt "field:stock.move,lot:"
 msgid "Lot"
 msgstr "Charge"
@@ -182,10 +194,24 @@ 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"
 
+msgctxt "help:stock.lots_by_location.context,forecast_date:"
+msgid ""
+"Allow to compute expected stock quantities for this date.\n"
+"* An empty value is an infinite date in the future.\n"
+"* A date in the past will provide historical values."
+msgstr ""
+"Den erwarteten Lagerbestand für dieses Datum ermitteln.\n"
+"* Ein leerer Wert bedeutet ein unendliches Datum in der Zukunft.\n"
+"* Ein Wert in der Vergangenheit berechnet historische Werte."
+
 msgctxt "model:ir.action,name:act_lot_form"
 msgid "Lots"
 msgstr "Chargen"
 
+msgctxt "model:ir.action,name:act_lots_by_locations"
+msgid "Lot"
+msgstr "Chargen"
+
 msgctxt "model:ir.action,name:act_move_form_relate_lot"
 msgid "Moves"
 msgstr "Lagerbewegungen"
@@ -226,6 +252,10 @@ msgctxt "model:stock.lot.type,name:type_supplier"
 msgid "Supplier"
 msgstr "Lieferant"
 
+msgctxt "model:stock.lots_by_location.context,name:"
+msgid "Lot by Location"
+msgstr "Chargen nach Lagerort"
+
 msgctxt "model:stock.period.cache.lot,name:"
 msgid "Stock Period Cache per Lot"
 msgstr "Lager Cache Periode pro Charge"
diff --git a/locale/es_ES.po b/locale/es.po
similarity index 78%
rename from locale/es_ES.po
rename to locale/es.po
index 0385c21..835f10d 100644
--- a/locale/es_ES.po
+++ b/locale/es.po
@@ -16,11 +16,11 @@ msgstr "Lote obligatorio"
 
 msgctxt "field:product.template-stock.lot.type,create_date:"
 msgid "Create Date"
-msgstr "Fecha creación"
+msgstr "Fecha de creación"
 
 msgctxt "field:product.template-stock.lot.type,create_uid:"
 msgid "Create User"
-msgstr "Usuario creación"
+msgstr "Usuario de creación"
 
 msgctxt "field:product.template-stock.lot.type,id:"
 msgid "ID"
@@ -40,11 +40,11 @@ msgstr "Tipo"
 
 msgctxt "field:product.template-stock.lot.type,write_date:"
 msgid "Write Date"
-msgstr "Fecha modificación"
+msgstr "Fecha de modificación"
 
 msgctxt "field:product.template-stock.lot.type,write_uid:"
 msgid "Write User"
-msgstr "Usuario modificación"
+msgstr "Usuario de modificación"
 
 msgctxt "field:stock.inventory.line,lot:"
 msgid "Lot"
@@ -52,11 +52,11 @@ msgstr "Lote"
 
 msgctxt "field:stock.lot,create_date:"
 msgid "Create Date"
-msgstr "Fecha creación"
+msgstr "Fecha de creación"
 
 msgctxt "field:stock.lot,create_uid:"
 msgid "Create User"
-msgstr "Usuario creación"
+msgstr "Usuario de creación"
 
 msgctxt "field:stock.lot,forecast_quantity:"
 msgid "Forecast Quantity"
@@ -84,11 +84,11 @@ msgstr "Nombre"
 
 msgctxt "field:stock.lot,write_date:"
 msgid "Write Date"
-msgstr "Fecha modificación"
+msgstr "Fecha de modificación"
 
 msgctxt "field:stock.lot,write_uid:"
 msgid "Write User"
-msgstr "Usuario modificación"
+msgstr "Usuario de modificación"
 
 msgctxt "field:stock.lot.type,code:"
 msgid "Code"
@@ -96,11 +96,11 @@ msgstr "Código"
 
 msgctxt "field:stock.lot.type,create_date:"
 msgid "Create Date"
-msgstr "Fecha creación"
+msgstr "Fecha de creación"
 
 msgctxt "field:stock.lot.type,create_uid:"
 msgid "Create User"
-msgstr "Usuario creación"
+msgstr "Usuario de creación"
 
 msgctxt "field:stock.lot.type,id:"
 msgid "ID"
@@ -116,11 +116,23 @@ msgstr "Nombre"
 
 msgctxt "field:stock.lot.type,write_date:"
 msgid "Write Date"
-msgstr "Fecha modificación"
+msgstr "Fecha de modificación"
 
 msgctxt "field:stock.lot.type,write_uid:"
 msgid "Write User"
-msgstr "Usuario modificación"
+msgstr "Usuario de modificación"
+
+msgctxt "field:stock.lots_by_location.context,forecast_date:"
+msgid "At Date"
+msgstr "A la fecha"
+
+msgctxt "field:stock.lots_by_location.context,id:"
+msgid "ID"
+msgstr "ID"
+
+msgctxt "field:stock.lots_by_location.context,stock_date_end:"
+msgid "At Date"
+msgstr "A la fecha"
 
 msgctxt "field:stock.move,lot:"
 msgid "Lot"
@@ -132,11 +144,11 @@ msgstr "Lote precalculado"
 
 msgctxt "field:stock.period.cache.lot,create_date:"
 msgid "Create Date"
-msgstr "Fecha creación"
+msgstr "Fecha de creación"
 
 msgctxt "field:stock.period.cache.lot,create_uid:"
 msgid "Create User"
-msgstr "Usuario creación"
+msgstr "Usuario de creación"
 
 msgctxt "field:stock.period.cache.lot,id:"
 msgid "ID"
@@ -168,11 +180,11 @@ msgstr "Nombre"
 
 msgctxt "field:stock.period.cache.lot,write_date:"
 msgid "Write Date"
-msgstr "Fecha modificación"
+msgstr "Fecha de modificación"
 
 msgctxt "field:stock.period.cache.lot,write_uid:"
 msgid "Write User"
-msgstr "Usuario modificación"
+msgstr "Usuario de modificación"
 
 msgctxt "help:product.product,lot_required:"
 msgid "The type of location for which lot is required"
@@ -182,10 +194,24 @@ msgctxt "help:product.template,lot_required:"
 msgid "The type of location for which lot is required"
 msgstr "El tipo de ubicación en la que el lote es obligatorio."
 
+msgctxt "help:stock.lots_by_location.context,forecast_date:"
+msgid ""
+"Allow to compute expected stock quantities for this date.\n"
+"* An empty value is an infinite date in the future.\n"
+"* A date in the past will provide historical values."
+msgstr ""
+"Permite calcular las cantidades previstas para esta fecha.\n"
+"* Un valor vacío es una fecha infinita en el futuro.\n"
+"* Una fecha en el pasado proporcionará valores históricos. "
+
 msgctxt "model:ir.action,name:act_lot_form"
 msgid "Lots"
 msgstr "Lotes"
 
+msgctxt "model:ir.action,name:act_lots_by_locations"
+msgid "Lot"
+msgstr "Lote"
+
 msgctxt "model:ir.action,name:act_move_form_relate_lot"
 msgid "Moves"
 msgstr "Movimientos"
@@ -226,6 +252,10 @@ msgctxt "model:stock.lot.type,name:type_supplier"
 msgid "Supplier"
 msgstr "Proveedor"
 
+msgctxt "model:stock.lots_by_location.context,name:"
+msgid "Lot by Location"
+msgstr "Lote por ubicación"
+
 msgctxt "model:stock.period.cache.lot,name:"
 msgid "Stock Period Cache per Lot"
 msgstr "Período de stock precalculado por lote"
diff --git a/locale/lo_LA.po b/locale/es_419.po
similarity index 84%
rename from locale/lo_LA.po
rename to locale/es_419.po
index 90f9afb..5b92d24 100644
--- a/locale/lo_LA.po
+++ b/locale/es_419.po
@@ -46,9 +46,10 @@ msgctxt "field:product.template-stock.lot.type,write_uid:"
 msgid "Write User"
 msgstr ""
 
+#, fuzzy
 msgctxt "field:stock.inventory.line,lot:"
 msgid "Lot"
-msgstr ""
+msgstr "Lot"
 
 msgctxt "field:stock.lot,create_date:"
 msgid "Create Date"
@@ -122,9 +123,22 @@ msgctxt "field:stock.lot.type,write_uid:"
 msgid "Write User"
 msgstr ""
 
+msgctxt "field:stock.lots_by_location.context,forecast_date:"
+msgid "At Date"
+msgstr ""
+
+msgctxt "field:stock.lots_by_location.context,id:"
+msgid "ID"
+msgstr ""
+
+msgctxt "field:stock.lots_by_location.context,stock_date_end:"
+msgid "At Date"
+msgstr ""
+
+#, fuzzy
 msgctxt "field:stock.move,lot:"
 msgid "Lot"
-msgstr ""
+msgstr "Lot"
 
 msgctxt "field:stock.period,lot_caches:"
 msgid "Lot Caches"
@@ -144,15 +158,16 @@ msgstr ""
 
 msgctxt "field:stock.period.cache.lot,internal_quantity:"
 msgid "Internal Quantity"
-msgstr "ຈຳນວນພາຍໃນ"
+msgstr ""
 
 msgctxt "field:stock.period.cache.lot,location:"
 msgid "Location"
 msgstr ""
 
+#, fuzzy
 msgctxt "field:stock.period.cache.lot,lot:"
 msgid "Lot"
-msgstr ""
+msgstr "Lot"
 
 msgctxt "field:stock.period.cache.lot,period:"
 msgid "Period"
@@ -182,17 +197,28 @@ msgctxt "help:product.template,lot_required:"
 msgid "The type of location for which lot is required"
 msgstr ""
 
+msgctxt "help:stock.lots_by_location.context,forecast_date:"
+msgid ""
+"Allow to compute expected stock quantities for this date.\n"
+"* An empty value is an infinite date in the future.\n"
+"* A date in the past will provide historical values."
+msgstr ""
+
 msgctxt "model:ir.action,name:act_lot_form"
 msgid "Lots"
-msgstr ""
+msgstr "Lots"
+
+msgctxt "model:ir.action,name:act_lots_by_locations"
+msgid "Lot"
+msgstr "Lot"
 
 msgctxt "model:ir.action,name:act_move_form_relate_lot"
 msgid "Moves"
-msgstr ""
+msgstr "Moves"
 
 msgctxt "model:ir.ui.menu,name:menu_lot_form"
 msgid "Lots"
-msgstr ""
+msgstr "Lots"
 
 msgctxt "model:product.template-stock.lot.type,name:"
 msgid "Template - Stock Lot Type"
@@ -208,44 +234,33 @@ msgstr ""
 
 msgctxt "model:stock.lot.type,name:type_customer"
 msgid "Customer"
-msgstr ""
+msgstr "Customer"
 
 msgctxt "model:stock.lot.type,name:type_lost_found"
 msgid "Lost and Found"
-msgstr ""
+msgstr "Lost and Found"
 
 msgctxt "model:stock.lot.type,name:type_production"
 msgid "Production"
-msgstr ""
+msgstr "Production"
 
 msgctxt "model:stock.lot.type,name:type_storage"
 msgid "Storage"
-msgstr ""
+msgstr "Storage"
 
 msgctxt "model:stock.lot.type,name:type_supplier"
 msgid "Supplier"
+msgstr "Supplier"
+
+msgctxt "model:stock.lots_by_location.context,name:"
+msgid "Lot by Location"
 msgstr ""
 
 msgctxt "model:stock.period.cache.lot,name:"
 msgid "Stock Period Cache per Lot"
 msgstr ""
 
+#, fuzzy
 msgctxt "view:product.template:"
 msgid "Lots"
-msgstr ""
-
-msgctxt "view:stock.lot:"
-msgid "Lot"
-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 ""
+msgstr "Lots"
diff --git a/locale/es_AR.po b/locale/es_AR.po
deleted file mode 100644
index 40ebc31..0000000
--- a/locale/es_AR.po
+++ /dev/null
@@ -1,251 +0,0 @@
-# 
-msgid ""
-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»."
-
-msgctxt "field:product.product,lot_required:"
-msgid "Lot Required"
-msgstr "Lote requerido"
-
-msgctxt "field:product.template,lot_required:"
-msgid "Lot Required"
-msgstr "Lote requerido"
-
-msgctxt "field:product.template-stock.lot.type,create_date:"
-msgid "Create Date"
-msgstr "Fecha creación"
-
-msgctxt "field:product.template-stock.lot.type,create_uid:"
-msgid "Create User"
-msgstr "Usuario creación"
-
-msgctxt "field:product.template-stock.lot.type,id:"
-msgid "ID"
-msgstr "ID"
-
-msgctxt "field:product.template-stock.lot.type,rec_name:"
-msgid "Name"
-msgstr "Nombre"
-
-msgctxt "field:product.template-stock.lot.type,template:"
-msgid "Template"
-msgstr "Plantilla"
-
-msgctxt "field:product.template-stock.lot.type,type:"
-msgid "Type"
-msgstr "Tipo"
-
-msgctxt "field:product.template-stock.lot.type,write_date:"
-msgid "Write Date"
-msgstr "Fecha modificación"
-
-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"
-
-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"
-
-msgctxt "field:stock.lot,number:"
-msgid "Number"
-msgstr "Número"
-
-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"
-
-msgctxt "field:stock.lot,write_date:"
-msgid "Write Date"
-msgstr "Fecha modificación"
-
-msgctxt "field:stock.lot,write_uid:"
-msgid "Write User"
-msgstr "Usuario modificación"
-
-msgctxt "field:stock.lot.type,code:"
-msgid "Code"
-msgstr "Código"
-
-msgctxt "field:stock.lot.type,create_date:"
-msgid "Create Date"
-msgstr "Fecha creación"
-
-msgctxt "field:stock.lot.type,create_uid:"
-msgid "Create User"
-msgstr "Usuario creación"
-
-msgctxt "field:stock.lot.type,id:"
-msgid "ID"
-msgstr "ID"
-
-msgctxt "field:stock.lot.type,name:"
-msgid "Name"
-msgstr "Nombre"
-
-msgctxt "field:stock.lot.type,rec_name:"
-msgid "Name"
-msgstr "Nombre"
-
-msgctxt "field:stock.lot.type,write_date:"
-msgid "Write Date"
-msgstr "Fecha modificación"
-
-msgctxt "field:stock.lot.type,write_uid:"
-msgid "Write User"
-msgstr "Usuario modificación"
-
-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 "Producto"
-
-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.product,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"
-
-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"
-
-msgctxt "model:ir.action,name:act_lot_form"
-msgid "Lots"
-msgstr "Lotes"
-
-msgctxt "model:ir.action,name:act_move_form_relate_lot"
-msgid "Moves"
-msgstr "Movimientos"
-
-msgctxt "model:ir.ui.menu,name:menu_lot_form"
-msgid "Lots"
-msgstr "Lotes"
-
-msgctxt "model:product.template-stock.lot.type,name:"
-msgid "Template - Stock Lot Type"
-msgstr "Plantilla - Tipo de lote de inventario"
-
-msgctxt "model:stock.lot,name:"
-msgid "Stock Lot"
-msgstr "Lote de inventario"
-
-msgctxt "model:stock.lot.type,name:"
-msgid "Stock Lot Type"
-msgstr "Tipo de lote de inventario"
-
-msgctxt "model:stock.lot.type,name:type_customer"
-msgid "Customer"
-msgstr "Cliente"
-
-msgctxt "model:stock.lot.type,name:type_lost_found"
-msgid "Lost and Found"
-msgstr "Perdido y encontrado"
-
-msgctxt "model:stock.lot.type,name:type_production"
-msgid "Production"
-msgstr "Producción"
-
-msgctxt "model:stock.lot.type,name:type_storage"
-msgid "Storage"
-msgstr "Depósito"
-
-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.template:"
-msgid "Lots"
-msgstr "Lotes"
-
-msgctxt "view:stock.lot:"
-msgid "Lot"
-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
deleted file mode 100644
index 976e79b..0000000
--- a/locale/es_CO.po
+++ /dev/null
@@ -1,251 +0,0 @@
-# 
-msgid ""
-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\"."
-
-msgctxt "field:product.product,lot_required:"
-msgid "Lot Required"
-msgstr "Lote Requerido"
-
-msgctxt "field:product.template,lot_required:"
-msgid "Lot Required"
-msgstr "Lote Requerido"
-
-msgctxt "field:product.template-stock.lot.type,create_date:"
-msgid "Create Date"
-msgstr "Fecha de Creación"
-
-msgctxt "field:product.template-stock.lot.type,create_uid:"
-msgid "Create User"
-msgstr "Creado por Usuario"
-
-msgctxt "field:product.template-stock.lot.type,id:"
-msgid "ID"
-msgstr "ID"
-
-msgctxt "field:product.template-stock.lot.type,rec_name:"
-msgid "Name"
-msgstr "Nombre"
-
-msgctxt "field:product.template-stock.lot.type,template:"
-msgid "Template"
-msgstr "Plantilla"
-
-msgctxt "field:product.template-stock.lot.type,type:"
-msgid "Type"
-msgstr "Tipo"
-
-msgctxt "field:product.template-stock.lot.type,write_date:"
-msgid "Write Date"
-msgstr "Fecha de Modificación"
-
-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"
-
-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"
-
-msgctxt "field:stock.lot,number:"
-msgid "Number"
-msgstr "Número"
-
-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"
-
-msgctxt "field:stock.lot,write_date:"
-msgid "Write Date"
-msgstr "Fecha de Modificación"
-
-msgctxt "field:stock.lot,write_uid:"
-msgid "Write User"
-msgstr "Modificado por Usuario"
-
-msgctxt "field:stock.lot.type,code:"
-msgid "Code"
-msgstr "Código"
-
-msgctxt "field:stock.lot.type,create_date:"
-msgid "Create Date"
-msgstr "Fecha de Creación"
-
-msgctxt "field:stock.lot.type,create_uid:"
-msgid "Create User"
-msgstr "Creado por Usuario"
-
-msgctxt "field:stock.lot.type,id:"
-msgid "ID"
-msgstr "ID"
-
-msgctxt "field:stock.lot.type,name:"
-msgid "Name"
-msgstr "Nombre"
-
-msgctxt "field:stock.lot.type,rec_name:"
-msgid "Name"
-msgstr "Nombre"
-
-msgctxt "field:stock.lot.type,write_date:"
-msgid "Write Date"
-msgstr "Fecha de Modificación"
-
-msgctxt "field:stock.lot.type,write_uid:"
-msgid "Write User"
-msgstr "Modificado por Usuario"
-
-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 "Producto"
-
-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 de Modificación"
-
-msgctxt "field:stock.period.cache.lot,write_uid:"
-msgid "Write User"
-msgstr "Modificado por Usuario"
-
-msgctxt "help:product.product,lot_required:"
-msgid "The type of location for which lot is required"
-msgstr "El tipo de bodega para la cual el lote es requerido"
-
-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"
-
-msgctxt "model:ir.action,name:act_lot_form"
-msgid "Lots"
-msgstr "Lotes"
-
-msgctxt "model:ir.action,name:act_move_form_relate_lot"
-msgid "Moves"
-msgstr "Movimientos"
-
-msgctxt "model:ir.ui.menu,name:menu_lot_form"
-msgid "Lots"
-msgstr "Lotes"
-
-msgctxt "model:product.template-stock.lot.type,name:"
-msgid "Template - Stock Lot Type"
-msgstr "Plantilla - Tipo Lote de Inventario"
-
-msgctxt "model:stock.lot,name:"
-msgid "Stock Lot"
-msgstr "Lote de Inventario"
-
-msgctxt "model:stock.lot.type,name:"
-msgid "Stock Lot Type"
-msgstr "Tipo de Lote de Inventario"
-
-msgctxt "model:stock.lot.type,name:type_customer"
-msgid "Customer"
-msgstr "Cliente"
-
-msgctxt "model:stock.lot.type,name:type_lost_found"
-msgid "Lost and Found"
-msgstr "Perdido y Encontrado"
-
-msgctxt "model:stock.lot.type,name:type_production"
-msgid "Production"
-msgstr "Producción"
-
-msgctxt "model:stock.lot.type,name:type_storage"
-msgid "Storage"
-msgstr "Almacén"
-
-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.template:"
-msgid "Lots"
-msgstr "Lotes"
-
-msgctxt "view:stock.lot:"
-msgid "Lot"
-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_EC.po b/locale/es_EC.po
deleted file mode 100644
index 783836d..0000000
--- a/locale/es_EC.po
+++ /dev/null
@@ -1,251 +0,0 @@
-# 
-msgid ""
-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\"."
-
-msgctxt "field:product.product,lot_required:"
-msgid "Lot Required"
-msgstr "Lote requerido"
-
-msgctxt "field:product.template,lot_required:"
-msgid "Lot Required"
-msgstr "Lote requerido"
-
-msgctxt "field:product.template-stock.lot.type,create_date:"
-msgid "Create Date"
-msgstr "Fecha de creación"
-
-msgctxt "field:product.template-stock.lot.type,create_uid:"
-msgid "Create User"
-msgstr "Creado por usuario"
-
-msgctxt "field:product.template-stock.lot.type,id:"
-msgid "ID"
-msgstr "ID"
-
-msgctxt "field:product.template-stock.lot.type,rec_name:"
-msgid "Name"
-msgstr "Nombre"
-
-msgctxt "field:product.template-stock.lot.type,template:"
-msgid "Template"
-msgstr "Plantilla"
-
-msgctxt "field:product.template-stock.lot.type,type:"
-msgid "Type"
-msgstr "Tipo"
-
-msgctxt "field:product.template-stock.lot.type,write_date:"
-msgid "Write Date"
-msgstr "Fecha de modificación"
-
-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"
-
-msgctxt "field:stock.lot,create_uid:"
-msgid "Create User"
-msgstr "Creado por usuario"
-
-msgctxt "field:stock.lot,forecast_quantity:"
-msgid "Forecast Quantity"
-msgstr "Cantidad prevista"
-
-msgctxt "field:stock.lot,id:"
-msgid "ID"
-msgstr "ID"
-
-msgctxt "field:stock.lot,number:"
-msgid "Number"
-msgstr "Número"
-
-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"
-
-msgctxt "field:stock.lot,write_date:"
-msgid "Write Date"
-msgstr "Fecha de modificación"
-
-msgctxt "field:stock.lot,write_uid:"
-msgid "Write User"
-msgstr "Modificado por usuario"
-
-msgctxt "field:stock.lot.type,code:"
-msgid "Code"
-msgstr "Código"
-
-msgctxt "field:stock.lot.type,create_date:"
-msgid "Create Date"
-msgstr "Fecha de creación"
-
-msgctxt "field:stock.lot.type,create_uid:"
-msgid "Create User"
-msgstr "Creado por usuario"
-
-msgctxt "field:stock.lot.type,id:"
-msgid "ID"
-msgstr "ID"
-
-msgctxt "field:stock.lot.type,name:"
-msgid "Name"
-msgstr "Nombre"
-
-msgctxt "field:stock.lot.type,rec_name:"
-msgid "Name"
-msgstr "Nombre"
-
-msgctxt "field:stock.lot.type,write_date:"
-msgid "Write Date"
-msgstr "Fecha de modificación"
-
-msgctxt "field:stock.lot.type,write_uid:"
-msgid "Write User"
-msgstr "Modificado por usuario"
-
-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 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 "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 "Producto"
-
-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 de modificación"
-
-msgctxt "field:stock.period.cache.lot,write_uid:"
-msgid "Write User"
-msgstr "Modificado por usuario"
-
-msgctxt "help:product.product,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"
-
-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"
-
-msgctxt "model:ir.action,name:act_lot_form"
-msgid "Lots"
-msgstr "Lotes"
-
-msgctxt "model:ir.action,name:act_move_form_relate_lot"
-msgid "Moves"
-msgstr "Movimientos"
-
-msgctxt "model:ir.ui.menu,name:menu_lot_form"
-msgid "Lots"
-msgstr "Lotes"
-
-msgctxt "model:product.template-stock.lot.type,name:"
-msgid "Template - Stock Lot Type"
-msgstr "Plantilla - Tipo de lote de stock"
-
-msgctxt "model:stock.lot,name:"
-msgid "Stock Lot"
-msgstr "Lote de stock"
-
-msgctxt "model:stock.lot.type,name:"
-msgid "Stock Lot Type"
-msgstr "Tipo de lote de stock"
-
-msgctxt "model:stock.lot.type,name:type_customer"
-msgid "Customer"
-msgstr "Cliente"
-
-msgctxt "model:stock.lot.type,name:type_lost_found"
-msgid "Lost and Found"
-msgstr "Perdido y encontrado"
-
-msgctxt "model:stock.lot.type,name:type_production"
-msgid "Production"
-msgstr "Producción"
-
-msgctxt "model:stock.lot.type,name:type_storage"
-msgid "Storage"
-msgstr "Almacenamiento"
-
-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.template:"
-msgid "Lots"
-msgstr "Lotes"
-
-msgctxt "view:stock.lot:"
-msgid "Lot"
-msgstr "Lote"
-
-msgctxt "view:stock.lot:"
-msgid "Lots"
-msgstr "Lotes"
-
-msgctxt "view:stock.period.cache.lot:"
-msgid "Period Lot Cache"
-msgstr "Período de lote precalculado"
-
-msgctxt "view:stock.period.cache.lot:"
-msgid "Period Lot Caches"
-msgstr "Período de lote precalculados"
diff --git a/locale/es_MX.po b/locale/es_MX.po
deleted file mode 100644
index 9342b32..0000000
--- a/locale/es_MX.po
+++ /dev/null
@@ -1,256 +0,0 @@
-# 
-msgid ""
-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\"."
-
-#, fuzzy
-msgctxt "field:product.product,lot_required:"
-msgid "Lot Required"
-msgstr "Lote requerido"
-
-msgctxt "field:product.template,lot_required:"
-msgid "Lot Required"
-msgstr "Lote requerido"
-
-msgctxt "field:product.template-stock.lot.type,create_date:"
-msgid "Create Date"
-msgstr "Fecha creación"
-
-msgctxt "field:product.template-stock.lot.type,create_uid:"
-msgid "Create User"
-msgstr "Usuario creación"
-
-msgctxt "field:product.template-stock.lot.type,id:"
-msgid "ID"
-msgstr "ID"
-
-msgctxt "field:product.template-stock.lot.type,rec_name:"
-msgid "Name"
-msgstr "Nombre"
-
-msgctxt "field:product.template-stock.lot.type,template:"
-msgid "Template"
-msgstr "Plantilla"
-
-msgctxt "field:product.template-stock.lot.type,type:"
-msgid "Type"
-msgstr "Tipo"
-
-msgctxt "field:product.template-stock.lot.type,write_date:"
-msgid "Write Date"
-msgstr "Fecha modificación"
-
-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"
-
-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"
-
-msgctxt "field:stock.lot,number:"
-msgid "Number"
-msgstr "Número"
-
-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"
-
-msgctxt "field:stock.lot,write_date:"
-msgid "Write Date"
-msgstr "Fecha modificación"
-
-msgctxt "field:stock.lot,write_uid:"
-msgid "Write User"
-msgstr "Usuario modificación"
-
-msgctxt "field:stock.lot.type,code:"
-msgid "Code"
-msgstr "Código"
-
-msgctxt "field:stock.lot.type,create_date:"
-msgid "Create Date"
-msgstr "Fecha creación"
-
-msgctxt "field:stock.lot.type,create_uid:"
-msgid "Create User"
-msgstr "Usuario creación"
-
-msgctxt "field:stock.lot.type,id:"
-msgid "ID"
-msgstr "ID"
-
-msgctxt "field:stock.lot.type,name:"
-msgid "Name"
-msgstr "Nombre"
-
-msgctxt "field:stock.lot.type,rec_name:"
-msgid "Name"
-msgstr "Nombre"
-
-msgctxt "field:stock.lot.type,write_date:"
-msgid "Write Date"
-msgstr "Fecha modificación"
-
-msgctxt "field:stock.lot.type,write_uid:"
-msgid "Write User"
-msgstr "Usuario modificación"
-
-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 "Producto"
-
-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"
-
-#, fuzzy
-msgctxt "help:product.product,lot_required:"
-msgid "The type of location for which lot is required"
-msgstr "El tipo de ubicación por cada lote es requerido."
-
-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."
-
-msgctxt "model:ir.action,name:act_lot_form"
-msgid "Lots"
-msgstr "Lotes"
-
-msgctxt "model:ir.action,name:act_move_form_relate_lot"
-msgid "Moves"
-msgstr "Movimientos"
-
-msgctxt "model:ir.ui.menu,name:menu_lot_form"
-msgid "Lots"
-msgstr "Lotes"
-
-msgctxt "model:product.template-stock.lot.type,name:"
-msgid "Template - Stock Lot Type"
-msgstr "Plantilla - Tipo de lote"
-
-msgctxt "model:stock.lot,name:"
-msgid "Stock Lot"
-msgstr "Lote stock"
-
-msgctxt "model:stock.lot.type,name:"
-msgid "Stock Lot Type"
-msgstr "Tipo lote stock"
-
-msgctxt "model:stock.lot.type,name:type_customer"
-msgid "Customer"
-msgstr "Cliente"
-
-msgctxt "model:stock.lot.type,name:type_lost_found"
-msgid "Lost and Found"
-msgstr "Perdido/encontrado"
-
-msgctxt "model:stock.lot.type,name:type_production"
-msgid "Production"
-msgstr "Producción"
-
-msgctxt "model:stock.lot.type,name:type_storage"
-msgid "Storage"
-msgstr "Almacenamiento"
-
-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 existencias precalculado por lote"
-
-#, fuzzy
-msgctxt "view:product.template:"
-msgid "Lots"
-msgstr "Lotes"
-
-#, fuzzy
-msgctxt "view:stock.lot:"
-msgid "Lot"
-msgstr "Lote"
-
-#, fuzzy
-msgctxt "view:stock.lot:"
-msgid "Lots"
-msgstr "Lotes"
-
-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/fr_FR.po b/locale/fr.po
similarity index 85%
rename from locale/fr_FR.po
rename to locale/fr.po
index 4943312..a008979 100644
--- a/locale/fr_FR.po
+++ b/locale/fr.po
@@ -122,6 +122,18 @@ msgctxt "field:stock.lot.type,write_uid:"
 msgid "Write User"
 msgstr "Mis à jour par"
 
+msgctxt "field:stock.lots_by_location.context,forecast_date:"
+msgid "At Date"
+msgstr "À la date"
+
+msgctxt "field:stock.lots_by_location.context,id:"
+msgid "ID"
+msgstr "ID"
+
+msgctxt "field:stock.lots_by_location.context,stock_date_end:"
+msgid "At Date"
+msgstr "À la date"
+
 msgctxt "field:stock.move,lot:"
 msgid "Lot"
 msgstr "Lot"
@@ -182,10 +194,24 @@ 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"
 
+msgctxt "help:stock.lots_by_location.context,forecast_date:"
+msgid ""
+"Allow to compute expected stock quantities for this date.\n"
+"* An empty value is an infinite date in the future.\n"
+"* A date in the past will provide historical values."
+msgstr ""
+"Permet de calculer les quantités de stock attendues pour cette date.\n"
+"* Une valeur vide est une date infinie dans le futur.\n"
+"* Une date dans le passé fournira les valeurs historiques."
+
 msgctxt "model:ir.action,name:act_lot_form"
 msgid "Lots"
 msgstr "Lots"
 
+msgctxt "model:ir.action,name:act_lots_by_locations"
+msgid "Lot"
+msgstr "Lot"
+
 msgctxt "model:ir.action,name:act_move_form_relate_lot"
 msgid "Moves"
 msgstr "Mouvements"
@@ -226,6 +252,10 @@ msgctxt "model:stock.lot.type,name:type_supplier"
 msgid "Supplier"
 msgstr "Fournisseur"
 
+msgctxt "model:stock.lots_by_location.context,name:"
+msgid "Lot by Location"
+msgstr "Lot par emplacement"
+
 msgctxt "model:stock.period.cache.lot,name:"
 msgid "Stock Period Cache per Lot"
 msgstr "Caches de période de stock par lot"
diff --git a/locale/hu_HU.po b/locale/hu_HU.po
index 5706dca..96c77f6 100644
--- a/locale/hu_HU.po
+++ b/locale/hu_HU.po
@@ -123,6 +123,19 @@ msgctxt "field:stock.lot.type,write_uid:"
 msgid "Write User"
 msgstr "Által módosítva"
 
+msgctxt "field:stock.lots_by_location.context,forecast_date:"
+msgid "At Date"
+msgstr ""
+
+#, fuzzy
+msgctxt "field:stock.lots_by_location.context,id:"
+msgid "ID"
+msgstr "ID"
+
+msgctxt "field:stock.lots_by_location.context,stock_date_end:"
+msgid "At Date"
+msgstr ""
+
 msgctxt "field:stock.move,lot:"
 msgid "Lot"
 msgstr "Charge"
@@ -184,10 +197,22 @@ msgctxt "help:product.template,lot_required:"
 msgid "The type of location for which lot is required"
 msgstr "Raktárhely típusa, melyhez szükséges Charge szám"
 
+msgctxt "help:stock.lots_by_location.context,forecast_date:"
+msgid ""
+"Allow to compute expected stock quantities for this date.\n"
+"* An empty value is an infinite date in the future.\n"
+"* A date in the past will provide historical values."
+msgstr ""
+
 msgctxt "model:ir.action,name:act_lot_form"
 msgid "Lots"
 msgstr "Charge"
 
+#, fuzzy
+msgctxt "model:ir.action,name:act_lots_by_locations"
+msgid "Lot"
+msgstr "Lot"
+
 msgctxt "model:ir.action,name:act_move_form_relate_lot"
 msgid "Moves"
 msgstr "Raktár mozgás"
@@ -228,6 +253,10 @@ msgctxt "model:stock.lot.type,name:type_supplier"
 msgid "Supplier"
 msgstr "Beszállító"
 
+msgctxt "model:stock.lots_by_location.context,name:"
+msgid "Lot by Location"
+msgstr ""
+
 msgctxt "model:stock.period.cache.lot,name:"
 msgid "Stock Period Cache per Lot"
 msgstr "Raktár Cache időszak Chargenként"
diff --git a/locale/it_IT.po b/locale/it_IT.po
index 26f32e9..a9c9ed0 100644
--- a/locale/it_IT.po
+++ b/locale/it_IT.po
@@ -14,165 +14,214 @@ msgctxt "field:product.template,lot_required:"
 msgid "Lot Required"
 msgstr ""
 
+#, fuzzy
 msgctxt "field:product.template-stock.lot.type,create_date:"
 msgid "Create Date"
-msgstr ""
+msgstr "Data di creazione"
 
+#, fuzzy
 msgctxt "field:product.template-stock.lot.type,create_uid:"
 msgid "Create User"
-msgstr ""
+msgstr "Utente creazione"
 
+#, fuzzy
 msgctxt "field:product.template-stock.lot.type,id:"
 msgid "ID"
-msgstr ""
+msgstr "Movimento contabile"
 
+#, fuzzy
 msgctxt "field:product.template-stock.lot.type,rec_name:"
 msgid "Name"
-msgstr ""
+msgstr "Nome"
 
 msgctxt "field:product.template-stock.lot.type,template:"
 msgid "Template"
 msgstr ""
 
+#, fuzzy
 msgctxt "field:product.template-stock.lot.type,type:"
 msgid "Type"
-msgstr ""
+msgstr "Tipo"
 
+#, fuzzy
 msgctxt "field:product.template-stock.lot.type,write_date:"
 msgid "Write Date"
-msgstr ""
+msgstr "Utente scrittura"
 
+#, fuzzy
 msgctxt "field:product.template-stock.lot.type,write_uid:"
 msgid "Write User"
-msgstr ""
+msgstr "modificato da"
 
+#, fuzzy
 msgctxt "field:stock.inventory.line,lot:"
 msgid "Lot"
-msgstr ""
+msgstr "Lot"
 
+#, fuzzy
 msgctxt "field:stock.lot,create_date:"
 msgid "Create Date"
-msgstr ""
+msgstr "Data di creazione"
 
+#, fuzzy
 msgctxt "field:stock.lot,create_uid:"
 msgid "Create User"
-msgstr ""
+msgstr "Utente creazione"
 
 msgctxt "field:stock.lot,forecast_quantity:"
 msgid "Forecast Quantity"
 msgstr ""
 
+#, fuzzy
 msgctxt "field:stock.lot,id:"
 msgid "ID"
-msgstr ""
+msgstr "Movimento contabile"
 
+#, fuzzy
 msgctxt "field:stock.lot,number:"
 msgid "Number"
-msgstr ""
+msgstr "Numero"
 
+#, fuzzy
 msgctxt "field:stock.lot,product:"
 msgid "Product"
-msgstr ""
+msgstr "Prodotto"
 
+#, fuzzy
 msgctxt "field:stock.lot,quantity:"
 msgid "Quantity"
-msgstr ""
+msgstr "Quantità"
 
+#, fuzzy
 msgctxt "field:stock.lot,rec_name:"
 msgid "Name"
-msgstr ""
+msgstr "Nome"
 
+#, fuzzy
 msgctxt "field:stock.lot,write_date:"
 msgid "Write Date"
-msgstr ""
+msgstr "Utente scrittura"
 
+#, fuzzy
 msgctxt "field:stock.lot,write_uid:"
 msgid "Write User"
-msgstr ""
+msgstr "modificato da"
 
+#, fuzzy
 msgctxt "field:stock.lot.type,code:"
 msgid "Code"
-msgstr ""
+msgstr "Codice"
 
+#, fuzzy
 msgctxt "field:stock.lot.type,create_date:"
 msgid "Create Date"
-msgstr ""
+msgstr "Data di creazione"
 
+#, fuzzy
 msgctxt "field:stock.lot.type,create_uid:"
 msgid "Create User"
-msgstr ""
+msgstr "Utente creazione"
 
+#, fuzzy
 msgctxt "field:stock.lot.type,id:"
 msgid "ID"
-msgstr ""
+msgstr "Movimento contabile"
 
+#, fuzzy
 msgctxt "field:stock.lot.type,name:"
 msgid "Name"
-msgstr ""
+msgstr "Nome"
 
+#, fuzzy
 msgctxt "field:stock.lot.type,rec_name:"
 msgid "Name"
-msgstr ""
+msgstr "Nome"
 
+#, fuzzy
 msgctxt "field:stock.lot.type,write_date:"
 msgid "Write Date"
-msgstr ""
+msgstr "Utente scrittura"
 
+#, fuzzy
 msgctxt "field:stock.lot.type,write_uid:"
 msgid "Write User"
+msgstr "modificato da"
+
+msgctxt "field:stock.lots_by_location.context,forecast_date:"
+msgid "At Date"
 msgstr ""
 
+#, fuzzy
+msgctxt "field:stock.lots_by_location.context,id:"
+msgid "ID"
+msgstr "Movimento contabile"
+
+msgctxt "field:stock.lots_by_location.context,stock_date_end:"
+msgid "At Date"
+msgstr ""
+
+#, fuzzy
 msgctxt "field:stock.move,lot:"
 msgid "Lot"
-msgstr ""
+msgstr "Lot"
 
 msgctxt "field:stock.period,lot_caches:"
 msgid "Lot Caches"
 msgstr ""
 
+#, fuzzy
 msgctxt "field:stock.period.cache.lot,create_date:"
 msgid "Create Date"
-msgstr ""
+msgstr "Data di creazione"
 
+#, fuzzy
 msgctxt "field:stock.period.cache.lot,create_uid:"
 msgid "Create User"
-msgstr ""
+msgstr "Utente creazione"
 
+#, fuzzy
 msgctxt "field:stock.period.cache.lot,id:"
 msgid "ID"
-msgstr ""
+msgstr "Movimento contabile"
 
 msgctxt "field:stock.period.cache.lot,internal_quantity:"
 msgid "Internal Quantity"
 msgstr ""
 
+#, fuzzy
 msgctxt "field:stock.period.cache.lot,location:"
 msgid "Location"
-msgstr ""
+msgstr "Luogo"
 
+#, fuzzy
 msgctxt "field:stock.period.cache.lot,lot:"
 msgid "Lot"
-msgstr ""
+msgstr "Lot"
 
+#, fuzzy
 msgctxt "field:stock.period.cache.lot,period:"
 msgid "Period"
-msgstr ""
+msgstr "Periodo"
 
+#, fuzzy
 msgctxt "field:stock.period.cache.lot,product:"
 msgid "Product"
-msgstr ""
+msgstr "Prodotto"
 
+#, fuzzy
 msgctxt "field:stock.period.cache.lot,rec_name:"
 msgid "Name"
-msgstr ""
+msgstr "Nome"
 
+#, fuzzy
 msgctxt "field:stock.period.cache.lot,write_date:"
 msgid "Write Date"
-msgstr ""
+msgstr "Utente scrittura"
 
+#, fuzzy
 msgctxt "field:stock.period.cache.lot,write_uid:"
 msgid "Write User"
-msgstr ""
+msgstr "modificato da"
 
 msgctxt "help:product.product,lot_required:"
 msgid "The type of location for which lot is required"
@@ -182,17 +231,32 @@ msgctxt "help:product.template,lot_required:"
 msgid "The type of location for which lot is required"
 msgstr ""
 
+msgctxt "help:stock.lots_by_location.context,forecast_date:"
+msgid ""
+"Allow to compute expected stock quantities for this date.\n"
+"* An empty value is an infinite date in the future.\n"
+"* A date in the past will provide historical values."
+msgstr ""
+
+#, fuzzy
 msgctxt "model:ir.action,name:act_lot_form"
 msgid "Lots"
-msgstr ""
+msgstr "Lot"
+
+#, fuzzy
+msgctxt "model:ir.action,name:act_lots_by_locations"
+msgid "Lot"
+msgstr "Lot"
 
+#, fuzzy
 msgctxt "model:ir.action,name:act_move_form_relate_lot"
 msgid "Moves"
-msgstr ""
+msgstr "Movimenti"
 
+#, fuzzy
 msgctxt "model:ir.ui.menu,name:menu_lot_form"
 msgid "Lots"
-msgstr ""
+msgstr "Lot"
 
 msgctxt "model:product.template-stock.lot.type,name:"
 msgid "Template - Stock Lot Type"
@@ -206,9 +270,10 @@ msgctxt "model:stock.lot.type,name:"
 msgid "Stock Lot Type"
 msgstr ""
 
+#, fuzzy
 msgctxt "model:stock.lot.type,name:type_customer"
 msgid "Customer"
-msgstr ""
+msgstr "Cliente"
 
 msgctxt "model:stock.lot.type,name:type_lost_found"
 msgid "Lost and Found"
@@ -222,30 +287,25 @@ msgctxt "model:stock.lot.type,name:type_storage"
 msgid "Storage"
 msgstr ""
 
+#, fuzzy
 msgctxt "model:stock.lot.type,name:type_supplier"
 msgid "Supplier"
+msgstr "Fornitore"
+
+msgctxt "model:stock.lots_by_location.context,name:"
+msgid "Lot by Location"
 msgstr ""
 
 msgctxt "model:stock.period.cache.lot,name:"
 msgid "Stock Period Cache per Lot"
 msgstr ""
 
+#, fuzzy
 msgctxt "view:product.template:"
 msgid "Lots"
-msgstr ""
+msgstr "Lot"
 
+#, fuzzy
 msgctxt "view:stock.lot:"
 msgid "Lot"
-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 ""
+msgstr "Lot"
diff --git a/locale/ja_JP.po b/locale/ja_JP.po
index 26f32e9..5b92d24 100644
--- a/locale/ja_JP.po
+++ b/locale/ja_JP.po
@@ -46,9 +46,10 @@ msgctxt "field:product.template-stock.lot.type,write_uid:"
 msgid "Write User"
 msgstr ""
 
+#, fuzzy
 msgctxt "field:stock.inventory.line,lot:"
 msgid "Lot"
-msgstr ""
+msgstr "Lot"
 
 msgctxt "field:stock.lot,create_date:"
 msgid "Create Date"
@@ -122,9 +123,22 @@ msgctxt "field:stock.lot.type,write_uid:"
 msgid "Write User"
 msgstr ""
 
+msgctxt "field:stock.lots_by_location.context,forecast_date:"
+msgid "At Date"
+msgstr ""
+
+msgctxt "field:stock.lots_by_location.context,id:"
+msgid "ID"
+msgstr ""
+
+msgctxt "field:stock.lots_by_location.context,stock_date_end:"
+msgid "At Date"
+msgstr ""
+
+#, fuzzy
 msgctxt "field:stock.move,lot:"
 msgid "Lot"
-msgstr ""
+msgstr "Lot"
 
 msgctxt "field:stock.period,lot_caches:"
 msgid "Lot Caches"
@@ -150,9 +164,10 @@ msgctxt "field:stock.period.cache.lot,location:"
 msgid "Location"
 msgstr ""
 
+#, fuzzy
 msgctxt "field:stock.period.cache.lot,lot:"
 msgid "Lot"
-msgstr ""
+msgstr "Lot"
 
 msgctxt "field:stock.period.cache.lot,period:"
 msgid "Period"
@@ -182,17 +197,28 @@ msgctxt "help:product.template,lot_required:"
 msgid "The type of location for which lot is required"
 msgstr ""
 
+msgctxt "help:stock.lots_by_location.context,forecast_date:"
+msgid ""
+"Allow to compute expected stock quantities for this date.\n"
+"* An empty value is an infinite date in the future.\n"
+"* A date in the past will provide historical values."
+msgstr ""
+
 msgctxt "model:ir.action,name:act_lot_form"
 msgid "Lots"
-msgstr ""
+msgstr "Lots"
+
+msgctxt "model:ir.action,name:act_lots_by_locations"
+msgid "Lot"
+msgstr "Lot"
 
 msgctxt "model:ir.action,name:act_move_form_relate_lot"
 msgid "Moves"
-msgstr ""
+msgstr "Moves"
 
 msgctxt "model:ir.ui.menu,name:menu_lot_form"
 msgid "Lots"
-msgstr ""
+msgstr "Lots"
 
 msgctxt "model:product.template-stock.lot.type,name:"
 msgid "Template - Stock Lot Type"
@@ -208,44 +234,33 @@ msgstr ""
 
 msgctxt "model:stock.lot.type,name:type_customer"
 msgid "Customer"
-msgstr ""
+msgstr "Customer"
 
 msgctxt "model:stock.lot.type,name:type_lost_found"
 msgid "Lost and Found"
-msgstr ""
+msgstr "Lost and Found"
 
 msgctxt "model:stock.lot.type,name:type_production"
 msgid "Production"
-msgstr ""
+msgstr "Production"
 
 msgctxt "model:stock.lot.type,name:type_storage"
 msgid "Storage"
-msgstr ""
+msgstr "Storage"
 
 msgctxt "model:stock.lot.type,name:type_supplier"
 msgid "Supplier"
+msgstr "Supplier"
+
+msgctxt "model:stock.lots_by_location.context,name:"
+msgid "Lot by Location"
 msgstr ""
 
 msgctxt "model:stock.period.cache.lot,name:"
 msgid "Stock Period Cache per Lot"
 msgstr ""
 
+#, fuzzy
 msgctxt "view:product.template:"
 msgid "Lots"
-msgstr ""
-
-msgctxt "view:stock.lot:"
-msgid "Lot"
-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 ""
+msgstr "Lots"
diff --git a/locale/ru_RU.po b/locale/lo.po
similarity index 68%
copy from locale/ru_RU.po
copy to locale/lo.po
index 958e18a..7f0b727 100644
--- a/locale/ru_RU.po
+++ b/locale/lo.po
@@ -17,42 +17,42 @@ msgstr ""
 #, fuzzy
 msgctxt "field:product.template-stock.lot.type,create_date:"
 msgid "Create Date"
-msgstr "Дата создания"
+msgstr "ສ້າງວັນທີ"
 
 #, fuzzy
 msgctxt "field:product.template-stock.lot.type,create_uid:"
 msgid "Create User"
-msgstr "Создано пользователем"
+msgstr "ສ້າງຜູ້ໃຊ້ງານ"
 
 #, fuzzy
 msgctxt "field:product.template-stock.lot.type,id:"
 msgid "ID"
-msgstr "ID"
+msgstr "ເລດລຳດັບ"
 
 #, fuzzy
 msgctxt "field:product.template-stock.lot.type,rec_name:"
 msgid "Name"
-msgstr "Наименование"
+msgstr "ຊື່"
 
 #, fuzzy
 msgctxt "field:product.template-stock.lot.type,template:"
 msgid "Template"
-msgstr "Шаблон"
+msgstr "ຮ່າງແບບ"
 
 #, fuzzy
 msgctxt "field:product.template-stock.lot.type,type:"
 msgid "Type"
-msgstr "Тип"
+msgstr "ຮູບແບບ"
 
 #, fuzzy
 msgctxt "field:product.template-stock.lot.type,write_date:"
 msgid "Write Date"
-msgstr "Дата изменения"
+msgstr "ວັນທີບັນທຶກ"
 
 #, fuzzy
 msgctxt "field:product.template-stock.lot.type,write_uid:"
 msgid "Write User"
-msgstr "Изменено пользователем"
+msgstr "ສ້າງຜູ້ໃຊ້"
 
 msgctxt "field:stock.inventory.line,lot:"
 msgid "Lot"
@@ -61,92 +61,104 @@ msgstr ""
 #, fuzzy
 msgctxt "field:stock.lot,create_date:"
 msgid "Create Date"
-msgstr "Дата создания"
+msgstr "ສ້າງວັນທີ"
 
 #, fuzzy
 msgctxt "field:stock.lot,create_uid:"
 msgid "Create User"
-msgstr "Создано пользователем"
+msgstr "ສ້າງຜູ້ໃຊ້ງານ"
 
-#, fuzzy
 msgctxt "field:stock.lot,forecast_quantity:"
 msgid "Forecast Quantity"
-msgstr "Прогноз количества"
+msgstr ""
 
 #, fuzzy
 msgctxt "field:stock.lot,id:"
 msgid "ID"
-msgstr "ID"
+msgstr "ເລດລຳດັບ"
 
 #, fuzzy
 msgctxt "field:stock.lot,number:"
 msgid "Number"
-msgstr "Номер"
+msgstr "ເລກທີ"
 
 #, fuzzy
 msgctxt "field:stock.lot,product:"
 msgid "Product"
-msgstr "Товарно материальные ценности (ТМЦ)"
+msgstr "ຜະລິດຕະພັນ"
 
 #, fuzzy
 msgctxt "field:stock.lot,quantity:"
 msgid "Quantity"
-msgstr "Кол-во"
+msgstr "ຈຳນວນ"
 
 #, fuzzy
 msgctxt "field:stock.lot,rec_name:"
 msgid "Name"
-msgstr "Наименование"
+msgstr "ຊື່"
 
 #, fuzzy
 msgctxt "field:stock.lot,write_date:"
 msgid "Write Date"
-msgstr "Дата изменения"
+msgstr "ວັນທີບັນທຶກ"
 
 #, fuzzy
 msgctxt "field:stock.lot,write_uid:"
 msgid "Write User"
-msgstr "Изменено пользователем"
+msgstr "ສ້າງຜູ້ໃຊ້"
 
 #, fuzzy
 msgctxt "field:stock.lot.type,code:"
 msgid "Code"
-msgstr "Код страны"
+msgstr "ລະຫັດແຂວງ"
 
 #, fuzzy
 msgctxt "field:stock.lot.type,create_date:"
 msgid "Create Date"
-msgstr "Дата создания"
+msgstr "ສ້າງວັນທີ"
 
 #, fuzzy
 msgctxt "field:stock.lot.type,create_uid:"
 msgid "Create User"
-msgstr "Создано пользователем"
+msgstr "ສ້າງຜູ້ໃຊ້ງານ"
 
 #, fuzzy
 msgctxt "field:stock.lot.type,id:"
 msgid "ID"
-msgstr "ID"
+msgstr "ເລດລຳດັບ"
 
 #, fuzzy
 msgctxt "field:stock.lot.type,name:"
 msgid "Name"
-msgstr "Наименование"
+msgstr "ຊື່"
 
 #, fuzzy
 msgctxt "field:stock.lot.type,rec_name:"
 msgid "Name"
-msgstr "Наименование"
+msgstr "ຊື່"
 
 #, fuzzy
 msgctxt "field:stock.lot.type,write_date:"
 msgid "Write Date"
-msgstr "Дата изменения"
+msgstr "ວັນທີບັນທຶກ"
 
 #, fuzzy
 msgctxt "field:stock.lot.type,write_uid:"
 msgid "Write User"
-msgstr "Изменено пользователем"
+msgstr "ສ້າງຜູ້ໃຊ້"
+
+msgctxt "field:stock.lots_by_location.context,forecast_date:"
+msgid "At Date"
+msgstr ""
+
+#, fuzzy
+msgctxt "field:stock.lots_by_location.context,id:"
+msgid "ID"
+msgstr "ເລດລຳດັບ"
+
+msgctxt "field:stock.lots_by_location.context,stock_date_end:"
+msgid "At Date"
+msgstr ""
 
 msgctxt "field:stock.move,lot:"
 msgid "Lot"
@@ -159,27 +171,26 @@ msgstr ""
 #, fuzzy
 msgctxt "field:stock.period.cache.lot,create_date:"
 msgid "Create Date"
-msgstr "Дата создания"
+msgstr "ສ້າງວັນທີ"
 
 #, fuzzy
 msgctxt "field:stock.period.cache.lot,create_uid:"
 msgid "Create User"
-msgstr "Создано пользователем"
+msgstr "ສ້າງຜູ້ໃຊ້ງານ"
 
 #, fuzzy
 msgctxt "field:stock.period.cache.lot,id:"
 msgid "ID"
-msgstr "ID"
+msgstr "ເລດລຳດັບ"
 
-#, fuzzy
 msgctxt "field:stock.period.cache.lot,internal_quantity:"
 msgid "Internal Quantity"
-msgstr "Внутреннее количество"
+msgstr "ຈຳນວນພາຍໃນ"
 
 #, fuzzy
 msgctxt "field:stock.period.cache.lot,location:"
 msgid "Location"
-msgstr "Местоположение"
+msgstr "ບ່ອນຢູ່"
 
 msgctxt "field:stock.period.cache.lot,lot:"
 msgid "Lot"
@@ -188,27 +199,27 @@ msgstr ""
 #, fuzzy
 msgctxt "field:stock.period.cache.lot,period:"
 msgid "Period"
-msgstr "Период"
+msgstr "ໄລຍະ"
 
 #, fuzzy
 msgctxt "field:stock.period.cache.lot,product:"
 msgid "Product"
-msgstr "Товарно материальные ценности (ТМЦ)"
+msgstr "ຜະລິດຕະພັນ"
 
 #, fuzzy
 msgctxt "field:stock.period.cache.lot,rec_name:"
 msgid "Name"
-msgstr "Полное наименование"
+msgstr "ຊື່"
 
 #, fuzzy
 msgctxt "field:stock.period.cache.lot,write_date:"
 msgid "Write Date"
-msgstr "Дата изменения"
+msgstr "ວັນທີບັນທຶກ"
 
 #, fuzzy
 msgctxt "field:stock.period.cache.lot,write_uid:"
 msgid "Write User"
-msgstr "Изменено пользователем"
+msgstr "ສ້າງຜູ້ໃຊ້"
 
 msgctxt "help:product.product,lot_required:"
 msgid "The type of location for which lot is required"
@@ -218,14 +229,25 @@ msgctxt "help:product.template,lot_required:"
 msgid "The type of location for which lot is required"
 msgstr ""
 
+msgctxt "help:stock.lots_by_location.context,forecast_date:"
+msgid ""
+"Allow to compute expected stock quantities for this date.\n"
+"* An empty value is an infinite date in the future.\n"
+"* A date in the past will provide historical values."
+msgstr ""
+
 msgctxt "model:ir.action,name:act_lot_form"
 msgid "Lots"
 msgstr ""
 
+msgctxt "model:ir.action,name:act_lots_by_locations"
+msgid "Lot"
+msgstr ""
+
 #, fuzzy
 msgctxt "model:ir.action,name:act_move_form_relate_lot"
 msgid "Moves"
-msgstr "Перемещения"
+msgstr "ຕັດບັນຊີສາງ"
 
 msgctxt "model:ir.ui.menu,name:menu_lot_form"
 msgid "Lots"
@@ -243,30 +265,33 @@ msgctxt "model:stock.lot.type,name:"
 msgid "Stock Lot Type"
 msgstr ""
 
-#, fuzzy
 msgctxt "model:stock.lot.type,name:type_customer"
 msgid "Customer"
-msgstr "Заказчик"
+msgstr ""
 
 #, fuzzy
 msgctxt "model:stock.lot.type,name:type_lost_found"
 msgid "Lost and Found"
-msgstr "Утраченный и обретенный"
+msgstr "ລໍຮັບຈ່າຍ"
 
 #, fuzzy
 msgctxt "model:stock.lot.type,name:type_production"
 msgid "Production"
-msgstr "Производство"
+msgstr "ຜະລິດຕະພັນ"
 
 #, fuzzy
 msgctxt "model:stock.lot.type,name:type_storage"
 msgid "Storage"
-msgstr "Хранилище"
+msgstr "ຫ້ອງເກັບມ້ຽນຢາ"
 
 #, fuzzy
 msgctxt "model:stock.lot.type,name:type_supplier"
 msgid "Supplier"
-msgstr "Поставщик"
+msgstr "ຜູ້ສະໜອງ"
+
+msgctxt "model:stock.lots_by_location.context,name:"
+msgid "Lot by Location"
+msgstr ""
 
 msgctxt "model:stock.period.cache.lot,name:"
 msgid "Stock Period Cache per Lot"
@@ -275,19 +300,3 @@ msgstr ""
 msgctxt "view:product.template:"
 msgid "Lots"
 msgstr ""
-
-msgctxt "view:stock.lot:"
-msgid "Lot"
-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/lt_LT.po b/locale/lt.po
similarity index 86%
rename from locale/lt_LT.po
rename to locale/lt.po
index 06a06f4..971090e 100644
--- a/locale/lt_LT.po
+++ b/locale/lt.po
@@ -26,9 +26,10 @@ msgctxt "field:product.template-stock.lot.type,id:"
 msgid "ID"
 msgstr ""
 
+#, fuzzy
 msgctxt "field:product.template-stock.lot.type,rec_name:"
 msgid "Name"
-msgstr ""
+msgstr "Namu"
 
 msgctxt "field:product.template-stock.lot.type,template:"
 msgid "Template"
@@ -79,9 +80,10 @@ msgctxt "field:stock.lot,quantity:"
 msgid "Quantity"
 msgstr ""
 
+#, fuzzy
 msgctxt "field:stock.lot,rec_name:"
 msgid "Name"
-msgstr ""
+msgstr "Namu"
 
 msgctxt "field:stock.lot,write_date:"
 msgid "Write Date"
@@ -107,13 +109,15 @@ msgctxt "field:stock.lot.type,id:"
 msgid "ID"
 msgstr ""
 
+#, fuzzy
 msgctxt "field:stock.lot.type,name:"
 msgid "Name"
-msgstr ""
+msgstr "Namu"
 
+#, fuzzy
 msgctxt "field:stock.lot.type,rec_name:"
 msgid "Name"
-msgstr ""
+msgstr "Namu"
 
 msgctxt "field:stock.lot.type,write_date:"
 msgid "Write Date"
@@ -123,6 +127,18 @@ msgctxt "field:stock.lot.type,write_uid:"
 msgid "Write User"
 msgstr ""
 
+msgctxt "field:stock.lots_by_location.context,forecast_date:"
+msgid "At Date"
+msgstr ""
+
+msgctxt "field:stock.lots_by_location.context,id:"
+msgid "ID"
+msgstr ""
+
+msgctxt "field:stock.lots_by_location.context,stock_date_end:"
+msgid "At Date"
+msgstr ""
+
 #, fuzzy
 msgctxt "field:stock.move,lot:"
 msgid "Lot"
@@ -165,9 +181,10 @@ msgctxt "field:stock.period.cache.lot,product:"
 msgid "Product"
 msgstr ""
 
+#, fuzzy
 msgctxt "field:stock.period.cache.lot,rec_name:"
 msgid "Name"
-msgstr ""
+msgstr "Namu"
 
 msgctxt "field:stock.period.cache.lot,write_date:"
 msgid "Write Date"
@@ -185,11 +202,23 @@ msgctxt "help:product.template,lot_required:"
 msgid "The type of location for which lot is required"
 msgstr ""
 
+msgctxt "help:stock.lots_by_location.context,forecast_date:"
+msgid ""
+"Allow to compute expected stock quantities for this date.\n"
+"* An empty value is an infinite date in the future.\n"
+"* A date in the past will provide historical values."
+msgstr ""
+
 #, fuzzy
 msgctxt "model:ir.action,name:act_lot_form"
 msgid "Lots"
 msgstr "Lo"
 
+#, fuzzy
+msgctxt "model:ir.action,name:act_lots_by_locations"
+msgid "Lot"
+msgstr "Lo"
+
 msgctxt "model:ir.action,name:act_move_form_relate_lot"
 msgid "Moves"
 msgstr ""
@@ -231,6 +260,10 @@ msgctxt "model:stock.lot.type,name:type_supplier"
 msgid "Supplier"
 msgstr ""
 
+msgctxt "model:stock.lots_by_location.context,name:"
+msgid "Lot by Location"
+msgstr ""
+
 msgctxt "model:stock.period.cache.lot,name:"
 msgid "Stock Period Cache per Lot"
 msgstr ""
@@ -249,11 +282,3 @@ msgstr "Lo"
 msgctxt "view:stock.lot:"
 msgid "Lots"
 msgstr "Lo"
-
-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/nl_NL.po b/locale/nl.po
similarity index 80%
rename from locale/nl_NL.po
rename to locale/nl.po
index 8d95b0d..89c2f5f 100644
--- a/locale/nl_NL.po
+++ b/locale/nl.po
@@ -14,17 +14,20 @@ msgctxt "field:product.template,lot_required:"
 msgid "Lot Required"
 msgstr ""
 
+#, fuzzy
 msgctxt "field:product.template-stock.lot.type,create_date:"
 msgid "Create Date"
-msgstr ""
+msgstr "Datum"
 
+#, fuzzy
 msgctxt "field:product.template-stock.lot.type,create_uid:"
 msgid "Create User"
-msgstr ""
+msgstr "Gebruiker"
 
+#, fuzzy
 msgctxt "field:product.template-stock.lot.type,id:"
 msgid "ID"
-msgstr ""
+msgstr "ID"
 
 #, fuzzy
 msgctxt "field:product.template-stock.lot.type,rec_name:"
@@ -41,34 +44,39 @@ msgctxt "field:product.template-stock.lot.type,type:"
 msgid "Type"
 msgstr "Type"
 
+#, fuzzy
 msgctxt "field:product.template-stock.lot.type,write_date:"
 msgid "Write Date"
-msgstr ""
+msgstr "Schrijfdatum"
 
+#, fuzzy
 msgctxt "field:product.template-stock.lot.type,write_uid:"
 msgid "Write User"
-msgstr ""
+msgstr "Gebruiker"
 
 #, fuzzy
 msgctxt "field:stock.inventory.line,lot:"
 msgid "Lot"
 msgstr "Lot"
 
+#, fuzzy
 msgctxt "field:stock.lot,create_date:"
 msgid "Create Date"
-msgstr ""
+msgstr "Datum"
 
+#, fuzzy
 msgctxt "field:stock.lot,create_uid:"
 msgid "Create User"
-msgstr ""
+msgstr "Gebruiker"
 
 msgctxt "field:stock.lot,forecast_quantity:"
 msgid "Forecast Quantity"
 msgstr ""
 
+#, fuzzy
 msgctxt "field:stock.lot,id:"
 msgid "ID"
-msgstr ""
+msgstr "ID"
 
 #, fuzzy
 msgctxt "field:stock.lot,number:"
@@ -90,30 +98,35 @@ msgctxt "field:stock.lot,rec_name:"
 msgid "Name"
 msgstr "Naam bijlage"
 
+#, fuzzy
 msgctxt "field:stock.lot,write_date:"
 msgid "Write Date"
-msgstr ""
+msgstr "Schrijfdatum"
 
+#, fuzzy
 msgctxt "field:stock.lot,write_uid:"
 msgid "Write User"
-msgstr ""
+msgstr "Gebruiker"
 
 #, fuzzy
 msgctxt "field:stock.lot.type,code:"
 msgid "Code"
 msgstr "Code"
 
+#, fuzzy
 msgctxt "field:stock.lot.type,create_date:"
 msgid "Create Date"
-msgstr ""
+msgstr "Datum"
 
+#, fuzzy
 msgctxt "field:stock.lot.type,create_uid:"
 msgid "Create User"
-msgstr ""
+msgstr "Gebruiker"
 
+#, fuzzy
 msgctxt "field:stock.lot.type,id:"
 msgid "ID"
-msgstr ""
+msgstr "ID"
 
 #, fuzzy
 msgctxt "field:stock.lot.type,name:"
@@ -125,12 +138,27 @@ msgctxt "field:stock.lot.type,rec_name:"
 msgid "Name"
 msgstr "Naam bijlage"
 
+#, fuzzy
 msgctxt "field:stock.lot.type,write_date:"
 msgid "Write Date"
-msgstr ""
+msgstr "Schrijfdatum"
 
+#, fuzzy
 msgctxt "field:stock.lot.type,write_uid:"
 msgid "Write User"
+msgstr "Gebruiker"
+
+msgctxt "field:stock.lots_by_location.context,forecast_date:"
+msgid "At Date"
+msgstr ""
+
+#, fuzzy
+msgctxt "field:stock.lots_by_location.context,id:"
+msgid "ID"
+msgstr "ID"
+
+msgctxt "field:stock.lots_by_location.context,stock_date_end:"
+msgid "At Date"
 msgstr ""
 
 #, fuzzy
@@ -142,17 +170,20 @@ msgctxt "field:stock.period,lot_caches:"
 msgid "Lot Caches"
 msgstr ""
 
+#, fuzzy
 msgctxt "field:stock.period.cache.lot,create_date:"
 msgid "Create Date"
-msgstr ""
+msgstr "Datum"
 
+#, fuzzy
 msgctxt "field:stock.period.cache.lot,create_uid:"
 msgid "Create User"
-msgstr ""
+msgstr "Gebruiker"
 
+#, fuzzy
 msgctxt "field:stock.period.cache.lot,id:"
 msgid "ID"
-msgstr ""
+msgstr "ID"
 
 msgctxt "field:stock.period.cache.lot,internal_quantity:"
 msgid "Internal Quantity"
@@ -182,13 +213,15 @@ msgctxt "field:stock.period.cache.lot,rec_name:"
 msgid "Name"
 msgstr "Naam bijlage"
 
+#, fuzzy
 msgctxt "field:stock.period.cache.lot,write_date:"
 msgid "Write Date"
-msgstr ""
+msgstr "Schrijfdatum"
 
+#, fuzzy
 msgctxt "field:stock.period.cache.lot,write_uid:"
 msgid "Write User"
-msgstr ""
+msgstr "Gebruiker"
 
 msgctxt "help:product.product,lot_required:"
 msgid "The type of location for which lot is required"
@@ -198,12 +231,24 @@ msgctxt "help:product.template,lot_required:"
 msgid "The type of location for which lot is required"
 msgstr ""
 
+msgctxt "help:stock.lots_by_location.context,forecast_date:"
+msgid ""
+"Allow to compute expected stock quantities for this date.\n"
+"* An empty value is an infinite date in the future.\n"
+"* A date in the past will provide historical values."
+msgstr ""
+
 #, fuzzy
 msgctxt "model:ir.action,name:act_lot_form"
 msgid "Lots"
 msgstr "Lot"
 
 #, fuzzy
+msgctxt "model:ir.action,name:act_lots_by_locations"
+msgid "Lot"
+msgstr "Lot"
+
+#, fuzzy
 msgctxt "model:ir.action,name:act_move_form_relate_lot"
 msgid "Moves"
 msgstr "Boekingen"
@@ -247,6 +292,10 @@ msgctxt "model:stock.lot.type,name:type_supplier"
 msgid "Supplier"
 msgstr "Leverancier"
 
+msgctxt "model:stock.lots_by_location.context,name:"
+msgid "Lot by Location"
+msgstr ""
+
 msgctxt "model:stock.period.cache.lot,name:"
 msgid "Stock Period Cache per Lot"
 msgstr ""
@@ -265,11 +314,3 @@ msgstr "Lot"
 msgctxt "view:stock.lot:"
 msgid "Lots"
 msgstr "Lot"
-
-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/cs_CZ.po b/locale/pl.po
similarity index 85%
rename from locale/cs_CZ.po
rename to locale/pl.po
index 928dbac..5b92d24 100644
--- a/locale/cs_CZ.po
+++ b/locale/pl.po
@@ -123,6 +123,18 @@ msgctxt "field:stock.lot.type,write_uid:"
 msgid "Write User"
 msgstr ""
 
+msgctxt "field:stock.lots_by_location.context,forecast_date:"
+msgid "At Date"
+msgstr ""
+
+msgctxt "field:stock.lots_by_location.context,id:"
+msgid "ID"
+msgstr ""
+
+msgctxt "field:stock.lots_by_location.context,stock_date_end:"
+msgid "At Date"
+msgstr ""
+
 #, fuzzy
 msgctxt "field:stock.move,lot:"
 msgid "Lot"
@@ -185,19 +197,28 @@ msgctxt "help:product.template,lot_required:"
 msgid "The type of location for which lot is required"
 msgstr ""
 
-#, fuzzy
+msgctxt "help:stock.lots_by_location.context,forecast_date:"
+msgid ""
+"Allow to compute expected stock quantities for this date.\n"
+"* An empty value is an infinite date in the future.\n"
+"* A date in the past will provide historical values."
+msgstr ""
+
 msgctxt "model:ir.action,name:act_lot_form"
 msgid "Lots"
+msgstr "Lots"
+
+msgctxt "model:ir.action,name:act_lots_by_locations"
+msgid "Lot"
 msgstr "Lot"
 
 msgctxt "model:ir.action,name:act_move_form_relate_lot"
 msgid "Moves"
-msgstr ""
+msgstr "Moves"
 
-#, fuzzy
 msgctxt "model:ir.ui.menu,name:menu_lot_form"
 msgid "Lots"
-msgstr "Lot"
+msgstr "Lots"
 
 msgctxt "model:product.template-stock.lot.type,name:"
 msgid "Template - Stock Lot Type"
@@ -213,22 +234,26 @@ msgstr ""
 
 msgctxt "model:stock.lot.type,name:type_customer"
 msgid "Customer"
-msgstr ""
+msgstr "Customer"
 
 msgctxt "model:stock.lot.type,name:type_lost_found"
 msgid "Lost and Found"
-msgstr ""
+msgstr "Lost and Found"
 
 msgctxt "model:stock.lot.type,name:type_production"
 msgid "Production"
-msgstr ""
+msgstr "Production"
 
 msgctxt "model:stock.lot.type,name:type_storage"
 msgid "Storage"
-msgstr ""
+msgstr "Storage"
 
 msgctxt "model:stock.lot.type,name:type_supplier"
 msgid "Supplier"
+msgstr "Supplier"
+
+msgctxt "model:stock.lots_by_location.context,name:"
+msgid "Lot by Location"
 msgstr ""
 
 msgctxt "model:stock.period.cache.lot,name:"
@@ -238,22 +263,4 @@ msgstr ""
 #, fuzzy
 msgctxt "view:product.template:"
 msgid "Lots"
-msgstr "Lot"
-
-#, fuzzy
-msgctxt "view:stock.lot:"
-msgid "Lot"
-msgstr "Lot"
-
-#, fuzzy
-msgctxt "view:stock.lot:"
-msgid "Lots"
-msgstr "Lot"
-
-msgctxt "view:stock.period.cache.lot:"
-msgid "Period Lot Cache"
-msgstr ""
-
-msgctxt "view:stock.period.cache.lot:"
-msgid "Period Lot Caches"
-msgstr ""
+msgstr "Lots"
diff --git a/locale/pt_BR.po b/locale/pt_BR.po
index 94a7205..7690e93 100644
--- a/locale/pt_BR.po
+++ b/locale/pt_BR.po
@@ -123,6 +123,19 @@ msgctxt "field:stock.lot.type,write_uid:"
 msgid "Write User"
 msgstr "Editado por"
 
+msgctxt "field:stock.lots_by_location.context,forecast_date:"
+msgid "At Date"
+msgstr ""
+
+#, fuzzy
+msgctxt "field:stock.lots_by_location.context,id:"
+msgid "ID"
+msgstr "ID"
+
+msgctxt "field:stock.lots_by_location.context,stock_date_end:"
+msgid "At Date"
+msgstr ""
+
 msgctxt "field:stock.move,lot:"
 msgid "Lot"
 msgstr "Lote"
@@ -184,10 +197,22 @@ msgctxt "help:product.template,lot_required:"
 msgid "The type of location for which lot is required"
 msgstr "O tipo de localização para a qual o lote é obrigatório"
 
+msgctxt "help:stock.lots_by_location.context,forecast_date:"
+msgid ""
+"Allow to compute expected stock quantities for this date.\n"
+"* An empty value is an infinite date in the future.\n"
+"* A date in the past will provide historical values."
+msgstr ""
+
 msgctxt "model:ir.action,name:act_lot_form"
 msgid "Lots"
 msgstr "Lotes"
 
+#, fuzzy
+msgctxt "model:ir.action,name:act_lots_by_locations"
+msgid "Lot"
+msgstr "Lote"
+
 msgctxt "model:ir.action,name:act_move_form_relate_lot"
 msgid "Moves"
 msgstr "Movimentações"
@@ -228,6 +253,10 @@ msgctxt "model:stock.lot.type,name:type_supplier"
 msgid "Supplier"
 msgstr "Fornecedor"
 
+msgctxt "model:stock.lots_by_location.context,name:"
+msgid "Lot by Location"
+msgstr ""
+
 msgctxt "model:stock.period.cache.lot,name:"
 msgid "Stock Period Cache per Lot"
 msgstr "Período de estoque pré-calculado por lote"
diff --git a/locale/ru_RU.po b/locale/ru.po
similarity index 90%
rename from locale/ru_RU.po
rename to locale/ru.po
index 958e18a..931e18f 100644
--- a/locale/ru_RU.po
+++ b/locale/ru.po
@@ -148,6 +148,19 @@ msgctxt "field:stock.lot.type,write_uid:"
 msgid "Write User"
 msgstr "Изменено пользователем"
 
+msgctxt "field:stock.lots_by_location.context,forecast_date:"
+msgid "At Date"
+msgstr ""
+
+#, fuzzy
+msgctxt "field:stock.lots_by_location.context,id:"
+msgid "ID"
+msgstr "ID"
+
+msgctxt "field:stock.lots_by_location.context,stock_date_end:"
+msgid "At Date"
+msgstr ""
+
 msgctxt "field:stock.move,lot:"
 msgid "Lot"
 msgstr ""
@@ -218,10 +231,21 @@ msgctxt "help:product.template,lot_required:"
 msgid "The type of location for which lot is required"
 msgstr ""
 
+msgctxt "help:stock.lots_by_location.context,forecast_date:"
+msgid ""
+"Allow to compute expected stock quantities for this date.\n"
+"* An empty value is an infinite date in the future.\n"
+"* A date in the past will provide historical values."
+msgstr ""
+
 msgctxt "model:ir.action,name:act_lot_form"
 msgid "Lots"
 msgstr ""
 
+msgctxt "model:ir.action,name:act_lots_by_locations"
+msgid "Lot"
+msgstr ""
+
 #, fuzzy
 msgctxt "model:ir.action,name:act_move_form_relate_lot"
 msgid "Moves"
@@ -268,6 +292,10 @@ msgctxt "model:stock.lot.type,name:type_supplier"
 msgid "Supplier"
 msgstr "Поставщик"
 
+msgctxt "model:stock.lots_by_location.context,name:"
+msgid "Lot by Location"
+msgstr ""
+
 msgctxt "model:stock.period.cache.lot,name:"
 msgid "Stock Period Cache per Lot"
 msgstr ""
@@ -275,19 +303,3 @@ msgstr ""
 msgctxt "view:product.template:"
 msgid "Lots"
 msgstr ""
-
-msgctxt "view:stock.lot:"
-msgid "Lot"
-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/sl_SI.po b/locale/sl.po
similarity index 88%
rename from locale/sl_SI.po
rename to locale/sl.po
index cd55778..6e8a8cc 100644
--- a/locale/sl_SI.po
+++ b/locale/sl.po
@@ -122,6 +122,19 @@ msgctxt "field:stock.lot.type,write_uid:"
 msgid "Write User"
 msgstr "Zapisal"
 
+msgctxt "field:stock.lots_by_location.context,forecast_date:"
+msgid "At Date"
+msgstr ""
+
+#, fuzzy
+msgctxt "field:stock.lots_by_location.context,id:"
+msgid "ID"
+msgstr "ID"
+
+msgctxt "field:stock.lots_by_location.context,stock_date_end:"
+msgid "At Date"
+msgstr ""
+
 msgctxt "field:stock.move,lot:"
 msgid "Lot"
 msgstr "Serija"
@@ -182,10 +195,22 @@ msgctxt "help:product.template,lot_required:"
 msgid "The type of location for which lot is required"
 msgstr "Tip lokacije, za katero je serija obvezna"
 
+msgctxt "help:stock.lots_by_location.context,forecast_date:"
+msgid ""
+"Allow to compute expected stock quantities for this date.\n"
+"* An empty value is an infinite date in the future.\n"
+"* A date in the past will provide historical values."
+msgstr ""
+
 msgctxt "model:ir.action,name:act_lot_form"
 msgid "Lots"
 msgstr "Serije"
 
+#, fuzzy
+msgctxt "model:ir.action,name:act_lots_by_locations"
+msgid "Lot"
+msgstr "Serija"
+
 msgctxt "model:ir.action,name:act_move_form_relate_lot"
 msgid "Moves"
 msgstr "Promet"
@@ -226,6 +251,10 @@ msgctxt "model:stock.lot.type,name:type_supplier"
 msgid "Supplier"
 msgstr "Dobavitelj"
 
+msgctxt "model:stock.lots_by_location.context,name:"
+msgid "Lot by Location"
+msgstr ""
+
 msgctxt "model:stock.period.cache.lot,name:"
 msgid "Stock Period Cache per Lot"
 msgstr "Predpomnjena obdobja po serijah"
diff --git a/locale/zh_CN.po b/locale/zh_CN.po
index 26f32e9..be9e600 100644
--- a/locale/zh_CN.po
+++ b/locale/zh_CN.po
@@ -14,57 +14,68 @@ msgctxt "field:product.template,lot_required:"
 msgid "Lot Required"
 msgstr ""
 
+#, fuzzy
 msgctxt "field:product.template-stock.lot.type,create_date:"
 msgid "Create Date"
-msgstr ""
+msgstr "创建日期:"
 
+#, fuzzy
 msgctxt "field:product.template-stock.lot.type,create_uid:"
 msgid "Create User"
-msgstr ""
+msgstr "添加用户"
 
+#, fuzzy
 msgctxt "field:product.template-stock.lot.type,id:"
 msgid "ID"
-msgstr ""
+msgstr "编号"
 
+#, fuzzy
 msgctxt "field:product.template-stock.lot.type,rec_name:"
 msgid "Name"
-msgstr ""
+msgstr "纳木"
 
 msgctxt "field:product.template-stock.lot.type,template:"
 msgid "Template"
 msgstr ""
 
+#, fuzzy
 msgctxt "field:product.template-stock.lot.type,type:"
 msgid "Type"
-msgstr ""
+msgstr "类型"
 
+#, fuzzy
 msgctxt "field:product.template-stock.lot.type,write_date:"
 msgid "Write Date"
-msgstr ""
+msgstr "写入日期"
 
+#, fuzzy
 msgctxt "field:product.template-stock.lot.type,write_uid:"
 msgid "Write User"
-msgstr ""
+msgstr "写入帐号"
 
+#, fuzzy
 msgctxt "field:stock.inventory.line,lot:"
 msgid "Lot"
-msgstr ""
+msgstr "洛特省"
 
+#, fuzzy
 msgctxt "field:stock.lot,create_date:"
 msgid "Create Date"
-msgstr ""
+msgstr "创建日期:"
 
+#, fuzzy
 msgctxt "field:stock.lot,create_uid:"
 msgid "Create User"
-msgstr ""
+msgstr "添加用户"
 
 msgctxt "field:stock.lot,forecast_quantity:"
 msgid "Forecast Quantity"
 msgstr ""
 
+#, fuzzy
 msgctxt "field:stock.lot,id:"
 msgid "ID"
-msgstr ""
+msgstr "编号"
 
 msgctxt "field:stock.lot,number:"
 msgid "Number"
@@ -78,69 +89,97 @@ msgctxt "field:stock.lot,quantity:"
 msgid "Quantity"
 msgstr ""
 
+#, fuzzy
 msgctxt "field:stock.lot,rec_name:"
 msgid "Name"
-msgstr ""
+msgstr "纳木"
 
+#, fuzzy
 msgctxt "field:stock.lot,write_date:"
 msgid "Write Date"
-msgstr ""
+msgstr "写入日期"
 
+#, fuzzy
 msgctxt "field:stock.lot,write_uid:"
 msgid "Write User"
-msgstr ""
+msgstr "写入帐号"
 
+#, fuzzy
 msgctxt "field:stock.lot.type,code:"
 msgid "Code"
-msgstr ""
+msgstr "语言编码"
 
+#, fuzzy
 msgctxt "field:stock.lot.type,create_date:"
 msgid "Create Date"
-msgstr ""
+msgstr "创建日期:"
 
+#, fuzzy
 msgctxt "field:stock.lot.type,create_uid:"
 msgid "Create User"
-msgstr ""
+msgstr "添加用户"
 
+#, fuzzy
 msgctxt "field:stock.lot.type,id:"
 msgid "ID"
-msgstr ""
+msgstr "编号"
 
+#, fuzzy
 msgctxt "field:stock.lot.type,name:"
 msgid "Name"
-msgstr ""
+msgstr "纳木"
 
+#, fuzzy
 msgctxt "field:stock.lot.type,rec_name:"
 msgid "Name"
-msgstr ""
+msgstr "纳木"
 
+#, fuzzy
 msgctxt "field:stock.lot.type,write_date:"
 msgid "Write Date"
-msgstr ""
+msgstr "写入日期"
 
+#, fuzzy
 msgctxt "field:stock.lot.type,write_uid:"
 msgid "Write User"
+msgstr "写入帐号"
+
+msgctxt "field:stock.lots_by_location.context,forecast_date:"
+msgid "At Date"
+msgstr ""
+
+#, fuzzy
+msgctxt "field:stock.lots_by_location.context,id:"
+msgid "ID"
+msgstr "编号"
+
+msgctxt "field:stock.lots_by_location.context,stock_date_end:"
+msgid "At Date"
 msgstr ""
 
+#, fuzzy
 msgctxt "field:stock.move,lot:"
 msgid "Lot"
-msgstr ""
+msgstr "洛特省"
 
 msgctxt "field:stock.period,lot_caches:"
 msgid "Lot Caches"
 msgstr ""
 
+#, fuzzy
 msgctxt "field:stock.period.cache.lot,create_date:"
 msgid "Create Date"
-msgstr ""
+msgstr "创建日期:"
 
+#, fuzzy
 msgctxt "field:stock.period.cache.lot,create_uid:"
 msgid "Create User"
-msgstr ""
+msgstr "添加用户"
 
+#, fuzzy
 msgctxt "field:stock.period.cache.lot,id:"
 msgid "ID"
-msgstr ""
+msgstr "编号"
 
 msgctxt "field:stock.period.cache.lot,internal_quantity:"
 msgid "Internal Quantity"
@@ -150,9 +189,10 @@ msgctxt "field:stock.period.cache.lot,location:"
 msgid "Location"
 msgstr ""
 
+#, fuzzy
 msgctxt "field:stock.period.cache.lot,lot:"
 msgid "Lot"
-msgstr ""
+msgstr "洛特省"
 
 msgctxt "field:stock.period.cache.lot,period:"
 msgid "Period"
@@ -162,17 +202,20 @@ msgctxt "field:stock.period.cache.lot,product:"
 msgid "Product"
 msgstr ""
 
+#, fuzzy
 msgctxt "field:stock.period.cache.lot,rec_name:"
 msgid "Name"
-msgstr ""
+msgstr "纳木"
 
+#, fuzzy
 msgctxt "field:stock.period.cache.lot,write_date:"
 msgid "Write Date"
-msgstr ""
+msgstr "写入日期"
 
+#, fuzzy
 msgctxt "field:stock.period.cache.lot,write_uid:"
 msgid "Write User"
-msgstr ""
+msgstr "写入帐号"
 
 msgctxt "help:product.product,lot_required:"
 msgid "The type of location for which lot is required"
@@ -182,17 +225,31 @@ msgctxt "help:product.template,lot_required:"
 msgid "The type of location for which lot is required"
 msgstr ""
 
+msgctxt "help:stock.lots_by_location.context,forecast_date:"
+msgid ""
+"Allow to compute expected stock quantities for this date.\n"
+"* An empty value is an infinite date in the future.\n"
+"* A date in the past will provide historical values."
+msgstr ""
+
+#, fuzzy
 msgctxt "model:ir.action,name:act_lot_form"
 msgid "Lots"
-msgstr ""
+msgstr "洛特省"
+
+#, fuzzy
+msgctxt "model:ir.action,name:act_lots_by_locations"
+msgid "Lot"
+msgstr "洛特省"
 
 msgctxt "model:ir.action,name:act_move_form_relate_lot"
 msgid "Moves"
 msgstr ""
 
+#, fuzzy
 msgctxt "model:ir.ui.menu,name:menu_lot_form"
 msgid "Lots"
-msgstr ""
+msgstr "洛特省"
 
 msgctxt "model:product.template-stock.lot.type,name:"
 msgid "Template - Stock Lot Type"
@@ -226,26 +283,20 @@ msgctxt "model:stock.lot.type,name:type_supplier"
 msgid "Supplier"
 msgstr ""
 
+msgctxt "model:stock.lots_by_location.context,name:"
+msgid "Lot by Location"
+msgstr ""
+
 msgctxt "model:stock.period.cache.lot,name:"
 msgid "Stock Period Cache per Lot"
 msgstr ""
 
+#, fuzzy
 msgctxt "view:product.template:"
 msgid "Lots"
-msgstr ""
+msgstr "洛特省"
 
+#, fuzzy
 msgctxt "view:stock.lot:"
 msgid "Lot"
-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 ""
+msgstr "洛特省"
diff --git a/setup.py b/setup.py
index 3dcc8e4..3b4ec7e 100644
--- a/setup.py
+++ b/setup.py
@@ -96,6 +96,7 @@ setup(name=name,
         'Natural Language :: German',
         'Natural Language :: Hungarian',
         'Natural Language :: Italian',
+        'Natural Language :: Polish',
         'Natural Language :: Portuguese (Brazilian)',
         'Natural Language :: Russian',
         'Natural Language :: Slovenian',
diff --git a/stock.py b/stock.py
index af13de7..04c9a8e 100644
--- a/stock.py
+++ b/stock.py
@@ -1,5 +1,8 @@
 # This file is part of Tryton.  The COPYRIGHT file at the top level of
 # this repository contains the full copyright notices and license terms.
+import datetime
+from collections import defaultdict
+
 from trytond.model import ModelView, ModelSQL, fields
 from trytond.pyson import Eval
 from trytond.pool import Pool, PoolMeta
@@ -7,9 +10,9 @@ from trytond.transaction import Transaction
 from trytond.modules.stock import StockMixin
 
 __all__ = ['Lot', 'LotType', 'Move', 'ShipmentIn', 'ShipmentOut',
-    'ShipmentOutReturn',
+    'LotByLocationContext', 'ShipmentOutReturn',
     'Period', 'PeriodCacheLot',
-    'Inventory', 'InventoryLine']
+    'Inventory', 'InventoryLine', 'LotByLocationContext']
 
 
 class Lot(ModelSQL, ModelView, StockMixin):
@@ -37,6 +40,29 @@ class Lot(ModelSQL, ModelView, StockMixin):
             grouping=('product', 'lot'))
 
 
+class LotByLocationContext(ModelView):
+    'Lot by Location'
+    __name__ = 'stock.lots_by_location.context'
+    forecast_date = fields.Date(
+        'At Date', help=('Allow to compute expected '
+            'stock quantities for this date.\n'
+            '* An empty value is an infinite date in the future.\n'
+            '* A date in the past will provide historical values.'))
+    stock_date_end = fields.Function(fields.Date('At Date'),
+        'on_change_with_stock_date_end')
+
+    @staticmethod
+    def default_forecast_date():
+        Date = Pool().get('ir.date')
+        return Date.today()
+
+    @fields.depends('forecast_date')
+    def on_change_with_stock_date_end(self, name=None):
+        if self.forecast_date is None:
+            return datetime.date.max
+        return self.forecast_date
+
+
 class LotType(ModelSQL, ModelView):
     "Stock Lot Type"
     __name__ = 'stock.lot.type'
@@ -102,11 +128,11 @@ class ShipmentOut:
         Move = pool.get('stock.move')
         super(ShipmentOut, cls)._sync_inventory_to_outgoing(
             shipments, create=create, write=write)
+        to_write = []
         for shipment in shipments:
-            outgoing_by_product = {}
+            outgoing_by_product = defaultdict(list)
             for move in shipment.outgoing_moves:
-                outgoing_by_product.setdefault(move.product.id,
-                    []).append(move)
+                outgoing_by_product[move.product.id].append(move)
             for move in shipment.inventory_moves:
                 if not move.lot:
                     continue
@@ -118,19 +144,19 @@ class ShipmentOut:
                     out_quantity = Uom.compute_qty(out_move.uom,
                         out_move.quantity, out_move.product.default_uom,
                         round=False)
+                    values = {}
                     if quantity < out_quantity:
                         outgoing_moves.extend(Move.copy([out_move], default={
                                     'quantity': out_move.uom.round(
                                         out_quantity - quantity),
                                     }))
-                        Move.write([out_move], {
-                                'quantity': out_move.uom.round(quantity),
-                                })
-                    Move.write([out_move], {
-                            'lot': move.lot.id,
-                            })
+                        values['quantity'] = out_move.uom.round(quantity)
+                    values['lot'] = move.lot.id
+                    to_write.extend(([out_move], values))
                     quantity -= out_quantity
                 assert move.uom.round(quantity) <= 0
+        if to_write:
+            Move.write(*to_write)
 
 
 class ShipmentOutReturn:
@@ -199,7 +225,10 @@ class InventoryLine:
         domain=[
             ('product', '=', Eval('product')),
             ],
-        depends=['product'])
+        states={
+            'readonly': Eval('inventory_state') != 'draft',
+            },
+        depends=['product', 'inventory_state'])
 
     @classmethod
     def __setup__(cls):
diff --git a/stock.xml b/stock.xml
index 5c144b3..8952c3f 100644
--- a/stock.xml
+++ b/stock.xml
@@ -14,6 +14,12 @@ this repository contains the full copyright notices and license terms. -->
             <field name="type">tree</field>
             <field name="name">lot_tree</field>
         </record>
+        <record model="ir.ui.view" id="lot_quantity_view_tree">
+            <field name="model">stock.lot</field>
+            <field name="type">tree</field>
+            <field name="priority" eval="20"/>
+            <field name="name">lot_quantity_tree</field>
+        </record>
 
         <record model="ir.action.act_window" id="act_lot_form">
             <field name="name">Lots</field>
@@ -48,12 +54,49 @@ this repository contains the full copyright notices and license terms. -->
             <field name="perm_delete" eval="True"/>
         </record>
 
+        <record model="ir.ui.view" id="lots_by_location_context_view_form">
+            <field name="model">stock.lots_by_location.context</field>
+            <field name="type">form</field>
+            <field name="name">lot_by_location_context_form</field>
+        </record>
+
+        <record model="ir.action.act_window" id="act_lots_by_locations">
+            <field name="name">Lot</field>
+            <field name="res_model">stock.lot</field>
+            <field name="context" eval="{'locations': Eval('active_ids')}"
+                pyson="1"/>
+            <field name="domain"
+                eval="['OR', ('quantity', '!=', 0.0), ('forecast_quantity', '!=', 0.0)]"
+                pyson="1"/>
+            <field name="context_model">stock.lots_by_location.context</field>
+        </record>
+        <record model="ir.action.act_window.view"
+                id="act_lots_by_locations_view1">
+            <field name="sequence" eval="10"/>
+            <field name="view" ref="lot_quantity_view_tree"/>
+            <field name="act_window" ref="act_lots_by_locations"/>
+        </record>
+        <record model="ir.action.act_window.view"
+                id="act_lots_by_locations_view2">
+            <field name="sequence" eval="20"/>
+            <field name="view" ref="lot_view_form"/>
+            <field name="act_window" ref="act_lots_by_locations"/>
+        </record>
+        <record model="ir.action.keyword"
+                id="act_products_by_locations_keyword2">
+            <field name="keyword">form_relate</field>
+            <field name="model">stock.location,-1</field>
+            <field name="action" ref="act_lots_by_locations"/>
+        </record>
+
         <record model="ir.action.act_window" id="act_move_form_relate_lot">
             <field name="name">Moves</field>
             <field name="res_model">stock.move</field>
             <field name="domain"
                 eval="[('lot', 'in', Eval('active_ids'))]" pyson="1"/>
-            <field name="order">[('effective_date', 'DESC'), ('planned_date', 'DESC')]</field>
+            <field name="order"
+                eval="[('effective_date', 'DESC'), ('planned_date', 'DESC')]"
+                pyson="1"/>
         </record>
         <record model="ir.action.keyword"
             id="act_move_form_relate_lot_keyword1">
diff --git a/tests/scenario_stock_lot_shipment_out.rst b/tests/scenario_stock_lot_shipment_out.rst
index 3a10256..b30d283 100644
--- a/tests/scenario_stock_lot_shipment_out.rst
+++ b/tests/scenario_stock_lot_shipment_out.rst
@@ -8,32 +8,20 @@ Imports::
     >>> from dateutil.relativedelta import relativedelta
     >>> from decimal import Decimal
     >>> from proteus import config, Model, Wizard
+    >>> from trytond.tests.tools import activate_modules
     >>> from trytond.modules.company.tests.tools import create_company, \
     ...     get_company
     >>> today = datetime.date.today()
 
-Create database::
-
-    >>> config = config.set_trytond()
-    >>> config.pool.test = True
-
 Install stock_lot Module::
 
-    >>> Module = Model.get('ir.module')
-    >>> module, = Module.find([('name', '=', 'stock_lot')])
-    >>> module.click('install')
-    >>> Wizard('ir.module.install_upgrade').execute('upgrade')
+    >>> config = activate_modules('stock_lot')
 
 Create company::
 
     >>> _ = create_company()
     >>> company = get_company()
 
-Reload the context::
-
-    >>> User = Model.get('res.user')
-    >>> config._context = User.get_preferences(True, config.context)
-
 Create customer::
 
     >>> Party = Model.get('party.party')
diff --git a/tests/test_stock_lot.py b/tests/test_stock_lot.py
index 78f466a..e9f1981 100644
--- a/tests/test_stock_lot.py
+++ b/tests/test_stock_lot.py
@@ -8,7 +8,7 @@ from decimal import Decimal
 
 import trytond.tests.test_tryton
 from trytond.tests.test_tryton import ModuleTestCase, with_transaction
-from trytond.tests.test_tryton import doctest_setup, doctest_teardown
+from trytond.tests.test_tryton import doctest_teardown
 from trytond.tests.test_tryton import doctest_checker
 from trytond.transaction import Transaction
 from trytond.pool import Pool
@@ -112,6 +112,7 @@ class StockLotTestCase(ModuleTestCase):
                     (storage.id, product.id, None): 3,
                     })
             with Transaction().set_context(locations=[storage.id]):
+                lot1, lot2 = Lot.browse([lot1, lot2])
                 self.assertEqual(lot1.quantity, 5)
                 self.assertEqual(lot2.quantity, 8)
 
@@ -228,7 +229,7 @@ def suite():
     suite.addTests(unittest.TestLoader().loadTestsFromTestCase(
             StockLotTestCase))
     suite.addTests(doctest.DocFileSuite('scenario_stock_lot_shipment_out.rst',
-        setUp=doctest_setup, tearDown=doctest_teardown, encoding='utf-8',
+            tearDown=doctest_teardown, encoding='utf-8',
             checker=doctest_checker,
             optionflags=doctest.REPORT_ONLY_FIRST_FAILURE))
     return suite
diff --git a/tryton.cfg b/tryton.cfg
index 3ad86d6..dfdab7d 100644
--- a/tryton.cfg
+++ b/tryton.cfg
@@ -1,5 +1,5 @@
 [tryton]
-version=4.0.2
+version=4.2.0
 depends:
     ir
     product
diff --git a/trytond_stock_lot.egg-info/PKG-INFO b/trytond_stock_lot.egg-info/PKG-INFO
index 4cae8b0..4dd8fce 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: 4.0.2
+Version: 4.2.0
 Summary: Tryton module for lot of products
 Home-page: http://www.tryton.org/
 Author: Tryton
 Author-email: issue_tracker at tryton.org
 License: GPL-3
-Download-URL: http://downloads.tryton.org/4.0/
+Download-URL: http://downloads.tryton.org/4.2/
 Description: trytond_stock_lot
         =================
         
@@ -63,6 +63,7 @@ Classifier: Natural Language :: French
 Classifier: Natural Language :: German
 Classifier: Natural Language :: Hungarian
 Classifier: Natural Language :: Italian
+Classifier: Natural Language :: Polish
 Classifier: Natural Language :: Portuguese (Brazilian)
 Classifier: Natural Language :: Russian
 Classifier: Natural Language :: Slovenian
diff --git a/trytond_stock_lot.egg-info/SOURCES.txt b/trytond_stock_lot.egg-info/SOURCES.txt
index eff7c3c..f796893 100644
--- a/trytond_stock_lot.egg-info/SOURCES.txt
+++ b/trytond_stock_lot.egg-info/SOURCES.txt
@@ -14,32 +14,32 @@ tryton.cfg
 ./stock.py
 ./stock.xml
 ./tryton.cfg
-./locale/bg_BG.po
-./locale/ca_ES.po
-./locale/cs_CZ.po
-./locale/de_DE.po
-./locale/es_AR.po
-./locale/es_CO.po
-./locale/es_EC.po
-./locale/es_ES.po
-./locale/es_MX.po
-./locale/fr_FR.po
+./locale/bg.po
+./locale/ca.po
+./locale/cs.po
+./locale/de.po
+./locale/es.po
+./locale/es_419.po
+./locale/fr.po
 ./locale/hu_HU.po
 ./locale/it_IT.po
 ./locale/ja_JP.po
-./locale/lo_LA.po
-./locale/lt_LT.po
-./locale/nl_NL.po
+./locale/lo.po
+./locale/lt.po
+./locale/nl.po
+./locale/pl.po
 ./locale/pt_BR.po
-./locale/ru_RU.po
-./locale/sl_SI.po
+./locale/ru.po
+./locale/sl.po
 ./locale/zh_CN.po
 ./tests/__init__.py
 ./tests/scenario_stock_lot_shipment_out.rst
 ./tests/test_stock_lot.py
 ./view/inventory_line_form.xml
 ./view/inventory_line_tree.xml
+./view/lot_by_location_context_form.xml
 ./view/lot_form.xml
+./view/lot_quantity_tree.xml
 ./view/lot_tree.xml
 ./view/move_form.xml
 ./view/move_tree.xml
@@ -47,25 +47,23 @@ tryton.cfg
 ./view/period_cache_lot_list.xml
 ./view/template_form.xml
 doc/index.rst
-locale/bg_BG.po
-locale/ca_ES.po
-locale/cs_CZ.po
-locale/de_DE.po
-locale/es_AR.po
-locale/es_CO.po
-locale/es_EC.po
-locale/es_ES.po
-locale/es_MX.po
-locale/fr_FR.po
+locale/bg.po
+locale/ca.po
+locale/cs.po
+locale/de.po
+locale/es.po
+locale/es_419.po
+locale/fr.po
 locale/hu_HU.po
 locale/it_IT.po
 locale/ja_JP.po
-locale/lo_LA.po
-locale/lt_LT.po
-locale/nl_NL.po
+locale/lo.po
+locale/lt.po
+locale/nl.po
+locale/pl.po
 locale/pt_BR.po
-locale/ru_RU.po
-locale/sl_SI.po
+locale/ru.po
+locale/sl.po
 locale/zh_CN.po
 tests/scenario_stock_lot_shipment_out.rst
 trytond_stock_lot.egg-info/PKG-INFO
@@ -77,7 +75,9 @@ 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_by_location_context_form.xml
 view/lot_form.xml
+view/lot_quantity_tree.xml
 view/lot_tree.xml
 view/move_form.xml
 view/move_tree.xml
diff --git a/trytond_stock_lot.egg-info/requires.txt b/trytond_stock_lot.egg-info/requires.txt
index e0484ff..0a18204 100644
--- a/trytond_stock_lot.egg-info/requires.txt
+++ b/trytond_stock_lot.egg-info/requires.txt
@@ -1,3 +1,3 @@
-trytond_product >= 4.0, < 4.1
-trytond_stock >= 4.0, < 4.1
-trytond >= 4.0, < 4.1
+trytond_product >= 4.2, < 4.3
+trytond_stock >= 4.2, < 4.3
+trytond >= 4.2, < 4.3
diff --git a/view/lot_form.xml b/view/lot_by_location_context_form.xml
similarity index 56%
copy from view/lot_form.xml
copy to view/lot_by_location_context_form.xml
index 4a57473..09aede2 100644
--- a/view/lot_form.xml
+++ b/view/lot_by_location_context_form.xml
@@ -1,9 +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. -->
-<form string="Lot">
-    <label name="number"/>
-    <field name="number"/>
-    <label name="product"/>
-    <field name="product"/>
+<form>
+    <label name="forecast_date"/>
+    <field name="forecast_date"/>
+    <field name="stock_date_end" invisible="1" colspan="4"/>
 </form>
diff --git a/view/lot_form.xml b/view/lot_form.xml
index 4a57473..39f8ffc 100644
--- a/view/lot_form.xml
+++ b/view/lot_form.xml
@@ -1,7 +1,7 @@
 <?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="Lot">
+<form>
     <label name="number"/>
     <field name="number"/>
     <label name="product"/>
diff --git a/view/lot_tree.xml b/view/lot_quantity_tree.xml
similarity index 75%
copy from view/lot_tree.xml
copy to view/lot_quantity_tree.xml
index d721d9c..d0939f6 100644
--- a/view/lot_tree.xml
+++ b/view/lot_quantity_tree.xml
@@ -1,7 +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. -->
-<tree string="Lots">
+<tree>
     <field name="number"/>
     <field name="product"/>
+    <field name="quantity"/>
+    <field name="forecast_quantity"/>
 </tree>
diff --git a/view/lot_tree.xml b/view/lot_tree.xml
index d721d9c..a3f1fa4 100644
--- a/view/lot_tree.xml
+++ b/view/lot_tree.xml
@@ -1,7 +1,7 @@
 <?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="Lots">
+<tree>
     <field name="number"/>
     <field name="product"/>
 </tree>
diff --git a/view/period_cache_lot_form.xml b/view/period_cache_lot_form.xml
index 02e525a..4e532bf 100644
--- a/view/period_cache_lot_form.xml
+++ b/view/period_cache_lot_form.xml
@@ -1,7 +1,7 @@
 <?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">
+<form col="8">
     <label name="period"/>
     <field name="period" colspan="6"/>
     <label name="location"/>
diff --git a/view/period_cache_lot_list.xml b/view/period_cache_lot_list.xml
index 060418d..9bb28c5 100644
--- a/view/period_cache_lot_list.xml
+++ b/view/period_cache_lot_list.xml
@@ -1,7 +1,7 @@
 <?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">
+<tree>
     <field name="period"/>
     <field name="location"/>
     <field name="product"/>
-- 
tryton-modules-stock-lot



More information about the tryton-debian-vcs mailing list