[tryton-debian-vcs] tryton-modules-stock branch debian updated. debian/3.6.0-1-4-gacbfb03

Mathias Behrle tryton-debian-vcs at alioth.debian.org
Wed Nov 11 11:28:56 UTC 2015


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

commit acbfb035335ea18bbeb6a7a0bcfb63e873e9d5c9
Author: Mathias Behrle <mathiasb at m9s.biz>
Date:   Wed Nov 11 12:11:19 2015 +0100

    Merging upstream version 3.8.0.

diff --git a/CHANGELOG b/CHANGELOG
index cb35add..10c4f5f 100644
--- a/CHANGELOG
+++ b/CHANGELOG
@@ -1,3 +1,16 @@
+Version 3.8.0 - 2015-11-02
+* Bug fixes (see mercurial logs for details)
+* Add drop location type
+* Add buttons on stock move form & list
+* Allow to use view location on staging and draft moves
+* Add picking location on warehouse
+* Always compute expected quantity in inventory
+* Allow to change the destination of internal shipment's moves
+* Allow to modify internal shipment moves in waiting state
+* Compute inventory lines in complete_lines() using new grouping() method
+* Allow to re-compute cost price
+* Allow to change unit price of move done
+
 Version 3.6.0 - 2015-04-20
 * Bug fixes (see mercurial logs for details)
 * Add support for PyPy
diff --git a/PKG-INFO b/PKG-INFO
index 3c871f4..de99a69 100644
--- a/PKG-INFO
+++ b/PKG-INFO
@@ -1,12 +1,12 @@
 Metadata-Version: 1.1
 Name: trytond_stock
-Version: 3.6.0
+Version: 3.8.0
 Summary: Tryton module for stock and inventory
 Home-page: http://www.tryton.org/
 Author: Tryton
 Author-email: issue_tracker at tryton.org
 License: GPL-3
-Download-URL: http://downloads.tryton.org/3.6/
+Download-URL: http://downloads.tryton.org/3.8/
 Description: trytond_stock
         =============
         
@@ -60,6 +60,9 @@ Classifier: Natural Language :: Dutch
 Classifier: Natural Language :: English
 Classifier: Natural Language :: French
 Classifier: Natural Language :: German
+Classifier: Natural Language :: Hungarian
+Classifier: Natural Language :: Italian
+Classifier: Natural Language :: Portuguese (Brazilian)
 Classifier: Natural Language :: Russian
 Classifier: Natural Language :: Slovenian
 Classifier: Natural Language :: Spanish
diff --git a/__init__.py b/__init__.py
index 518f590..bf76a90 100644
--- a/__init__.py
+++ b/__init__.py
@@ -44,6 +44,7 @@ def register():
         AssignShipmentInReturn,
         ProductByLocation,
         OpenProductQuantitiesByWarehouse,
+        RecomputeCostPrice,
         module='stock', type_='wizard')
     Pool.register(
         DeliveryNote,
diff --git a/customer_return_restocking_list.odt b/customer_return_restocking_list.odt
index c9429d0..73030e1 100644
Binary files a/customer_return_restocking_list.odt and b/customer_return_restocking_list.odt differ
diff --git a/delivery_note.odt b/delivery_note.odt
index ebe4b93..d57afcb 100644
Binary files a/delivery_note.odt and b/delivery_note.odt differ
diff --git a/doc/index.rst b/doc/index.rst
index bc2fb0c..9aeee8e 100644
--- a/doc/index.rst
+++ b/doc/index.rst
@@ -10,7 +10,7 @@ Location
 ********
 
 Locations are generic places where products are physically or
-virtually stored. There are six types of locations:
+virtually stored. There are seven types of locations:
 
 * Storage
 
@@ -19,12 +19,13 @@ virtually stored. There are six types of locations:
 
 * Warehouse
 
-  Warehouses are meta-locations which define input, storage and output
-  locations. These locations are all of type Storage. Input and Output
-  are locations where incoming an outgoing product are temporally
-  stored awaiting transportation. The storage location is often the
-  biggest location where products are stored for middle or long
-  periods of time.
+  Warehouses are meta-locations which define input, storage, picking and output
+  locations. These locations are all of type Storage. Input and Output are
+  locations where incoming an outgoing product are temporally stored awaiting
+  transportation. The storage location is often the biggest location where
+  products are stored for middle or long periods of time. The picking location
+  is optionally where the products are picked by the customer shipment
+  otherwise the storage location is used.
 
 * Customer
 
@@ -41,6 +42,11 @@ virtually stored. There are six types of locations:
   Lost And Found locations collects inventory gaps. See
   :ref:inventory for details.
 
+* Drop
+
+  Drop locations are virtual locations used as intermediary locations in the
+  process of drop shipping.
+
 Locations are organised in tree structures, allowing to define
 fine grained structures.
 
@@ -154,8 +160,8 @@ out of which the product are going) and two list of moves:
 
 * Inventory moves
 
-  The moves between a storage location and the output location of the
-  warehouse
+  The moves between the picking or storage location and the output location of
+  the warehouse
 
 * Outgoing moves
 
diff --git a/internal_shipment.odt b/internal_shipment.odt
index 0824965..aff3c80 100644
Binary files a/internal_shipment.odt and b/internal_shipment.odt differ
diff --git a/inventory.py b/inventory.py
index e7e9065..d8d7820 100644
--- a/inventory.py
+++ b/inventory.py
@@ -2,8 +2,8 @@
 # this repository contains the full copyright notices and license terms.
 from sql import Null
 
-from trytond.model import Workflow, ModelView, ModelSQL, fields
-from trytond.pyson import Not, Equal, Eval, Or, Bool
+from trytond.model import Workflow, Model, ModelView, ModelSQL, fields, Check
+from trytond.pyson import Eval
 from trytond import backend
 from trytond.transaction import Transaction
 from trytond.pool import Pool
@@ -11,7 +11,7 @@ from trytond.pool import Pool
 __all__ = ['Inventory', 'InventoryLine']
 
 STATES = {
-    'readonly': Not(Equal(Eval('state'), 'draft')),
+    'readonly': Eval('state') != 'draft',
 }
 DEPENDS = ['state']
 
@@ -22,13 +22,11 @@ class Inventory(Workflow, ModelSQL, ModelView):
     location = fields.Many2One(
         'stock.location', 'Location', required=True,
         domain=[('type', '=', 'storage')], states={
-            'readonly': Or(Not(Equal(Eval('state'), 'draft')),
-                Bool(Eval('lines', [0]))),
+            'readonly': (Eval('state') != 'draft') | Eval('lines', [0]),
             },
         depends=['state'])
     date = fields.Date('Date', required=True, states={
-            'readonly': Or(Not(Equal(Eval('state'), 'draft')),
-                Bool(Eval('lines', [0]))),
+            'readonly': (Eval('state') != 'draft') | Eval('lines', [0]),
             },
         depends=['state'])
     lost_found = fields.Many2One(
@@ -39,8 +37,7 @@ class Inventory(Workflow, ModelSQL, ModelView):
         depends=DEPENDS)
     company = fields.Many2One('company.company', 'Company', required=True,
         states={
-            'readonly': Or(Not(Equal(Eval('state'), 'draft')),
-                Bool(Eval('lines', [0]))),
+            'readonly': (Eval('state') != 'draft') | Eval('lines', [0]),
             },
         depends=['state'])
     state = fields.Selection([
@@ -143,6 +140,17 @@ class Inventory(Workflow, ModelSQL, ModelView):
         Line.cancel_move([l for i in inventories for l in i.lines])
 
     @classmethod
+    def create(cls, values):
+        inventories = super(Inventory, cls).create(values)
+        cls.complete_lines(inventories, fill=False)
+        return inventories
+
+    @classmethod
+    def write(cls, inventories, values):
+        super(Inventory, cls).write(inventories, values)
+        cls.complete_lines(inventories, fill=False)
+
+    @classmethod
     def copy(cls, inventories, default=None):
         pool = Pool()
         Date = pool.get('ir.date')
@@ -163,12 +171,17 @@ class Inventory(Workflow, ModelSQL, ModelView):
                     'inventory': new_inventory.id,
                     'moves': None,
                     })
-            cls.complete_lines([new_inventory])
+            cls.complete_lines([new_inventory], fill=False)
             new_inventories.append(new_inventory)
         return new_inventories
 
     @staticmethod
-    def complete_lines(inventories):
+    def grouping():
+        return ('product',)
+
+    @classmethod
+    @ModelView.button
+    def complete_lines(cls, inventories, fill=True):
         '''
         Complete or update the inventories
         '''
@@ -176,25 +189,26 @@ class Inventory(Workflow, ModelSQL, ModelView):
         Line = pool.get('stock.inventory.line')
         Product = pool.get('product.product')
 
+        grouping = cls.grouping()
         to_create = []
         for inventory in inventories:
             # Compute product quantities
+            if fill:
+                product_ids = None
+            else:
+                product_ids = [l.product.id for l in inventory.lines]
             with Transaction().set_context(stock_date_end=inventory.date):
-                pbl = Product.products_by_location([inventory.location.id])
+                pbl = Product.products_by_location(
+                    [inventory.location.id], product_ids=product_ids,
+                    grouping=grouping)
 
             # Index some data
-            product2uom = {}
             product2type = {}
             product2consumable = {}
             for product in Product.browse([line[1] for line in pbl]):
-                product2uom[product.id] = product.default_uom.id
                 product2type[product.id] = product.type
                 product2consumable[product.id] = product.consumable
 
-            product_qty = {}
-            for (location, product), quantity in pbl.iteritems():
-                product_qty[product] = (quantity, product2uom[product])
-
             # Update existing lines
             for line in inventory.lines:
                 if not (line.product.active and
@@ -202,26 +216,30 @@ class Inventory(Workflow, ModelSQL, ModelView):
                         and not line.product.consumable):
                     Line.delete([line])
                     continue
-                if line.product.id in product_qty:
-                    quantity, uom_id = product_qty.pop(line.product.id)
-                elif line.product.id in product2uom:
-                    quantity, uom_id = 0.0, product2uom[line.product.id]
+
+                key = (inventory.location.id,) + line.unique_key
+                if key in pbl:
+                    quantity = pbl.pop(key)
                 else:
-                    quantity, uom_id = 0.0, line.product.default_uom.id
-                values = line.update_values4complete(quantity, uom_id)
+                    quantity = 0.0
+                values = line.update_values4complete(quantity)
                 if values:
                     Line.write([line], values)
 
+            if not fill:
+                continue
             # Create lines if needed
-            for product_id in product_qty:
+            for key, quantity in pbl.iteritems():
+                product_id = key[grouping.index('product') + 1]
                 if (product2type[product_id] != 'goods'
                         or product2consumable[product_id]):
                     continue
-                quantity, uom_id = product_qty[product_id]
                 if not quantity:
                     continue
-                values = Line.create_values4complete(product_id, inventory,
-                    quantity, uom_id)
+
+                values = Line.create_values4complete(inventory, quantity)
+                for i, fname in enumerate(grouping, 1):
+                    values[fname] = key[i]
                 to_create.append(values)
         if to_create:
             Line.create(to_create)
@@ -251,9 +269,10 @@ class InventoryLine(ModelSQL, ModelView):
     @classmethod
     def __setup__(cls):
         super(InventoryLine, cls).__setup__()
+        t = cls.__table__()
         cls._sql_constraints += [
-            ('check_line_qty_pos',
-                'CHECK(quantity >= 0.0)', 'Line quantity must be positive.'),
+            ('check_line_qty_pos', Check(t, t.quantity >= 0),
+                'Line quantity must be positive.'),
             ]
         cls._order.insert(0, ('product', 'ASC'))
 
@@ -309,7 +328,13 @@ class InventoryLine(ModelSQL, ModelView):
 
     @property
     def unique_key(self):
-        return (self.product,)
+        key = []
+        for fname in self.inventory.grouping():
+            value = getattr(self, fname)
+            if isinstance(value, Model):
+                value = value.id
+            key.append(value)
+        return tuple(key)
 
     @classmethod
     def cancel_move(cls, lines):
@@ -348,31 +373,27 @@ class InventoryLine(ModelSQL, ModelView):
             origin=self,
             )
 
-    def update_values4complete(self, quantity, uom_id):
+    def update_values4complete(self, quantity):
         '''
         Return update values to complete inventory
         '''
         values = {}
         # if nothing changed, no update
-        if self.quantity == self.expected_quantity == quantity \
-                and self.uom.id == uom_id:
+        if self.quantity == self.expected_quantity == quantity:
             return values
         values['expected_quantity'] = quantity
-        values['uom'] = uom_id
         # update also quantity field if not edited
         if self.quantity == self.expected_quantity:
             values['quantity'] = max(quantity, 0.0)
         return values
 
     @classmethod
-    def create_values4complete(cls, product_id, inventory, quantity, uom_id):
+    def create_values4complete(cls, inventory, quantity):
         '''
         Return create values to complete inventory
         '''
         return {
             'inventory': inventory.id,
-            'product': product_id,
             'expected_quantity': quantity,
             'quantity': max(quantity, 0.0),
-            'uom': uom_id,
         }
diff --git a/locale/bg_BG.po b/locale/bg_BG.po
index 5ed32bc..5d20f55 100644
--- a/locale/bg_BG.po
+++ b/locale/bg_BG.po
@@ -369,6 +369,10 @@ msgctxt "field:stock.location,parent:"
 msgid "Parent"
 msgstr "Родител"
 
+msgctxt "field:stock.location,picking_location:"
+msgid "Picking"
+msgstr ""
+
 msgctxt "field:stock.location,quantity:"
 msgid "Quantity"
 msgstr "Количество"
@@ -1066,6 +1070,10 @@ msgstr ""
 "* Празна дата е неизвестна дата в бъдещето.\n"
 "* Дата от минал период показва исторически данни."
 
+msgctxt "help:stock.location,picking_location:"
+msgid "If empty the Storage is used"
+msgstr ""
+
 msgctxt "help:stock.products_by_locations.start,forecast_date:"
 msgid ""
 "Allow to compute expected stock quantities for this date.\n"
@@ -1076,10 +1084,6 @@ msgstr ""
 "* Празна дата е неизвестна дата в бъдещето.\n"
 "* Дата от минал период показва исторически данни."
 
-msgctxt "model:ir.action,name:"
-msgid "Create Return Shipment"
-msgstr "Създаване на върната пратка"
-
 msgctxt "model:ir.action,name:act_inventory_form"
 msgid "Inventories"
 msgstr "Инвентаризации"
@@ -1179,6 +1183,10 @@ msgctxt "model:ir.action,name:wizard_products_by_locations"
 msgid "Products by Locations"
 msgstr "Продулти по местонахождения"
 
+msgctxt "model:ir.action,name:wizard_recompute_cost_price"
+msgid "Recompute Cost Price"
+msgstr ""
+
 msgctxt "model:ir.action,name:wizard_shipment_in_return_assign"
 msgid "Assign Purchase Return Shipment"
 msgstr "Назначаване за връщане на пратка от покупка"
@@ -1550,18 +1558,10 @@ msgid "Code:"
 msgstr "Код:"
 
 msgctxt "odt:stock.shipment.in.restocking_list:"
-msgid "E-Mail:"
-msgstr "E-Mail:"
-
-msgctxt "odt:stock.shipment.in.restocking_list:"
 msgid "From Location"
 msgstr "От местонахождение"
 
 msgctxt "odt:stock.shipment.in.restocking_list:"
-msgid "Phone:"
-msgstr "Телефон:"
-
-msgctxt "odt:stock.shipment.in.restocking_list:"
 msgid "Planned Date:"
 msgstr "Планирана дата:"
 
@@ -1590,10 +1590,6 @@ msgid "To Location"
 msgstr "Към местонахождение"
 
 msgctxt "odt:stock.shipment.in.restocking_list:"
-msgid "VAT Number:"
-msgstr "ДДС номер:"
-
-msgctxt "odt:stock.shipment.in.restocking_list:"
 msgid "Warehouse:"
 msgstr "Склад:"
 
@@ -1606,10 +1602,6 @@ msgid "Code:"
 msgstr "Код:"
 
 msgctxt "odt:stock.shipment.internal.report:"
-msgid "E-Mail:"
-msgstr "E-Mail:"
-
-msgctxt "odt:stock.shipment.internal.report:"
 msgid "From Location"
 msgstr "От местонахождение"
 
@@ -1622,10 +1614,6 @@ msgid "Internal Shipment"
 msgstr "Вътрешно пратка"
 
 msgctxt "odt:stock.shipment.internal.report:"
-msgid "Phone:"
-msgstr "Телефон:"
-
-msgctxt "odt:stock.shipment.internal.report:"
 msgid "Planned Date:"
 msgstr "Планирана дата:"
 
@@ -1649,10 +1637,6 @@ msgctxt "odt:stock.shipment.internal.report:"
 msgid "To Location:"
 msgstr "Към местонахождение:"
 
-msgctxt "odt:stock.shipment.internal.report:"
-msgid "VAT Number:"
-msgstr "ДДС номер:"
-
 msgctxt "odt:stock.shipment.out.delivery_note:"
 msgid "/"
 msgstr "/"
@@ -1670,14 +1654,6 @@ msgid "Delivery Note"
 msgstr "Бележка към доставка"
 
 msgctxt "odt:stock.shipment.out.delivery_note:"
-msgid "E-Mail:"
-msgstr "E-Mail:"
-
-msgctxt "odt:stock.shipment.out.delivery_note:"
-msgid "Phone:"
-msgstr "Телефон:"
-
-msgctxt "odt:stock.shipment.out.delivery_note:"
 msgid "Product"
 msgstr "Продукт"
 
@@ -1693,10 +1669,6 @@ msgctxt "odt:stock.shipment.out.delivery_note:"
 msgid "Shipment Number:"
 msgstr "Номер на пратка:"
 
-msgctxt "odt:stock.shipment.out.delivery_note:"
-msgid "VAT Number:"
-msgstr "ДДС номер:"
-
 msgctxt "odt:stock.shipment.out.picking_list:"
 msgid "/"
 msgstr "/"
@@ -1710,18 +1682,10 @@ msgid "Customer:"
 msgstr "Клиент:"
 
 msgctxt "odt:stock.shipment.out.picking_list:"
-msgid "E-Mail:"
-msgstr "E-Mail:"
-
-msgctxt "odt:stock.shipment.out.picking_list:"
 msgid "From Location"
 msgstr "От местонахождение"
 
 msgctxt "odt:stock.shipment.out.picking_list:"
-msgid "Phone:"
-msgstr "Телефон:"
-
-msgctxt "odt:stock.shipment.out.picking_list:"
 msgid "Picking List"
 msgstr "Списък за опаковане"
 
@@ -1746,10 +1710,6 @@ msgid "To Location"
 msgstr "Към местонахождение"
 
 msgctxt "odt:stock.shipment.out.picking_list:"
-msgid "VAT Number:"
-msgstr "ДДС номер:"
-
-msgctxt "odt:stock.shipment.out.picking_list:"
 msgid "Warehouse:"
 msgstr "Склад:"
 
@@ -1772,18 +1732,10 @@ msgid "Customer"
 msgstr "Клиент"
 
 msgctxt "odt:stock.shipment.out.return.restocking_list:"
-msgid "E-Mail:"
-msgstr "E-Mail:"
-
-msgctxt "odt:stock.shipment.out.return.restocking_list:"
 msgid "From Location"
 msgstr "От местонахождение"
 
 msgctxt "odt:stock.shipment.out.return.restocking_list:"
-msgid "Phone:"
-msgstr "Телефон:"
-
-msgctxt "odt:stock.shipment.out.return.restocking_list:"
 msgid "Planned Date:"
 msgstr "Планирана дата:"
 
@@ -1808,10 +1760,6 @@ msgid "To Location"
 msgstr "Към местонахождение"
 
 msgctxt "odt:stock.shipment.out.return.restocking_list:"
-msgid "VAT Number:"
-msgstr "ДДС номер:"
-
-msgctxt "odt:stock.shipment.out.return.restocking_list:"
 msgid "Warehouse:"
 msgstr "Склад:"
 
@@ -1832,6 +1780,10 @@ msgid "Customer"
 msgstr "Клиент"
 
 msgctxt "selection:stock.location,type:"
+msgid "Drop"
+msgstr ""
+
+msgctxt "selection:stock.location,type:"
 msgid "Lost and Found"
 msgstr "Загубени и намерени"
 
@@ -2045,6 +1997,10 @@ msgid "Locations"
 msgstr "Местонахождения"
 
 msgctxt "view:stock.move:"
+msgid "Cancel"
+msgstr ""
+
+msgctxt "view:stock.move:"
 msgid "Move"
 msgstr "Движение"
 
@@ -2052,6 +2008,10 @@ msgctxt "view:stock.move:"
 msgid "Moves"
 msgstr "Движения"
 
+msgctxt "view:stock.move:"
+msgid "Reset to Draft"
+msgstr ""
+
 msgctxt "view:stock.period.cache:"
 msgid "Period Cache"
 msgstr "В брой за период"
diff --git a/locale/ca_ES.po b/locale/ca_ES.po
index 970a839..aad78cf 100644
--- a/locale/ca_ES.po
+++ b/locale/ca_ES.po
@@ -264,7 +264,7 @@ msgstr "Ubicació"
 
 msgctxt "field:stock.inventory,lost_found:"
 msgid "Lost and Found"
-msgstr "Perdut/trobat"
+msgstr "Perdut-trobat"
 
 msgctxt "field:stock.inventory,rec_name:"
 msgid "Name"
@@ -340,7 +340,7 @@ msgstr "Actiu"
 
 msgctxt "field:stock.location,address:"
 msgid "Address"
-msgstr "Adreces"
+msgstr "Adreça"
 
 msgctxt "field:stock.location,childs:"
 msgid "Children"
@@ -390,6 +390,10 @@ msgctxt "field:stock.location,parent:"
 msgid "Parent"
 msgstr "Pare"
 
+msgctxt "field:stock.location,picking_location:"
+msgid "Picking"
+msgstr "Recollida"
+
 msgctxt "field:stock.location,quantity:"
 msgid "Quantity"
 msgstr "Quantitat"
@@ -500,7 +504,7 @@ msgstr "Preu unitari"
 
 msgctxt "field:stock.move,unit_price_required:"
 msgid "Unit Price Required"
-msgstr "Requereix preu unitari"
+msgstr "Preu unitat obligatori"
 
 msgctxt "field:stock.move,uom:"
 msgid "Uom"
@@ -1074,6 +1078,10 @@ msgstr ""
 "* Un valor buit és un data infinita en el futur.\n"
 "* Una data en el passat proporcionarà valors històrics."
 
+msgctxt "help:stock.location,picking_location:"
+msgid "If empty the Storage is used"
+msgstr "Si està buit s'utilitzarà l'emmagatzemament."
+
 msgctxt "help:stock.products_by_locations.start,forecast_date:"
 msgid ""
 "Allow to compute expected stock quantities for this date.\n"
@@ -1084,10 +1092,6 @@ msgstr ""
 "* 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:"
-msgid "Create Return Shipment"
-msgstr "Crea albarà de devolució"
-
 msgctxt "model:ir.action,name:act_inventory_form"
 msgid "Inventories"
 msgstr "Inventaris"
@@ -1184,6 +1188,10 @@ msgctxt "model:ir.action,name:wizard_products_by_locations"
 msgid "Products by Locations"
 msgstr "Productes per ubicació"
 
+msgctxt "model:ir.action,name:wizard_recompute_cost_price"
+msgid "Recompute Cost Price"
+msgstr "Recalcula preu de cost"
+
 msgctxt "model:ir.action,name:wizard_shipment_in_return_assign"
 msgid "Assign Purchase Return Shipment"
 msgstr "Reserva albarà de devolució de compra"
@@ -1198,7 +1206,7 @@ msgstr "Reserva albarà de sortida"
 
 msgctxt "model:ir.action.act_window.domain,name:act_inventory_form_domain_all"
 msgid "All"
-msgstr "Tots"
+msgstr "Tot"
 
 msgctxt ""
 "model:ir.action.act_window.domain,name:act_inventory_form_domain_draft"
@@ -1207,7 +1215,7 @@ msgstr "Esborrany"
 
 msgctxt "model:ir.action.act_window.domain,name:act_move_form_domain_all"
 msgid "All"
-msgstr "Tots"
+msgstr "Tot"
 
 msgctxt ""
 "model:ir.action.act_window.domain,name:act_move_form_domain_from_supplier"
@@ -1227,7 +1235,7 @@ msgstr "A client"
 msgctxt ""
 "model:ir.action.act_window.domain,name:act_shipment_in_form_domain_all"
 msgid "All"
-msgstr "Tots"
+msgstr "Tot"
 
 msgctxt ""
 "model:ir.action.act_window.domain,name:act_shipment_in_form_domain_draft"
@@ -1242,7 +1250,7 @@ msgstr "Rebut"
 msgctxt ""
 "model:ir.action.act_window.domain,name:act_shipment_in_return_form_domain_all"
 msgid "All"
-msgstr "Tots"
+msgstr "Tot"
 
 msgctxt ""
 "model:ir.action.act_window.domain,name:act_shipment_in_return_form_domain_assigned"
@@ -1262,7 +1270,7 @@ msgstr "En espera"
 msgctxt ""
 "model:ir.action.act_window.domain,name:act_shipment_internal_form_domain_all"
 msgid "All"
-msgstr "Tots"
+msgstr "Tot"
 
 msgctxt ""
 "model:ir.action.act_window.domain,name:act_shipment_internal_form_domain_assigned"
@@ -1282,7 +1290,7 @@ msgstr "En espera"
 msgctxt ""
 "model:ir.action.act_window.domain,name:act_shipment_out_form_domain_all"
 msgid "All"
-msgstr "Tots"
+msgstr "Tot"
 
 msgctxt ""
 "model:ir.action.act_window.domain,name:act_shipment_out_form_domain_assigned"
@@ -1307,7 +1315,7 @@ msgstr "En espera"
 msgctxt ""
 "model:ir.action.act_window.domain,name:act_shipment_out_return_form_domain_all"
 msgid "All"
-msgstr "Tots"
+msgstr "Tot"
 
 msgctxt ""
 "model:ir.action.act_window.domain,name:act_shipment_out_return_form_domain_draft"
@@ -1457,7 +1465,7 @@ msgstr "Zona d'entrada"
 
 msgctxt "model:stock.location,name:location_lost_found"
 msgid "Lost and Found"
-msgstr "Perdut/trobat"
+msgstr "Perdut-trobat"
 
 msgctxt "model:stock.location,name:location_output"
 msgid "Output Zone"
@@ -1540,18 +1548,10 @@ msgid "Code:"
 msgstr "Codi:"
 
 msgctxt "odt:stock.shipment.in.restocking_list:"
-msgid "E-Mail:"
-msgstr "Correu electrònic:"
-
-msgctxt "odt:stock.shipment.in.restocking_list:"
 msgid "From Location"
 msgstr "Des de la ubicació"
 
 msgctxt "odt:stock.shipment.in.restocking_list:"
-msgid "Phone:"
-msgstr "Telèfon:"
-
-msgctxt "odt:stock.shipment.in.restocking_list:"
 msgid "Planned Date:"
 msgstr "Data planejada:"
 
@@ -1580,10 +1580,6 @@ msgid "To Location"
 msgstr "A la ubicació"
 
 msgctxt "odt:stock.shipment.in.restocking_list:"
-msgid "VAT Number:"
-msgstr "CIF/NIF:"
-
-msgctxt "odt:stock.shipment.in.restocking_list:"
 msgid "Warehouse:"
 msgstr "Magatzem:"
 
@@ -1596,10 +1592,6 @@ msgid "Code:"
 msgstr "Codi:"
 
 msgctxt "odt:stock.shipment.internal.report:"
-msgid "E-Mail:"
-msgstr "Correu electrònic:"
-
-msgctxt "odt:stock.shipment.internal.report:"
 msgid "From Location"
 msgstr "Des de la ubicació"
 
@@ -1612,10 +1604,6 @@ msgid "Internal Shipment"
 msgstr "Albarà intern"
 
 msgctxt "odt:stock.shipment.internal.report:"
-msgid "Phone:"
-msgstr "Telèfon:"
-
-msgctxt "odt:stock.shipment.internal.report:"
 msgid "Planned Date:"
 msgstr "Data estimada:"
 
@@ -1639,10 +1627,6 @@ msgctxt "odt:stock.shipment.internal.report:"
 msgid "To Location:"
 msgstr "A la ubicació:"
 
-msgctxt "odt:stock.shipment.internal.report:"
-msgid "VAT Number:"
-msgstr "CIF/NIF:"
-
 msgctxt "odt:stock.shipment.out.delivery_note:"
 msgid "/"
 msgstr "/"
@@ -1660,14 +1644,6 @@ msgid "Delivery Note"
 msgstr "Nota d'enviament"
 
 msgctxt "odt:stock.shipment.out.delivery_note:"
-msgid "E-Mail:"
-msgstr "Correu electrònic:"
-
-msgctxt "odt:stock.shipment.out.delivery_note:"
-msgid "Phone:"
-msgstr "Telèfon:"
-
-msgctxt "odt:stock.shipment.out.delivery_note:"
 msgid "Product"
 msgstr "Producte"
 
@@ -1683,10 +1659,6 @@ msgctxt "odt:stock.shipment.out.delivery_note:"
 msgid "Shipment Number:"
 msgstr "Número d'albarà:"
 
-msgctxt "odt:stock.shipment.out.delivery_note:"
-msgid "VAT Number:"
-msgstr "CIF/NIF:"
-
 msgctxt "odt:stock.shipment.out.picking_list:"
 msgid "/"
 msgstr "/"
@@ -1700,18 +1672,10 @@ msgid "Customer:"
 msgstr "Client:"
 
 msgctxt "odt:stock.shipment.out.picking_list:"
-msgid "E-Mail:"
-msgstr "Correu electrònic:"
-
-msgctxt "odt:stock.shipment.out.picking_list:"
 msgid "From Location"
 msgstr "Des d'ubicació"
 
 msgctxt "odt:stock.shipment.out.picking_list:"
-msgid "Phone:"
-msgstr "Telèfon:"
-
-msgctxt "odt:stock.shipment.out.picking_list:"
 msgid "Picking List"
 msgstr "Llista de selecció"
 
@@ -1736,10 +1700,6 @@ msgid "To Location"
 msgstr "A la ubicació"
 
 msgctxt "odt:stock.shipment.out.picking_list:"
-msgid "VAT Number:"
-msgstr "CIF/NIF:"
-
-msgctxt "odt:stock.shipment.out.picking_list:"
 msgid "Warehouse:"
 msgstr "Magatzem:"
 
@@ -1760,18 +1720,10 @@ msgid "Customer"
 msgstr "Client"
 
 msgctxt "odt:stock.shipment.out.return.restocking_list:"
-msgid "E-Mail:"
-msgstr "Correu electrònic:"
-
-msgctxt "odt:stock.shipment.out.return.restocking_list:"
 msgid "From Location"
 msgstr "D'ubicació"
 
 msgctxt "odt:stock.shipment.out.return.restocking_list:"
-msgid "Phone:"
-msgstr "Telèfon:"
-
-msgctxt "odt:stock.shipment.out.return.restocking_list:"
 msgid "Planned Date:"
 msgstr "Data estimada:"
 
@@ -1796,10 +1748,6 @@ msgid "To Location"
 msgstr "A la ubicació"
 
 msgctxt "odt:stock.shipment.out.return.restocking_list:"
-msgid "VAT Number:"
-msgstr "CIF/NIF:"
-
-msgctxt "odt:stock.shipment.out.return.restocking_list:"
 msgid "Warehouse:"
 msgstr "Magatzem:"
 
@@ -1820,8 +1768,12 @@ msgid "Customer"
 msgstr "Client"
 
 msgctxt "selection:stock.location,type:"
+msgid "Drop"
+msgstr "Rebuig"
+
+msgctxt "selection:stock.location,type:"
 msgid "Lost and Found"
-msgstr "Perdut/trobat"
+msgstr "Perdut-trobat"
 
 msgctxt "selection:stock.location,type:"
 msgid "Production"
@@ -2032,6 +1984,10 @@ msgid "Locations"
 msgstr "Ubicacions"
 
 msgctxt "view:stock.move:"
+msgid "Cancel"
+msgstr "Cancel·la"
+
+msgctxt "view:stock.move:"
 msgid "Move"
 msgstr "Moviment"
 
@@ -2039,6 +1995,10 @@ msgctxt "view:stock.move:"
 msgid "Moves"
 msgstr "Moviments"
 
+msgctxt "view:stock.move:"
+msgid "Reset to Draft"
+msgstr "Restaura a esborrany"
+
 msgctxt "view:stock.period.cache:"
 msgid "Period Cache"
 msgstr "Període precalculat"
@@ -2285,7 +2245,7 @@ msgstr "Obre"
 
 msgctxt "wizard_button:stock.shipment.in.return.assign,failed,end:"
 msgid "OK"
-msgstr "Accepta"
+msgstr "D'acord"
 
 msgctxt "wizard_button:stock.shipment.in.return.assign,failed,force:"
 msgid "Force Assign"
@@ -2293,7 +2253,7 @@ msgstr "Força reserva"
 
 msgctxt "wizard_button:stock.shipment.internal.assign,failed,end:"
 msgid "OK"
-msgstr "Accepta"
+msgstr "D'acord"
 
 msgctxt "wizard_button:stock.shipment.internal.assign,failed,force:"
 msgid "Force Assign"
@@ -2301,7 +2261,7 @@ msgstr "Força reserva"
 
 msgctxt "wizard_button:stock.shipment.out.assign,failed,end:"
 msgid "OK"
-msgstr "Accepta"
+msgstr "D'acord"
 
 msgctxt "wizard_button:stock.shipment.out.assign,failed,force:"
 msgid "Force Assign"
diff --git a/locale/cs_CZ.po b/locale/cs_CZ.po
index d815dc1..0a9eea4 100644
--- a/locale/cs_CZ.po
+++ b/locale/cs_CZ.po
@@ -366,6 +366,10 @@ msgctxt "field:stock.location,parent:"
 msgid "Parent"
 msgstr ""
 
+msgctxt "field:stock.location,picking_location:"
+msgid "Picking"
+msgstr ""
+
 msgctxt "field:stock.location,quantity:"
 msgid "Quantity"
 msgstr ""
@@ -1045,6 +1049,10 @@ msgid ""
 "* A date in the past will provide historical values."
 msgstr ""
 
+msgctxt "help:stock.location,picking_location:"
+msgid "If empty the Storage is used"
+msgstr ""
+
 msgctxt "help:stock.products_by_locations.start,forecast_date:"
 msgid ""
 "Allow to compute expected stock quantities for this date.\n"
@@ -1052,10 +1060,6 @@ msgid ""
 "* A date in the past will provide historical values."
 msgstr ""
 
-msgctxt "model:ir.action,name:"
-msgid "Create Return Shipment"
-msgstr ""
-
 msgctxt "model:ir.action,name:act_inventory_form"
 msgid "Inventories"
 msgstr ""
@@ -1152,6 +1156,10 @@ msgctxt "model:ir.action,name:wizard_products_by_locations"
 msgid "Products by Locations"
 msgstr ""
 
+msgctxt "model:ir.action,name:wizard_recompute_cost_price"
+msgid "Recompute Cost Price"
+msgstr ""
+
 msgctxt "model:ir.action,name:wizard_shipment_in_return_assign"
 msgid "Assign Purchase Return Shipment"
 msgstr ""
@@ -1508,18 +1516,10 @@ msgid "Code:"
 msgstr ""
 
 msgctxt "odt:stock.shipment.in.restocking_list:"
-msgid "E-Mail:"
-msgstr ""
-
-msgctxt "odt:stock.shipment.in.restocking_list:"
 msgid "From Location"
 msgstr ""
 
 msgctxt "odt:stock.shipment.in.restocking_list:"
-msgid "Phone:"
-msgstr ""
-
-msgctxt "odt:stock.shipment.in.restocking_list:"
 msgid "Planned Date:"
 msgstr ""
 
@@ -1548,10 +1548,6 @@ msgid "To Location"
 msgstr ""
 
 msgctxt "odt:stock.shipment.in.restocking_list:"
-msgid "VAT Number:"
-msgstr ""
-
-msgctxt "odt:stock.shipment.in.restocking_list:"
 msgid "Warehouse:"
 msgstr ""
 
@@ -1564,10 +1560,6 @@ msgid "Code:"
 msgstr ""
 
 msgctxt "odt:stock.shipment.internal.report:"
-msgid "E-Mail:"
-msgstr ""
-
-msgctxt "odt:stock.shipment.internal.report:"
 msgid "From Location"
 msgstr ""
 
@@ -1580,10 +1572,6 @@ msgid "Internal Shipment"
 msgstr ""
 
 msgctxt "odt:stock.shipment.internal.report:"
-msgid "Phone:"
-msgstr ""
-
-msgctxt "odt:stock.shipment.internal.report:"
 msgid "Planned Date:"
 msgstr ""
 
@@ -1607,10 +1595,6 @@ msgctxt "odt:stock.shipment.internal.report:"
 msgid "To Location:"
 msgstr ""
 
-msgctxt "odt:stock.shipment.internal.report:"
-msgid "VAT Number:"
-msgstr ""
-
 msgctxt "odt:stock.shipment.out.delivery_note:"
 msgid "/"
 msgstr ""
@@ -1628,14 +1612,6 @@ msgid "Delivery Note"
 msgstr ""
 
 msgctxt "odt:stock.shipment.out.delivery_note:"
-msgid "E-Mail:"
-msgstr ""
-
-msgctxt "odt:stock.shipment.out.delivery_note:"
-msgid "Phone:"
-msgstr ""
-
-msgctxt "odt:stock.shipment.out.delivery_note:"
 msgid "Product"
 msgstr ""
 
@@ -1651,10 +1627,6 @@ msgctxt "odt:stock.shipment.out.delivery_note:"
 msgid "Shipment Number:"
 msgstr ""
 
-msgctxt "odt:stock.shipment.out.delivery_note:"
-msgid "VAT Number:"
-msgstr ""
-
 msgctxt "odt:stock.shipment.out.picking_list:"
 msgid "/"
 msgstr ""
@@ -1668,18 +1640,10 @@ msgid "Customer:"
 msgstr ""
 
 msgctxt "odt:stock.shipment.out.picking_list:"
-msgid "E-Mail:"
-msgstr ""
-
-msgctxt "odt:stock.shipment.out.picking_list:"
 msgid "From Location"
 msgstr ""
 
 msgctxt "odt:stock.shipment.out.picking_list:"
-msgid "Phone:"
-msgstr ""
-
-msgctxt "odt:stock.shipment.out.picking_list:"
 msgid "Picking List"
 msgstr ""
 
@@ -1704,10 +1668,6 @@ msgid "To Location"
 msgstr ""
 
 msgctxt "odt:stock.shipment.out.picking_list:"
-msgid "VAT Number:"
-msgstr ""
-
-msgctxt "odt:stock.shipment.out.picking_list:"
 msgid "Warehouse:"
 msgstr ""
 
@@ -1728,18 +1688,10 @@ msgid "Customer"
 msgstr ""
 
 msgctxt "odt:stock.shipment.out.return.restocking_list:"
-msgid "E-Mail:"
-msgstr ""
-
-msgctxt "odt:stock.shipment.out.return.restocking_list:"
 msgid "From Location"
 msgstr ""
 
 msgctxt "odt:stock.shipment.out.return.restocking_list:"
-msgid "Phone:"
-msgstr ""
-
-msgctxt "odt:stock.shipment.out.return.restocking_list:"
 msgid "Planned Date:"
 msgstr ""
 
@@ -1764,10 +1716,6 @@ msgid "To Location"
 msgstr ""
 
 msgctxt "odt:stock.shipment.out.return.restocking_list:"
-msgid "VAT Number:"
-msgstr ""
-
-msgctxt "odt:stock.shipment.out.return.restocking_list:"
 msgid "Warehouse:"
 msgstr ""
 
@@ -1788,6 +1736,10 @@ msgid "Customer"
 msgstr ""
 
 msgctxt "selection:stock.location,type:"
+msgid "Drop"
+msgstr ""
+
+msgctxt "selection:stock.location,type:"
 msgid "Lost and Found"
 msgstr ""
 
@@ -2000,6 +1952,10 @@ msgid "Locations"
 msgstr ""
 
 msgctxt "view:stock.move:"
+msgid "Cancel"
+msgstr ""
+
+msgctxt "view:stock.move:"
 msgid "Move"
 msgstr ""
 
@@ -2007,6 +1963,10 @@ msgctxt "view:stock.move:"
 msgid "Moves"
 msgstr ""
 
+msgctxt "view:stock.move:"
+msgid "Reset to Draft"
+msgstr ""
+
 msgctxt "view:stock.period.cache:"
 msgid "Period Cache"
 msgstr ""
diff --git a/locale/de_DE.po b/locale/de_DE.po
index 1a6986d..e8ff2ea 100644
--- a/locale/de_DE.po
+++ b/locale/de_DE.po
@@ -72,7 +72,7 @@ msgstr ""
 msgctxt "error:stock.move:"
 msgid "You can not modify move \"%(move)s\" because period \"%(period)s\" is closed."
 msgstr ""
-"Änderung von Buchungssatz \"%(move)s\" nicht möglich, weil Buchungsperiode "
+"Änderung von Buchungssatz \"%(move)s\" nicht möglich, weil Buchungszeitraum "
 "\"%(period)s\" geschlossen ist."
 
 msgctxt "error:stock.move:"
@@ -224,7 +224,7 @@ msgstr "Nummernkreis Warenrückgabe"
 
 msgctxt "field:stock.configuration,shipment_in_sequence:"
 msgid "Supplier Shipment Sequence"
-msgstr "Nummernkreis Lieferposten von Lieferant"
+msgstr "Nummernkreis Lieferposten von Lieferanten"
 
 msgctxt "field:stock.configuration,shipment_internal_sequence:"
 msgid "Internal Shipment Sequence"
@@ -236,7 +236,7 @@ msgstr "Nummernkreis Warenrücknahme"
 
 msgctxt "field:stock.configuration,shipment_out_sequence:"
 msgid "Customer Shipment Sequence"
-msgstr "Nummernkreis Lieferposten an Kunde"
+msgstr "Nummernkreis Lieferposten an Kunden"
 
 msgctxt "field:stock.configuration,write_date:"
 msgid "Write Date"
@@ -320,7 +320,7 @@ msgstr "Lagerbewegungen"
 
 msgctxt "field:stock.inventory.line,product:"
 msgid "Product"
-msgstr "Artikel"
+msgstr "Variante"
 
 msgctxt "field:stock.inventory.line,quantity:"
 msgid "Quantity"
@@ -402,6 +402,10 @@ msgctxt "field:stock.location,parent:"
 msgid "Parent"
 msgstr "Übergeordnet (Lagerort)"
 
+msgctxt "field:stock.location,picking_location:"
+msgid "Picking"
+msgstr "Lagerort Picking"
+
 msgctxt "field:stock.location,quantity:"
 msgid "Quantity"
 msgstr "Anzahl"
@@ -476,11 +480,11 @@ msgstr "Geplantes Datum"
 
 msgctxt "field:stock.move,product:"
 msgid "Product"
-msgstr "Artikel"
+msgstr "Variante"
 
 msgctxt "field:stock.move,product_uom_category:"
 msgid "Product Uom Category"
-msgstr "Artikel Maßeinheit Kategorie"
+msgstr "Maßeinheitenkategorie"
 
 msgctxt "field:stock.move,quantity:"
 msgid "Quantity"
@@ -592,7 +596,7 @@ msgstr "Lagerperiode"
 
 msgctxt "field:stock.period.cache,product:"
 msgid "Product"
-msgstr "Artikel"
+msgstr "Variante"
 
 msgctxt "field:stock.period.cache,rec_name:"
 msgid "Name"
@@ -1080,9 +1084,13 @@ msgid ""
 "* An empty value is an infinite date in the future.\n"
 "* A date in the past will provide historical values."
 msgstr ""
-"Berechnet den erwarteten Lagerbestand für dieses Datum\n"
-"* ein leerer Wert ist ein unbegrenztes Datum in der Zukunft\n"
-"* ein Datum in der Vergangenheit berechnet historische Werte\n"
+"Berechnet den erwarteten Lagerbestand für dieses Datum.\n"
+"* Ein leerer Wert ist ein unbegrenztes Datum in der Zukunft.\n"
+"* Ein Datum in der Vergangenheit berechnet historische Werte."
+
+msgctxt "help:stock.location,picking_location:"
+msgid "If empty the Storage is used"
+msgstr "Bei leerem Feld wird das Lager verwendet"
 
 msgctxt "help:stock.products_by_locations.start,forecast_date:"
 msgid ""
@@ -1090,9 +1098,9 @@ msgid ""
 "* An empty value is an infinite date in the future.\n"
 "* A date in the past will provide historical values."
 msgstr ""
-"Berechnet den erwarteten Lagerbestand für dieses Datum\n"
-"* ein leerer Wert ist ein unbegrenztes Datum in der Zukunft\n"
-"* ein Datum in der Vergangenheit berechnet historische Werte\n"
+"Berechnet den erwarteten Lagerbestand für dieses Datum.\n"
+"* Ein leerer Wert ist ein unbegrenztes Datum in der Zukunft.\n"
+"* Ein Datum in der Vergangenheit berechnet historische Werte."
 
 msgctxt "model:ir.action,name:"
 msgid "Create Return Shipment"
@@ -1124,11 +1132,11 @@ msgstr "Lagerperioden"
 
 msgctxt "model:ir.action,name:act_product_quantities_warehouse"
 msgid "Product Quantities By Warehouse"
-msgstr "Artikelanzahl nach Warenlager"
+msgstr "Variantenanzahl nach Warenlager"
 
 msgctxt "model:ir.action,name:act_products_by_locations"
 msgid "Products"
-msgstr "Artikel"
+msgstr "Varianten"
 
 msgctxt "model:ir.action,name:act_shipment_in_form"
 msgid "Supplier Shipments"
@@ -1184,15 +1192,19 @@ msgstr "Einlagerungsliste"
 
 msgctxt "model:ir.action,name:wizard_product_by_location"
 msgid "Product by Locations"
-msgstr "Artikel nach Lagerort"
+msgstr "Variante nach Lagerort"
 
 msgctxt "model:ir.action,name:wizard_product_quantities_warehouse"
 msgid "Product Quantities By Warehouse"
-msgstr "Artikelanzahl nach Warenlager"
+msgstr "Variantenanzahl nach Warenlager"
 
 msgctxt "model:ir.action,name:wizard_products_by_locations"
 msgid "Products by Locations"
-msgstr "Artikel nach Lagerorten"
+msgstr "Varianten nach Lagerorten"
+
+msgctxt "model:ir.action,name:wizard_recompute_cost_price"
+msgid "Recompute Cost Price"
+msgstr "Kostenpreis neu berechnen"
 
 msgctxt "model:ir.action,name:wizard_shipment_in_return_assign"
 msgid "Assign Purchase Return Shipment"
@@ -1427,7 +1439,7 @@ msgstr "Lager"
 
 msgctxt "model:product.by_location.start,name:"
 msgid "Product by Location"
-msgstr "Artikel nach Lagerort"
+msgstr "Variante nach Lagerort"
 
 msgctxt "model:res.group,name:group_stock"
 msgid "Stock"
@@ -1499,15 +1511,15 @@ msgstr "Lager Perioden Cache"
 
 msgctxt "model:stock.product_quantities_warehouse,name:"
 msgid "Product Quantities By Warehouse"
-msgstr "Artikelanzahl nach Warenlager"
+msgstr "Variantenanzahl nach Warenlager"
 
 msgctxt "model:stock.product_quantities_warehouse.start,name:"
 msgid "Product Quantities By Warehouse"
-msgstr "Artikelanzahl nach Warenlager"
+msgstr "Variantenanzahl nach Warenlager"
 
 msgctxt "model:stock.products_by_locations.start,name:"
 msgid "Products by Locations"
-msgstr "Artikel nach Lagerorten"
+msgstr "Varianten nach Lagerorten"
 
 msgctxt "model:stock.shipment.in,name:"
 msgid "Supplier Shipment"
@@ -1550,24 +1562,16 @@ msgid "Code:"
 msgstr "Code:"
 
 msgctxt "odt:stock.shipment.in.restocking_list:"
-msgid "E-Mail:"
-msgstr "E-Mail:"
-
-msgctxt "odt:stock.shipment.in.restocking_list:"
 msgid "From Location"
 msgstr "Von Lagerort"
 
 msgctxt "odt:stock.shipment.in.restocking_list:"
-msgid "Phone:"
-msgstr "Telefon:"
-
-msgctxt "odt:stock.shipment.in.restocking_list:"
 msgid "Planned Date:"
 msgstr "Geplantes Datum:"
 
 msgctxt "odt:stock.shipment.in.restocking_list:"
 msgid "Product"
-msgstr "Artikel"
+msgstr "Variante"
 
 msgctxt "odt:stock.shipment.in.restocking_list:"
 msgid "Quantity"
@@ -1590,10 +1594,6 @@ msgid "To Location"
 msgstr "Zu Lagerort"
 
 msgctxt "odt:stock.shipment.in.restocking_list:"
-msgid "VAT Number:"
-msgstr "USt-ID-Nr.:"
-
-msgctxt "odt:stock.shipment.in.restocking_list:"
 msgid "Warehouse:"
 msgstr "Warenlager:"
 
@@ -1606,10 +1606,6 @@ msgid "Code:"
 msgstr "Code:"
 
 msgctxt "odt:stock.shipment.internal.report:"
-msgid "E-Mail:"
-msgstr "E-Mail:"
-
-msgctxt "odt:stock.shipment.internal.report:"
 msgid "From Location"
 msgstr "Von Lagerort"
 
@@ -1622,16 +1618,12 @@ msgid "Internal Shipment"
 msgstr "Interner Lieferposten"
 
 msgctxt "odt:stock.shipment.internal.report:"
-msgid "Phone:"
-msgstr "Telefon:"
-
-msgctxt "odt:stock.shipment.internal.report:"
 msgid "Planned Date:"
 msgstr "Geplantes Datum:"
 
 msgctxt "odt:stock.shipment.internal.report:"
 msgid "Product"
-msgstr "Artikel"
+msgstr "Variante"
 
 msgctxt "odt:stock.shipment.internal.report:"
 msgid "Quantity"
@@ -1649,10 +1641,6 @@ msgctxt "odt:stock.shipment.internal.report:"
 msgid "To Location:"
 msgstr "Zu Lagerort:"
 
-msgctxt "odt:stock.shipment.internal.report:"
-msgid "VAT Number:"
-msgstr "USt-ID-Nr.:"
-
 msgctxt "odt:stock.shipment.out.delivery_note:"
 msgid "/"
 msgstr "/"
@@ -1670,16 +1658,8 @@ msgid "Delivery Note"
 msgstr "Lieferschein"
 
 msgctxt "odt:stock.shipment.out.delivery_note:"
-msgid "E-Mail:"
-msgstr "E-Mail:"
-
-msgctxt "odt:stock.shipment.out.delivery_note:"
-msgid "Phone:"
-msgstr "Telefon:"
-
-msgctxt "odt:stock.shipment.out.delivery_note:"
 msgid "Product"
-msgstr "Artikel"
+msgstr "Variante"
 
 msgctxt "odt:stock.shipment.out.delivery_note:"
 msgid "Quantity"
@@ -1693,10 +1673,6 @@ msgctxt "odt:stock.shipment.out.delivery_note:"
 msgid "Shipment Number:"
 msgstr "Lieferposten Nr.:"
 
-msgctxt "odt:stock.shipment.out.delivery_note:"
-msgid "VAT Number:"
-msgstr "USt-ID-Nr.:"
-
 msgctxt "odt:stock.shipment.out.picking_list:"
 msgid "/"
 msgstr "/"
@@ -1710,18 +1686,10 @@ msgid "Customer:"
 msgstr "Kunde:"
 
 msgctxt "odt:stock.shipment.out.picking_list:"
-msgid "E-Mail:"
-msgstr "E-Mail:"
-
-msgctxt "odt:stock.shipment.out.picking_list:"
 msgid "From Location"
 msgstr "Von Lagerort"
 
 msgctxt "odt:stock.shipment.out.picking_list:"
-msgid "Phone:"
-msgstr "Telefon:"
-
-msgctxt "odt:stock.shipment.out.picking_list:"
 msgid "Picking List"
 msgstr "Pickliste"
 
@@ -1731,7 +1699,7 @@ msgstr "Geplantes Datum:"
 
 msgctxt "odt:stock.shipment.out.picking_list:"
 msgid "Product"
-msgstr "Artikel"
+msgstr "Variante"
 
 msgctxt "odt:stock.shipment.out.picking_list:"
 msgid "Quantity"
@@ -1746,10 +1714,6 @@ msgid "To Location"
 msgstr "Zu Lagerort"
 
 msgctxt "odt:stock.shipment.out.picking_list:"
-msgid "VAT Number:"
-msgstr "USt-ID-Nr.:"
-
-msgctxt "odt:stock.shipment.out.picking_list:"
 msgid "Warehouse:"
 msgstr "Warenlager:"
 
@@ -1770,24 +1734,16 @@ msgid "Customer"
 msgstr "Kunde"
 
 msgctxt "odt:stock.shipment.out.return.restocking_list:"
-msgid "E-Mail:"
-msgstr "E-Mail:"
-
-msgctxt "odt:stock.shipment.out.return.restocking_list:"
 msgid "From Location"
 msgstr "Von Lagerort"
 
 msgctxt "odt:stock.shipment.out.return.restocking_list:"
-msgid "Phone:"
-msgstr "Telefon:"
-
-msgctxt "odt:stock.shipment.out.return.restocking_list:"
 msgid "Planned Date:"
 msgstr "Geplantes Datum:"
 
 msgctxt "odt:stock.shipment.out.return.restocking_list:"
 msgid "Product"
-msgstr "Artikel"
+msgstr "Variante"
 
 msgctxt "odt:stock.shipment.out.return.restocking_list:"
 msgid "Quantity"
@@ -1806,10 +1762,6 @@ msgid "To Location"
 msgstr "Zu Lagerort"
 
 msgctxt "odt:stock.shipment.out.return.restocking_list:"
-msgid "VAT Number:"
-msgstr "USt-ID-Nr.:"
-
-msgctxt "odt:stock.shipment.out.return.restocking_list:"
 msgid "Warehouse:"
 msgstr "Warenlager:"
 
@@ -1830,6 +1782,10 @@ msgid "Customer"
 msgstr "Kunde"
 
 msgctxt "selection:stock.location,type:"
+msgid "Drop"
+msgstr "Direktlieferung"
+
+msgctxt "selection:stock.location,type:"
 msgid "Lost and Found"
 msgstr "Differenzen allgemein"
 
@@ -1983,7 +1939,7 @@ msgstr "Lager"
 
 msgctxt "view:product.by_location.start:"
 msgid "Product by Location"
-msgstr "Artikel nach Lagerort"
+msgstr "Variante nach Lagerort"
 
 msgctxt "view:product.product:"
 msgid "Cost Value"
@@ -1991,7 +1947,7 @@ msgstr "Kosten"
 
 msgctxt "view:product.product:"
 msgid "Products"
-msgstr "Artikel"
+msgstr "Varianten"
 
 msgctxt "view:stock.configuration:"
 msgid "Stock Configuration"
@@ -2007,7 +1963,7 @@ msgstr "Positionen Bestand"
 
 msgctxt "view:stock.inventory:"
 msgid "Add an inventory line for each missing products"
-msgstr "Positionen für Bestandskorrektur um fehlende Artikel ergänzen"
+msgstr "Positionen für Bestandskorrektur um fehlende Varianten ergänzen"
 
 msgctxt "view:stock.inventory:"
 msgid "Cancel"
@@ -2042,6 +1998,10 @@ msgid "Locations"
 msgstr "Lagerorte"
 
 msgctxt "view:stock.move:"
+msgid "Cancel"
+msgstr "Annullieren"
+
+msgctxt "view:stock.move:"
 msgid "Move"
 msgstr "Bewegung"
 
@@ -2049,6 +2009,10 @@ msgctxt "view:stock.move:"
 msgid "Moves"
 msgstr "Lagerbewegungen"
 
+msgctxt "view:stock.move:"
+msgid "Reset to Draft"
+msgstr "Auf Entwurf zurücksetzen"
+
 msgctxt "view:stock.period.cache:"
 msgid "Period Cache"
 msgstr "Lagerperiode Cache"
@@ -2075,15 +2039,15 @@ msgstr "Lagerperioden"
 
 msgctxt "view:stock.product_quantities_warehouse.start:"
 msgid "Product Quantities By Warehouse"
-msgstr "Artikelanzahl nach Warenlager"
+msgstr "Variantenanzahl nach Warenlager"
 
 msgctxt "view:stock.product_quantities_warehouse:"
 msgid "Product Quantities By Warehouse"
-msgstr "Artikelanzahl nach Warenlager"
+msgstr "Variantenanzahl nach Warenlager"
 
 msgctxt "view:stock.products_by_locations.start:"
 msgid "Products by Locations"
-msgstr "Artikel nach Lagerorten"
+msgstr "Varianten nach Lagerorten"
 
 msgctxt "view:stock.shipment.in.return.assign.failed:"
 msgid "Unable to Assign"
@@ -2091,7 +2055,7 @@ msgstr "Fehlmenge Zuweisung"
 
 msgctxt "view:stock.shipment.in.return.assign.failed:"
 msgid "Unable to assign those products:"
-msgstr "Folgende Artikel können nicht zugewiesen werden:"
+msgstr "Folgende Varianten können nicht zugewiesen werden:"
 
 msgctxt "view:stock.shipment.in.return:"
 msgid "Assign"
@@ -2159,7 +2123,7 @@ msgstr "Fehlmenge Zuweisung"
 
 msgctxt "view:stock.shipment.internal.assign.failed:"
 msgid "Unable to assign those products:"
-msgstr "Folgende Artikel können nicht zugewiesen werden:"
+msgstr "Folgende Varianten können nicht zugewiesen werden:"
 
 msgctxt "view:stock.shipment.internal:"
 msgid "Assign"
@@ -2195,7 +2159,7 @@ msgstr "Fehlmenge Zuweisung"
 
 msgctxt "view:stock.shipment.out.assign.failed:"
 msgid "Unable to assign those products:"
-msgstr "Folgende Artikel können nicht zugewiesen werden:"
+msgstr "Folgende Varianten können nicht zugewiesen werden:"
 
 msgctxt "view:stock.shipment.out.return:"
 msgid "Cancel"
diff --git a/locale/es_AR.po b/locale/es_AR.po
index 7df6967..f19afaf 100644
--- a/locale/es_AR.po
+++ b/locale/es_AR.po
@@ -45,7 +45,7 @@ msgstr ""
 
 msgctxt "error:stock.move:"
 msgid "Internal move quantity must be positive"
-msgstr "La cantidad del movimiento interno debe ser positiva."
+msgstr "La cantidad del movimiento interno debe ser positiva"
 
 msgctxt "error:stock.move:"
 msgid "Move quantity must be positive"
@@ -53,7 +53,7 @@ msgstr "La cantidad a mover tiene que ser positiva"
 
 msgctxt "error:stock.move:"
 msgid "Source and destination location must be different"
-msgstr "Las ubicaciones origen y destino deben ser distintas."
+msgstr "Las ubicaciones origen y destino deben ser distintas"
 
 msgctxt "error:stock.move:"
 msgid "The stock move \"%s\" has no origin."
@@ -389,6 +389,10 @@ msgctxt "field:stock.location,parent:"
 msgid "Parent"
 msgstr "Padre"
 
+msgctxt "field:stock.location,picking_location:"
+msgid "Picking"
+msgstr "Picking"
+
 msgctxt "field:stock.location,quantity:"
 msgid "Quantity"
 msgstr "Cantidad"
@@ -1074,6 +1078,10 @@ msgstr ""
 "* Un valor vacío es una fecha infinita en el futuro.\n"
 "* Una fecha del pasado proporcionará valores históricos."
 
+msgctxt "help:stock.location,picking_location:"
+msgid "If empty the Storage is used"
+msgstr "Si está vacío se utiliza el Depósito"
+
 msgctxt "help:stock.products_by_locations.start,forecast_date:"
 msgid ""
 "Allow to compute expected stock quantities for this date.\n"
@@ -1084,10 +1092,6 @@ msgstr ""
 "* Un valor vacío es una fecha infinita en el futuro.\n"
 "* Una fecha del pasado proporcionará valores históricos."
 
-msgctxt "model:ir.action,name:"
-msgid "Create Return Shipment"
-msgstr "Crear Remito de devolución"
-
 msgctxt "model:ir.action,name:act_inventory_form"
 msgid "Inventories"
 msgstr "Inventarios"
@@ -1166,7 +1170,7 @@ msgstr "Nota de envío"
 
 msgctxt "model:ir.action,name:report_shipment_out_picking_list"
 msgid "Picking List"
-msgstr "Lista de selección"
+msgstr "Lista de picking"
 
 msgctxt "model:ir.action,name:report_shipment_out_return_restocking_list"
 msgid "Restocking List"
@@ -1184,6 +1188,10 @@ msgctxt "model:ir.action,name:wizard_products_by_locations"
 msgid "Products by Locations"
 msgstr "Productos por ubicaciones"
 
+msgctxt "model:ir.action,name:wizard_recompute_cost_price"
+msgid "Recompute Cost Price"
+msgstr "Recalcular precio de costo"
+
 msgctxt "model:ir.action,name:wizard_shipment_in_return_assign"
 msgid "Assign Purchase Return Shipment"
 msgstr "Asignar Remito de devolución de compra"
@@ -1540,18 +1548,10 @@ msgid "Code:"
 msgstr "Código:"
 
 msgctxt "odt:stock.shipment.in.restocking_list:"
-msgid "E-Mail:"
-msgstr "Correo electrónico:"
-
-msgctxt "odt:stock.shipment.in.restocking_list:"
 msgid "From Location"
 msgstr "Desde ubicación"
 
 msgctxt "odt:stock.shipment.in.restocking_list:"
-msgid "Phone:"
-msgstr "Teléfono:"
-
-msgctxt "odt:stock.shipment.in.restocking_list:"
 msgid "Planned Date:"
 msgstr "Fecha estimada:"
 
@@ -1580,10 +1580,6 @@ msgid "To Location"
 msgstr "A ubicación"
 
 msgctxt "odt:stock.shipment.in.restocking_list:"
-msgid "VAT Number:"
-msgstr "CUIT:"
-
-msgctxt "odt:stock.shipment.in.restocking_list:"
 msgid "Warehouse:"
 msgstr "Almacén:"
 
@@ -1596,10 +1592,6 @@ msgid "Code:"
 msgstr "Código:"
 
 msgctxt "odt:stock.shipment.internal.report:"
-msgid "E-Mail:"
-msgstr "Correo electrónico:"
-
-msgctxt "odt:stock.shipment.internal.report:"
 msgid "From Location"
 msgstr "Desde ubicación"
 
@@ -1612,10 +1604,6 @@ msgid "Internal Shipment"
 msgstr "Remito interno"
 
 msgctxt "odt:stock.shipment.internal.report:"
-msgid "Phone:"
-msgstr "Teléfono:"
-
-msgctxt "odt:stock.shipment.internal.report:"
 msgid "Planned Date:"
 msgstr "Fecha estimada:"
 
@@ -1639,10 +1627,6 @@ msgctxt "odt:stock.shipment.internal.report:"
 msgid "To Location:"
 msgstr "A ubicación:"
 
-msgctxt "odt:stock.shipment.internal.report:"
-msgid "VAT Number:"
-msgstr "CUIT:"
-
 msgctxt "odt:stock.shipment.out.delivery_note:"
 msgid "/"
 msgstr "/"
@@ -1660,14 +1644,6 @@ msgid "Delivery Note"
 msgstr "Nota de envío"
 
 msgctxt "odt:stock.shipment.out.delivery_note:"
-msgid "E-Mail:"
-msgstr "Correo electrónico:"
-
-msgctxt "odt:stock.shipment.out.delivery_note:"
-msgid "Phone:"
-msgstr "Teléfono:"
-
-msgctxt "odt:stock.shipment.out.delivery_note:"
 msgid "Product"
 msgstr "Producto"
 
@@ -1683,10 +1659,6 @@ msgctxt "odt:stock.shipment.out.delivery_note:"
 msgid "Shipment Number:"
 msgstr "Número de Remito:"
 
-msgctxt "odt:stock.shipment.out.delivery_note:"
-msgid "VAT Number:"
-msgstr "CUIT:"
-
 msgctxt "odt:stock.shipment.out.picking_list:"
 msgid "/"
 msgstr "/"
@@ -1700,20 +1672,12 @@ msgid "Customer:"
 msgstr "Cliente:"
 
 msgctxt "odt:stock.shipment.out.picking_list:"
-msgid "E-Mail:"
-msgstr "Correo electrónico:"
-
-msgctxt "odt:stock.shipment.out.picking_list:"
 msgid "From Location"
 msgstr "Desde ubicación"
 
 msgctxt "odt:stock.shipment.out.picking_list:"
-msgid "Phone:"
-msgstr "Teléfono:"
-
-msgctxt "odt:stock.shipment.out.picking_list:"
 msgid "Picking List"
-msgstr "Lista de selección"
+msgstr "Lista de picking"
 
 msgctxt "odt:stock.shipment.out.picking_list:"
 msgid "Planned Date:"
@@ -1736,10 +1700,6 @@ msgid "To Location"
 msgstr "A ubicación"
 
 msgctxt "odt:stock.shipment.out.picking_list:"
-msgid "VAT Number:"
-msgstr "CUIT:"
-
-msgctxt "odt:stock.shipment.out.picking_list:"
 msgid "Warehouse:"
 msgstr "Almacén:"
 
@@ -1760,18 +1720,10 @@ msgid "Customer"
 msgstr "Cliente"
 
 msgctxt "odt:stock.shipment.out.return.restocking_list:"
-msgid "E-Mail:"
-msgstr "Correo electrónico:"
-
-msgctxt "odt:stock.shipment.out.return.restocking_list:"
 msgid "From Location"
 msgstr "De ubicación"
 
 msgctxt "odt:stock.shipment.out.return.restocking_list:"
-msgid "Phone:"
-msgstr "Teléfono:"
-
-msgctxt "odt:stock.shipment.out.return.restocking_list:"
 msgid "Planned Date:"
 msgstr "Fecha estimada:"
 
@@ -1796,10 +1748,6 @@ msgid "To Location"
 msgstr "A ubicación"
 
 msgctxt "odt:stock.shipment.out.return.restocking_list:"
-msgid "VAT Number:"
-msgstr "CUIT:"
-
-msgctxt "odt:stock.shipment.out.return.restocking_list:"
 msgid "Warehouse:"
 msgstr "Almacén:"
 
@@ -1820,6 +1768,10 @@ msgid "Customer"
 msgstr "Cliente"
 
 msgctxt "selection:stock.location,type:"
+msgid "Drop"
+msgstr "Entrega directa"
+
+msgctxt "selection:stock.location,type:"
 msgid "Lost and Found"
 msgstr "Perdido y encontrado"
 
@@ -2032,6 +1984,10 @@ msgid "Locations"
 msgstr "Ubicaciones"
 
 msgctxt "view:stock.move:"
+msgid "Cancel"
+msgstr "Cancelar"
+
+msgctxt "view:stock.move:"
 msgid "Move"
 msgstr "Movimiento"
 
@@ -2039,6 +1995,10 @@ msgctxt "view:stock.move:"
 msgid "Moves"
 msgstr "Movimientos"
 
+msgctxt "view:stock.move:"
+msgid "Reset to Draft"
+msgstr "Restablecer a borrador"
+
 msgctxt "view:stock.period.cache:"
 msgid "Period Cache"
 msgstr "Período precalculado"
@@ -2109,7 +2069,7 @@ msgstr "Remitos de devolución a proveedor"
 
 msgctxt "view:stock.shipment.in.return:"
 msgid "Wait"
-msgstr "Espera"
+msgstr "Esperar"
 
 msgctxt "view:stock.shipment.in:"
 msgid "Cancel"
@@ -2177,7 +2137,7 @@ msgstr "Remitos internos"
 
 msgctxt "view:stock.shipment.internal:"
 msgid "Wait"
-msgstr "Espera"
+msgstr "Esperar"
 
 msgctxt "view:stock.shipment.out.assign.failed:"
 msgid "Unable to Assign"
@@ -2257,7 +2217,7 @@ msgstr "Movimientos de salida"
 
 msgctxt "view:stock.shipment.out:"
 msgid "Wait"
-msgstr "Espera"
+msgstr "Esperar"
 
 msgctxt "wizard_button:product.by_location,start,end:"
 msgid "Cancel"
diff --git a/locale/es_CO.po b/locale/es_CO.po
index 524b2f4..8582fd2 100644
--- a/locale/es_CO.po
+++ b/locale/es_CO.po
@@ -391,6 +391,10 @@ msgctxt "field:stock.location,parent:"
 msgid "Parent"
 msgstr "Padre"
 
+msgctxt "field:stock.location,picking_location:"
+msgid "Picking"
+msgstr ""
+
 msgctxt "field:stock.location,quantity:"
 msgid "Quantity"
 msgstr "Cantidad"
@@ -1074,6 +1078,10 @@ msgstr ""
 "* Un valor vacío es una fecha infinita en el futuro.\n"
 "* Una fecha del pasado proporcionará valores históricos."
 
+msgctxt "help:stock.location,picking_location:"
+msgid "If empty the Storage is used"
+msgstr ""
+
 msgctxt "help:stock.products_by_locations.start,forecast_date:"
 msgid ""
 "Allow to compute expected stock quantities for this date.\n"
@@ -1084,10 +1092,6 @@ msgstr ""
 "* Un valor vacío es una fecha infinita en el futuro.\n"
 "* Una fecha del pasado proporcionará valores históricos."
 
-msgctxt "model:ir.action,name:"
-msgid "Create Return Shipment"
-msgstr "Crear Devolución"
-
 msgctxt "model:ir.action,name:act_inventory_form"
 msgid "Inventories"
 msgstr "Inventarios"
@@ -1184,6 +1188,10 @@ msgctxt "model:ir.action,name:wizard_products_by_locations"
 msgid "Products by Locations"
 msgstr "Productos por Bodegas"
 
+msgctxt "model:ir.action,name:wizard_recompute_cost_price"
+msgid "Recompute Cost Price"
+msgstr ""
+
 msgctxt "model:ir.action,name:wizard_shipment_in_return_assign"
 msgid "Assign Purchase Return Shipment"
 msgstr "Asignar Envío de Devolución de Compra"
@@ -1540,18 +1548,10 @@ msgid "Code:"
 msgstr "Código:"
 
 msgctxt "odt:stock.shipment.in.restocking_list:"
-msgid "E-Mail:"
-msgstr "Correo electrónico:"
-
-msgctxt "odt:stock.shipment.in.restocking_list:"
 msgid "From Location"
 msgstr "Desde Bodega"
 
 msgctxt "odt:stock.shipment.in.restocking_list:"
-msgid "Phone:"
-msgstr "Teléfono:"
-
-msgctxt "odt:stock.shipment.in.restocking_list:"
 msgid "Planned Date:"
 msgstr "Fecha Planeada:"
 
@@ -1580,10 +1580,6 @@ msgid "To Location"
 msgstr "A Bodega"
 
 msgctxt "odt:stock.shipment.in.restocking_list:"
-msgid "VAT Number:"
-msgstr "Número Identificación:"
-
-msgctxt "odt:stock.shipment.in.restocking_list:"
 msgid "Warehouse:"
 msgstr "Depósito:"
 
@@ -1596,10 +1592,6 @@ msgid "Code:"
 msgstr "Código:"
 
 msgctxt "odt:stock.shipment.internal.report:"
-msgid "E-Mail:"
-msgstr "Correo electrónico:"
-
-msgctxt "odt:stock.shipment.internal.report:"
 msgid "From Location"
 msgstr "Desde Bodega"
 
@@ -1612,10 +1604,6 @@ msgid "Internal Shipment"
 msgstr "Envío Interno"
 
 msgctxt "odt:stock.shipment.internal.report:"
-msgid "Phone:"
-msgstr "Teléfono:"
-
-msgctxt "odt:stock.shipment.internal.report:"
 msgid "Planned Date:"
 msgstr "Fecha Planeada:"
 
@@ -1639,10 +1627,6 @@ msgctxt "odt:stock.shipment.internal.report:"
 msgid "To Location:"
 msgstr "A Bodega:"
 
-msgctxt "odt:stock.shipment.internal.report:"
-msgid "VAT Number:"
-msgstr "Número Identificación:"
-
 msgctxt "odt:stock.shipment.out.delivery_note:"
 msgid "/"
 msgstr "/"
@@ -1660,14 +1644,6 @@ msgid "Delivery Note"
 msgstr "Nota de Entrega"
 
 msgctxt "odt:stock.shipment.out.delivery_note:"
-msgid "E-Mail:"
-msgstr "Correo electrónico:"
-
-msgctxt "odt:stock.shipment.out.delivery_note:"
-msgid "Phone:"
-msgstr "Teléfono:"
-
-msgctxt "odt:stock.shipment.out.delivery_note:"
 msgid "Product"
 msgstr "Producto"
 
@@ -1683,10 +1659,6 @@ msgctxt "odt:stock.shipment.out.delivery_note:"
 msgid "Shipment Number:"
 msgstr "Número de Envío:"
 
-msgctxt "odt:stock.shipment.out.delivery_note:"
-msgid "VAT Number:"
-msgstr "Número Identificación:"
-
 msgctxt "odt:stock.shipment.out.picking_list:"
 msgid "/"
 msgstr "/"
@@ -1700,18 +1672,10 @@ msgid "Customer:"
 msgstr "Cliente:"
 
 msgctxt "odt:stock.shipment.out.picking_list:"
-msgid "E-Mail:"
-msgstr "Correo electrónico:"
-
-msgctxt "odt:stock.shipment.out.picking_list:"
 msgid "From Location"
 msgstr "Desde Bodega"
 
 msgctxt "odt:stock.shipment.out.picking_list:"
-msgid "Phone:"
-msgstr "Teléfono:"
-
-msgctxt "odt:stock.shipment.out.picking_list:"
 msgid "Picking List"
 msgstr "Lista de selección"
 
@@ -1736,10 +1700,6 @@ msgid "To Location"
 msgstr "A Bodega"
 
 msgctxt "odt:stock.shipment.out.picking_list:"
-msgid "VAT Number:"
-msgstr "Número Identificación:"
-
-msgctxt "odt:stock.shipment.out.picking_list:"
 msgid "Warehouse:"
 msgstr "Depósito:"
 
@@ -1760,18 +1720,10 @@ msgid "Customer"
 msgstr "Cliente"
 
 msgctxt "odt:stock.shipment.out.return.restocking_list:"
-msgid "E-Mail:"
-msgstr "Correo electrónico:"
-
-msgctxt "odt:stock.shipment.out.return.restocking_list:"
 msgid "From Location"
 msgstr "Desde Bodega"
 
 msgctxt "odt:stock.shipment.out.return.restocking_list:"
-msgid "Phone:"
-msgstr "Teléfono:"
-
-msgctxt "odt:stock.shipment.out.return.restocking_list:"
 msgid "Planned Date:"
 msgstr "Fecha Planeada:"
 
@@ -1796,10 +1748,6 @@ msgid "To Location"
 msgstr "A Bodega"
 
 msgctxt "odt:stock.shipment.out.return.restocking_list:"
-msgid "VAT Number:"
-msgstr "Número Identificación:"
-
-msgctxt "odt:stock.shipment.out.return.restocking_list:"
 msgid "Warehouse:"
 msgstr "Depósito:"
 
@@ -1820,6 +1768,10 @@ msgid "Customer"
 msgstr "Cliente"
 
 msgctxt "selection:stock.location,type:"
+msgid "Drop"
+msgstr ""
+
+msgctxt "selection:stock.location,type:"
 msgid "Lost and Found"
 msgstr "Perdido y Encontrado"
 
@@ -2032,6 +1984,10 @@ msgid "Locations"
 msgstr "Bodegas"
 
 msgctxt "view:stock.move:"
+msgid "Cancel"
+msgstr ""
+
+msgctxt "view:stock.move:"
 msgid "Move"
 msgstr "Movimiento"
 
@@ -2039,6 +1995,10 @@ msgctxt "view:stock.move:"
 msgid "Moves"
 msgstr "Movimientos"
 
+msgctxt "view:stock.move:"
+msgid "Reset to Draft"
+msgstr ""
+
 msgctxt "view:stock.period.cache:"
 msgid "Period Cache"
 msgstr "Caché de Período"
diff --git a/locale/es_EC.po b/locale/es_EC.po
index 2fb1338..119663a 100644
--- a/locale/es_EC.po
+++ b/locale/es_EC.po
@@ -31,17 +31,15 @@ msgstr "La línea \"%s\" no es única en el Inventario \"%s\"."
 
 msgctxt "error:stock.location:"
 msgid "Location \"%(location)s\" must be a child of warehouse \"%(warehouse)s\"."
-msgstr ""
-"La(s) bodega(s) \"%(location)s\" debe(n) ser hija(s) del almacén  "
-"\"%(warehouse)s\"."
+msgstr "La ubicación \"%(location)s\" debe ser hija de la bodega \"%(warehouse)s\"."
 
 msgctxt "error:stock.location:"
 msgid ""
 "Location \"%s\" with existing moves cannot be changed to a type that does "
 "not support moves."
 msgstr ""
-"La bodega \"%s\" tiene movimientos y no puede ser cambiada a un tipo que no "
-"soporta movimientos."
+"No puede cambiar la ubicación \"%s\" con movimientos a otra ubicación que no"
+" soporte movimientos."
 
 msgctxt "error:stock.move:"
 msgid "Internal move quantity must be positive"
@@ -53,7 +51,7 @@ msgstr "La cantidad del movimiento debe ser positiva"
 
 msgctxt "error:stock.move:"
 msgid "Source and destination location must be different"
-msgstr "Las bodegas origen y destino deben ser distintas"
+msgstr "Las ubicaciones origen y destino deben ser distintas"
 
 msgctxt "error:stock.move:"
 msgid "The stock move \"%s\" has no origin."
@@ -111,41 +109,42 @@ msgstr ""
 msgctxt "error:stock.shipment.in.return:"
 msgid "Supplier Return Shipment \"%s\" must be cancelled before deletion."
 msgstr ""
-"El envío de devolución a proveedor \"%s\" debe ser cancelado antes de ser "
-"eliminado."
+"Debe cancelar la guía de remisión de devolución a proveedor \"%s\" antes de "
+"eliminarla."
 
 msgctxt "error:stock.shipment.in:"
 msgid ""
 "Incoming Moves must have the warehouse input location as destination "
 "location."
 msgstr ""
-"Los movimientos de entrada deben tener un almacén de entrada como bodega "
-"destino."
+"Los movimientos de entrada deben tener un almacén de entrada como ubicación "
+"de destino."
 
 msgctxt "error:stock.shipment.in:"
 msgid ""
 "Inventory Moves must have the warehouse input location as source location."
 msgstr ""
-"Los movimientos de inventario deben tener un almacén de entrada como bodega "
-"de origen."
+"Los movimientos de inventario deben tener un almacén de entrada como "
+"ubicación de origen."
 
 msgctxt "error:stock.shipment.in:"
 msgid "Supplier Shipment \"%s\" must be cancelled before deletion."
-msgstr "El envío de proveedor \"%s\" debe ser cancelado antes de ser eliminado!"
+msgstr ""
+"Debe cancelar la guía de remisión de proveedor \"%s\" antes de eliminarla."
 
 msgctxt "error:stock.shipment.internal:"
 msgid "Internal Shipment \"%s\" must be cancelled before deletion."
-msgstr "Debe cancelar el envío interno \"%s\" antes de eliminarlo."
+msgstr "Debe cancelar la guía de remisión interna \"%s\" antes de eliminarla."
 
 msgctxt "error:stock.shipment.out.return:"
 msgid "Customer Return Shipment \"%s\" must be cancelled before deletion."
 msgstr ""
-"El envío de devolución de cliente \"%s\" debe ser cancelado antes de "
-"eliminarse."
+"Debe cancelar la guía de remisión de devolución de cliente \"%s\" antes de "
+"eliminarla."
 
 msgctxt "error:stock.shipment.out:"
 msgid "Customer Shipment \"%s\" must be cancelled before deletion."
-msgstr "El envío de cliente \"%s\" debe ser cancelado antes de eliminarse."
+msgstr "Debe cancelar la guía de remisión a cliente \"%s\" antes de eliminarla."
 
 msgctxt "field:party.address,delivery:"
 msgid "Delivery"
@@ -153,11 +152,11 @@ msgstr "Entrega"
 
 msgctxt "field:party.party,customer_location:"
 msgid "Customer Location"
-msgstr "Bodega del cliente"
+msgstr "Ubicación cliente"
 
 msgctxt "field:party.party,supplier_location:"
 msgid "Supplier Location"
-msgstr "Bodega del proveedor"
+msgstr "Ubicación proveedor"
 
 msgctxt "field:product.by_location.start,forecast_date:"
 msgid "At Date"
@@ -209,23 +208,23 @@ msgstr "Nombre"
 
 msgctxt "field:stock.configuration,shipment_in_return_sequence:"
 msgid "Supplier Return Shipment Sequence"
-msgstr "Secuencia de envío de devolución a proveedor"
+msgstr "Secuencia de guía de remisión de devolución a proveedor"
 
 msgctxt "field:stock.configuration,shipment_in_sequence:"
 msgid "Supplier Shipment Sequence"
-msgstr "Secuencia de envío de proveedor"
+msgstr "Secuencia de guía de remisión de proveedor"
 
 msgctxt "field:stock.configuration,shipment_internal_sequence:"
 msgid "Internal Shipment Sequence"
-msgstr "Secuencia de envío interno"
+msgstr "Secuencia de guía de remisión interna"
 
 msgctxt "field:stock.configuration,shipment_out_return_sequence:"
 msgid "Customer Return Shipment Sequence"
-msgstr "Secuencia de devolución de cliente"
+msgstr "Secuencia de guía de remisión de devolución de cliente"
 
 msgctxt "field:stock.configuration,shipment_out_sequence:"
 msgid "Customer Shipment Sequence"
-msgstr "Secuencia de envío a cliente"
+msgstr "Secuencia de guía de remisión a cliente"
 
 msgctxt "field:stock.configuration,write_date:"
 msgid "Write Date"
@@ -261,7 +260,7 @@ msgstr "Líneas"
 
 msgctxt "field:stock.inventory,location:"
 msgid "Location"
-msgstr "Bodega"
+msgstr "Ubicación"
 
 msgctxt "field:stock.inventory,lost_found:"
 msgid "Lost and Found"
@@ -391,6 +390,10 @@ msgctxt "field:stock.location,parent:"
 msgid "Parent"
 msgstr "Padre"
 
+msgctxt "field:stock.location,picking_location:"
+msgid "Picking"
+msgstr "Recogida"
+
 msgctxt "field:stock.location,quantity:"
 msgid "Quantity"
 msgstr "Cantidad"
@@ -405,11 +408,11 @@ msgstr "Derecha"
 
 msgctxt "field:stock.location,storage_location:"
 msgid "Storage"
-msgstr "Almacén"
+msgstr "Almacenamiento"
 
 msgctxt "field:stock.location,type:"
 msgid "Location type"
-msgstr "Tipo de bodega"
+msgstr "Tipo de ubicación"
 
 msgctxt "field:stock.location,write_date:"
 msgid "Write Date"
@@ -445,7 +448,7 @@ msgstr "Fecha efectiva"
 
 msgctxt "field:stock.move,from_location:"
 msgid "From Location"
-msgstr "Desde bodega"
+msgstr "Desde ubicación"
 
 msgctxt "field:stock.move,id:"
 msgid "ID"
@@ -489,7 +492,7 @@ msgstr "Estado"
 
 msgctxt "field:stock.move,to_location:"
 msgid "To Location"
-msgstr "A Bodega"
+msgstr "A ubicación"
 
 msgctxt "field:stock.move,unit_digits:"
 msgid "Unit Digits"
@@ -573,7 +576,7 @@ msgstr "Cantidad interna"
 
 msgctxt "field:stock.period.cache,location:"
 msgid "Location"
-msgstr "Bodega"
+msgstr "Ubicación"
 
 msgctxt "field:stock.period.cache,period:"
 msgid "Period"
@@ -633,7 +636,7 @@ msgstr "ID"
 
 msgctxt "field:stock.product_quantities_warehouse.start,warehouse:"
 msgid "Warehouse"
-msgstr "Almacén"
+msgstr "Bodega"
 
 msgctxt "field:stock.products_by_locations.start,forecast_date:"
 msgid "At Date"
@@ -709,19 +712,19 @@ msgstr "Proveedor"
 
 msgctxt "field:stock.shipment.in,supplier_location:"
 msgid "Supplier Location"
-msgstr "Bodega del proveedor"
+msgstr "Ubicación proveedor"
 
 msgctxt "field:stock.shipment.in,warehouse:"
 msgid "Warehouse"
-msgstr "Depósito"
+msgstr "Bodega"
 
 msgctxt "field:stock.shipment.in,warehouse_input:"
 msgid "Warehouse Input"
-msgstr "Almacén de entrada"
+msgstr "Bodega de entrada"
 
 msgctxt "field:stock.shipment.in,warehouse_storage:"
 msgid "Warehouse Storage"
-msgstr "Depósito de almacenamiento"
+msgstr "Bodega de almacenamiento"
 
 msgctxt "field:stock.shipment.in,write_date:"
 msgid "Write Date"
@@ -753,7 +756,7 @@ msgstr "Fecha efectiva"
 
 msgctxt "field:stock.shipment.in.return,from_location:"
 msgid "From Location"
-msgstr "Desde bodega"
+msgstr "Desde ubicación"
 
 msgctxt "field:stock.shipment.in.return,id:"
 msgid "ID"
@@ -785,7 +788,7 @@ msgstr "Estado"
 
 msgctxt "field:stock.shipment.in.return,to_location:"
 msgid "To Location"
-msgstr "A bodega"
+msgstr "A ubicación"
 
 msgctxt "field:stock.shipment.in.return,write_date:"
 msgid "Write Date"
@@ -825,7 +828,7 @@ msgstr "Fecha efectiva"
 
 msgctxt "field:stock.shipment.internal,from_location:"
 msgid "From Location"
-msgstr "Desde bodega"
+msgstr "Desde ubicación"
 
 msgctxt "field:stock.shipment.internal,id:"
 msgid "ID"
@@ -853,7 +856,7 @@ msgstr "Estado"
 
 msgctxt "field:stock.shipment.internal,to_location:"
 msgid "To Location"
-msgstr "A Bodega"
+msgstr "A ubicación"
 
 msgctxt "field:stock.shipment.internal,write_date:"
 msgid "Write Date"
@@ -893,7 +896,7 @@ msgstr "Cliente"
 
 msgctxt "field:stock.shipment.out,customer_location:"
 msgid "Customer Location"
-msgstr "Bodega del cliente"
+msgstr "Ubicación cliente"
 
 msgctxt "field:stock.shipment.out,delivery_address:"
 msgid "Delivery Address"
@@ -925,7 +928,7 @@ msgstr "Movimientos de salida"
 
 msgctxt "field:stock.shipment.out,planned_date:"
 msgid "Planned Date"
-msgstr "Fecha Planificada"
+msgstr "Fecha planificada"
 
 msgctxt "field:stock.shipment.out,rec_name:"
 msgid "Name"
@@ -941,15 +944,15 @@ msgstr "Estado"
 
 msgctxt "field:stock.shipment.out,warehouse:"
 msgid "Warehouse"
-msgstr "Depósito"
+msgstr "Bodega"
 
 msgctxt "field:stock.shipment.out,warehouse_output:"
 msgid "Warehouse Output"
-msgstr "Almacén de Salida"
+msgstr "Bodega de salida"
 
 msgctxt "field:stock.shipment.out,warehouse_storage:"
 msgid "Warehouse Storage"
-msgstr "Depósito de Almacenamiento"
+msgstr "Bodega de almacenamiento"
 
 msgctxt "field:stock.shipment.out,write_date:"
 msgid "Write Date"
@@ -989,7 +992,7 @@ msgstr "Cliente"
 
 msgctxt "field:stock.shipment.out.return,customer_location:"
 msgid "Customer Location"
-msgstr "Bodega del cliente"
+msgstr "Ubicación cliente"
 
 msgctxt "field:stock.shipment.out.return,delivery_address:"
 msgid "Delivery Address"
@@ -997,7 +1000,7 @@ msgstr "Dirección de entrega"
 
 msgctxt "field:stock.shipment.out.return,effective_date:"
 msgid "Effective Date"
-msgstr "Fecha Efectiva"
+msgstr "Fecha efectiva"
 
 msgctxt "field:stock.shipment.out.return,id:"
 msgid "ID"
@@ -1037,15 +1040,15 @@ msgstr "Estado"
 
 msgctxt "field:stock.shipment.out.return,warehouse:"
 msgid "Warehouse"
-msgstr "Almacén"
+msgstr "Bodega"
 
 msgctxt "field:stock.shipment.out.return,warehouse_input:"
 msgid "Warehouse Input"
-msgstr "Almacén de entrada"
+msgstr "Bodega de entrada"
 
 msgctxt "field:stock.shipment.out.return,warehouse_storage:"
 msgid "Warehouse Storage"
-msgstr "Depósito de almacenamiento"
+msgstr "Bodega de almacenamiento"
 
 msgctxt "field:stock.shipment.out.return,write_date:"
 msgid "Write Date"
@@ -1058,12 +1061,12 @@ msgstr "Modificado por usuario"
 msgctxt "help:party.party,customer_location:"
 msgid "The default destination location when sending products to the party."
 msgstr ""
-"La bodega de destino por defecto cuando se envían productos al tercero."
+"La ubicación de destino por defecto cuando se envían productos al tercero."
 
 msgctxt "help:party.party,supplier_location:"
 msgid "The default source location when receiving products from the party."
 msgstr ""
-"La bodega de origen por defecto cuando se reciben productos del tercero."
+"La ubicación de origen por defecto cuando se reciben productos del tercero."
 
 msgctxt "help:product.by_location.start,forecast_date:"
 msgid ""
@@ -1075,6 +1078,10 @@ msgstr ""
 "* Un valor vacío es una fecha infinita en el futuro.\n"
 "* Una fecha del pasado proporcionará valores históricos."
 
+msgctxt "help:stock.location,picking_location:"
+msgid "If empty the Storage is used"
+msgstr "Si está vacío se utiliza el almacenamiento"
+
 msgctxt "help:stock.products_by_locations.start,forecast_date:"
 msgid ""
 "Allow to compute expected stock quantities for this date.\n"
@@ -1085,25 +1092,21 @@ msgstr ""
 "* Un valor vacío es una fecha infinita en el futuro.\n"
 "* Una fecha del pasado proporcionará valores históricos."
 
-msgctxt "model:ir.action,name:"
-msgid "Create Return Shipment"
-msgstr "Crear devolución"
-
 msgctxt "model:ir.action,name:act_inventory_form"
 msgid "Inventories"
 msgstr "Inventarios"
 
 msgctxt "model:ir.action,name:act_location_form"
 msgid "Locations"
-msgstr "Editar bodegas"
+msgstr "Editar ubicaciones"
 
 msgctxt "model:ir.action,name:act_location_quantity_tree"
 msgid "Locations"
-msgstr "Consultar bodegas"
+msgstr "Ubicaciones"
 
 msgctxt "model:ir.action,name:act_location_tree"
 msgid "Locations"
-msgstr "Bodegas"
+msgstr "Ubicaciones"
 
 msgctxt "model:ir.action,name:act_move_form"
 msgid "Moves"
@@ -1115,7 +1118,7 @@ msgstr "Períodos"
 
 msgctxt "model:ir.action,name:act_product_quantities_warehouse"
 msgid "Product Quantities By Warehouse"
-msgstr "Cantidades de producto por almacén"
+msgstr "Cantidades de producto por bodega"
 
 msgctxt "model:ir.action,name:act_products_by_locations"
 msgid "Products"
@@ -1123,31 +1126,31 @@ msgstr "Productos"
 
 msgctxt "model:ir.action,name:act_shipment_in_form"
 msgid "Supplier Shipments"
-msgstr "Envíos de proveedores"
+msgstr "Guías de remisión de proveedor"
 
 msgctxt "model:ir.action,name:act_shipment_in_return_form"
 msgid "Supplier Return Shipments"
-msgstr "Devoluciones a proveedor"
+msgstr "Guías de remisión de devolución a proveedor"
 
 msgctxt "model:ir.action,name:act_shipment_internal_form"
 msgid "Internal Shipments"
-msgstr "Envíos internos"
+msgstr "Guías de remisión internas"
 
 msgctxt "model:ir.action,name:act_shipment_out_form"
 msgid "Customer Shipments"
-msgstr "Envíos a cliente"
+msgstr "Guías de remisión a cliente"
 
 msgctxt "model:ir.action,name:act_shipment_out_form2"
 msgid "Customer Shipments"
-msgstr "Envíos a cliente"
+msgstr "Guías de remisión a cliente"
 
 msgctxt "model:ir.action,name:act_shipment_out_form3"
 msgid "Supplier Shipments"
-msgstr "Envíos de proveedor"
+msgstr "Guías de remisión de proveedor"
 
 msgctxt "model:ir.action,name:act_shipment_out_return_form"
 msgid "Customer Return Shipments"
-msgstr "Devoluciones de cliente"
+msgstr "Guías de remisión de devolución de cliente"
 
 msgctxt "model:ir.action,name:act_stock_configuration_form"
 msgid "Stock Configuration"
@@ -1159,7 +1162,7 @@ msgstr "Lista de reabastecimiento"
 
 msgctxt "model:ir.action,name:report_shipment_internal"
 msgid "Internal Shipment"
-msgstr "Envío interno"
+msgstr "Guía de remisión interna"
 
 msgctxt "model:ir.action,name:report_shipment_out_delivery_note"
 msgid "Delivery Note"
@@ -1167,7 +1170,7 @@ msgstr "Nota de entrega"
 
 msgctxt "model:ir.action,name:report_shipment_out_picking_list"
 msgid "Picking List"
-msgstr "Lista de selección"
+msgstr "Lista de recogida"
 
 msgctxt "model:ir.action,name:report_shipment_out_return_restocking_list"
 msgid "Restocking List"
@@ -1175,27 +1178,31 @@ msgstr "Lista de reabastecimiento"
 
 msgctxt "model:ir.action,name:wizard_product_by_location"
 msgid "Product by Locations"
-msgstr "Producto por bodegas"
+msgstr "Producto por ubicación"
 
 msgctxt "model:ir.action,name:wizard_product_quantities_warehouse"
 msgid "Product Quantities By Warehouse"
-msgstr "Cantidades de producto por almacén"
+msgstr "Cantidades de producto por bodega"
 
 msgctxt "model:ir.action,name:wizard_products_by_locations"
 msgid "Products by Locations"
-msgstr "Productos por bodegas"
+msgstr "Productos por ubicación"
+
+msgctxt "model:ir.action,name:wizard_recompute_cost_price"
+msgid "Recompute Cost Price"
+msgstr "Recalcular el precio de costo"
 
 msgctxt "model:ir.action,name:wizard_shipment_in_return_assign"
 msgid "Assign Purchase Return Shipment"
-msgstr "Asignar envío de devolución de compra"
+msgstr "Asignar guía de remisión de devolución de compra"
 
 msgctxt "model:ir.action,name:wizard_shipment_internal_assign"
 msgid "Assign Shipment Internal"
-msgstr "Asignar envío interno"
+msgstr "Asignar guía de remisión interna"
 
 msgctxt "model:ir.action,name:wizard_shipment_out_assign"
 msgid "Assign Shipment Out"
-msgstr "Asignar salida de envío"
+msgstr "Asignar guía de remisión de salida"
 
 msgctxt "model:ir.action.act_window.domain,name:act_inventory_form_domain_all"
 msgid "All"
@@ -1218,7 +1225,7 @@ msgstr "Desde proveedores"
 msgctxt ""
 "model:ir.action.act_window.domain,name:act_move_form_domain_from_supplier_waiting"
 msgid "From Suppliers Waiting"
-msgstr "En espera desde proveedores"
+msgstr "En espera desde proveedor"
 
 msgctxt ""
 "model:ir.action.act_window.domain,name:act_move_form_domain_to_customer"
@@ -1258,7 +1265,7 @@ msgstr "Borrador"
 msgctxt ""
 "model:ir.action.act_window.domain,name:act_shipment_in_return_form_domain_waiting"
 msgid "Waiting"
-msgstr "En Espera"
+msgstr "En espera"
 
 msgctxt ""
 "model:ir.action.act_window.domain,name:act_shipment_internal_form_domain_all"
@@ -1322,43 +1329,43 @@ msgstr "Recibido"
 
 msgctxt "model:ir.sequence,name:sequence_shipment_in"
 msgid "Supplier Shipment"
-msgstr "Envío de proveedor"
+msgstr "Guía de remisión de proveedor"
 
 msgctxt "model:ir.sequence,name:sequence_shipment_in_return"
 msgid "Supplier Return Shipment"
-msgstr "Devolución a proveedor"
+msgstr "Guía de remisión de devolución a proveedor"
 
 msgctxt "model:ir.sequence,name:sequence_shipment_internal"
 msgid "Internal Shipment"
-msgstr "Envío interno"
+msgstr "Guía de remisión interna"
 
 msgctxt "model:ir.sequence,name:sequence_shipment_out"
 msgid "Customer Shipment"
-msgstr "Envío a cliente"
+msgstr "Guía de remisión a cliente"
 
 msgctxt "model:ir.sequence,name:sequence_shipment_out_return"
 msgid "Customer Return Shipment"
-msgstr "Devolución de cliente"
+msgstr "Guía de remisión de devolución de cliente"
 
 msgctxt "model:ir.sequence.type,name:sequence_type_shipment_in"
 msgid "Supplier Shipment"
-msgstr "Envío de proveedor"
+msgstr "Guía de remisión de proveedor"
 
 msgctxt "model:ir.sequence.type,name:sequence_type_shipment_in_return"
 msgid "Supplier Return Shipment"
-msgstr "Devolución a proveedor"
+msgstr "Guía de remisión de devolución a proveedor"
 
 msgctxt "model:ir.sequence.type,name:sequence_type_shipment_internal"
 msgid "Internal Shipment"
-msgstr "Envío interno"
+msgstr "Guía de remisión interna"
 
 msgctxt "model:ir.sequence.type,name:sequence_type_shipment_out"
 msgid "Customer Shipment"
-msgstr "Envío a cliente"
+msgstr "Guía de remisión a cliente"
 
 msgctxt "model:ir.sequence.type,name:sequence_type_shipment_out_return"
 msgid "Customer Return Shipment"
-msgstr "Devolución de cliente"
+msgstr "Guía de remisión de devolución de cliente"
 
 msgctxt "model:ir.ui.menu,name:menu_configuration"
 msgid "Configuration"
@@ -1370,11 +1377,11 @@ msgstr "Inventarios"
 
 msgctxt "model:ir.ui.menu,name:menu_location_form"
 msgid "Locations"
-msgstr "Editar bodegas"
+msgstr "Editar Ubicaciones"
 
 msgctxt "model:ir.ui.menu,name:menu_location_tree"
 msgid "Locations"
-msgstr "Consultar bodegas"
+msgstr "Ubicaciones"
 
 msgctxt "model:ir.ui.menu,name:menu_move_form"
 msgid "Moves"
@@ -1390,23 +1397,23 @@ msgstr "Informes"
 
 msgctxt "model:ir.ui.menu,name:menu_shipment_in_form"
 msgid "Supplier Shipments"
-msgstr "Envíos de proveedores"
+msgstr "Guías de Remisión de Proveedores"
 
 msgctxt "model:ir.ui.menu,name:menu_shipment_in_return_form"
 msgid "Supplier Return Shipments"
-msgstr "Devoluciones a proveedores"
+msgstr "Guías de Remisión de Devoluciones a Proveedores"
 
 msgctxt "model:ir.ui.menu,name:menu_shipment_internal_form"
 msgid "Internal Shipments"
-msgstr "Envíos internos"
+msgstr "Guías de Remisión Internas"
 
 msgctxt "model:ir.ui.menu,name:menu_shipment_out_form"
 msgid "Customer Shipments"
-msgstr "Envíos a clientes"
+msgstr "Guías de Remisión a Clientes"
 
 msgctxt "model:ir.ui.menu,name:menu_shipment_out_return_form"
 msgid "Customer Return Shipments"
-msgstr "Devoluciones de clientes"
+msgstr "Devoluciones de Clientes"
 
 msgctxt "model:ir.ui.menu,name:menu_stock"
 msgid "Inventory & Stock"
@@ -1414,11 +1421,11 @@ msgstr "Inventarios"
 
 msgctxt "model:ir.ui.menu,name:menu_stock_configuration"
 msgid "Stock Configuration"
-msgstr "Stock"
+msgstr "Configuración de Stock"
 
 msgctxt "model:product.by_location.start,name:"
 msgid "Product by Location"
-msgstr "Producto por bodega"
+msgstr "Producto por ubicación"
 
 msgctxt "model:res.group,name:group_stock"
 msgid "Stock"
@@ -1446,7 +1453,7 @@ msgstr "Línea de inventario de stock"
 
 msgctxt "model:stock.location,name:"
 msgid "Stock Location"
-msgstr "Bodega de stock"
+msgstr "Ubicación de stock"
 
 msgctxt "model:stock.location,name:location_customer"
 msgid "Customer"
@@ -1474,7 +1481,7 @@ msgstr "Proveedor"
 
 msgctxt "model:stock.location,name:location_warehouse"
 msgid "Warehouse"
-msgstr "Depósito principal"
+msgstr "Bodega"
 
 msgctxt "model:stock.move,name:"
 msgid "Stock Move"
@@ -1490,47 +1497,47 @@ msgstr "Período de stock precalculado"
 
 msgctxt "model:stock.product_quantities_warehouse,name:"
 msgid "Product Quantities By Warehouse"
-msgstr "Cantidades de producto por almacén"
+msgstr "Cantidades de producto por bodega"
 
 msgctxt "model:stock.product_quantities_warehouse.start,name:"
 msgid "Product Quantities By Warehouse"
-msgstr "Cantidades de producto por almacén"
+msgstr "Cantidades de producto por bodega"
 
 msgctxt "model:stock.products_by_locations.start,name:"
 msgid "Products by Locations"
-msgstr "Productos por bodegas"
+msgstr "Productos por ubicaciones"
 
 msgctxt "model:stock.shipment.in,name:"
 msgid "Supplier Shipment"
-msgstr "Envío de proveedor"
+msgstr "Guía de remisión de proveedor"
 
 msgctxt "model:stock.shipment.in.return,name:"
 msgid "Supplier Return Shipment"
-msgstr "Envío de devolución a proveedor"
+msgstr "Guías de remisión de devolución a proveedor"
 
 msgctxt "model:stock.shipment.in.return.assign.failed,name:"
 msgid "Assign Supplier Return Shipment"
-msgstr "Asignar envío de devolución de proveedor"
+msgstr "Asignar guía de remisión de devolución a proveedor"
 
 msgctxt "model:stock.shipment.internal,name:"
 msgid "Internal Shipment"
-msgstr "Envío interno"
+msgstr "Guía de remisión interna"
 
 msgctxt "model:stock.shipment.internal.assign.failed,name:"
 msgid "Assign Shipment Internal"
-msgstr "Asignar envío interno"
+msgstr "Asignar guía de remisión interna"
 
 msgctxt "model:stock.shipment.out,name:"
 msgid "Customer Shipment"
-msgstr "Envío a cliente"
+msgstr "Guía de remisión a cliente"
 
 msgctxt "model:stock.shipment.out.assign.failed,name:"
 msgid "Assign Shipment Out"
-msgstr "Asignación de salida de envío"
+msgstr "Asignar guía de remisión de salida"
 
 msgctxt "model:stock.shipment.out.return,name:"
 msgid "Customer Return Shipment"
-msgstr "Envío de devolución de cliente"
+msgstr "Guía de remisión de devolución de cliente"
 
 msgctxt "odt:stock.shipment.in.restocking_list:"
 msgid "/"
@@ -1541,16 +1548,8 @@ msgid "Code:"
 msgstr "Código:"
 
 msgctxt "odt:stock.shipment.in.restocking_list:"
-msgid "E-Mail:"
-msgstr "Correo electrónico:"
-
-msgctxt "odt:stock.shipment.in.restocking_list:"
 msgid "From Location"
-msgstr "Desde bodega"
-
-msgctxt "odt:stock.shipment.in.restocking_list:"
-msgid "Phone:"
-msgstr "Teléfono:"
+msgstr "Desde ubicación"
 
 msgctxt "odt:stock.shipment.in.restocking_list:"
 msgid "Planned Date:"
@@ -1578,15 +1577,11 @@ msgstr "Proveedor:"
 
 msgctxt "odt:stock.shipment.in.restocking_list:"
 msgid "To Location"
-msgstr "A Bodega"
-
-msgctxt "odt:stock.shipment.in.restocking_list:"
-msgid "VAT Number:"
-msgstr "Número de RUC:"
+msgstr "A ubicación"
 
 msgctxt "odt:stock.shipment.in.restocking_list:"
 msgid "Warehouse:"
-msgstr "Depósito:"
+msgstr "Bodega:"
 
 msgctxt "odt:stock.shipment.internal.report:"
 msgid "/"
@@ -1597,24 +1592,16 @@ msgid "Code:"
 msgstr "Código:"
 
 msgctxt "odt:stock.shipment.internal.report:"
-msgid "E-Mail:"
-msgstr "Correo electrónico:"
-
-msgctxt "odt:stock.shipment.internal.report:"
 msgid "From Location"
-msgstr "Desde bodega"
+msgstr "Desde ubicación"
 
 msgctxt "odt:stock.shipment.internal.report:"
 msgid "From Location:"
-msgstr "Desde bodega:"
+msgstr "Desde ubicación:"
 
 msgctxt "odt:stock.shipment.internal.report:"
 msgid "Internal Shipment"
-msgstr "Envío interno"
-
-msgctxt "odt:stock.shipment.internal.report:"
-msgid "Phone:"
-msgstr "Teléfono:"
+msgstr "Guía de remisión interna"
 
 msgctxt "odt:stock.shipment.internal.report:"
 msgid "Planned Date:"
@@ -1634,15 +1621,11 @@ msgstr "Referencia:"
 
 msgctxt "odt:stock.shipment.internal.report:"
 msgid "To Location"
-msgstr "A bodega"
+msgstr "A ubicación"
 
 msgctxt "odt:stock.shipment.internal.report:"
 msgid "To Location:"
-msgstr "A bodega:"
-
-msgctxt "odt:stock.shipment.internal.report:"
-msgid "VAT Number:"
-msgstr "RUC:"
+msgstr "A ubicación:"
 
 msgctxt "odt:stock.shipment.out.delivery_note:"
 msgid "/"
@@ -1661,14 +1644,6 @@ msgid "Delivery Note"
 msgstr "Nota de entrega"
 
 msgctxt "odt:stock.shipment.out.delivery_note:"
-msgid "E-Mail:"
-msgstr "Correo electrónico:"
-
-msgctxt "odt:stock.shipment.out.delivery_note:"
-msgid "Phone:"
-msgstr "Teléfono:"
-
-msgctxt "odt:stock.shipment.out.delivery_note:"
 msgid "Product"
 msgstr "Producto"
 
@@ -1682,11 +1657,7 @@ msgstr "Referencia:"
 
 msgctxt "odt:stock.shipment.out.delivery_note:"
 msgid "Shipment Number:"
-msgstr "Número de envío:"
-
-msgctxt "odt:stock.shipment.out.delivery_note:"
-msgid "VAT Number:"
-msgstr "Número de RUC:"
+msgstr "Número de guía de remisión:"
 
 msgctxt "odt:stock.shipment.out.picking_list:"
 msgid "/"
@@ -1701,20 +1672,12 @@ msgid "Customer:"
 msgstr "Cliente:"
 
 msgctxt "odt:stock.shipment.out.picking_list:"
-msgid "E-Mail:"
-msgstr "Correo electrónico:"
-
-msgctxt "odt:stock.shipment.out.picking_list:"
 msgid "From Location"
-msgstr "Desde bodega"
-
-msgctxt "odt:stock.shipment.out.picking_list:"
-msgid "Phone:"
-msgstr "Teléfono:"
+msgstr "Desde ubicación"
 
 msgctxt "odt:stock.shipment.out.picking_list:"
 msgid "Picking List"
-msgstr "Lista de selección"
+msgstr "Lista de recogida"
 
 msgctxt "odt:stock.shipment.out.picking_list:"
 msgid "Planned Date:"
@@ -1734,15 +1697,11 @@ msgstr "Referencia:"
 
 msgctxt "odt:stock.shipment.out.picking_list:"
 msgid "To Location"
-msgstr "A Bodega"
-
-msgctxt "odt:stock.shipment.out.picking_list:"
-msgid "VAT Number:"
-msgstr "Número de RUC:"
+msgstr "A ubicación"
 
 msgctxt "odt:stock.shipment.out.picking_list:"
 msgid "Warehouse:"
-msgstr "Depósito:"
+msgstr "Bodega:"
 
 msgctxt "odt:stock.shipment.out.return.restocking_list:"
 msgid "/"
@@ -1761,16 +1720,8 @@ msgid "Customer"
 msgstr "Cliente"
 
 msgctxt "odt:stock.shipment.out.return.restocking_list:"
-msgid "E-Mail:"
-msgstr "Correo electrónico:"
-
-msgctxt "odt:stock.shipment.out.return.restocking_list:"
 msgid "From Location"
-msgstr "Desde bodega"
-
-msgctxt "odt:stock.shipment.out.return.restocking_list:"
-msgid "Phone:"
-msgstr "Teléfono:"
+msgstr "Desde ubicación"
 
 msgctxt "odt:stock.shipment.out.return.restocking_list:"
 msgid "Planned Date:"
@@ -1794,15 +1745,11 @@ msgstr "Lista de reabastecimiento"
 
 msgctxt "odt:stock.shipment.out.return.restocking_list:"
 msgid "To Location"
-msgstr "A bodega"
-
-msgctxt "odt:stock.shipment.out.return.restocking_list:"
-msgid "VAT Number:"
-msgstr "RUC:"
+msgstr "A ubicación"
 
 msgctxt "odt:stock.shipment.out.return.restocking_list:"
 msgid "Warehouse:"
-msgstr "Depósito:"
+msgstr "Bodega:"
 
 msgctxt "selection:stock.inventory,state:"
 msgid "Canceled"
@@ -1821,6 +1768,10 @@ msgid "Customer"
 msgstr "Cliente"
 
 msgctxt "selection:stock.location,type:"
+msgid "Drop"
+msgstr "Entrega directa"
+
+msgctxt "selection:stock.location,type:"
 msgid "Lost and Found"
 msgstr "Perdido y encontrado"
 
@@ -1830,7 +1781,7 @@ msgstr "Producción"
 
 msgctxt "selection:stock.location,type:"
 msgid "Storage"
-msgstr "Almacén"
+msgstr "Almacenamiento"
 
 msgctxt "selection:stock.location,type:"
 msgid "Supplier"
@@ -1842,7 +1793,7 @@ msgstr "Vista"
 
 msgctxt "selection:stock.location,type:"
 msgid "Warehouse"
-msgstr "Depósito"
+msgstr "Bodega"
 
 msgctxt "selection:stock.move,state:"
 msgid "Assigned"
@@ -1862,7 +1813,7 @@ msgstr "Borrador"
 
 msgctxt "selection:stock.move,state:"
 msgid "Staging"
-msgstr "Preparación"
+msgstr "En proceso"
 
 msgctxt "selection:stock.period,state:"
 msgid "Closed"
@@ -1946,7 +1897,7 @@ msgstr "Borrador"
 
 msgctxt "selection:stock.shipment.out,state:"
 msgid "Packed"
-msgstr "Empacado"
+msgstr "Empaquetado"
 
 msgctxt "selection:stock.shipment.out,state:"
 msgid "Waiting"
@@ -1974,7 +1925,7 @@ msgstr "Stock"
 
 msgctxt "view:product.by_location.start:"
 msgid "Product by Location"
-msgstr "Producto por bodega"
+msgstr "Producto por ubicación"
 
 msgctxt "view:product.product:"
 msgid "Cost Value"
@@ -1986,7 +1937,7 @@ msgstr "Productos"
 
 msgctxt "view:stock.configuration:"
 msgid "Stock Configuration"
-msgstr "Configuración de Stock"
+msgstr "Configuración de stock"
 
 msgctxt "view:stock.inventory.line:"
 msgid "Inventory Line"
@@ -2022,15 +1973,19 @@ msgstr "Inventario"
 
 msgctxt "view:stock.location:"
 msgid "Location"
-msgstr "Bodega"
+msgstr "Ubicación"
 
 msgctxt "view:stock.location:"
 msgid "Location Quantity"
-msgstr "Cantidad en bodega"
+msgstr "Cantidad en ubicación"
 
 msgctxt "view:stock.location:"
 msgid "Locations"
-msgstr "Bodegas"
+msgstr "Ubicaciones"
+
+msgctxt "view:stock.move:"
+msgid "Cancel"
+msgstr "Cancelar"
 
 msgctxt "view:stock.move:"
 msgid "Move"
@@ -2040,6 +1995,10 @@ msgctxt "view:stock.move:"
 msgid "Moves"
 msgstr "Movimientos"
 
+msgctxt "view:stock.move:"
+msgid "Reset to Draft"
+msgstr "Restablecer a borrador"
+
 msgctxt "view:stock.period.cache:"
 msgid "Period Cache"
 msgstr "Período precalculado"
@@ -2066,15 +2025,15 @@ msgstr "Períodos"
 
 msgctxt "view:stock.product_quantities_warehouse.start:"
 msgid "Product Quantities By Warehouse"
-msgstr "Cantidades de producto por almacén"
+msgstr "Cantidades de producto por bodega"
 
 msgctxt "view:stock.product_quantities_warehouse:"
 msgid "Product Quantities By Warehouse"
-msgstr "Cantidades de producto por almacén"
+msgstr "Cantidades de producto por bodega"
 
 msgctxt "view:stock.products_by_locations.start:"
 msgid "Products by Locations"
-msgstr "Productos por bodegas"
+msgstr "Productos por ubicaciones"
 
 msgctxt "view:stock.shipment.in.return.assign.failed:"
 msgid "Unable to Assign"
@@ -2102,11 +2061,11 @@ msgstr "Borrador"
 
 msgctxt "view:stock.shipment.in.return:"
 msgid "Supplier Return Shipment"
-msgstr "Envío de devolución a proveedor"
+msgstr "Guía de remisión de devolución a proveedor"
 
 msgctxt "view:stock.shipment.in.return:"
 msgid "Supplier Return Shipments"
-msgstr "Envío de devolución a proveedor"
+msgstr "Guías de remisión de devolución a proveedor"
 
 msgctxt "view:stock.shipment.in.return:"
 msgid "Wait"
@@ -2138,11 +2097,11 @@ msgstr "Restablecer a borrador"
 
 msgctxt "view:stock.shipment.in:"
 msgid "Supplier Shipment"
-msgstr "Envío de proveedor"
+msgstr "Guía de remisión de proveedor"
 
 msgctxt "view:stock.shipment.in:"
 msgid "Supplier Shipments"
-msgstr "Envíos de proveedor"
+msgstr "Guías de remisión de proveedor"
 
 msgctxt "view:stock.shipment.internal.assign.failed:"
 msgid "Unable to Assign"
@@ -2170,11 +2129,11 @@ msgstr "Borrador"
 
 msgctxt "view:stock.shipment.internal:"
 msgid "Internal Shipment"
-msgstr "Envío interno"
+msgstr "Guía de remisión interna"
 
 msgctxt "view:stock.shipment.internal:"
 msgid "Internal Shipments"
-msgstr "Envíos internos"
+msgstr "Guías de remisión internas"
 
 msgctxt "view:stock.shipment.internal:"
 msgid "Wait"
@@ -2194,11 +2153,11 @@ msgstr "Cancelar"
 
 msgctxt "view:stock.shipment.out.return:"
 msgid "Customer Return Shipment"
-msgstr "Devolución de cliente"
+msgstr "Guía de remisión de devolución de cliente"
 
 msgctxt "view:stock.shipment.out.return:"
 msgid "Customer Return Shipments"
-msgstr "Devoluciones de clientes"
+msgstr "Guías de remisión de devolución de cliente"
 
 msgctxt "view:stock.shipment.out.return:"
 msgid "Done"
@@ -2230,11 +2189,11 @@ msgstr "Cancelar"
 
 msgctxt "view:stock.shipment.out:"
 msgid "Customer Shipment"
-msgstr "Envío a cliente"
+msgstr "Guía de remisión a cliente"
 
 msgctxt "view:stock.shipment.out:"
 msgid "Customer Shipments"
-msgstr "Envíos al cliente"
+msgstr "Guías de remisión a cliente"
 
 msgctxt "view:stock.shipment.out:"
 msgid "Done"
@@ -2250,7 +2209,7 @@ msgstr "Movimientos de inventario"
 
 msgctxt "view:stock.shipment.out:"
 msgid "Make shipment"
-msgstr "Realizar envío"
+msgstr "Hacer envío"
 
 msgctxt "view:stock.shipment.out:"
 msgid "Outgoing Moves"
diff --git a/locale/es_ES.po b/locale/es_ES.po
index da28784..ce4f7d2 100644
--- a/locale/es_ES.po
+++ b/locale/es_ES.po
@@ -257,7 +257,7 @@ msgstr "Ubicación"
 
 msgctxt "field:stock.inventory,lost_found:"
 msgid "Lost and Found"
-msgstr "Perdido/encontrado"
+msgstr "Perdido-encontrado"
 
 msgctxt "field:stock.inventory,rec_name:"
 msgid "Name"
@@ -333,7 +333,7 @@ msgstr "Activo"
 
 msgctxt "field:stock.location,address:"
 msgid "Address"
-msgstr "Direcciones"
+msgstr "Dirección"
 
 msgctxt "field:stock.location,childs:"
 msgid "Children"
@@ -383,6 +383,10 @@ msgctxt "field:stock.location,parent:"
 msgid "Parent"
 msgstr "Padre"
 
+msgctxt "field:stock.location,picking_location:"
+msgid "Picking"
+msgstr "Recogida"
+
 msgctxt "field:stock.location,quantity:"
 msgid "Quantity"
 msgstr "Cantidad"
@@ -493,7 +497,7 @@ msgstr "Precio unidad"
 
 msgctxt "field:stock.move,unit_price_required:"
 msgid "Unit Price Required"
-msgstr "Precio unidad requerido"
+msgstr "Precio unidad obligatorio"
 
 msgctxt "field:stock.move,uom:"
 msgid "Uom"
@@ -645,7 +649,7 @@ msgstr "Empresa"
 
 msgctxt "field:stock.shipment.in,contact_address:"
 msgid "Contact Address"
-msgstr "Dirección contacto"
+msgstr "Dirección de contacto"
 
 msgctxt "field:stock.shipment.in,create_date:"
 msgid "Create Date"
@@ -889,7 +893,7 @@ msgstr "Ubicación de cliente"
 
 msgctxt "field:stock.shipment.out,delivery_address:"
 msgid "Delivery Address"
-msgstr "Dirección envío"
+msgstr "Dirección de envío"
 
 msgctxt "field:stock.shipment.out,effective_date:"
 msgid "Effective Date"
@@ -985,7 +989,7 @@ msgstr "Ubicación de cliente"
 
 msgctxt "field:stock.shipment.out.return,delivery_address:"
 msgid "Delivery Address"
-msgstr "Dirección envío"
+msgstr "Dirección de envío"
 
 msgctxt "field:stock.shipment.out.return,effective_date:"
 msgid "Effective Date"
@@ -1067,6 +1071,10 @@ msgstr ""
 "* Un valor vacío es un fecha infinita en el futuro.\n"
 "* Una fecha en el pasado proporcionará valores históricos."
 
+msgctxt "help:stock.location,picking_location:"
+msgid "If empty the Storage is used"
+msgstr "Si está vacío se utilizará el almacenamiento."
+
 msgctxt "help:stock.products_by_locations.start,forecast_date:"
 msgid ""
 "Allow to compute expected stock quantities for this date.\n"
@@ -1077,10 +1085,6 @@ msgstr ""
 "* Un valor vacío es un fecha infinita en el futuro.\n"
 "* Una fecha en el pasado proporcionará valores históricos."
 
-msgctxt "model:ir.action,name:"
-msgid "Create Return Shipment"
-msgstr "Crear albarán de devolución"
-
 msgctxt "model:ir.action,name:act_inventory_form"
 msgid "Inventories"
 msgstr "Inventarios"
@@ -1177,6 +1181,10 @@ msgctxt "model:ir.action,name:wizard_products_by_locations"
 msgid "Products by Locations"
 msgstr "Productos por ubicación"
 
+msgctxt "model:ir.action,name:wizard_recompute_cost_price"
+msgid "Recompute Cost Price"
+msgstr "Recalcular precio de coste"
+
 msgctxt "model:ir.action,name:wizard_shipment_in_return_assign"
 msgid "Assign Purchase Return Shipment"
 msgstr "Reservar albarán de devolución de compra"
@@ -1191,7 +1199,7 @@ msgstr "Reservar albarán de salida"
 
 msgctxt "model:ir.action.act_window.domain,name:act_inventory_form_domain_all"
 msgid "All"
-msgstr "Todos"
+msgstr "Todo"
 
 msgctxt ""
 "model:ir.action.act_window.domain,name:act_inventory_form_domain_draft"
@@ -1200,7 +1208,7 @@ msgstr "Borrador"
 
 msgctxt "model:ir.action.act_window.domain,name:act_move_form_domain_all"
 msgid "All"
-msgstr "Todos"
+msgstr "Todo"
 
 msgctxt ""
 "model:ir.action.act_window.domain,name:act_move_form_domain_from_supplier"
@@ -1235,7 +1243,7 @@ msgstr "Recibido"
 msgctxt ""
 "model:ir.action.act_window.domain,name:act_shipment_in_return_form_domain_all"
 msgid "All"
-msgstr "Todos"
+msgstr "Todo"
 
 msgctxt ""
 "model:ir.action.act_window.domain,name:act_shipment_in_return_form_domain_assigned"
@@ -1275,7 +1283,7 @@ msgstr "En espera"
 msgctxt ""
 "model:ir.action.act_window.domain,name:act_shipment_out_form_domain_all"
 msgid "All"
-msgstr "Todos"
+msgstr "Todo"
 
 msgctxt ""
 "model:ir.action.act_window.domain,name:act_shipment_out_form_domain_assigned"
@@ -1300,7 +1308,7 @@ msgstr "En espera"
 msgctxt ""
 "model:ir.action.act_window.domain,name:act_shipment_out_return_form_domain_all"
 msgid "All"
-msgstr "Todos"
+msgstr "Todo"
 
 msgctxt ""
 "model:ir.action.act_window.domain,name:act_shipment_out_return_form_domain_draft"
@@ -1450,7 +1458,7 @@ msgstr "Zona de entrada"
 
 msgctxt "model:stock.location,name:location_lost_found"
 msgid "Lost and Found"
-msgstr "Perdido/encontrado"
+msgstr "Perdido-encontrado"
 
 msgctxt "model:stock.location,name:location_output"
 msgid "Output Zone"
@@ -1533,18 +1541,10 @@ msgid "Code:"
 msgstr "Código:"
 
 msgctxt "odt:stock.shipment.in.restocking_list:"
-msgid "E-Mail:"
-msgstr "Correo electrónico:"
-
-msgctxt "odt:stock.shipment.in.restocking_list:"
 msgid "From Location"
 msgstr "Desde ubicación"
 
 msgctxt "odt:stock.shipment.in.restocking_list:"
-msgid "Phone:"
-msgstr "Teléfono:"
-
-msgctxt "odt:stock.shipment.in.restocking_list:"
 msgid "Planned Date:"
 msgstr "Fecha estimada:"
 
@@ -1573,10 +1573,6 @@ msgid "To Location"
 msgstr "A ubicación"
 
 msgctxt "odt:stock.shipment.in.restocking_list:"
-msgid "VAT Number:"
-msgstr "CIF/NIF:"
-
-msgctxt "odt:stock.shipment.in.restocking_list:"
 msgid "Warehouse:"
 msgstr "Almacén:"
 
@@ -1589,10 +1585,6 @@ msgid "Code:"
 msgstr "Código:"
 
 msgctxt "odt:stock.shipment.internal.report:"
-msgid "E-Mail:"
-msgstr "Correo electrónico:"
-
-msgctxt "odt:stock.shipment.internal.report:"
 msgid "From Location"
 msgstr "Desde ubicación"
 
@@ -1605,10 +1597,6 @@ msgid "Internal Shipment"
 msgstr "Albarán interno"
 
 msgctxt "odt:stock.shipment.internal.report:"
-msgid "Phone:"
-msgstr "Teléfono:"
-
-msgctxt "odt:stock.shipment.internal.report:"
 msgid "Planned Date:"
 msgstr "Fecha estimada:"
 
@@ -1632,10 +1620,6 @@ msgctxt "odt:stock.shipment.internal.report:"
 msgid "To Location:"
 msgstr "A ubicación:"
 
-msgctxt "odt:stock.shipment.internal.report:"
-msgid "VAT Number:"
-msgstr "CIF/NIF:"
-
 msgctxt "odt:stock.shipment.out.delivery_note:"
 msgid "/"
 msgstr "/"
@@ -1653,14 +1637,6 @@ msgid "Delivery Note"
 msgstr "Nota de envío"
 
 msgctxt "odt:stock.shipment.out.delivery_note:"
-msgid "E-Mail:"
-msgstr "Correo electrónico:"
-
-msgctxt "odt:stock.shipment.out.delivery_note:"
-msgid "Phone:"
-msgstr "Teléfono:"
-
-msgctxt "odt:stock.shipment.out.delivery_note:"
 msgid "Product"
 msgstr "Producto"
 
@@ -1676,10 +1652,6 @@ msgctxt "odt:stock.shipment.out.delivery_note:"
 msgid "Shipment Number:"
 msgstr "Número de albarán:"
 
-msgctxt "odt:stock.shipment.out.delivery_note:"
-msgid "VAT Number:"
-msgstr "CIF/NIF:"
-
 msgctxt "odt:stock.shipment.out.picking_list:"
 msgid "/"
 msgstr "/"
@@ -1693,18 +1665,10 @@ msgid "Customer:"
 msgstr "Cliente:"
 
 msgctxt "odt:stock.shipment.out.picking_list:"
-msgid "E-Mail:"
-msgstr "Correo electrónico:"
-
-msgctxt "odt:stock.shipment.out.picking_list:"
 msgid "From Location"
 msgstr "Desde ubicación"
 
 msgctxt "odt:stock.shipment.out.picking_list:"
-msgid "Phone:"
-msgstr "Teléfono:"
-
-msgctxt "odt:stock.shipment.out.picking_list:"
 msgid "Picking List"
 msgstr "Lista recogida"
 
@@ -1729,10 +1693,6 @@ msgid "To Location"
 msgstr "A ubicación"
 
 msgctxt "odt:stock.shipment.out.picking_list:"
-msgid "VAT Number:"
-msgstr "CIF/NIF:"
-
-msgctxt "odt:stock.shipment.out.picking_list:"
 msgid "Warehouse:"
 msgstr "Almacén:"
 
@@ -1753,18 +1713,10 @@ msgid "Customer"
 msgstr "Cliente"
 
 msgctxt "odt:stock.shipment.out.return.restocking_list:"
-msgid "E-Mail:"
-msgstr "Correo electrónico:"
-
-msgctxt "odt:stock.shipment.out.return.restocking_list:"
 msgid "From Location"
 msgstr "Desde ubicación"
 
 msgctxt "odt:stock.shipment.out.return.restocking_list:"
-msgid "Phone:"
-msgstr "Teléfono:"
-
-msgctxt "odt:stock.shipment.out.return.restocking_list:"
 msgid "Planned Date:"
 msgstr "Fecha estimada:"
 
@@ -1789,10 +1741,6 @@ msgid "To Location"
 msgstr "A ubicación"
 
 msgctxt "odt:stock.shipment.out.return.restocking_list:"
-msgid "VAT Number:"
-msgstr "CIF/NIF:"
-
-msgctxt "odt:stock.shipment.out.return.restocking_list:"
 msgid "Warehouse:"
 msgstr "Almacén:"
 
@@ -1813,8 +1761,12 @@ msgid "Customer"
 msgstr "Cliente"
 
 msgctxt "selection:stock.location,type:"
+msgid "Drop"
+msgstr "Desecho"
+
+msgctxt "selection:stock.location,type:"
 msgid "Lost and Found"
-msgstr "Perdido/encontrado"
+msgstr "Perdido-encontrado"
 
 msgctxt "selection:stock.location,type:"
 msgid "Production"
@@ -2025,6 +1977,10 @@ msgid "Locations"
 msgstr "Ubicaciones"
 
 msgctxt "view:stock.move:"
+msgid "Cancel"
+msgstr "Cancelar"
+
+msgctxt "view:stock.move:"
 msgid "Move"
 msgstr "Movimiento"
 
@@ -2032,6 +1988,10 @@ msgctxt "view:stock.move:"
 msgid "Moves"
 msgstr "Movimientos"
 
+msgctxt "view:stock.move:"
+msgid "Reset to Draft"
+msgstr "Restaurar a borrador"
+
 msgctxt "view:stock.period.cache:"
 msgid "Period Cache"
 msgstr "Período precalculado"
diff --git a/locale/es_ES.po b/locale/es_MX.po
similarity index 86%
copy from locale/es_ES.po
copy to locale/es_MX.po
index da28784..d350b2a 100644
--- a/locale/es_ES.po
+++ b/locale/es_MX.po
@@ -7,7 +7,8 @@ msgid ""
 "You cannot change the default uom for a product which is associated to stock"
 " moves."
 msgstr ""
-"No puede cambiar la UdM por defecto de un producto con movimientos de stock."
+"No puede cambiar la UdM predefinida de un producto con movimientos de "
+"existencias."
 
 msgctxt "error:product.template:"
 msgid ""
@@ -54,15 +55,15 @@ msgstr "Las ubicaciones origen y destino deben ser distintas."
 
 msgctxt "error:stock.move:"
 msgid "The stock move \"%s\" has no origin."
-msgstr "El movimiento de stock \"%s\" no tiene ningún origen."
+msgstr "El movimiento de existencias \"%s\" no tiene ningún origen."
 
 msgctxt "error:stock.move:"
 msgid ""
 "You can not delete stock move \"%s\" because it is not in draft or cancelled"
 " state."
 msgstr ""
-"No puede eliminar el movimiento de stock \"%s\" porque no está en estado "
-"borrador o cancelado."
+"No puede eliminar el movimiento de existencias \"%s\" porque no está en "
+"estado borrador o cancelado."
 
 msgctxt "error:stock.move:"
 msgid "You can not modify move \"%(move)s\" because period \"%(period)s\" is closed."
@@ -73,28 +74,28 @@ msgstr ""
 msgctxt "error:stock.move:"
 msgid "You can not modify stock move \"%s\" because it is in \"Assigned\" state."
 msgstr ""
-"No puede cambiar el movimiento de stock \"%s\" porque se encuentra en estado"
-" \"Reservado\"."
+"No puede cambiar el movimiento de existencias \"%s\" porque se encuentra en "
+"estado \"Reservado\"."
 
 msgctxt "error:stock.move:"
 msgid ""
 "You can not modify stock move \"%s\" because it is in \"Done\" or \"Cancel\""
 " state."
 msgstr ""
-"No puede cambiar el movimiento de stock \"%s\" porque se encuentra en estado"
-" \"Finalizado\" o \"Cancelado\"."
+"No puede cambiar el movimiento de existencias \"%s\" porque se encuentra en "
+"estado \"Finalizado\" o \"Cancelado\"."
 
 msgctxt "error:stock.move:"
 msgid "You can not set stock move \"%s\" to assigned state."
-msgstr "No puede cambiar el movimiento de stock \"%s\" a estado reservado."
+msgstr "No puede cambiar el movimiento de existencias \"%s\" a estado reservado."
 
 msgctxt "error:stock.move:"
 msgid "You can not set stock move \"%s\" to done state."
-msgstr "No puede cambiar el movimiento de stock \"%s\" a estado finalizado."
+msgstr "No puede cambiar el movimiento de existencias \"%s\" a estado finalizado."
 
 msgctxt "error:stock.move:"
 msgid "You can not set stock move \"%s\" to draft state."
-msgstr "No puede cambiar el movimiento de stock \"%s\" a estado borrador."
+msgstr "No puede cambiar el movimiento de existencias \"%s\" a estado borrador."
 
 msgctxt "error:stock.period:"
 msgid "You can not close a period in the future or today."
@@ -107,7 +108,7 @@ msgstr ""
 
 msgctxt "error:stock.shipment.in.return:"
 msgid "Supplier Return Shipment \"%s\" must be cancelled before deletion."
-msgstr "Debe cancelar el albarán devolución proveedor \"%s\" antes de borrarlo."
+msgstr "Debe cancelar el envío devolución proveedor \"%s\" antes de borrarlo."
 
 msgctxt "error:stock.shipment.in:"
 msgid ""
@@ -125,19 +126,19 @@ msgstr ""
 
 msgctxt "error:stock.shipment.in:"
 msgid "Supplier Shipment \"%s\" must be cancelled before deletion."
-msgstr "Debe cancelar el albarán de proveedor \"%s\" antes de borrarlo."
+msgstr "Debe cancelar el envío de proveedor \"%s\" antes de borrarlo."
 
 msgctxt "error:stock.shipment.internal:"
 msgid "Internal Shipment \"%s\" must be cancelled before deletion."
-msgstr "Debe cancelar el albarán interno \"%s\" antes de borrarlo."
+msgstr "Debe cancelar la reubicación interna \"%s\" antes de borrarlo."
 
 msgctxt "error:stock.shipment.out.return:"
 msgid "Customer Return Shipment \"%s\" must be cancelled before deletion."
-msgstr "Debe cancelar el albarán devolución de cliente \"%s\" antes de borrarlo."
+msgstr "Debe cancelar el envío devolución de cliente \"%s\" antes de borrarlo."
 
 msgctxt "error:stock.shipment.out:"
 msgid "Customer Shipment \"%s\" must be cancelled before deletion."
-msgstr "Debe cancelar el albarán de cliente \"%s\" antes de borrarlo."
+msgstr "Debe cancelar el envío de cliente \"%s\" antes de borrarlo."
 
 msgctxt "field:party.address,delivery:"
 msgid "Delivery"
@@ -161,7 +162,7 @@ msgstr "ID"
 
 msgctxt "field:product.product,cost_value:"
 msgid "Cost Value"
-msgstr "Valor de coste"
+msgstr "Valor de costo"
 
 msgctxt "field:product.product,forecast_quantity:"
 msgid "Forecast Quantity"
@@ -173,7 +174,7 @@ msgstr "Cantidad"
 
 msgctxt "field:product.template,cost_value:"
 msgid "Cost Value"
-msgstr "Valor de coste"
+msgstr "Valor de costo"
 
 msgctxt "field:product.template,forecast_quantity:"
 msgid "Forecast Quantity"
@@ -201,23 +202,23 @@ msgstr "Nombre"
 
 msgctxt "field:stock.configuration,shipment_in_return_sequence:"
 msgid "Supplier Return Shipment Sequence"
-msgstr "Secuencia de albarán devolución proveedor"
+msgstr "Secuencia de envío devolución proveedor"
 
 msgctxt "field:stock.configuration,shipment_in_sequence:"
 msgid "Supplier Shipment Sequence"
-msgstr "Secuencia de albarán proveedor"
+msgstr "Secuencia de envío proveedor"
 
 msgctxt "field:stock.configuration,shipment_internal_sequence:"
 msgid "Internal Shipment Sequence"
-msgstr "Secuencia de albarán interno"
+msgstr "Secuencia de reubicación interna"
 
 msgctxt "field:stock.configuration,shipment_out_return_sequence:"
 msgid "Customer Return Shipment Sequence"
-msgstr "Secuencia de albarán devolución cliente"
+msgstr "Secuencia de envío devolución cliente"
 
 msgctxt "field:stock.configuration,shipment_out_sequence:"
 msgid "Customer Shipment Sequence"
-msgstr "Secuencia de albarán cliente"
+msgstr "Secuencia de envío cliente"
 
 msgctxt "field:stock.configuration,write_date:"
 msgid "Write Date"
@@ -345,7 +346,7 @@ msgstr "Código"
 
 msgctxt "field:stock.location,cost_value:"
 msgid "Cost Value"
-msgstr "Valor de coste"
+msgstr "Valor de costo"
 
 msgctxt "field:stock.location,create_date:"
 msgid "Create Date"
@@ -383,6 +384,10 @@ msgctxt "field:stock.location,parent:"
 msgid "Parent"
 msgstr "Padre"
 
+msgctxt "field:stock.location,picking_location:"
+msgid "Picking"
+msgstr ""
+
 msgctxt "field:stock.location,quantity:"
 msgid "Quantity"
 msgstr "Cantidad"
@@ -417,7 +422,7 @@ msgstr "Empresa"
 
 msgctxt "field:stock.move,cost_price:"
 msgid "Cost Price"
-msgstr "Precio de coste"
+msgstr "Precio de costo"
 
 msgctxt "field:stock.move,create_date:"
 msgid "Create Date"
@@ -1050,12 +1055,13 @@ msgstr "Usuario modificación"
 msgctxt "help:party.party,customer_location:"
 msgid "The default destination location when sending products to the party."
 msgstr ""
-"La ubicación de destino por defecto cuando se envían productos al tercero."
+"La ubicación de destino predefinida cuando se envían productos a la entidad."
 
 msgctxt "help:party.party,supplier_location:"
 msgid "The default source location when receiving products from the party."
 msgstr ""
-"La ubicación de origen por defecto cuando se reciben productos del tercero."
+"La ubicación de origen predefinida cuando se reciben productos de la "
+"entidad."
 
 msgctxt "help:product.by_location.start,forecast_date:"
 msgid ""
@@ -1063,24 +1069,24 @@ msgid ""
 "* 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 de stock para esta fecha.\n"
+"Permite calcular las cantidades previstas de existencias para esta fecha.\n"
 "* Un valor vacío es un fecha infinita en el futuro.\n"
 "* Una fecha en el pasado proporcionará valores históricos."
 
+msgctxt "help:stock.location,picking_location:"
+msgid "If empty the Storage is used"
+msgstr ""
+
 msgctxt "help:stock.products_by_locations.start,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 de stock para esta fecha.\n"
+"Permite calcular las cantidades previstas de existencias para esta fecha.\n"
 "* Un valor vacío es un fecha infinita en el futuro.\n"
 "* Una fecha en el pasado proporcionará valores históricos."
 
-msgctxt "model:ir.action,name:"
-msgid "Create Return Shipment"
-msgstr "Crear albarán de devolución"
-
 msgctxt "model:ir.action,name:act_inventory_form"
 msgid "Inventories"
 msgstr "Inventarios"
@@ -1115,35 +1121,35 @@ msgstr "Productos"
 
 msgctxt "model:ir.action,name:act_shipment_in_form"
 msgid "Supplier Shipments"
-msgstr "Albaranes proveedor"
+msgstr "Envíos proveedor"
 
 msgctxt "model:ir.action,name:act_shipment_in_return_form"
 msgid "Supplier Return Shipments"
-msgstr "Albaranes devolución proveedor"
+msgstr "Envíos devolución proveedor"
 
 msgctxt "model:ir.action,name:act_shipment_internal_form"
 msgid "Internal Shipments"
-msgstr "Albaranes internos"
+msgstr "Reubicaciones internas"
 
 msgctxt "model:ir.action,name:act_shipment_out_form"
 msgid "Customer Shipments"
-msgstr "Albaranes cliente"
+msgstr "Envíos cliente"
 
 msgctxt "model:ir.action,name:act_shipment_out_form2"
 msgid "Customer Shipments"
-msgstr "Albaranes cliente"
+msgstr "Envíos cliente"
 
 msgctxt "model:ir.action,name:act_shipment_out_form3"
 msgid "Supplier Shipments"
-msgstr "Albaranes proveedor"
+msgstr "Envíos proveedor"
 
 msgctxt "model:ir.action,name:act_shipment_out_return_form"
 msgid "Customer Return Shipments"
-msgstr "Albaranes devolución cliente "
+msgstr "Envíos devolución cliente "
 
 msgctxt "model:ir.action,name:act_stock_configuration_form"
 msgid "Stock Configuration"
-msgstr "Configuración stock"
+msgstr "Configuración de almacén"
 
 msgctxt "model:ir.action,name:report_shipment_in_restocking_list"
 msgid "Restocking List"
@@ -1151,7 +1157,7 @@ msgstr "Lista de reabastecimiento"
 
 msgctxt "model:ir.action,name:report_shipment_internal"
 msgid "Internal Shipment"
-msgstr "Albaranes internos"
+msgstr "Reubicaciones internas"
 
 msgctxt "model:ir.action,name:report_shipment_out_delivery_note"
 msgid "Delivery Note"
@@ -1177,17 +1183,21 @@ msgctxt "model:ir.action,name:wizard_products_by_locations"
 msgid "Products by Locations"
 msgstr "Productos por ubicación"
 
+msgctxt "model:ir.action,name:wizard_recompute_cost_price"
+msgid "Recompute Cost Price"
+msgstr ""
+
 msgctxt "model:ir.action,name:wizard_shipment_in_return_assign"
 msgid "Assign Purchase Return Shipment"
-msgstr "Reservar albarán de devolución de compra"
+msgstr "Reservar envío de devolución de compra"
 
 msgctxt "model:ir.action,name:wizard_shipment_internal_assign"
 msgid "Assign Shipment Internal"
-msgstr "Reservar albarán interno"
+msgstr "Reservar reubicación interna"
 
 msgctxt "model:ir.action,name:wizard_shipment_out_assign"
 msgid "Assign Shipment Out"
-msgstr "Reservar albarán de salida"
+msgstr "Reservar envío de salida"
 
 msgctxt "model:ir.action.act_window.domain,name:act_inventory_form_domain_all"
 msgid "All"
@@ -1290,7 +1300,7 @@ msgstr "Borrador"
 msgctxt ""
 "model:ir.action.act_window.domain,name:act_shipment_out_form_domain_packed"
 msgid "Packed"
-msgstr "Empaquetado"
+msgstr "Empacado"
 
 msgctxt ""
 "model:ir.action.act_window.domain,name:act_shipment_out_form_domain_waiting"
@@ -1314,43 +1324,43 @@ msgstr "Recibido"
 
 msgctxt "model:ir.sequence,name:sequence_shipment_in"
 msgid "Supplier Shipment"
-msgstr "Albarán proveedor"
+msgstr "Envío proveedor"
 
 msgctxt "model:ir.sequence,name:sequence_shipment_in_return"
 msgid "Supplier Return Shipment"
-msgstr "Albarán devolución proveedor"
+msgstr "Envío devolución proveedor"
 
 msgctxt "model:ir.sequence,name:sequence_shipment_internal"
 msgid "Internal Shipment"
-msgstr "Albarán interno"
+msgstr "Reubicación interna"
 
 msgctxt "model:ir.sequence,name:sequence_shipment_out"
 msgid "Customer Shipment"
-msgstr "Albarán cliente"
+msgstr "Envío cliente"
 
 msgctxt "model:ir.sequence,name:sequence_shipment_out_return"
 msgid "Customer Return Shipment"
-msgstr "Albarán devolución cliente"
+msgstr "Envío devolución cliente"
 
 msgctxt "model:ir.sequence.type,name:sequence_type_shipment_in"
 msgid "Supplier Shipment"
-msgstr "Albarán proveedor"
+msgstr "Envío proveedor"
 
 msgctxt "model:ir.sequence.type,name:sequence_type_shipment_in_return"
 msgid "Supplier Return Shipment"
-msgstr "Albarán devolución proveedor"
+msgstr "Envío devolución proveedor"
 
 msgctxt "model:ir.sequence.type,name:sequence_type_shipment_internal"
 msgid "Internal Shipment"
-msgstr "Albarán interno"
+msgstr "Reubicación interna"
 
 msgctxt "model:ir.sequence.type,name:sequence_type_shipment_out"
 msgid "Customer Shipment"
-msgstr "Albarán cliente"
+msgstr "Envío cliente"
 
 msgctxt "model:ir.sequence.type,name:sequence_type_shipment_out_return"
 msgid "Customer Return Shipment"
-msgstr "Albarán devolución cliente"
+msgstr "Envío devolución cliente"
 
 msgctxt "model:ir.ui.menu,name:menu_configuration"
 msgid "Configuration"
@@ -1382,7 +1392,7 @@ msgstr "Informes"
 
 msgctxt "model:ir.ui.menu,name:menu_shipment_in_form"
 msgid "Supplier Shipments"
-msgstr "Albaranes proveedor"
+msgstr "Envíos proveedor"
 
 msgctxt "model:ir.ui.menu,name:menu_shipment_in_return_form"
 msgid "Supplier Return Shipments"
@@ -1390,11 +1400,11 @@ msgstr "Devoluciones"
 
 msgctxt "model:ir.ui.menu,name:menu_shipment_internal_form"
 msgid "Internal Shipments"
-msgstr "Albaranes internos"
+msgstr "Reubicaciones internas"
 
 msgctxt "model:ir.ui.menu,name:menu_shipment_out_form"
 msgid "Customer Shipments"
-msgstr "Albaranes cliente"
+msgstr "Envíos cliente"
 
 msgctxt "model:ir.ui.menu,name:menu_shipment_out_return_form"
 msgid "Customer Return Shipments"
@@ -1402,11 +1412,11 @@ msgstr "Devoluciones"
 
 msgctxt "model:ir.ui.menu,name:menu_stock"
 msgid "Inventory & Stock"
-msgstr "Logística"
+msgstr "Almacén y envíos"
 
 msgctxt "model:ir.ui.menu,name:menu_stock_configuration"
 msgid "Stock Configuration"
-msgstr "Stock"
+msgstr "Configuración de almacén"
 
 msgctxt "model:product.by_location.start,name:"
 msgid "Product by Location"
@@ -1414,7 +1424,7 @@ msgstr "Producto por ubicación"
 
 msgctxt "model:res.group,name:group_stock"
 msgid "Stock"
-msgstr "Logística"
+msgstr "Almacén y envíos"
 
 msgctxt "model:res.group,name:group_stock_admin"
 msgid "Stock Administration"
@@ -1426,19 +1436,19 @@ msgstr "Forzar reserva en logística"
 
 msgctxt "model:stock.configuration,name:"
 msgid "Stock Configuration"
-msgstr "Configuración stock"
+msgstr "Configuración de almacén"
 
 msgctxt "model:stock.inventory,name:"
 msgid "Stock Inventory"
-msgstr "Inventario de stock"
+msgstr "Inventario de existencias"
 
 msgctxt "model:stock.inventory.line,name:"
 msgid "Stock Inventory Line"
-msgstr "Línea inventario de stock"
+msgstr "Línea inventario de existencias"
 
 msgctxt "model:stock.location,name:"
 msgid "Stock Location"
-msgstr "Ubicación de stock"
+msgstr "Ubicación de existencias"
 
 msgctxt "model:stock.location,name:location_customer"
 msgid "Customer"
@@ -1470,15 +1480,15 @@ msgstr "Almacén"
 
 msgctxt "model:stock.move,name:"
 msgid "Stock Move"
-msgstr "Movimiento de stock"
+msgstr "Movimiento de existencias"
 
 msgctxt "model:stock.period,name:"
 msgid "Stock Period"
-msgstr "Período de stock"
+msgstr "Período de existencias"
 
 msgctxt "model:stock.period.cache,name:"
 msgid "Stock Period Cache"
-msgstr "Período de stock precalculado"
+msgstr "Período de existencias precalculado"
 
 msgctxt "model:stock.product_quantities_warehouse,name:"
 msgid "Product Quantities By Warehouse"
@@ -1494,307 +1504,247 @@ msgstr "Productos por ubicación"
 
 msgctxt "model:stock.shipment.in,name:"
 msgid "Supplier Shipment"
-msgstr "Albaranes proveedor"
+msgstr "Envíos proveedor"
 
 msgctxt "model:stock.shipment.in.return,name:"
 msgid "Supplier Return Shipment"
-msgstr "Albarán devolución proveedor"
+msgstr "Envío devolución proveedor"
 
 msgctxt "model:stock.shipment.in.return.assign.failed,name:"
 msgid "Assign Supplier Return Shipment"
-msgstr "Reservar albaranes devolución de proveedor"
+msgstr "Reservar envíos devolución de proveedor"
 
 msgctxt "model:stock.shipment.internal,name:"
 msgid "Internal Shipment"
-msgstr "Albarán interno"
+msgstr "Reubicación interna"
 
 msgctxt "model:stock.shipment.internal.assign.failed,name:"
 msgid "Assign Shipment Internal"
-msgstr "Reservar albarán interno"
+msgstr "Reservar reubicación interna"
 
 msgctxt "model:stock.shipment.out,name:"
 msgid "Customer Shipment"
-msgstr "Albarán cliente"
+msgstr "Envío cliente"
 
 msgctxt "model:stock.shipment.out.assign.failed,name:"
 msgid "Assign Shipment Out"
-msgstr "Reservar albarán de salida"
+msgstr "Reservar envío de salida"
 
 msgctxt "model:stock.shipment.out.return,name:"
 msgid "Customer Return Shipment"
-msgstr "Albarán devolución cliente"
+msgstr "Envío devolución cliente"
 
 msgctxt "odt:stock.shipment.in.restocking_list:"
 msgid "/"
-msgstr "/"
+msgstr ""
 
 msgctxt "odt:stock.shipment.in.restocking_list:"
 msgid "Code:"
-msgstr "Código:"
-
-msgctxt "odt:stock.shipment.in.restocking_list:"
-msgid "E-Mail:"
-msgstr "Correo electrónico:"
+msgstr ""
 
 msgctxt "odt:stock.shipment.in.restocking_list:"
 msgid "From Location"
-msgstr "Desde ubicación"
-
-msgctxt "odt:stock.shipment.in.restocking_list:"
-msgid "Phone:"
-msgstr "Teléfono:"
+msgstr ""
 
 msgctxt "odt:stock.shipment.in.restocking_list:"
 msgid "Planned Date:"
-msgstr "Fecha estimada:"
+msgstr ""
 
 msgctxt "odt:stock.shipment.in.restocking_list:"
 msgid "Product"
-msgstr "Producto"
+msgstr ""
 
 msgctxt "odt:stock.shipment.in.restocking_list:"
 msgid "Quantity"
-msgstr "Cantidad"
+msgstr ""
 
 msgctxt "odt:stock.shipment.in.restocking_list:"
 msgid "Reference:"
-msgstr "Referencia:"
+msgstr ""
 
 msgctxt "odt:stock.shipment.in.restocking_list:"
 msgid "Restocking List"
-msgstr "Lista de reabastecimiento"
+msgstr ""
 
 msgctxt "odt:stock.shipment.in.restocking_list:"
 msgid "Supplier:"
-msgstr "Proveedor:"
+msgstr ""
 
 msgctxt "odt:stock.shipment.in.restocking_list:"
 msgid "To Location"
-msgstr "A ubicación"
-
-msgctxt "odt:stock.shipment.in.restocking_list:"
-msgid "VAT Number:"
-msgstr "CIF/NIF:"
+msgstr ""
 
 msgctxt "odt:stock.shipment.in.restocking_list:"
 msgid "Warehouse:"
-msgstr "Almacén:"
+msgstr ""
 
 msgctxt "odt:stock.shipment.internal.report:"
 msgid "/"
-msgstr "/"
+msgstr ""
 
 msgctxt "odt:stock.shipment.internal.report:"
 msgid "Code:"
-msgstr "Código:"
-
-msgctxt "odt:stock.shipment.internal.report:"
-msgid "E-Mail:"
-msgstr "Correo electrónico:"
+msgstr ""
 
 msgctxt "odt:stock.shipment.internal.report:"
 msgid "From Location"
-msgstr "Desde ubicación"
+msgstr ""
 
 msgctxt "odt:stock.shipment.internal.report:"
 msgid "From Location:"
-msgstr "Desde ubicación:"
+msgstr ""
 
 msgctxt "odt:stock.shipment.internal.report:"
 msgid "Internal Shipment"
-msgstr "Albarán interno"
-
-msgctxt "odt:stock.shipment.internal.report:"
-msgid "Phone:"
-msgstr "Teléfono:"
+msgstr ""
 
 msgctxt "odt:stock.shipment.internal.report:"
 msgid "Planned Date:"
-msgstr "Fecha estimada:"
+msgstr ""
 
 msgctxt "odt:stock.shipment.internal.report:"
 msgid "Product"
-msgstr "Producto"
+msgstr ""
 
 msgctxt "odt:stock.shipment.internal.report:"
 msgid "Quantity"
-msgstr "Cantidad"
+msgstr ""
 
 msgctxt "odt:stock.shipment.internal.report:"
 msgid "Reference:"
-msgstr "Referencia:"
+msgstr ""
 
 msgctxt "odt:stock.shipment.internal.report:"
 msgid "To Location"
-msgstr "A ubicación"
+msgstr ""
 
 msgctxt "odt:stock.shipment.internal.report:"
 msgid "To Location:"
-msgstr "A ubicación:"
-
-msgctxt "odt:stock.shipment.internal.report:"
-msgid "VAT Number:"
-msgstr "CIF/NIF:"
+msgstr ""
 
 msgctxt "odt:stock.shipment.out.delivery_note:"
 msgid "/"
-msgstr "/"
+msgstr ""
 
 msgctxt "odt:stock.shipment.out.delivery_note:"
 msgid "Customer Code:"
-msgstr "Código de cliente:"
+msgstr ""
 
 msgctxt "odt:stock.shipment.out.delivery_note:"
 msgid "Date:"
-msgstr "Fecha:"
+msgstr ""
 
 msgctxt "odt:stock.shipment.out.delivery_note:"
 msgid "Delivery Note"
-msgstr "Nota de envío"
-
-msgctxt "odt:stock.shipment.out.delivery_note:"
-msgid "E-Mail:"
-msgstr "Correo electrónico:"
-
-msgctxt "odt:stock.shipment.out.delivery_note:"
-msgid "Phone:"
-msgstr "Teléfono:"
+msgstr ""
 
 msgctxt "odt:stock.shipment.out.delivery_note:"
 msgid "Product"
-msgstr "Producto"
+msgstr ""
 
 msgctxt "odt:stock.shipment.out.delivery_note:"
 msgid "Quantity"
-msgstr "Cantidad"
+msgstr ""
 
 msgctxt "odt:stock.shipment.out.delivery_note:"
 msgid "Reference:"
-msgstr "Referencia:"
+msgstr ""
 
 msgctxt "odt:stock.shipment.out.delivery_note:"
 msgid "Shipment Number:"
-msgstr "Número de albarán:"
-
-msgctxt "odt:stock.shipment.out.delivery_note:"
-msgid "VAT Number:"
-msgstr "CIF/NIF:"
+msgstr ""
 
 msgctxt "odt:stock.shipment.out.picking_list:"
 msgid "/"
-msgstr "/"
+msgstr ""
 
 msgctxt "odt:stock.shipment.out.picking_list:"
 msgid "Code:"
-msgstr "Código:"
+msgstr ""
 
 msgctxt "odt:stock.shipment.out.picking_list:"
 msgid "Customer:"
-msgstr "Cliente:"
-
-msgctxt "odt:stock.shipment.out.picking_list:"
-msgid "E-Mail:"
-msgstr "Correo electrónico:"
+msgstr ""
 
 msgctxt "odt:stock.shipment.out.picking_list:"
 msgid "From Location"
-msgstr "Desde ubicación"
-
-msgctxt "odt:stock.shipment.out.picking_list:"
-msgid "Phone:"
-msgstr "Teléfono:"
+msgstr ""
 
 msgctxt "odt:stock.shipment.out.picking_list:"
 msgid "Picking List"
-msgstr "Lista recogida"
+msgstr ""
 
 msgctxt "odt:stock.shipment.out.picking_list:"
 msgid "Planned Date:"
-msgstr "Fecha estimada:"
+msgstr ""
 
 msgctxt "odt:stock.shipment.out.picking_list:"
 msgid "Product"
-msgstr "Producto"
+msgstr ""
 
 msgctxt "odt:stock.shipment.out.picking_list:"
 msgid "Quantity"
-msgstr "Cantidad"
+msgstr ""
 
 msgctxt "odt:stock.shipment.out.picking_list:"
 msgid "Reference:"
-msgstr "Referencia:"
+msgstr ""
 
 msgctxt "odt:stock.shipment.out.picking_list:"
 msgid "To Location"
-msgstr "A ubicación"
-
-msgctxt "odt:stock.shipment.out.picking_list:"
-msgid "VAT Number:"
-msgstr "CIF/NIF:"
+msgstr ""
 
 msgctxt "odt:stock.shipment.out.picking_list:"
 msgid "Warehouse:"
-msgstr "Almacén:"
+msgstr ""
 
 msgctxt "odt:stock.shipment.out.return.restocking_list:"
 msgid "/"
-msgstr "/"
+msgstr ""
 
 msgctxt "odt:stock.shipment.out.return.restocking_list:"
 msgid ":"
-msgstr ":"
+msgstr ""
 
 msgctxt "odt:stock.shipment.out.return.restocking_list:"
 msgid "Code:"
-msgstr "Código:"
+msgstr ""
 
 msgctxt "odt:stock.shipment.out.return.restocking_list:"
 msgid "Customer"
-msgstr "Cliente"
-
-msgctxt "odt:stock.shipment.out.return.restocking_list:"
-msgid "E-Mail:"
-msgstr "Correo electrónico:"
+msgstr ""
 
 msgctxt "odt:stock.shipment.out.return.restocking_list:"
 msgid "From Location"
-msgstr "Desde ubicación"
-
-msgctxt "odt:stock.shipment.out.return.restocking_list:"
-msgid "Phone:"
-msgstr "Teléfono:"
+msgstr ""
 
 msgctxt "odt:stock.shipment.out.return.restocking_list:"
 msgid "Planned Date:"
-msgstr "Fecha estimada:"
+msgstr ""
 
 msgctxt "odt:stock.shipment.out.return.restocking_list:"
 msgid "Product"
-msgstr "Producto"
+msgstr ""
 
 msgctxt "odt:stock.shipment.out.return.restocking_list:"
 msgid "Quantity"
-msgstr "Cantidad"
+msgstr ""
 
 msgctxt "odt:stock.shipment.out.return.restocking_list:"
 msgid "Reference:"
-msgstr "Referencia:"
+msgstr ""
 
 msgctxt "odt:stock.shipment.out.return.restocking_list:"
 msgid "Restocking List"
-msgstr "Lista de reabastecimiento"
+msgstr ""
 
 msgctxt "odt:stock.shipment.out.return.restocking_list:"
 msgid "To Location"
-msgstr "A ubicación"
-
-msgctxt "odt:stock.shipment.out.return.restocking_list:"
-msgid "VAT Number:"
-msgstr "CIF/NIF:"
+msgstr ""
 
 msgctxt "odt:stock.shipment.out.return.restocking_list:"
 msgid "Warehouse:"
-msgstr "Almacén:"
+msgstr ""
 
 msgctxt "selection:stock.inventory,state:"
 msgid "Canceled"
@@ -1813,6 +1763,10 @@ msgid "Customer"
 msgstr "Cliente"
 
 msgctxt "selection:stock.location,type:"
+msgid "Drop"
+msgstr ""
+
+msgctxt "selection:stock.location,type:"
 msgid "Lost and Found"
 msgstr "Perdido/encontrado"
 
@@ -1938,7 +1892,7 @@ msgstr "Borrador"
 
 msgctxt "selection:stock.shipment.out,state:"
 msgid "Packed"
-msgstr "Empaquetado"
+msgstr "Empacado"
 
 msgctxt "selection:stock.shipment.out,state:"
 msgid "Waiting"
@@ -1962,295 +1916,303 @@ msgstr "Recibido"
 
 msgctxt "view:party.party:"
 msgid "Stock"
-msgstr "Logística"
+msgstr ""
 
 msgctxt "view:product.by_location.start:"
 msgid "Product by Location"
-msgstr "Productos por ubicación"
+msgstr ""
 
 msgctxt "view:product.product:"
 msgid "Cost Value"
-msgstr "Valor de coste"
+msgstr ""
 
 msgctxt "view:product.product:"
 msgid "Products"
-msgstr "Productos"
+msgstr ""
 
 msgctxt "view:stock.configuration:"
 msgid "Stock Configuration"
-msgstr "Configuración stock"
+msgstr ""
 
 msgctxt "view:stock.inventory.line:"
 msgid "Inventory Line"
-msgstr "Línea de inventario"
+msgstr ""
 
 msgctxt "view:stock.inventory.line:"
 msgid "Inventory Lines"
-msgstr "Líneas de inventario"
+msgstr ""
 
 msgctxt "view:stock.inventory:"
 msgid "Add an inventory line for each missing products"
-msgstr "Añadir una línea de inventario por cada producto que falta"
+msgstr ""
 
 msgctxt "view:stock.inventory:"
 msgid "Cancel"
-msgstr "Cancelar"
+msgstr ""
 
 msgctxt "view:stock.inventory:"
 msgid "Complete Inventory"
-msgstr "Inventario completo"
+msgstr ""
 
 msgctxt "view:stock.inventory:"
 msgid "Confirm"
-msgstr "Confirmar"
+msgstr ""
 
 msgctxt "view:stock.inventory:"
 msgid "Inventories"
-msgstr "Inventarios"
+msgstr ""
 
 msgctxt "view:stock.inventory:"
 msgid "Inventory"
-msgstr "Inventario"
+msgstr ""
 
 msgctxt "view:stock.location:"
 msgid "Location"
-msgstr "Ubicación"
+msgstr ""
 
 msgctxt "view:stock.location:"
 msgid "Location Quantity"
-msgstr "Cantidad en ubicación"
+msgstr ""
 
 msgctxt "view:stock.location:"
 msgid "Locations"
-msgstr "Ubicaciones"
+msgstr ""
+
+msgctxt "view:stock.move:"
+msgid "Cancel"
+msgstr ""
 
 msgctxt "view:stock.move:"
 msgid "Move"
-msgstr "Movimiento"
+msgstr ""
 
 msgctxt "view:stock.move:"
 msgid "Moves"
-msgstr "Movimientos"
+msgstr ""
+
+msgctxt "view:stock.move:"
+msgid "Reset to Draft"
+msgstr ""
 
 msgctxt "view:stock.period.cache:"
 msgid "Period Cache"
-msgstr "Período precalculado"
+msgstr ""
 
 msgctxt "view:stock.period.cache:"
 msgid "Period Caches"
-msgstr "Período precalculado"
+msgstr ""
 
 msgctxt "view:stock.period:"
 msgid "Close"
-msgstr "Cerrar"
+msgstr ""
 
 msgctxt "view:stock.period:"
 msgid "Draft"
-msgstr "Borrador"
+msgstr ""
 
 msgctxt "view:stock.period:"
 msgid "Period"
-msgstr "Período"
+msgstr ""
 
 msgctxt "view:stock.period:"
 msgid "Periods"
-msgstr "Períodos"
+msgstr ""
 
 msgctxt "view:stock.product_quantities_warehouse.start:"
 msgid "Product Quantities By Warehouse"
-msgstr "Unidades de producto por almacén"
+msgstr ""
 
 msgctxt "view:stock.product_quantities_warehouse:"
 msgid "Product Quantities By Warehouse"
-msgstr "Unidades de producto por almacén"
+msgstr ""
 
 msgctxt "view:stock.products_by_locations.start:"
 msgid "Products by Locations"
-msgstr "Productos por ubicación"
+msgstr ""
 
 msgctxt "view:stock.shipment.in.return.assign.failed:"
 msgid "Unable to Assign"
-msgstr "No se puede reservar"
+msgstr ""
 
 msgctxt "view:stock.shipment.in.return.assign.failed:"
 msgid "Unable to assign those products:"
-msgstr "No se pueden reservar estos productos:"
+msgstr ""
 
 msgctxt "view:stock.shipment.in.return:"
 msgid "Assign"
-msgstr "Reservar"
+msgstr ""
 
 msgctxt "view:stock.shipment.in.return:"
 msgid "Cancel"
-msgstr "Cancelar"
+msgstr ""
 
 msgctxt "view:stock.shipment.in.return:"
 msgid "Done"
-msgstr "Finalizar"
+msgstr ""
 
 msgctxt "view:stock.shipment.in.return:"
 msgid "Draft"
-msgstr "Borrador"
+msgstr ""
 
 msgctxt "view:stock.shipment.in.return:"
 msgid "Supplier Return Shipment"
-msgstr "Albarán devolución proveedor"
+msgstr ""
 
 msgctxt "view:stock.shipment.in.return:"
 msgid "Supplier Return Shipments"
-msgstr "Albaranes devolución proveedor"
+msgstr ""
 
 msgctxt "view:stock.shipment.in.return:"
 msgid "Wait"
-msgstr "Esperando"
+msgstr ""
 
 msgctxt "view:stock.shipment.in:"
 msgid "Cancel"
-msgstr "Cancelar"
+msgstr ""
 
 msgctxt "view:stock.shipment.in:"
 msgid "Done"
-msgstr "Finalizar"
+msgstr ""
 
 msgctxt "view:stock.shipment.in:"
 msgid "Incoming Moves"
-msgstr "Movimientos de entrada"
+msgstr ""
 
 msgctxt "view:stock.shipment.in:"
 msgid "Inventory Moves"
-msgstr "Movimientos internos"
+msgstr ""
 
 msgctxt "view:stock.shipment.in:"
 msgid "Receive"
-msgstr "Recibir"
+msgstr ""
 
 msgctxt "view:stock.shipment.in:"
 msgid "Reset to Draft"
-msgstr "Restaurar a borrador"
+msgstr ""
 
 msgctxt "view:stock.shipment.in:"
 msgid "Supplier Shipment"
-msgstr "Albarán proveedor"
+msgstr ""
 
 msgctxt "view:stock.shipment.in:"
 msgid "Supplier Shipments"
-msgstr "Albaranes proveedor"
+msgstr ""
 
 msgctxt "view:stock.shipment.internal.assign.failed:"
 msgid "Unable to Assign"
-msgstr "No se puede reservar"
+msgstr ""
 
 msgctxt "view:stock.shipment.internal.assign.failed:"
 msgid "Unable to assign those products:"
-msgstr "No se pueden reservar estos productos:"
+msgstr ""
 
 msgctxt "view:stock.shipment.internal:"
 msgid "Assign"
-msgstr "Reservar"
+msgstr ""
 
 msgctxt "view:stock.shipment.internal:"
 msgid "Cancel"
-msgstr "Cancelar"
+msgstr ""
 
 msgctxt "view:stock.shipment.internal:"
 msgid "Done"
-msgstr "Finalizar"
+msgstr ""
 
 msgctxt "view:stock.shipment.internal:"
 msgid "Draft"
-msgstr "Borrador"
+msgstr ""
 
 msgctxt "view:stock.shipment.internal:"
 msgid "Internal Shipment"
-msgstr "Albarán interno"
+msgstr ""
 
 msgctxt "view:stock.shipment.internal:"
 msgid "Internal Shipments"
-msgstr "Albaranes internos"
+msgstr ""
 
 msgctxt "view:stock.shipment.internal:"
 msgid "Wait"
-msgstr "En espera"
+msgstr ""
 
 msgctxt "view:stock.shipment.out.assign.failed:"
 msgid "Unable to Assign"
-msgstr "No se puede reservar"
+msgstr ""
 
 msgctxt "view:stock.shipment.out.assign.failed:"
 msgid "Unable to assign those products:"
-msgstr "No se pueden reservar estos productos:"
+msgstr ""
 
 msgctxt "view:stock.shipment.out.return:"
 msgid "Cancel"
-msgstr "Cancelar"
+msgstr ""
 
 msgctxt "view:stock.shipment.out.return:"
 msgid "Customer Return Shipment"
-msgstr "Albarán devolución cliente"
+msgstr ""
 
 msgctxt "view:stock.shipment.out.return:"
 msgid "Customer Return Shipments"
-msgstr "Albaranes devolución cliente"
+msgstr ""
 
 msgctxt "view:stock.shipment.out.return:"
 msgid "Done"
-msgstr "Finalizar"
+msgstr ""
 
 msgctxt "view:stock.shipment.out.return:"
 msgid "Draft"
-msgstr "Borrador"
+msgstr ""
 
 msgctxt "view:stock.shipment.out.return:"
 msgid "Incoming Moves"
-msgstr "Movimientos de entrada"
+msgstr ""
 
 msgctxt "view:stock.shipment.out.return:"
 msgid "Inventory Moves"
-msgstr "Movimientos internos"
+msgstr ""
 
 msgctxt "view:stock.shipment.out.return:"
 msgid "Received"
-msgstr "Recibido"
+msgstr ""
 
 msgctxt "view:stock.shipment.out:"
 msgid "Assign"
-msgstr "Reservar"
+msgstr ""
 
 msgctxt "view:stock.shipment.out:"
 msgid "Cancel"
-msgstr "Cancelar"
+msgstr ""
 
 msgctxt "view:stock.shipment.out:"
 msgid "Customer Shipment"
-msgstr "Albarán cliente"
+msgstr ""
 
 msgctxt "view:stock.shipment.out:"
 msgid "Customer Shipments"
-msgstr "Albaranes cliente"
+msgstr ""
 
 msgctxt "view:stock.shipment.out:"
 msgid "Done"
-msgstr "Finalizar"
+msgstr ""
 
 msgctxt "view:stock.shipment.out:"
 msgid "Draft"
-msgstr "Borrador"
+msgstr ""
 
 msgctxt "view:stock.shipment.out:"
 msgid "Inventory Moves"
-msgstr "Movimientos internos"
+msgstr ""
 
 msgctxt "view:stock.shipment.out:"
 msgid "Make shipment"
-msgstr "Empaquetar"
+msgstr ""
 
 msgctxt "view:stock.shipment.out:"
 msgid "Outgoing Moves"
-msgstr "Movimientos de salida"
+msgstr ""
 
 msgctxt "view:stock.shipment.out:"
 msgid "Wait"
-msgstr "En espera"
+msgstr ""
 
 msgctxt "wizard_button:product.by_location,start,end:"
 msgid "Cancel"
diff --git a/locale/fr_FR.po b/locale/fr_FR.po
index 96092d8..3b16252 100644
--- a/locale/fr_FR.po
+++ b/locale/fr_FR.po
@@ -7,8 +7,8 @@ msgid ""
 "You cannot change the default uom for a product which is associated to stock"
 " moves."
 msgstr ""
-"Vous ne pouvez pas changer l'UDM par défaut pour un produit qui a déjà fait "
-"l'objet de mouvements de stock"
+"Vous ne pouvez pas changer l'unité de mesure par défaut pour un produit qui "
+"a déjà fait l'objet de mouvements de stock."
 
 msgctxt "error:product.template:"
 msgid ""
@@ -40,8 +40,8 @@ msgid ""
 "Location \"%s\" with existing moves cannot be changed to a type that does "
 "not support moves."
 msgstr ""
-"L'emplacement « %s » est liée à des mouvements. Son type ne peut être un "
-"type qui ne supporte pas les mouvements."
+"L'emplacement « %s », liée à des mouvements, ne peut être changer en un type"
+" qui ne supporte pas les mouvements."
 
 msgctxt "error:stock.move:"
 msgid "Internal move quantity must be positive"
@@ -94,8 +94,7 @@ msgstr ""
 
 msgctxt "error:stock.move:"
 msgid "You can not set stock move \"%s\" to done state."
-msgstr ""
-"Vous ne pouvez passer dans l'état « Fait » le mouvement de stock « %s »."
+msgstr "Vous ne pouvez passer le mouvement de stock « %s » dans l'état fait."
 
 msgctxt "error:stock.move:"
 msgid "You can not set stock move \"%s\" to draft state."
@@ -395,6 +394,10 @@ msgctxt "field:stock.location,parent:"
 msgid "Parent"
 msgstr "Parent"
 
+msgctxt "field:stock.location,picking_location:"
+msgid "Picking"
+msgstr "Prélèvement"
+
 msgctxt "field:stock.location,quantity:"
 msgid "Quantity"
 msgstr "Quantité"
@@ -1076,18 +1079,24 @@ 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 "Prévoir le calcul du stock prévisionel pour cette date"
+msgstr ""
+"Prévoir le calcul du stock prévisionnel pour cette date.\n"
+"* Une valeur vide est une date infinie dans le future.\n"
+"* Une date dans le passé fournira des valeurs historiques."
+
+msgctxt "help:stock.location,picking_location:"
+msgid "If empty the Storage is used"
+msgstr "Si vide le magasin est utilisé"
 
 msgctxt "help:stock.products_by_locations.start,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 "Prévoir le calcul du stock prévisionel pour cette date"
-
-msgctxt "model:ir.action,name:"
-msgid "Create Return Shipment"
-msgstr "Créer l'expédition de retour"
+msgstr ""
+"Prévoir le calcul du stock prévisionnel pour cette date.\n"
+"* Une valeur vide est une date infinie dans le future.\n"
+"* Une date dans le passé fournira des valeurs historiques."
 
 msgctxt "model:ir.action,name:act_inventory_form"
 msgid "Inventories"
@@ -1185,6 +1194,10 @@ msgctxt "model:ir.action,name:wizard_products_by_locations"
 msgid "Products by Locations"
 msgstr "Produits par emplacements"
 
+msgctxt "model:ir.action,name:wizard_recompute_cost_price"
+msgid "Recompute Cost Price"
+msgstr "Recalculer le prix de revient"
+
 msgctxt "model:ir.action,name:wizard_shipment_in_return_assign"
 msgid "Assign Purchase Return Shipment"
 msgstr "Assigner le retour d'expédition fournisseur"
@@ -1466,7 +1479,7 @@ msgstr "Zone de sortie"
 
 msgctxt "model:stock.location,name:location_storage"
 msgid "Storage Zone"
-msgstr "Zone de stockage"
+msgstr "Zone de magasin"
 
 msgctxt "model:stock.location,name:location_supplier"
 msgid "Supplier"
@@ -1541,18 +1554,10 @@ msgid "Code:"
 msgstr "Code :"
 
 msgctxt "odt:stock.shipment.in.restocking_list:"
-msgid "E-Mail:"
-msgstr "Email :"
-
-msgctxt "odt:stock.shipment.in.restocking_list:"
 msgid "From Location"
 msgstr "Emplacement d'origine"
 
 msgctxt "odt:stock.shipment.in.restocking_list:"
-msgid "Phone:"
-msgstr "Téléphone :"
-
-msgctxt "odt:stock.shipment.in.restocking_list:"
 msgid "Planned Date:"
 msgstr "Date planifiée :"
 
@@ -1581,10 +1586,6 @@ msgid "To Location"
 msgstr "Emplacement de destination"
 
 msgctxt "odt:stock.shipment.in.restocking_list:"
-msgid "VAT Number:"
-msgstr "Numéro TVA :"
-
-msgctxt "odt:stock.shipment.in.restocking_list:"
 msgid "Warehouse:"
 msgstr "Entrepôt :"
 
@@ -1597,10 +1598,6 @@ msgid "Code:"
 msgstr "Code :"
 
 msgctxt "odt:stock.shipment.internal.report:"
-msgid "E-Mail:"
-msgstr "Email :"
-
-msgctxt "odt:stock.shipment.internal.report:"
 msgid "From Location"
 msgstr "Emplacement d'origine"
 
@@ -1613,10 +1610,6 @@ msgid "Internal Shipment"
 msgstr "Expédition interne"
 
 msgctxt "odt:stock.shipment.internal.report:"
-msgid "Phone:"
-msgstr "Téléphone :"
-
-msgctxt "odt:stock.shipment.internal.report:"
 msgid "Planned Date:"
 msgstr "Date planifiée :"
 
@@ -1640,10 +1633,6 @@ msgctxt "odt:stock.shipment.internal.report:"
 msgid "To Location:"
 msgstr "Emplacement de destination :"
 
-msgctxt "odt:stock.shipment.internal.report:"
-msgid "VAT Number:"
-msgstr "Numéro TVA :"
-
 msgctxt "odt:stock.shipment.out.delivery_note:"
 msgid "/"
 msgstr "/"
@@ -1661,14 +1650,6 @@ msgid "Delivery Note"
 msgstr "Bon de livraison"
 
 msgctxt "odt:stock.shipment.out.delivery_note:"
-msgid "E-Mail:"
-msgstr "Email :"
-
-msgctxt "odt:stock.shipment.out.delivery_note:"
-msgid "Phone:"
-msgstr "Téléphone :"
-
-msgctxt "odt:stock.shipment.out.delivery_note:"
 msgid "Product"
 msgstr "Produit"
 
@@ -1684,10 +1665,6 @@ msgctxt "odt:stock.shipment.out.delivery_note:"
 msgid "Shipment Number:"
 msgstr "Numéro d'expédition :"
 
-msgctxt "odt:stock.shipment.out.delivery_note:"
-msgid "VAT Number:"
-msgstr "Numéro TVA :"
-
 msgctxt "odt:stock.shipment.out.picking_list:"
 msgid "/"
 msgstr "/"
@@ -1701,18 +1678,10 @@ msgid "Customer:"
 msgstr "Client :"
 
 msgctxt "odt:stock.shipment.out.picking_list:"
-msgid "E-Mail:"
-msgstr "E-Mail:"
-
-msgctxt "odt:stock.shipment.out.picking_list:"
 msgid "From Location"
 msgstr "Emplacement d'origine"
 
 msgctxt "odt:stock.shipment.out.picking_list:"
-msgid "Phone:"
-msgstr "Téléphone :"
-
-msgctxt "odt:stock.shipment.out.picking_list:"
 msgid "Picking List"
 msgstr "Liste de prélèvement"
 
@@ -1737,10 +1706,6 @@ msgid "To Location"
 msgstr "Emplacement de destination"
 
 msgctxt "odt:stock.shipment.out.picking_list:"
-msgid "VAT Number:"
-msgstr "Numéro TVA :"
-
-msgctxt "odt:stock.shipment.out.picking_list:"
 msgid "Warehouse:"
 msgstr "Entrepôt :"
 
@@ -1750,7 +1715,7 @@ msgstr "/"
 
 msgctxt "odt:stock.shipment.out.return.restocking_list:"
 msgid ":"
-msgstr ":"
+msgstr " :"
 
 msgctxt "odt:stock.shipment.out.return.restocking_list:"
 msgid "Code:"
@@ -1761,18 +1726,10 @@ msgid "Customer"
 msgstr "Client"
 
 msgctxt "odt:stock.shipment.out.return.restocking_list:"
-msgid "E-Mail:"
-msgstr "Email :"
-
-msgctxt "odt:stock.shipment.out.return.restocking_list:"
 msgid "From Location"
 msgstr "Emplacement d'origine"
 
 msgctxt "odt:stock.shipment.out.return.restocking_list:"
-msgid "Phone:"
-msgstr "Téléphone :"
-
-msgctxt "odt:stock.shipment.out.return.restocking_list:"
 msgid "Planned Date:"
 msgstr "Date planifiée :"
 
@@ -1797,10 +1754,6 @@ msgid "To Location"
 msgstr "Emplacement de destination"
 
 msgctxt "odt:stock.shipment.out.return.restocking_list:"
-msgid "VAT Number:"
-msgstr "Numéro TVA :"
-
-msgctxt "odt:stock.shipment.out.return.restocking_list:"
 msgid "Warehouse:"
 msgstr "Entrepôt :"
 
@@ -1810,7 +1763,7 @@ msgstr "Annulé"
 
 msgctxt "selection:stock.inventory,state:"
 msgid "Done"
-msgstr "Fait"
+msgstr "Effectué"
 
 msgctxt "selection:stock.inventory,state:"
 msgid "Draft"
@@ -1821,6 +1774,10 @@ msgid "Customer"
 msgstr "Client"
 
 msgctxt "selection:stock.location,type:"
+msgid "Drop"
+msgstr "Livraison directe"
+
+msgctxt "selection:stock.location,type:"
 msgid "Lost and Found"
 msgstr "Pertes et surplus"
 
@@ -1854,7 +1811,7 @@ msgstr "Annulé"
 
 msgctxt "selection:stock.move,state:"
 msgid "Done"
-msgstr "Fait"
+msgstr "Effectué"
 
 msgctxt "selection:stock.move,state:"
 msgid "Draft"
@@ -1878,7 +1835,7 @@ msgstr "Annulé"
 
 msgctxt "selection:stock.shipment.in,state:"
 msgid "Done"
-msgstr "Fait"
+msgstr "Effectuée"
 
 msgctxt "selection:stock.shipment.in,state:"
 msgid "Draft"
@@ -1898,7 +1855,7 @@ msgstr "Annulé"
 
 msgctxt "selection:stock.shipment.in.return,state:"
 msgid "Done"
-msgstr "Fait"
+msgstr "Effectuée"
 
 msgctxt "selection:stock.shipment.in.return,state:"
 msgid "Draft"
@@ -1918,7 +1875,7 @@ msgstr "Annulé"
 
 msgctxt "selection:stock.shipment.internal,state:"
 msgid "Done"
-msgstr "Fait"
+msgstr "Effectuée"
 
 msgctxt "selection:stock.shipment.internal,state:"
 msgid "Draft"
@@ -1938,7 +1895,7 @@ msgstr "Annulé"
 
 msgctxt "selection:stock.shipment.out,state:"
 msgid "Done"
-msgstr "Fait"
+msgstr "Effectuée"
 
 msgctxt "selection:stock.shipment.out,state:"
 msgid "Draft"
@@ -1958,7 +1915,7 @@ msgstr "Annulé"
 
 msgctxt "selection:stock.shipment.out.return,state:"
 msgid "Done"
-msgstr "Fait"
+msgstr "Effectuée"
 
 msgctxt "selection:stock.shipment.out.return,state:"
 msgid "Draft"
@@ -2033,6 +1990,10 @@ msgid "Locations"
 msgstr "Emplacements"
 
 msgctxt "view:stock.move:"
+msgid "Cancel"
+msgstr "Annuler"
+
+msgctxt "view:stock.move:"
 msgid "Move"
 msgstr "Mouvement"
 
@@ -2040,6 +2001,10 @@ msgctxt "view:stock.move:"
 msgid "Moves"
 msgstr "Mouvements"
 
+msgctxt "view:stock.move:"
+msgid "Reset to Draft"
+msgstr "Remettre en brouillon"
+
 msgctxt "view:stock.period.cache:"
 msgid "Period Cache"
 msgstr "Cache de la période"
@@ -2094,7 +2059,7 @@ msgstr "Annuler"
 
 msgctxt "view:stock.shipment.in.return:"
 msgid "Done"
-msgstr "Fait"
+msgstr "Effectuée"
 
 msgctxt "view:stock.shipment.in.return:"
 msgid "Draft"
@@ -2118,7 +2083,7 @@ msgstr "Annuler"
 
 msgctxt "view:stock.shipment.in:"
 msgid "Done"
-msgstr "Fait"
+msgstr "Effectuée"
 
 msgctxt "view:stock.shipment.in:"
 msgid "Incoming Moves"
@@ -2162,7 +2127,7 @@ msgstr "Annuler"
 
 msgctxt "view:stock.shipment.internal:"
 msgid "Done"
-msgstr "Fait"
+msgstr "Effectuée"
 
 msgctxt "view:stock.shipment.internal:"
 msgid "Draft"
@@ -2202,7 +2167,7 @@ msgstr "Retours d'expédition client"
 
 msgctxt "view:stock.shipment.out.return:"
 msgid "Done"
-msgstr "Fait"
+msgstr "Effectuée"
 
 msgctxt "view:stock.shipment.out.return:"
 msgid "Draft"
@@ -2238,7 +2203,7 @@ msgstr "Expéditions client"
 
 msgctxt "view:stock.shipment.out:"
 msgid "Done"
-msgstr "Fait"
+msgstr "Effectuée"
 
 msgctxt "view:stock.shipment.out:"
 msgid "Draft"
diff --git a/locale/cs_CZ.po b/locale/hu_HU.po
similarity index 97%
copy from locale/cs_CZ.po
copy to locale/hu_HU.po
index d815dc1..0a9eea4 100644
--- a/locale/cs_CZ.po
+++ b/locale/hu_HU.po
@@ -366,6 +366,10 @@ msgctxt "field:stock.location,parent:"
 msgid "Parent"
 msgstr ""
 
+msgctxt "field:stock.location,picking_location:"
+msgid "Picking"
+msgstr ""
+
 msgctxt "field:stock.location,quantity:"
 msgid "Quantity"
 msgstr ""
@@ -1045,6 +1049,10 @@ msgid ""
 "* A date in the past will provide historical values."
 msgstr ""
 
+msgctxt "help:stock.location,picking_location:"
+msgid "If empty the Storage is used"
+msgstr ""
+
 msgctxt "help:stock.products_by_locations.start,forecast_date:"
 msgid ""
 "Allow to compute expected stock quantities for this date.\n"
@@ -1052,10 +1060,6 @@ msgid ""
 "* A date in the past will provide historical values."
 msgstr ""
 
-msgctxt "model:ir.action,name:"
-msgid "Create Return Shipment"
-msgstr ""
-
 msgctxt "model:ir.action,name:act_inventory_form"
 msgid "Inventories"
 msgstr ""
@@ -1152,6 +1156,10 @@ msgctxt "model:ir.action,name:wizard_products_by_locations"
 msgid "Products by Locations"
 msgstr ""
 
+msgctxt "model:ir.action,name:wizard_recompute_cost_price"
+msgid "Recompute Cost Price"
+msgstr ""
+
 msgctxt "model:ir.action,name:wizard_shipment_in_return_assign"
 msgid "Assign Purchase Return Shipment"
 msgstr ""
@@ -1508,18 +1516,10 @@ msgid "Code:"
 msgstr ""
 
 msgctxt "odt:stock.shipment.in.restocking_list:"
-msgid "E-Mail:"
-msgstr ""
-
-msgctxt "odt:stock.shipment.in.restocking_list:"
 msgid "From Location"
 msgstr ""
 
 msgctxt "odt:stock.shipment.in.restocking_list:"
-msgid "Phone:"
-msgstr ""
-
-msgctxt "odt:stock.shipment.in.restocking_list:"
 msgid "Planned Date:"
 msgstr ""
 
@@ -1548,10 +1548,6 @@ msgid "To Location"
 msgstr ""
 
 msgctxt "odt:stock.shipment.in.restocking_list:"
-msgid "VAT Number:"
-msgstr ""
-
-msgctxt "odt:stock.shipment.in.restocking_list:"
 msgid "Warehouse:"
 msgstr ""
 
@@ -1564,10 +1560,6 @@ msgid "Code:"
 msgstr ""
 
 msgctxt "odt:stock.shipment.internal.report:"
-msgid "E-Mail:"
-msgstr ""
-
-msgctxt "odt:stock.shipment.internal.report:"
 msgid "From Location"
 msgstr ""
 
@@ -1580,10 +1572,6 @@ msgid "Internal Shipment"
 msgstr ""
 
 msgctxt "odt:stock.shipment.internal.report:"
-msgid "Phone:"
-msgstr ""
-
-msgctxt "odt:stock.shipment.internal.report:"
 msgid "Planned Date:"
 msgstr ""
 
@@ -1607,10 +1595,6 @@ msgctxt "odt:stock.shipment.internal.report:"
 msgid "To Location:"
 msgstr ""
 
-msgctxt "odt:stock.shipment.internal.report:"
-msgid "VAT Number:"
-msgstr ""
-
 msgctxt "odt:stock.shipment.out.delivery_note:"
 msgid "/"
 msgstr ""
@@ -1628,14 +1612,6 @@ msgid "Delivery Note"
 msgstr ""
 
 msgctxt "odt:stock.shipment.out.delivery_note:"
-msgid "E-Mail:"
-msgstr ""
-
-msgctxt "odt:stock.shipment.out.delivery_note:"
-msgid "Phone:"
-msgstr ""
-
-msgctxt "odt:stock.shipment.out.delivery_note:"
 msgid "Product"
 msgstr ""
 
@@ -1651,10 +1627,6 @@ msgctxt "odt:stock.shipment.out.delivery_note:"
 msgid "Shipment Number:"
 msgstr ""
 
-msgctxt "odt:stock.shipment.out.delivery_note:"
-msgid "VAT Number:"
-msgstr ""
-
 msgctxt "odt:stock.shipment.out.picking_list:"
 msgid "/"
 msgstr ""
@@ -1668,18 +1640,10 @@ msgid "Customer:"
 msgstr ""
 
 msgctxt "odt:stock.shipment.out.picking_list:"
-msgid "E-Mail:"
-msgstr ""
-
-msgctxt "odt:stock.shipment.out.picking_list:"
 msgid "From Location"
 msgstr ""
 
 msgctxt "odt:stock.shipment.out.picking_list:"
-msgid "Phone:"
-msgstr ""
-
-msgctxt "odt:stock.shipment.out.picking_list:"
 msgid "Picking List"
 msgstr ""
 
@@ -1704,10 +1668,6 @@ msgid "To Location"
 msgstr ""
 
 msgctxt "odt:stock.shipment.out.picking_list:"
-msgid "VAT Number:"
-msgstr ""
-
-msgctxt "odt:stock.shipment.out.picking_list:"
 msgid "Warehouse:"
 msgstr ""
 
@@ -1728,18 +1688,10 @@ msgid "Customer"
 msgstr ""
 
 msgctxt "odt:stock.shipment.out.return.restocking_list:"
-msgid "E-Mail:"
-msgstr ""
-
-msgctxt "odt:stock.shipment.out.return.restocking_list:"
 msgid "From Location"
 msgstr ""
 
 msgctxt "odt:stock.shipment.out.return.restocking_list:"
-msgid "Phone:"
-msgstr ""
-
-msgctxt "odt:stock.shipment.out.return.restocking_list:"
 msgid "Planned Date:"
 msgstr ""
 
@@ -1764,10 +1716,6 @@ msgid "To Location"
 msgstr ""
 
 msgctxt "odt:stock.shipment.out.return.restocking_list:"
-msgid "VAT Number:"
-msgstr ""
-
-msgctxt "odt:stock.shipment.out.return.restocking_list:"
 msgid "Warehouse:"
 msgstr ""
 
@@ -1788,6 +1736,10 @@ msgid "Customer"
 msgstr ""
 
 msgctxt "selection:stock.location,type:"
+msgid "Drop"
+msgstr ""
+
+msgctxt "selection:stock.location,type:"
 msgid "Lost and Found"
 msgstr ""
 
@@ -2000,6 +1952,10 @@ msgid "Locations"
 msgstr ""
 
 msgctxt "view:stock.move:"
+msgid "Cancel"
+msgstr ""
+
+msgctxt "view:stock.move:"
 msgid "Move"
 msgstr ""
 
@@ -2007,6 +1963,10 @@ msgctxt "view:stock.move:"
 msgid "Moves"
 msgstr ""
 
+msgctxt "view:stock.move:"
+msgid "Reset to Draft"
+msgstr ""
+
 msgctxt "view:stock.period.cache:"
 msgid "Period Cache"
 msgstr ""
diff --git a/locale/cs_CZ.po b/locale/it_IT.po
similarity index 97%
copy from locale/cs_CZ.po
copy to locale/it_IT.po
index d815dc1..0a9eea4 100644
--- a/locale/cs_CZ.po
+++ b/locale/it_IT.po
@@ -366,6 +366,10 @@ msgctxt "field:stock.location,parent:"
 msgid "Parent"
 msgstr ""
 
+msgctxt "field:stock.location,picking_location:"
+msgid "Picking"
+msgstr ""
+
 msgctxt "field:stock.location,quantity:"
 msgid "Quantity"
 msgstr ""
@@ -1045,6 +1049,10 @@ msgid ""
 "* A date in the past will provide historical values."
 msgstr ""
 
+msgctxt "help:stock.location,picking_location:"
+msgid "If empty the Storage is used"
+msgstr ""
+
 msgctxt "help:stock.products_by_locations.start,forecast_date:"
 msgid ""
 "Allow to compute expected stock quantities for this date.\n"
@@ -1052,10 +1060,6 @@ msgid ""
 "* A date in the past will provide historical values."
 msgstr ""
 
-msgctxt "model:ir.action,name:"
-msgid "Create Return Shipment"
-msgstr ""
-
 msgctxt "model:ir.action,name:act_inventory_form"
 msgid "Inventories"
 msgstr ""
@@ -1152,6 +1156,10 @@ msgctxt "model:ir.action,name:wizard_products_by_locations"
 msgid "Products by Locations"
 msgstr ""
 
+msgctxt "model:ir.action,name:wizard_recompute_cost_price"
+msgid "Recompute Cost Price"
+msgstr ""
+
 msgctxt "model:ir.action,name:wizard_shipment_in_return_assign"
 msgid "Assign Purchase Return Shipment"
 msgstr ""
@@ -1508,18 +1516,10 @@ msgid "Code:"
 msgstr ""
 
 msgctxt "odt:stock.shipment.in.restocking_list:"
-msgid "E-Mail:"
-msgstr ""
-
-msgctxt "odt:stock.shipment.in.restocking_list:"
 msgid "From Location"
 msgstr ""
 
 msgctxt "odt:stock.shipment.in.restocking_list:"
-msgid "Phone:"
-msgstr ""
-
-msgctxt "odt:stock.shipment.in.restocking_list:"
 msgid "Planned Date:"
 msgstr ""
 
@@ -1548,10 +1548,6 @@ msgid "To Location"
 msgstr ""
 
 msgctxt "odt:stock.shipment.in.restocking_list:"
-msgid "VAT Number:"
-msgstr ""
-
-msgctxt "odt:stock.shipment.in.restocking_list:"
 msgid "Warehouse:"
 msgstr ""
 
@@ -1564,10 +1560,6 @@ msgid "Code:"
 msgstr ""
 
 msgctxt "odt:stock.shipment.internal.report:"
-msgid "E-Mail:"
-msgstr ""
-
-msgctxt "odt:stock.shipment.internal.report:"
 msgid "From Location"
 msgstr ""
 
@@ -1580,10 +1572,6 @@ msgid "Internal Shipment"
 msgstr ""
 
 msgctxt "odt:stock.shipment.internal.report:"
-msgid "Phone:"
-msgstr ""
-
-msgctxt "odt:stock.shipment.internal.report:"
 msgid "Planned Date:"
 msgstr ""
 
@@ -1607,10 +1595,6 @@ msgctxt "odt:stock.shipment.internal.report:"
 msgid "To Location:"
 msgstr ""
 
-msgctxt "odt:stock.shipment.internal.report:"
-msgid "VAT Number:"
-msgstr ""
-
 msgctxt "odt:stock.shipment.out.delivery_note:"
 msgid "/"
 msgstr ""
@@ -1628,14 +1612,6 @@ msgid "Delivery Note"
 msgstr ""
 
 msgctxt "odt:stock.shipment.out.delivery_note:"
-msgid "E-Mail:"
-msgstr ""
-
-msgctxt "odt:stock.shipment.out.delivery_note:"
-msgid "Phone:"
-msgstr ""
-
-msgctxt "odt:stock.shipment.out.delivery_note:"
 msgid "Product"
 msgstr ""
 
@@ -1651,10 +1627,6 @@ msgctxt "odt:stock.shipment.out.delivery_note:"
 msgid "Shipment Number:"
 msgstr ""
 
-msgctxt "odt:stock.shipment.out.delivery_note:"
-msgid "VAT Number:"
-msgstr ""
-
 msgctxt "odt:stock.shipment.out.picking_list:"
 msgid "/"
 msgstr ""
@@ -1668,18 +1640,10 @@ msgid "Customer:"
 msgstr ""
 
 msgctxt "odt:stock.shipment.out.picking_list:"
-msgid "E-Mail:"
-msgstr ""
-
-msgctxt "odt:stock.shipment.out.picking_list:"
 msgid "From Location"
 msgstr ""
 
 msgctxt "odt:stock.shipment.out.picking_list:"
-msgid "Phone:"
-msgstr ""
-
-msgctxt "odt:stock.shipment.out.picking_list:"
 msgid "Picking List"
 msgstr ""
 
@@ -1704,10 +1668,6 @@ msgid "To Location"
 msgstr ""
 
 msgctxt "odt:stock.shipment.out.picking_list:"
-msgid "VAT Number:"
-msgstr ""
-
-msgctxt "odt:stock.shipment.out.picking_list:"
 msgid "Warehouse:"
 msgstr ""
 
@@ -1728,18 +1688,10 @@ msgid "Customer"
 msgstr ""
 
 msgctxt "odt:stock.shipment.out.return.restocking_list:"
-msgid "E-Mail:"
-msgstr ""
-
-msgctxt "odt:stock.shipment.out.return.restocking_list:"
 msgid "From Location"
 msgstr ""
 
 msgctxt "odt:stock.shipment.out.return.restocking_list:"
-msgid "Phone:"
-msgstr ""
-
-msgctxt "odt:stock.shipment.out.return.restocking_list:"
 msgid "Planned Date:"
 msgstr ""
 
@@ -1764,10 +1716,6 @@ msgid "To Location"
 msgstr ""
 
 msgctxt "odt:stock.shipment.out.return.restocking_list:"
-msgid "VAT Number:"
-msgstr ""
-
-msgctxt "odt:stock.shipment.out.return.restocking_list:"
 msgid "Warehouse:"
 msgstr ""
 
@@ -1788,6 +1736,10 @@ msgid "Customer"
 msgstr ""
 
 msgctxt "selection:stock.location,type:"
+msgid "Drop"
+msgstr ""
+
+msgctxt "selection:stock.location,type:"
 msgid "Lost and Found"
 msgstr ""
 
@@ -2000,6 +1952,10 @@ msgid "Locations"
 msgstr ""
 
 msgctxt "view:stock.move:"
+msgid "Cancel"
+msgstr ""
+
+msgctxt "view:stock.move:"
 msgid "Move"
 msgstr ""
 
@@ -2007,6 +1963,10 @@ msgctxt "view:stock.move:"
 msgid "Moves"
 msgstr ""
 
+msgctxt "view:stock.move:"
+msgid "Reset to Draft"
+msgstr ""
+
 msgctxt "view:stock.period.cache:"
 msgid "Period Cache"
 msgstr ""
diff --git a/locale/cs_CZ.po b/locale/ja_JP.po
similarity index 97%
copy from locale/cs_CZ.po
copy to locale/ja_JP.po
index d815dc1..0a9eea4 100644
--- a/locale/cs_CZ.po
+++ b/locale/ja_JP.po
@@ -366,6 +366,10 @@ msgctxt "field:stock.location,parent:"
 msgid "Parent"
 msgstr ""
 
+msgctxt "field:stock.location,picking_location:"
+msgid "Picking"
+msgstr ""
+
 msgctxt "field:stock.location,quantity:"
 msgid "Quantity"
 msgstr ""
@@ -1045,6 +1049,10 @@ msgid ""
 "* A date in the past will provide historical values."
 msgstr ""
 
+msgctxt "help:stock.location,picking_location:"
+msgid "If empty the Storage is used"
+msgstr ""
+
 msgctxt "help:stock.products_by_locations.start,forecast_date:"
 msgid ""
 "Allow to compute expected stock quantities for this date.\n"
@@ -1052,10 +1060,6 @@ msgid ""
 "* A date in the past will provide historical values."
 msgstr ""
 
-msgctxt "model:ir.action,name:"
-msgid "Create Return Shipment"
-msgstr ""
-
 msgctxt "model:ir.action,name:act_inventory_form"
 msgid "Inventories"
 msgstr ""
@@ -1152,6 +1156,10 @@ msgctxt "model:ir.action,name:wizard_products_by_locations"
 msgid "Products by Locations"
 msgstr ""
 
+msgctxt "model:ir.action,name:wizard_recompute_cost_price"
+msgid "Recompute Cost Price"
+msgstr ""
+
 msgctxt "model:ir.action,name:wizard_shipment_in_return_assign"
 msgid "Assign Purchase Return Shipment"
 msgstr ""
@@ -1508,18 +1516,10 @@ msgid "Code:"
 msgstr ""
 
 msgctxt "odt:stock.shipment.in.restocking_list:"
-msgid "E-Mail:"
-msgstr ""
-
-msgctxt "odt:stock.shipment.in.restocking_list:"
 msgid "From Location"
 msgstr ""
 
 msgctxt "odt:stock.shipment.in.restocking_list:"
-msgid "Phone:"
-msgstr ""
-
-msgctxt "odt:stock.shipment.in.restocking_list:"
 msgid "Planned Date:"
 msgstr ""
 
@@ -1548,10 +1548,6 @@ msgid "To Location"
 msgstr ""
 
 msgctxt "odt:stock.shipment.in.restocking_list:"
-msgid "VAT Number:"
-msgstr ""
-
-msgctxt "odt:stock.shipment.in.restocking_list:"
 msgid "Warehouse:"
 msgstr ""
 
@@ -1564,10 +1560,6 @@ msgid "Code:"
 msgstr ""
 
 msgctxt "odt:stock.shipment.internal.report:"
-msgid "E-Mail:"
-msgstr ""
-
-msgctxt "odt:stock.shipment.internal.report:"
 msgid "From Location"
 msgstr ""
 
@@ -1580,10 +1572,6 @@ msgid "Internal Shipment"
 msgstr ""
 
 msgctxt "odt:stock.shipment.internal.report:"
-msgid "Phone:"
-msgstr ""
-
-msgctxt "odt:stock.shipment.internal.report:"
 msgid "Planned Date:"
 msgstr ""
 
@@ -1607,10 +1595,6 @@ msgctxt "odt:stock.shipment.internal.report:"
 msgid "To Location:"
 msgstr ""
 
-msgctxt "odt:stock.shipment.internal.report:"
-msgid "VAT Number:"
-msgstr ""
-
 msgctxt "odt:stock.shipment.out.delivery_note:"
 msgid "/"
 msgstr ""
@@ -1628,14 +1612,6 @@ msgid "Delivery Note"
 msgstr ""
 
 msgctxt "odt:stock.shipment.out.delivery_note:"
-msgid "E-Mail:"
-msgstr ""
-
-msgctxt "odt:stock.shipment.out.delivery_note:"
-msgid "Phone:"
-msgstr ""
-
-msgctxt "odt:stock.shipment.out.delivery_note:"
 msgid "Product"
 msgstr ""
 
@@ -1651,10 +1627,6 @@ msgctxt "odt:stock.shipment.out.delivery_note:"
 msgid "Shipment Number:"
 msgstr ""
 
-msgctxt "odt:stock.shipment.out.delivery_note:"
-msgid "VAT Number:"
-msgstr ""
-
 msgctxt "odt:stock.shipment.out.picking_list:"
 msgid "/"
 msgstr ""
@@ -1668,18 +1640,10 @@ msgid "Customer:"
 msgstr ""
 
 msgctxt "odt:stock.shipment.out.picking_list:"
-msgid "E-Mail:"
-msgstr ""
-
-msgctxt "odt:stock.shipment.out.picking_list:"
 msgid "From Location"
 msgstr ""
 
 msgctxt "odt:stock.shipment.out.picking_list:"
-msgid "Phone:"
-msgstr ""
-
-msgctxt "odt:stock.shipment.out.picking_list:"
 msgid "Picking List"
 msgstr ""
 
@@ -1704,10 +1668,6 @@ msgid "To Location"
 msgstr ""
 
 msgctxt "odt:stock.shipment.out.picking_list:"
-msgid "VAT Number:"
-msgstr ""
-
-msgctxt "odt:stock.shipment.out.picking_list:"
 msgid "Warehouse:"
 msgstr ""
 
@@ -1728,18 +1688,10 @@ msgid "Customer"
 msgstr ""
 
 msgctxt "odt:stock.shipment.out.return.restocking_list:"
-msgid "E-Mail:"
-msgstr ""
-
-msgctxt "odt:stock.shipment.out.return.restocking_list:"
 msgid "From Location"
 msgstr ""
 
 msgctxt "odt:stock.shipment.out.return.restocking_list:"
-msgid "Phone:"
-msgstr ""
-
-msgctxt "odt:stock.shipment.out.return.restocking_list:"
 msgid "Planned Date:"
 msgstr ""
 
@@ -1764,10 +1716,6 @@ msgid "To Location"
 msgstr ""
 
 msgctxt "odt:stock.shipment.out.return.restocking_list:"
-msgid "VAT Number:"
-msgstr ""
-
-msgctxt "odt:stock.shipment.out.return.restocking_list:"
 msgid "Warehouse:"
 msgstr ""
 
@@ -1788,6 +1736,10 @@ msgid "Customer"
 msgstr ""
 
 msgctxt "selection:stock.location,type:"
+msgid "Drop"
+msgstr ""
+
+msgctxt "selection:stock.location,type:"
 msgid "Lost and Found"
 msgstr ""
 
@@ -2000,6 +1952,10 @@ msgid "Locations"
 msgstr ""
 
 msgctxt "view:stock.move:"
+msgid "Cancel"
+msgstr ""
+
+msgctxt "view:stock.move:"
 msgid "Move"
 msgstr ""
 
@@ -2007,6 +1963,10 @@ msgctxt "view:stock.move:"
 msgid "Moves"
 msgstr ""
 
+msgctxt "view:stock.move:"
+msgid "Reset to Draft"
+msgstr ""
+
 msgctxt "view:stock.period.cache:"
 msgid "Period Cache"
 msgstr ""
diff --git a/locale/cs_CZ.po b/locale/lt_LT.po
similarity index 97%
copy from locale/cs_CZ.po
copy to locale/lt_LT.po
index d815dc1..0a9eea4 100644
--- a/locale/cs_CZ.po
+++ b/locale/lt_LT.po
@@ -366,6 +366,10 @@ msgctxt "field:stock.location,parent:"
 msgid "Parent"
 msgstr ""
 
+msgctxt "field:stock.location,picking_location:"
+msgid "Picking"
+msgstr ""
+
 msgctxt "field:stock.location,quantity:"
 msgid "Quantity"
 msgstr ""
@@ -1045,6 +1049,10 @@ msgid ""
 "* A date in the past will provide historical values."
 msgstr ""
 
+msgctxt "help:stock.location,picking_location:"
+msgid "If empty the Storage is used"
+msgstr ""
+
 msgctxt "help:stock.products_by_locations.start,forecast_date:"
 msgid ""
 "Allow to compute expected stock quantities for this date.\n"
@@ -1052,10 +1060,6 @@ msgid ""
 "* A date in the past will provide historical values."
 msgstr ""
 
-msgctxt "model:ir.action,name:"
-msgid "Create Return Shipment"
-msgstr ""
-
 msgctxt "model:ir.action,name:act_inventory_form"
 msgid "Inventories"
 msgstr ""
@@ -1152,6 +1156,10 @@ msgctxt "model:ir.action,name:wizard_products_by_locations"
 msgid "Products by Locations"
 msgstr ""
 
+msgctxt "model:ir.action,name:wizard_recompute_cost_price"
+msgid "Recompute Cost Price"
+msgstr ""
+
 msgctxt "model:ir.action,name:wizard_shipment_in_return_assign"
 msgid "Assign Purchase Return Shipment"
 msgstr ""
@@ -1508,18 +1516,10 @@ msgid "Code:"
 msgstr ""
 
 msgctxt "odt:stock.shipment.in.restocking_list:"
-msgid "E-Mail:"
-msgstr ""
-
-msgctxt "odt:stock.shipment.in.restocking_list:"
 msgid "From Location"
 msgstr ""
 
 msgctxt "odt:stock.shipment.in.restocking_list:"
-msgid "Phone:"
-msgstr ""
-
-msgctxt "odt:stock.shipment.in.restocking_list:"
 msgid "Planned Date:"
 msgstr ""
 
@@ -1548,10 +1548,6 @@ msgid "To Location"
 msgstr ""
 
 msgctxt "odt:stock.shipment.in.restocking_list:"
-msgid "VAT Number:"
-msgstr ""
-
-msgctxt "odt:stock.shipment.in.restocking_list:"
 msgid "Warehouse:"
 msgstr ""
 
@@ -1564,10 +1560,6 @@ msgid "Code:"
 msgstr ""
 
 msgctxt "odt:stock.shipment.internal.report:"
-msgid "E-Mail:"
-msgstr ""
-
-msgctxt "odt:stock.shipment.internal.report:"
 msgid "From Location"
 msgstr ""
 
@@ -1580,10 +1572,6 @@ msgid "Internal Shipment"
 msgstr ""
 
 msgctxt "odt:stock.shipment.internal.report:"
-msgid "Phone:"
-msgstr ""
-
-msgctxt "odt:stock.shipment.internal.report:"
 msgid "Planned Date:"
 msgstr ""
 
@@ -1607,10 +1595,6 @@ msgctxt "odt:stock.shipment.internal.report:"
 msgid "To Location:"
 msgstr ""
 
-msgctxt "odt:stock.shipment.internal.report:"
-msgid "VAT Number:"
-msgstr ""
-
 msgctxt "odt:stock.shipment.out.delivery_note:"
 msgid "/"
 msgstr ""
@@ -1628,14 +1612,6 @@ msgid "Delivery Note"
 msgstr ""
 
 msgctxt "odt:stock.shipment.out.delivery_note:"
-msgid "E-Mail:"
-msgstr ""
-
-msgctxt "odt:stock.shipment.out.delivery_note:"
-msgid "Phone:"
-msgstr ""
-
-msgctxt "odt:stock.shipment.out.delivery_note:"
 msgid "Product"
 msgstr ""
 
@@ -1651,10 +1627,6 @@ msgctxt "odt:stock.shipment.out.delivery_note:"
 msgid "Shipment Number:"
 msgstr ""
 
-msgctxt "odt:stock.shipment.out.delivery_note:"
-msgid "VAT Number:"
-msgstr ""
-
 msgctxt "odt:stock.shipment.out.picking_list:"
 msgid "/"
 msgstr ""
@@ -1668,18 +1640,10 @@ msgid "Customer:"
 msgstr ""
 
 msgctxt "odt:stock.shipment.out.picking_list:"
-msgid "E-Mail:"
-msgstr ""
-
-msgctxt "odt:stock.shipment.out.picking_list:"
 msgid "From Location"
 msgstr ""
 
 msgctxt "odt:stock.shipment.out.picking_list:"
-msgid "Phone:"
-msgstr ""
-
-msgctxt "odt:stock.shipment.out.picking_list:"
 msgid "Picking List"
 msgstr ""
 
@@ -1704,10 +1668,6 @@ msgid "To Location"
 msgstr ""
 
 msgctxt "odt:stock.shipment.out.picking_list:"
-msgid "VAT Number:"
-msgstr ""
-
-msgctxt "odt:stock.shipment.out.picking_list:"
 msgid "Warehouse:"
 msgstr ""
 
@@ -1728,18 +1688,10 @@ msgid "Customer"
 msgstr ""
 
 msgctxt "odt:stock.shipment.out.return.restocking_list:"
-msgid "E-Mail:"
-msgstr ""
-
-msgctxt "odt:stock.shipment.out.return.restocking_list:"
 msgid "From Location"
 msgstr ""
 
 msgctxt "odt:stock.shipment.out.return.restocking_list:"
-msgid "Phone:"
-msgstr ""
-
-msgctxt "odt:stock.shipment.out.return.restocking_list:"
 msgid "Planned Date:"
 msgstr ""
 
@@ -1764,10 +1716,6 @@ msgid "To Location"
 msgstr ""
 
 msgctxt "odt:stock.shipment.out.return.restocking_list:"
-msgid "VAT Number:"
-msgstr ""
-
-msgctxt "odt:stock.shipment.out.return.restocking_list:"
 msgid "Warehouse:"
 msgstr ""
 
@@ -1788,6 +1736,10 @@ msgid "Customer"
 msgstr ""
 
 msgctxt "selection:stock.location,type:"
+msgid "Drop"
+msgstr ""
+
+msgctxt "selection:stock.location,type:"
 msgid "Lost and Found"
 msgstr ""
 
@@ -2000,6 +1952,10 @@ msgid "Locations"
 msgstr ""
 
 msgctxt "view:stock.move:"
+msgid "Cancel"
+msgstr ""
+
+msgctxt "view:stock.move:"
 msgid "Move"
 msgstr ""
 
@@ -2007,6 +1963,10 @@ msgctxt "view:stock.move:"
 msgid "Moves"
 msgstr ""
 
+msgctxt "view:stock.move:"
+msgid "Reset to Draft"
+msgstr ""
+
 msgctxt "view:stock.period.cache:"
 msgid "Period Cache"
 msgstr ""
diff --git a/locale/nl_NL.po b/locale/nl_NL.po
index b86fca1..8411ace 100644
--- a/locale/nl_NL.po
+++ b/locale/nl_NL.po
@@ -386,6 +386,10 @@ msgctxt "field:stock.location,parent:"
 msgid "Parent"
 msgstr "Bovenliggend niveau"
 
+msgctxt "field:stock.location,picking_location:"
+msgid "Picking"
+msgstr ""
+
 #, fuzzy
 msgctxt "field:stock.location,quantity:"
 msgid "Quantity"
@@ -1132,6 +1136,10 @@ msgid ""
 "* A date in the past will provide historical values."
 msgstr ""
 
+msgctxt "help:stock.location,picking_location:"
+msgid "If empty the Storage is used"
+msgstr ""
+
 msgctxt "help:stock.products_by_locations.start,forecast_date:"
 msgid ""
 "Allow to compute expected stock quantities for this date.\n"
@@ -1139,10 +1147,6 @@ msgid ""
 "* A date in the past will provide historical values."
 msgstr ""
 
-msgctxt "model:ir.action,name:"
-msgid "Create Return Shipment"
-msgstr ""
-
 msgctxt "model:ir.action,name:act_inventory_form"
 msgid "Inventories"
 msgstr ""
@@ -1242,6 +1246,10 @@ msgctxt "model:ir.action,name:wizard_products_by_locations"
 msgid "Products by Locations"
 msgstr ""
 
+msgctxt "model:ir.action,name:wizard_recompute_cost_price"
+msgid "Recompute Cost Price"
+msgstr ""
+
 msgctxt "model:ir.action,name:wizard_shipment_in_return_assign"
 msgid "Assign Purchase Return Shipment"
 msgstr ""
@@ -1614,20 +1622,10 @@ msgctxt "odt:stock.shipment.in.restocking_list:"
 msgid "Code:"
 msgstr ""
 
-#, fuzzy
-msgctxt "odt:stock.shipment.in.restocking_list:"
-msgid "E-Mail:"
-msgstr "E-mail:"
-
 msgctxt "odt:stock.shipment.in.restocking_list:"
 msgid "From Location"
 msgstr ""
 
-#, fuzzy
-msgctxt "odt:stock.shipment.in.restocking_list:"
-msgid "Phone:"
-msgstr "Telefoon:"
-
 msgctxt "odt:stock.shipment.in.restocking_list:"
 msgid "Planned Date:"
 msgstr ""
@@ -1659,11 +1657,6 @@ msgctxt "odt:stock.shipment.in.restocking_list:"
 msgid "To Location"
 msgstr ""
 
-#, fuzzy
-msgctxt "odt:stock.shipment.in.restocking_list:"
-msgid "VAT Number:"
-msgstr "BTW-nummer:"
-
 msgctxt "odt:stock.shipment.in.restocking_list:"
 msgid "Warehouse:"
 msgstr ""
@@ -1676,11 +1669,6 @@ msgctxt "odt:stock.shipment.internal.report:"
 msgid "Code:"
 msgstr ""
 
-#, fuzzy
-msgctxt "odt:stock.shipment.internal.report:"
-msgid "E-Mail:"
-msgstr "E-mail:"
-
 msgctxt "odt:stock.shipment.internal.report:"
 msgid "From Location"
 msgstr ""
@@ -1693,11 +1681,6 @@ msgctxt "odt:stock.shipment.internal.report:"
 msgid "Internal Shipment"
 msgstr ""
 
-#, fuzzy
-msgctxt "odt:stock.shipment.internal.report:"
-msgid "Phone:"
-msgstr "Telefoon:"
-
 msgctxt "odt:stock.shipment.internal.report:"
 msgid "Planned Date:"
 msgstr ""
@@ -1725,11 +1708,6 @@ msgctxt "odt:stock.shipment.internal.report:"
 msgid "To Location:"
 msgstr ""
 
-#, fuzzy
-msgctxt "odt:stock.shipment.internal.report:"
-msgid "VAT Number:"
-msgstr "BTW-nummer:"
-
 msgctxt "odt:stock.shipment.out.delivery_note:"
 msgid "/"
 msgstr ""
@@ -1749,16 +1727,6 @@ msgstr ""
 
 #, fuzzy
 msgctxt "odt:stock.shipment.out.delivery_note:"
-msgid "E-Mail:"
-msgstr "E-mail:"
-
-#, fuzzy
-msgctxt "odt:stock.shipment.out.delivery_note:"
-msgid "Phone:"
-msgstr "Telefoon:"
-
-#, fuzzy
-msgctxt "odt:stock.shipment.out.delivery_note:"
 msgid "Product"
 msgstr "Producten"
 
@@ -1776,11 +1744,6 @@ msgctxt "odt:stock.shipment.out.delivery_note:"
 msgid "Shipment Number:"
 msgstr ""
 
-#, fuzzy
-msgctxt "odt:stock.shipment.out.delivery_note:"
-msgid "VAT Number:"
-msgstr "BTW-nummer:"
-
 msgctxt "odt:stock.shipment.out.picking_list:"
 msgid "/"
 msgstr ""
@@ -1793,20 +1756,10 @@ msgctxt "odt:stock.shipment.out.picking_list:"
 msgid "Customer:"
 msgstr ""
 
-#, fuzzy
-msgctxt "odt:stock.shipment.out.picking_list:"
-msgid "E-Mail:"
-msgstr "E-mail:"
-
 msgctxt "odt:stock.shipment.out.picking_list:"
 msgid "From Location"
 msgstr ""
 
-#, fuzzy
-msgctxt "odt:stock.shipment.out.picking_list:"
-msgid "Phone:"
-msgstr "Telefoon:"
-
 msgctxt "odt:stock.shipment.out.picking_list:"
 msgid "Picking List"
 msgstr ""
@@ -1834,11 +1787,6 @@ msgctxt "odt:stock.shipment.out.picking_list:"
 msgid "To Location"
 msgstr ""
 
-#, fuzzy
-msgctxt "odt:stock.shipment.out.picking_list:"
-msgid "VAT Number:"
-msgstr "BTW-nummer:"
-
 msgctxt "odt:stock.shipment.out.picking_list:"
 msgid "Warehouse:"
 msgstr ""
@@ -1860,20 +1808,10 @@ msgctxt "odt:stock.shipment.out.return.restocking_list:"
 msgid "Customer"
 msgstr "Klant"
 
-#, fuzzy
-msgctxt "odt:stock.shipment.out.return.restocking_list:"
-msgid "E-Mail:"
-msgstr "E-mail:"
-
 msgctxt "odt:stock.shipment.out.return.restocking_list:"
 msgid "From Location"
 msgstr ""
 
-#, fuzzy
-msgctxt "odt:stock.shipment.out.return.restocking_list:"
-msgid "Phone:"
-msgstr "Telefoon:"
-
 msgctxt "odt:stock.shipment.out.return.restocking_list:"
 msgid "Planned Date:"
 msgstr ""
@@ -1901,11 +1839,6 @@ msgctxt "odt:stock.shipment.out.return.restocking_list:"
 msgid "To Location"
 msgstr ""
 
-#, fuzzy
-msgctxt "odt:stock.shipment.out.return.restocking_list:"
-msgid "VAT Number:"
-msgstr "BTW-nummer:"
-
 msgctxt "odt:stock.shipment.out.return.restocking_list:"
 msgid "Warehouse:"
 msgstr ""
@@ -1931,6 +1864,10 @@ msgid "Customer"
 msgstr "Klant"
 
 msgctxt "selection:stock.location,type:"
+msgid "Drop"
+msgstr ""
+
+msgctxt "selection:stock.location,type:"
 msgid "Lost and Found"
 msgstr ""
 
@@ -2171,6 +2108,10 @@ msgctxt "view:stock.location:"
 msgid "Locations"
 msgstr ""
 
+msgctxt "view:stock.move:"
+msgid "Cancel"
+msgstr ""
+
 #, fuzzy
 msgctxt "view:stock.move:"
 msgid "Move"
@@ -2181,6 +2122,10 @@ msgctxt "view:stock.move:"
 msgid "Moves"
 msgstr "Boekingen"
 
+msgctxt "view:stock.move:"
+msgid "Reset to Draft"
+msgstr ""
+
 msgctxt "view:stock.period.cache:"
 msgid "Period Cache"
 msgstr ""
diff --git a/locale/es_ES.po b/locale/pt_BR.po
similarity index 73%
copy from locale/es_ES.po
copy to locale/pt_BR.po
index da28784..71a13d8 100644
--- a/locale/es_ES.po
+++ b/locale/pt_BR.po
@@ -7,153 +7,161 @@ msgid ""
 "You cannot change the default uom for a product which is associated to stock"
 " moves."
 msgstr ""
-"No puede cambiar la UdM por defecto de un producto con movimientos de stock."
+"Você não pode modificar a UDM padrão de um produto associado a movimentações"
+" no estoque"
 
 msgctxt "error:product.template:"
 msgid ""
 "You cannot change the type for a product which is associated to stock moves."
 msgstr ""
-"No se puede cambiar el tipo de un producto del cual existen movimientos de "
-"stock."
+"Você não pode modificar o tipo de um produto que está associado a "
+"movimentações do estoque."
 
 msgctxt "error:stock.inventory.line:"
 msgid "Line quantity must be positive."
-msgstr "La cantidad de la línea debe ser positiva."
+msgstr "A quantidade da linha precisa ser positiva."
 
 msgctxt "error:stock.inventory:"
 msgid "Inventory \"%s\" must be cancelled before deletion."
-msgstr "Debe cancelar el inventario \"%s\" antes de borrarlo."
+msgstr "O Inventário \"%s\" deve ser cancelado antes de ser apagado."
 
 msgctxt "error:stock.inventory:"
 msgid "Line \"%s\" is not unique on Inventory \"%s\"."
-msgstr "La línea \"%s\" no es única en el inventario \"%s\"."
+msgstr "A linha \"%s\" não é única no Inventário \"%s\"."
 
 msgctxt "error:stock.location:"
 msgid "Location \"%(location)s\" must be a child of warehouse \"%(warehouse)s\"."
-msgstr "La ubicación \"%(location)s\" debe ser hija del almacén \"%(warehouse)s\"."
+msgstr "A localização \"%(location)s\" deve ser filha do armazém \"%(warehouse)s\"."
 
 msgctxt "error:stock.location:"
 msgid ""
 "Location \"%s\" with existing moves cannot be changed to a type that does "
 "not support moves."
 msgstr ""
-"No puede cambiar la ubicación \"%s\" con movimientos a otra ubicación que no"
-" soporte movimientos."
+"A localização \"%s\" com movimentações existentes não pode ser modificada "
+"para um tipo que não suporta movimentações."
 
 msgctxt "error:stock.move:"
 msgid "Internal move quantity must be positive"
-msgstr "La cantidad del movimiento interno debe ser positiva."
+msgstr "A quantidade na movimentação interna deve ser um valor positivo"
 
 msgctxt "error:stock.move:"
 msgid "Move quantity must be positive"
-msgstr "La cantidad del movimiento tiene que ser positiva."
+msgstr "A quantidade na movimentação deve ser um valor positivo"
 
 msgctxt "error:stock.move:"
 msgid "Source and destination location must be different"
-msgstr "Las ubicaciones origen y destino deben ser distintas."
+msgstr "A origem e o destino devem ser diferentes"
 
 msgctxt "error:stock.move:"
 msgid "The stock move \"%s\" has no origin."
-msgstr "El movimiento de stock \"%s\" no tiene ningún origen."
+msgstr "A movimentação de estoque \"%s\" não tem origem."
 
 msgctxt "error:stock.move:"
 msgid ""
 "You can not delete stock move \"%s\" because it is not in draft or cancelled"
 " state."
 msgstr ""
-"No puede eliminar el movimiento de stock \"%s\" porque no está en estado "
-"borrador o cancelado."
+"Você não pode apagar a movimentação de estoque \"%s\" porque ela não está no"
+" estado \"Rascunho\" ou \"Cancelado\"."
 
 msgctxt "error:stock.move:"
 msgid "You can not modify move \"%(move)s\" because period \"%(period)s\" is closed."
 msgstr ""
-"No puede modificar el movimiento \"%(move)s\" porque el período "
-"\"%(period)s\" está cerrado."
+"Você não pode modificar a movimentação \"%(move)s\" porque o período "
+"\"%(period)s\" está fechado."
 
 msgctxt "error:stock.move:"
 msgid "You can not modify stock move \"%s\" because it is in \"Assigned\" state."
 msgstr ""
-"No puede cambiar el movimiento de stock \"%s\" porque se encuentra en estado"
-" \"Reservado\"."
+"Você não pode modificar a movimentação de estoque \"%s\" porque ela está no "
+"estado \"Reservado\"."
 
 msgctxt "error:stock.move:"
 msgid ""
 "You can not modify stock move \"%s\" because it is in \"Done\" or \"Cancel\""
 " state."
 msgstr ""
-"No puede cambiar el movimiento de stock \"%s\" porque se encuentra en estado"
-" \"Finalizado\" o \"Cancelado\"."
+"Você não pode modificar a movimentação de estoque \"%s\" porque ela está no "
+"estado \"Terminado\" ou \"Cancelado\"."
 
 msgctxt "error:stock.move:"
 msgid "You can not set stock move \"%s\" to assigned state."
-msgstr "No puede cambiar el movimiento de stock \"%s\" a estado reservado."
+msgstr ""
+"Você não pode definir o estado da movimentação de estoque \"%s\" para "
+"reservado."
 
 msgctxt "error:stock.move:"
 msgid "You can not set stock move \"%s\" to done state."
-msgstr "No puede cambiar el movimiento de stock \"%s\" a estado finalizado."
+msgstr ""
+"Você não pode definir o estado da movimentação de estoque \"%s\" para "
+"terminado."
 
 msgctxt "error:stock.move:"
 msgid "You can not set stock move \"%s\" to draft state."
-msgstr "No puede cambiar el movimiento de stock \"%s\" a estado borrador."
+msgstr ""
+"Você não pode definir o estado da movimentação de estoque \"%s\" para "
+"rascunho."
 
 msgctxt "error:stock.period:"
 msgid "You can not close a period in the future or today."
-msgstr "No puede cerrar un período actual o futuro."
+msgstr "Você não pode fechar um período no futuro ou hoje."
 
 msgctxt "error:stock.period:"
 msgid "You can not close a period when there still are assigned moves."
 msgstr ""
-"No puede cerrar un período cuando todavía dispone de movimientos reservados."
+"Você não pode fechar um período quando ainda há movimentações reservadas."
 
 msgctxt "error:stock.shipment.in.return:"
 msgid "Supplier Return Shipment \"%s\" must be cancelled before deletion."
-msgstr "Debe cancelar el albarán devolución proveedor \"%s\" antes de borrarlo."
+msgstr "A Devolução ao Fornecedor \"%s\" deve ser cancelada antes de ser apagada."
 
 msgctxt "error:stock.shipment.in:"
 msgid ""
 "Incoming Moves must have the warehouse input location as destination "
 "location."
 msgstr ""
-"Los movimientos de entrada indicar una ubicación de entrada como destino."
+"Movimentações de Entrada devem ter a localização de entrada do armazém como "
+"localização de destino."
 
 msgctxt "error:stock.shipment.in:"
 msgid ""
 "Inventory Moves must have the warehouse input location as source location."
 msgstr ""
-"Los movimientos internos deben  indicar una ubicación de entrada como "
-"origen."
+"Movimentações Internas devem possuir a localização de entrada do armazém "
+"como localização de origem."
 
 msgctxt "error:stock.shipment.in:"
 msgid "Supplier Shipment \"%s\" must be cancelled before deletion."
-msgstr "Debe cancelar el albarán de proveedor \"%s\" antes de borrarlo."
+msgstr "A Remessa do Fornecedor \"%s\" deve ser cancelada antes de ser apagada."
 
 msgctxt "error:stock.shipment.internal:"
 msgid "Internal Shipment \"%s\" must be cancelled before deletion."
-msgstr "Debe cancelar el albarán interno \"%s\" antes de borrarlo."
+msgstr "A Remessa Interna \"%s\" deve ser cancelada antes de ser apagada."
 
 msgctxt "error:stock.shipment.out.return:"
 msgid "Customer Return Shipment \"%s\" must be cancelled before deletion."
-msgstr "Debe cancelar el albarán devolución de cliente \"%s\" antes de borrarlo."
+msgstr "A Devolução do Cliente \"%s\" deve ser cancelada antes de ser apagada."
 
 msgctxt "error:stock.shipment.out:"
 msgid "Customer Shipment \"%s\" must be cancelled before deletion."
-msgstr "Debe cancelar el albarán de cliente \"%s\" antes de borrarlo."
+msgstr "A Remessa ao Cliente \"%s\" deve ser cancelada antes de ser apagada."
 
 msgctxt "field:party.address,delivery:"
 msgid "Delivery"
-msgstr "Envío"
+msgstr "Entrega"
 
 msgctxt "field:party.party,customer_location:"
 msgid "Customer Location"
-msgstr "Ubicación de cliente"
+msgstr "Localização do cliente"
 
 msgctxt "field:party.party,supplier_location:"
 msgid "Supplier Location"
-msgstr "Ubicación de proveedor"
+msgstr "Localização do fornecedor"
 
 msgctxt "field:product.by_location.start,forecast_date:"
 msgid "At Date"
-msgstr "A fecha"
+msgstr "Na data"
 
 msgctxt "field:product.by_location.start,id:"
 msgid "ID"
@@ -161,35 +169,35 @@ msgstr "ID"
 
 msgctxt "field:product.product,cost_value:"
 msgid "Cost Value"
-msgstr "Valor de coste"
+msgstr "Valor de Custo"
 
 msgctxt "field:product.product,forecast_quantity:"
 msgid "Forecast Quantity"
-msgstr "Cantidad prevista"
+msgstr "Previsão da quantidade"
 
 msgctxt "field:product.product,quantity:"
 msgid "Quantity"
-msgstr "Cantidad"
+msgstr "Quantidade"
 
 msgctxt "field:product.template,cost_value:"
 msgid "Cost Value"
-msgstr "Valor de coste"
+msgstr "Valor de Custo"
 
 msgctxt "field:product.template,forecast_quantity:"
 msgid "Forecast Quantity"
-msgstr "Cantidad prevista"
+msgstr "Quantidade Prevista"
 
 msgctxt "field:product.template,quantity:"
 msgid "Quantity"
-msgstr "Cantidad"
+msgstr "Quantidade"
 
 msgctxt "field:stock.configuration,create_date:"
 msgid "Create Date"
-msgstr "Fecha creación"
+msgstr "Data de criação"
 
 msgctxt "field:stock.configuration,create_uid:"
 msgid "Create User"
-msgstr "Usuario creación"
+msgstr "Criado por"
 
 msgctxt "field:stock.configuration,id:"
 msgid "ID"
@@ -197,35 +205,35 @@ msgstr "ID"
 
 msgctxt "field:stock.configuration,rec_name:"
 msgid "Name"
-msgstr "Nombre"
+msgstr "Nome"
 
 msgctxt "field:stock.configuration,shipment_in_return_sequence:"
 msgid "Supplier Return Shipment Sequence"
-msgstr "Secuencia de albarán devolución proveedor"
+msgstr "Sequência de Remessa de Devolução ao Fornecedor"
 
 msgctxt "field:stock.configuration,shipment_in_sequence:"
 msgid "Supplier Shipment Sequence"
-msgstr "Secuencia de albarán proveedor"
+msgstr "Sequência de Remessa do Fornecedor"
 
 msgctxt "field:stock.configuration,shipment_internal_sequence:"
 msgid "Internal Shipment Sequence"
-msgstr "Secuencia de albarán interno"
+msgstr "Sequência de Remessa Interna"
 
 msgctxt "field:stock.configuration,shipment_out_return_sequence:"
 msgid "Customer Return Shipment Sequence"
-msgstr "Secuencia de albarán devolución cliente"
+msgstr "Sequência de Devolução do Cliente"
 
 msgctxt "field:stock.configuration,shipment_out_sequence:"
 msgid "Customer Shipment Sequence"
-msgstr "Secuencia de albarán cliente"
+msgstr "Sequência de Remessa ao Cliente"
 
 msgctxt "field:stock.configuration,write_date:"
 msgid "Write Date"
-msgstr "Fecha modificación"
+msgstr "Data de edição"
 
 msgctxt "field:stock.configuration,write_uid:"
 msgid "Write User"
-msgstr "Usuario modificación"
+msgstr "Editado por"
 
 msgctxt "field:stock.inventory,company:"
 msgid "Company"
@@ -233,15 +241,15 @@ msgstr "Empresa"
 
 msgctxt "field:stock.inventory,create_date:"
 msgid "Create Date"
-msgstr "Fecha creación"
+msgstr "Data de criação"
 
 msgctxt "field:stock.inventory,create_uid:"
 msgid "Create User"
-msgstr "Usuario creación"
+msgstr "Criado por"
 
 msgctxt "field:stock.inventory,date:"
 msgid "Date"
-msgstr "Fecha"
+msgstr "Data"
 
 msgctxt "field:stock.inventory,id:"
 msgid "ID"
@@ -249,19 +257,19 @@ msgstr "ID"
 
 msgctxt "field:stock.inventory,lines:"
 msgid "Lines"
-msgstr "Líneas"
+msgstr "Linhas"
 
 msgctxt "field:stock.inventory,location:"
 msgid "Location"
-msgstr "Ubicación"
+msgstr "Localização"
 
 msgctxt "field:stock.inventory,lost_found:"
 msgid "Lost and Found"
-msgstr "Perdido/encontrado"
+msgstr "Achados e Perdidos"
 
 msgctxt "field:stock.inventory,rec_name:"
 msgid "Name"
-msgstr "Nombre"
+msgstr "Nome"
 
 msgctxt "field:stock.inventory,state:"
 msgid "State"
@@ -269,23 +277,23 @@ msgstr "Estado"
 
 msgctxt "field:stock.inventory,write_date:"
 msgid "Write Date"
-msgstr "Fecha modificación"
+msgstr "Data de edição"
 
 msgctxt "field:stock.inventory,write_uid:"
 msgid "Write User"
-msgstr "Usuario modificación"
+msgstr "Editado por"
 
 msgctxt "field:stock.inventory.line,create_date:"
 msgid "Create Date"
-msgstr "Fecha creación"
+msgstr "Data de criação"
 
 msgctxt "field:stock.inventory.line,create_uid:"
 msgid "Create User"
-msgstr "Usuario creación"
+msgstr "Criado por"
 
 msgctxt "field:stock.inventory.line,expected_quantity:"
 msgid "Expected Quantity"
-msgstr "Cantidad estimada"
+msgstr "Quantidade esperada"
 
 msgctxt "field:stock.inventory.line,id:"
 msgid "ID"
@@ -293,51 +301,51 @@ msgstr "ID"
 
 msgctxt "field:stock.inventory.line,inventory:"
 msgid "Inventory"
-msgstr "Inventario"
+msgstr "Inventário"
 
 msgctxt "field:stock.inventory.line,moves:"
 msgid "Moves"
-msgstr "Movimientos"
+msgstr "Movimentações"
 
 msgctxt "field:stock.inventory.line,product:"
 msgid "Product"
-msgstr "Producto"
+msgstr "Produto"
 
 msgctxt "field:stock.inventory.line,quantity:"
 msgid "Quantity"
-msgstr "Cantidad"
+msgstr "Quantidade"
 
 msgctxt "field:stock.inventory.line,rec_name:"
 msgid "Name"
-msgstr "Nombre"
+msgstr "Nome"
 
 msgctxt "field:stock.inventory.line,unit_digits:"
 msgid "Unit Digits"
-msgstr "Decimales de la unidad"
+msgstr "Dígitos da unidade"
 
 msgctxt "field:stock.inventory.line,uom:"
 msgid "UOM"
-msgstr "UdM"
+msgstr "UM"
 
 msgctxt "field:stock.inventory.line,write_date:"
 msgid "Write Date"
-msgstr "Fecha modificación"
+msgstr "Data de edição"
 
 msgctxt "field:stock.inventory.line,write_uid:"
 msgid "Write User"
-msgstr "Usuario modificación"
+msgstr "Editado por"
 
 msgctxt "field:stock.location,active:"
 msgid "Active"
-msgstr "Activo"
+msgstr "Ativo"
 
 msgctxt "field:stock.location,address:"
 msgid "Address"
-msgstr "Direcciones"
+msgstr "Endereço"
 
 msgctxt "field:stock.location,childs:"
 msgid "Children"
-msgstr "Hijos"
+msgstr "Filhos"
 
 msgctxt "field:stock.location,code:"
 msgid "Code"
@@ -345,19 +353,19 @@ msgstr "Código"
 
 msgctxt "field:stock.location,cost_value:"
 msgid "Cost Value"
-msgstr "Valor de coste"
+msgstr "Valor de Custo"
 
 msgctxt "field:stock.location,create_date:"
 msgid "Create Date"
-msgstr "Fecha creación"
+msgstr "Data de criação"
 
 msgctxt "field:stock.location,create_uid:"
 msgid "Create User"
-msgstr "Usuario creación"
+msgstr "Criado por"
 
 msgctxt "field:stock.location,forecast_quantity:"
 msgid "Forecast Quantity"
-msgstr "Cantidad prevista"
+msgstr "Quantidade Prevista"
 
 msgctxt "field:stock.location,id:"
 msgid "ID"
@@ -369,47 +377,51 @@ msgstr "Entrada"
 
 msgctxt "field:stock.location,left:"
 msgid "Left"
-msgstr "Izquierda"
+msgstr "Esquerda"
 
 msgctxt "field:stock.location,name:"
 msgid "Name"
-msgstr "Nombre"
+msgstr "Nome"
 
 msgctxt "field:stock.location,output_location:"
 msgid "Output"
-msgstr "Salida"
+msgstr "Saída"
 
 msgctxt "field:stock.location,parent:"
 msgid "Parent"
-msgstr "Padre"
+msgstr "Parente"
+
+msgctxt "field:stock.location,picking_location:"
+msgid "Picking"
+msgstr "Retira"
 
 msgctxt "field:stock.location,quantity:"
 msgid "Quantity"
-msgstr "Cantidad"
+msgstr "Quantidade"
 
 msgctxt "field:stock.location,rec_name:"
 msgid "Name"
-msgstr "Nombre"
+msgstr "Nome"
 
 msgctxt "field:stock.location,right:"
 msgid "Right"
-msgstr "Derecha"
+msgstr "Direita"
 
 msgctxt "field:stock.location,storage_location:"
 msgid "Storage"
-msgstr "Interna"
+msgstr "Armazenamento"
 
 msgctxt "field:stock.location,type:"
 msgid "Location type"
-msgstr "Tipo de ubicación"
+msgstr "Tipo da localização"
 
 msgctxt "field:stock.location,write_date:"
 msgid "Write Date"
-msgstr "Fecha modificación"
+msgstr "Data de edição"
 
 msgctxt "field:stock.location,write_uid:"
 msgid "Write User"
-msgstr "Usuario modificación"
+msgstr "Editado por"
 
 msgctxt "field:stock.move,company:"
 msgid "Company"
@@ -417,27 +429,27 @@ msgstr "Empresa"
 
 msgctxt "field:stock.move,cost_price:"
 msgid "Cost Price"
-msgstr "Precio de coste"
+msgstr "Preço de custo"
 
 msgctxt "field:stock.move,create_date:"
 msgid "Create Date"
-msgstr "Fecha creación"
+msgstr "Data de criação"
 
 msgctxt "field:stock.move,create_uid:"
 msgid "Create User"
-msgstr "Usuario creación"
+msgstr "Criado por"
 
 msgctxt "field:stock.move,currency:"
 msgid "Currency"
-msgstr "Moneda"
+msgstr "Moeda"
 
 msgctxt "field:stock.move,effective_date:"
 msgid "Effective Date"
-msgstr "Fecha efectiva"
+msgstr "Data efetiva"
 
 msgctxt "field:stock.move,from_location:"
 msgid "From Location"
-msgstr "Desde ubicación"
+msgstr "Origem"
 
 msgctxt "field:stock.move,id:"
 msgid "ID"
@@ -445,35 +457,35 @@ msgstr "ID"
 
 msgctxt "field:stock.move,internal_quantity:"
 msgid "Internal Quantity"
-msgstr "Cantidad interna"
+msgstr "Quantidade interna"
 
 msgctxt "field:stock.move,origin:"
 msgid "Origin"
-msgstr "Origen"
+msgstr "Origem"
 
 msgctxt "field:stock.move,planned_date:"
 msgid "Planned Date"
-msgstr "Fecha estimada"
+msgstr "Data planejada"
 
 msgctxt "field:stock.move,product:"
 msgid "Product"
-msgstr "Producto"
+msgstr "Produto"
 
 msgctxt "field:stock.move,product_uom_category:"
 msgid "Product Uom Category"
-msgstr "Categoría UdM del producto"
+msgstr "Categoria da UDM do Produto"
 
 msgctxt "field:stock.move,quantity:"
 msgid "Quantity"
-msgstr "Cantidad"
+msgstr "Quantidade"
 
 msgctxt "field:stock.move,rec_name:"
 msgid "Name"
-msgstr "Nombre"
+msgstr "Nome"
 
 msgctxt "field:stock.move,shipment:"
 msgid "Shipment"
-msgstr "Envío"
+msgstr "Remessa"
 
 msgctxt "field:stock.move,state:"
 msgid "State"
@@ -481,35 +493,35 @@ msgstr "Estado"
 
 msgctxt "field:stock.move,to_location:"
 msgid "To Location"
-msgstr "A ubicación"
+msgstr "Destino"
 
 msgctxt "field:stock.move,unit_digits:"
 msgid "Unit Digits"
-msgstr "Decimales de la unidad"
+msgstr "Dígitos da unidade"
 
 msgctxt "field:stock.move,unit_price:"
 msgid "Unit Price"
-msgstr "Precio unidad"
+msgstr "Preço unitário"
 
 msgctxt "field:stock.move,unit_price_required:"
 msgid "Unit Price Required"
-msgstr "Precio unidad requerido"
+msgstr "Preço Unitário Obrigatório"
 
 msgctxt "field:stock.move,uom:"
 msgid "Uom"
-msgstr "UdM"
+msgstr "UDM"
 
 msgctxt "field:stock.move,write_date:"
 msgid "Write Date"
-msgstr "Fecha modificación"
+msgstr "Data de edição"
 
 msgctxt "field:stock.move,write_uid:"
 msgid "Write User"
-msgstr "Usuario modificación"
+msgstr "Editado por"
 
 msgctxt "field:stock.period,caches:"
 msgid "Caches"
-msgstr "Precalculado"
+msgstr "Provisões"
 
 msgctxt "field:stock.period,company:"
 msgid "Company"
@@ -517,15 +529,15 @@ msgstr "Empresa"
 
 msgctxt "field:stock.period,create_date:"
 msgid "Create Date"
-msgstr "Fecha creación"
+msgstr "Data de criação"
 
 msgctxt "field:stock.period,create_uid:"
 msgid "Create User"
-msgstr "Usuario creación"
+msgstr "Criado por"
 
 msgctxt "field:stock.period,date:"
 msgid "Date"
-msgstr "Fecha"
+msgstr "Data"
 
 msgctxt "field:stock.period,id:"
 msgid "ID"
@@ -533,7 +545,7 @@ msgstr "ID"
 
 msgctxt "field:stock.period,rec_name:"
 msgid "Name"
-msgstr "Nombre"
+msgstr "Nome"
 
 msgctxt "field:stock.period,state:"
 msgid "State"
@@ -541,19 +553,19 @@ msgstr "Estado"
 
 msgctxt "field:stock.period,write_date:"
 msgid "Write Date"
-msgstr "Fecha modificación"
+msgstr "Data de edição"
 
 msgctxt "field:stock.period,write_uid:"
 msgid "Write User"
-msgstr "Usuario modificación"
+msgstr "Editado por"
 
 msgctxt "field:stock.period.cache,create_date:"
 msgid "Create Date"
-msgstr "Fecha creación"
+msgstr "Data de criação"
 
 msgctxt "field:stock.period.cache,create_uid:"
 msgid "Create User"
-msgstr "Usuario creación"
+msgstr "Criado por"
 
 msgctxt "field:stock.period.cache,id:"
 msgid "ID"
@@ -561,11 +573,11 @@ msgstr "ID"
 
 msgctxt "field:stock.period.cache,internal_quantity:"
 msgid "Internal Quantity"
-msgstr "Cantidad interna"
+msgstr "Quantidade interna"
 
 msgctxt "field:stock.period.cache,location:"
 msgid "Location"
-msgstr "Ubicación"
+msgstr "Localização"
 
 msgctxt "field:stock.period.cache,period:"
 msgid "Period"
@@ -573,31 +585,31 @@ msgstr "Período"
 
 msgctxt "field:stock.period.cache,product:"
 msgid "Product"
-msgstr "Producto"
+msgstr "Produto"
 
 msgctxt "field:stock.period.cache,rec_name:"
 msgid "Name"
-msgstr "Nombre"
+msgstr "Nome"
 
 msgctxt "field:stock.period.cache,write_date:"
 msgid "Write Date"
-msgstr "Fecha modificación"
+msgstr "Data de edição"
 
 msgctxt "field:stock.period.cache,write_uid:"
 msgid "Write User"
-msgstr "Usuario modificación"
+msgstr "Editado por"
 
 msgctxt "field:stock.product_quantities_warehouse,create_date:"
 msgid "Create Date"
-msgstr "Fecha creación"
+msgstr "Data de criação"
 
 msgctxt "field:stock.product_quantities_warehouse,create_uid:"
 msgid "Create User"
-msgstr "Usuario creación"
+msgstr "Criado por"
 
 msgctxt "field:stock.product_quantities_warehouse,date:"
 msgid "Date"
-msgstr "Fecha"
+msgstr "Data"
 
 msgctxt "field:stock.product_quantities_warehouse,id:"
 msgid "ID"
@@ -605,19 +617,19 @@ msgstr "ID"
 
 msgctxt "field:stock.product_quantities_warehouse,quantity:"
 msgid "Quantity"
-msgstr "Cantidad"
+msgstr "Quantidade"
 
 msgctxt "field:stock.product_quantities_warehouse,rec_name:"
 msgid "Name"
-msgstr "Nombre"
+msgstr "Nome"
 
 msgctxt "field:stock.product_quantities_warehouse,write_date:"
 msgid "Write Date"
-msgstr "Fecha modificación"
+msgstr "Data de edição"
 
 msgctxt "field:stock.product_quantities_warehouse,write_uid:"
 msgid "Write User"
-msgstr "Usuario modificación"
+msgstr "Editado por"
 
 msgctxt "field:stock.product_quantities_warehouse.start,id:"
 msgid "ID"
@@ -625,11 +637,11 @@ msgstr "ID"
 
 msgctxt "field:stock.product_quantities_warehouse.start,warehouse:"
 msgid "Warehouse"
-msgstr "Almacén"
+msgstr "Armazém"
 
 msgctxt "field:stock.products_by_locations.start,forecast_date:"
 msgid "At Date"
-msgstr "A fecha"
+msgstr "Na data"
 
 msgctxt "field:stock.products_by_locations.start,id:"
 msgid "ID"
@@ -645,19 +657,19 @@ msgstr "Empresa"
 
 msgctxt "field:stock.shipment.in,contact_address:"
 msgid "Contact Address"
-msgstr "Dirección contacto"
+msgstr "Endereço de contato"
 
 msgctxt "field:stock.shipment.in,create_date:"
 msgid "Create Date"
-msgstr "Fecha creación"
+msgstr "Data de criação"
 
 msgctxt "field:stock.shipment.in,create_uid:"
 msgid "Create User"
-msgstr "Usuario creación"
+msgstr "Criado por"
 
 msgctxt "field:stock.shipment.in,effective_date:"
 msgid "Effective Date"
-msgstr "Fecha efectiva"
+msgstr "Data efetiva"
 
 msgctxt "field:stock.shipment.in,id:"
 msgid "ID"
@@ -665,31 +677,31 @@ msgstr "ID"
 
 msgctxt "field:stock.shipment.in,incoming_moves:"
 msgid "Incoming Moves"
-msgstr "Movimientos de entrada"
+msgstr "Movimentações de Entrada"
 
 msgctxt "field:stock.shipment.in,inventory_moves:"
 msgid "Inventory Moves"
-msgstr "Movimientos internos"
+msgstr "Movimentações Internas"
 
 msgctxt "field:stock.shipment.in,moves:"
 msgid "Moves"
-msgstr "Movimientos"
+msgstr "Movimentações"
 
 msgctxt "field:stock.shipment.in,origins:"
 msgid "Origins"
-msgstr "Orígenes"
+msgstr "Origens"
 
 msgctxt "field:stock.shipment.in,planned_date:"
 msgid "Planned Date"
-msgstr "Fecha estimada"
+msgstr "Data planejada"
 
 msgctxt "field:stock.shipment.in,rec_name:"
 msgid "Name"
-msgstr "Nombre"
+msgstr "Nome"
 
 msgctxt "field:stock.shipment.in,reference:"
 msgid "Reference"
-msgstr "Referencia"
+msgstr "Referência"
 
 msgctxt "field:stock.shipment.in,state:"
 msgid "State"
@@ -697,31 +709,31 @@ msgstr "Estado"
 
 msgctxt "field:stock.shipment.in,supplier:"
 msgid "Supplier"
-msgstr "Proveedor"
+msgstr "Fornecedor"
 
 msgctxt "field:stock.shipment.in,supplier_location:"
 msgid "Supplier Location"
-msgstr "Ubicación de proveedor"
+msgstr "Localização do fornecedor"
 
 msgctxt "field:stock.shipment.in,warehouse:"
 msgid "Warehouse"
-msgstr "Almacén"
+msgstr "Armazém"
 
 msgctxt "field:stock.shipment.in,warehouse_input:"
 msgid "Warehouse Input"
-msgstr "Almacén-ubicación de entrada"
+msgstr "Entrada do Armazém"
 
 msgctxt "field:stock.shipment.in,warehouse_storage:"
 msgid "Warehouse Storage"
-msgstr "Ubicación de almacenamiento"
+msgstr "Armazenamento do Armazém"
 
 msgctxt "field:stock.shipment.in,write_date:"
 msgid "Write Date"
-msgstr "Fecha modificación"
+msgstr "Data de edição"
 
 msgctxt "field:stock.shipment.in,write_uid:"
 msgid "Write User"
-msgstr "Usuario modificación"
+msgstr "Editado por"
 
 msgctxt "field:stock.shipment.in.return,code:"
 msgid "Code"
@@ -733,19 +745,19 @@ msgstr "Empresa"
 
 msgctxt "field:stock.shipment.in.return,create_date:"
 msgid "Create Date"
-msgstr "Fecha creación"
+msgstr "Data de criação"
 
 msgctxt "field:stock.shipment.in.return,create_uid:"
 msgid "Create User"
-msgstr "Usuario creación"
+msgstr "Criado por"
 
 msgctxt "field:stock.shipment.in.return,effective_date:"
 msgid "Effective Date"
-msgstr "Fecha efectiva"
+msgstr "Data efetiva"
 
 msgctxt "field:stock.shipment.in.return,from_location:"
 msgid "From Location"
-msgstr "Desde ubicación"
+msgstr "Origem"
 
 msgctxt "field:stock.shipment.in.return,id:"
 msgid "ID"
@@ -753,23 +765,23 @@ msgstr "ID"
 
 msgctxt "field:stock.shipment.in.return,moves:"
 msgid "Moves"
-msgstr "Movimientos"
+msgstr "Movimentações"
 
 msgctxt "field:stock.shipment.in.return,origins:"
 msgid "Origins"
-msgstr "Orígenes"
+msgstr "Origens"
 
 msgctxt "field:stock.shipment.in.return,planned_date:"
 msgid "Planned Date"
-msgstr "Fecha estimada"
+msgstr "Data planejada"
 
 msgctxt "field:stock.shipment.in.return,rec_name:"
 msgid "Name"
-msgstr "Nombre"
+msgstr "Nome"
 
 msgctxt "field:stock.shipment.in.return,reference:"
 msgid "Reference"
-msgstr "Referencia"
+msgstr "Referência"
 
 msgctxt "field:stock.shipment.in.return,state:"
 msgid "State"
@@ -777,15 +789,15 @@ msgstr "Estado"
 
 msgctxt "field:stock.shipment.in.return,to_location:"
 msgid "To Location"
-msgstr "A ubicación"
+msgstr "Destino"
 
 msgctxt "field:stock.shipment.in.return,write_date:"
 msgid "Write Date"
-msgstr "Fecha modificación"
+msgstr "Data de edição"
 
 msgctxt "field:stock.shipment.in.return,write_uid:"
 msgid "Write User"
-msgstr "Usuario modificación"
+msgstr "Editado por"
 
 msgctxt "field:stock.shipment.in.return.assign.failed,id:"
 msgid "ID"
@@ -793,7 +805,7 @@ msgstr "ID"
 
 msgctxt "field:stock.shipment.in.return.assign.failed,moves:"
 msgid "Moves"
-msgstr "Movimientos"
+msgstr "Movimentações"
 
 msgctxt "field:stock.shipment.internal,code:"
 msgid "Code"
@@ -805,19 +817,19 @@ msgstr "Empresa"
 
 msgctxt "field:stock.shipment.internal,create_date:"
 msgid "Create Date"
-msgstr "Fecha creación"
+msgstr "Data de criação"
 
 msgctxt "field:stock.shipment.internal,create_uid:"
 msgid "Create User"
-msgstr "Usuario creación"
+msgstr "Criado por"
 
 msgctxt "field:stock.shipment.internal,effective_date:"
 msgid "Effective Date"
-msgstr "Fecha efectiva"
+msgstr "Data efetiva"
 
 msgctxt "field:stock.shipment.internal,from_location:"
 msgid "From Location"
-msgstr "Desde ubicación"
+msgstr "Origem"
 
 msgctxt "field:stock.shipment.internal,id:"
 msgid "ID"
@@ -825,19 +837,19 @@ msgstr "ID"
 
 msgctxt "field:stock.shipment.internal,moves:"
 msgid "Moves"
-msgstr "Movimientos"
+msgstr "Movimentações"
 
 msgctxt "field:stock.shipment.internal,planned_date:"
 msgid "Planned Date"
-msgstr "Fecha estimada"
+msgstr "Data planejada"
 
 msgctxt "field:stock.shipment.internal,rec_name:"
 msgid "Name"
-msgstr "Nombre"
+msgstr "Nome"
 
 msgctxt "field:stock.shipment.internal,reference:"
 msgid "Reference"
-msgstr "Referencia"
+msgstr "Referência"
 
 msgctxt "field:stock.shipment.internal,state:"
 msgid "State"
@@ -845,15 +857,15 @@ msgstr "Estado"
 
 msgctxt "field:stock.shipment.internal,to_location:"
 msgid "To Location"
-msgstr "A ubicación"
+msgstr "Destino"
 
 msgctxt "field:stock.shipment.internal,write_date:"
 msgid "Write Date"
-msgstr "Fecha modificación"
+msgstr "Data de edição"
 
 msgctxt "field:stock.shipment.internal,write_uid:"
 msgid "Write User"
-msgstr "Usuario modificación"
+msgstr "Editado por"
 
 msgctxt "field:stock.shipment.internal.assign.failed,id:"
 msgid "ID"
@@ -861,7 +873,7 @@ msgstr "ID"
 
 msgctxt "field:stock.shipment.internal.assign.failed,moves:"
 msgid "Moves"
-msgstr "Movimientos"
+msgstr "Movimentações"
 
 msgctxt "field:stock.shipment.out,code:"
 msgid "Code"
@@ -873,11 +885,11 @@ msgstr "Empresa"
 
 msgctxt "field:stock.shipment.out,create_date:"
 msgid "Create Date"
-msgstr "Fecha creación"
+msgstr "Data de criação"
 
 msgctxt "field:stock.shipment.out,create_uid:"
 msgid "Create User"
-msgstr "Usuario creación"
+msgstr "Criado por"
 
 msgctxt "field:stock.shipment.out,customer:"
 msgid "Customer"
@@ -885,15 +897,15 @@ msgstr "Cliente"
 
 msgctxt "field:stock.shipment.out,customer_location:"
 msgid "Customer Location"
-msgstr "Ubicación de cliente"
+msgstr "Localização do Cliente"
 
 msgctxt "field:stock.shipment.out,delivery_address:"
 msgid "Delivery Address"
-msgstr "Dirección envío"
+msgstr "Endereço para entrega"
 
 msgctxt "field:stock.shipment.out,effective_date:"
 msgid "Effective Date"
-msgstr "Fecha efectiva"
+msgstr "Data efetiva"
 
 msgctxt "field:stock.shipment.out,id:"
 msgid "ID"
@@ -901,31 +913,31 @@ msgstr "ID"
 
 msgctxt "field:stock.shipment.out,inventory_moves:"
 msgid "Inventory Moves"
-msgstr "Movimientos de inventario"
+msgstr "Movimentações Internas"
 
 msgctxt "field:stock.shipment.out,moves:"
 msgid "Moves"
-msgstr "Movimientos"
+msgstr "Movimentações"
 
 msgctxt "field:stock.shipment.out,origins:"
 msgid "Origins"
-msgstr "Origen"
+msgstr "Origens"
 
 msgctxt "field:stock.shipment.out,outgoing_moves:"
 msgid "Outgoing Moves"
-msgstr "Movimientos de salida"
+msgstr "Movimentações de Saída"
 
 msgctxt "field:stock.shipment.out,planned_date:"
 msgid "Planned Date"
-msgstr "Fecha estimada"
+msgstr "Data planejada"
 
 msgctxt "field:stock.shipment.out,rec_name:"
 msgid "Name"
-msgstr "Nombre"
+msgstr "Nome"
 
 msgctxt "field:stock.shipment.out,reference:"
 msgid "Reference"
-msgstr "Referencia"
+msgstr "Referência"
 
 msgctxt "field:stock.shipment.out,state:"
 msgid "State"
@@ -933,23 +945,23 @@ msgstr "Estado"
 
 msgctxt "field:stock.shipment.out,warehouse:"
 msgid "Warehouse"
-msgstr "Almacén"
+msgstr "Armazém"
 
 msgctxt "field:stock.shipment.out,warehouse_output:"
 msgid "Warehouse Output"
-msgstr "Ubicación de salida"
+msgstr "Saída do Armazém"
 
 msgctxt "field:stock.shipment.out,warehouse_storage:"
 msgid "Warehouse Storage"
-msgstr "Ubicación de almacenamiento"
+msgstr "Armazenamento do Armazém"
 
 msgctxt "field:stock.shipment.out,write_date:"
 msgid "Write Date"
-msgstr "Fecha modificación"
+msgstr "Data de edição"
 
 msgctxt "field:stock.shipment.out,write_uid:"
 msgid "Write User"
-msgstr "Usuario modificación"
+msgstr "Editado por"
 
 msgctxt "field:stock.shipment.out.assign.failed,id:"
 msgid "ID"
@@ -957,7 +969,7 @@ msgstr "ID"
 
 msgctxt "field:stock.shipment.out.assign.failed,inventory_moves:"
 msgid "Inventory Moves"
-msgstr "Movimientos internos"
+msgstr "Movimentações Internas"
 
 msgctxt "field:stock.shipment.out.return,code:"
 msgid "Code"
@@ -969,11 +981,11 @@ msgstr "Empresa"
 
 msgctxt "field:stock.shipment.out.return,create_date:"
 msgid "Create Date"
-msgstr "Fecha creación"
+msgstr "Data de criação"
 
 msgctxt "field:stock.shipment.out.return,create_uid:"
 msgid "Create User"
-msgstr "Usuario creación"
+msgstr "Criado por"
 
 msgctxt "field:stock.shipment.out.return,customer:"
 msgid "Customer"
@@ -981,15 +993,15 @@ msgstr "Cliente"
 
 msgctxt "field:stock.shipment.out.return,customer_location:"
 msgid "Customer Location"
-msgstr "Ubicación de cliente"
+msgstr "Localização do Cliente"
 
 msgctxt "field:stock.shipment.out.return,delivery_address:"
 msgid "Delivery Address"
-msgstr "Dirección envío"
+msgstr "Endereço para entrega"
 
 msgctxt "field:stock.shipment.out.return,effective_date:"
 msgid "Effective Date"
-msgstr "Fecha efectiva"
+msgstr "Data efetiva"
 
 msgctxt "field:stock.shipment.out.return,id:"
 msgid "ID"
@@ -997,31 +1009,31 @@ msgstr "ID"
 
 msgctxt "field:stock.shipment.out.return,incoming_moves:"
 msgid "Incoming Moves"
-msgstr "Movimientos de entrada"
+msgstr "Movimentações de Entrada"
 
 msgctxt "field:stock.shipment.out.return,inventory_moves:"
 msgid "Inventory Moves"
-msgstr "Movimientos internos"
+msgstr "Movimentações Internas"
 
 msgctxt "field:stock.shipment.out.return,moves:"
 msgid "Moves"
-msgstr "Movimientos"
+msgstr "Movimentações"
 
 msgctxt "field:stock.shipment.out.return,origins:"
 msgid "Origins"
-msgstr "Orígenes"
+msgstr "Origens"
 
 msgctxt "field:stock.shipment.out.return,planned_date:"
 msgid "Planned Date"
-msgstr "Fecha estimada"
+msgstr "Data planejada"
 
 msgctxt "field:stock.shipment.out.return,rec_name:"
 msgid "Name"
-msgstr "Nombre"
+msgstr "Nome"
 
 msgctxt "field:stock.shipment.out.return,reference:"
 msgid "Reference"
-msgstr "Referencia"
+msgstr "Referência"
 
 msgctxt "field:stock.shipment.out.return,state:"
 msgid "State"
@@ -1029,33 +1041,31 @@ msgstr "Estado"
 
 msgctxt "field:stock.shipment.out.return,warehouse:"
 msgid "Warehouse"
-msgstr "Almacén"
+msgstr "Armazém"
 
 msgctxt "field:stock.shipment.out.return,warehouse_input:"
 msgid "Warehouse Input"
-msgstr "Ubicación de entrada"
+msgstr "Entrada do Armazém"
 
 msgctxt "field:stock.shipment.out.return,warehouse_storage:"
 msgid "Warehouse Storage"
-msgstr "Ubicación de almacenamiento"
+msgstr "Armazenamento do Armazém"
 
 msgctxt "field:stock.shipment.out.return,write_date:"
 msgid "Write Date"
-msgstr "Fecha modificación"
+msgstr "Data de edição"
 
 msgctxt "field:stock.shipment.out.return,write_uid:"
 msgid "Write User"
-msgstr "Usuario modificación"
+msgstr "Editado por"
 
 msgctxt "help:party.party,customer_location:"
 msgid "The default destination location when sending products to the party."
-msgstr ""
-"La ubicación de destino por defecto cuando se envían productos al tercero."
+msgstr "Destino padrão ao enviar ao cliente."
 
 msgctxt "help:party.party,supplier_location:"
 msgid "The default source location when receiving products from the party."
-msgstr ""
-"La ubicación de origen por defecto cuando se reciben productos del tercero."
+msgstr "Origem padrão ao receber do fornecedor."
 
 msgctxt "help:product.by_location.start,forecast_date:"
 msgid ""
@@ -1063,9 +1073,13 @@ msgid ""
 "* 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 de stock para esta fecha.\n"
-"* Un valor vacío es un fecha infinita en el futuro.\n"
-"* Una fecha en el pasado proporcionará valores históricos."
+"Permitir cálculo de quantidades estocadas esperadas para esta data.\n"
+"* Vazio significa data indeterminada no futuro.\n"
+"* Data no passado produzirá valores históricos."
+
+msgctxt "help:stock.location,picking_location:"
+msgid "If empty the Storage is used"
+msgstr "Se vazio, o armazém é usado"
 
 msgctxt "help:stock.products_by_locations.start,forecast_date:"
 msgid ""
@@ -1073,121 +1087,121 @@ msgid ""
 "* 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 de stock para esta fecha.\n"
-"* Un valor vacío es un fecha infinita en el futuro.\n"
-"* Una fecha en el pasado proporcionará valores históricos."
-
-msgctxt "model:ir.action,name:"
-msgid "Create Return Shipment"
-msgstr "Crear albarán de devolución"
+"Permitir cálculo de quantidades estocadas esperadas para esta data.\n"
+"* Vazio significa data indeterminada no futuro.\n"
+"* Data no passado produzirá valores históricos."
 
 msgctxt "model:ir.action,name:act_inventory_form"
 msgid "Inventories"
-msgstr "Inventarios"
+msgstr "Inventários"
 
 msgctxt "model:ir.action,name:act_location_form"
 msgid "Locations"
-msgstr "Configuración de ubicaciones"
+msgstr "Localizações"
 
 msgctxt "model:ir.action,name:act_location_quantity_tree"
 msgid "Locations"
-msgstr "Configuración de ubicaciones"
+msgstr "Localizações"
 
 msgctxt "model:ir.action,name:act_location_tree"
 msgid "Locations"
-msgstr "Configuración de ubicaciones"
+msgstr "Localizações"
 
 msgctxt "model:ir.action,name:act_move_form"
 msgid "Moves"
-msgstr "Movimientos"
+msgstr "Movimentações"
 
 msgctxt "model:ir.action,name:act_period_list"
 msgid "Periods"
-msgstr "Configuración de períodos"
+msgstr "Períodos"
 
 msgctxt "model:ir.action,name:act_product_quantities_warehouse"
 msgid "Product Quantities By Warehouse"
-msgstr "Unidades de producto por almacén"
+msgstr "Quantidade de Produto por Armazém"
 
 msgctxt "model:ir.action,name:act_products_by_locations"
 msgid "Products"
-msgstr "Productos"
+msgstr "Produtos"
 
 msgctxt "model:ir.action,name:act_shipment_in_form"
 msgid "Supplier Shipments"
-msgstr "Albaranes proveedor"
+msgstr "Remessas do Fornecedor"
 
 msgctxt "model:ir.action,name:act_shipment_in_return_form"
 msgid "Supplier Return Shipments"
-msgstr "Albaranes devolución proveedor"
+msgstr "Devoluções ao Fornecedor"
 
 msgctxt "model:ir.action,name:act_shipment_internal_form"
 msgid "Internal Shipments"
-msgstr "Albaranes internos"
+msgstr "Remessas Internas"
 
 msgctxt "model:ir.action,name:act_shipment_out_form"
 msgid "Customer Shipments"
-msgstr "Albaranes cliente"
+msgstr "Remessas  ao Cliente"
 
 msgctxt "model:ir.action,name:act_shipment_out_form2"
 msgid "Customer Shipments"
-msgstr "Albaranes cliente"
+msgstr "Remessas ao Cliente"
 
 msgctxt "model:ir.action,name:act_shipment_out_form3"
 msgid "Supplier Shipments"
-msgstr "Albaranes proveedor"
+msgstr "Remessas do Fornecedor"
 
 msgctxt "model:ir.action,name:act_shipment_out_return_form"
 msgid "Customer Return Shipments"
-msgstr "Albaranes devolución cliente "
+msgstr "Devoluções do Cliente"
 
 msgctxt "model:ir.action,name:act_stock_configuration_form"
 msgid "Stock Configuration"
-msgstr "Configuración stock"
+msgstr "Configuração do estoque"
 
 msgctxt "model:ir.action,name:report_shipment_in_restocking_list"
 msgid "Restocking List"
-msgstr "Lista de reabastecimiento"
+msgstr "Relação para re-estocagem"
 
 msgctxt "model:ir.action,name:report_shipment_internal"
 msgid "Internal Shipment"
-msgstr "Albaranes internos"
+msgstr "Remessa Interna"
 
 msgctxt "model:ir.action,name:report_shipment_out_delivery_note"
 msgid "Delivery Note"
-msgstr "Nota de envío"
+msgstr "Notificação de entrega"
 
 msgctxt "model:ir.action,name:report_shipment_out_picking_list"
 msgid "Picking List"
-msgstr "Lista recogida"
+msgstr "Relação para separação"
 
 msgctxt "model:ir.action,name:report_shipment_out_return_restocking_list"
 msgid "Restocking List"
-msgstr "Lista de reabastecimiento"
+msgstr "Relação para re-estocagem"
 
 msgctxt "model:ir.action,name:wizard_product_by_location"
 msgid "Product by Locations"
-msgstr "Producto por ubicación"
+msgstr "Produtos por Localizações"
 
 msgctxt "model:ir.action,name:wizard_product_quantities_warehouse"
 msgid "Product Quantities By Warehouse"
-msgstr "Unidades de producto por almacén"
+msgstr "Quantidade de Produto por Armazém"
 
 msgctxt "model:ir.action,name:wizard_products_by_locations"
 msgid "Products by Locations"
-msgstr "Productos por ubicación"
+msgstr "Produtos por localização"
+
+msgctxt "model:ir.action,name:wizard_recompute_cost_price"
+msgid "Recompute Cost Price"
+msgstr "Recalcular o preço de custo"
 
 msgctxt "model:ir.action,name:wizard_shipment_in_return_assign"
 msgid "Assign Purchase Return Shipment"
-msgstr "Reservar albarán de devolución de compra"
+msgstr "Reservar Remessa de Devolução de Compra"
 
 msgctxt "model:ir.action,name:wizard_shipment_internal_assign"
 msgid "Assign Shipment Internal"
-msgstr "Reservar albarán interno"
+msgstr "Reservar Remessa Interna"
 
 msgctxt "model:ir.action,name:wizard_shipment_out_assign"
 msgid "Assign Shipment Out"
-msgstr "Reservar albarán de salida"
+msgstr "Reservar Remessa de Saída"
 
 msgctxt "model:ir.action.act_window.domain,name:act_inventory_form_domain_all"
 msgid "All"
@@ -1196,7 +1210,7 @@ msgstr "Todos"
 msgctxt ""
 "model:ir.action.act_window.domain,name:act_inventory_form_domain_draft"
 msgid "Draft"
-msgstr "Borrador"
+msgstr "Rascunho"
 
 msgctxt "model:ir.action.act_window.domain,name:act_move_form_domain_all"
 msgid "All"
@@ -1205,32 +1219,32 @@ msgstr "Todos"
 msgctxt ""
 "model:ir.action.act_window.domain,name:act_move_form_domain_from_supplier"
 msgid "From Suppliers"
-msgstr "Desde proveedor"
+msgstr "Dos Fornecedores"
 
 msgctxt ""
 "model:ir.action.act_window.domain,name:act_move_form_domain_from_supplier_waiting"
 msgid "From Suppliers Waiting"
-msgstr "En espera desde proveedor"
+msgstr "Aguardando Fornecedores"
 
 msgctxt ""
 "model:ir.action.act_window.domain,name:act_move_form_domain_to_customer"
 msgid "To Customers"
-msgstr "Hacia clientes"
+msgstr "Para os Clientes"
 
 msgctxt ""
 "model:ir.action.act_window.domain,name:act_shipment_in_form_domain_all"
 msgid "All"
-msgstr "Todo"
+msgstr "Todos"
 
 msgctxt ""
 "model:ir.action.act_window.domain,name:act_shipment_in_form_domain_draft"
 msgid "Draft"
-msgstr "Borrador"
+msgstr "Rascunho"
 
 msgctxt ""
 "model:ir.action.act_window.domain,name:act_shipment_in_form_domain_received"
 msgid "Received"
-msgstr "Recibido"
+msgstr "Recebido"
 
 msgctxt ""
 "model:ir.action.act_window.domain,name:act_shipment_in_return_form_domain_all"
@@ -1245,17 +1259,17 @@ msgstr "Reservado"
 msgctxt ""
 "model:ir.action.act_window.domain,name:act_shipment_in_return_form_domain_draft"
 msgid "Draft"
-msgstr "Borrador"
+msgstr "Rascunho"
 
 msgctxt ""
 "model:ir.action.act_window.domain,name:act_shipment_in_return_form_domain_waiting"
 msgid "Waiting"
-msgstr "En espera"
+msgstr "Em Espera"
 
 msgctxt ""
 "model:ir.action.act_window.domain,name:act_shipment_internal_form_domain_all"
 msgid "All"
-msgstr "Todo"
+msgstr "Todos"
 
 msgctxt ""
 "model:ir.action.act_window.domain,name:act_shipment_internal_form_domain_assigned"
@@ -1265,12 +1279,12 @@ msgstr "Reservado"
 msgctxt ""
 "model:ir.action.act_window.domain,name:act_shipment_internal_form_domain_draft"
 msgid "Draft"
-msgstr "Borrador"
+msgstr "Rascunho"
 
 msgctxt ""
 "model:ir.action.act_window.domain,name:act_shipment_internal_form_domain_waiting"
 msgid "Waiting"
-msgstr "En espera"
+msgstr "Em Espera"
 
 msgctxt ""
 "model:ir.action.act_window.domain,name:act_shipment_out_form_domain_all"
@@ -1285,17 +1299,17 @@ msgstr "Reservado"
 msgctxt ""
 "model:ir.action.act_window.domain,name:act_shipment_out_form_domain_draft"
 msgid "Draft"
-msgstr "Borrador"
+msgstr "Rascunho"
 
 msgctxt ""
 "model:ir.action.act_window.domain,name:act_shipment_out_form_domain_packed"
 msgid "Packed"
-msgstr "Empaquetado"
+msgstr "Embalado"
 
 msgctxt ""
 "model:ir.action.act_window.domain,name:act_shipment_out_form_domain_waiting"
 msgid "Waiting"
-msgstr "En espera"
+msgstr "Em Espera"
 
 msgctxt ""
 "model:ir.action.act_window.domain,name:act_shipment_out_return_form_domain_all"
@@ -1305,72 +1319,72 @@ msgstr "Todos"
 msgctxt ""
 "model:ir.action.act_window.domain,name:act_shipment_out_return_form_domain_draft"
 msgid "Draft"
-msgstr "Borrador"
+msgstr "Rascunho"
 
 msgctxt ""
 "model:ir.action.act_window.domain,name:act_shipment_out_return_form_domain_received"
 msgid "Received"
-msgstr "Recibido"
+msgstr "Recebido"
 
 msgctxt "model:ir.sequence,name:sequence_shipment_in"
 msgid "Supplier Shipment"
-msgstr "Albarán proveedor"
+msgstr "Remessa do Fornecedor"
 
 msgctxt "model:ir.sequence,name:sequence_shipment_in_return"
 msgid "Supplier Return Shipment"
-msgstr "Albarán devolución proveedor"
+msgstr "Devolução ao Fornecedor"
 
 msgctxt "model:ir.sequence,name:sequence_shipment_internal"
 msgid "Internal Shipment"
-msgstr "Albarán interno"
+msgstr "Remessa Interna"
 
 msgctxt "model:ir.sequence,name:sequence_shipment_out"
 msgid "Customer Shipment"
-msgstr "Albarán cliente"
+msgstr "Remessa ao Cliente"
 
 msgctxt "model:ir.sequence,name:sequence_shipment_out_return"
 msgid "Customer Return Shipment"
-msgstr "Albarán devolución cliente"
+msgstr "Devolução do Cliente"
 
 msgctxt "model:ir.sequence.type,name:sequence_type_shipment_in"
 msgid "Supplier Shipment"
-msgstr "Albarán proveedor"
+msgstr "Remessa do Fornecedor"
 
 msgctxt "model:ir.sequence.type,name:sequence_type_shipment_in_return"
 msgid "Supplier Return Shipment"
-msgstr "Albarán devolución proveedor"
+msgstr "Devolução ao Fornecedor"
 
 msgctxt "model:ir.sequence.type,name:sequence_type_shipment_internal"
 msgid "Internal Shipment"
-msgstr "Albarán interno"
+msgstr "Remessa Interna"
 
 msgctxt "model:ir.sequence.type,name:sequence_type_shipment_out"
 msgid "Customer Shipment"
-msgstr "Albarán cliente"
+msgstr "Remessa ao Cliente"
 
 msgctxt "model:ir.sequence.type,name:sequence_type_shipment_out_return"
 msgid "Customer Return Shipment"
-msgstr "Albarán devolución cliente"
+msgstr "Devolução do Cliente"
 
 msgctxt "model:ir.ui.menu,name:menu_configuration"
 msgid "Configuration"
-msgstr "Configuración"
+msgstr "Configuração"
 
 msgctxt "model:ir.ui.menu,name:menu_inventory_form"
 msgid "Inventories"
-msgstr "Inventarios"
+msgstr "Inventários"
 
 msgctxt "model:ir.ui.menu,name:menu_location_form"
 msgid "Locations"
-msgstr "Ubicaciones"
+msgstr "Localizações"
 
 msgctxt "model:ir.ui.menu,name:menu_location_tree"
 msgid "Locations"
-msgstr "Ubicaciones"
+msgstr "Localizações"
 
 msgctxt "model:ir.ui.menu,name:menu_move_form"
 msgid "Moves"
-msgstr "Movimientos"
+msgstr "Movimentações"
 
 msgctxt "model:ir.ui.menu,name:menu_period_list"
 msgid "Periods"
@@ -1378,67 +1392,67 @@ msgstr "Períodos"
 
 msgctxt "model:ir.ui.menu,name:menu_reporting"
 msgid "Reporting"
-msgstr "Informes"
+msgstr "Relatório"
 
 msgctxt "model:ir.ui.menu,name:menu_shipment_in_form"
 msgid "Supplier Shipments"
-msgstr "Albaranes proveedor"
+msgstr "Remessa do Fornecedor"
 
 msgctxt "model:ir.ui.menu,name:menu_shipment_in_return_form"
 msgid "Supplier Return Shipments"
-msgstr "Devoluciones"
+msgstr "Devoluções ao Fornecedor"
 
 msgctxt "model:ir.ui.menu,name:menu_shipment_internal_form"
 msgid "Internal Shipments"
-msgstr "Albaranes internos"
+msgstr "Remessa Internas"
 
 msgctxt "model:ir.ui.menu,name:menu_shipment_out_form"
 msgid "Customer Shipments"
-msgstr "Albaranes cliente"
+msgstr "Remessa ao Cliente"
 
 msgctxt "model:ir.ui.menu,name:menu_shipment_out_return_form"
 msgid "Customer Return Shipments"
-msgstr "Devoluciones"
+msgstr "Devoluções do Cliente"
 
 msgctxt "model:ir.ui.menu,name:menu_stock"
 msgid "Inventory & Stock"
-msgstr "Logística"
+msgstr "Inventário e Estoque"
 
 msgctxt "model:ir.ui.menu,name:menu_stock_configuration"
 msgid "Stock Configuration"
-msgstr "Stock"
+msgstr "Configuração do estoque"
 
 msgctxt "model:product.by_location.start,name:"
 msgid "Product by Location"
-msgstr "Producto por ubicación"
+msgstr "Produto por localização"
 
 msgctxt "model:res.group,name:group_stock"
 msgid "Stock"
-msgstr "Logística"
+msgstr "Estoque"
 
 msgctxt "model:res.group,name:group_stock_admin"
 msgid "Stock Administration"
-msgstr "Administración de logística"
+msgstr "Administração do estoque"
 
 msgctxt "model:res.group,name:group_stock_force_assignment"
 msgid "Stock Force Assignment"
-msgstr "Forzar reserva en logística"
+msgstr "Forçar Reserva de Estoque "
 
 msgctxt "model:stock.configuration,name:"
 msgid "Stock Configuration"
-msgstr "Configuración stock"
+msgstr "Configuração do estoque"
 
 msgctxt "model:stock.inventory,name:"
 msgid "Stock Inventory"
-msgstr "Inventario de stock"
+msgstr "Inventário do estoque"
 
 msgctxt "model:stock.inventory.line,name:"
 msgid "Stock Inventory Line"
-msgstr "Línea inventario de stock"
+msgstr "Linha de inventário do estoque"
 
 msgctxt "model:stock.location,name:"
 msgid "Stock Location"
-msgstr "Ubicación de stock"
+msgstr "Localização do estoque"
 
 msgctxt "model:stock.location,name:location_customer"
 msgid "Customer"
@@ -1446,83 +1460,83 @@ msgstr "Cliente"
 
 msgctxt "model:stock.location,name:location_input"
 msgid "Input Zone"
-msgstr "Zona de entrada"
+msgstr "Zona de Entrada"
 
 msgctxt "model:stock.location,name:location_lost_found"
 msgid "Lost and Found"
-msgstr "Perdido/encontrado"
+msgstr "Achados e Perdidos"
 
 msgctxt "model:stock.location,name:location_output"
 msgid "Output Zone"
-msgstr "Zona de salida"
+msgstr "Zona de Saída"
 
 msgctxt "model:stock.location,name:location_storage"
 msgid "Storage Zone"
-msgstr "Zona de almacenamiento"
+msgstr "Zona de Armazenamento"
 
 msgctxt "model:stock.location,name:location_supplier"
 msgid "Supplier"
-msgstr "Proveedor"
+msgstr "Fornecedor"
 
 msgctxt "model:stock.location,name:location_warehouse"
 msgid "Warehouse"
-msgstr "Almacén"
+msgstr "Armazém"
 
 msgctxt "model:stock.move,name:"
 msgid "Stock Move"
-msgstr "Movimiento de stock"
+msgstr "Movimentação do estoque"
 
 msgctxt "model:stock.period,name:"
 msgid "Stock Period"
-msgstr "Período de stock"
+msgstr "Período do Estoque"
 
 msgctxt "model:stock.period.cache,name:"
 msgid "Stock Period Cache"
-msgstr "Período de stock precalculado"
+msgstr "Reserva de Período do Estoque"
 
 msgctxt "model:stock.product_quantities_warehouse,name:"
 msgid "Product Quantities By Warehouse"
-msgstr "Unidades de producto por almacén"
+msgstr "Quantidade de Produto por Armazém"
 
 msgctxt "model:stock.product_quantities_warehouse.start,name:"
 msgid "Product Quantities By Warehouse"
-msgstr "Unidades de producto por almacén"
+msgstr "Quantidade de Produto por Armazém"
 
 msgctxt "model:stock.products_by_locations.start,name:"
 msgid "Products by Locations"
-msgstr "Productos por ubicación"
+msgstr "Produtos por localização"
 
 msgctxt "model:stock.shipment.in,name:"
 msgid "Supplier Shipment"
-msgstr "Albaranes proveedor"
+msgstr "Remessa do Fornecedor"
 
 msgctxt "model:stock.shipment.in.return,name:"
 msgid "Supplier Return Shipment"
-msgstr "Albarán devolución proveedor"
+msgstr "Devolução ao Fornecedor"
 
 msgctxt "model:stock.shipment.in.return.assign.failed,name:"
 msgid "Assign Supplier Return Shipment"
-msgstr "Reservar albaranes devolución de proveedor"
+msgstr "Reservar Devolução ao Fornecedor"
 
 msgctxt "model:stock.shipment.internal,name:"
 msgid "Internal Shipment"
-msgstr "Albarán interno"
+msgstr "Remessa Interna"
 
 msgctxt "model:stock.shipment.internal.assign.failed,name:"
 msgid "Assign Shipment Internal"
-msgstr "Reservar albarán interno"
+msgstr "Reservar Remessa Interna"
 
 msgctxt "model:stock.shipment.out,name:"
 msgid "Customer Shipment"
-msgstr "Albarán cliente"
+msgstr "Remessa ao Cliente"
 
 msgctxt "model:stock.shipment.out.assign.failed,name:"
 msgid "Assign Shipment Out"
-msgstr "Reservar albarán de salida"
+msgstr "Reservar Remessa ao Cliente"
 
 msgctxt "model:stock.shipment.out.return,name:"
 msgid "Customer Return Shipment"
-msgstr "Albarán devolución cliente"
+msgstr "Devolução do Cliente"
 
 msgctxt "odt:stock.shipment.in.restocking_list:"
 msgid "/"
@@ -1533,52 +1547,40 @@ msgid "Code:"
 msgstr "Código:"
 
 msgctxt "odt:stock.shipment.in.restocking_list:"
-msgid "E-Mail:"
-msgstr "Correo electrónico:"
-
-msgctxt "odt:stock.shipment.in.restocking_list:"
 msgid "From Location"
-msgstr "Desde ubicación"
-
-msgctxt "odt:stock.shipment.in.restocking_list:"
-msgid "Phone:"
-msgstr "Teléfono:"
+msgstr "Origem"
 
 msgctxt "odt:stock.shipment.in.restocking_list:"
 msgid "Planned Date:"
-msgstr "Fecha estimada:"
+msgstr "Data Planejada:"
 
 msgctxt "odt:stock.shipment.in.restocking_list:"
 msgid "Product"
-msgstr "Producto"
+msgstr "Produto"
 
 msgctxt "odt:stock.shipment.in.restocking_list:"
 msgid "Quantity"
-msgstr "Cantidad"
+msgstr "Quantidade"
 
 msgctxt "odt:stock.shipment.in.restocking_list:"
 msgid "Reference:"
-msgstr "Referencia:"
+msgstr "Referências"
 
 msgctxt "odt:stock.shipment.in.restocking_list:"
 msgid "Restocking List"
-msgstr "Lista de reabastecimiento"
+msgstr "Relação para re-estocagem"
 
 msgctxt "odt:stock.shipment.in.restocking_list:"
 msgid "Supplier:"
-msgstr "Proveedor:"
+msgstr "Fornecedor:"
 
 msgctxt "odt:stock.shipment.in.restocking_list:"
 msgid "To Location"
-msgstr "A ubicación"
-
-msgctxt "odt:stock.shipment.in.restocking_list:"
-msgid "VAT Number:"
-msgstr "CIF/NIF:"
+msgstr "Destino"
 
 msgctxt "odt:stock.shipment.in.restocking_list:"
 msgid "Warehouse:"
-msgstr "Almacén:"
+msgstr "Armazém:"
 
 msgctxt "odt:stock.shipment.internal.report:"
 msgid "/"
@@ -1589,52 +1591,40 @@ msgid "Code:"
 msgstr "Código:"
 
 msgctxt "odt:stock.shipment.internal.report:"
-msgid "E-Mail:"
-msgstr "Correo electrónico:"
-
-msgctxt "odt:stock.shipment.internal.report:"
 msgid "From Location"
-msgstr "Desde ubicación"
+msgstr "Origem"
 
 msgctxt "odt:stock.shipment.internal.report:"
 msgid "From Location:"
-msgstr "Desde ubicación:"
+msgstr "Origem:"
 
 msgctxt "odt:stock.shipment.internal.report:"
 msgid "Internal Shipment"
-msgstr "Albarán interno"
-
-msgctxt "odt:stock.shipment.internal.report:"
-msgid "Phone:"
-msgstr "Teléfono:"
+msgstr "Remessa Interna"
 
 msgctxt "odt:stock.shipment.internal.report:"
 msgid "Planned Date:"
-msgstr "Fecha estimada:"
+msgstr "Data Planejada:"
 
 msgctxt "odt:stock.shipment.internal.report:"
 msgid "Product"
-msgstr "Producto"
+msgstr "Produto"
 
 msgctxt "odt:stock.shipment.internal.report:"
 msgid "Quantity"
-msgstr "Cantidad"
+msgstr "Quantidade"
 
 msgctxt "odt:stock.shipment.internal.report:"
 msgid "Reference:"
-msgstr "Referencia:"
+msgstr "Referência:"
 
 msgctxt "odt:stock.shipment.internal.report:"
 msgid "To Location"
-msgstr "A ubicación"
+msgstr "Destino"
 
 msgctxt "odt:stock.shipment.internal.report:"
 msgid "To Location:"
-msgstr "A ubicación:"
-
-msgctxt "odt:stock.shipment.internal.report:"
-msgid "VAT Number:"
-msgstr "CIF/NIF:"
+msgstr "Destino:"
 
 msgctxt "odt:stock.shipment.out.delivery_note:"
 msgid "/"
@@ -1642,43 +1632,31 @@ msgstr "/"
 
 msgctxt "odt:stock.shipment.out.delivery_note:"
 msgid "Customer Code:"
-msgstr "Código de cliente:"
+msgstr "Código do Cliente:"
 
 msgctxt "odt:stock.shipment.out.delivery_note:"
 msgid "Date:"
-msgstr "Fecha:"
+msgstr "Data:"
 
 msgctxt "odt:stock.shipment.out.delivery_note:"
 msgid "Delivery Note"
-msgstr "Nota de envío"
-
-msgctxt "odt:stock.shipment.out.delivery_note:"
-msgid "E-Mail:"
-msgstr "Correo electrónico:"
-
-msgctxt "odt:stock.shipment.out.delivery_note:"
-msgid "Phone:"
-msgstr "Teléfono:"
+msgstr "Notificação de entrega"
 
 msgctxt "odt:stock.shipment.out.delivery_note:"
 msgid "Product"
-msgstr "Producto"
+msgstr "Produto"
 
 msgctxt "odt:stock.shipment.out.delivery_note:"
 msgid "Quantity"
-msgstr "Cantidad"
+msgstr "Quantidade"
 
 msgctxt "odt:stock.shipment.out.delivery_note:"
 msgid "Reference:"
-msgstr "Referencia:"
+msgstr "Referência:"
 
 msgctxt "odt:stock.shipment.out.delivery_note:"
 msgid "Shipment Number:"
-msgstr "Número de albarán:"
-
-msgctxt "odt:stock.shipment.out.delivery_note:"
-msgid "VAT Number:"
-msgstr "CIF/NIF:"
+msgstr "Número da Remessa:"
 
 msgctxt "odt:stock.shipment.out.picking_list:"
 msgid "/"
@@ -1693,48 +1671,36 @@ msgid "Customer:"
 msgstr "Cliente:"
 
 msgctxt "odt:stock.shipment.out.picking_list:"
-msgid "E-Mail:"
-msgstr "Correo electrónico:"
-
-msgctxt "odt:stock.shipment.out.picking_list:"
 msgid "From Location"
-msgstr "Desde ubicación"
-
-msgctxt "odt:stock.shipment.out.picking_list:"
-msgid "Phone:"
-msgstr "Teléfono:"
+msgstr "Origem"
 
 msgctxt "odt:stock.shipment.out.picking_list:"
 msgid "Picking List"
-msgstr "Lista recogida"
+msgstr "Relação para separação"
 
 msgctxt "odt:stock.shipment.out.picking_list:"
 msgid "Planned Date:"
-msgstr "Fecha estimada:"
+msgstr "Data Planejada:"
 
 msgctxt "odt:stock.shipment.out.picking_list:"
 msgid "Product"
-msgstr "Producto"
+msgstr "Produto"
 
 msgctxt "odt:stock.shipment.out.picking_list:"
 msgid "Quantity"
-msgstr "Cantidad"
+msgstr "Quantidade"
 
 msgctxt "odt:stock.shipment.out.picking_list:"
 msgid "Reference:"
-msgstr "Referencia:"
+msgstr "Referência:"
 
 msgctxt "odt:stock.shipment.out.picking_list:"
 msgid "To Location"
-msgstr "A ubicación"
-
-msgctxt "odt:stock.shipment.out.picking_list:"
-msgid "VAT Number:"
-msgstr "CIF/NIF:"
+msgstr "Destino"
 
 msgctxt "odt:stock.shipment.out.picking_list:"
 msgid "Warehouse:"
-msgstr "Almacén:"
+msgstr "Armazém"
 
 msgctxt "odt:stock.shipment.out.return.restocking_list:"
 msgid "/"
@@ -1753,48 +1719,36 @@ msgid "Customer"
 msgstr "Cliente"
 
 msgctxt "odt:stock.shipment.out.return.restocking_list:"
-msgid "E-Mail:"
-msgstr "Correo electrónico:"
-
-msgctxt "odt:stock.shipment.out.return.restocking_list:"
 msgid "From Location"
-msgstr "Desde ubicación"
-
-msgctxt "odt:stock.shipment.out.return.restocking_list:"
-msgid "Phone:"
-msgstr "Teléfono:"
+msgstr "Origem"
 
 msgctxt "odt:stock.shipment.out.return.restocking_list:"
 msgid "Planned Date:"
-msgstr "Fecha estimada:"
+msgstr "Data Planejada:"
 
 msgctxt "odt:stock.shipment.out.return.restocking_list:"
 msgid "Product"
-msgstr "Producto"
+msgstr "Produto"
 
 msgctxt "odt:stock.shipment.out.return.restocking_list:"
 msgid "Quantity"
-msgstr "Cantidad"
+msgstr "Quantidade"
 
 msgctxt "odt:stock.shipment.out.return.restocking_list:"
 msgid "Reference:"
-msgstr "Referencia:"
+msgstr "Referência:"
 
 msgctxt "odt:stock.shipment.out.return.restocking_list:"
 msgid "Restocking List"
-msgstr "Lista de reabastecimiento"
+msgstr "Relação para re-estocagem"
 
 msgctxt "odt:stock.shipment.out.return.restocking_list:"
 msgid "To Location"
-msgstr "A ubicación"
-
-msgctxt "odt:stock.shipment.out.return.restocking_list:"
-msgid "VAT Number:"
-msgstr "CIF/NIF:"
+msgstr "Destino"
 
 msgctxt "odt:stock.shipment.out.return.restocking_list:"
 msgid "Warehouse:"
-msgstr "Almacén:"
+msgstr "Armazém"
 
 msgctxt "selection:stock.inventory,state:"
 msgid "Canceled"
@@ -1802,39 +1756,43 @@ msgstr "Cancelado"
 
 msgctxt "selection:stock.inventory,state:"
 msgid "Done"
-msgstr "Finalizado"
+msgstr "Feito"
 
 msgctxt "selection:stock.inventory,state:"
 msgid "Draft"
-msgstr "Borrador"
+msgstr "Rascunho"
 
 msgctxt "selection:stock.location,type:"
 msgid "Customer"
 msgstr "Cliente"
 
 msgctxt "selection:stock.location,type:"
+msgid "Drop"
+msgstr "Entrega direta"
+
+msgctxt "selection:stock.location,type:"
 msgid "Lost and Found"
-msgstr "Perdido/encontrado"
+msgstr "Achados e Perdidos"
 
 msgctxt "selection:stock.location,type:"
 msgid "Production"
-msgstr "Producción"
+msgstr "Produção"
 
 msgctxt "selection:stock.location,type:"
 msgid "Storage"
-msgstr "Interna"
+msgstr "Armazenamento"
 
 msgctxt "selection:stock.location,type:"
 msgid "Supplier"
-msgstr "Proveedor"
+msgstr "Fornecedor"
 
 msgctxt "selection:stock.location,type:"
 msgid "View"
-msgstr "Vista"
+msgstr "Exibir"
 
 msgctxt "selection:stock.location,type:"
 msgid "Warehouse"
-msgstr "Almacén"
+msgstr "Armazém"
 
 msgctxt "selection:stock.move,state:"
 msgid "Assigned"
@@ -1846,23 +1804,23 @@ msgstr "Cancelado"
 
 msgctxt "selection:stock.move,state:"
 msgid "Done"
-msgstr "Finalizado"
+msgstr "Feito"
 
 msgctxt "selection:stock.move,state:"
 msgid "Draft"
-msgstr "Borrador"
+msgstr "Rascunho"
 
 msgctxt "selection:stock.move,state:"
 msgid "Staging"
-msgstr "En proceso"
+msgstr "Em processamento"
 
 msgctxt "selection:stock.period,state:"
 msgid "Closed"
-msgstr "Cerrado"
+msgstr "Fechado"
 
 msgctxt "selection:stock.period,state:"
 msgid "Draft"
-msgstr "Borrador"
+msgstr "Rascunho"
 
 msgctxt "selection:stock.shipment.in,state:"
 msgid "Canceled"
@@ -1870,15 +1828,15 @@ msgstr "Cancelado"
 
 msgctxt "selection:stock.shipment.in,state:"
 msgid "Done"
-msgstr "Finalizado"
+msgstr "Feito"
 
 msgctxt "selection:stock.shipment.in,state:"
 msgid "Draft"
-msgstr "Borrador"
+msgstr "Rascunho"
 
 msgctxt "selection:stock.shipment.in,state:"
 msgid "Received"
-msgstr "Recibido"
+msgstr "Recebido"
 
 msgctxt "selection:stock.shipment.in.return,state:"
 msgid "Assigned"
@@ -1890,15 +1848,15 @@ msgstr "Cancelado"
 
 msgctxt "selection:stock.shipment.in.return,state:"
 msgid "Done"
-msgstr "Finalizado"
+msgstr "Feito"
 
 msgctxt "selection:stock.shipment.in.return,state:"
 msgid "Draft"
-msgstr "Borrador"
+msgstr "Rascunho"
 
 msgctxt "selection:stock.shipment.in.return,state:"
 msgid "Waiting"
-msgstr "En espera"
+msgstr "Em Espera"
 
 msgctxt "selection:stock.shipment.internal,state:"
 msgid "Assigned"
@@ -1910,15 +1868,15 @@ msgstr "Cancelado"
 
 msgctxt "selection:stock.shipment.internal,state:"
 msgid "Done"
-msgstr "Finalizado"
+msgstr "Feito"
 
 msgctxt "selection:stock.shipment.internal,state:"
 msgid "Draft"
-msgstr "Borrador"
+msgstr "Rascunho"
 
 msgctxt "selection:stock.shipment.internal,state:"
 msgid "Waiting"
-msgstr "En espera"
+msgstr "Em Espera"
 
 msgctxt "selection:stock.shipment.out,state:"
 msgid "Assigned"
@@ -1930,19 +1888,19 @@ msgstr "Cancelado"
 
 msgctxt "selection:stock.shipment.out,state:"
 msgid "Done"
-msgstr "Finalizado"
+msgstr "Feito"
 
 msgctxt "selection:stock.shipment.out,state:"
 msgid "Draft"
-msgstr "Borrador"
+msgstr "Rascunho"
 
 msgctxt "selection:stock.shipment.out,state:"
 msgid "Packed"
-msgstr "Empaquetado"
+msgstr "Embalado"
 
 msgctxt "selection:stock.shipment.out,state:"
 msgid "Waiting"
-msgstr "En espera"
+msgstr "Em Espera"
 
 msgctxt "selection:stock.shipment.out.return,state:"
 msgid "Canceled"
@@ -1950,47 +1908,47 @@ msgstr "Cancelado"
 
 msgctxt "selection:stock.shipment.out.return,state:"
 msgid "Done"
-msgstr "Finalizado"
+msgstr "Feito"
 
 msgctxt "selection:stock.shipment.out.return,state:"
 msgid "Draft"
-msgstr "Borrador"
+msgstr "Rascunho"
 
 msgctxt "selection:stock.shipment.out.return,state:"
 msgid "Received"
-msgstr "Recibido"
+msgstr "Recebido"
 
 msgctxt "view:party.party:"
 msgid "Stock"
-msgstr "Logística"
+msgstr "Estoque"
 
 msgctxt "view:product.by_location.start:"
 msgid "Product by Location"
-msgstr "Productos por ubicación"
+msgstr "Produto por localização"
 
 msgctxt "view:product.product:"
 msgid "Cost Value"
-msgstr "Valor de coste"
+msgstr "Valor de Custo"
 
 msgctxt "view:product.product:"
 msgid "Products"
-msgstr "Productos"
+msgstr "Produtos"
 
 msgctxt "view:stock.configuration:"
 msgid "Stock Configuration"
-msgstr "Configuración stock"
+msgstr "Configuração do Estoque"
 
 msgctxt "view:stock.inventory.line:"
 msgid "Inventory Line"
-msgstr "Línea de inventario"
+msgstr "Linha do Inventário"
 
 msgctxt "view:stock.inventory.line:"
 msgid "Inventory Lines"
-msgstr "Líneas de inventario"
+msgstr "Linhas do Inventário"
 
 msgctxt "view:stock.inventory:"
 msgid "Add an inventory line for each missing products"
-msgstr "Añadir una línea de inventario por cada producto que falta"
+msgstr "Adicionar uma linha do inventário para cada produto faltante"
 
 msgctxt "view:stock.inventory:"
 msgid "Cancel"
@@ -1998,7 +1956,7 @@ msgstr "Cancelar"
 
 msgctxt "view:stock.inventory:"
 msgid "Complete Inventory"
-msgstr "Inventario completo"
+msgstr "Preencher Inventário"
 
 msgctxt "view:stock.inventory:"
 msgid "Confirm"
@@ -2006,47 +1964,55 @@ msgstr "Confirmar"
 
 msgctxt "view:stock.inventory:"
 msgid "Inventories"
-msgstr "Inventarios"
+msgstr "Inventários"
 
 msgctxt "view:stock.inventory:"
 msgid "Inventory"
-msgstr "Inventario"
+msgstr "Inventário"
 
 msgctxt "view:stock.location:"
 msgid "Location"
-msgstr "Ubicación"
+msgstr "Localização"
 
 msgctxt "view:stock.location:"
 msgid "Location Quantity"
-msgstr "Cantidad en ubicación"
+msgstr "Quantidade da Localização"
 
 msgctxt "view:stock.location:"
 msgid "Locations"
-msgstr "Ubicaciones"
+msgstr "Localizações"
+
+msgctxt "view:stock.move:"
+msgid "Cancel"
+msgstr "Cancelar"
 
 msgctxt "view:stock.move:"
 msgid "Move"
-msgstr "Movimiento"
+msgstr "Movimentação"
 
 msgctxt "view:stock.move:"
 msgid "Moves"
-msgstr "Movimientos"
+msgstr "Movimentações"
+
+msgctxt "view:stock.move:"
+msgid "Reset to Draft"
+msgstr "Voltar para Rascunho"
 
 msgctxt "view:stock.period.cache:"
 msgid "Period Cache"
-msgstr "Período precalculado"
+msgstr "Reserva de Período"
 
 msgctxt "view:stock.period.cache:"
 msgid "Period Caches"
-msgstr "Período precalculado"
+msgstr "Reservas de Período"
 
 msgctxt "view:stock.period:"
 msgid "Close"
-msgstr "Cerrar"
+msgstr "Fechar"
 
 msgctxt "view:stock.period:"
 msgid "Draft"
-msgstr "Borrador"
+msgstr "Rascunho"
 
 msgctxt "view:stock.period:"
 msgid "Period"
@@ -2058,23 +2024,23 @@ msgstr "Períodos"
 
 msgctxt "view:stock.product_quantities_warehouse.start:"
 msgid "Product Quantities By Warehouse"
-msgstr "Unidades de producto por almacén"
+msgstr "Quantidade de Produto por Armazém"
 
 msgctxt "view:stock.product_quantities_warehouse:"
 msgid "Product Quantities By Warehouse"
-msgstr "Unidades de producto por almacén"
+msgstr "Quantidade de Produto por Armazém"
 
 msgctxt "view:stock.products_by_locations.start:"
 msgid "Products by Locations"
-msgstr "Productos por ubicación"
+msgstr "Produtos por localização"
 
 msgctxt "view:stock.shipment.in.return.assign.failed:"
 msgid "Unable to Assign"
-msgstr "No se puede reservar"
+msgstr "Não é possível reservar"
 
 msgctxt "view:stock.shipment.in.return.assign.failed:"
 msgid "Unable to assign those products:"
-msgstr "No se pueden reservar estos productos:"
+msgstr "Não é possível reservar estes produtos:"
 
 msgctxt "view:stock.shipment.in.return:"
 msgid "Assign"
@@ -2086,23 +2052,23 @@ msgstr "Cancelar"
 
 msgctxt "view:stock.shipment.in.return:"
 msgid "Done"
-msgstr "Finalizar"
+msgstr "Feito"
 
 msgctxt "view:stock.shipment.in.return:"
 msgid "Draft"
-msgstr "Borrador"
+msgstr "Rascunho"
 
 msgctxt "view:stock.shipment.in.return:"
 msgid "Supplier Return Shipment"
-msgstr "Albarán devolución proveedor"
+msgstr "Devolução ao Fornecedor"
 
 msgctxt "view:stock.shipment.in.return:"
 msgid "Supplier Return Shipments"
-msgstr "Albaranes devolución proveedor"
+msgstr "Devoluções ao Fornecedor"
 
 msgctxt "view:stock.shipment.in.return:"
 msgid "Wait"
-msgstr "Esperando"
+msgstr "Em Espera"
 
 msgctxt "view:stock.shipment.in:"
 msgid "Cancel"
@@ -2110,39 +2076,39 @@ msgstr "Cancelar"
 
 msgctxt "view:stock.shipment.in:"
 msgid "Done"
-msgstr "Finalizar"
+msgstr "Feito"
 
 msgctxt "view:stock.shipment.in:"
 msgid "Incoming Moves"
-msgstr "Movimientos de entrada"
+msgstr "Movimentações de Entrada"
 
 msgctxt "view:stock.shipment.in:"
 msgid "Inventory Moves"
-msgstr "Movimientos internos"
+msgstr "Movimentações Internas"
 
 msgctxt "view:stock.shipment.in:"
 msgid "Receive"
-msgstr "Recibir"
+msgstr "Receber"
 
 msgctxt "view:stock.shipment.in:"
 msgid "Reset to Draft"
-msgstr "Restaurar a borrador"
+msgstr "Voltar para Rascunho"
 
 msgctxt "view:stock.shipment.in:"
 msgid "Supplier Shipment"
-msgstr "Albarán proveedor"
+msgstr "Remessa do Fornecedor"
 
 msgctxt "view:stock.shipment.in:"
 msgid "Supplier Shipments"
-msgstr "Albaranes proveedor"
+msgstr "Remessas do Fornecedor"
 
 msgctxt "view:stock.shipment.internal.assign.failed:"
 msgid "Unable to Assign"
-msgstr "No se puede reservar"
+msgstr "Não é possível reservar"
 
 msgctxt "view:stock.shipment.internal.assign.failed:"
 msgid "Unable to assign those products:"
-msgstr "No se pueden reservar estos productos:"
+msgstr "Não é possível reservar estes produtos:"
 
 msgctxt "view:stock.shipment.internal:"
 msgid "Assign"
@@ -2154,31 +2120,31 @@ msgstr "Cancelar"
 
 msgctxt "view:stock.shipment.internal:"
 msgid "Done"
-msgstr "Finalizar"
+msgstr "Feito"
 
 msgctxt "view:stock.shipment.internal:"
 msgid "Draft"
-msgstr "Borrador"
+msgstr "Rascunho"
 
 msgctxt "view:stock.shipment.internal:"
 msgid "Internal Shipment"
-msgstr "Albarán interno"
+msgstr "Remessa Interna"
 
 msgctxt "view:stock.shipment.internal:"
 msgid "Internal Shipments"
-msgstr "Albaranes internos"
+msgstr "Remessas Internas"
 
 msgctxt "view:stock.shipment.internal:"
 msgid "Wait"
-msgstr "En espera"
+msgstr "Em Espera"
 
 msgctxt "view:stock.shipment.out.assign.failed:"
 msgid "Unable to Assign"
-msgstr "No se puede reservar"
+msgstr "Não é possível reservar"
 
 msgctxt "view:stock.shipment.out.assign.failed:"
 msgid "Unable to assign those products:"
-msgstr "No se pueden reservar estos productos:"
+msgstr "Não é possível reservar estes produtos:"
 
 msgctxt "view:stock.shipment.out.return:"
 msgid "Cancel"
@@ -2186,31 +2152,31 @@ msgstr "Cancelar"
 
 msgctxt "view:stock.shipment.out.return:"
 msgid "Customer Return Shipment"
-msgstr "Albarán devolución cliente"
+msgstr "Devolução do Cliente"
 
 msgctxt "view:stock.shipment.out.return:"
 msgid "Customer Return Shipments"
-msgstr "Albaranes devolución cliente"
+msgstr "Devoluções do Cliente"
 
 msgctxt "view:stock.shipment.out.return:"
 msgid "Done"
-msgstr "Finalizar"
+msgstr "Feito"
 
 msgctxt "view:stock.shipment.out.return:"
 msgid "Draft"
-msgstr "Borrador"
+msgstr "Rascunho"
 
 msgctxt "view:stock.shipment.out.return:"
 msgid "Incoming Moves"
-msgstr "Movimientos de entrada"
+msgstr "Movimentações de Entrada"
 
 msgctxt "view:stock.shipment.out.return:"
 msgid "Inventory Moves"
-msgstr "Movimientos internos"
+msgstr "Movimentações Internas"
 
 msgctxt "view:stock.shipment.out.return:"
 msgid "Received"
-msgstr "Recibido"
+msgstr "Recebido"
 
 msgctxt "view:stock.shipment.out:"
 msgid "Assign"
@@ -2222,35 +2188,35 @@ msgstr "Cancelar"
 
 msgctxt "view:stock.shipment.out:"
 msgid "Customer Shipment"
-msgstr "Albarán cliente"
+msgstr "Remessa ao Cliente"
 
 msgctxt "view:stock.shipment.out:"
 msgid "Customer Shipments"
-msgstr "Albaranes cliente"
+msgstr "Remessas para o Cliente"
 
 msgctxt "view:stock.shipment.out:"
 msgid "Done"
-msgstr "Finalizar"
+msgstr "Feito"
 
 msgctxt "view:stock.shipment.out:"
 msgid "Draft"
-msgstr "Borrador"
+msgstr "Rascunho"
 
 msgctxt "view:stock.shipment.out:"
 msgid "Inventory Moves"
-msgstr "Movimientos internos"
+msgstr "Movimentações Internas"
 
 msgctxt "view:stock.shipment.out:"
 msgid "Make shipment"
-msgstr "Empaquetar"
+msgstr "Fazer a remessa"
 
 msgctxt "view:stock.shipment.out:"
 msgid "Outgoing Moves"
-msgstr "Movimientos de salida"
+msgstr "Movimentações de Saída"
 
 msgctxt "view:stock.shipment.out:"
 msgid "Wait"
-msgstr "En espera"
+msgstr "Em Espera"
 
 msgctxt "wizard_button:product.by_location,start,end:"
 msgid "Cancel"
@@ -2278,24 +2244,24 @@ msgstr "Abrir"
 
 msgctxt "wizard_button:stock.shipment.in.return.assign,failed,end:"
 msgid "OK"
-msgstr "Aceptar"
+msgstr "OK"
 
 msgctxt "wizard_button:stock.shipment.in.return.assign,failed,force:"
 msgid "Force Assign"
-msgstr "Forzar reserva"
+msgstr "Forçar Reserva"
 
 msgctxt "wizard_button:stock.shipment.internal.assign,failed,end:"
 msgid "OK"
-msgstr "Aceptar"
+msgstr "OK"
 
 msgctxt "wizard_button:stock.shipment.internal.assign,failed,force:"
 msgid "Force Assign"
-msgstr "Forzar reserva"
+msgstr "Forçar Reserva"
 
 msgctxt "wizard_button:stock.shipment.out.assign,failed,end:"
 msgid "OK"
-msgstr "Aceptar"
+msgstr "OK"
 
 msgctxt "wizard_button:stock.shipment.out.assign,failed,force:"
 msgid "Force Assign"
-msgstr "Forzar reserva"
+msgstr "Forçar Reserva"
diff --git a/locale/ru_RU.po b/locale/ru_RU.po
index f0b3c37..5fd00b5 100644
--- a/locale/ru_RU.po
+++ b/locale/ru_RU.po
@@ -381,6 +381,10 @@ msgctxt "field:stock.location,parent:"
 msgid "Parent"
 msgstr "Предок"
 
+msgctxt "field:stock.location,picking_location:"
+msgid "Picking"
+msgstr ""
+
 msgctxt "field:stock.location,quantity:"
 msgid "Quantity"
 msgstr "Кол-во"
@@ -1064,6 +1068,10 @@ msgstr ""
 "* Пустое значение - бесконечная дата в будущем\n"
 "* Дата в прошлом - бывшие значения"
 
+msgctxt "help:stock.location,picking_location:"
+msgid "If empty the Storage is used"
+msgstr ""
+
 msgctxt "help:stock.products_by_locations.start,forecast_date:"
 msgid ""
 "Allow to compute expected stock quantities for this date.\n"
@@ -1074,10 +1082,6 @@ msgstr ""
 "* Пустое значение - бесконечная дата в будущем\n"
 "* Дата в прошлом - бывшие значения"
 
-msgctxt "model:ir.action,name:"
-msgid "Create Return Shipment"
-msgstr "Создать обратную отправку"
-
 msgctxt "model:ir.action,name:act_inventory_form"
 msgid "Inventories"
 msgstr "Инвентаризация"
@@ -1174,6 +1178,10 @@ msgctxt "model:ir.action,name:wizard_products_by_locations"
 msgid "Products by Locations"
 msgstr "Продукция по местоположениям"
 
+msgctxt "model:ir.action,name:wizard_recompute_cost_price"
+msgid "Recompute Cost Price"
+msgstr ""
+
 msgctxt "model:ir.action,name:wizard_shipment_in_return_assign"
 msgid "Assign Purchase Return Shipment"
 msgstr "Возврат груза заказчиком"
@@ -1530,18 +1538,10 @@ msgid "Code:"
 msgstr "Код:"
 
 msgctxt "odt:stock.shipment.in.restocking_list:"
-msgid "E-Mail:"
-msgstr "Эл.почта:"
-
-msgctxt "odt:stock.shipment.in.restocking_list:"
 msgid "From Location"
 msgstr "Из местоположения"
 
 msgctxt "odt:stock.shipment.in.restocking_list:"
-msgid "Phone:"
-msgstr "Телефон:"
-
-msgctxt "odt:stock.shipment.in.restocking_list:"
 msgid "Planned Date:"
 msgstr "Плановая дата:"
 
@@ -1570,10 +1570,6 @@ msgid "To Location"
 msgstr "В местоположение"
 
 msgctxt "odt:stock.shipment.in.restocking_list:"
-msgid "VAT Number:"
-msgstr "ИНН:"
-
-msgctxt "odt:stock.shipment.in.restocking_list:"
 msgid "Warehouse:"
 msgstr "Товарный склад:"
 
@@ -1586,10 +1582,6 @@ msgid "Code:"
 msgstr "Код:"
 
 msgctxt "odt:stock.shipment.internal.report:"
-msgid "E-Mail:"
-msgstr "Эл.почта:"
-
-msgctxt "odt:stock.shipment.internal.report:"
 msgid "From Location"
 msgstr "Из местоположения"
 
@@ -1602,10 +1594,6 @@ msgid "Internal Shipment"
 msgstr "Внутреннее перемещение"
 
 msgctxt "odt:stock.shipment.internal.report:"
-msgid "Phone:"
-msgstr "Телефон:"
-
-msgctxt "odt:stock.shipment.internal.report:"
 msgid "Planned Date:"
 msgstr "Плановая дата:"
 
@@ -1629,10 +1617,6 @@ msgctxt "odt:stock.shipment.internal.report:"
 msgid "To Location:"
 msgstr "В местоположение:"
 
-msgctxt "odt:stock.shipment.internal.report:"
-msgid "VAT Number:"
-msgstr "ИНН:"
-
 msgctxt "odt:stock.shipment.out.delivery_note:"
 msgid "/"
 msgstr "/"
@@ -1650,14 +1634,6 @@ msgid "Delivery Note"
 msgstr "Накладная"
 
 msgctxt "odt:stock.shipment.out.delivery_note:"
-msgid "E-Mail:"
-msgstr "Эл.почта:"
-
-msgctxt "odt:stock.shipment.out.delivery_note:"
-msgid "Phone:"
-msgstr "Телефон:"
-
-msgctxt "odt:stock.shipment.out.delivery_note:"
 msgid "Product"
 msgstr "Продукт"
 
@@ -1673,10 +1649,6 @@ msgctxt "odt:stock.shipment.out.delivery_note:"
 msgid "Shipment Number:"
 msgstr "Номер доставки:"
 
-msgctxt "odt:stock.shipment.out.delivery_note:"
-msgid "VAT Number:"
-msgstr "ИНН:"
-
 msgctxt "odt:stock.shipment.out.picking_list:"
 msgid "/"
 msgstr "/"
@@ -1690,18 +1662,10 @@ msgid "Customer:"
 msgstr "Заказчик:"
 
 msgctxt "odt:stock.shipment.out.picking_list:"
-msgid "E-Mail:"
-msgstr "Эл.почта:"
-
-msgctxt "odt:stock.shipment.out.picking_list:"
 msgid "From Location"
 msgstr "Из местоположения"
 
 msgctxt "odt:stock.shipment.out.picking_list:"
-msgid "Phone:"
-msgstr "Телефон:"
-
-msgctxt "odt:stock.shipment.out.picking_list:"
 msgid "Picking List"
 msgstr "Список выбора"
 
@@ -1726,10 +1690,6 @@ msgid "To Location"
 msgstr "В местоположение"
 
 msgctxt "odt:stock.shipment.out.picking_list:"
-msgid "VAT Number:"
-msgstr "ИНН:"
-
-msgctxt "odt:stock.shipment.out.picking_list:"
 msgid "Warehouse:"
 msgstr "Товарный склад:"
 
@@ -1751,18 +1711,10 @@ msgid "Customer"
 msgstr "Заказчик"
 
 msgctxt "odt:stock.shipment.out.return.restocking_list:"
-msgid "E-Mail:"
-msgstr "Эл.почта:"
-
-msgctxt "odt:stock.shipment.out.return.restocking_list:"
 msgid "From Location"
 msgstr "Из местоположения"
 
 msgctxt "odt:stock.shipment.out.return.restocking_list:"
-msgid "Phone:"
-msgstr "Телефон:"
-
-msgctxt "odt:stock.shipment.out.return.restocking_list:"
 msgid "Planned Date:"
 msgstr "Плановая дата:"
 
@@ -1787,10 +1739,6 @@ msgid "To Location"
 msgstr "В местоположение"
 
 msgctxt "odt:stock.shipment.out.return.restocking_list:"
-msgid "VAT Number:"
-msgstr "ИНН:"
-
-msgctxt "odt:stock.shipment.out.return.restocking_list:"
 msgid "Warehouse:"
 msgstr "Товарный склад:"
 
@@ -1811,6 +1759,10 @@ msgid "Customer"
 msgstr "Заказчик"
 
 msgctxt "selection:stock.location,type:"
+msgid "Drop"
+msgstr ""
+
+msgctxt "selection:stock.location,type:"
 msgid "Lost and Found"
 msgstr "Утраченная и обретенная"
 
@@ -2024,6 +1976,10 @@ msgid "Locations"
 msgstr "Местоположения"
 
 msgctxt "view:stock.move:"
+msgid "Cancel"
+msgstr ""
+
+msgctxt "view:stock.move:"
 msgid "Move"
 msgstr "Перемещение"
 
@@ -2031,6 +1987,10 @@ msgctxt "view:stock.move:"
 msgid "Moves"
 msgstr "Перемещения"
 
+msgctxt "view:stock.move:"
+msgid "Reset to Draft"
+msgstr ""
+
 msgctxt "view:stock.period.cache:"
 msgid "Period Cache"
 msgstr "Запас по периоду"
diff --git a/locale/sl_SI.po b/locale/sl_SI.po
index d57e522..ca86977 100644
--- a/locale/sl_SI.po
+++ b/locale/sl_SI.po
@@ -83,15 +83,15 @@ msgstr ""
 
 msgctxt "error:stock.move:"
 msgid "You can not set stock move \"%s\" to assigned state."
-msgstr "Prometa zaloge \"%s\" ni možno postaviti v stanje \"dodeljeno\". "
+msgstr "Prometa zaloge \"%s\" ni možno postaviti v stanje \"dodeljeno\"."
 
 msgctxt "error:stock.move:"
 msgid "You can not set stock move \"%s\" to done state."
-msgstr "Prometa zaloge \"%s\" ni možno postaviti v stanje \"končano\". "
+msgstr "Prometa zaloge \"%s\" ni možno postaviti v stanje \"končano\"."
 
 msgctxt "error:stock.move:"
 msgid "You can not set stock move \"%s\" to draft state."
-msgstr "Prometa zaloge \"%s\" ni možno postaviti v stanje priprave. "
+msgstr "Prometa zaloge \"%s\" ni možno postaviti v stanje priprave."
 
 msgctxt "error:stock.period:"
 msgid "You can not close a period in the future or today."
@@ -381,6 +381,10 @@ msgctxt "field:stock.location,parent:"
 msgid "Parent"
 msgstr "Matična lokacija"
 
+msgctxt "field:stock.location,picking_location:"
+msgid "Picking"
+msgstr "Prevzem"
+
 msgctxt "field:stock.location,quantity:"
 msgid "Quantity"
 msgstr "Količina"
@@ -1063,6 +1067,10 @@ msgstr ""
 "* Prazno polje pomeni neskončen datum v prihodnost.\n"
 "* Datum v preteklosti daje pretekle vrednosti."
 
+msgctxt "help:stock.location,picking_location:"
+msgid "If empty the Storage is used"
+msgstr "Če je prazno, se uporabi Shramba"
+
 msgctxt "help:stock.products_by_locations.start,forecast_date:"
 msgid ""
 "Allow to compute expected stock quantities for this date.\n"
@@ -1169,6 +1177,10 @@ msgctxt "model:ir.action,name:wizard_products_by_locations"
 msgid "Products by Locations"
 msgstr "Izdelki po lokacijah"
 
+msgctxt "model:ir.action,name:wizard_recompute_cost_price"
+msgid "Recompute Cost Price"
+msgstr "Preračun cene"
+
 msgctxt "model:ir.action,name:wizard_shipment_in_return_assign"
 msgid "Assign Purchase Return Shipment"
 msgstr "Dodelitev vrnjene prevzemnice"
@@ -1438,7 +1450,7 @@ msgstr "Kupec"
 
 msgctxt "model:stock.location,name:location_input"
 msgid "Input Zone"
-msgstr "Vhodna cona"
+msgstr "Vstopna cona"
 
 msgctxt "model:stock.location,name:location_lost_found"
 msgid "Lost and Found"
@@ -1446,7 +1458,7 @@ msgstr "Izgubljeno/najdeno"
 
 msgctxt "model:stock.location,name:location_output"
 msgid "Output Zone"
-msgstr "Izhodna cona"
+msgstr "Izstopna cona"
 
 msgctxt "model:stock.location,name:location_storage"
 msgid "Storage Zone"
@@ -1525,18 +1537,10 @@ msgid "Code:"
 msgstr "Šifra:"
 
 msgctxt "odt:stock.shipment.in.restocking_list:"
-msgid "E-Mail:"
-msgstr "E-pošta:"
-
-msgctxt "odt:stock.shipment.in.restocking_list:"
 msgid "From Location"
 msgstr "Iz lokacije"
 
 msgctxt "odt:stock.shipment.in.restocking_list:"
-msgid "Phone:"
-msgstr "Telefon:"
-
-msgctxt "odt:stock.shipment.in.restocking_list:"
 msgid "Planned Date:"
 msgstr "Načrtovan datum:"
 
@@ -1565,10 +1569,6 @@ msgid "To Location"
 msgstr "Na lokacijo"
 
 msgctxt "odt:stock.shipment.in.restocking_list:"
-msgid "VAT Number:"
-msgstr "DDV številka:"
-
-msgctxt "odt:stock.shipment.in.restocking_list:"
 msgid "Warehouse:"
 msgstr "Skladišče:"
 
@@ -1581,10 +1581,6 @@ msgid "Code:"
 msgstr "Šifra:"
 
 msgctxt "odt:stock.shipment.internal.report:"
-msgid "E-Mail:"
-msgstr "E-pošta:"
-
-msgctxt "odt:stock.shipment.internal.report:"
 msgid "From Location"
 msgstr "Iz lokacije"
 
@@ -1597,10 +1593,6 @@ msgid "Internal Shipment"
 msgstr "Notranja odpremnica"
 
 msgctxt "odt:stock.shipment.internal.report:"
-msgid "Phone:"
-msgstr "Telefon:"
-
-msgctxt "odt:stock.shipment.internal.report:"
 msgid "Planned Date:"
 msgstr "Načrtovan datum:"
 
@@ -1624,10 +1616,6 @@ msgctxt "odt:stock.shipment.internal.report:"
 msgid "To Location:"
 msgstr "Na lokacijo:"
 
-msgctxt "odt:stock.shipment.internal.report:"
-msgid "VAT Number:"
-msgstr "DDV številka:"
-
 msgctxt "odt:stock.shipment.out.delivery_note:"
 msgid "/"
 msgstr "/"
@@ -1645,14 +1633,6 @@ msgid "Delivery Note"
 msgstr "Dobavnica"
 
 msgctxt "odt:stock.shipment.out.delivery_note:"
-msgid "E-Mail:"
-msgstr "E-pošta:"
-
-msgctxt "odt:stock.shipment.out.delivery_note:"
-msgid "Phone:"
-msgstr "Telefon:"
-
-msgctxt "odt:stock.shipment.out.delivery_note:"
 msgid "Product"
 msgstr "Izdelek"
 
@@ -1668,10 +1648,6 @@ msgctxt "odt:stock.shipment.out.delivery_note:"
 msgid "Shipment Number:"
 msgstr "Dobavnica št.:"
 
-msgctxt "odt:stock.shipment.out.delivery_note:"
-msgid "VAT Number:"
-msgstr "DDV številka:"
-
 msgctxt "odt:stock.shipment.out.picking_list:"
 msgid "/"
 msgstr "/"
@@ -1685,18 +1661,10 @@ msgid "Customer:"
 msgstr "Kupec:"
 
 msgctxt "odt:stock.shipment.out.picking_list:"
-msgid "E-Mail:"
-msgstr "E-pošta:"
-
-msgctxt "odt:stock.shipment.out.picking_list:"
 msgid "From Location"
 msgstr "Iz lokacije"
 
 msgctxt "odt:stock.shipment.out.picking_list:"
-msgid "Phone:"
-msgstr "Telefon:"
-
-msgctxt "odt:stock.shipment.out.picking_list:"
 msgid "Picking List"
 msgstr "Prevzemni list"
 
@@ -1721,10 +1689,6 @@ msgid "To Location"
 msgstr "Na lokacijo"
 
 msgctxt "odt:stock.shipment.out.picking_list:"
-msgid "VAT Number:"
-msgstr "DDV številka:"
-
-msgctxt "odt:stock.shipment.out.picking_list:"
 msgid "Warehouse:"
 msgstr "Skladišče:"
 
@@ -1745,18 +1709,10 @@ msgid "Customer"
 msgstr "Kupec"
 
 msgctxt "odt:stock.shipment.out.return.restocking_list:"
-msgid "E-Mail:"
-msgstr "E-pošta:"
-
-msgctxt "odt:stock.shipment.out.return.restocking_list:"
 msgid "From Location"
 msgstr "Iz lokacije"
 
 msgctxt "odt:stock.shipment.out.return.restocking_list:"
-msgid "Phone:"
-msgstr "Telefon:"
-
-msgctxt "odt:stock.shipment.out.return.restocking_list:"
 msgid "Planned Date:"
 msgstr "Načrtovan datum:"
 
@@ -1781,10 +1737,6 @@ msgid "To Location"
 msgstr "Na lokacijo"
 
 msgctxt "odt:stock.shipment.out.return.restocking_list:"
-msgid "VAT Number:"
-msgstr "DDV številka:"
-
-msgctxt "odt:stock.shipment.out.return.restocking_list:"
 msgid "Warehouse:"
 msgstr "Skladišče:"
 
@@ -1805,6 +1757,10 @@ msgid "Customer"
 msgstr "Kupec"
 
 msgctxt "selection:stock.location,type:"
+msgid "Drop"
+msgstr "Dostava"
+
+msgctxt "selection:stock.location,type:"
 msgid "Lost and Found"
 msgstr "Izgubljeno/najdeno"
 
@@ -2017,6 +1973,10 @@ msgid "Locations"
 msgstr "Lokacije"
 
 msgctxt "view:stock.move:"
+msgid "Cancel"
+msgstr "Preklic"
+
+msgctxt "view:stock.move:"
 msgid "Move"
 msgstr "Promet"
 
@@ -2024,6 +1984,10 @@ msgctxt "view:stock.move:"
 msgid "Moves"
 msgstr "Promet"
 
+msgctxt "view:stock.move:"
+msgid "Reset to Draft"
+msgstr "Ponastavitev"
+
 msgctxt "view:stock.period.cache:"
 msgid "Period Cache"
 msgstr "Predpomnjeno obdobje"
diff --git a/location.py b/location.py
index 7de0529..9f80f6d 100644
--- a/location.py
+++ b/location.py
@@ -5,7 +5,7 @@ from decimal import Decimal
 from trytond.model import ModelView, ModelSQL, fields
 from trytond.wizard import Wizard, StateView, Button, StateAction
 from trytond import backend
-from trytond.pyson import Not, Bool, Eval, Equal, PYSONEncoder, Date, If
+from trytond.pyson import Eval, PYSONEncoder, Date, If
 from trytond.transaction import Transaction
 from trytond.pool import Pool, PoolMeta
 from trytond.tools import grouped_slice
@@ -15,7 +15,7 @@ __all__ = ['Location', 'Party', 'ProductsByLocationsStart',
 __metaclass__ = PoolMeta
 
 STATES = {
-    'readonly': Not(Bool(Eval('active'))),
+    'readonly': ~Eval('active'),
 }
 DEPENDS = ['active']
 
@@ -30,8 +30,8 @@ class Location(ModelSQL, ModelView):
     active = fields.Boolean('Active', select=True)
     address = fields.Many2One("party.address", "Address",
         states={
-            'invisible': Not(Equal(Eval('type'), 'warehouse')),
-            'readonly': Not(Bool(Eval('active'))),
+            'invisible': Eval('type') != 'warehouse',
+            'readonly': ~Eval('active'),
             },
         depends=['type', 'active'])
     type = fields.Selection([
@@ -41,6 +41,7 @@ class Location(ModelSQL, ModelView):
         ('warehouse', 'Warehouse'),
         ('storage', 'Storage'),
         ('production', 'Production'),
+        ('drop', 'Drop'),
         ('view', 'View'),
         ], 'Location type', states=STATES, depends=DEPENDS)
     parent = fields.Many2One("stock.location", "Parent", select=True,
@@ -54,9 +55,9 @@ class Location(ModelSQL, ModelView):
     childs = fields.One2Many("stock.location", "parent", "Children")
     input_location = fields.Many2One(
         "stock.location", "Input", states={
-            'invisible': Not(Equal(Eval('type'), 'warehouse')),
-            'readonly': Not(Bool(Eval('active'))),
-            'required': Equal(Eval('type'), 'warehouse'),
+            'invisible': Eval('type') != 'warehouse',
+            'readonly': ~Eval('active'),
+            'required': Eval('type') == 'warehouse',
             },
         domain=[
             ('type', '=', 'storage'),
@@ -68,9 +69,9 @@ class Location(ModelSQL, ModelView):
         depends=['type', 'active', 'id'])
     output_location = fields.Many2One(
         "stock.location", "Output", states={
-            'invisible': Not(Equal(Eval('type'), 'warehouse')),
-            'readonly': Not(Bool(Eval('active'))),
-            'required': Equal(Eval('type'), 'warehouse'),
+            'invisible': Eval('type') != 'warehouse',
+            'readonly': ~Eval('active'),
+            'required': Eval('type') == 'warehouse',
         },
         domain=[
             ('type', '=', 'storage'),
@@ -80,16 +81,27 @@ class Location(ModelSQL, ModelView):
         depends=['type', 'active', 'id'])
     storage_location = fields.Many2One(
         "stock.location", "Storage", states={
-            'invisible': Not(Equal(Eval('type'), 'warehouse')),
-            'readonly': Not(Bool(Eval('active'))),
-            'required': Equal(Eval('type'), 'warehouse'),
+            'invisible': Eval('type') != 'warehouse',
+            'readonly': ~Eval('active'),
+            'required': Eval('type') == 'warehouse',
         },
         domain=[
-            ('type', '=', 'storage'),
+            ('type', 'in', ['storage', 'view']),
             ['OR',
                 ('parent', 'child_of', [Eval('id')]),
                 ('parent', '=', None)]],
         depends=['type', 'active', 'id'])
+    picking_location = fields.Many2One(
+        'stock.location', 'Picking', states={
+            'invisible': Eval('type') != 'warehouse',
+            'readonly': ~Eval('active'),
+            },
+        domain=[
+            ('type', '=', 'storage'),
+            ('parent', 'child_of', [Eval('storage_location', -1)]),
+            ],
+        depends=['type', 'active', 'storage_location'],
+        help='If empty the Storage is used')
     quantity = fields.Function(fields.Float('Quantity'), 'get_quantity')
     forecast_quantity = fields.Function(fields.Float('Forecast Quantity'),
             'get_quantity')
@@ -164,9 +176,12 @@ class Location(ModelSQL, ModelView):
         invalid_move_types = ['warehouse', 'view']
         Move = Pool().get('stock.move')
         if (self.type in invalid_move_types
-                and Move.search(['OR',
-                        ('to_location', '=', self.id),
-                        ('from_location', '=', self.id),
+                and Move.search([
+                        ['OR',
+                            ('to_location', '=', self.id),
+                            ('from_location', '=', self.id),
+                            ],
+                        ('state', 'not in', ['staging', 'draft']),
                         ])):
             self.raise_user_error('invalid_type_for_moves', (self.rec_name,))
 
@@ -324,9 +339,6 @@ class Location(ModelSQL, ModelView):
         if default is None:
             default = {}
 
-        default['left'] = 0
-        default['right'] = 0
-
         res = []
         for location in locations:
             if location.type == 'warehouse':
diff --git a/move.py b/move.py
index d82aa52..db806e7 100644
--- a/move.py
+++ b/move.py
@@ -4,15 +4,16 @@ import datetime
 import operator
 from decimal import Decimal
 from functools import partial
+from collections import OrderedDict
 
 from sql import Literal, Union, Column, Null
 from sql.aggregate import Sum
 from sql.conditionals import Coalesce
 from sql.operators import Concat
 
-from trytond.model import Workflow, Model, ModelView, ModelSQL, fields
+from trytond.model import Workflow, Model, ModelView, ModelSQL, fields, Check
 from trytond import backend
-from trytond.pyson import In, Eval, Not, Equal, If, Bool
+from trytond.pyson import Eval, If, Bool
 from trytond.tools import reduce_ids
 from trytond.transaction import Transaction
 from trytond.pool import Pool
@@ -22,9 +23,15 @@ from trytond.modules.product import price_digits
 __all__ = ['StockMixin', 'Move']
 
 STATES = {
-    'readonly': In(Eval('state'), ['cancel', 'assigned', 'done']),
+    'readonly': Eval('state').in_(['cancel', 'assigned', 'done']),
 }
 DEPENDS = ['state']
+LOCATION_DOMAIN = [
+    If(Eval('state').in_(['staging', 'draft']),
+        ('type', 'not in', ['warehouse']),
+        ('type', 'not in', ['warehouse', 'view'])),
+    ]
+LOCATION_DEPENDS = ['state']
 
 
 class StockMixin:
@@ -174,11 +181,11 @@ class Move(Workflow, ModelSQL, ModelView):
     internal_quantity = fields.Float('Internal Quantity', readonly=True,
         required=True)
     from_location = fields.Many2One("stock.location", "From Location",
-        select=True, required=True, states=STATES, depends=DEPENDS,
-        domain=[('type', 'not in', ('warehouse', 'view'))])
+        select=True, required=True, states=STATES,
+        depends=DEPENDS + LOCATION_DEPENDS, domain=LOCATION_DOMAIN)
     to_location = fields.Many2One("stock.location", "To Location", select=True,
-        required=True, states=STATES, depends=DEPENDS,
-        domain=[('type', 'not in', ('warehouse', 'view'))])
+        required=True, states=STATES,
+        depends=DEPENDS + LOCATION_DEPENDS, domain=LOCATION_DOMAIN)
     shipment = fields.Reference('Shipment', selection='get_shipment',
         readonly=True, select=True)
     origin = fields.Reference('Origin', selection='get_origin', select=True,
@@ -187,7 +194,7 @@ class Move(Workflow, ModelSQL, ModelView):
             },
         depends=['state'])
     planned_date = fields.Date("Planned Date", states={
-            'readonly': (In(Eval('state'), ['cancel', 'assigned', 'done'])
+            'readonly': (Eval('state').in_(['cancel', 'assigned', 'done'])
                 | Eval('shipment'))
             }, depends=['state', 'shipment'],
         select=True)
@@ -205,27 +212,27 @@ class Move(Workflow, ModelSQL, ModelView):
         ], 'State', select=True, readonly=True)
     company = fields.Many2One('company.company', 'Company', required=True,
         states={
-            'readonly': Not(Equal(Eval('state'), 'draft')),
+            'readonly': Eval('state') != 'draft',
             },
         domain=[
-            ('id', If(In('company', Eval('context', {})), '=', '!='),
+            ('id', If(Eval('context', {}).contains('company'), '=', '!='),
                 Eval('context', {}).get('company', -1)),
             ],
         depends=['state'])
     unit_price = fields.Numeric('Unit Price', digits=price_digits,
         states={
-            'invisible': Not(Bool(Eval('unit_price_required'))),
+            'invisible': ~Eval('unit_price_required'),
             'required': Bool(Eval('unit_price_required')),
-            'readonly': Not(Equal(Eval('state'), 'draft')),
+            'readonly': Eval('state') != 'draft',
             },
         depends=['unit_price_required', 'state'])
     cost_price = fields.Numeric('Cost Price', digits=price_digits,
         readonly=True)
     currency = fields.Many2One('currency.currency', 'Currency',
         states={
-            'invisible': Not(Bool(Eval('unit_price_required'))),
+            'invisible': ~Eval('unit_price_required'),
             'required': Bool(Eval('unit_price_required')),
-            'readonly': Not(Equal(Eval('state'), 'draft')),
+            'readonly': Eval('state') != 'draft',
             },
         depends=['unit_price_required', 'state'])
     unit_price_required = fields.Function(
@@ -236,20 +243,20 @@ class Move(Workflow, ModelSQL, ModelView):
     def __setup__(cls):
         super(Move, cls).__setup__()
         cls._deny_modify_assigned = set(['product', 'uom', 'quantity',
-            'from_location', 'to_location', 'company', 'unit_price',
-            'currency'])
+            'from_location', 'to_location', 'company', 'currency'])
         cls._deny_modify_done_cancel = (cls._deny_modify_assigned |
             set(['planned_date', 'effective_date', 'state']))
         cls._allow_modify_closed_period = set()
 
+        t = cls.__table__()
         cls._sql_constraints += [
-            ('check_move_qty_pos',
-                'CHECK(quantity >= 0.0)', 'Move quantity must be positive'),
+            ('check_move_qty_pos', Check(t, t.quantity >= 0),
+                'Move quantity must be positive'),
             ('check_move_internal_qty_pos',
-                'CHECK(internal_quantity >= 0.0)',
+                Check(t, t.internal_quantity >= 0),
                 'Internal move quantity must be positive'),
             ('check_from_to_locations',
-                'CHECK(from_location != to_location)',
+                Check(t, t.from_location != t.to_location),
                 'Source and destination location must be different'),
             ]
         cls._order[0] = ('id', 'DESC')
@@ -281,9 +288,11 @@ class Move(Workflow, ModelSQL, ModelView):
         cls._buttons.update({
                 'cancel': {
                     'invisible': ~Eval('state').in_(['draft', 'assigned']),
+                    'readonly': Eval('shipment'),
                     },
                 'draft': {
                     'invisible': ~Eval('state').in_(['assigned']),
+                    'readonly': Eval('shipment'),
                     },
                 'assign': {
                     'invisible': ~Eval('state').in_(['assigned']),
@@ -547,7 +556,7 @@ class Move(Workflow, ModelSQL, ModelView):
             product_qty = product.quantity
         else:
             product_qty = product.template.quantity
-        product_qty = Decimal(str(product_qty))
+        product_qty = Decimal(str(max(product_qty, 0)))
         # convert wrt currency
         with Transaction().set_context(date=self.effective_date):
             unit_price = Currency.compute(self.currency, self.unit_price,
@@ -628,7 +637,7 @@ class Move(Workflow, ModelSQL, ModelView):
                 and self.from_location.type == 'storage'
                 and self.product.cost_price_method == 'average'):
             self._update_product_cost_price('out')
-        if not self.cost_price:
+        if self.cost_price is None:
             self.cost_price = self.product.cost_price
 
     @classmethod
@@ -767,7 +776,7 @@ class Move(Workflow, ModelSQL, ModelView):
                 product_ids=[m.product.id for m in moves],
                 grouping=grouping)
 
-        def get_key(location):
+        def get_key(move, location):
             key = (location.id,)
             for field in grouping:
                 value = getattr(move, field)
@@ -783,7 +792,8 @@ class Move(Workflow, ModelSQL, ModelView):
                     success = False
                 continue
             to_location = move.to_location
-            location_qties = {}
+            # Keep location order for pick_product
+            location_qties = OrderedDict()
             if with_childs:
                 childs = Location.search([
                         ('parent', 'child_of', [move.from_location.id]),
@@ -791,7 +801,7 @@ class Move(Workflow, ModelSQL, ModelView):
             else:
                 childs = [move.from_location]
             for location in childs:
-                key = get_key(location)
+                key = get_key(move, location)
                 if key in pbl:
                     location_qties[location] = Uom.compute_qty(
                         move.product.default_uom, pbl[key], move.uom,
@@ -827,7 +837,8 @@ class Move(Workflow, ModelSQL, ModelView):
                 qty_default_uom = Uom.compute_qty(move.uom, qty,
                         move.product.default_uom, round=False)
 
-                from_key, to_key = get_key(from_location), get_key(to_location)
+                from_key = get_key(move, from_location)
+                to_key = get_key(move, to_location)
                 pbl[from_key] = pbl.get(from_key, 0.0) - qty_default_uom
                 pbl[to_key] = pbl.get(to_key, 0.0) + qty_default_uom
         return success
@@ -882,7 +893,7 @@ class Move(Workflow, ModelSQL, ModelView):
                 raise ValueError('"%s" has no field "%s"' % (Move, field))
         assert grouping_filter is None or len(grouping_filter) == len(grouping)
 
-        move_rule_query = Rule.domain_get('stock.move')
+        move_rule_query = Rule.query_get('stock.move')
 
         PeriodCache = Period.get_cache(grouping)
         period = None
diff --git a/period.py b/period.py
index 1961e54..5b9b802 100644
--- a/period.py
+++ b/period.py
@@ -2,7 +2,7 @@
 # this repository contains the full copyright notices and license terms.
 from itertools import chain
 from trytond.model import Workflow, ModelView, ModelSQL, fields
-from trytond.pyson import Equal, Eval, If, In
+from trytond.pyson import Eval, If
 from trytond.transaction import Transaction
 from trytond.pool import Pool
 from trytond.tools import grouped_slice
@@ -15,11 +15,11 @@ class Period(Workflow, ModelSQL, ModelView):
     __name__ = 'stock.period'
     _rec_name = 'date'
     date = fields.Date('Date', required=True, states={
-        'readonly': Equal(Eval('state'), 'closed'),
-        }, depends=['state'])
+            'readonly': Eval('state') == 'closed',
+            }, depends=['state'])
     company = fields.Many2One('company.company', 'Company', required=True,
         domain=[
-            ('id', If(In('company', Eval('context', {})), '=', '!='),
+            ('id', If(Eval('context', {}).contains('company'), '=', '!='),
                 Eval('context', {}).get('company', -1)),
             ])
     caches = fields.One2Many('stock.period.cache', 'period', 'Caches',
diff --git a/picking_list.odt b/picking_list.odt
index aceef03..9daa4db 100644
Binary files a/picking_list.odt and b/picking_list.odt differ
diff --git a/product.py b/product.py
index c72bbdc..7138a02 100644
--- a/product.py
+++ b/product.py
@@ -5,11 +5,12 @@ from decimal import Decimal
 
 from sql import Literal, Null
 from sql.aggregate import Max
-from sql.functions import Now
+from sql.functions import CurrentTimestamp
 from sql.conditionals import Coalesce
 
 from trytond.model import ModelSQL, ModelView, fields
-from trytond.wizard import Wizard, StateView, StateAction, Button
+from trytond.wizard import Wizard, StateView, StateAction, StateTransition, \
+    Button
 from trytond.pyson import PYSONEncoder, Eval, Or
 from trytond.transaction import Transaction
 from trytond.pool import Pool, PoolMeta
@@ -20,7 +21,8 @@ from .move import StockMixin
 __all__ = ['Template', 'Product',
     'ProductByLocationStart', 'ProductByLocation',
     'ProductQuantitiesByWarehouse', 'ProductQuantitiesByWarehouseStart',
-    'OpenProductQuantitiesByWarehouse']
+    'OpenProductQuantitiesByWarehouse',
+    'RecomputeCostPrice']
 __metaclass__ = PoolMeta
 
 
@@ -81,6 +83,14 @@ class Template:
                         break
         super(Template, cls).write(*args)
 
+    @classmethod
+    def recompute_cost_price(cls, templates):
+        pool = Pool()
+        Product = pool.get('product.product')
+
+        products = [p for t in templates for p in t.products]
+        Product.recompute_cost_price(products)
+
 
 class Product(object, StockMixin):
     __metaclass__ = PoolMeta
@@ -173,6 +183,93 @@ class Product(object, StockMixin):
                             del quantities[key]
         return quantities
 
+    @classmethod
+    def recompute_cost_price(cls, products):
+        pool = Pool()
+        Template = pool.get('product.template')
+
+        costs = []
+        for product in products:
+            if product.type == 'service':
+                continue
+            costs.append(getattr(product, 'recompute_cost_price_%s' %
+                product.cost_price_method)())
+
+        if hasattr(cls, 'cost_price'):
+            digits = cls.cost_price.digits
+            write = cls.write
+            records = products
+        else:
+            digits = Template.cost_price.digits
+            write = Template.write
+            records = [p.template for p in products]
+
+        costs = [c.quantize(
+            Decimal(str(10.0 ** -digits[1]))) for c in costs]
+
+        to_write = []
+        for record, cost in zip(records, costs):
+            to_write.append([record])
+            to_write.append({'cost_price': cost})
+
+        # Enforce check access for account_stock*
+        with Transaction().set_context(_check_access=True):
+            write(*to_write)
+
+    def recompute_cost_price_fixed(self):
+        return self.cost_price
+
+    def recompute_cost_price_average(self):
+        pool = Pool()
+        Move = pool.get('stock.move')
+        Currency = pool.get('currency.currency')
+        Uom = pool.get('product.uom')
+
+        context = Transaction().context
+
+        if hasattr(self.__class__, 'cost_price'):
+            product_clause = ('product', '=', self.id)
+        else:
+            product_clause = ('product.template', '=', self.template.id)
+
+        moves = Move.search([
+                product_clause,
+                ('state', '=', 'done'),
+                ('company', '=', context.get('company')),
+                ['OR',
+                    [
+                        ('to_location.type', '=', 'storage'),
+                        ('from_location.type', '!=', 'storage'),
+                        ],
+                    [
+                        ('from_location.type', '=', 'storage'),
+                        ('to_location.type', '!=', 'storage'),
+                        ],
+                    ],
+                ], order=[('effective_date', 'ASC'), ('id', 'ASC')])
+
+        cost_price = Decimal(0)
+        quantity = 0
+        for move in moves:
+            qty = Uom.compute_qty(move.uom, move.quantity, self.default_uom)
+            qty = Decimal(str(qty))
+            if move.from_location.type == 'storage':
+                qty *= -1
+            if (move.from_location.type in ['supplier', 'production']
+                    or move.to_location.type == 'supplier'):
+                with Transaction().set_context(date=move.effective_date):
+                    unit_price = Currency.compute(
+                        move.currency, move.unit_price,
+                        move.company.currency, round=False)
+                unit_price = Uom.compute_price(move.uom, unit_price,
+                    self.default_uom)
+                if quantity + qty != 0:
+                    cost_price = (
+                        (cost_price * quantity) + (unit_price * qty)
+                        ) / (quantity + qty)
+            quantity += qty
+        return cost_price
+
 
 class ProductByLocationStart(ModelView):
     'Product by Location'
@@ -257,7 +354,7 @@ class ProductQuantitiesByWarehouse(ModelSQL, ModelView):
         return move.select(
             Max(move.id).as_('id'),
             Literal(0).as_('create_uid'),
-            Now().as_('create_date'),
+            CurrentTimestamp().as_('create_date'),
             Literal(None).as_('write_uid'),
             Literal(None).as_('write_date'),
             date_column,
@@ -337,3 +434,25 @@ class OpenProductQuantitiesByWarehouse(Wizard):
                 ('date', '>=', Date.today()),
                 ])
         return action, {}
+
+
+class RecomputeCostPrice(Wizard):
+    'Recompute Cost Price'
+    __name__ = 'product.recompute_cost_price'
+    start_state = 'recompute'
+    recompute = StateTransition()
+
+    def transition_recompute(self):
+        pool = Pool()
+        Product = pool.get('product.product')
+        Template = pool.get('product.template')
+
+        context = Transaction().context
+
+        if context['active_model'] == 'product.product':
+            products = Product.browse(context['active_ids'])
+            Product.recompute_cost_price(products)
+        elif context['active_model'] == 'product.template':
+            templates = Template.browse(context['active_ids'])
+            Template.recompute_cost_price(templates)
+        return 'end'
diff --git a/product.xml b/product.xml
index cb9892f..928fb26 100644
--- a/product.xml
+++ b/product.xml
@@ -10,6 +10,28 @@ this repository contains the full copyright notices and license terms. -->
             <field name="name">product_tree_qty</field>
         </record>
 
+        <record model="ir.action.wizard" id="wizard_recompute_cost_price">
+            <field name="name">Recompute Cost Price</field>
+            <field name="wiz_name">product.recompute_cost_price</field>
+        </record>
+        <record model="ir.action.keyword"
+            id="wizard_recompute_cost_price_product_keyword1">
+            <field name="keyword">form_action</field>
+            <field name="model">product.product,-1</field>
+            <field name="action" ref="wizard_recompute_cost_price"/>
+        </record>
+        <record model="ir.action.keyword"
+            id="wizard_recompute_cost_price_template_keyword1">
+            <field name="keyword">form_action</field>
+            <field name="model">product.template,-1</field>
+            <field name="action" ref="wizard_recompute_cost_price"/>
+        </record>
+        <record model="ir.action-res.group"
+            id="wizard_recompute_cost_price-group_product_admin">
+            <field name="action" ref="wizard_recompute_cost_price"/>
+            <field name="group" ref="product.group_product_admin"/>
+        </record>
+
         <record model="ir.ui.view" id="location_quantity_view_tree">
             <field name="model">stock.location</field>
             <field name="type">tree</field>
diff --git a/setup.py b/setup.py
index ca878f4..d6595fc 100644
--- a/setup.py
+++ b/setup.py
@@ -88,6 +88,9 @@ setup(name=name,
         'Natural Language :: English',
         'Natural Language :: French',
         'Natural Language :: German',
+        'Natural Language :: Hungarian',
+        'Natural Language :: Italian',
+        'Natural Language :: Portuguese (Brazilian)',
         'Natural Language :: Russian',
         'Natural Language :: Slovenian',
         'Natural Language :: Spanish',
diff --git a/shipment.py b/shipment.py
index b0fc56c..9a62f3b 100644
--- a/shipment.py
+++ b/shipment.py
@@ -13,7 +13,7 @@ from trytond.model import Workflow, ModelView, ModelSQL, fields
 from trytond.modules.company import CompanyReport
 from trytond.wizard import Wizard, StateTransition, StateView, Button
 from trytond import backend
-from trytond.pyson import Eval, Not, Equal, If, Or, And, Bool, In, Id
+from trytond.pyson import Eval, If, Id
 from trytond.transaction import Transaction
 from trytond.pool import Pool, PoolMeta
 from trytond.tools import reduce_ids, grouped_slice
@@ -45,25 +45,26 @@ class ShipmentIn(Workflow, ModelSQL, ModelView):
             },
         depends=['state'])
     planned_date = fields.Date('Planned Date', states={
-            'readonly': Not(Equal(Eval('state'), 'draft')),
+            'readonly': Eval('state') != 'draft',
             }, depends=['state'])
     company = fields.Many2One('company.company', 'Company', required=True,
         states={
-            'readonly': Not(Equal(Eval('state'), 'draft')),
+            'readonly': Eval('state') != 'draft',
             },
         domain=[
-            ('id', If(In('company', Eval('context', {})), '=', '!='),
+            ('id', If(Eval('context', {}).contains('company'), '=', '!='),
                 Eval('context', {}).get('company', -1)),
             ],
         depends=['state'])
     reference = fields.Char("Reference", size=None, select=True,
         states={
-            'readonly': Not(Equal(Eval('state'), 'draft')),
+            'readonly': Eval('state') != 'draft',
             }, depends=['state'])
     supplier = fields.Many2One('party.party', 'Supplier',
         states={
-            'readonly': And(Or(Not(Equal(Eval('state'), 'draft')),
-                    Bool(Eval('incoming_moves', [0]))), Bool(Eval('supplier'))),
+            'readonly': (((Eval('state') != 'draft')
+                    | Eval('incoming_moves', [0]))
+                & Eval('supplier')),
             }, required=True,
         depends=['state', 'supplier'])
     supplier_location = fields.Function(fields.Many2One('stock.location',
@@ -71,14 +72,14 @@ class ShipmentIn(Workflow, ModelSQL, ModelView):
         'on_change_with_supplier_location')
     contact_address = fields.Many2One('party.address', 'Contact Address',
         states={
-            'readonly': Not(Equal(Eval('state'), 'draft')),
+            'readonly': Eval('state') != 'draft',
             }, domain=[('party', '=', Eval('supplier'))],
         depends=['state', 'supplier'])
     warehouse = fields.Many2One('stock.location', "Warehouse",
         required=True, domain=[('type', '=', 'warehouse')],
         states={
-            'readonly': Or(In(Eval('state'), ['cancel', 'done']),
-                Bool(Eval('incoming_moves', [0]))),
+            'readonly': (Eval('state').in_(['cancel', 'done'])
+                | Eval('incoming_moves', [0])),
             }, depends=['state'])
     warehouse_input = fields.Function(fields.Many2One('stock.location',
             'Warehouse Input'),
@@ -115,7 +116,7 @@ class ShipmentIn(Workflow, ModelSQL, ModelView):
                 ('company', '=', Eval('company')),
                 ],
             states={
-                'readonly': In(Eval('state'), ['draft', 'done', 'cancel']),
+                'readonly': Eval('state').in_(['draft', 'done', 'cancel']),
                 },
             depends=['state', 'warehouse', 'warehouse_input',
                 'warehouse_storage', 'company']),
@@ -449,7 +450,8 @@ class ShipmentIn(Workflow, ModelSQL, ModelView):
     @Workflow.transition('draft')
     def draft(cls, shipments):
         Move = Pool().get('stock.move')
-        Move.draft([m for s in shipments for m in s.incoming_moves])
+        Move.draft([m for s in shipments for m in s.incoming_moves
+                if m.state != 'staging'])
         Move.delete([m for s in shipments for m in s.inventory_moves
                 if m.state in ('draft', 'cancel')])
 
@@ -485,39 +487,36 @@ class ShipmentInReturn(Workflow, ModelSQL, ModelView):
         depends=['state'])
     planned_date = fields.Date('Planned Date',
         states={
-            'readonly': Not(Equal(Eval('state'), 'draft')),
+            'readonly': Eval('state') != 'draft',
             }, depends=['state'])
     company = fields.Many2One('company.company', 'Company', required=True,
         states={
-            'readonly': Not(Equal(Eval('state'), 'draft')),
+            'readonly': Eval('state') != 'draft',
             },
         domain=[
-            ('id', If(In('company', Eval('context', {})), '=', '!='),
+            ('id', If(Eval('context', {}).contains('company'), '=', '!='),
                 Eval('context', {}).get('company', -1)),
             ],
         depends=['state'])
     code = fields.Char("Code", size=None, select=True, readonly=True)
     reference = fields.Char("Reference", size=None, select=True,
         states={
-            'readonly': Not(Equal(Eval('state'), 'draft')),
+            'readonly': Eval('state') != 'draft',
             }, depends=['state'])
     from_location = fields.Many2One('stock.location', "From Location",
         required=True, states={
-            'readonly': Or(Not(Equal(Eval('state'), 'draft')),
-                Bool(Eval('moves', [0]))),
-            }, domain=[('type', '=', 'storage')],
+            'readonly': (Eval('state') != 'draft') | Eval('moves', [0]),
+            }, domain=[('type', 'in', ['storage', 'view'])],
         depends=['state'])
     to_location = fields.Many2One('stock.location', "To Location",
         required=True, states={
-            'readonly': Or(Not(Equal(Eval('state'), 'draft')),
-                Bool(Eval('moves', [0]))),
+            'readonly': (Eval('state') != 'draft') | Eval('moves', [0]),
             }, domain=[('type', '=', 'supplier')],
         depends=['state'])
     moves = fields.One2Many('stock.move', 'shipment', 'Moves',
         states={
-            'readonly': And(Or(Not(Equal(Eval('state'), 'draft')),
-                    Not(Bool(Eval('from_location')))),
-                Bool(Eval('to_location'))),
+            'readonly': (((Eval('state') != 'draft') | ~Eval('from_location'))
+                & Eval('to_location')),
             },
         domain=[
             ('from_location', '=', Eval('from_location')),
@@ -694,7 +693,8 @@ class ShipmentInReturn(Workflow, ModelSQL, ModelView):
     @Workflow.transition('draft')
     def draft(cls, shipments):
         Move = Pool().get('stock.move')
-        Move.draft([m for s in shipments for m in s.moves])
+        Move.draft([m for s in shipments for m in s.moves
+                if m.state != 'staging'])
 
     @classmethod
     @ModelView.button
@@ -765,21 +765,21 @@ class ShipmentOut(Workflow, ModelSQL, ModelView):
         depends=['state'])
     planned_date = fields.Date('Planned Date',
         states={
-            'readonly': Not(Equal(Eval('state'), 'draft')),
+            'readonly': Eval('state') != 'draft',
             }, depends=['state'])
     company = fields.Many2One('company.company', 'Company', required=True,
         states={
-            'readonly': Not(Equal(Eval('state'), 'draft')),
+            'readonly': Eval('state') != 'draft',
             },
         domain=[
-            ('id', If(In('company', Eval('context', {})), '=', '!='),
+            ('id', If(Eval('context', {}).contains('company'), '=', '!='),
                 Eval('context', {}).get('company', -1)),
             ],
         depends=['state'])
     customer = fields.Many2One('party.party', 'Customer', required=True,
         states={
-            'readonly': Or(Not(Equal(Eval('state'), 'draft')),
-                Bool(Eval('outgoing_moves', [0]))),
+            'readonly': ((Eval('state') != 'draft')
+                | Eval('outgoing_moves', [0])),
             },
         depends=['state'])
     customer_location = fields.Function(fields.Many2One('stock.location',
@@ -787,17 +787,17 @@ class ShipmentOut(Workflow, ModelSQL, ModelView):
     delivery_address = fields.Many2One('party.address',
         'Delivery Address', required=True,
         states={
-            'readonly': Not(Equal(Eval('state'), 'draft')),
+            'readonly': Eval('state') != 'draft',
             }, domain=[('party', '=', Eval('customer'))],
         depends=['state', 'customer'])
     reference = fields.Char("Reference", size=None, select=True,
         states={
-            'readonly': Not(Equal(Eval('state'), 'draft')),
+            'readonly': Eval('state') != 'draft',
             }, depends=['state'])
     warehouse = fields.Many2One('stock.location', "Warehouse", required=True,
         states={
-            'readonly': Or(Not(Equal(Eval('state'), 'draft')),
-                Bool(Eval('outgoing_moves', [0]))),
+            'readonly': ((Eval('state') != 'draft')
+                | Eval('outgoing_moves', [0])),
             }, domain=[('type', '=', 'warehouse')],
         depends=['state'])
     warehouse_storage = fields.Function(fields.Many2One('stock.location',
@@ -1041,7 +1041,8 @@ class ShipmentOut(Workflow, ModelSQL, ModelView):
     def draft(cls, shipments):
         Move = Pool().get('stock.move')
         Move.draft([m for s in shipments
-                for m in s.inventory_moves + s.outgoing_moves])
+                for m in s.inventory_moves + s.outgoing_moves
+                if m.state != 'staging'])
 
     @classmethod
     @ModelView.button
@@ -1070,8 +1071,9 @@ class ShipmentOut(Workflow, ModelSQL, ModelView):
         'Return inventory move for the outgoing move'
         pool = Pool()
         Move = pool.get('stock.move')
+        wrh = move.shipment.warehouse
         return Move(
-            from_location=move.shipment.warehouse.storage_location,
+            from_location=wrh.picking_location or wrh.storage_location,
             to_location=move.from_location,
             product=move.product,
             uom=move.uom,
@@ -1315,21 +1317,21 @@ class ShipmentOutReturn(Workflow, ModelSQL, ModelView):
         depends=['state'])
     planned_date = fields.Date('Planned Date',
         states={
-            'readonly': Not(Equal(Eval('state'), 'draft')),
+            'readonly': Eval('state') != 'draft',
             }, depends=['state'])
     company = fields.Many2One('company.company', 'Company', required=True,
         states={
-            'readonly': Not(Equal(Eval('state'), 'draft')),
+            'readonly': Eval('state') != 'draft',
             },
         domain=[
-            ('id', If(In('company', Eval('context', {})), '=', '!='),
+            ('id', If(Eval('context', {}).contains('company'), '=', '!='),
                 Eval('context', {}).get('company', -1)),
             ],
         depends=['state'])
     customer = fields.Many2One('party.party', 'Customer', required=True,
         states={
-            'readonly': Or(Not(Equal(Eval('state'), 'draft')),
-                Bool(Eval('incoming_moves', [0]))),
+            'readonly': ((Eval('state') != 'draft')
+                | Eval('incoming_moves', [0])),
             },
         depends=['state'])
     customer_location = fields.Function(fields.Many2One('stock.location',
@@ -1337,17 +1339,17 @@ class ShipmentOutReturn(Workflow, ModelSQL, ModelView):
     delivery_address = fields.Many2One('party.address',
         'Delivery Address', required=True,
         states={
-            'readonly': Not(Equal(Eval('state'), 'draft')),
+            'readonly': Eval('state') != 'draft',
             }, domain=[('party', '=', Eval('customer'))],
         depends=['state', 'customer'])
     reference = fields.Char("Reference", size=None, select=True,
         states={
-            'readonly': Not(Equal(Eval('state'), 'draft')),
+            'readonly': Eval('state') != 'draft',
             }, depends=['state'])
     warehouse = fields.Many2One('stock.location', "Warehouse", required=True,
         states={
-            'readonly': Or(Not(Equal(Eval('state'), 'draft')),
-                Bool(Eval('incoming_moves', [0]))),
+            'readonly': ((Eval('state') != 'draft')
+                | Eval('incoming_moves', [0])),
             }, domain=[('type', '=', 'warehouse')],
         depends=['state'])
     warehouse_storage = fields.Function(fields.Many2One('stock.location',
@@ -1626,7 +1628,8 @@ class ShipmentOutReturn(Workflow, ModelSQL, ModelView):
     @Workflow.transition('draft')
     def draft(cls, shipments):
         Move = Pool().get('stock.move')
-        Move.draft([m for s in shipments for m in s.incoming_moves])
+        Move.draft([m for s in shipments for m in s.incoming_moves
+                if m.state != 'staging'])
         Move.delete([m for s in shipments for m in s.inventory_moves
                 if m.state in ('draft', 'cancel')])
 
@@ -1751,46 +1754,50 @@ class ShipmentInternal(Workflow, ModelSQL, ModelView):
         depends=['state'])
     planned_date = fields.Date('Planned Date',
         states={
-            'readonly': Not(Equal(Eval('state'), 'draft')),
+            'readonly': Eval('state') != 'draft',
             }, depends=['state'])
     company = fields.Many2One('company.company', 'Company', required=True,
         states={
-            'readonly': Not(Equal(Eval('state'), 'draft')),
+            'readonly': Eval('state') != 'draft',
             },
         domain=[
-            ('id', If(In('company', Eval('context', {})), '=', '!='),
+            ('id', If(Eval('context', {}).contains('company'), '=', '!='),
                 Eval('context', {}).get('company', -1)),
             ],
         depends=['state'])
     code = fields.Char("Code", size=None, select=True, readonly=True)
     reference = fields.Char("Reference", size=None, select=True,
         states={
-            'readonly': Not(Equal(Eval('state'), 'draft')),
+            'readonly': Eval('state') != 'draft',
             }, depends=['state'])
     from_location = fields.Many2One('stock.location', "From Location",
         required=True, states={
-            'readonly': Or(Not(Equal(Eval('state'), 'draft')),
-                Bool(Eval('moves', [0]))),
+            'readonly': (Eval('state') != 'draft') | Eval('moves', [0]),
             },
         domain=[
-            ('type', 'in', ['storage', 'lost_found']),
+            ('type', 'in', ['view', 'storage', 'lost_found']),
             ], depends=['state'])
     to_location = fields.Many2One('stock.location', "To Location",
         required=True, states={
-            'readonly': Or(Not(Equal(Eval('state'), 'draft')),
-                Bool(Eval('moves', [0]))),
+            'readonly': (Eval('state') != 'draft') | Eval('moves', [0]),
             }, domain=[
-            ('type', 'in', ['storage', 'lost_found']),
+            ('type', 'in', ['view', 'storage', 'lost_found']),
             ], depends=['state'])
     moves = fields.One2Many('stock.move', 'shipment', 'Moves',
         states={
-            'readonly': ((Eval('state') != 'draft')
+            'readonly': (Eval('state').in_(['cancel', 'assigned', 'done'])
                 | ~Eval('from_location') | ~Eval('to_location')),
             },
         domain=[
-            ('from_location', 'child_of', [Eval('from_location', -1)],
-                'parent'),
-            ('to_location', '=', Eval('to_location')),
+            If(Eval('state') == 'draft', [
+                    ('from_location', '=', Eval('from_location')),
+                    ('to_location', '=', Eval('to_location')),
+                    ], [
+                    ('from_location', 'child_of', [Eval('from_location', -1)],
+                        'parent'),
+                    ('to_location', 'child_of', [Eval('to_location', -1)],
+                        'parent'),
+                    ]),
             ('company', '=', Eval('company')),
             ],
         depends=['state', 'from_location', 'to_location', 'planned_date',
@@ -1938,15 +1945,9 @@ class ShipmentInternal(Workflow, ModelSQL, ModelView):
     @Workflow.transition('draft')
     def draft(cls, shipments):
         Move = Pool().get('stock.move')
-        Move.draft([m for s in shipments for m in s.moves])
-
-    @classmethod
-    @ModelView.button
-    @Workflow.transition('waiting')
-    def wait(cls, shipments):
-        Move = Pool().get('stock.move')
         # First reset state to draft to allow update from and to location
-        Move.draft([m for s in shipments for m in s.moves])
+        Move.draft([m for s in shipments for m in s.moves
+                if m.state != 'staging'])
         for shipment in shipments:
             Move.write([m for m in shipment.moves
                     if m.state != 'done'], {
@@ -1956,6 +1957,20 @@ class ShipmentInternal(Workflow, ModelSQL, ModelView):
                     })
 
     @classmethod
+    @ModelView.button
+    @Workflow.transition('waiting')
+    def wait(cls, shipments):
+        Move = Pool().get('stock.move')
+        Move.draft([m for s in shipments for m in s.moves])
+        moves = []
+        for shipment in shipments:
+            for move in shipment.moves:
+                if move.state != 'done':
+                    move.planned_date = shipment.planned_date
+                    moves.append(move)
+        Move.save(moves)
+
+    @classmethod
     @Workflow.transition('assigned')
     def assign(cls, shipments):
         pass
diff --git a/shipment.xml b/shipment.xml
index 076cbe2..f67938d 100644
--- a/shipment.xml
+++ b/shipment.xml
@@ -325,7 +325,6 @@ this repository contains the full copyright notices and license terms. -->
             <field name="model">stock.shipment.out</field>
             <field name="report_name">stock.shipment.out.delivery_note</field>
             <field name="report">stock/delivery_note.odt</field>
-            <field name="style">company/header_A4.odt</field>
         </record>
         <record model="ir.action.keyword"
          id="report_shipment_out_delivery_note_keyword">
@@ -339,7 +338,6 @@ this repository contains the full copyright notices and license terms. -->
             <field name="model">stock.shipment.out</field>
             <field name="report_name">stock.shipment.out.picking_list</field>
             <field name="report">stock/picking_list.odt</field>
-            <field name="style">company/header_A4.odt</field>
         </record>
         <record model="ir.action.keyword"
          id="report_shipment_out_picking_list_keyword">
@@ -353,7 +351,6 @@ this repository contains the full copyright notices and license terms. -->
             <field name="model">stock.shipment.in</field>
             <field name="report_name">stock.shipment.in.restocking_list</field>
             <field name="report">stock/supplier_restocking_list.odt</field>
-            <field name="style">company/header_A4.odt</field>
         </record>
         <record model="ir.action.keyword"
          id="report_shipment_in_restocking_list_keyword">
@@ -367,7 +364,6 @@ this repository contains the full copyright notices and license terms. -->
             <field name="model">stock.shipment.out.return</field>
             <field name="report_name">stock.shipment.out.return.restocking_list</field>
             <field name="report">stock/customer_return_restocking_list.odt</field>
-            <field name="style">company/header_A4.odt</field>
         </record>
         <record model="ir.action.keyword"
          id="report_shipment_out_return_restocking_list_keyword">
@@ -381,7 +377,6 @@ this repository contains the full copyright notices and license terms. -->
             <field name="model">stock.shipment.internal</field>
             <field name="report_name">stock.shipment.internal.report</field>
             <field name="report">stock/internal_shipment.odt</field>
-            <field name="style">company/header_A4.odt</field>
         </record>
         <record model="ir.action.keyword"
          id="report_shipment_internal_keyword">
diff --git a/supplier_restocking_list.odt b/supplier_restocking_list.odt
index 4f7ac44..c672dde 100644
Binary files a/supplier_restocking_list.odt and b/supplier_restocking_list.odt differ
diff --git a/tests/scenario_stock_average_cost_price.rst b/tests/scenario_stock_average_cost_price.rst
index a87b516..7a19b2b 100644
--- a/tests/scenario_stock_average_cost_price.rst
+++ b/tests/scenario_stock_average_cost_price.rst
@@ -19,10 +19,10 @@ Create database::
 
 Install stock Module::
 
-    >>> Module = Model.get('ir.module.module')
+    >>> Module = Model.get('ir.module')
     >>> module, = Module.find([('name', '=', 'stock')])
     >>> module.click('install')
-    >>> Wizard('ir.module.module.install_upgrade').execute('upgrade')
+    >>> Wizard('ir.module.install_upgrade').execute('upgrade')
 
 Create company::
 
@@ -51,12 +51,24 @@ Create product::
     >>> template.save()
     >>> product.template = template
     >>> product.save()
+    >>> negative_product = Product()
+    >>> template = ProductTemplate()
+    >>> template.name = 'Negative Product'
+    >>> template.default_uom = unit
+    >>> template.type = 'goods'
+    >>> template.list_price = Decimal('28')
+    >>> template.cost_price = Decimal('5')
+    >>> template.cost_price_method = 'average'
+    >>> template.save()
+    >>> negative_product.template = template
+    >>> negative_product.save()
 
 Get stock locations::
 
     >>> Location = Model.get('stock.location')
     >>> supplier_loc, = Location.find([('code', '=', 'SUP')])
     >>> storage_loc, = Location.find([('code', '=', 'STO')])
+    >>> customer_loc, = Location.find([('code', '=', 'CUS')])
 
 Make 1 unit of the product available @ 100 ::
 
@@ -134,8 +146,48 @@ Add twice 1 more unit @ 200::
 
     >>> StockMove.click(incoming_moves, 'do')
 
-Check Cost Price Average is 125::
+Check Cost Price Average is 175::
 
     >>> product.reload()
     >>> product.template.cost_price
     Decimal('175.0000')
+
+Recompute Cost Price::
+
+    >>> recompute = Wizard('product.recompute_cost_price', [product])
+    >>> product.template.cost_price
+    Decimal('175.0000')
+
+Send one product we dont have in stock::
+
+    >>> outgoing_move = StockMove()
+    >>> outgoing_move.product = negative_product
+    >>> outgoing_move.uom = unit
+    >>> outgoing_move.quantity = 1
+    >>> outgoing_move.from_location = storage_loc
+    >>> outgoing_move.to_location = customer_loc
+    >>> outgoing_move.planned_date = today
+    >>> outgoing_move.effective_date = today
+    >>> outgoing_move.company = company
+    >>> outgoing_move.currency = company.currency
+    >>> outgoing_move.click('do')
+
+Recieve two units of the product with negative stock::
+
+    >>> incoming_move = StockMove()
+    >>> incoming_move.product = negative_product
+    >>> incoming_move.uom = unit
+    >>> incoming_move.quantity = 2
+    >>> incoming_move.from_location = supplier_loc
+    >>> incoming_move.to_location = storage_loc
+    >>> incoming_move.planned_date = today
+    >>> incoming_move.effective_date = today
+    >>> incoming_move.company = company
+    >>> incoming_move.unit_price = Decimal('2')
+    >>> incoming_move.currency = company.currency
+    >>> incoming_move.click('do')
+
+Cost price should be set to 2::
+
+    >>> negative_product.template.cost_price
+    Decimal('2.0000')
diff --git a/tests/scenario_stock_inventory.rst b/tests/scenario_stock_inventory.rst
index f64211a..d3d6ec2 100644
--- a/tests/scenario_stock_inventory.rst
+++ b/tests/scenario_stock_inventory.rst
@@ -19,10 +19,10 @@ Create database::
 
 Install stock Module::
 
-    >>> Module = Model.get('ir.module.module')
+    >>> Module = Model.get('ir.module')
     >>> stock_module, = Module.find([('name', '=', 'stock')])
     >>> stock_module.click('install')
-    >>> Wizard('ir.module.module.install_upgrade').execute('upgrade')
+    >>> Wizard('ir.module.install_upgrade').execute('upgrade')
 
 Create company::
 
@@ -41,13 +41,11 @@ Get stock locations::
     >>> storage_loc, = Location.find([('code', '=', 'STO')])
     >>> customer_loc, = Location.find([('code', '=', 'CUS')])
 
-Create product::
+Create products::
 
     >>> ProductUom = Model.get('product.uom')
     >>> ProductTemplate = Model.get('product.template')
-    >>> Product = Model.get('product.product')
     >>> unit, = ProductUom.find([('name', '=', 'Unit')])
-    >>> product = Product()
     >>> template = ProductTemplate()
     >>> template.name = 'Product'
     >>> template.default_uom = unit
@@ -56,8 +54,18 @@ Create product::
     >>> template.cost_price = Decimal('80')
     >>> template.cost_price_method = 'average'
     >>> template.save()
-    >>> product.template = template
-    >>> product.save()
+    >>> product, = template.products
+
+    >>> kg, = ProductUom.find([('name', '=', 'Kilogram')])
+    >>> template2 = ProductTemplate()
+    >>> template2.name = 'Product'
+    >>> template2.default_uom = kg
+    >>> template2.type = 'goods'
+    >>> template2.list_price = Decimal('140')
+    >>> template2.cost_price = Decimal('60')
+    >>> template2.cost_price_method = 'average'
+    >>> template2.save()
+    >>> product2, = template2.products
 
 Fill storage::
 
@@ -73,7 +81,21 @@ Fill storage::
     >>> incoming_move.company = company
     >>> incoming_move.unit_price = Decimal('100')
     >>> incoming_move.currency = company.currency
-    >>> incoming_move.click('do')
+    >>> incoming_moves = [incoming_move]
+
+    >>> incoming_move = StockMove()
+    >>> incoming_move.product = product2
+    >>> incoming_move.uom = kg
+    >>> incoming_move.quantity = 2.5
+    >>> incoming_move.from_location = supplier_loc
+    >>> incoming_move.to_location = storage_loc
+    >>> incoming_move.planned_date = today
+    >>> incoming_move.effective_date = today
+    >>> incoming_move.company = company
+    >>> incoming_move.unit_price = Decimal('70')
+    >>> incoming_move.currency = company.currency
+    >>> incoming_moves.append(incoming_move)
+    >>> StockMove.click(incoming_moves, 'do')
 
 Create an inventory::
 
@@ -82,28 +104,82 @@ Create an inventory::
     >>> inventory.location = storage_loc
     >>> inventory.save()
     >>> inventory.click('complete_lines')
-    >>> line, = inventory.lines
-    >>> line.expected_quantity == 1
-    True
-    >>> line.quantity = 2
+    >>> line_by_product = {l.product.id: l for l in inventory.lines}
+    >>> line_p1 = line_by_product[product.id]
+    >>> line_p1.expected_quantity
+    1.0
+    >>> line_p1.quantity = 3
+    >>> line_p2 = line_by_product[product2.id]
+    >>> line_p2.expected_quantity
+    2.5
+    >>> line_p2.quantity
+    2.5
     >>> inventory.save()
+
+Fill storage with more quantities::
+
+    >>> incoming_move = StockMove()
+    >>> incoming_move.product = product
+    >>> incoming_move.uom = unit
+    >>> incoming_move.quantity = 1
+    >>> incoming_move.from_location = supplier_loc
+    >>> incoming_move.to_location = storage_loc
+    >>> incoming_move.planned_date = today
+    >>> incoming_move.effective_date = today
+    >>> incoming_move.company = company
+    >>> incoming_move.unit_price = Decimal('100')
+    >>> incoming_move.currency = company.currency
+    >>> incoming_moves = [incoming_move]
+
+    >>> incoming_move = StockMove()
+    >>> incoming_move.product = product2
+    >>> incoming_move.uom = kg
+    >>> incoming_move.quantity = 1.3
+    >>> incoming_move.from_location = supplier_loc
+    >>> incoming_move.to_location = storage_loc
+    >>> incoming_move.planned_date = today
+    >>> incoming_move.effective_date = today
+    >>> incoming_move.company = company
+    >>> incoming_move.unit_price = Decimal('70')
+    >>> incoming_move.currency = company.currency
+    >>> incoming_moves.append(incoming_move)
+    >>> StockMove.click(incoming_moves, 'do')
+
+Update the inventory::
+
+    >>> inventory.click('complete_lines')
+    >>> line_p1.reload()
+    >>> line_p1.expected_quantity
+    2.0
+    >>> line_p1.quantity
+    3.0
+    >>> line_p2.reload()
+    >>> line_p2.expected_quantity
+    3.8
+    >>> line_p2.quantity
+    3.8
+
+Confirm the inventory::
+
     >>> inventory.click('confirm')
-    >>> line.reload()
-    >>> move, = line.moves
-    >>> move.quantity == 1
-    True
+    >>> line_p1.reload()
+    >>> move, = line_p1.moves
+    >>> move.quantity
+    1.0
     >>> move.from_location == inventory.lost_found
     True
     >>> move.to_location == inventory.location
     True
+    >>> line_p2.reload()
+    >>> len(line_p2.moves)
+    0
 
 Empty storage::
 
-    >>> StockMove = Model.get('stock.move')
     >>> outgoing_move = StockMove()
     >>> outgoing_move.product = product
     >>> outgoing_move.uom = unit
-    >>> outgoing_move.quantity = 2
+    >>> outgoing_move.quantity = 3
     >>> outgoing_move.from_location = storage_loc
     >>> outgoing_move.to_location = customer_loc
     >>> outgoing_move.planned_date = today
@@ -111,7 +187,21 @@ Empty storage::
     >>> outgoing_move.company = company
     >>> outgoing_move.unit_price = Decimal('100')
     >>> outgoing_move.currency = company.currency
-    >>> outgoing_move.click('do')
+    >>> outgoing_moves = [outgoing_move]
+
+    >>> outgoing_move = StockMove()
+    >>> outgoing_move.product = product2
+    >>> outgoing_move.uom = kg
+    >>> outgoing_move.quantity = 3.8
+    >>> outgoing_move.from_location = storage_loc
+    >>> outgoing_move.to_location = customer_loc
+    >>> outgoing_move.planned_date = today
+    >>> outgoing_move.effective_date = today
+    >>> outgoing_move.company = company
+    >>> outgoing_move.unit_price = Decimal('140')
+    >>> outgoing_move.currency = company.currency
+    >>> outgoing_moves.append(outgoing_move)
+    >>> StockMove.click(outgoing_moves, 'do')
 
 Create an inventory that should be empty after completion::
 
diff --git a/tests/scenario_stock_reporting.rst b/tests/scenario_stock_reporting.rst
index 9c980e1..ec4b37c 100644
--- a/tests/scenario_stock_reporting.rst
+++ b/tests/scenario_stock_reporting.rst
@@ -20,10 +20,10 @@ Create database::
 
 Install stock Module::
 
-    >>> Module = Model.get('ir.module.module')
+    >>> Module = Model.get('ir.module')
     >>> module, = Module.find([('name', '=', 'stock')])
     >>> module.click('install')
-    >>> Wizard('ir.module.module.install_upgrade').execute('upgrade')
+    >>> Wizard('ir.module.install_upgrade').execute('upgrade')
 
 Create company::
 
diff --git a/tests/scenario_stock_shipment_internal.rst b/tests/scenario_stock_shipment_internal.rst
index 2bae38a..e8a6ff7 100644
--- a/tests/scenario_stock_shipment_internal.rst
+++ b/tests/scenario_stock_shipment_internal.rst
@@ -20,10 +20,10 @@ Create database::
 
 Install stock Module::
 
-    >>> Module = Model.get('ir.module.module')
+    >>> Module = Model.get('ir.module')
     >>> module, = Module.find([('name', '=', 'stock')])
     >>> module.click('install')
-    >>> Wizard('ir.module.module.install_upgrade').execute('upgrade')
+    >>> Wizard('ir.module.install_upgrade').execute('upgrade')
 
 Create company::
 
diff --git a/tests/scenario_stock_shipment_out.rst b/tests/scenario_stock_shipment_out.rst
index 9554c37..92542d9 100644
--- a/tests/scenario_stock_shipment_out.rst
+++ b/tests/scenario_stock_shipment_out.rst
@@ -20,10 +20,10 @@ Create database::
 
 Install stock Module::
 
-    >>> Module = Model.get('ir.module.module')
+    >>> Module = Model.get('ir.module')
     >>> module, = Module.find([('name', '=', 'stock')])
     >>> module.click('install')
-    >>> Wizard('ir.module.module.install_upgrade').execute('upgrade')
+    >>> Wizard('ir.module.install_upgrade').execute('upgrade')
 
 Create company::
 
diff --git a/tryton.cfg b/tryton.cfg
index 9df5be0..fb33ff2 100644
--- a/tryton.cfg
+++ b/tryton.cfg
@@ -1,5 +1,5 @@
 [tryton]
-version=3.6.0
+version=3.8.0
 depends:
     company
     currency
diff --git a/trytond_stock.egg-info/PKG-INFO b/trytond_stock.egg-info/PKG-INFO
index 34f1843..ee334ea 100644
--- a/trytond_stock.egg-info/PKG-INFO
+++ b/trytond_stock.egg-info/PKG-INFO
@@ -1,12 +1,12 @@
 Metadata-Version: 1.1
 Name: trytond-stock
-Version: 3.6.0
+Version: 3.8.0
 Summary: Tryton module for stock and inventory
 Home-page: http://www.tryton.org/
 Author: Tryton
 Author-email: issue_tracker at tryton.org
 License: GPL-3
-Download-URL: http://downloads.tryton.org/3.6/
+Download-URL: http://downloads.tryton.org/3.8/
 Description: trytond_stock
         =============
         
@@ -60,6 +60,9 @@ Classifier: Natural Language :: Dutch
 Classifier: Natural Language :: English
 Classifier: Natural Language :: French
 Classifier: Natural Language :: German
+Classifier: Natural Language :: Hungarian
+Classifier: Natural Language :: Italian
+Classifier: Natural Language :: Portuguese (Brazilian)
 Classifier: Natural Language :: Russian
 Classifier: Natural Language :: Slovenian
 Classifier: Natural Language :: Spanish
diff --git a/trytond_stock.egg-info/SOURCES.txt b/trytond_stock.egg-info/SOURCES.txt
index 00d2623..9b033ee 100644
--- a/trytond_stock.egg-info/SOURCES.txt
+++ b/trytond_stock.egg-info/SOURCES.txt
@@ -52,8 +52,14 @@ tryton.cfg
 ./locale/es_CO.po
 ./locale/es_EC.po
 ./locale/es_ES.po
+./locale/es_MX.po
 ./locale/fr_FR.po
+./locale/hu_HU.po
+./locale/it_IT.po
+./locale/ja_JP.po
+./locale/lt_LT.po
 ./locale/nl_NL.po
+./locale/pt_BR.po
 ./locale/ru_RU.po
 ./locale/sl_SI.po
 ./tests/__init__.py
@@ -111,8 +117,14 @@ 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/hu_HU.po
+locale/it_IT.po
+locale/ja_JP.po
+locale/lt_LT.po
 locale/nl_NL.po
+locale/pt_BR.po
 locale/ru_RU.po
 locale/sl_SI.po
 tests/scenario_stock_average_cost_price.rst
diff --git a/trytond_stock.egg-info/requires.txt b/trytond_stock.egg-info/requires.txt
index 7b48706..f2e4f30 100644
--- a/trytond_stock.egg-info/requires.txt
+++ b/trytond_stock.egg-info/requires.txt
@@ -1,6 +1,6 @@
 python-sql >= 0.4
-trytond_company >= 3.6, < 3.7
-trytond_currency >= 3.6, < 3.7
-trytond_party >= 3.6, < 3.7
-trytond_product >= 3.6, < 3.7
-trytond >= 3.6, < 3.7
\ No newline at end of file
+trytond_company >= 3.8, < 3.9
+trytond_currency >= 3.8, < 3.9
+trytond_party >= 3.8, < 3.9
+trytond_product >= 3.8, < 3.9
+trytond >= 3.8, < 3.9
\ No newline at end of file
diff --git a/view/location_form.xml b/view/location_form.xml
index 04b5dbf..1e91c0e 100644
--- a/view/location_form.xml
+++ b/view/location_form.xml
@@ -24,4 +24,6 @@ this repository contains the full copyright notices and license terms. -->
     <newline/>
     <label name="storage_location"/>
     <field name="storage_location"/>
+    <label name="picking_location"/>
+    <field name="picking_location"/>
 </form>
diff --git a/view/move_form.xml b/view/move_form.xml
index fe311d8..4b95808 100644
--- a/view/move_form.xml
+++ b/view/move_form.xml
@@ -27,6 +27,10 @@ this repository contains the full copyright notices and license terms. -->
     <separator colspan="4" id="separator"/>
     <label name="state"/>
     <field name="state"/>
+    <group col="20" colspan="2" id="buttons">
+        <button name="cancel" string="Cancel" icon="tryton-cancel"/>
+        <button name="draft" string="Reset to Draft" icon="tryton-clear"/>
+    </group>
     <field name="unit_price_required" invisible="1" colspan="4"/>
     <field name="unit_digits" invisible="1" colspan="4"/>
 </form>
diff --git a/view/move_tree.xml b/view/move_tree.xml
index 7211c03..d0c06a8 100644
--- a/view/move_tree.xml
+++ b/view/move_tree.xml
@@ -2,6 +2,7 @@
 <!-- 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="Moves">
+    <field name="shipment"/>
     <field name="product"/>
     <field name="from_location"/>
     <field name="to_location"/>
@@ -10,5 +11,7 @@ this repository contains the full copyright notices and license terms. -->
     <field name="planned_date"/>
     <field name="effective_date"/>
     <field name="state"/>
+    <button name="cancel" string="Cancel"/>
+    <button name="draft" string="Reset to Draft"/>
     <field name="unit_digits" tree_invisible="1"/>
 </tree>
diff --git a/view/party_form.xml b/view/party_form.xml
index 4ab8eed..37df3bf 100644
--- a/view/party_form.xml
+++ b/view/party_form.xml
@@ -2,7 +2,7 @@
 <!-- This file is part of Tryton.  The COPYRIGHT file at the top level of
 this repository contains the full copyright notices and license terms. -->
 <data>
-    <xpath expr="/form/notebook/page[@id='accounting']" position="after">
+    <xpath expr="/form/notebook" position="inside">
         <page string="Stock" id="stock">
             <label name="customer_location"/>
             <field name="customer_location"/>
-- 
tryton-modules-stock



More information about the tryton-debian-vcs mailing list