[tryton-debian-vcs] tryton-modules-purchase branch upstream updated. upstream/3.8.1-2-g920a5a8

Mathias Behrle tryton-debian-vcs at alioth.debian.org
Thu Jun 2 16:24:06 UTC 2016


The following commit has been merged in the upstream branch:
https://alioth.debian.org/plugins/scmgit/cgi-bin/gitweb.cgi/?p=tryton/tryton-modules-purchase.git;a=commitdiff;h=upstream/3.8.1-2-g920a5a8

commit 920a5a887f455ca5eb2652d97b1bdf8f5cced4a5
Author: Mathias Behrle <mathiasb at m9s.biz>
Date:   Fri May 27 18:35:27 2016 +0200

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

diff --git a/CHANGELOG b/CHANGELOG
index 219ec92..0ea7407 100644
--- a/CHANGELOG
+++ b/CHANGELOG
@@ -1,3 +1,6 @@
+Version 4.0.1 - 2016-05-11
+* Bug fixes (see mercurial logs for details)
+
 Version 4.0.0 - 2016-05-02
 * Bug fixes (see mercurial logs for details)
 * Rename Purchase reference into number and supplier reference into reference
diff --git a/PKG-INFO b/PKG-INFO
index a6fa0a6..c35bcc3 100644
--- a/PKG-INFO
+++ b/PKG-INFO
@@ -1,6 +1,6 @@
 Metadata-Version: 1.1
 Name: trytond_purchase
-Version: 4.0.0
+Version: 4.0.1
 Summary: Tryton module for purchase
 Home-page: http://www.tryton.org/
 Author: Tryton
diff --git a/locale/ca_ES.po b/locale/ca_ES.po
index 9455518..90c46b4 100644
--- a/locale/ca_ES.po
+++ b/locale/ca_ES.po
@@ -61,17 +61,14 @@ msgctxt "field:account.invoice,purchases:"
 msgid "Purchases"
 msgstr "Compres"
 
-#, fuzzy
 msgctxt "field:product.product,product_suppliers:"
 msgid "Suppliers"
 msgstr "Proveïdors"
 
-#, fuzzy
 msgctxt "field:product.product,purchasable:"
 msgid "Purchasable"
 msgstr "Comprable"
 
-#, fuzzy
 msgctxt "field:product.product,purchase_uom:"
 msgid "Purchase UOM"
 msgstr "UdM de compra"
@@ -106,7 +103,7 @@ msgstr "Mètode de facturació"
 
 msgctxt "field:purchase.configuration,purchase_sequence:"
 msgid "Purchase Sequence"
-msgstr ""
+msgstr "Seqüència de compra"
 
 msgctxt "field:purchase.configuration,rec_name:"
 msgid "Name"
@@ -378,7 +375,7 @@ msgstr "ID"
 
 msgctxt "field:purchase.product_supplier,lead_time:"
 msgid "Lead Time"
-msgstr ""
+msgstr "Temps d'espera"
 
 msgctxt "field:purchase.product_supplier,name:"
 msgid "Name"
@@ -518,7 +515,7 @@ msgstr "Moviments"
 
 msgctxt "field:purchase.purchase,number:"
 msgid "Number"
-msgstr ""
+msgstr "Número"
 
 msgctxt "field:purchase.purchase,party:"
 msgid "Party"
@@ -662,7 +659,7 @@ msgstr "Usuari modificació"
 
 msgctxt "field:stock.location,supplier_return_location:"
 msgid "Supplier Return"
-msgstr ""
+msgstr "Devolució proveïdor"
 
 msgctxt "field:stock.move,purchase:"
 msgid "Purchase"
@@ -715,7 +712,7 @@ msgstr "Quantitat mínima."
 
 msgctxt "help:stock.location,supplier_return_location:"
 msgid "If empty the Storage location is used"
-msgstr ""
+msgstr "Si es deixa buit s'utilitzarà la ubicació d'emmagatzematge."
 
 msgctxt "model:ir.action,name:act_invoice_form"
 msgid "Invoices"
@@ -913,10 +910,9 @@ msgctxt "report:purchase.purchase:"
 msgid "Quantity"
 msgstr "Quantitat"
 
-#, fuzzy
 msgctxt "report:purchase.purchase:"
 msgid "Reference:"
-msgstr "Referència"
+msgstr "Referència:"
 
 msgctxt "report:purchase.purchase:"
 msgid "Request for Quotation N°:"
diff --git a/locale/de_DE.po b/locale/de_DE.po
index 6d31aad..6276875 100644
--- a/locale/de_DE.po
+++ b/locale/de_DE.po
@@ -65,17 +65,14 @@ msgctxt "field:account.invoice,purchases:"
 msgid "Purchases"
 msgstr "Einkäufe"
 
-#, fuzzy
 msgctxt "field:product.product,product_suppliers:"
 msgid "Suppliers"
 msgstr "Lieferanten"
 
-#, fuzzy
 msgctxt "field:product.product,purchasable:"
 msgid "Purchasable"
 msgstr "Käuflich"
 
-#, fuzzy
 msgctxt "field:product.product,purchase_uom:"
 msgid "Purchase UOM"
 msgstr "Maßeinheit Einkauf"
@@ -110,7 +107,7 @@ msgstr "Rechnungsstellung Einkauf"
 
 msgctxt "field:purchase.configuration,purchase_sequence:"
 msgid "Purchase Sequence"
-msgstr ""
+msgstr "Nummernkreis Einkauf"
 
 msgctxt "field:purchase.configuration,rec_name:"
 msgid "Name"
@@ -358,7 +355,7 @@ msgstr "Letzte Änderung durch"
 
 msgctxt "field:purchase.product_supplier,code:"
 msgid "Code"
-msgstr "Variantennummer Lieferant"
+msgstr "Code Lieferant"
 
 msgctxt "field:purchase.product_supplier,company:"
 msgid "Company"
@@ -382,7 +379,7 @@ msgstr "ID"
 
 msgctxt "field:purchase.product_supplier,lead_time:"
 msgid "Lead Time"
-msgstr ""
+msgstr "Beschaffungszeit"
 
 msgctxt "field:purchase.product_supplier,name:"
 msgid "Name"
@@ -522,7 +519,7 @@ msgstr "Bewegungen"
 
 msgctxt "field:purchase.purchase,number:"
 msgid "Number"
-msgstr ""
+msgstr "Nummer"
 
 msgctxt "field:purchase.purchase,party:"
 msgid "Party"
@@ -666,7 +663,7 @@ msgstr "Letzte Änderung durch"
 
 msgctxt "field:stock.location,supplier_return_location:"
 msgid "Supplier Return"
-msgstr ""
+msgstr "Rückgabe Lieferant"
 
 msgctxt "field:stock.move,purchase:"
 msgid "Purchase"
@@ -723,7 +720,7 @@ msgstr "Minimale Anzahl"
 
 msgctxt "help:stock.location,supplier_return_location:"
 msgid "If empty the Storage location is used"
-msgstr ""
+msgstr "Wenn kein Wert eingetragen ist, wird die Lagerzone verwendet."
 
 msgctxt "model:ir.action,name:act_invoice_form"
 msgid "Invoices"
@@ -921,10 +918,9 @@ msgctxt "report:purchase.purchase:"
 msgid "Quantity"
 msgstr "Anzahl"
 
-#, fuzzy
 msgctxt "report:purchase.purchase:"
 msgid "Reference:"
-msgstr "Beleg-Nr."
+msgstr "Beleg-Nr.:"
 
 msgctxt "report:purchase.purchase:"
 msgid "Request for Quotation N°:"
@@ -956,7 +952,7 @@ msgstr "USt-ID-Nr:"
 
 msgctxt "selection:account.invoice,purchase_exception_state:"
 msgid ""
-msgstr ""
+msgstr " "
 
 msgctxt "selection:account.invoice,purchase_exception_state:"
 msgid "Ignored"
@@ -1064,7 +1060,7 @@ msgstr "Angebot"
 
 msgctxt "selection:stock.move,purchase_exception_state:"
 msgid ""
-msgstr ""
+msgstr " "
 
 msgctxt "selection:stock.move,purchase_exception_state:"
 msgid "Ignored"
diff --git a/locale/es_AR.po b/locale/es_AR.po
index ef2defb..9730d13 100644
--- a/locale/es_AR.po
+++ b/locale/es_AR.po
@@ -61,17 +61,14 @@ msgctxt "field:account.invoice,purchases:"
 msgid "Purchases"
 msgstr "Compras"
 
-#, fuzzy
 msgctxt "field:product.product,product_suppliers:"
 msgid "Suppliers"
 msgstr "Proveedores"
 
-#, fuzzy
 msgctxt "field:product.product,purchasable:"
 msgid "Purchasable"
 msgstr "Comprable"
 
-#, fuzzy
 msgctxt "field:product.product,purchase_uom:"
 msgid "Purchase UOM"
 msgstr "UdM de compra"
@@ -106,7 +103,7 @@ msgstr "Método de facturación"
 
 msgctxt "field:purchase.configuration,purchase_sequence:"
 msgid "Purchase Sequence"
-msgstr ""
+msgstr "Secuencia de compra"
 
 msgctxt "field:purchase.configuration,rec_name:"
 msgid "Name"
@@ -378,7 +375,7 @@ msgstr "ID"
 
 msgctxt "field:purchase.product_supplier,lead_time:"
 msgid "Lead Time"
-msgstr ""
+msgstr "Tiempo de espera"
 
 msgctxt "field:purchase.product_supplier,name:"
 msgid "Name"
@@ -518,7 +515,7 @@ msgstr "Movimientos"
 
 msgctxt "field:purchase.purchase,number:"
 msgid "Number"
-msgstr ""
+msgstr "Número"
 
 msgctxt "field:purchase.purchase,party:"
 msgid "Party"
@@ -662,7 +659,7 @@ msgstr "Usuario modificación"
 
 msgctxt "field:stock.location,supplier_return_location:"
 msgid "Supplier Return"
-msgstr ""
+msgstr "Devolución a proveedor"
 
 msgctxt "field:stock.move,purchase:"
 msgid "Purchase"
@@ -717,7 +714,7 @@ msgstr "Cantidad mínima"
 
 msgctxt "help:stock.location,supplier_return_location:"
 msgid "If empty the Storage location is used"
-msgstr ""
+msgstr "Si está vacío se utiliza la ubicación de Depósito"
 
 msgctxt "model:ir.action,name:act_invoice_form"
 msgid "Invoices"
@@ -915,10 +912,9 @@ msgctxt "report:purchase.purchase:"
 msgid "Quantity"
 msgstr "Cantidad"
 
-#, fuzzy
 msgctxt "report:purchase.purchase:"
 msgid "Reference:"
-msgstr "Referencia"
+msgstr "Referencia:"
 
 msgctxt "report:purchase.purchase:"
 msgid "Request for Quotation N°:"
diff --git a/locale/es_CO.po b/locale/es_CO.po
index cbc81a2..14952e7 100644
--- a/locale/es_CO.po
+++ b/locale/es_CO.po
@@ -61,17 +61,14 @@ msgctxt "field:account.invoice,purchases:"
 msgid "Purchases"
 msgstr "Compras"
 
-#, fuzzy
 msgctxt "field:product.product,product_suppliers:"
 msgid "Suppliers"
 msgstr "Proveedores"
 
-#, fuzzy
 msgctxt "field:product.product,purchasable:"
 msgid "Purchasable"
 msgstr "Comprable"
 
-#, fuzzy
 msgctxt "field:product.product,purchase_uom:"
 msgid "Purchase UOM"
 msgstr "UdM de Compra"
@@ -106,7 +103,7 @@ msgstr "Método de Facturación"
 
 msgctxt "field:purchase.configuration,purchase_sequence:"
 msgid "Purchase Sequence"
-msgstr ""
+msgstr "Secuencia de Compra"
 
 msgctxt "field:purchase.configuration,rec_name:"
 msgid "Name"
@@ -378,7 +375,7 @@ msgstr "ID"
 
 msgctxt "field:purchase.product_supplier,lead_time:"
 msgid "Lead Time"
-msgstr ""
+msgstr "Tiempo de Elaboración"
 
 msgctxt "field:purchase.product_supplier,name:"
 msgid "Name"
@@ -518,7 +515,7 @@ msgstr "Movimientos"
 
 msgctxt "field:purchase.purchase,number:"
 msgid "Number"
-msgstr ""
+msgstr "Número"
 
 msgctxt "field:purchase.purchase,party:"
 msgid "Party"
@@ -662,7 +659,7 @@ msgstr "Modificado por Usuario"
 
 msgctxt "field:stock.location,supplier_return_location:"
 msgid "Supplier Return"
-msgstr ""
+msgstr "Devolución de Proveedor"
 
 msgctxt "field:stock.move,purchase:"
 msgid "Purchase"
@@ -717,7 +714,7 @@ msgstr "Cantidad mínima"
 
 msgctxt "help:stock.location,supplier_return_location:"
 msgid "If empty the Storage location is used"
-msgstr ""
+msgstr "Si se deja vacío la Bodega de Almacenamiento será usada"
 
 msgctxt "model:ir.action,name:act_invoice_form"
 msgid "Invoices"
@@ -915,10 +912,9 @@ msgctxt "report:purchase.purchase:"
 msgid "Quantity"
 msgstr "Cantidad"
 
-#, fuzzy
 msgctxt "report:purchase.purchase:"
 msgid "Reference:"
-msgstr "Referencia"
+msgstr "Referencia:"
 
 msgctxt "report:purchase.purchase:"
 msgid "Request for Quotation N°:"
@@ -1058,7 +1054,7 @@ msgstr "Cotización"
 
 msgctxt "selection:stock.move,purchase_exception_state:"
 msgid ""
-msgstr ""
+msgstr " "
 
 msgctxt "selection:stock.move,purchase_exception_state:"
 msgid "Ignored"
diff --git a/locale/es_EC.po b/locale/es_EC.po
index 531876c..75011d8 100644
--- a/locale/es_EC.po
+++ b/locale/es_EC.po
@@ -62,17 +62,14 @@ msgctxt "field:account.invoice,purchases:"
 msgid "Purchases"
 msgstr "Compras"
 
-#, fuzzy
 msgctxt "field:product.product,product_suppliers:"
 msgid "Suppliers"
 msgstr "Proveedores"
 
-#, fuzzy
 msgctxt "field:product.product,purchasable:"
 msgid "Purchasable"
 msgstr "Comprable"
 
-#, fuzzy
 msgctxt "field:product.product,purchase_uom:"
 msgid "Purchase UOM"
 msgstr "UdM de compra"
@@ -107,7 +104,7 @@ msgstr "Método de facturación"
 
 msgctxt "field:purchase.configuration,purchase_sequence:"
 msgid "Purchase Sequence"
-msgstr ""
+msgstr "Secuencia de compra"
 
 msgctxt "field:purchase.configuration,rec_name:"
 msgid "Name"
@@ -379,7 +376,7 @@ msgstr "ID"
 
 msgctxt "field:purchase.product_supplier,lead_time:"
 msgid "Lead Time"
-msgstr ""
+msgstr "Tiempo de espera"
 
 msgctxt "field:purchase.product_supplier,name:"
 msgid "Name"
@@ -519,7 +516,7 @@ msgstr "Movimientos"
 
 msgctxt "field:purchase.purchase,number:"
 msgid "Number"
-msgstr ""
+msgstr "Número"
 
 msgctxt "field:purchase.purchase,party:"
 msgid "Party"
@@ -663,7 +660,7 @@ msgstr "Modificado por usuario"
 
 msgctxt "field:stock.location,supplier_return_location:"
 msgid "Supplier Return"
-msgstr ""
+msgstr "Devolución a proveedor"
 
 msgctxt "field:stock.move,purchase:"
 msgid "Purchase"
@@ -718,7 +715,7 @@ msgstr "Cantidad mínima"
 
 msgctxt "help:stock.location,supplier_return_location:"
 msgid "If empty the Storage location is used"
-msgstr ""
+msgstr "Si se deja vacío, se utilizará la ubicación de almacenamiento"
 
 msgctxt "model:ir.action,name:act_invoice_form"
 msgid "Invoices"
@@ -916,10 +913,9 @@ msgctxt "report:purchase.purchase:"
 msgid "Quantity"
 msgstr "Cantidad"
 
-#, fuzzy
 msgctxt "report:purchase.purchase:"
 msgid "Reference:"
-msgstr "Referencia"
+msgstr "Referencia:"
 
 msgctxt "report:purchase.purchase:"
 msgid "Request for Quotation N°:"
diff --git a/locale/es_ES.po b/locale/es_ES.po
index 4d8642d..074bc78 100644
--- a/locale/es_ES.po
+++ b/locale/es_ES.po
@@ -61,17 +61,14 @@ msgctxt "field:account.invoice,purchases:"
 msgid "Purchases"
 msgstr "Compras"
 
-#, fuzzy
 msgctxt "field:product.product,product_suppliers:"
 msgid "Suppliers"
 msgstr "Proveedores"
 
-#, fuzzy
 msgctxt "field:product.product,purchasable:"
 msgid "Purchasable"
 msgstr "Comprable"
 
-#, fuzzy
 msgctxt "field:product.product,purchase_uom:"
 msgid "Purchase UOM"
 msgstr "UdM de compra"
@@ -106,7 +103,7 @@ msgstr "Método de facturación"
 
 msgctxt "field:purchase.configuration,purchase_sequence:"
 msgid "Purchase Sequence"
-msgstr ""
+msgstr "Secuencia de compra"
 
 msgctxt "field:purchase.configuration,rec_name:"
 msgid "Name"
@@ -378,7 +375,7 @@ msgstr "ID"
 
 msgctxt "field:purchase.product_supplier,lead_time:"
 msgid "Lead Time"
-msgstr ""
+msgstr "Tiempo de espera"
 
 msgctxt "field:purchase.product_supplier,name:"
 msgid "Name"
@@ -518,7 +515,7 @@ msgstr "Movimientos"
 
 msgctxt "field:purchase.purchase,number:"
 msgid "Number"
-msgstr ""
+msgstr "Número"
 
 msgctxt "field:purchase.purchase,party:"
 msgid "Party"
@@ -662,7 +659,7 @@ msgstr "Usuario modificación"
 
 msgctxt "field:stock.location,supplier_return_location:"
 msgid "Supplier Return"
-msgstr ""
+msgstr "Devolución proveedor"
 
 msgctxt "field:stock.move,purchase:"
 msgid "Purchase"
@@ -717,7 +714,7 @@ msgstr "Cantidad mínima."
 
 msgctxt "help:stock.location,supplier_return_location:"
 msgid "If empty the Storage location is used"
-msgstr ""
+msgstr "Si se deja vacío se usará la ubicación de almacenaje."
 
 msgctxt "model:ir.action,name:act_invoice_form"
 msgid "Invoices"
@@ -915,10 +912,9 @@ msgctxt "report:purchase.purchase:"
 msgid "Quantity"
 msgstr "Cantidad"
 
-#, fuzzy
 msgctxt "report:purchase.purchase:"
 msgid "Reference:"
-msgstr "Referencia"
+msgstr "Referencia:"
 
 msgctxt "report:purchase.purchase:"
 msgid "Request for Quotation N°:"
diff --git a/locale/fr_FR.po b/locale/fr_FR.po
index 4a65c68..1c418d0 100644
--- a/locale/fr_FR.po
+++ b/locale/fr_FR.po
@@ -61,20 +61,17 @@ msgctxt "field:account.invoice,purchases:"
 msgid "Purchases"
 msgstr "Achats"
 
-#, fuzzy
 msgctxt "field:product.product,product_suppliers:"
 msgid "Suppliers"
 msgstr "Fournisseurs"
 
-#, fuzzy
 msgctxt "field:product.product,purchasable:"
 msgid "Purchasable"
 msgstr "Achetable"
 
-#, fuzzy
 msgctxt "field:product.product,purchase_uom:"
 msgid "Purchase UOM"
-msgstr "UDM à l'achat"
+msgstr "UDM d'achat"
 
 msgctxt "field:product.template,product_suppliers:"
 msgid "Suppliers"
@@ -106,7 +103,7 @@ msgstr "Méthode de facturation"
 
 msgctxt "field:purchase.configuration,purchase_sequence:"
 msgid "Purchase Sequence"
-msgstr ""
+msgstr "Séquence d'achat"
 
 msgctxt "field:purchase.configuration,rec_name:"
 msgid "Name"
@@ -378,7 +375,7 @@ msgstr "ID"
 
 msgctxt "field:purchase.product_supplier,lead_time:"
 msgid "Lead Time"
-msgstr ""
+msgstr "Délai de livraison"
 
 msgctxt "field:purchase.product_supplier,name:"
 msgid "Name"
@@ -518,7 +515,7 @@ msgstr "Mouvements"
 
 msgctxt "field:purchase.purchase,number:"
 msgid "Number"
-msgstr ""
+msgstr "Numéro"
 
 msgctxt "field:purchase.purchase,party:"
 msgid "Party"
@@ -662,7 +659,7 @@ msgstr "Mis à jour par"
 
 msgctxt "field:stock.location,supplier_return_location:"
 msgid "Supplier Return"
-msgstr ""
+msgstr "Retour fournisseur"
 
 msgctxt "field:stock.move,purchase:"
 msgid "Purchase"
@@ -717,7 +714,7 @@ msgstr "Quantité minimale"
 
 msgctxt "help:stock.location,supplier_return_location:"
 msgid "If empty the Storage location is used"
-msgstr ""
+msgstr "Si vide l'emplacement magasin est utilisé"
 
 msgctxt "model:ir.action,name:act_invoice_form"
 msgid "Invoices"
@@ -915,10 +912,9 @@ msgctxt "report:purchase.purchase:"
 msgid "Quantity"
 msgstr "Quantité"
 
-#, fuzzy
 msgctxt "report:purchase.purchase:"
 msgid "Reference:"
-msgstr "Référence"
+msgstr "Référence :"
 
 msgctxt "report:purchase.purchase:"
 msgid "Request for Quotation N°:"
diff --git a/locale/sl_SI.po b/locale/sl_SI.po
index f605568..2edf4ce 100644
--- a/locale/sl_SI.po
+++ b/locale/sl_SI.po
@@ -5,7 +5,7 @@ msgstr "Content-Type: text/plain; charset=utf-8\n"
 msgctxt "error:account.invoice:"
 msgid "You cannot reset to draft an invoice generated by a purchase."
 msgstr ""
-"Računa, ustvarjenega iz nabavnega naloga, ni možno prestaviti v stanje "
+"Računa, izdelanega iz nabavnega naloga, ni možno prestaviti v stanje "
 "priprave."
 
 msgctxt "error:product.template:"
@@ -46,7 +46,7 @@ msgstr "Pred brisanjem je potrebno nabavni nalog \"%s\" preklicati."
 msgctxt "error:stock.shipment.in.return:"
 msgid "You cannot reset to draft a move generated by a purchase."
 msgstr ""
-"Prometa, ustvarjenega iz nabavnega naloga, ni možno prestaviti v stanje "
+"Prometa, izdelanega iz nabavnega naloga, ni možno prestaviti v stanje "
 "priprave."
 
 msgctxt "error:stock.shipment.in:"
@@ -54,8 +54,8 @@ msgid ""
 "You cannot reset to draft move \"%s\" because it was generated by a "
 "purchase."
 msgstr ""
-"Prometa \"%s\", ustvarjenega iz nabavnega naloga, ni možno prestaviti v "
-"stanje priprave."
+"Prometa \"%s\", izdelanega iz nabavnega naloga, ni možno prestaviti v stanje"
+" priprave."
 
 msgctxt "field:account.invoice,purchase_exception_state:"
 msgid "Exception State"
@@ -65,17 +65,14 @@ msgctxt "field:account.invoice,purchases:"
 msgid "Purchases"
 msgstr "Nabavni nalogi"
 
-#, fuzzy
 msgctxt "field:product.product,product_suppliers:"
 msgid "Suppliers"
 msgstr "Dobavitelji"
 
-#, fuzzy
 msgctxt "field:product.product,purchasable:"
 msgid "Purchasable"
 msgstr "Za nabavo"
 
-#, fuzzy
 msgctxt "field:product.product,purchase_uom:"
 msgid "Purchase UOM"
 msgstr "Nabavna ME"
@@ -110,7 +107,7 @@ msgstr "Način obračuna"
 
 msgctxt "field:purchase.configuration,purchase_sequence:"
 msgid "Purchase Sequence"
-msgstr ""
+msgstr "Štetje nabavnih nalogov"
 
 msgctxt "field:purchase.configuration,rec_name:"
 msgid "Name"
@@ -382,7 +379,7 @@ msgstr "ID"
 
 msgctxt "field:purchase.product_supplier,lead_time:"
 msgid "Lead Time"
-msgstr ""
+msgstr "Dobavni rok"
 
 msgctxt "field:purchase.product_supplier,name:"
 msgid "Name"
@@ -522,7 +519,7 @@ msgstr "Promet"
 
 msgctxt "field:purchase.purchase,number:"
 msgid "Number"
-msgstr ""
+msgstr "Številka"
 
 msgctxt "field:purchase.purchase,party:"
 msgid "Party"
@@ -666,7 +663,7 @@ msgstr "Zapisal"
 
 msgctxt "field:stock.location,supplier_return_location:"
 msgid "Supplier Return"
-msgstr ""
+msgstr "Vrnjen prevzem"
 
 msgctxt "field:stock.move,purchase:"
 msgid "Purchase"
@@ -719,7 +716,7 @@ msgstr "Minimalna količina"
 
 msgctxt "help:stock.location,supplier_return_location:"
 msgid "If empty the Storage location is used"
-msgstr ""
+msgstr "Če je prazno, se uporablja lokacija shrambe"
 
 msgctxt "model:ir.action,name:act_invoice_form"
 msgid "Invoices"
@@ -859,7 +856,7 @@ msgstr "Nabavna postavka - Prezrt promet"
 
 msgctxt "model:purchase.line-recreated-stock.move,name:"
 msgid "Purchase Line - Ignored Move"
-msgstr "Nabavna postavka - Poustvarjen promet"
+msgstr "Nabavna postavka - Obnovljen promet"
 
 msgctxt "model:purchase.product_supplier,name:"
 msgid "Product Supplier"
@@ -917,10 +914,9 @@ msgctxt "report:purchase.purchase:"
 msgid "Quantity"
 msgstr "Količina"
 
-#, fuzzy
 msgctxt "report:purchase.purchase:"
 msgid "Reference:"
-msgstr "Sklic"
+msgstr "Sklic:"
 
 msgctxt "report:purchase.purchase:"
 msgid "Request for Quotation N°:"
diff --git a/tryton.cfg b/tryton.cfg
index 28f2539..5f3f141 100644
--- a/tryton.cfg
+++ b/tryton.cfg
@@ -1,5 +1,5 @@
 [tryton]
-version=4.0.0
+version=4.0.1
 depends:
     account
     account_invoice
diff --git a/trytond_purchase.egg-info/PKG-INFO b/trytond_purchase.egg-info/PKG-INFO
index 2f3c8a6..02463f8 100644
--- a/trytond_purchase.egg-info/PKG-INFO
+++ b/trytond_purchase.egg-info/PKG-INFO
@@ -1,6 +1,6 @@
 Metadata-Version: 1.1
 Name: trytond-purchase
-Version: 4.0.0
+Version: 4.0.1
 Summary: Tryton module for purchase
 Home-page: http://www.tryton.org/
 Author: Tryton
diff --git a/trytond_purchase.egg-info/SOURCES.txt b/trytond_purchase.egg-info/SOURCES.txt
index dda5dc4..99faf84 100644
--- a/trytond_purchase.egg-info/SOURCES.txt
+++ b/trytond_purchase.egg-info/SOURCES.txt
@@ -38,17 +38,20 @@ tryton.cfg
 ./locale/hu_HU.po
 ./locale/it_IT.po
 ./locale/ja_JP.po
+./locale/lo_LA.po
 ./locale/lt_LT.po
 ./locale/nl_NL.po
 ./locale/pt_BR.po
 ./locale/ru_RU.po
 ./locale/sl_SI.po
+./locale/zh_CN.po
 ./tests/__init__.py
 ./tests/scenario_purchase.rst
 ./tests/test_purchase.py
 ./view/configuration_form.xml
 ./view/handle_invoice_exception_ask_form.xml
 ./view/handle_shipment_exception_ask_form.xml
+./view/location_form.xml
 ./view/move_form.xml
 ./view/move_list_shipment.xml
 ./view/product_list_purchase_line.xml
diff --git a/trytond_purchase.egg-info/requires.txt b/trytond_purchase.egg-info/requires.txt
index bdeb17b..25cd843 100644
--- a/trytond_purchase.egg-info/requires.txt
+++ b/trytond_purchase.egg-info/requires.txt
@@ -8,4 +8,4 @@ trytond_currency >= 4.0, < 4.1
 trytond_party >= 4.0, < 4.1
 trytond_product >= 4.0, < 4.1
 trytond_stock >= 4.0, < 4.1
-trytond >= 4.0, < 4.1
\ No newline at end of file
+trytond >= 4.0, < 4.1
commit 79f56f69b893a474e37765dbf43196d9caa42387
Author: Mathias Behrle <mathiasb at m9s.biz>
Date:   Fri May 27 18:26:12 2016 +0200

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

diff --git a/CHANGELOG b/CHANGELOG
index b8bb257..219ec92 100644
--- a/CHANGELOG
+++ b/CHANGELOG
@@ -1,5 +1,10 @@
-Version 3.8.1 - 2016-04-06
+Version 4.0.0 - 2016-05-02
 * Bug fixes (see mercurial logs for details)
+* Rename Purchase reference into number and supplier reference into reference
+* Add return location on warehouse
+* Add Python3 support
+* Replace Delivery Time by Lead Time on Product Template
+* New workflow do() for purchase
 
 Version 3.8.0 - 2015-11-02
 * Bug fixes (see mercurial logs for details)
diff --git a/PKG-INFO b/PKG-INFO
index 28f5068..a6fa0a6 100644
--- a/PKG-INFO
+++ b/PKG-INFO
@@ -1,12 +1,12 @@
 Metadata-Version: 1.1
 Name: trytond_purchase
-Version: 3.8.1
+Version: 4.0.0
 Summary: Tryton module for purchase
 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.8/
+Download-URL: http://downloads.tryton.org/4.0/
 Description: trytond_purchase
         ================
         
@@ -54,6 +54,7 @@ Classifier: Intended Audience :: Legal Industry
 Classifier: License :: OSI Approved :: GNU General Public License (GPL)
 Classifier: Natural Language :: Bulgarian
 Classifier: Natural Language :: Catalan
+Classifier: Natural Language :: Chinese (Simplified)
 Classifier: Natural Language :: Czech
 Classifier: Natural Language :: Dutch
 Classifier: Natural Language :: English
@@ -67,6 +68,9 @@ Classifier: Natural Language :: Slovenian
 Classifier: Natural Language :: Spanish
 Classifier: Operating System :: OS Independent
 Classifier: Programming Language :: Python :: 2.7
+Classifier: Programming Language :: Python :: 3.3
+Classifier: Programming Language :: Python :: 3.4
+Classifier: Programming Language :: Python :: 3.5
 Classifier: Programming Language :: Python :: Implementation :: CPython
 Classifier: Programming Language :: Python :: Implementation :: PyPy
 Classifier: Topic :: Office/Business
diff --git a/__init__.py b/__init__.py
index e37b9a5..f9b3583 100644
--- a/__init__.py
+++ b/__init__.py
@@ -30,6 +30,7 @@ def register():
         Configuration,
         Invoice,
         InvoiceLine,
+        Location,
         module='purchase', type_='model')
     Pool.register(
         PurchaseReport,
diff --git a/configuration.py b/configuration.py
index b1d7c6d..733f1dc 100644
--- a/configuration.py
+++ b/configuration.py
@@ -10,7 +10,7 @@ class Configuration(ModelSingleton, ModelSQL, ModelView):
     'Purchase Configuration'
     __name__ = 'purchase.configuration'
     purchase_sequence = fields.Property(fields.Many2One('ir.sequence',
-            'Purchase Reference Sequence', domain=[
+            'Purchase Sequence', domain=[
                 ('company', 'in',
                     [Eval('context', {}).get('company', -1), None]),
                 ('code', '=', 'purchase.purchase'),
diff --git a/doc/index.rst b/doc/index.rst
index f2da3d7..00d815b 100644
--- a/doc/index.rst
+++ b/doc/index.rst
@@ -65,7 +65,9 @@ of them are optional or completed with sensible default values:
 - Invoices: The list of related invoices.
 - Moves: The list of related stock moves.
 - Shipments: The list of related shipments.
-- Return Shipments: The list of the related shipment returns.
+- Return Shipments: The list of the related shipment returns. If a Supplier
+  Return location is defined on warehouse it will be used on return shipments
+  as origin location. Otherwise the warehouse storage location will be used.
 
 The *Purchase* report allow to print the purchase orders or to send
 them by mail.
diff --git a/invoice.py b/invoice.py
index 0d3000a..004783b 100644
--- a/invoice.py
+++ b/invoice.py
@@ -9,7 +9,6 @@ from trytond.transaction import Transaction
 from trytond import backend
 
 __all__ = ['Invoice', 'InvoiceLine']
-__metaclass__ = PoolMeta
 
 
 def process_purchase(func):
@@ -26,6 +25,7 @@ def process_purchase(func):
 
 
 class Invoice:
+    __metaclass__ = PoolMeta
     __name__ = 'account.invoice'
     purchase_exception_state = fields.Function(fields.Selection([
         ('', ''),
@@ -112,19 +112,20 @@ class Invoice:
 
 
 class InvoiceLine:
+    __metaclass__ = PoolMeta
     __name__ = 'account.invoice.line'
 
     @classmethod
     def __register__(cls, module_name):
         TableHandler = backend.get('TableHandler')
-        cursor = Transaction().cursor
+        cursor = Transaction().connection.cursor()
         sql_table = cls.__table__()
 
         super(InvoiceLine, cls).__register__(module_name)
 
         # Migration from 2.6: remove purchase_lines
         rel_table_name = 'purchase_line_invoice_lines_rel'
-        if TableHandler.table_exist(cursor, rel_table_name):
+        if TableHandler.table_exist(rel_table_name):
             rel_table = Table(rel_table_name)
             cursor.execute(*rel_table.select(
                     rel_table.purchase_line, rel_table.invoice_line))
@@ -133,7 +134,7 @@ class InvoiceLine:
                         columns=[sql_table.origin],
                         values=['purchase.line,%s' % purchase_line],
                         where=sql_table.id == invoice_line))
-            TableHandler.drop_table(cursor,
+            TableHandler.drop_table(
                 'purchase.line-account.invoice.line', rel_table_name)
 
     @property
diff --git a/locale/bg_BG.po b/locale/bg_BG.po
index 1123ec6..9a5107f 100644
--- a/locale/bg_BG.po
+++ b/locale/bg_BG.po
@@ -54,6 +54,21 @@ msgctxt "field:account.invoice,purchases:"
 msgid "Purchases"
 msgstr "Покупки"
 
+#, fuzzy
+msgctxt "field:product.product,product_suppliers:"
+msgid "Suppliers"
+msgstr "Доставчици"
+
+#, fuzzy
+msgctxt "field:product.product,purchasable:"
+msgid "Purchasable"
+msgstr "Купуваем"
+
+#, fuzzy
+msgctxt "field:product.product,purchase_uom:"
+msgid "Purchase UOM"
+msgstr "Мер. ед. на покупка"
+
 msgctxt "field:product.template,product_suppliers:"
 msgid "Suppliers"
 msgstr "Доставчици"
@@ -83,8 +98,8 @@ msgid "Invoice Method"
 msgstr "Начин на фактуриране"
 
 msgctxt "field:purchase.configuration,purchase_sequence:"
-msgid "Purchase Reference Sequence"
-msgstr "Последователност за отпратка на покупка"
+msgid "Purchase Sequence"
+msgstr ""
 
 msgctxt "field:purchase.configuration,rec_name:"
 msgid "Name"
@@ -350,14 +365,14 @@ msgctxt "field:purchase.product_supplier,currency:"
 msgid "Currency"
 msgstr "Валута"
 
-msgctxt "field:purchase.product_supplier,delivery_time:"
-msgid "Delivery Time"
-msgstr "Време за доставка"
-
 msgctxt "field:purchase.product_supplier,id:"
 msgid "ID"
 msgstr "ID"
 
+msgctxt "field:purchase.product_supplier,lead_time:"
+msgid "Lead Time"
+msgstr ""
+
 msgctxt "field:purchase.product_supplier,name:"
 msgid "Name"
 msgstr "Име"
@@ -495,6 +510,10 @@ msgctxt "field:purchase.purchase,moves:"
 msgid "Moves"
 msgstr "Движения"
 
+msgctxt "field:purchase.purchase,number:"
+msgid "Number"
+msgstr ""
+
 msgctxt "field:purchase.purchase,party:"
 msgid "Party"
 msgstr "Партньор"
@@ -536,10 +555,6 @@ msgctxt "field:purchase.purchase,state:"
 msgid "State"
 msgstr "Състояние"
 
-msgctxt "field:purchase.purchase,supplier_reference:"
-msgid "Supplier Reference"
-msgstr "Отпратка към доставчик"
-
 msgctxt "field:purchase.purchase,tax_amount:"
 msgid "Tax"
 msgstr "Данък"
@@ -640,6 +655,10 @@ msgctxt "field:purchase.purchase-recreated-account.invoice,write_uid:"
 msgid "Write User"
 msgstr "Променено от"
 
+msgctxt "field:stock.location,supplier_return_location:"
+msgid "Supplier Return"
+msgstr ""
+
 msgctxt "field:stock.move,purchase:"
 msgid "Purchase"
 msgstr "Покупка"
@@ -688,14 +707,14 @@ msgstr ""
 "Избраните движение ще бъдат наново създадени, Останалите ще бъдат "
 "игнорирани."
 
-msgctxt "help:purchase.product_supplier,delivery_time:"
-msgid "In number of days"
-msgstr "В брой дни"
-
 msgctxt "help:purchase.product_supplier.price,quantity:"
 msgid "Minimal quantity"
 msgstr "Минимално количество"
 
+msgctxt "help:stock.location,supplier_return_location:"
+msgid "If empty the Storage location is used"
+msgstr ""
+
 msgctxt "model:ir.action,name:act_invoice_form"
 msgid "Invoices"
 msgstr "Фактури"
@@ -873,59 +892,64 @@ msgctxt "model:res.group,name:group_purchase_admin"
 msgid "Purchase Administrator"
 msgstr "Отгоровник за покупки"
 
-msgctxt "odt:purchase.purchase:"
+msgctxt "report:purchase.purchase:"
 msgid "Amount"
 msgstr "Сума"
 
-msgctxt "odt:purchase.purchase:"
+msgctxt "report:purchase.purchase:"
 msgid "Date:"
 msgstr "Дата:"
 
-msgctxt "odt:purchase.purchase:"
+msgctxt "report:purchase.purchase:"
 msgid "Description"
 msgstr "Описание"
 
-msgctxt "odt:purchase.purchase:"
+msgctxt "report:purchase.purchase:"
 msgid "Description:"
 msgstr "Описание:"
 
-msgctxt "odt:purchase.purchase:"
+msgctxt "report:purchase.purchase:"
 msgid "Draft Purchase Order"
 msgstr "Проект на поръчка за покупка"
 
-msgctxt "odt:purchase.purchase:"
+msgctxt "report:purchase.purchase:"
 msgid "Purchase Order N°:"
 msgstr "Поръчка за покупка N°:"
 
-msgctxt "odt:purchase.purchase:"
+msgctxt "report:purchase.purchase:"
 msgid "Quantity"
 msgstr "Количество"
 
-msgctxt "odt:purchase.purchase:"
+#, fuzzy
+msgctxt "report:purchase.purchase:"
+msgid "Reference:"
+msgstr "Отпратка"
+
+msgctxt "report:purchase.purchase:"
 msgid "Request for Quotation N°:"
 msgstr "Заявки за запитване N°:"
 
-msgctxt "odt:purchase.purchase:"
+msgctxt "report:purchase.purchase:"
 msgid "Taxes"
 msgstr "Данъци"
 
-msgctxt "odt:purchase.purchase:"
+msgctxt "report:purchase.purchase:"
 msgid "Taxes:"
 msgstr "Данъци:"
 
-msgctxt "odt:purchase.purchase:"
+msgctxt "report:purchase.purchase:"
 msgid "Total (excl. taxes):"
 msgstr "Общо (без данъци):"
 
-msgctxt "odt:purchase.purchase:"
+msgctxt "report:purchase.purchase:"
 msgid "Total:"
 msgstr "Общо:"
 
-msgctxt "odt:purchase.purchase:"
+msgctxt "report:purchase.purchase:"
 msgid "Unit Price"
 msgstr "Единична цена"
 
-msgctxt "odt:purchase.purchase:"
+msgctxt "report:purchase.purchase:"
 msgid "VAT:"
 msgstr "ДДС:"
 
@@ -1100,7 +1124,7 @@ msgstr "Редове от покупка"
 
 msgctxt "view:purchase.line:"
 msgid "Taxes"
-msgstr ""
+msgstr "Данъци"
 
 msgctxt "view:purchase.product_supplier.price:"
 msgid "Product Supplier Price"
diff --git a/locale/ca_ES.po b/locale/ca_ES.po
index 7a5cfb3..9455518 100644
--- a/locale/ca_ES.po
+++ b/locale/ca_ES.po
@@ -61,6 +61,21 @@ msgctxt "field:account.invoice,purchases:"
 msgid "Purchases"
 msgstr "Compres"
 
+#, fuzzy
+msgctxt "field:product.product,product_suppliers:"
+msgid "Suppliers"
+msgstr "Proveïdors"
+
+#, fuzzy
+msgctxt "field:product.product,purchasable:"
+msgid "Purchasable"
+msgstr "Comprable"
+
+#, fuzzy
+msgctxt "field:product.product,purchase_uom:"
+msgid "Purchase UOM"
+msgstr "UdM de compra"
+
 msgctxt "field:product.template,product_suppliers:"
 msgid "Suppliers"
 msgstr "Proveïdors"
@@ -90,8 +105,8 @@ msgid "Invoice Method"
 msgstr "Mètode de facturació"
 
 msgctxt "field:purchase.configuration,purchase_sequence:"
-msgid "Purchase Reference Sequence"
-msgstr "Seqüència de comanda de compra"
+msgid "Purchase Sequence"
+msgstr ""
 
 msgctxt "field:purchase.configuration,rec_name:"
 msgid "Name"
@@ -357,14 +372,14 @@ msgctxt "field:purchase.product_supplier,currency:"
 msgid "Currency"
 msgstr "Moneda"
 
-msgctxt "field:purchase.product_supplier,delivery_time:"
-msgid "Delivery Time"
-msgstr "Termini de lliurament"
-
 msgctxt "field:purchase.product_supplier,id:"
 msgid "ID"
 msgstr "ID"
 
+msgctxt "field:purchase.product_supplier,lead_time:"
+msgid "Lead Time"
+msgstr ""
+
 msgctxt "field:purchase.product_supplier,name:"
 msgid "Name"
 msgstr "Nom"
@@ -501,6 +516,10 @@ msgctxt "field:purchase.purchase,moves:"
 msgid "Moves"
 msgstr "Moviments"
 
+msgctxt "field:purchase.purchase,number:"
+msgid "Number"
+msgstr ""
+
 msgctxt "field:purchase.purchase,party:"
 msgid "Party"
 msgstr "Tercer"
@@ -541,10 +560,6 @@ msgctxt "field:purchase.purchase,state:"
 msgid "State"
 msgstr "Estat"
 
-msgctxt "field:purchase.purchase,supplier_reference:"
-msgid "Supplier Reference"
-msgstr "Referència de proveïdor"
-
 msgctxt "field:purchase.purchase,tax_amount:"
 msgid "Tax"
 msgstr "Impost"
@@ -645,6 +660,10 @@ msgctxt "field:purchase.purchase-recreated-account.invoice,write_uid:"
 msgid "Write User"
 msgstr "Usuari modificació"
 
+msgctxt "field:stock.location,supplier_return_location:"
+msgid "Supplier Return"
+msgstr ""
+
 msgctxt "field:stock.move,purchase:"
 msgid "Purchase"
 msgstr "Compra"
@@ -690,14 +709,14 @@ msgctxt "help:purchase.handle.shipment.exception.ask,recreate_moves:"
 msgid "The selected moves will be recreated. The other ones will be ignored."
 msgstr "Els moviments seleccionats es refaran. Els altres s'ignoraran."
 
-msgctxt "help:purchase.product_supplier,delivery_time:"
-msgid "In number of days"
-msgstr "En nombre de dies."
-
 msgctxt "help:purchase.product_supplier.price,quantity:"
 msgid "Minimal quantity"
 msgstr "Quantitat mínima."
 
+msgctxt "help:stock.location,supplier_return_location:"
+msgid "If empty the Storage location is used"
+msgstr ""
+
 msgctxt "model:ir.action,name:act_invoice_form"
 msgid "Invoices"
 msgstr "Factures"
@@ -866,59 +885,64 @@ msgctxt "model:res.group,name:group_purchase_admin"
 msgid "Purchase Administrator"
 msgstr "Administració de compres"
 
-msgctxt "odt:purchase.purchase:"
+msgctxt "report:purchase.purchase:"
 msgid "Amount"
 msgstr "Import"
 
-msgctxt "odt:purchase.purchase:"
+msgctxt "report:purchase.purchase:"
 msgid "Date:"
 msgstr "Data:"
 
-msgctxt "odt:purchase.purchase:"
+msgctxt "report:purchase.purchase:"
 msgid "Description"
 msgstr "Descripció"
 
-msgctxt "odt:purchase.purchase:"
+msgctxt "report:purchase.purchase:"
 msgid "Description:"
 msgstr "Descripció:"
 
-msgctxt "odt:purchase.purchase:"
+msgctxt "report:purchase.purchase:"
 msgid "Draft Purchase Order"
 msgstr "Comanda de compra esborrany"
 
-msgctxt "odt:purchase.purchase:"
+msgctxt "report:purchase.purchase:"
 msgid "Purchase Order N°:"
 msgstr "Comanda de compra Núm.:"
 
-msgctxt "odt:purchase.purchase:"
+msgctxt "report:purchase.purchase:"
 msgid "Quantity"
 msgstr "Quantitat"
 
-msgctxt "odt:purchase.purchase:"
+#, fuzzy
+msgctxt "report:purchase.purchase:"
+msgid "Reference:"
+msgstr "Referència"
+
+msgctxt "report:purchase.purchase:"
 msgid "Request for Quotation N°:"
 msgstr "Sol·licitud de pressupost Núm.:"
 
-msgctxt "odt:purchase.purchase:"
+msgctxt "report:purchase.purchase:"
 msgid "Taxes"
 msgstr "Impostos"
 
-msgctxt "odt:purchase.purchase:"
+msgctxt "report:purchase.purchase:"
 msgid "Taxes:"
 msgstr "Impostos:"
 
-msgctxt "odt:purchase.purchase:"
+msgctxt "report:purchase.purchase:"
 msgid "Total (excl. taxes):"
 msgstr "Base imposable:"
 
-msgctxt "odt:purchase.purchase:"
+msgctxt "report:purchase.purchase:"
 msgid "Total:"
 msgstr "Total:"
 
-msgctxt "odt:purchase.purchase:"
+msgctxt "report:purchase.purchase:"
 msgid "Unit Price"
 msgstr "Preu unitari"
 
-msgctxt "odt:purchase.purchase:"
+msgctxt "report:purchase.purchase:"
 msgid "VAT:"
 msgstr "CIF/NIF:"
 
diff --git a/locale/cs_CZ.po b/locale/cs_CZ.po
index 0f1c642..2141042 100644
--- a/locale/cs_CZ.po
+++ b/locale/cs_CZ.po
@@ -53,6 +53,18 @@ msgctxt "field:account.invoice,purchases:"
 msgid "Purchases"
 msgstr ""
 
+msgctxt "field:product.product,product_suppliers:"
+msgid "Suppliers"
+msgstr ""
+
+msgctxt "field:product.product,purchasable:"
+msgid "Purchasable"
+msgstr ""
+
+msgctxt "field:product.product,purchase_uom:"
+msgid "Purchase UOM"
+msgstr ""
+
 msgctxt "field:product.template,product_suppliers:"
 msgid "Suppliers"
 msgstr ""
@@ -82,7 +94,7 @@ msgid "Invoice Method"
 msgstr ""
 
 msgctxt "field:purchase.configuration,purchase_sequence:"
-msgid "Purchase Reference Sequence"
+msgid "Purchase Sequence"
 msgstr ""
 
 msgctxt "field:purchase.configuration,rec_name:"
@@ -349,14 +361,14 @@ msgctxt "field:purchase.product_supplier,currency:"
 msgid "Currency"
 msgstr ""
 
-msgctxt "field:purchase.product_supplier,delivery_time:"
-msgid "Delivery Time"
-msgstr ""
-
 msgctxt "field:purchase.product_supplier,id:"
 msgid "ID"
 msgstr ""
 
+msgctxt "field:purchase.product_supplier,lead_time:"
+msgid "Lead Time"
+msgstr ""
+
 msgctxt "field:purchase.product_supplier,name:"
 msgid "Name"
 msgstr ""
@@ -493,6 +505,10 @@ msgctxt "field:purchase.purchase,moves:"
 msgid "Moves"
 msgstr ""
 
+msgctxt "field:purchase.purchase,number:"
+msgid "Number"
+msgstr ""
+
 msgctxt "field:purchase.purchase,party:"
 msgid "Party"
 msgstr ""
@@ -533,10 +549,6 @@ msgctxt "field:purchase.purchase,state:"
 msgid "State"
 msgstr ""
 
-msgctxt "field:purchase.purchase,supplier_reference:"
-msgid "Supplier Reference"
-msgstr ""
-
 msgctxt "field:purchase.purchase,tax_amount:"
 msgid "Tax"
 msgstr ""
@@ -637,6 +649,10 @@ msgctxt "field:purchase.purchase-recreated-account.invoice,write_uid:"
 msgid "Write User"
 msgstr ""
 
+msgctxt "field:stock.location,supplier_return_location:"
+msgid "Supplier Return"
+msgstr ""
+
 msgctxt "field:stock.move,purchase:"
 msgid "Purchase"
 msgstr ""
@@ -682,14 +698,14 @@ msgctxt "help:purchase.handle.shipment.exception.ask,recreate_moves:"
 msgid "The selected moves will be recreated. The other ones will be ignored."
 msgstr ""
 
-msgctxt "help:purchase.product_supplier,delivery_time:"
-msgid "In number of days"
-msgstr ""
-
 msgctxt "help:purchase.product_supplier.price,quantity:"
 msgid "Minimal quantity"
 msgstr ""
 
+msgctxt "help:stock.location,supplier_return_location:"
+msgid "If empty the Storage location is used"
+msgstr ""
+
 msgctxt "model:ir.action,name:act_invoice_form"
 msgid "Invoices"
 msgstr ""
@@ -858,59 +874,63 @@ msgctxt "model:res.group,name:group_purchase_admin"
 msgid "Purchase Administrator"
 msgstr ""
 
-msgctxt "odt:purchase.purchase:"
+msgctxt "report:purchase.purchase:"
 msgid "Amount"
 msgstr ""
 
-msgctxt "odt:purchase.purchase:"
+msgctxt "report:purchase.purchase:"
 msgid "Date:"
 msgstr ""
 
-msgctxt "odt:purchase.purchase:"
+msgctxt "report:purchase.purchase:"
 msgid "Description"
 msgstr ""
 
-msgctxt "odt:purchase.purchase:"
+msgctxt "report:purchase.purchase:"
 msgid "Description:"
 msgstr ""
 
-msgctxt "odt:purchase.purchase:"
+msgctxt "report:purchase.purchase:"
 msgid "Draft Purchase Order"
 msgstr ""
 
-msgctxt "odt:purchase.purchase:"
+msgctxt "report:purchase.purchase:"
 msgid "Purchase Order N°:"
 msgstr ""
 
-msgctxt "odt:purchase.purchase:"
+msgctxt "report:purchase.purchase:"
 msgid "Quantity"
 msgstr ""
 
-msgctxt "odt:purchase.purchase:"
+msgctxt "report:purchase.purchase:"
+msgid "Reference:"
+msgstr ""
+
+msgctxt "report:purchase.purchase:"
 msgid "Request for Quotation N°:"
 msgstr ""
 
-msgctxt "odt:purchase.purchase:"
+msgctxt "report:purchase.purchase:"
 msgid "Taxes"
 msgstr ""
 
-msgctxt "odt:purchase.purchase:"
+msgctxt "report:purchase.purchase:"
 msgid "Taxes:"
 msgstr ""
 
-msgctxt "odt:purchase.purchase:"
+msgctxt "report:purchase.purchase:"
 msgid "Total (excl. taxes):"
 msgstr ""
 
-msgctxt "odt:purchase.purchase:"
+msgctxt "report:purchase.purchase:"
 msgid "Total:"
 msgstr ""
 
-msgctxt "odt:purchase.purchase:"
+msgctxt "report:purchase.purchase:"
 msgid "Unit Price"
 msgstr ""
 
-msgctxt "odt:purchase.purchase:"
+msgctxt "report:purchase.purchase:"
 msgid "VAT:"
 msgstr ""
 
diff --git a/locale/de_DE.po b/locale/de_DE.po
index dc3daed..6d31aad 100644
--- a/locale/de_DE.po
+++ b/locale/de_DE.po
@@ -65,6 +65,21 @@ msgctxt "field:account.invoice,purchases:"
 msgid "Purchases"
 msgstr "Einkäufe"
 
+#, fuzzy
+msgctxt "field:product.product,product_suppliers:"
+msgid "Suppliers"
+msgstr "Lieferanten"
+
+#, fuzzy
+msgctxt "field:product.product,purchasable:"
+msgid "Purchasable"
+msgstr "Käuflich"
+
+#, fuzzy
+msgctxt "field:product.product,purchase_uom:"
+msgid "Purchase UOM"
+msgstr "Maßeinheit Einkauf"
+
 msgctxt "field:product.template,product_suppliers:"
 msgid "Suppliers"
 msgstr "Lieferanten"
@@ -94,8 +109,8 @@ msgid "Invoice Method"
 msgstr "Rechnungsstellung Einkauf"
 
 msgctxt "field:purchase.configuration,purchase_sequence:"
-msgid "Purchase Reference Sequence"
-msgstr "Nummernkreis Einkauf"
+msgid "Purchase Sequence"
+msgstr ""
 
 msgctxt "field:purchase.configuration,rec_name:"
 msgid "Name"
@@ -361,14 +376,14 @@ msgctxt "field:purchase.product_supplier,currency:"
 msgid "Currency"
 msgstr "Währung"
 
-msgctxt "field:purchase.product_supplier,delivery_time:"
-msgid "Delivery Time"
-msgstr "Lieferzeitraum"
-
 msgctxt "field:purchase.product_supplier,id:"
 msgid "ID"
 msgstr "ID"
 
+msgctxt "field:purchase.product_supplier,lead_time:"
+msgid "Lead Time"
+msgstr ""
+
 msgctxt "field:purchase.product_supplier,name:"
 msgid "Name"
 msgstr "Name"
@@ -505,6 +520,10 @@ msgctxt "field:purchase.purchase,moves:"
 msgid "Moves"
 msgstr "Bewegungen"
 
+msgctxt "field:purchase.purchase,number:"
+msgid "Number"
+msgstr ""
+
 msgctxt "field:purchase.purchase,party:"
 msgid "Party"
 msgstr "Partei"
@@ -545,10 +564,6 @@ msgctxt "field:purchase.purchase,state:"
 msgid "State"
 msgstr "Status"
 
-msgctxt "field:purchase.purchase,supplier_reference:"
-msgid "Supplier Reference"
-msgstr "Beleg-Nr. Lieferant"
-
 msgctxt "field:purchase.purchase,tax_amount:"
 msgid "Tax"
 msgstr "Steuer"
@@ -649,6 +664,10 @@ msgctxt "field:purchase.purchase-recreated-account.invoice,write_uid:"
 msgid "Write User"
 msgstr "Letzte Änderung durch"
 
+msgctxt "field:stock.location,supplier_return_location:"
+msgid "Supplier Return"
+msgstr ""
+
 msgctxt "field:stock.move,purchase:"
 msgid "Purchase"
 msgstr "Einkauf"
@@ -698,14 +717,14 @@ msgstr ""
 "Die ausgewählten Lagerbewegungen werden neu erstellt. Alle anderen werden "
 "ignoriert."
 
-msgctxt "help:purchase.product_supplier,delivery_time:"
-msgid "In number of days"
-msgstr "In Anzahl von Tagen"
-
 msgctxt "help:purchase.product_supplier.price,quantity:"
 msgid "Minimal quantity"
 msgstr "Minimale Anzahl"
 
+msgctxt "help:stock.location,supplier_return_location:"
+msgid "If empty the Storage location is used"
+msgstr ""
+
 msgctxt "model:ir.action,name:act_invoice_form"
 msgid "Invoices"
 msgstr "Rechnungseingang"
@@ -874,59 +893,64 @@ msgctxt "model:res.group,name:group_purchase_admin"
 msgid "Purchase Administrator"
 msgstr "Einkauf Administration"
 
-msgctxt "odt:purchase.purchase:"
+msgctxt "report:purchase.purchase:"
 msgid "Amount"
 msgstr "Betrag"
 
-msgctxt "odt:purchase.purchase:"
+msgctxt "report:purchase.purchase:"
 msgid "Date:"
 msgstr "Datum:"
 
-msgctxt "odt:purchase.purchase:"
+msgctxt "report:purchase.purchase:"
 msgid "Description"
 msgstr "Beschreibung"
 
-msgctxt "odt:purchase.purchase:"
+msgctxt "report:purchase.purchase:"
 msgid "Description:"
 msgstr "Beschreibung:"
 
-msgctxt "odt:purchase.purchase:"
+msgctxt "report:purchase.purchase:"
 msgid "Draft Purchase Order"
 msgstr "Auftrag (Entwurf)"
 
-msgctxt "odt:purchase.purchase:"
+msgctxt "report:purchase.purchase:"
 msgid "Purchase Order N°:"
 msgstr "Auftrag Nr.:"
 
-msgctxt "odt:purchase.purchase:"
+msgctxt "report:purchase.purchase:"
 msgid "Quantity"
 msgstr "Anzahl"
 
-msgctxt "odt:purchase.purchase:"
+#, fuzzy
+msgctxt "report:purchase.purchase:"
+msgid "Reference:"
+msgstr "Beleg-Nr."
+
+msgctxt "report:purchase.purchase:"
 msgid "Request for Quotation N°:"
 msgstr "Angebotsanfrage Nr.:"
 
-msgctxt "odt:purchase.purchase:"
+msgctxt "report:purchase.purchase:"
 msgid "Taxes"
 msgstr "Steuern"
 
-msgctxt "odt:purchase.purchase:"
+msgctxt "report:purchase.purchase:"
 msgid "Taxes:"
 msgstr "Steuern"
 
-msgctxt "odt:purchase.purchase:"
+msgctxt "report:purchase.purchase:"
 msgid "Total (excl. taxes):"
 msgstr "Netto"
 
-msgctxt "odt:purchase.purchase:"
+msgctxt "report:purchase.purchase:"
 msgid "Total:"
 msgstr "Gesamt"
 
-msgctxt "odt:purchase.purchase:"
+msgctxt "report:purchase.purchase:"
 msgid "Unit Price"
 msgstr "Einzelpreis"
 
-msgctxt "odt:purchase.purchase:"
+msgctxt "report:purchase.purchase:"
 msgid "VAT:"
 msgstr "USt-ID-Nr:"
 
@@ -1177,11 +1201,3 @@ msgstr "Abbrechen"
 msgctxt "wizard_button:purchase.handle.shipment.exception,ask,handle:"
 msgid "OK"
 msgstr "OK"
-
-msgctxt "wizard_button:stock.product_quantities_warehouse,start,end:"
-msgid "Cancel"
-msgstr "Abbrechen"
-
-msgctxt "wizard_button:stock.product_quantities_warehouse,start,open_:"
-msgid "Open"
-msgstr "Öffnen"
diff --git a/locale/es_AR.po b/locale/es_AR.po
index b678d0b..ef2defb 100644
--- a/locale/es_AR.po
+++ b/locale/es_AR.po
@@ -61,6 +61,21 @@ msgctxt "field:account.invoice,purchases:"
 msgid "Purchases"
 msgstr "Compras"
 
+#, fuzzy
+msgctxt "field:product.product,product_suppliers:"
+msgid "Suppliers"
+msgstr "Proveedores"
+
+#, fuzzy
+msgctxt "field:product.product,purchasable:"
+msgid "Purchasable"
+msgstr "Comprable"
+
+#, fuzzy
+msgctxt "field:product.product,purchase_uom:"
+msgid "Purchase UOM"
+msgstr "UdM de compra"
+
 msgctxt "field:product.template,product_suppliers:"
 msgid "Suppliers"
 msgstr "Proveedores"
@@ -90,8 +105,8 @@ msgid "Invoice Method"
 msgstr "Método de facturación"
 
 msgctxt "field:purchase.configuration,purchase_sequence:"
-msgid "Purchase Reference Sequence"
-msgstr "Secuencia de referencia de compra"
+msgid "Purchase Sequence"
+msgstr ""
 
 msgctxt "field:purchase.configuration,rec_name:"
 msgid "Name"
@@ -357,14 +372,14 @@ msgctxt "field:purchase.product_supplier,currency:"
 msgid "Currency"
 msgstr "Moneda"
 
-msgctxt "field:purchase.product_supplier,delivery_time:"
-msgid "Delivery Time"
-msgstr "Tiempo de envío"
-
 msgctxt "field:purchase.product_supplier,id:"
 msgid "ID"
 msgstr "ID"
 
+msgctxt "field:purchase.product_supplier,lead_time:"
+msgid "Lead Time"
+msgstr ""
+
 msgctxt "field:purchase.product_supplier,name:"
 msgid "Name"
 msgstr "Nombre"
@@ -501,6 +516,10 @@ msgctxt "field:purchase.purchase,moves:"
 msgid "Moves"
 msgstr "Movimientos"
 
+msgctxt "field:purchase.purchase,number:"
+msgid "Number"
+msgstr ""
+
 msgctxt "field:purchase.purchase,party:"
 msgid "Party"
 msgstr "Entidad"
@@ -541,10 +560,6 @@ msgctxt "field:purchase.purchase,state:"
 msgid "State"
 msgstr "Estado"
 
-msgctxt "field:purchase.purchase,supplier_reference:"
-msgid "Supplier Reference"
-msgstr "Referencia de proveedor"
-
 msgctxt "field:purchase.purchase,tax_amount:"
 msgid "Tax"
 msgstr "Impuesto"
@@ -645,6 +660,10 @@ msgctxt "field:purchase.purchase-recreated-account.invoice,write_uid:"
 msgid "Write User"
 msgstr "Usuario modificación"
 
+msgctxt "field:stock.location,supplier_return_location:"
+msgid "Supplier Return"
+msgstr ""
+
 msgctxt "field:stock.move,purchase:"
 msgid "Purchase"
 msgstr "Compra"
@@ -692,14 +711,14 @@ msgid "The selected moves will be recreated. The other ones will be ignored."
 msgstr ""
 "Los movimientos seleccionados serán recreados. Los demás se ignorarán."
 
-msgctxt "help:purchase.product_supplier,delivery_time:"
-msgid "In number of days"
-msgstr "En número de días"
-
 msgctxt "help:purchase.product_supplier.price,quantity:"
 msgid "Minimal quantity"
 msgstr "Cantidad mínima"
 
+msgctxt "help:stock.location,supplier_return_location:"
+msgid "If empty the Storage location is used"
+msgstr ""
+
 msgctxt "model:ir.action,name:act_invoice_form"
 msgid "Invoices"
 msgstr "Facturas"
@@ -868,59 +887,64 @@ msgctxt "model:res.group,name:group_purchase_admin"
 msgid "Purchase Administrator"
 msgstr "Administrador de compras"
 
-msgctxt "odt:purchase.purchase:"
+msgctxt "report:purchase.purchase:"
 msgid "Amount"
 msgstr "Importe"
 
-msgctxt "odt:purchase.purchase:"
+msgctxt "report:purchase.purchase:"
 msgid "Date:"
 msgstr "Fecha:"
 
-msgctxt "odt:purchase.purchase:"
+msgctxt "report:purchase.purchase:"
 msgid "Description"
 msgstr "Descripción"
 
-msgctxt "odt:purchase.purchase:"
+msgctxt "report:purchase.purchase:"
 msgid "Description:"
 msgstr "Descripción:"
 
-msgctxt "odt:purchase.purchase:"
+msgctxt "report:purchase.purchase:"
 msgid "Draft Purchase Order"
 msgstr "Orden de compra en borrador"
 
-msgctxt "odt:purchase.purchase:"
+msgctxt "report:purchase.purchase:"
 msgid "Purchase Order N°:"
 msgstr "Orden de compra Nº:"
 
-msgctxt "odt:purchase.purchase:"
+msgctxt "report:purchase.purchase:"
 msgid "Quantity"
 msgstr "Cantidad"
 
-msgctxt "odt:purchase.purchase:"
+#, fuzzy
+msgctxt "report:purchase.purchase:"
+msgid "Reference:"
+msgstr "Referencia"
+
+msgctxt "report:purchase.purchase:"
 msgid "Request for Quotation N°:"
 msgstr "Solicitud de presupuesto Nº:"
 
-msgctxt "odt:purchase.purchase:"
+msgctxt "report:purchase.purchase:"
 msgid "Taxes"
 msgstr "Impuestos"
 
-msgctxt "odt:purchase.purchase:"
+msgctxt "report:purchase.purchase:"
 msgid "Taxes:"
 msgstr "Impuestos:"
 
-msgctxt "odt:purchase.purchase:"
+msgctxt "report:purchase.purchase:"
 msgid "Total (excl. taxes):"
 msgstr "Total (sin impuestos):"
 
-msgctxt "odt:purchase.purchase:"
+msgctxt "report:purchase.purchase:"
 msgid "Total:"
 msgstr "Total:"
 
-msgctxt "odt:purchase.purchase:"
+msgctxt "report:purchase.purchase:"
 msgid "Unit Price"
 msgstr "Precio unitario"
 
-msgctxt "odt:purchase.purchase:"
+msgctxt "report:purchase.purchase:"
 msgid "VAT:"
 msgstr "CUIT:"
 
diff --git a/locale/es_CO.po b/locale/es_CO.po
index 57519b0..cbc81a2 100644
--- a/locale/es_CO.po
+++ b/locale/es_CO.po
@@ -61,6 +61,21 @@ msgctxt "field:account.invoice,purchases:"
 msgid "Purchases"
 msgstr "Compras"
 
+#, fuzzy
+msgctxt "field:product.product,product_suppliers:"
+msgid "Suppliers"
+msgstr "Proveedores"
+
+#, fuzzy
+msgctxt "field:product.product,purchasable:"
+msgid "Purchasable"
+msgstr "Comprable"
+
+#, fuzzy
+msgctxt "field:product.product,purchase_uom:"
+msgid "Purchase UOM"
+msgstr "UdM de Compra"
+
 msgctxt "field:product.template,product_suppliers:"
 msgid "Suppliers"
 msgstr "Proveedores"
@@ -90,8 +105,8 @@ msgid "Invoice Method"
 msgstr "Método de Facturación"
 
 msgctxt "field:purchase.configuration,purchase_sequence:"
-msgid "Purchase Reference Sequence"
-msgstr "Secuencia Orden de Compra"
+msgid "Purchase Sequence"
+msgstr ""
 
 msgctxt "field:purchase.configuration,rec_name:"
 msgid "Name"
@@ -357,14 +372,14 @@ msgctxt "field:purchase.product_supplier,currency:"
 msgid "Currency"
 msgstr "Moneda"
 
-msgctxt "field:purchase.product_supplier,delivery_time:"
-msgid "Delivery Time"
-msgstr "Tiempo de Entrega"
-
 msgctxt "field:purchase.product_supplier,id:"
 msgid "ID"
 msgstr "ID"
 
+msgctxt "field:purchase.product_supplier,lead_time:"
+msgid "Lead Time"
+msgstr ""
+
 msgctxt "field:purchase.product_supplier,name:"
 msgid "Name"
 msgstr "Nombre"
@@ -501,6 +516,10 @@ msgctxt "field:purchase.purchase,moves:"
 msgid "Moves"
 msgstr "Movimientos"
 
+msgctxt "field:purchase.purchase,number:"
+msgid "Number"
+msgstr ""
+
 msgctxt "field:purchase.purchase,party:"
 msgid "Party"
 msgstr "Tercero"
@@ -541,10 +560,6 @@ msgctxt "field:purchase.purchase,state:"
 msgid "State"
 msgstr "Estado"
 
-msgctxt "field:purchase.purchase,supplier_reference:"
-msgid "Supplier Reference"
-msgstr "Referencia de Proveedor"
-
 msgctxt "field:purchase.purchase,tax_amount:"
 msgid "Tax"
 msgstr "Impuesto"
@@ -645,6 +660,10 @@ msgctxt "field:purchase.purchase-recreated-account.invoice,write_uid:"
 msgid "Write User"
 msgstr "Modificado por Usuario"
 
+msgctxt "field:stock.location,supplier_return_location:"
+msgid "Supplier Return"
+msgstr ""
+
 msgctxt "field:stock.move,purchase:"
 msgid "Purchase"
 msgstr "Compra"
@@ -692,14 +711,14 @@ msgid "The selected moves will be recreated. The other ones will be ignored."
 msgstr ""
 "Los movimientos seleccionados serán recreados. Los otros serán ignorados."
 
-msgctxt "help:purchase.product_supplier,delivery_time:"
-msgid "In number of days"
-msgstr "En número de días."
-
 msgctxt "help:purchase.product_supplier.price,quantity:"
 msgid "Minimal quantity"
 msgstr "Cantidad mínima"
 
+msgctxt "help:stock.location,supplier_return_location:"
+msgid "If empty the Storage location is used"
+msgstr ""
+
 msgctxt "model:ir.action,name:act_invoice_form"
 msgid "Invoices"
 msgstr "Facturas"
@@ -868,59 +887,64 @@ msgctxt "model:res.group,name:group_purchase_admin"
 msgid "Purchase Administrator"
 msgstr "Administrador de Compras"
 
-msgctxt "odt:purchase.purchase:"
+msgctxt "report:purchase.purchase:"
 msgid "Amount"
 msgstr "Subtotal"
 
-msgctxt "odt:purchase.purchase:"
+msgctxt "report:purchase.purchase:"
 msgid "Date:"
 msgstr "Fecha:"
 
-msgctxt "odt:purchase.purchase:"
+msgctxt "report:purchase.purchase:"
 msgid "Description"
 msgstr "Descripción"
 
-msgctxt "odt:purchase.purchase:"
+msgctxt "report:purchase.purchase:"
 msgid "Description:"
 msgstr "Descripción:"
 
-msgctxt "odt:purchase.purchase:"
+msgctxt "report:purchase.purchase:"
 msgid "Draft Purchase Order"
 msgstr "Orden de Compra en Borrador"
 
-msgctxt "odt:purchase.purchase:"
+msgctxt "report:purchase.purchase:"
 msgid "Purchase Order N°:"
 msgstr "Orden de Compra Nº:"
 
-msgctxt "odt:purchase.purchase:"
+msgctxt "report:purchase.purchase:"
 msgid "Quantity"
 msgstr "Cantidad"
 
-msgctxt "odt:purchase.purchase:"
+#, fuzzy
+msgctxt "report:purchase.purchase:"
+msgid "Reference:"
+msgstr "Referencia"
+
+msgctxt "report:purchase.purchase:"
 msgid "Request for Quotation N°:"
 msgstr "Solicitud de Cotización Nº:"
 
-msgctxt "odt:purchase.purchase:"
+msgctxt "report:purchase.purchase:"
 msgid "Taxes"
 msgstr "Impuestos"
 
-msgctxt "odt:purchase.purchase:"
+msgctxt "report:purchase.purchase:"
 msgid "Taxes:"
 msgstr "Impuestos:"
 
-msgctxt "odt:purchase.purchase:"
+msgctxt "report:purchase.purchase:"
 msgid "Total (excl. taxes):"
 msgstr "Base (sin Impuestos):"
 
-msgctxt "odt:purchase.purchase:"
+msgctxt "report:purchase.purchase:"
 msgid "Total:"
 msgstr "Total:"
 
-msgctxt "odt:purchase.purchase:"
+msgctxt "report:purchase.purchase:"
 msgid "Unit Price"
 msgstr "Precio Unitario"
 
-msgctxt "odt:purchase.purchase:"
+msgctxt "report:purchase.purchase:"
 msgid "VAT:"
 msgstr "NIT:"
 
diff --git a/locale/es_EC.po b/locale/es_EC.po
index 9fee29d..531876c 100644
--- a/locale/es_EC.po
+++ b/locale/es_EC.po
@@ -62,6 +62,21 @@ msgctxt "field:account.invoice,purchases:"
 msgid "Purchases"
 msgstr "Compras"
 
+#, fuzzy
+msgctxt "field:product.product,product_suppliers:"
+msgid "Suppliers"
+msgstr "Proveedores"
+
+#, fuzzy
+msgctxt "field:product.product,purchasable:"
+msgid "Purchasable"
+msgstr "Comprable"
+
+#, fuzzy
+msgctxt "field:product.product,purchase_uom:"
+msgid "Purchase UOM"
+msgstr "UdM de compra"
+
 msgctxt "field:product.template,product_suppliers:"
 msgid "Suppliers"
 msgstr "Proveedores"
@@ -91,8 +106,8 @@ msgid "Invoice Method"
 msgstr "Método de facturación"
 
 msgctxt "field:purchase.configuration,purchase_sequence:"
-msgid "Purchase Reference Sequence"
-msgstr "Secuencia de referencia de compra"
+msgid "Purchase Sequence"
+msgstr ""
 
 msgctxt "field:purchase.configuration,rec_name:"
 msgid "Name"
@@ -358,14 +373,14 @@ msgctxt "field:purchase.product_supplier,currency:"
 msgid "Currency"
 msgstr "Moneda"
 
-msgctxt "field:purchase.product_supplier,delivery_time:"
-msgid "Delivery Time"
-msgstr "Tiempo de Entrega"
-
 msgctxt "field:purchase.product_supplier,id:"
 msgid "ID"
 msgstr "ID"
 
+msgctxt "field:purchase.product_supplier,lead_time:"
+msgid "Lead Time"
+msgstr ""
+
 msgctxt "field:purchase.product_supplier,name:"
 msgid "Name"
 msgstr "Nombre"
@@ -502,6 +517,10 @@ msgctxt "field:purchase.purchase,moves:"
 msgid "Moves"
 msgstr "Movimientos"
 
+msgctxt "field:purchase.purchase,number:"
+msgid "Number"
+msgstr ""
+
 msgctxt "field:purchase.purchase,party:"
 msgid "Party"
 msgstr "Tercero"
@@ -542,10 +561,6 @@ msgctxt "field:purchase.purchase,state:"
 msgid "State"
 msgstr "Estado"
 
-msgctxt "field:purchase.purchase,supplier_reference:"
-msgid "Supplier Reference"
-msgstr "Referencia de proveedor"
-
 msgctxt "field:purchase.purchase,tax_amount:"
 msgid "Tax"
 msgstr "Impuesto"
@@ -646,6 +661,10 @@ msgctxt "field:purchase.purchase-recreated-account.invoice,write_uid:"
 msgid "Write User"
 msgstr "Modificado por usuario"
 
+msgctxt "field:stock.location,supplier_return_location:"
+msgid "Supplier Return"
+msgstr ""
+
 msgctxt "field:stock.move,purchase:"
 msgid "Purchase"
 msgstr "Compra"
@@ -693,14 +712,14 @@ msgid "The selected moves will be recreated. The other ones will be ignored."
 msgstr ""
 "Los movimientos seleccionados serán recreados. Los otros serán ignorados."
 
-msgctxt "help:purchase.product_supplier,delivery_time:"
-msgid "In number of days"
-msgstr "En número de días"
-
 msgctxt "help:purchase.product_supplier.price,quantity:"
 msgid "Minimal quantity"
 msgstr "Cantidad mínima"
 
+msgctxt "help:stock.location,supplier_return_location:"
+msgid "If empty the Storage location is used"
+msgstr ""
+
 msgctxt "model:ir.action,name:act_invoice_form"
 msgid "Invoices"
 msgstr "Facturas"
@@ -869,59 +888,64 @@ msgctxt "model:res.group,name:group_purchase_admin"
 msgid "Purchase Administrator"
 msgstr "Administrador de Compras"
 
-msgctxt "odt:purchase.purchase:"
+msgctxt "report:purchase.purchase:"
 msgid "Amount"
 msgstr "Subtotal"
 
-msgctxt "odt:purchase.purchase:"
+msgctxt "report:purchase.purchase:"
 msgid "Date:"
 msgstr "Fecha:"
 
-msgctxt "odt:purchase.purchase:"
+msgctxt "report:purchase.purchase:"
 msgid "Description"
 msgstr "Descripción"
 
-msgctxt "odt:purchase.purchase:"
+msgctxt "report:purchase.purchase:"
 msgid "Description:"
 msgstr "Descripción:"
 
-msgctxt "odt:purchase.purchase:"
+msgctxt "report:purchase.purchase:"
 msgid "Draft Purchase Order"
 msgstr "Orden de compra en borrador"
 
-msgctxt "odt:purchase.purchase:"
+msgctxt "report:purchase.purchase:"
 msgid "Purchase Order N°:"
 msgstr "Orden de compra Nº:"
 
-msgctxt "odt:purchase.purchase:"
+msgctxt "report:purchase.purchase:"
 msgid "Quantity"
 msgstr "Cantidad"
 
-msgctxt "odt:purchase.purchase:"
+#, fuzzy
+msgctxt "report:purchase.purchase:"
+msgid "Reference:"
+msgstr "Referencia"
+
+msgctxt "report:purchase.purchase:"
 msgid "Request for Quotation N°:"
 msgstr "Solicitud de cotización Nº:"
 
-msgctxt "odt:purchase.purchase:"
+msgctxt "report:purchase.purchase:"
 msgid "Taxes"
 msgstr "Impuestos"
 
-msgctxt "odt:purchase.purchase:"
+msgctxt "report:purchase.purchase:"
 msgid "Taxes:"
 msgstr "Impuestos:"
 
-msgctxt "odt:purchase.purchase:"
+msgctxt "report:purchase.purchase:"
 msgid "Total (excl. taxes):"
 msgstr "Total (sin impuestos):"
 
-msgctxt "odt:purchase.purchase:"
+msgctxt "report:purchase.purchase:"
 msgid "Total:"
 msgstr "Total:"
 
-msgctxt "odt:purchase.purchase:"
+msgctxt "report:purchase.purchase:"
 msgid "Unit Price"
 msgstr "Precio unitario"
 
-msgctxt "odt:purchase.purchase:"
+msgctxt "report:purchase.purchase:"
 msgid "VAT:"
 msgstr "CI/RUC:"
 
diff --git a/locale/es_ES.po b/locale/es_ES.po
index 7129417..4d8642d 100644
--- a/locale/es_ES.po
+++ b/locale/es_ES.po
@@ -61,6 +61,21 @@ msgctxt "field:account.invoice,purchases:"
 msgid "Purchases"
 msgstr "Compras"
 
+#, fuzzy
+msgctxt "field:product.product,product_suppliers:"
+msgid "Suppliers"
+msgstr "Proveedores"
+
+#, fuzzy
+msgctxt "field:product.product,purchasable:"
+msgid "Purchasable"
+msgstr "Comprable"
+
+#, fuzzy
+msgctxt "field:product.product,purchase_uom:"
+msgid "Purchase UOM"
+msgstr "UdM de compra"
+
 msgctxt "field:product.template,product_suppliers:"
 msgid "Suppliers"
 msgstr "Proveedores"
@@ -90,8 +105,8 @@ msgid "Invoice Method"
 msgstr "Método de facturación"
 
 msgctxt "field:purchase.configuration,purchase_sequence:"
-msgid "Purchase Reference Sequence"
-msgstr "Secuencia de pedidos de compra"
+msgid "Purchase Sequence"
+msgstr ""
 
 msgctxt "field:purchase.configuration,rec_name:"
 msgid "Name"
@@ -357,14 +372,14 @@ msgctxt "field:purchase.product_supplier,currency:"
 msgid "Currency"
 msgstr "Moneda"
 
-msgctxt "field:purchase.product_supplier,delivery_time:"
-msgid "Delivery Time"
-msgstr "Plazo de entrega"
-
 msgctxt "field:purchase.product_supplier,id:"
 msgid "ID"
 msgstr "ID"
 
+msgctxt "field:purchase.product_supplier,lead_time:"
+msgid "Lead Time"
+msgstr ""
+
 msgctxt "field:purchase.product_supplier,name:"
 msgid "Name"
 msgstr "Nombre"
@@ -501,6 +516,10 @@ msgctxt "field:purchase.purchase,moves:"
 msgid "Moves"
 msgstr "Movimientos"
 
+msgctxt "field:purchase.purchase,number:"
+msgid "Number"
+msgstr ""
+
 msgctxt "field:purchase.purchase,party:"
 msgid "Party"
 msgstr "Tercero"
@@ -541,10 +560,6 @@ msgctxt "field:purchase.purchase,state:"
 msgid "State"
 msgstr "Estado"
 
-msgctxt "field:purchase.purchase,supplier_reference:"
-msgid "Supplier Reference"
-msgstr "Referencia de proveedor"
-
 msgctxt "field:purchase.purchase,tax_amount:"
 msgid "Tax"
 msgstr "Impuestos"
@@ -645,6 +660,10 @@ msgctxt "field:purchase.purchase-recreated-account.invoice,write_uid:"
 msgid "Write User"
 msgstr "Usuario modificación"
 
+msgctxt "field:stock.location,supplier_return_location:"
+msgid "Supplier Return"
+msgstr ""
+
 msgctxt "field:stock.move,purchase:"
 msgid "Purchase"
 msgstr "Compra"
@@ -692,14 +711,14 @@ msgid "The selected moves will be recreated. The other ones will be ignored."
 msgstr ""
 "Los movimientos seleccionados serán recreados. Los otros serán ignorados."
 
-msgctxt "help:purchase.product_supplier,delivery_time:"
-msgid "In number of days"
-msgstr "En número de días."
-
 msgctxt "help:purchase.product_supplier.price,quantity:"
 msgid "Minimal quantity"
 msgstr "Cantidad mínima."
 
+msgctxt "help:stock.location,supplier_return_location:"
+msgid "If empty the Storage location is used"
+msgstr ""
+
 msgctxt "model:ir.action,name:act_invoice_form"
 msgid "Invoices"
 msgstr "Facturas"
@@ -868,59 +887,64 @@ msgctxt "model:res.group,name:group_purchase_admin"
 msgid "Purchase Administrator"
 msgstr "Administración de compras"
 
-msgctxt "odt:purchase.purchase:"
+msgctxt "report:purchase.purchase:"
 msgid "Amount"
 msgstr "Importe"
 
-msgctxt "odt:purchase.purchase:"
+msgctxt "report:purchase.purchase:"
 msgid "Date:"
 msgstr "Fecha:"
 
-msgctxt "odt:purchase.purchase:"
+msgctxt "report:purchase.purchase:"
 msgid "Description"
 msgstr "Descripción"
 
-msgctxt "odt:purchase.purchase:"
+msgctxt "report:purchase.purchase:"
 msgid "Description:"
 msgstr "Descripción:"
 
-msgctxt "odt:purchase.purchase:"
+msgctxt "report:purchase.purchase:"
 msgid "Draft Purchase Order"
 msgstr "Pedido de compra borrador"
 
-msgctxt "odt:purchase.purchase:"
+msgctxt "report:purchase.purchase:"
 msgid "Purchase Order N°:"
 msgstr "Pedido de compra Nº:"
 
-msgctxt "odt:purchase.purchase:"
+msgctxt "report:purchase.purchase:"
 msgid "Quantity"
 msgstr "Cantidad"
 
-msgctxt "odt:purchase.purchase:"
+#, fuzzy
+msgctxt "report:purchase.purchase:"
+msgid "Reference:"
+msgstr "Referencia"
+
+msgctxt "report:purchase.purchase:"
 msgid "Request for Quotation N°:"
 msgstr "Solicitud de presupuesto Nº:"
 
-msgctxt "odt:purchase.purchase:"
+msgctxt "report:purchase.purchase:"
 msgid "Taxes"
 msgstr "Impuestos"
 
-msgctxt "odt:purchase.purchase:"
+msgctxt "report:purchase.purchase:"
 msgid "Taxes:"
 msgstr "Impuestos:"
 
-msgctxt "odt:purchase.purchase:"
+msgctxt "report:purchase.purchase:"
 msgid "Total (excl. taxes):"
 msgstr "Base imponible:"
 
-msgctxt "odt:purchase.purchase:"
+msgctxt "report:purchase.purchase:"
 msgid "Total:"
 msgstr "Total:"
 
-msgctxt "odt:purchase.purchase:"
+msgctxt "report:purchase.purchase:"
 msgid "Unit Price"
 msgstr "Precio unidad"
 
-msgctxt "odt:purchase.purchase:"
+msgctxt "report:purchase.purchase:"
 msgid "VAT:"
 msgstr "CIF/NIF:"
 
diff --git a/locale/es_MX.po b/locale/es_MX.po
index 201047e..2521524 100644
--- a/locale/es_MX.po
+++ b/locale/es_MX.po
@@ -61,6 +61,21 @@ msgctxt "field:account.invoice,purchases:"
 msgid "Purchases"
 msgstr "Compras"
 
+#, fuzzy
+msgctxt "field:product.product,product_suppliers:"
+msgid "Suppliers"
+msgstr "Proveedores"
+
+#, fuzzy
+msgctxt "field:product.product,purchasable:"
+msgid "Purchasable"
+msgstr "Puede ser comprado"
+
+#, fuzzy
+msgctxt "field:product.product,purchase_uom:"
+msgid "Purchase UOM"
+msgstr "UdM de compra"
+
 msgctxt "field:product.template,product_suppliers:"
 msgid "Suppliers"
 msgstr "Proveedores"
@@ -90,8 +105,8 @@ msgid "Invoice Method"
 msgstr "Método de facturación"
 
 msgctxt "field:purchase.configuration,purchase_sequence:"
-msgid "Purchase Reference Sequence"
-msgstr "Secuencia de pedidos de compra"
+msgid "Purchase Sequence"
+msgstr ""
 
 msgctxt "field:purchase.configuration,rec_name:"
 msgid "Name"
@@ -357,14 +372,14 @@ msgctxt "field:purchase.product_supplier,currency:"
 msgid "Currency"
 msgstr "Moneda"
 
-msgctxt "field:purchase.product_supplier,delivery_time:"
-msgid "Delivery Time"
-msgstr "Plazo de entrega"
-
 msgctxt "field:purchase.product_supplier,id:"
 msgid "ID"
 msgstr "ID"
 
+msgctxt "field:purchase.product_supplier,lead_time:"
+msgid "Lead Time"
+msgstr ""
+
 msgctxt "field:purchase.product_supplier,name:"
 msgid "Name"
 msgstr "Nombre"
@@ -501,6 +516,10 @@ msgctxt "field:purchase.purchase,moves:"
 msgid "Moves"
 msgstr "Movimientos"
 
+msgctxt "field:purchase.purchase,number:"
+msgid "Number"
+msgstr ""
+
 msgctxt "field:purchase.purchase,party:"
 msgid "Party"
 msgstr "Entidad"
@@ -541,10 +560,6 @@ msgctxt "field:purchase.purchase,state:"
 msgid "State"
 msgstr "Estado"
 
-msgctxt "field:purchase.purchase,supplier_reference:"
-msgid "Supplier Reference"
-msgstr "Referencia de proveedor"
-
 msgctxt "field:purchase.purchase,tax_amount:"
 msgid "Tax"
 msgstr "Impuestos"
@@ -645,6 +660,10 @@ msgctxt "field:purchase.purchase-recreated-account.invoice,write_uid:"
 msgid "Write User"
 msgstr "Usuario modificación"
 
+msgctxt "field:stock.location,supplier_return_location:"
+msgid "Supplier Return"
+msgstr ""
+
 msgctxt "field:stock.move,purchase:"
 msgid "Purchase"
 msgstr "Compra"
@@ -692,14 +711,14 @@ msgid "The selected moves will be recreated. The other ones will be ignored."
 msgstr ""
 "Los movimientos seleccionados serán recreados. Los otros serán ignorados."
 
-msgctxt "help:purchase.product_supplier,delivery_time:"
-msgid "In number of days"
-msgstr "En número de días."
-
 msgctxt "help:purchase.product_supplier.price,quantity:"
 msgid "Minimal quantity"
 msgstr "Cantidad mínima."
 
+msgctxt "help:stock.location,supplier_return_location:"
+msgid "If empty the Storage location is used"
+msgstr ""
+
 msgctxt "model:ir.action,name:act_invoice_form"
 msgid "Invoices"
 msgstr "Facturas"
@@ -868,59 +887,72 @@ msgctxt "model:res.group,name:group_purchase_admin"
 msgid "Purchase Administrator"
 msgstr "Administración de compras"
 
-msgctxt "odt:purchase.purchase:"
+#, fuzzy
+msgctxt "report:purchase.purchase:"
 msgid "Amount"
-msgstr ""
+msgstr "Importe"
 
-msgctxt "odt:purchase.purchase:"
+msgctxt "report:purchase.purchase:"
 msgid "Date:"
 msgstr ""
 
-msgctxt "odt:purchase.purchase:"
+#, fuzzy
+msgctxt "report:purchase.purchase:"
 msgid "Description"
-msgstr ""
+msgstr "Descripción"
 
-msgctxt "odt:purchase.purchase:"
+#, fuzzy
+msgctxt "report:purchase.purchase:"
 msgid "Description:"
-msgstr ""
+msgstr "Descripción"
 
-msgctxt "odt:purchase.purchase:"
+msgctxt "report:purchase.purchase:"
 msgid "Draft Purchase Order"
 msgstr ""
 
-msgctxt "odt:purchase.purchase:"
+msgctxt "report:purchase.purchase:"
 msgid "Purchase Order N°:"
 msgstr ""
 
-msgctxt "odt:purchase.purchase:"
+#, fuzzy
+msgctxt "report:purchase.purchase:"
 msgid "Quantity"
-msgstr ""
+msgstr "Cantidad"
 
-msgctxt "odt:purchase.purchase:"
+#, fuzzy
+msgctxt "report:purchase.purchase:"
+msgid "Reference:"
+msgstr "Referencia"
+
+msgctxt "report:purchase.purchase:"
 msgid "Request for Quotation N°:"
 msgstr ""
 
-msgctxt "odt:purchase.purchase:"
+#, fuzzy
+msgctxt "report:purchase.purchase:"
 msgid "Taxes"
-msgstr ""
+msgstr "Impuestos"
 
-msgctxt "odt:purchase.purchase:"
+#, fuzzy
+msgctxt "report:purchase.purchase:"
 msgid "Taxes:"
-msgstr ""
+msgstr "Impuestos"
 
-msgctxt "odt:purchase.purchase:"
+msgctxt "report:purchase.purchase:"
 msgid "Total (excl. taxes):"
 msgstr ""
 
-msgctxt "odt:purchase.purchase:"
+#, fuzzy
+msgctxt "report:purchase.purchase:"
 msgid "Total:"
-msgstr ""
+msgstr "Total"
 
-msgctxt "odt:purchase.purchase:"
+#, fuzzy
+msgctxt "report:purchase.purchase:"
 msgid "Unit Price"
-msgstr ""
+msgstr "Precio unidad"
 
-msgctxt "odt:purchase.purchase:"
+msgctxt "report:purchase.purchase:"
 msgid "VAT:"
 msgstr ""
 
@@ -1044,93 +1076,112 @@ msgctxt "selection:stock.move,purchase_exception_state:"
 msgid "Recreated"
 msgstr "Recreado"
 
+#, fuzzy
 msgctxt "view:product.product:"
 msgid "Products"
-msgstr ""
+msgstr "Producto"
 
+#, fuzzy
 msgctxt "view:product.template:"
 msgid "Suppliers"
-msgstr ""
+msgstr "Proveedores"
 
+#, fuzzy
 msgctxt "view:purchase.configuration:"
 msgid "Purchase Configuration"
-msgstr ""
+msgstr "Configuración de compras"
 
 msgctxt "view:purchase.handle.invoice.exception.ask:"
 msgid "Choose invoices to recreate"
 msgstr ""
 
+#, fuzzy
 msgctxt "view:purchase.handle.invoice.exception.ask:"
 msgid "Handle Invoice Exception"
-msgstr ""
+msgstr "Gestionar excepción de factura"
 
 msgctxt "view:purchase.handle.shipment.exception.ask:"
 msgid "Choose move to recreate"
 msgstr ""
 
+#, fuzzy
 msgctxt "view:purchase.handle.shipment.exception.ask:"
 msgid "Handle shipment Exception"
-msgstr ""
+msgstr "Gestionar excepción de envío"
 
 msgctxt "view:purchase.line:"
 msgid "General"
 msgstr ""
 
+#, fuzzy
 msgctxt "view:purchase.line:"
 msgid "Lines"
-msgstr ""
+msgstr "Líneas"
 
+#, fuzzy
 msgctxt "view:purchase.line:"
 msgid "Notes"
-msgstr ""
+msgstr "Nota"
 
+#, fuzzy
 msgctxt "view:purchase.line:"
 msgid "Purchase Line"
-msgstr ""
+msgstr "Línea de compra"
 
+#, fuzzy
 msgctxt "view:purchase.line:"
 msgid "Purchase Lines"
-msgstr ""
+msgstr "Línea de compra"
 
+#, fuzzy
 msgctxt "view:purchase.line:"
 msgid "Taxes"
-msgstr ""
+msgstr "Impuestos"
 
+#, fuzzy
 msgctxt "view:purchase.product_supplier.price:"
 msgid "Product Supplier Price"
-msgstr ""
+msgstr "Precio del proveedor del producto"
 
+#, fuzzy
 msgctxt "view:purchase.product_supplier.price:"
 msgid "Product Supplier Prices"
-msgstr ""
+msgstr "Precio del proveedor del producto"
 
+#, fuzzy
 msgctxt "view:purchase.product_supplier:"
 msgid "Product Supplier"
-msgstr ""
+msgstr "Proveedor de producto"
 
+#, fuzzy
 msgctxt "view:purchase.product_supplier:"
 msgid "Product Suppliers"
-msgstr ""
+msgstr "Proveedores de productos"
 
+#, fuzzy
 msgctxt "view:purchase.purchase:"
 msgid "Cancel"
-msgstr ""
+msgstr "Cancelar"
 
+#, fuzzy
 msgctxt "view:purchase.purchase:"
 msgid "Confirm"
-msgstr ""
+msgstr "Confirmada"
 
+#, fuzzy
 msgctxt "view:purchase.purchase:"
 msgid "Draft"
-msgstr ""
+msgstr "Borrador"
 
+#, fuzzy
 msgctxt "view:purchase.purchase:"
 msgid "Handle Invoice Exception"
-msgstr ""
+msgstr "Gestionar excepción de factura"
 
+#, fuzzy
 msgctxt "view:purchase.purchase:"
 msgid "Handle Shipment Exception"
-msgstr ""
+msgstr "Gestionar excepción de envío"
 
 msgctxt "view:purchase.purchase:"
 msgid "Other Info"
@@ -1140,21 +1191,24 @@ msgctxt "view:purchase.purchase:"
 msgid "Process"
 msgstr ""
 
+#, fuzzy
 msgctxt "view:purchase.purchase:"
 msgid "Purchase"
-msgstr ""
+msgstr "Compra"
 
+#, fuzzy
 msgctxt "view:purchase.purchase:"
 msgid "Purchases"
-msgstr ""
+msgstr "Compras"
 
 msgctxt "view:purchase.purchase:"
 msgid "Quote"
 msgstr ""
 
+#, fuzzy
 msgctxt "view:stock.move:"
 msgid "Moves"
-msgstr ""
+msgstr "Movimientos"
 
 msgctxt "wizard_button:purchase.handle.invoice.exception,ask,end:"
 msgid "Cancel"
diff --git a/locale/fr_FR.po b/locale/fr_FR.po
index 0d3b241..4a65c68 100644
--- a/locale/fr_FR.po
+++ b/locale/fr_FR.po
@@ -61,6 +61,21 @@ msgctxt "field:account.invoice,purchases:"
 msgid "Purchases"
 msgstr "Achats"
 
+#, fuzzy
+msgctxt "field:product.product,product_suppliers:"
+msgid "Suppliers"
+msgstr "Fournisseurs"
+
+#, fuzzy
+msgctxt "field:product.product,purchasable:"
+msgid "Purchasable"
+msgstr "Achetable"
+
+#, fuzzy
+msgctxt "field:product.product,purchase_uom:"
+msgid "Purchase UOM"
+msgstr "UDM à l'achat"
+
 msgctxt "field:product.template,product_suppliers:"
 msgid "Suppliers"
 msgstr "Fournisseurs"
@@ -90,8 +105,8 @@ msgid "Invoice Method"
 msgstr "Méthode de facturation"
 
 msgctxt "field:purchase.configuration,purchase_sequence:"
-msgid "Purchase Reference Sequence"
-msgstr "Séquence de référence d'achat"
+msgid "Purchase Sequence"
+msgstr ""
 
 msgctxt "field:purchase.configuration,rec_name:"
 msgid "Name"
@@ -357,14 +372,14 @@ msgctxt "field:purchase.product_supplier,currency:"
 msgid "Currency"
 msgstr "Devise"
 
-msgctxt "field:purchase.product_supplier,delivery_time:"
-msgid "Delivery Time"
-msgstr "Délai de livraison"
-
 msgctxt "field:purchase.product_supplier,id:"
 msgid "ID"
 msgstr "ID"
 
+msgctxt "field:purchase.product_supplier,lead_time:"
+msgid "Lead Time"
+msgstr ""
+
 msgctxt "field:purchase.product_supplier,name:"
 msgid "Name"
 msgstr "Nom"
@@ -501,6 +516,10 @@ msgctxt "field:purchase.purchase,moves:"
 msgid "Moves"
 msgstr "Mouvements"
 
+msgctxt "field:purchase.purchase,number:"
+msgid "Number"
+msgstr ""
+
 msgctxt "field:purchase.purchase,party:"
 msgid "Party"
 msgstr "Tiers"
@@ -541,10 +560,6 @@ msgctxt "field:purchase.purchase,state:"
 msgid "State"
 msgstr "État"
 
-msgctxt "field:purchase.purchase,supplier_reference:"
-msgid "Supplier Reference"
-msgstr "Référence fournisseur"
-
 msgctxt "field:purchase.purchase,tax_amount:"
 msgid "Tax"
 msgstr "Taxe"
@@ -645,6 +660,10 @@ msgctxt "field:purchase.purchase-recreated-account.invoice,write_uid:"
 msgid "Write User"
 msgstr "Mis à jour par"
 
+msgctxt "field:stock.location,supplier_return_location:"
+msgid "Supplier Return"
+msgstr ""
+
 msgctxt "field:stock.move,purchase:"
 msgid "Purchase"
 msgstr "Achat"
@@ -692,14 +711,14 @@ msgid "The selected moves will be recreated. The other ones will be ignored."
 msgstr ""
 "Les mouvements sélectionnés seront recréés. Les autres seront ignorés."
 
-msgctxt "help:purchase.product_supplier,delivery_time:"
-msgid "In number of days"
-msgstr "En nombre de jours"
-
 msgctxt "help:purchase.product_supplier.price,quantity:"
 msgid "Minimal quantity"
 msgstr "Quantité minimale"
 
+msgctxt "help:stock.location,supplier_return_location:"
+msgid "If empty the Storage location is used"
+msgstr ""
+
 msgctxt "model:ir.action,name:act_invoice_form"
 msgid "Invoices"
 msgstr "Factures"
@@ -868,59 +887,64 @@ msgctxt "model:res.group,name:group_purchase_admin"
 msgid "Purchase Administrator"
 msgstr "Administrateur des achats"
 
-msgctxt "odt:purchase.purchase:"
+msgctxt "report:purchase.purchase:"
 msgid "Amount"
 msgstr "Montant"
 
-msgctxt "odt:purchase.purchase:"
+msgctxt "report:purchase.purchase:"
 msgid "Date:"
 msgstr "Date :"
 
-msgctxt "odt:purchase.purchase:"
+msgctxt "report:purchase.purchase:"
 msgid "Description"
 msgstr "Description"
 
-msgctxt "odt:purchase.purchase:"
+msgctxt "report:purchase.purchase:"
 msgid "Description:"
 msgstr "Description:"
 
-msgctxt "odt:purchase.purchase:"
+msgctxt "report:purchase.purchase:"
 msgid "Draft Purchase Order"
 msgstr "Commande d'achat"
 
-msgctxt "odt:purchase.purchase:"
+msgctxt "report:purchase.purchase:"
 msgid "Purchase Order N°:"
 msgstr "Commande d'achat n° :"
 
-msgctxt "odt:purchase.purchase:"
+msgctxt "report:purchase.purchase:"
 msgid "Quantity"
 msgstr "Quantité"
 
-msgctxt "odt:purchase.purchase:"
+#, fuzzy
+msgctxt "report:purchase.purchase:"
+msgid "Reference:"
+msgstr "Référence"
+
+msgctxt "report:purchase.purchase:"
 msgid "Request for Quotation N°:"
 msgstr "Demande pour le devis n° :"
 
-msgctxt "odt:purchase.purchase:"
+msgctxt "report:purchase.purchase:"
 msgid "Taxes"
 msgstr "Taxes"
 
-msgctxt "odt:purchase.purchase:"
+msgctxt "report:purchase.purchase:"
 msgid "Taxes:"
 msgstr "Taxes :"
 
-msgctxt "odt:purchase.purchase:"
+msgctxt "report:purchase.purchase:"
 msgid "Total (excl. taxes):"
 msgstr "Total (hors taxes) :"
 
-msgctxt "odt:purchase.purchase:"
+msgctxt "report:purchase.purchase:"
 msgid "Total:"
 msgstr "Total :"
 
-msgctxt "odt:purchase.purchase:"
+msgctxt "report:purchase.purchase:"
 msgid "Unit Price"
 msgstr "Prix unitaire"
 
-msgctxt "odt:purchase.purchase:"
+msgctxt "report:purchase.purchase:"
 msgid "VAT:"
 msgstr "TVA :"
 
diff --git a/locale/hu_HU.po b/locale/hu_HU.po
index 0f1c642..2141042 100644
--- a/locale/hu_HU.po
+++ b/locale/hu_HU.po
@@ -53,6 +53,18 @@ msgctxt "field:account.invoice,purchases:"
 msgid "Purchases"
 msgstr ""
 
+msgctxt "field:product.product,product_suppliers:"
+msgid "Suppliers"
+msgstr ""
+
+msgctxt "field:product.product,purchasable:"
+msgid "Purchasable"
+msgstr ""
+
+msgctxt "field:product.product,purchase_uom:"
+msgid "Purchase UOM"
+msgstr ""
+
 msgctxt "field:product.template,product_suppliers:"
 msgid "Suppliers"
 msgstr ""
@@ -82,7 +94,7 @@ msgid "Invoice Method"
 msgstr ""
 
 msgctxt "field:purchase.configuration,purchase_sequence:"
-msgid "Purchase Reference Sequence"
+msgid "Purchase Sequence"
 msgstr ""
 
 msgctxt "field:purchase.configuration,rec_name:"
@@ -349,14 +361,14 @@ msgctxt "field:purchase.product_supplier,currency:"
 msgid "Currency"
 msgstr ""
 
-msgctxt "field:purchase.product_supplier,delivery_time:"
-msgid "Delivery Time"
-msgstr ""
-
 msgctxt "field:purchase.product_supplier,id:"
 msgid "ID"
 msgstr ""
 
+msgctxt "field:purchase.product_supplier,lead_time:"
+msgid "Lead Time"
+msgstr ""
+
 msgctxt "field:purchase.product_supplier,name:"
 msgid "Name"
 msgstr ""
@@ -493,6 +505,10 @@ msgctxt "field:purchase.purchase,moves:"
 msgid "Moves"
 msgstr ""
 
+msgctxt "field:purchase.purchase,number:"
+msgid "Number"
+msgstr ""
+
 msgctxt "field:purchase.purchase,party:"
 msgid "Party"
 msgstr ""
@@ -533,10 +549,6 @@ msgctxt "field:purchase.purchase,state:"
 msgid "State"
 msgstr ""
 
-msgctxt "field:purchase.purchase,supplier_reference:"
-msgid "Supplier Reference"
-msgstr ""
-
 msgctxt "field:purchase.purchase,tax_amount:"
 msgid "Tax"
 msgstr ""
@@ -637,6 +649,10 @@ msgctxt "field:purchase.purchase-recreated-account.invoice,write_uid:"
 msgid "Write User"
 msgstr ""
 
+msgctxt "field:stock.location,supplier_return_location:"
+msgid "Supplier Return"
+msgstr ""
+
 msgctxt "field:stock.move,purchase:"
 msgid "Purchase"
 msgstr ""
@@ -682,14 +698,14 @@ msgctxt "help:purchase.handle.shipment.exception.ask,recreate_moves:"
 msgid "The selected moves will be recreated. The other ones will be ignored."
 msgstr ""
 
-msgctxt "help:purchase.product_supplier,delivery_time:"
-msgid "In number of days"
-msgstr ""
-
 msgctxt "help:purchase.product_supplier.price,quantity:"
 msgid "Minimal quantity"
 msgstr ""
 
+msgctxt "help:stock.location,supplier_return_location:"
+msgid "If empty the Storage location is used"
+msgstr ""
+
 msgctxt "model:ir.action,name:act_invoice_form"
 msgid "Invoices"
 msgstr ""
@@ -858,59 +874,63 @@ msgctxt "model:res.group,name:group_purchase_admin"
 msgid "Purchase Administrator"
 msgstr ""
 
-msgctxt "odt:purchase.purchase:"
+msgctxt "report:purchase.purchase:"
 msgid "Amount"
 msgstr ""
 
-msgctxt "odt:purchase.purchase:"
+msgctxt "report:purchase.purchase:"
 msgid "Date:"
 msgstr ""
 
-msgctxt "odt:purchase.purchase:"
+msgctxt "report:purchase.purchase:"
 msgid "Description"
 msgstr ""
 
-msgctxt "odt:purchase.purchase:"
+msgctxt "report:purchase.purchase:"
 msgid "Description:"
 msgstr ""
 
-msgctxt "odt:purchase.purchase:"
+msgctxt "report:purchase.purchase:"
 msgid "Draft Purchase Order"
 msgstr ""
 
-msgctxt "odt:purchase.purchase:"
+msgctxt "report:purchase.purchase:"
 msgid "Purchase Order N°:"
 msgstr ""
 
-msgctxt "odt:purchase.purchase:"
+msgctxt "report:purchase.purchase:"
 msgid "Quantity"
 msgstr ""
 
-msgctxt "odt:purchase.purchase:"
+msgctxt "report:purchase.purchase:"
+msgid "Reference:"
+msgstr ""
+
+msgctxt "report:purchase.purchase:"
 msgid "Request for Quotation N°:"
 msgstr ""
 
-msgctxt "odt:purchase.purchase:"
+msgctxt "report:purchase.purchase:"
 msgid "Taxes"
 msgstr ""
 
-msgctxt "odt:purchase.purchase:"
+msgctxt "report:purchase.purchase:"
 msgid "Taxes:"
 msgstr ""
 
-msgctxt "odt:purchase.purchase:"
+msgctxt "report:purchase.purchase:"
 msgid "Total (excl. taxes):"
 msgstr ""
 
-msgctxt "odt:purchase.purchase:"
+msgctxt "report:purchase.purchase:"
 msgid "Total:"
 msgstr ""
 
-msgctxt "odt:purchase.purchase:"
+msgctxt "report:purchase.purchase:"
 msgid "Unit Price"
 msgstr ""
 
-msgctxt "odt:purchase.purchase:"
+msgctxt "report:purchase.purchase:"
 msgid "VAT:"
 msgstr ""
 
diff --git a/locale/it_IT.po b/locale/it_IT.po
index 0f1c642..2141042 100644
--- a/locale/it_IT.po
+++ b/locale/it_IT.po
@@ -53,6 +53,18 @@ msgctxt "field:account.invoice,purchases:"
 msgid "Purchases"
 msgstr ""
 
+msgctxt "field:product.product,product_suppliers:"
+msgid "Suppliers"
+msgstr ""
+
+msgctxt "field:product.product,purchasable:"
+msgid "Purchasable"
+msgstr ""
+
+msgctxt "field:product.product,purchase_uom:"
+msgid "Purchase UOM"
+msgstr ""
+
 msgctxt "field:product.template,product_suppliers:"
 msgid "Suppliers"
 msgstr ""
@@ -82,7 +94,7 @@ msgid "Invoice Method"
 msgstr ""
 
 msgctxt "field:purchase.configuration,purchase_sequence:"
-msgid "Purchase Reference Sequence"
+msgid "Purchase Sequence"
 msgstr ""
 
 msgctxt "field:purchase.configuration,rec_name:"
@@ -349,14 +361,14 @@ msgctxt "field:purchase.product_supplier,currency:"
 msgid "Currency"
 msgstr ""
 
-msgctxt "field:purchase.product_supplier,delivery_time:"
-msgid "Delivery Time"
-msgstr ""
-
 msgctxt "field:purchase.product_supplier,id:"
 msgid "ID"
 msgstr ""
 
+msgctxt "field:purchase.product_supplier,lead_time:"
+msgid "Lead Time"
+msgstr ""
+
 msgctxt "field:purchase.product_supplier,name:"
 msgid "Name"
 msgstr ""
@@ -493,6 +505,10 @@ msgctxt "field:purchase.purchase,moves:"
 msgid "Moves"
 msgstr ""
 
+msgctxt "field:purchase.purchase,number:"
+msgid "Number"
+msgstr ""
+
 msgctxt "field:purchase.purchase,party:"
 msgid "Party"
 msgstr ""
@@ -533,10 +549,6 @@ msgctxt "field:purchase.purchase,state:"
 msgid "State"
 msgstr ""
 
-msgctxt "field:purchase.purchase,supplier_reference:"
-msgid "Supplier Reference"
-msgstr ""
-
 msgctxt "field:purchase.purchase,tax_amount:"
 msgid "Tax"
 msgstr ""
@@ -637,6 +649,10 @@ msgctxt "field:purchase.purchase-recreated-account.invoice,write_uid:"
 msgid "Write User"
 msgstr ""
 
+msgctxt "field:stock.location,supplier_return_location:"
+msgid "Supplier Return"
+msgstr ""
+
 msgctxt "field:stock.move,purchase:"
 msgid "Purchase"
 msgstr ""
@@ -682,14 +698,14 @@ msgctxt "help:purchase.handle.shipment.exception.ask,recreate_moves:"
 msgid "The selected moves will be recreated. The other ones will be ignored."
 msgstr ""
 
-msgctxt "help:purchase.product_supplier,delivery_time:"
-msgid "In number of days"
-msgstr ""
-
 msgctxt "help:purchase.product_supplier.price,quantity:"
 msgid "Minimal quantity"
 msgstr ""
 
+msgctxt "help:stock.location,supplier_return_location:"
+msgid "If empty the Storage location is used"
+msgstr ""
+
 msgctxt "model:ir.action,name:act_invoice_form"
 msgid "Invoices"
 msgstr ""
@@ -858,59 +874,63 @@ msgctxt "model:res.group,name:group_purchase_admin"
 msgid "Purchase Administrator"
 msgstr ""
 
-msgctxt "odt:purchase.purchase:"
+msgctxt "report:purchase.purchase:"
 msgid "Amount"
 msgstr ""
 
-msgctxt "odt:purchase.purchase:"
+msgctxt "report:purchase.purchase:"
 msgid "Date:"
 msgstr ""
 
-msgctxt "odt:purchase.purchase:"
+msgctxt "report:purchase.purchase:"
 msgid "Description"
 msgstr ""
 
-msgctxt "odt:purchase.purchase:"
+msgctxt "report:purchase.purchase:"
 msgid "Description:"
 msgstr ""
 
-msgctxt "odt:purchase.purchase:"
+msgctxt "report:purchase.purchase:"
 msgid "Draft Purchase Order"
 msgstr ""
 
-msgctxt "odt:purchase.purchase:"
+msgctxt "report:purchase.purchase:"
 msgid "Purchase Order N°:"
 msgstr ""
 
-msgctxt "odt:purchase.purchase:"
+msgctxt "report:purchase.purchase:"
 msgid "Quantity"
 msgstr ""
 
-msgctxt "odt:purchase.purchase:"
+msgctxt "report:purchase.purchase:"
+msgid "Reference:"
+msgstr ""
+
+msgctxt "report:purchase.purchase:"
 msgid "Request for Quotation N°:"
 msgstr ""
 
-msgctxt "odt:purchase.purchase:"
+msgctxt "report:purchase.purchase:"
 msgid "Taxes"
 msgstr ""
 
-msgctxt "odt:purchase.purchase:"
+msgctxt "report:purchase.purchase:"
 msgid "Taxes:"
 msgstr ""
 
-msgctxt "odt:purchase.purchase:"
+msgctxt "report:purchase.purchase:"
 msgid "Total (excl. taxes):"
 msgstr ""
 
-msgctxt "odt:purchase.purchase:"
+msgctxt "report:purchase.purchase:"
 msgid "Total:"
 msgstr ""
 
-msgctxt "odt:purchase.purchase:"
+msgctxt "report:purchase.purchase:"
 msgid "Unit Price"
 msgstr ""
 
-msgctxt "odt:purchase.purchase:"
+msgctxt "report:purchase.purchase:"
 msgid "VAT:"
 msgstr ""
 
diff --git a/locale/ja_JP.po b/locale/ja_JP.po
index 0f1c642..2141042 100644
--- a/locale/ja_JP.po
+++ b/locale/ja_JP.po
@@ -53,6 +53,18 @@ msgctxt "field:account.invoice,purchases:"
 msgid "Purchases"
 msgstr ""
 
+msgctxt "field:product.product,product_suppliers:"
+msgid "Suppliers"
+msgstr ""
+
+msgctxt "field:product.product,purchasable:"
+msgid "Purchasable"
+msgstr ""
+
+msgctxt "field:product.product,purchase_uom:"
+msgid "Purchase UOM"
+msgstr ""
+
 msgctxt "field:product.template,product_suppliers:"
 msgid "Suppliers"
 msgstr ""
@@ -82,7 +94,7 @@ msgid "Invoice Method"
 msgstr ""
 
 msgctxt "field:purchase.configuration,purchase_sequence:"
-msgid "Purchase Reference Sequence"
+msgid "Purchase Sequence"
 msgstr ""
 
 msgctxt "field:purchase.configuration,rec_name:"
@@ -349,14 +361,14 @@ msgctxt "field:purchase.product_supplier,currency:"
 msgid "Currency"
 msgstr ""
 
-msgctxt "field:purchase.product_supplier,delivery_time:"
-msgid "Delivery Time"
-msgstr ""
-
 msgctxt "field:purchase.product_supplier,id:"
 msgid "ID"
 msgstr ""
 
+msgctxt "field:purchase.product_supplier,lead_time:"
+msgid "Lead Time"
+msgstr ""
+
 msgctxt "field:purchase.product_supplier,name:"
 msgid "Name"
 msgstr ""
@@ -493,6 +505,10 @@ msgctxt "field:purchase.purchase,moves:"
 msgid "Moves"
 msgstr ""
 
+msgctxt "field:purchase.purchase,number:"
+msgid "Number"
+msgstr ""
+
 msgctxt "field:purchase.purchase,party:"
 msgid "Party"
 msgstr ""
@@ -533,10 +549,6 @@ msgctxt "field:purchase.purchase,state:"
 msgid "State"
 msgstr ""
 
-msgctxt "field:purchase.purchase,supplier_reference:"
-msgid "Supplier Reference"
-msgstr ""
-
 msgctxt "field:purchase.purchase,tax_amount:"
 msgid "Tax"
 msgstr ""
@@ -637,6 +649,10 @@ msgctxt "field:purchase.purchase-recreated-account.invoice,write_uid:"
 msgid "Write User"
 msgstr ""
 
+msgctxt "field:stock.location,supplier_return_location:"
+msgid "Supplier Return"
+msgstr ""
+
 msgctxt "field:stock.move,purchase:"
 msgid "Purchase"
 msgstr ""
@@ -682,14 +698,14 @@ msgctxt "help:purchase.handle.shipment.exception.ask,recreate_moves:"
 msgid "The selected moves will be recreated. The other ones will be ignored."
 msgstr ""
 
-msgctxt "help:purchase.product_supplier,delivery_time:"
-msgid "In number of days"
-msgstr ""
-
 msgctxt "help:purchase.product_supplier.price,quantity:"
 msgid "Minimal quantity"
 msgstr ""
 
+msgctxt "help:stock.location,supplier_return_location:"
+msgid "If empty the Storage location is used"
+msgstr ""
+
 msgctxt "model:ir.action,name:act_invoice_form"
 msgid "Invoices"
 msgstr ""
@@ -858,59 +874,63 @@ msgctxt "model:res.group,name:group_purchase_admin"
 msgid "Purchase Administrator"
 msgstr ""
 
-msgctxt "odt:purchase.purchase:"
+msgctxt "report:purchase.purchase:"
 msgid "Amount"
 msgstr ""
 
-msgctxt "odt:purchase.purchase:"
+msgctxt "report:purchase.purchase:"
 msgid "Date:"
 msgstr ""
 
-msgctxt "odt:purchase.purchase:"
+msgctxt "report:purchase.purchase:"
 msgid "Description"
 msgstr ""
 
-msgctxt "odt:purchase.purchase:"
+msgctxt "report:purchase.purchase:"
 msgid "Description:"
 msgstr ""
 
-msgctxt "odt:purchase.purchase:"
+msgctxt "report:purchase.purchase:"
 msgid "Draft Purchase Order"
 msgstr ""
 
-msgctxt "odt:purchase.purchase:"
+msgctxt "report:purchase.purchase:"
 msgid "Purchase Order N°:"
 msgstr ""
 
-msgctxt "odt:purchase.purchase:"
+msgctxt "report:purchase.purchase:"
 msgid "Quantity"
 msgstr ""
 
-msgctxt "odt:purchase.purchase:"
+msgctxt "report:purchase.purchase:"
+msgid "Reference:"
+msgstr ""
+
+msgctxt "report:purchase.purchase:"
 msgid "Request for Quotation N°:"
 msgstr ""
 
-msgctxt "odt:purchase.purchase:"
+msgctxt "report:purchase.purchase:"
 msgid "Taxes"
 msgstr ""
 
-msgctxt "odt:purchase.purchase:"
+msgctxt "report:purchase.purchase:"
 msgid "Taxes:"
 msgstr ""
 
-msgctxt "odt:purchase.purchase:"
+msgctxt "report:purchase.purchase:"
 msgid "Total (excl. taxes):"
 msgstr ""
 
-msgctxt "odt:purchase.purchase:"
+msgctxt "report:purchase.purchase:"
 msgid "Total:"
 msgstr ""
 
-msgctxt "odt:purchase.purchase:"
+msgctxt "report:purchase.purchase:"
 msgid "Unit Price"
 msgstr ""
 
-msgctxt "odt:purchase.purchase:"
+msgctxt "report:purchase.purchase:"
 msgid "VAT:"
 msgstr ""
 
diff --git a/locale/nl_NL.po b/locale/lo_LA.po
similarity index 78%
copy from locale/nl_NL.po
copy to locale/lo_LA.po
index 4d1e5cc..3d724a8 100644
--- a/locale/nl_NL.po
+++ b/locale/lo_LA.po
@@ -45,18 +45,31 @@ msgid ""
 "purchase."
 msgstr ""
 
-#, fuzzy
 msgctxt "field:account.invoice,purchase_exception_state:"
 msgid "Exception State"
-msgstr "Uitzonderingstoestand"
+msgstr "ສະຖານະຍົກເວັ້ນ"
 
 msgctxt "field:account.invoice,purchases:"
 msgid "Purchases"
+msgstr "ການຈັດຊື້"
+
+#, fuzzy
+msgctxt "field:product.product,product_suppliers:"
+msgid "Suppliers"
+msgstr "ຜູ້ສະໜອງ"
+
+msgctxt "field:product.product,purchasable:"
+msgid "Purchasable"
 msgstr ""
 
+msgctxt "field:product.product,purchase_uom:"
+msgid "Purchase UOM"
+msgstr ""
+
+#, fuzzy
 msgctxt "field:product.template,product_suppliers:"
 msgid "Suppliers"
-msgstr ""
+msgstr "ຜູ້ສະໜອງ"
 
 msgctxt "field:product.template,purchasable:"
 msgid "Purchasable"
@@ -66,209 +79,203 @@ msgctxt "field:product.template,purchase_uom:"
 msgid "Purchase UOM"
 msgstr ""
 
+#, fuzzy
 msgctxt "field:purchase.configuration,create_date:"
 msgid "Create Date"
-msgstr ""
+msgstr "ສ້າງວັນທີ"
 
+#, fuzzy
 msgctxt "field:purchase.configuration,create_uid:"
 msgid "Create User"
-msgstr ""
+msgstr "ສ້າງຜູ້ໃຊ້ງານ"
 
+#, fuzzy
 msgctxt "field:purchase.configuration,id:"
 msgid "ID"
-msgstr ""
+msgstr "ເລກລໍາດັບ"
 
-#, fuzzy
 msgctxt "field:purchase.configuration,purchase_invoice_method:"
 msgid "Invoice Method"
-msgstr "Factuur afhandeling"
+msgstr ""
 
 msgctxt "field:purchase.configuration,purchase_sequence:"
-msgid "Purchase Reference Sequence"
+msgid "Purchase Sequence"
 msgstr ""
 
 #, fuzzy
 msgctxt "field:purchase.configuration,rec_name:"
 msgid "Name"
-msgstr "Naam bijlage"
+msgstr "ຊື່"
 
+#, fuzzy
 msgctxt "field:purchase.configuration,write_date:"
 msgid "Write Date"
-msgstr ""
+msgstr "ຂຽນວັນທີ"
 
+#, fuzzy
 msgctxt "field:purchase.configuration,write_uid:"
 msgid "Write User"
-msgstr ""
+msgstr "ຂຽນຜູ້ໃຊ້ງານ"
 
-#, fuzzy
 msgctxt "field:purchase.handle.invoice.exception.ask,domain_invoices:"
 msgid "Domain Invoices"
-msgstr "Domein facturen"
+msgstr ""
 
+#, fuzzy
 msgctxt "field:purchase.handle.invoice.exception.ask,id:"
 msgid "ID"
-msgstr ""
+msgstr "ເລກລໍາດັບ"
 
-#, fuzzy
 msgctxt "field:purchase.handle.invoice.exception.ask,recreate_invoices:"
 msgid "Recreate Invoices"
-msgstr "Facturen opnieuw aanmaken"
+msgstr ""
 
-#, fuzzy
 msgctxt "field:purchase.handle.shipment.exception.ask,domain_moves:"
 msgid "Domain Moves"
-msgstr "Domein boekingen"
+msgstr ""
 
+#, fuzzy
 msgctxt "field:purchase.handle.shipment.exception.ask,id:"
 msgid "ID"
-msgstr ""
+msgstr "ເລກລໍາດັບ"
 
-#, fuzzy
 msgctxt "field:purchase.handle.shipment.exception.ask,recreate_moves:"
 msgid "Recreate Moves"
-msgstr "Boekingen opnieuw aanmaken"
+msgstr ""
 
-#, fuzzy
 msgctxt "field:purchase.line,amount:"
 msgid "Amount"
-msgstr "Bedrag"
+msgstr ""
 
+#, fuzzy
 msgctxt "field:purchase.line,create_date:"
 msgid "Create Date"
-msgstr ""
+msgstr "ສ້າງວັນທີ"
 
+#, fuzzy
 msgctxt "field:purchase.line,create_uid:"
 msgid "Create User"
-msgstr ""
+msgstr "ສ້າງຜູ້ໃຊ້ງານ"
 
 msgctxt "field:purchase.line,delivery_date:"
 msgid "Delivery Date"
 msgstr ""
 
-#, fuzzy
 msgctxt "field:purchase.line,description:"
 msgid "Description"
-msgstr "Specificatie"
+msgstr "ເນື້ອໃນລາຍການ"
 
 msgctxt "field:purchase.line,from_location:"
 msgid "From Location"
 msgstr ""
 
+#, fuzzy
 msgctxt "field:purchase.line,id:"
 msgid "ID"
-msgstr ""
+msgstr "ເລກລໍາດັບ"
 
-#, fuzzy
 msgctxt "field:purchase.line,invoice_lines:"
 msgid "Invoice Lines"
-msgstr "Factuurregels"
+msgstr ""
 
-#, fuzzy
 msgctxt "field:purchase.line,move_done:"
 msgid "Moves Done"
-msgstr "Boekingen klaar"
+msgstr ""
 
-#, fuzzy
 msgctxt "field:purchase.line,move_exception:"
 msgid "Moves Exception"
-msgstr "Boekingen uitzondering"
+msgstr ""
 
-#, fuzzy
 msgctxt "field:purchase.line,moves:"
 msgid "Moves"
-msgstr "Boekingen"
+msgstr ""
 
-#, fuzzy
 msgctxt "field:purchase.line,moves_ignored:"
 msgid "Ignored Moves"
-msgstr "Genegeerde boekingen"
+msgstr ""
 
-#, fuzzy
 msgctxt "field:purchase.line,moves_recreated:"
 msgid "Recreated Moves"
-msgstr "Opnieuw aangemaakte boekingen"
+msgstr ""
 
-#, fuzzy
 msgctxt "field:purchase.line,note:"
 msgid "Note"
-msgstr "Aantekening"
+msgstr ""
 
-#, fuzzy
 msgctxt "field:purchase.line,product:"
 msgid "Product"
-msgstr "Producten"
+msgstr "ຜະລິດຕະພັນ"
 
 msgctxt "field:purchase.line,product_uom_category:"
 msgid "Product Uom Category"
 msgstr ""
 
+#, fuzzy
 msgctxt "field:purchase.line,purchase:"
 msgid "Purchase"
-msgstr ""
+msgstr "ສັ່ງຊື້"
 
-#, fuzzy
 msgctxt "field:purchase.line,quantity:"
 msgid "Quantity"
-msgstr "Hoeveelheid"
+msgstr "ຈຳນວນ"
 
 #, fuzzy
 msgctxt "field:purchase.line,rec_name:"
 msgid "Name"
-msgstr "Naam bijlage"
+msgstr "ຊື່"
 
-#, fuzzy
 msgctxt "field:purchase.line,sequence:"
 msgid "Sequence"
-msgstr "Reeks"
+msgstr ""
 
-#, fuzzy
 msgctxt "field:purchase.line,taxes:"
 msgid "Taxes"
-msgstr "Belastingen"
+msgstr "ອາກອນ"
 
 msgctxt "field:purchase.line,to_location:"
 msgid "To Location"
 msgstr ""
 
-#, fuzzy
 msgctxt "field:purchase.line,type:"
 msgid "Type"
-msgstr "Type"
+msgstr ""
 
-#, fuzzy
 msgctxt "field:purchase.line,unit:"
 msgid "Unit"
-msgstr "Eenheid"
+msgstr ""
 
-#, fuzzy
 msgctxt "field:purchase.line,unit_digits:"
 msgid "Unit Digits"
-msgstr "Decimalen eenheid"
+msgstr ""
 
-#, fuzzy
 msgctxt "field:purchase.line,unit_price:"
 msgid "Unit Price"
-msgstr "Eenheidsprijs"
+msgstr ""
 
+#, fuzzy
 msgctxt "field:purchase.line,write_date:"
 msgid "Write Date"
-msgstr ""
+msgstr "ຂຽນວັນທີ"
 
+#, fuzzy
 msgctxt "field:purchase.line,write_uid:"
 msgid "Write User"
-msgstr ""
+msgstr "ຂຽນຜູ້ໃຊ້ງານ"
 
+#, fuzzy
 msgctxt "field:purchase.line-account.tax,create_date:"
 msgid "Create Date"
-msgstr ""
+msgstr "ສ້າງວັນທີ"
 
+#, fuzzy
 msgctxt "field:purchase.line-account.tax,create_uid:"
 msgid "Create User"
-msgstr ""
+msgstr "ສ້າງຜູ້ໃຊ້ງານ"
 
+#, fuzzy
 msgctxt "field:purchase.line-account.tax,id:"
 msgid "ID"
-msgstr ""
+msgstr "ເລກລໍາດັບ"
 
 msgctxt "field:purchase.line-account.tax,line:"
 msgid "Purchase Line"
@@ -277,37 +284,40 @@ msgstr ""
 #, fuzzy
 msgctxt "field:purchase.line-account.tax,rec_name:"
 msgid "Name"
-msgstr "Naam bijlage"
+msgstr "ຊື່"
 
-#, fuzzy
 msgctxt "field:purchase.line-account.tax,tax:"
 msgid "Tax"
-msgstr "Belasting"
+msgstr ""
 
+#, fuzzy
 msgctxt "field:purchase.line-account.tax,write_date:"
 msgid "Write Date"
-msgstr ""
+msgstr "ຂຽນວັນທີ"
 
+#, fuzzy
 msgctxt "field:purchase.line-account.tax,write_uid:"
 msgid "Write User"
-msgstr ""
+msgstr "ຂຽນຜູ້ໃຊ້ງານ"
 
+#, fuzzy
 msgctxt "field:purchase.line-ignored-stock.move,create_date:"
 msgid "Create Date"
-msgstr ""
+msgstr "ສ້າງວັນທີ"
 
+#, fuzzy
 msgctxt "field:purchase.line-ignored-stock.move,create_uid:"
 msgid "Create User"
-msgstr ""
+msgstr "ສ້າງຜູ້ໃຊ້ງານ"
 
+#, fuzzy
 msgctxt "field:purchase.line-ignored-stock.move,id:"
 msgid "ID"
-msgstr ""
+msgstr "ເລກລໍາດັບ"
 
-#, fuzzy
 msgctxt "field:purchase.line-ignored-stock.move,move:"
 msgid "Move"
-msgstr "Boeking"
+msgstr ""
 
 msgctxt "field:purchase.line-ignored-stock.move,purchase_line:"
 msgid "Purchase Line"
@@ -316,32 +326,36 @@ msgstr ""
 #, fuzzy
 msgctxt "field:purchase.line-ignored-stock.move,rec_name:"
 msgid "Name"
-msgstr "Naam bijlage"
+msgstr "ຊື່"
 
+#, fuzzy
 msgctxt "field:purchase.line-ignored-stock.move,write_date:"
 msgid "Write Date"
-msgstr ""
+msgstr "ຂຽນວັນທີ"
 
+#, fuzzy
 msgctxt "field:purchase.line-ignored-stock.move,write_uid:"
 msgid "Write User"
-msgstr ""
+msgstr "ຂຽນຜູ້ໃຊ້ງານ"
 
+#, fuzzy
 msgctxt "field:purchase.line-recreated-stock.move,create_date:"
 msgid "Create Date"
-msgstr ""
+msgstr "ສ້າງວັນທີ"
 
+#, fuzzy
 msgctxt "field:purchase.line-recreated-stock.move,create_uid:"
 msgid "Create User"
-msgstr ""
+msgstr "ສ້າງຜູ້ໃຊ້ງານ"
 
+#, fuzzy
 msgctxt "field:purchase.line-recreated-stock.move,id:"
 msgid "ID"
-msgstr ""
+msgstr "ເລກລໍາດັບ"
 
-#, fuzzy
 msgctxt "field:purchase.line-recreated-stock.move,move:"
 msgid "Move"
-msgstr "Boeking"
+msgstr ""
 
 msgctxt "field:purchase.line-recreated-stock.move,purchase_line:"
 msgid "Purchase Line"
@@ -350,56 +364,58 @@ msgstr ""
 #, fuzzy
 msgctxt "field:purchase.line-recreated-stock.move,rec_name:"
 msgid "Name"
-msgstr "Naam bijlage"
+msgstr "ຊື່"
 
+#, fuzzy
 msgctxt "field:purchase.line-recreated-stock.move,write_date:"
 msgid "Write Date"
-msgstr ""
+msgstr "ຂຽນວັນທີ"
 
+#, fuzzy
 msgctxt "field:purchase.line-recreated-stock.move,write_uid:"
 msgid "Write User"
-msgstr ""
+msgstr "ຂຽນຜູ້ໃຊ້ງານ"
 
-#, fuzzy
 msgctxt "field:purchase.product_supplier,code:"
 msgid "Code"
-msgstr "Code"
+msgstr ""
 
-#, fuzzy
 msgctxt "field:purchase.product_supplier,company:"
 msgid "Company"
-msgstr "Bedrijf"
+msgstr ""
 
+#, fuzzy
 msgctxt "field:purchase.product_supplier,create_date:"
 msgid "Create Date"
-msgstr ""
+msgstr "ສ້າງວັນທີ"
 
+#, fuzzy
 msgctxt "field:purchase.product_supplier,create_uid:"
 msgid "Create User"
-msgstr ""
+msgstr "ສ້າງຜູ້ໃຊ້ງານ"
 
-#, fuzzy
 msgctxt "field:purchase.product_supplier,currency:"
 msgid "Currency"
-msgstr "Valuta"
-
-msgctxt "field:purchase.product_supplier,delivery_time:"
-msgid "Delivery Time"
 msgstr ""
 
+#, fuzzy
 msgctxt "field:purchase.product_supplier,id:"
 msgid "ID"
+msgstr "ເລກລໍາດັບ"
+
+msgctxt "field:purchase.product_supplier,lead_time:"
+msgid "Lead Time"
 msgstr ""
 
 #, fuzzy
 msgctxt "field:purchase.product_supplier,name:"
 msgid "Name"
-msgstr "Naam bijlage"
+msgstr "ຊື່"
 
 #, fuzzy
 msgctxt "field:purchase.product_supplier,party:"
 msgid "Supplier"
-msgstr "Leverancier"
+msgstr "ຜູ້ສະໜອງ"
 
 msgctxt "field:purchase.product_supplier,prices:"
 msgid "Prices"
@@ -408,162 +424,156 @@ msgstr ""
 #, fuzzy
 msgctxt "field:purchase.product_supplier,product:"
 msgid "Product"
-msgstr "Producten"
+msgstr "ຜະລິດຕະພັນ"
 
 #, fuzzy
 msgctxt "field:purchase.product_supplier,rec_name:"
 msgid "Name"
-msgstr "Naam bijlage"
+msgstr "ຊື່"
 
-#, fuzzy
 msgctxt "field:purchase.product_supplier,sequence:"
 msgid "Sequence"
-msgstr "Reeks"
+msgstr ""
 
+#, fuzzy
 msgctxt "field:purchase.product_supplier,write_date:"
 msgid "Write Date"
-msgstr ""
+msgstr "ຂຽນວັນທີ"
 
+#, fuzzy
 msgctxt "field:purchase.product_supplier,write_uid:"
 msgid "Write User"
-msgstr ""
+msgstr "ຂຽນຜູ້ໃຊ້ງານ"
 
+#, fuzzy
 msgctxt "field:purchase.product_supplier.price,create_date:"
 msgid "Create Date"
-msgstr ""
+msgstr "ສ້າງວັນທີ"
 
+#, fuzzy
 msgctxt "field:purchase.product_supplier.price,create_uid:"
 msgid "Create User"
-msgstr ""
+msgstr "ສ້າງຜູ້ໃຊ້ງານ"
 
+#, fuzzy
 msgctxt "field:purchase.product_supplier.price,id:"
 msgid "ID"
-msgstr ""
+msgstr "ເລກລໍາດັບ"
 
 #, fuzzy
 msgctxt "field:purchase.product_supplier.price,product_supplier:"
 msgid "Supplier"
-msgstr "Leverancier"
+msgstr "ຜູ້ສະໜອງ"
 
-#, fuzzy
 msgctxt "field:purchase.product_supplier.price,quantity:"
 msgid "Quantity"
-msgstr "Hoeveelheid"
+msgstr "ຈຳນວນ"
 
 #, fuzzy
 msgctxt "field:purchase.product_supplier.price,rec_name:"
 msgid "Name"
-msgstr "Naam bijlage"
+msgstr "ຊື່"
 
-#, fuzzy
 msgctxt "field:purchase.product_supplier.price,sequence:"
 msgid "Sequence"
-msgstr "Reeks"
+msgstr ""
 
-#, fuzzy
 msgctxt "field:purchase.product_supplier.price,unit_price:"
 msgid "Unit Price"
-msgstr "Eenheidsprijs"
+msgstr ""
 
+#, fuzzy
 msgctxt "field:purchase.product_supplier.price,write_date:"
 msgid "Write Date"
-msgstr ""
+msgstr "ຂຽນວັນທີ"
 
+#, fuzzy
 msgctxt "field:purchase.product_supplier.price,write_uid:"
 msgid "Write User"
-msgstr ""
+msgstr "ຂຽນຜູ້ໃຊ້ງານ"
 
-#, fuzzy
 msgctxt "field:purchase.purchase,comment:"
 msgid "Comment"
-msgstr "Opmerking"
+msgstr "ຄຳເຫັນ"
 
-#, fuzzy
 msgctxt "field:purchase.purchase,company:"
 msgid "Company"
-msgstr "Bedrijf"
+msgstr ""
 
 msgctxt "field:purchase.purchase,create_date:"
 msgid "Create Date"
-msgstr ""
+msgstr "ສ້າງວັນທີ"
 
+#, fuzzy
 msgctxt "field:purchase.purchase,create_uid:"
 msgid "Create User"
-msgstr ""
+msgstr "ສ້າງຜູ້ໃຊ້ງານ"
 
-#, fuzzy
 msgctxt "field:purchase.purchase,currency:"
 msgid "Currency"
-msgstr "Valuta"
+msgstr ""
 
-#, fuzzy
 msgctxt "field:purchase.purchase,currency_digits:"
 msgid "Currency Digits"
-msgstr "Valuta decimalen"
+msgstr ""
 
 #, fuzzy
 msgctxt "field:purchase.purchase,description:"
 msgid "Description"
-msgstr "Specificatie"
+msgstr "ເນື້ອໃນລາຍການ"
 
+#, fuzzy
 msgctxt "field:purchase.purchase,id:"
 msgid "ID"
-msgstr ""
+msgstr "ເລກລໍາດັບ"
 
-#, fuzzy
 msgctxt "field:purchase.purchase,invoice_address:"
 msgid "Invoice Address"
-msgstr "Factuuradres"
+msgstr ""
 
-#, fuzzy
 msgctxt "field:purchase.purchase,invoice_method:"
 msgid "Invoice Method"
-msgstr "Factuur afhandeling"
+msgstr ""
 
-#, fuzzy
 msgctxt "field:purchase.purchase,invoice_state:"
 msgid "Invoice State"
-msgstr "Factuur status"
+msgstr ""
 
-#, fuzzy
 msgctxt "field:purchase.purchase,invoices:"
 msgid "Invoices"
-msgstr "Verkoopfacturen"
+msgstr "ໃບເກັບເງິນ"
 
-#, fuzzy
 msgctxt "field:purchase.purchase,invoices_ignored:"
 msgid "Ignored Invoices"
-msgstr "Genegeerde facturen"
+msgstr ""
 
-#, fuzzy
 msgctxt "field:purchase.purchase,invoices_recreated:"
 msgid "Recreated Invoices"
-msgstr "Opnieuw aangemaakte facturen"
+msgstr ""
 
-#, fuzzy
 msgctxt "field:purchase.purchase,lines:"
 msgid "Lines"
-msgstr "Regels"
+msgstr ""
 
-#, fuzzy
 msgctxt "field:purchase.purchase,moves:"
 msgid "Moves"
-msgstr "Boekingen"
+msgstr ""
+
+msgctxt "field:purchase.purchase,number:"
+msgid "Number"
+msgstr ""
 
-#, fuzzy
 msgctxt "field:purchase.purchase,party:"
 msgid "Party"
-msgstr "Relaties"
+msgstr ""
 
-#, fuzzy
 msgctxt "field:purchase.purchase,party_lang:"
 msgid "Party Language"
-msgstr "Taal relatie"
+msgstr ""
 
-#, fuzzy
 msgctxt "field:purchase.purchase,payment_term:"
 msgid "Payment Term"
-msgstr "Betalingstermijn"
+msgstr "ວິທີການຈ່າຍ"
 
 msgctxt "field:purchase.purchase,purchase_date:"
 msgid "Purchase Date"
@@ -572,147 +582,138 @@ msgstr ""
 #, fuzzy
 msgctxt "field:purchase.purchase,rec_name:"
 msgid "Name"
-msgstr "Naam bijlage"
+msgstr "ຊື່"
 
-#, fuzzy
 msgctxt "field:purchase.purchase,reference:"
 msgid "Reference"
-msgstr "Referentie"
+msgstr "ເອກະສານອ້າງອີງ"
 
 msgctxt "field:purchase.purchase,shipment_returns:"
 msgid "Shipment Returns"
 msgstr ""
 
-#, fuzzy
 msgctxt "field:purchase.purchase,shipment_state:"
 msgid "Shipment State"
-msgstr "Levering status"
+msgstr ""
 
-#, fuzzy
 msgctxt "field:purchase.purchase,shipments:"
 msgid "Shipments"
-msgstr "Leveringen"
+msgstr ""
 
-#, fuzzy
 msgctxt "field:purchase.purchase,state:"
 msgid "State"
-msgstr "Status"
-
-msgctxt "field:purchase.purchase,supplier_reference:"
-msgid "Supplier Reference"
 msgstr ""
 
-#, fuzzy
 msgctxt "field:purchase.purchase,tax_amount:"
 msgid "Tax"
-msgstr "Belasting"
+msgstr ""
 
 msgctxt "field:purchase.purchase,tax_amount_cache:"
 msgid "Tax Cache"
 msgstr ""
 
-#, fuzzy
 msgctxt "field:purchase.purchase,total_amount:"
 msgid "Total"
-msgstr "Totaal"
+msgstr ""
 
 msgctxt "field:purchase.purchase,total_amount_cache:"
 msgid "Total Cache"
 msgstr ""
 
-#, fuzzy
 msgctxt "field:purchase.purchase,untaxed_amount:"
 msgid "Untaxed"
-msgstr "Onbelast"
+msgstr ""
 
 msgctxt "field:purchase.purchase,untaxed_amount_cache:"
 msgid "Untaxed Cache"
 msgstr ""
 
-#, fuzzy
 msgctxt "field:purchase.purchase,warehouse:"
 msgid "Warehouse"
-msgstr "Magazijn"
+msgstr ""
 
+#, fuzzy
 msgctxt "field:purchase.purchase,write_date:"
 msgid "Write Date"
-msgstr ""
+msgstr "ຂຽນວັນທີ"
 
+#, fuzzy
 msgctxt "field:purchase.purchase,write_uid:"
 msgid "Write User"
-msgstr ""
+msgstr "ຂຽນຜູ້ໃຊ້ງານ"
 
 msgctxt "field:purchase.purchase-ignored-account.invoice,create_date:"
 msgid "Create Date"
-msgstr ""
+msgstr "ສ້າງວັນທີ"
 
 msgctxt "field:purchase.purchase-ignored-account.invoice,create_uid:"
 msgid "Create User"
-msgstr ""
+msgstr "ສ້າງຜູ້ໃຊ້ງານ"
 
 msgctxt "field:purchase.purchase-ignored-account.invoice,id:"
 msgid "ID"
-msgstr ""
+msgstr "ເລກລໍາດັບ"
 
-#, fuzzy
 msgctxt "field:purchase.purchase-ignored-account.invoice,invoice:"
 msgid "Invoice"
-msgstr "Verkoopfactuur"
+msgstr "ໃບເກັບເງິນ"
 
 msgctxt "field:purchase.purchase-ignored-account.invoice,purchase:"
 msgid "Purchase"
-msgstr ""
+msgstr "ສັ່ງຊື້"
 
-#, fuzzy
 msgctxt "field:purchase.purchase-ignored-account.invoice,rec_name:"
 msgid "Name"
-msgstr "Naam bijlage"
+msgstr "ຊື່"
 
 msgctxt "field:purchase.purchase-ignored-account.invoice,write_date:"
 msgid "Write Date"
-msgstr ""
+msgstr "ຂຽນວັນທີ"
 
 msgctxt "field:purchase.purchase-ignored-account.invoice,write_uid:"
 msgid "Write User"
-msgstr ""
+msgstr "ຂຽນຜູ້ໃຊ້ງານ"
 
 msgctxt "field:purchase.purchase-recreated-account.invoice,create_date:"
 msgid "Create Date"
-msgstr ""
+msgstr "ສ້າງວັນທີ"
 
 msgctxt "field:purchase.purchase-recreated-account.invoice,create_uid:"
 msgid "Create User"
-msgstr ""
+msgstr "ສ້າງຜູ້ໃຊ້ງານ"
 
 msgctxt "field:purchase.purchase-recreated-account.invoice,id:"
 msgid "ID"
-msgstr ""
+msgstr "ເລກລໍາດັບ"
 
-#, fuzzy
 msgctxt "field:purchase.purchase-recreated-account.invoice,invoice:"
 msgid "Invoice"
-msgstr "Verkoopfactuur"
+msgstr "ໃບເກັບເງິນ"
 
 msgctxt "field:purchase.purchase-recreated-account.invoice,purchase:"
 msgid "Purchase"
-msgstr ""
+msgstr "ສັ່ງຊື້"
 
-#, fuzzy
 msgctxt "field:purchase.purchase-recreated-account.invoice,rec_name:"
 msgid "Name"
-msgstr "Naam bijlage"
+msgstr "ຊື່"
 
 msgctxt "field:purchase.purchase-recreated-account.invoice,write_date:"
 msgid "Write Date"
-msgstr ""
+msgstr "ຂຽນວັນທີ"
 
 msgctxt "field:purchase.purchase-recreated-account.invoice,write_uid:"
 msgid "Write User"
+msgstr "ຂຽນຜູ້ໃຊ້ງານ"
+
+msgctxt "field:stock.location,supplier_return_location:"
+msgid "Supplier Return"
 msgstr ""
 
+#, fuzzy
 msgctxt "field:stock.move,purchase:"
 msgid "Purchase"
-msgstr ""
+msgstr "ສັ່ງຊື້"
 
 msgctxt "field:stock.move,purchase_currency:"
 msgid "Purchase Currency"
@@ -721,7 +722,7 @@ msgstr ""
 #, fuzzy
 msgctxt "field:stock.move,purchase_exception_state:"
 msgid "Exception State"
-msgstr "Uitzonderingstoestand"
+msgstr "ສະຖານະຍົກເວັ້ນ"
 
 msgctxt "field:stock.move,purchase_quantity:"
 msgid "Purchase Quantity"
@@ -746,32 +747,29 @@ msgstr ""
 #, fuzzy
 msgctxt "field:stock.move,supplier:"
 msgid "Supplier"
-msgstr "Leverancier"
+msgstr "ຜູ້ສະໜອງ"
 
-#, fuzzy
 msgctxt "help:purchase.handle.invoice.exception.ask,recreate_invoices:"
 msgid ""
 "The selected invoices will be recreated. The other ones will be ignored."
 msgstr ""
-"De geselecteerde facturen worden opnieuw aangemaakt. De rest wordt "
-"genegeerd."
 
 msgctxt "help:purchase.handle.shipment.exception.ask,recreate_moves:"
 msgid "The selected moves will be recreated. The other ones will be ignored."
 msgstr ""
 
-msgctxt "help:purchase.product_supplier,delivery_time:"
-msgid "In number of days"
-msgstr ""
-
 msgctxt "help:purchase.product_supplier.price,quantity:"
 msgid "Minimal quantity"
 msgstr ""
 
+msgctxt "help:stock.location,supplier_return_location:"
+msgid "If empty the Storage location is used"
+msgstr ""
+
 #, fuzzy
 msgctxt "model:ir.action,name:act_invoice_form"
 msgid "Invoices"
-msgstr "Verkoopfacturen"
+msgstr "ໃບເກັບເງິນ"
 
 msgctxt "model:ir.action,name:act_open_supplier"
 msgid "Parties associated to Purchases"
@@ -785,85 +783,84 @@ msgctxt "model:ir.action,name:act_product_supplier_price_form"
 msgid "Prices"
 msgstr ""
 
+#, fuzzy
 msgctxt "model:ir.action,name:act_purchase_configuration_form"
 msgid "Purchase Configuration"
-msgstr ""
+msgstr "ຕັ້ງຄ່າການຈັດຊື້"
 
+#, fuzzy
 msgctxt "model:ir.action,name:act_purchase_form"
 msgid "Purchases"
-msgstr ""
+msgstr "ການຈັດຊື້"
 
+#, fuzzy
 msgctxt "model:ir.action,name:act_purchase_form2"
 msgid "Purchases"
-msgstr ""
+msgstr "ການຈັດຊື້"
 
+#, fuzzy
 msgctxt "model:ir.action,name:act_purchase_invoice_relate"
 msgid "Purchases"
-msgstr ""
+msgstr "ການຈັດຊື້"
 
 msgctxt "model:ir.action,name:act_return_form"
 msgid "Returns"
 msgstr ""
 
-#, fuzzy
 msgctxt "model:ir.action,name:act_shipment_form"
 msgid "Shipments"
-msgstr "Leveringen"
+msgstr ""
 
 msgctxt "model:ir.action,name:report_purchase"
 msgid "Purchase"
-msgstr ""
+msgstr "ການຈັດຊື້"
 
-#, fuzzy
 msgctxt "model:ir.action,name:wizard_invoice_handle_exception"
 msgid "Handle Invoice Exception"
-msgstr "Factuuruitzondering afhandelen"
+msgstr ""
 
-#, fuzzy
 msgctxt "model:ir.action,name:wizard_shipment_handle_exception"
 msgid "Handle Shipment Exception"
-msgstr "Zendinguitzondering afhandelen"
+msgstr ""
 
 msgctxt "model:ir.action.act_window.domain,name:act_purchase_form_domain_all"
 msgid "All"
 msgstr ""
 
-#, fuzzy
 msgctxt ""
 "model:ir.action.act_window.domain,name:act_purchase_form_domain_confirmed"
 msgid "Confirmed"
-msgstr "Bevestigd"
+msgstr ""
 
 #, fuzzy
 msgctxt ""
 "model:ir.action.act_window.domain,name:act_purchase_form_domain_draft"
 msgid "Draft"
-msgstr "Concept"
+msgstr "ຮ່າງກຽມ"
 
-#, fuzzy
 msgctxt ""
 "model:ir.action.act_window.domain,name:act_purchase_form_domain_processing"
 msgid "Processing"
-msgstr "Verwerking"
+msgstr ""
 
-#, fuzzy
 msgctxt ""
 "model:ir.action.act_window.domain,name:act_purchase_form_domain_quotation"
 msgid "Quotation"
-msgstr "Offerte"
+msgstr ""
 
+#, fuzzy
 msgctxt "model:ir.sequence,name:sequence_purchase"
 msgid "Purchase"
-msgstr ""
+msgstr "ສັ່ງຊື້"
 
+#, fuzzy
 msgctxt "model:ir.sequence.type,name:sequence_type_purchase"
 msgid "Purchase"
-msgstr ""
+msgstr "ສັ່ງຊື້"
 
-#, fuzzy
 msgctxt "model:ir.ui.menu,name:menu_configuration"
 msgid "Configuration"
-msgstr "Instellingen"
+msgstr "ການຕັ້ງຄ່າ"
 
 msgctxt "model:ir.ui.menu,name:menu_product_supplier"
 msgid "Product Suppliers"
@@ -871,20 +868,21 @@ msgstr ""
 
 msgctxt "model:ir.ui.menu,name:menu_purchase"
 msgid "Purchase"
-msgstr ""
+msgstr "ການຈັດຊື້"
 
+#, fuzzy
 msgctxt "model:ir.ui.menu,name:menu_purchase_configuration"
 msgid "Purchase Configuration"
-msgstr ""
+msgstr "ຕັ້ງຄ່າການຈັດຊື້"
 
+#, fuzzy
 msgctxt "model:ir.ui.menu,name:menu_purchase_form"
 msgid "Purchases"
-msgstr ""
+msgstr "ການຈັດຊື້"
 
-#, fuzzy
 msgctxt "model:ir.ui.menu,name:menu_reporting"
 msgid "Reporting"
-msgstr "Rapportage"
+msgstr ""
 
 msgctxt "model:ir.ui.menu,name:menu_supplier"
 msgid "Parties associated to Purchases"
@@ -892,17 +890,15 @@ msgstr ""
 
 msgctxt "model:purchase.configuration,name:"
 msgid "Purchase Configuration"
-msgstr ""
+msgstr "ຕັ້ງຄ່າການຈັດຊື້"
 
-#, fuzzy
 msgctxt "model:purchase.handle.invoice.exception.ask,name:"
 msgid "Handle Invoice Exception"
-msgstr "Factuur uitzondering vragen"
+msgstr ""
 
-#, fuzzy
 msgctxt "model:purchase.handle.shipment.exception.ask,name:"
 msgid "Handle Shipment Exception"
-msgstr "Afleveren uitzondering vragen"
+msgstr ""
 
 msgctxt "model:purchase.line,name:"
 msgid "Purchase Line"
@@ -930,104 +926,100 @@ msgstr ""
 
 msgctxt "model:purchase.purchase,name:"
 msgid "Purchase"
-msgstr ""
+msgstr "ຈັດຊື້"
 
+#, fuzzy
 msgctxt "model:purchase.purchase-ignored-account.invoice,name:"
 msgid "Purchase - Ignored Invoice"
-msgstr ""
+msgstr "ຊື້ - ສ້າງໃບເກັບເງິນໃໝ່"
 
 msgctxt "model:purchase.purchase-recreated-account.invoice,name:"
 msgid "Purchase - Recreated Invoice"
-msgstr ""
+msgstr "ຊື້ - ສ້າງໃບເກັບເງິນໃໝ່"
 
+#, fuzzy
 msgctxt "model:res.group,name:group_purchase"
 msgid "Purchase"
-msgstr ""
+msgstr "ສັ່ງຊື້"
 
 msgctxt "model:res.group,name:group_purchase_admin"
 msgid "Purchase Administrator"
 msgstr ""
 
-#, fuzzy
-msgctxt "odt:purchase.purchase:"
+msgctxt "report:purchase.purchase:"
 msgid "Amount"
-msgstr "Bedrag"
+msgstr ""
 
-#, fuzzy
-msgctxt "odt:purchase.purchase:"
+msgctxt "report:purchase.purchase:"
 msgid "Date:"
-msgstr "Datum:"
+msgstr ""
 
-#, fuzzy
-msgctxt "odt:purchase.purchase:"
+msgctxt "report:purchase.purchase:"
 msgid "Description"
-msgstr "Specificatie"
+msgstr "ເນື້ອໃນລາຍການ"
 
-#, fuzzy
-msgctxt "odt:purchase.purchase:"
+msgctxt "report:purchase.purchase:"
 msgid "Description:"
-msgstr "Betreft:"
+msgstr "ເນື້ອໃນລາຍການ"
 
-msgctxt "odt:purchase.purchase:"
+msgctxt "report:purchase.purchase:"
 msgid "Draft Purchase Order"
-msgstr ""
+msgstr "ໃບສັ່ງຊື້ຊົ່ວຄາວ ເລກທີ:"
 
-msgctxt "odt:purchase.purchase:"
+msgctxt "report:purchase.purchase:"
 msgid "Purchase Order N°:"
-msgstr ""
+msgstr "ໃບສັ່ງຊື້ເລກທີ:"
 
-#, fuzzy
-msgctxt "odt:purchase.purchase:"
+msgctxt "report:purchase.purchase:"
 msgid "Quantity"
-msgstr "Hoeveelheid"
+msgstr "ຈຳນວນ"
+
+#, fuzzy
+msgctxt "report:purchase.purchase:"
+msgid "Reference:"
+msgstr "ເອກະສານອ້າງອີງ"
 
-msgctxt "odt:purchase.purchase:"
+msgctxt "report:purchase.purchase:"
 msgid "Request for Quotation N°:"
 msgstr ""
 
 #, fuzzy
-msgctxt "odt:purchase.purchase:"
+msgctxt "report:purchase.purchase:"
 msgid "Taxes"
-msgstr "Belastingen"
+msgstr "ອາກອນ"
 
 #, fuzzy
-msgctxt "odt:purchase.purchase:"
+msgctxt "report:purchase.purchase:"
 msgid "Taxes:"
-msgstr "Belastingen:"
+msgstr "ອາກອນ"
 
-#, fuzzy
-msgctxt "odt:purchase.purchase:"
+msgctxt "report:purchase.purchase:"
 msgid "Total (excl. taxes):"
-msgstr "Totaal (excl. belasting):"
+msgstr ""
 
-#, fuzzy
-msgctxt "odt:purchase.purchase:"
+msgctxt "report:purchase.purchase:"
 msgid "Total:"
-msgstr "Totaal:"
+msgstr ""
 
-#, fuzzy
-msgctxt "odt:purchase.purchase:"
+msgctxt "report:purchase.purchase:"
 msgid "Unit Price"
-msgstr "Eenheidsprijs"
+msgstr ""
 
-#, fuzzy
-msgctxt "odt:purchase.purchase:"
+msgctxt "report:purchase.purchase:"
 msgid "VAT:"
-msgstr "BTW:"
+msgstr ""
 
 msgctxt "selection:account.invoice,purchase_exception_state:"
 msgid ""
 msgstr ""
 
-#, fuzzy
 msgctxt "selection:account.invoice,purchase_exception_state:"
 msgid "Ignored"
-msgstr "Genegeerd"
+msgstr "ບໍ່ແຕະຕ້ອງ"
 
-#, fuzzy
 msgctxt "selection:account.invoice,purchase_exception_state:"
 msgid "Recreated"
-msgstr "Opnieuw aangemaakt"
+msgstr "ສ້າງຂຶ້ນໃໝ່"
 
 msgctxt "selection:purchase.configuration,purchase_invoice_method:"
 msgid "Based On Order"
@@ -1037,30 +1029,26 @@ msgctxt "selection:purchase.configuration,purchase_invoice_method:"
 msgid "Based On Shipment"
 msgstr ""
 
-#, fuzzy
 msgctxt "selection:purchase.configuration,purchase_invoice_method:"
 msgid "Manual"
-msgstr "Handmatig"
+msgstr ""
 
 #, fuzzy
 msgctxt "selection:purchase.line,type:"
 msgid "Comment"
-msgstr "Opmerking"
+msgstr "ຄຳເຫັນ"
 
-#, fuzzy
 msgctxt "selection:purchase.line,type:"
 msgid "Line"
-msgstr "Regel"
+msgstr ""
 
-#, fuzzy
 msgctxt "selection:purchase.line,type:"
 msgid "Subtotal"
-msgstr "Subtotaal"
+msgstr ""
 
-#, fuzzy
 msgctxt "selection:purchase.line,type:"
 msgid "Title"
-msgstr "Titel"
+msgstr ""
 
 msgctxt "selection:purchase.purchase,invoice_method:"
 msgid "Based On Order"
@@ -1070,79 +1058,66 @@ msgctxt "selection:purchase.purchase,invoice_method:"
 msgid "Based On Shipment"
 msgstr ""
 
-#, fuzzy
 msgctxt "selection:purchase.purchase,invoice_method:"
 msgid "Manual"
-msgstr "Handmatig"
+msgstr ""
 
-#, fuzzy
 msgctxt "selection:purchase.purchase,invoice_state:"
 msgid "Exception"
-msgstr "Uitzondering"
+msgstr ""
 
-#, fuzzy
 msgctxt "selection:purchase.purchase,invoice_state:"
 msgid "None"
-msgstr "Geen"
+msgstr ""
 
-#, fuzzy
 msgctxt "selection:purchase.purchase,invoice_state:"
 msgid "Paid"
-msgstr "Betaald"
+msgstr ""
 
-#, fuzzy
 msgctxt "selection:purchase.purchase,invoice_state:"
 msgid "Waiting"
-msgstr "In afwachting"
+msgstr ""
 
-#, fuzzy
 msgctxt "selection:purchase.purchase,shipment_state:"
 msgid "Exception"
-msgstr "Uitzondering"
+msgstr ""
 
-#, fuzzy
 msgctxt "selection:purchase.purchase,shipment_state:"
 msgid "None"
-msgstr "Geen"
+msgstr ""
 
 msgctxt "selection:purchase.purchase,shipment_state:"
 msgid "Received"
 msgstr ""
 
-#, fuzzy
 msgctxt "selection:purchase.purchase,shipment_state:"
 msgid "Waiting"
-msgstr "In afwachting"
+msgstr ""
 
-#, fuzzy
 msgctxt "selection:purchase.purchase,state:"
 msgid "Canceled"
-msgstr "Geannuleerd"
+msgstr "ຍົກເລີກແລ້ວ"
 
-#, fuzzy
 msgctxt "selection:purchase.purchase,state:"
 msgid "Confirmed"
-msgstr "Bevestigd"
+msgstr ""
 
-#, fuzzy
 msgctxt "selection:purchase.purchase,state:"
 msgid "Done"
-msgstr "Klaar"
+msgstr ""
 
 #, fuzzy
 msgctxt "selection:purchase.purchase,state:"
 msgid "Draft"
-msgstr "Concept"
+msgstr "ຮ່າງກຽມ"
 
-#, fuzzy
 msgctxt "selection:purchase.purchase,state:"
 msgid "Processing"
-msgstr "Verwerking"
+msgstr ""
 
-#, fuzzy
 msgctxt "selection:purchase.purchase,state:"
 msgid "Quotation"
-msgstr "Offerte"
+msgstr ""
 
 msgctxt "selection:stock.move,purchase_exception_state:"
 msgid ""
@@ -1151,60 +1126,54 @@ msgstr ""
 #, fuzzy
 msgctxt "selection:stock.move,purchase_exception_state:"
 msgid "Ignored"
-msgstr "Genegeerd"
+msgstr "ບໍ່ແຕະຕ້ອງ"
 
 #, fuzzy
 msgctxt "selection:stock.move,purchase_exception_state:"
 msgid "Recreated"
-msgstr "Opnieuw aangemaakt"
+msgstr "ສ້າງຂຶ້ນໃໝ່"
 
 #, fuzzy
 msgctxt "view:product.product:"
 msgid "Products"
-msgstr "Producten"
+msgstr "ຜະລິດຕະພັນ"
 
 msgctxt "view:product.template:"
 msgid "Suppliers"
-msgstr ""
+msgstr "ຜູ້ສະໜອງ"
 
+#, fuzzy
 msgctxt "view:purchase.configuration:"
 msgid "Purchase Configuration"
-msgstr ""
+msgstr "ຕັ້ງຄ່າການຈັດຊື້"
 
-#, fuzzy
 msgctxt "view:purchase.handle.invoice.exception.ask:"
 msgid "Choose invoices to recreate"
-msgstr "Kies facturen om opnieuw aan te maken"
+msgstr ""
 
-#, fuzzy
 msgctxt "view:purchase.handle.invoice.exception.ask:"
 msgid "Handle Invoice Exception"
-msgstr "Factuuruitzondering afhandelen"
+msgstr ""
 
-#, fuzzy
 msgctxt "view:purchase.handle.shipment.exception.ask:"
 msgid "Choose move to recreate"
-msgstr "Kies boeking om opnieuw aan te maken"
+msgstr ""
 
-#, fuzzy
 msgctxt "view:purchase.handle.shipment.exception.ask:"
 msgid "Handle shipment Exception"
-msgstr "Zendinguitzondering afhandelen"
+msgstr ""
 
-#, fuzzy
 msgctxt "view:purchase.line:"
 msgid "General"
-msgstr "Algemeen"
+msgstr ""
 
-#, fuzzy
 msgctxt "view:purchase.line:"
 msgid "Lines"
-msgstr "Regels"
+msgstr ""
 
-#, fuzzy
 msgctxt "view:purchase.line:"
 msgid "Notes"
-msgstr "Aantekeningen"
+msgstr ""
 
 msgctxt "view:purchase.line:"
 msgid "Purchase Line"
@@ -1214,9 +1183,10 @@ msgctxt "view:purchase.line:"
 msgid "Purchase Lines"
 msgstr ""
 
+#, fuzzy
 msgctxt "view:purchase.line:"
 msgid "Taxes"
-msgstr ""
+msgstr "ອາກອນ"
 
 msgctxt "view:purchase.product_supplier.price:"
 msgid "Product Supplier Price"
@@ -1234,73 +1204,64 @@ msgctxt "view:purchase.product_supplier:"
 msgid "Product Suppliers"
 msgstr ""
 
-#, fuzzy
 msgctxt "view:purchase.purchase:"
 msgid "Cancel"
-msgstr "Annuleren"
+msgstr "ຍົກເລີກ"
 
-#, fuzzy
 msgctxt "view:purchase.purchase:"
 msgid "Confirm"
-msgstr "Bevestig"
+msgstr ""
 
-#, fuzzy
 msgctxt "view:purchase.purchase:"
 msgid "Draft"
-msgstr "Concept"
+msgstr "ຮ່າງກຽມ"
 
-#, fuzzy
 msgctxt "view:purchase.purchase:"
 msgid "Handle Invoice Exception"
-msgstr "Factuuruitzondering afhandelen"
+msgstr ""
 
-#, fuzzy
 msgctxt "view:purchase.purchase:"
 msgid "Handle Shipment Exception"
-msgstr "Zendinguitzondering afhandelen"
+msgstr ""
 
-#, fuzzy
 msgctxt "view:purchase.purchase:"
 msgid "Other Info"
-msgstr "Aanvullende informatie"
+msgstr ""
 
 msgctxt "view:purchase.purchase:"
 msgid "Process"
 msgstr ""
 
+#, fuzzy
 msgctxt "view:purchase.purchase:"
 msgid "Purchase"
-msgstr ""
+msgstr "ສັ່ງຊື້"
 
+#, fuzzy
 msgctxt "view:purchase.purchase:"
 msgid "Purchases"
-msgstr ""
+msgstr "ການຈັດຊື້"
 
 msgctxt "view:purchase.purchase:"
 msgid "Quote"
 msgstr ""
 
-#, fuzzy
 msgctxt "view:stock.move:"
 msgid "Moves"
-msgstr "Boekingen"
+msgstr ""
 
-#, fuzzy
 msgctxt "wizard_button:purchase.handle.invoice.exception,ask,end:"
 msgid "Cancel"
-msgstr "Annuleren"
+msgstr "ຍົກເລີກ"
 
-#, fuzzy
 msgctxt "wizard_button:purchase.handle.invoice.exception,ask,handle:"
 msgid "OK"
-msgstr "Oké"
+msgstr ""
 
-#, fuzzy
 msgctxt "wizard_button:purchase.handle.shipment.exception,ask,end:"
 msgid "Cancel"
-msgstr "Annuleren"
+msgstr "ຍົກເລີກ"
 
-#, fuzzy
 msgctxt "wizard_button:purchase.handle.shipment.exception,ask,handle:"
 msgid "OK"
-msgstr "Oké"
+msgstr ""
diff --git a/locale/lt_LT.po b/locale/lt_LT.po
index 0f1c642..2141042 100644
--- a/locale/lt_LT.po
+++ b/locale/lt_LT.po
@@ -53,6 +53,18 @@ msgctxt "field:account.invoice,purchases:"
 msgid "Purchases"
 msgstr ""
 
+msgctxt "field:product.product,product_suppliers:"
+msgid "Suppliers"
+msgstr ""
+
+msgctxt "field:product.product,purchasable:"
+msgid "Purchasable"
+msgstr ""
+
+msgctxt "field:product.product,purchase_uom:"
+msgid "Purchase UOM"
+msgstr ""
+
 msgctxt "field:product.template,product_suppliers:"
 msgid "Suppliers"
 msgstr ""
@@ -82,7 +94,7 @@ msgid "Invoice Method"
 msgstr ""
 
 msgctxt "field:purchase.configuration,purchase_sequence:"
-msgid "Purchase Reference Sequence"
+msgid "Purchase Sequence"
 msgstr ""
 
 msgctxt "field:purchase.configuration,rec_name:"
@@ -349,14 +361,14 @@ msgctxt "field:purchase.product_supplier,currency:"
 msgid "Currency"
 msgstr ""
 
-msgctxt "field:purchase.product_supplier,delivery_time:"
-msgid "Delivery Time"
-msgstr ""
-
 msgctxt "field:purchase.product_supplier,id:"
 msgid "ID"
 msgstr ""
 
+msgctxt "field:purchase.product_supplier,lead_time:"
+msgid "Lead Time"
+msgstr ""
+
 msgctxt "field:purchase.product_supplier,name:"
 msgid "Name"
 msgstr ""
@@ -493,6 +505,10 @@ msgctxt "field:purchase.purchase,moves:"
 msgid "Moves"
 msgstr ""
 
+msgctxt "field:purchase.purchase,number:"
+msgid "Number"
+msgstr ""
+
 msgctxt "field:purchase.purchase,party:"
 msgid "Party"
 msgstr ""
@@ -533,10 +549,6 @@ msgctxt "field:purchase.purchase,state:"
 msgid "State"
 msgstr ""
 
-msgctxt "field:purchase.purchase,supplier_reference:"
-msgid "Supplier Reference"
-msgstr ""
-
 msgctxt "field:purchase.purchase,tax_amount:"
 msgid "Tax"
 msgstr ""
@@ -637,6 +649,10 @@ msgctxt "field:purchase.purchase-recreated-account.invoice,write_uid:"
 msgid "Write User"
 msgstr ""
 
+msgctxt "field:stock.location,supplier_return_location:"
+msgid "Supplier Return"
+msgstr ""
+
 msgctxt "field:stock.move,purchase:"
 msgid "Purchase"
 msgstr ""
@@ -682,14 +698,14 @@ msgctxt "help:purchase.handle.shipment.exception.ask,recreate_moves:"
 msgid "The selected moves will be recreated. The other ones will be ignored."
 msgstr ""
 
-msgctxt "help:purchase.product_supplier,delivery_time:"
-msgid "In number of days"
-msgstr ""
-
 msgctxt "help:purchase.product_supplier.price,quantity:"
 msgid "Minimal quantity"
 msgstr ""
 
+msgctxt "help:stock.location,supplier_return_location:"
+msgid "If empty the Storage location is used"
+msgstr ""
+
 msgctxt "model:ir.action,name:act_invoice_form"
 msgid "Invoices"
 msgstr ""
@@ -858,59 +874,63 @@ msgctxt "model:res.group,name:group_purchase_admin"
 msgid "Purchase Administrator"
 msgstr ""
 
-msgctxt "odt:purchase.purchase:"
+msgctxt "report:purchase.purchase:"
 msgid "Amount"
 msgstr ""
 
-msgctxt "odt:purchase.purchase:"
+msgctxt "report:purchase.purchase:"
 msgid "Date:"
 msgstr ""
 
-msgctxt "odt:purchase.purchase:"
+msgctxt "report:purchase.purchase:"
 msgid "Description"
 msgstr ""
 
-msgctxt "odt:purchase.purchase:"
+msgctxt "report:purchase.purchase:"
 msgid "Description:"
 msgstr ""
 
-msgctxt "odt:purchase.purchase:"
+msgctxt "report:purchase.purchase:"
 msgid "Draft Purchase Order"
 msgstr ""
 
-msgctxt "odt:purchase.purchase:"
+msgctxt "report:purchase.purchase:"
 msgid "Purchase Order N°:"
 msgstr ""
 
-msgctxt "odt:purchase.purchase:"
+msgctxt "report:purchase.purchase:"
 msgid "Quantity"
 msgstr ""
 
-msgctxt "odt:purchase.purchase:"
+msgctxt "report:purchase.purchase:"
+msgid "Reference:"
+msgstr ""
+
+msgctxt "report:purchase.purchase:"
 msgid "Request for Quotation N°:"
 msgstr ""
 
-msgctxt "odt:purchase.purchase:"
+msgctxt "report:purchase.purchase:"
 msgid "Taxes"
 msgstr ""
 
-msgctxt "odt:purchase.purchase:"
+msgctxt "report:purchase.purchase:"
 msgid "Taxes:"
 msgstr ""
 
-msgctxt "odt:purchase.purchase:"
+msgctxt "report:purchase.purchase:"
 msgid "Total (excl. taxes):"
 msgstr ""
 
-msgctxt "odt:purchase.purchase:"
+msgctxt "report:purchase.purchase:"
 msgid "Total:"
 msgstr ""
 
-msgctxt "odt:purchase.purchase:"
+msgctxt "report:purchase.purchase:"
 msgid "Unit Price"
 msgstr ""
 
-msgctxt "odt:purchase.purchase:"
+msgctxt "report:purchase.purchase:"
 msgid "VAT:"
 msgstr ""
 
diff --git a/locale/nl_NL.po b/locale/nl_NL.po
index 4d1e5cc..f99b953 100644
--- a/locale/nl_NL.po
+++ b/locale/nl_NL.po
@@ -54,10 +54,24 @@ msgctxt "field:account.invoice,purchases:"
 msgid "Purchases"
 msgstr ""
 
-msgctxt "field:product.template,product_suppliers:"
+#, fuzzy
+msgctxt "field:product.product,product_suppliers:"
 msgid "Suppliers"
+msgstr "Leverancier"
+
+msgctxt "field:product.product,purchasable:"
+msgid "Purchasable"
 msgstr ""
 
+msgctxt "field:product.product,purchase_uom:"
+msgid "Purchase UOM"
+msgstr ""
+
+#, fuzzy
+msgctxt "field:product.template,product_suppliers:"
+msgid "Suppliers"
+msgstr "Leverancier"
+
 msgctxt "field:product.template,purchasable:"
 msgid "Purchasable"
 msgstr ""
@@ -84,7 +98,7 @@ msgid "Invoice Method"
 msgstr "Factuur afhandeling"
 
 msgctxt "field:purchase.configuration,purchase_sequence:"
-msgid "Purchase Reference Sequence"
+msgid "Purchase Sequence"
 msgstr ""
 
 #, fuzzy
@@ -383,14 +397,14 @@ msgctxt "field:purchase.product_supplier,currency:"
 msgid "Currency"
 msgstr "Valuta"
 
-msgctxt "field:purchase.product_supplier,delivery_time:"
-msgid "Delivery Time"
-msgstr ""
-
 msgctxt "field:purchase.product_supplier,id:"
 msgid "ID"
 msgstr ""
 
+msgctxt "field:purchase.product_supplier,lead_time:"
+msgid "Lead Time"
+msgstr ""
+
 #, fuzzy
 msgctxt "field:purchase.product_supplier,name:"
 msgid "Name"
@@ -550,6 +564,10 @@ msgctxt "field:purchase.purchase,moves:"
 msgid "Moves"
 msgstr "Boekingen"
 
+msgctxt "field:purchase.purchase,number:"
+msgid "Number"
+msgstr ""
+
 #, fuzzy
 msgctxt "field:purchase.purchase,party:"
 msgid "Party"
@@ -598,10 +616,6 @@ msgctxt "field:purchase.purchase,state:"
 msgid "State"
 msgstr "Status"
 
-msgctxt "field:purchase.purchase,supplier_reference:"
-msgid "Supplier Reference"
-msgstr ""
-
 #, fuzzy
 msgctxt "field:purchase.purchase,tax_amount:"
 msgid "Tax"
@@ -710,6 +724,10 @@ msgctxt "field:purchase.purchase-recreated-account.invoice,write_uid:"
 msgid "Write User"
 msgstr ""
 
+msgctxt "field:stock.location,supplier_return_location:"
+msgid "Supplier Return"
+msgstr ""
+
 msgctxt "field:stock.move,purchase:"
 msgid "Purchase"
 msgstr ""
@@ -756,18 +774,21 @@ msgstr ""
 "De geselecteerde facturen worden opnieuw aangemaakt. De rest wordt "
 "genegeerd."
 
+#, fuzzy
 msgctxt "help:purchase.handle.shipment.exception.ask,recreate_moves:"
 msgid "The selected moves will be recreated. The other ones will be ignored."
 msgstr ""
-
-msgctxt "help:purchase.product_supplier,delivery_time:"
-msgid "In number of days"
-msgstr ""
+"De geselecteerde facturen worden opnieuw aangemaakt. De rest wordt "
+"genegeerd."
 
 msgctxt "help:purchase.product_supplier.price,quantity:"
 msgid "Minimal quantity"
 msgstr ""
 
+msgctxt "help:stock.location,supplier_return_location:"
+msgid "If empty the Storage location is used"
+msgstr ""
+
 #, fuzzy
 msgctxt "model:ir.action,name:act_invoice_form"
 msgid "Invoices"
@@ -949,69 +970,74 @@ msgid "Purchase Administrator"
 msgstr ""
 
 #, fuzzy
-msgctxt "odt:purchase.purchase:"
+msgctxt "report:purchase.purchase:"
 msgid "Amount"
 msgstr "Bedrag"
 
 #, fuzzy
-msgctxt "odt:purchase.purchase:"
+msgctxt "report:purchase.purchase:"
 msgid "Date:"
 msgstr "Datum:"
 
 #, fuzzy
-msgctxt "odt:purchase.purchase:"
+msgctxt "report:purchase.purchase:"
 msgid "Description"
 msgstr "Specificatie"
 
 #, fuzzy
-msgctxt "odt:purchase.purchase:"
+msgctxt "report:purchase.purchase:"
 msgid "Description:"
 msgstr "Betreft:"
 
-msgctxt "odt:purchase.purchase:"
+msgctxt "report:purchase.purchase:"
 msgid "Draft Purchase Order"
 msgstr ""
 
-msgctxt "odt:purchase.purchase:"
+msgctxt "report:purchase.purchase:"
 msgid "Purchase Order N°:"
 msgstr ""
 
 #, fuzzy
-msgctxt "odt:purchase.purchase:"
+msgctxt "report:purchase.purchase:"
 msgid "Quantity"
 msgstr "Hoeveelheid"
 
-msgctxt "odt:purchase.purchase:"
+#, fuzzy
+msgctxt "report:purchase.purchase:"
+msgid "Reference:"
+msgstr "Referentie"
+
+msgctxt "report:purchase.purchase:"
 msgid "Request for Quotation N°:"
 msgstr ""
 
 #, fuzzy
-msgctxt "odt:purchase.purchase:"
+msgctxt "report:purchase.purchase:"
 msgid "Taxes"
 msgstr "Belastingen"
 
 #, fuzzy
-msgctxt "odt:purchase.purchase:"
+msgctxt "report:purchase.purchase:"
 msgid "Taxes:"
 msgstr "Belastingen:"
 
 #, fuzzy
-msgctxt "odt:purchase.purchase:"
+msgctxt "report:purchase.purchase:"
 msgid "Total (excl. taxes):"
 msgstr "Totaal (excl. belasting):"
 
 #, fuzzy
-msgctxt "odt:purchase.purchase:"
+msgctxt "report:purchase.purchase:"
 msgid "Total:"
 msgstr "Totaal:"
 
 #, fuzzy
-msgctxt "odt:purchase.purchase:"
+msgctxt "report:purchase.purchase:"
 msgid "Unit Price"
 msgstr "Eenheidsprijs"
 
 #, fuzzy
-msgctxt "odt:purchase.purchase:"
+msgctxt "report:purchase.purchase:"
 msgid "VAT:"
 msgstr "BTW:"
 
@@ -1163,9 +1189,10 @@ msgctxt "view:product.product:"
 msgid "Products"
 msgstr "Producten"
 
+#, fuzzy
 msgctxt "view:product.template:"
 msgid "Suppliers"
-msgstr ""
+msgstr "Leverancier"
 
 msgctxt "view:purchase.configuration:"
 msgid "Purchase Configuration"
@@ -1214,9 +1241,10 @@ msgctxt "view:purchase.line:"
 msgid "Purchase Lines"
 msgstr ""
 
+#, fuzzy
 msgctxt "view:purchase.line:"
 msgid "Taxes"
-msgstr ""
+msgstr "Belastingen"
 
 msgctxt "view:purchase.product_supplier.price:"
 msgid "Product Supplier Price"
diff --git a/locale/pt_BR.po b/locale/pt_BR.po
index a83b38a..881872b 100644
--- a/locale/pt_BR.po
+++ b/locale/pt_BR.po
@@ -59,6 +59,21 @@ msgctxt "field:account.invoice,purchases:"
 msgid "Purchases"
 msgstr "Compras"
 
+#, fuzzy
+msgctxt "field:product.product,product_suppliers:"
+msgid "Suppliers"
+msgstr "Fornecedores"
+
+#, fuzzy
+msgctxt "field:product.product,purchasable:"
+msgid "Purchasable"
+msgstr "Comprável"
+
+#, fuzzy
+msgctxt "field:product.product,purchase_uom:"
+msgid "Purchase UOM"
+msgstr "UM de compra"
+
 msgctxt "field:product.template,product_suppliers:"
 msgid "Suppliers"
 msgstr "Fornecedores"
@@ -88,8 +103,8 @@ msgid "Invoice Method"
 msgstr "Método da fatura"
 
 msgctxt "field:purchase.configuration,purchase_sequence:"
-msgid "Purchase Reference Sequence"
-msgstr "Sequência da referência da compra"
+msgid "Purchase Sequence"
+msgstr ""
 
 msgctxt "field:purchase.configuration,rec_name:"
 msgid "Name"
@@ -355,14 +370,14 @@ msgctxt "field:purchase.product_supplier,currency:"
 msgid "Currency"
 msgstr "Moeda"
 
-msgctxt "field:purchase.product_supplier,delivery_time:"
-msgid "Delivery Time"
-msgstr "Tempo de entrega"
-
 msgctxt "field:purchase.product_supplier,id:"
 msgid "ID"
 msgstr "ID"
 
+msgctxt "field:purchase.product_supplier,lead_time:"
+msgid "Lead Time"
+msgstr ""
+
 msgctxt "field:purchase.product_supplier,name:"
 msgid "Name"
 msgstr "Nome"
@@ -499,6 +514,10 @@ msgctxt "field:purchase.purchase,moves:"
 msgid "Moves"
 msgstr "Movimentações"
 
+msgctxt "field:purchase.purchase,number:"
+msgid "Number"
+msgstr ""
+
 msgctxt "field:purchase.purchase,party:"
 msgid "Party"
 msgstr "Parceiro"
@@ -539,10 +558,6 @@ msgctxt "field:purchase.purchase,state:"
 msgid "State"
 msgstr "Estado"
 
-msgctxt "field:purchase.purchase,supplier_reference:"
-msgid "Supplier Reference"
-msgstr "Referência do fornecedor"
-
 msgctxt "field:purchase.purchase,tax_amount:"
 msgid "Tax"
 msgstr "Impostos"
@@ -643,6 +658,10 @@ msgctxt "field:purchase.purchase-recreated-account.invoice,write_uid:"
 msgid "Write User"
 msgstr "Gravado pelo usuário"
 
+msgctxt "field:stock.location,supplier_return_location:"
+msgid "Supplier Return"
+msgstr ""
+
 msgctxt "field:stock.move,purchase:"
 msgid "Purchase"
 msgstr "Compra"
@@ -690,14 +709,14 @@ msgid "The selected moves will be recreated. The other ones will be ignored."
 msgstr ""
 "As movimentações selecionadas serão recriadas. As demais serão ignoradas."
 
-msgctxt "help:purchase.product_supplier,delivery_time:"
-msgid "In number of days"
-msgstr "Em número de dias"
-
 msgctxt "help:purchase.product_supplier.price,quantity:"
 msgid "Minimal quantity"
 msgstr "Quantidade mínima"
 
+msgctxt "help:stock.location,supplier_return_location:"
+msgid "If empty the Storage location is used"
+msgstr ""
+
 msgctxt "model:ir.action,name:act_invoice_form"
 msgid "Invoices"
 msgstr "Faturas"
@@ -866,59 +885,64 @@ msgctxt "model:res.group,name:group_purchase_admin"
 msgid "Purchase Administrator"
 msgstr "Administrador de compras"
 
-msgctxt "odt:purchase.purchase:"
+msgctxt "report:purchase.purchase:"
 msgid "Amount"
 msgstr "Quantidade"
 
-msgctxt "odt:purchase.purchase:"
+msgctxt "report:purchase.purchase:"
 msgid "Date:"
 msgstr "Data:"
 
-msgctxt "odt:purchase.purchase:"
+msgctxt "report:purchase.purchase:"
 msgid "Description"
 msgstr "Descrição"
 
-msgctxt "odt:purchase.purchase:"
+msgctxt "report:purchase.purchase:"
 msgid "Description:"
 msgstr "Descrição:"
 
-msgctxt "odt:purchase.purchase:"
+msgctxt "report:purchase.purchase:"
 msgid "Draft Purchase Order"
 msgstr "Rascunho de Ordem de Compra"
 
-msgctxt "odt:purchase.purchase:"
+msgctxt "report:purchase.purchase:"
 msgid "Purchase Order N°:"
 msgstr "Ordem de Compra  nº:"
 
-msgctxt "odt:purchase.purchase:"
+msgctxt "report:purchase.purchase:"
 msgid "Quantity"
 msgstr "Quantidade"
 
-msgctxt "odt:purchase.purchase:"
+#, fuzzy
+msgctxt "report:purchase.purchase:"
+msgid "Reference:"
+msgstr "Referência"
+
+msgctxt "report:purchase.purchase:"
 msgid "Request for Quotation N°:"
 msgstr "Requisição de Cotação n°:"
 
-msgctxt "odt:purchase.purchase:"
+msgctxt "report:purchase.purchase:"
 msgid "Taxes"
 msgstr "Impostos"
 
-msgctxt "odt:purchase.purchase:"
+msgctxt "report:purchase.purchase:"
 msgid "Taxes:"
 msgstr "Tributos:"
 
-msgctxt "odt:purchase.purchase:"
+msgctxt "report:purchase.purchase:"
 msgid "Total (excl. taxes):"
 msgstr "Total (sem tributos):"
 
-msgctxt "odt:purchase.purchase:"
+msgctxt "report:purchase.purchase:"
 msgid "Total:"
 msgstr "Total:"
 
-msgctxt "odt:purchase.purchase:"
+msgctxt "report:purchase.purchase:"
 msgid "Unit Price"
 msgstr "Preço unitário"
 
-msgctxt "odt:purchase.purchase:"
+msgctxt "report:purchase.purchase:"
 msgid "VAT:"
 msgstr "IVA:"
 
diff --git a/locale/ru_RU.po b/locale/ru_RU.po
index 6072607..04c47e5 100644
--- a/locale/ru_RU.po
+++ b/locale/ru_RU.po
@@ -59,6 +59,21 @@ msgctxt "field:account.invoice,purchases:"
 msgid "Purchases"
 msgstr "Покупки"
 
+#, fuzzy
+msgctxt "field:product.product,product_suppliers:"
+msgid "Suppliers"
+msgstr "Поставщики"
+
+#, fuzzy
+msgctxt "field:product.product,purchasable:"
+msgid "Purchasable"
+msgstr "Для покупки"
+
+#, fuzzy
+msgctxt "field:product.product,purchase_uom:"
+msgid "Purchase UOM"
+msgstr "Покупка, ед. измерения"
+
 msgctxt "field:product.template,product_suppliers:"
 msgid "Suppliers"
 msgstr "Поставщики"
@@ -88,8 +103,8 @@ msgid "Invoice Method"
 msgstr "Метод инвойса"
 
 msgctxt "field:purchase.configuration,purchase_sequence:"
-msgid "Purchase Reference Sequence"
-msgstr "Ссылка на нумерацию покупок"
+msgid "Purchase Sequence"
+msgstr ""
 
 msgctxt "field:purchase.configuration,rec_name:"
 msgid "Name"
@@ -355,14 +370,14 @@ msgctxt "field:purchase.product_supplier,currency:"
 msgid "Currency"
 msgstr "Валюта"
 
-msgctxt "field:purchase.product_supplier,delivery_time:"
-msgid "Delivery Time"
-msgstr "Время доставки"
-
 msgctxt "field:purchase.product_supplier,id:"
 msgid "ID"
 msgstr "ID"
 
+msgctxt "field:purchase.product_supplier,lead_time:"
+msgid "Lead Time"
+msgstr ""
+
 msgctxt "field:purchase.product_supplier,name:"
 msgid "Name"
 msgstr "Наименование"
@@ -500,6 +515,10 @@ msgctxt "field:purchase.purchase,moves:"
 msgid "Moves"
 msgstr "Перемещения"
 
+msgctxt "field:purchase.purchase,number:"
+msgid "Number"
+msgstr ""
+
 msgctxt "field:purchase.purchase,party:"
 msgid "Party"
 msgstr "Контрагент"
@@ -540,10 +559,6 @@ msgctxt "field:purchase.purchase,state:"
 msgid "State"
 msgstr "Состояние"
 
-msgctxt "field:purchase.purchase,supplier_reference:"
-msgid "Supplier Reference"
-msgstr "Ссылка на поставщика"
-
 msgctxt "field:purchase.purchase,tax_amount:"
 msgid "Tax"
 msgstr "Налог"
@@ -644,6 +659,10 @@ msgctxt "field:purchase.purchase-recreated-account.invoice,write_uid:"
 msgid "Write User"
 msgstr "Изменено пользователем"
 
+msgctxt "field:stock.location,supplier_return_location:"
+msgid "Supplier Return"
+msgstr ""
+
 msgctxt "field:stock.move,purchase:"
 msgid "Purchase"
 msgstr "Покупки"
@@ -691,14 +710,14 @@ msgid "The selected moves will be recreated. The other ones will be ignored."
 msgstr ""
 "Выбранные перемещения будут созданы заново. Остальные будут проигнорированы."
 
-msgctxt "help:purchase.product_supplier,delivery_time:"
-msgid "In number of days"
-msgstr "После указанного количества дней"
-
 msgctxt "help:purchase.product_supplier.price,quantity:"
 msgid "Minimal quantity"
 msgstr "Минимальное кол-во"
 
+msgctxt "help:stock.location,supplier_return_location:"
+msgid "If empty the Storage location is used"
+msgstr ""
+
 msgctxt "model:ir.action,name:act_invoice_form"
 msgid "Invoices"
 msgstr "Инвойсы"
@@ -872,59 +891,64 @@ msgctxt "model:res.group,name:group_purchase_admin"
 msgid "Purchase Administrator"
 msgstr "Администрирование покупок"
 
-msgctxt "odt:purchase.purchase:"
+msgctxt "report:purchase.purchase:"
 msgid "Amount"
 msgstr "Сумма"
 
-msgctxt "odt:purchase.purchase:"
+msgctxt "report:purchase.purchase:"
 msgid "Date:"
 msgstr "Дата:"
 
-msgctxt "odt:purchase.purchase:"
+msgctxt "report:purchase.purchase:"
 msgid "Description"
 msgstr "Описание"
 
-msgctxt "odt:purchase.purchase:"
+msgctxt "report:purchase.purchase:"
 msgid "Description:"
 msgstr "Описание:"
 
-msgctxt "odt:purchase.purchase:"
+msgctxt "report:purchase.purchase:"
 msgid "Draft Purchase Order"
 msgstr "Черновой заказ на покупку"
 
-msgctxt "odt:purchase.purchase:"
+msgctxt "report:purchase.purchase:"
 msgid "Purchase Order N°:"
 msgstr "Заказ на покупку №:"
 
-msgctxt "odt:purchase.purchase:"
+msgctxt "report:purchase.purchase:"
 msgid "Quantity"
 msgstr "Кол-во"
 
-msgctxt "odt:purchase.purchase:"
+#, fuzzy
+msgctxt "report:purchase.purchase:"
+msgid "Reference:"
+msgstr "Ссылка"
+
+msgctxt "report:purchase.purchase:"
 msgid "Request for Quotation N°:"
 msgstr "Запрос на Котировку №:"
 
-msgctxt "odt:purchase.purchase:"
+msgctxt "report:purchase.purchase:"
 msgid "Taxes"
 msgstr "Налоги"
 
-msgctxt "odt:purchase.purchase:"
+msgctxt "report:purchase.purchase:"
 msgid "Taxes:"
 msgstr "Налоги:"
 
-msgctxt "odt:purchase.purchase:"
+msgctxt "report:purchase.purchase:"
 msgid "Total (excl. taxes):"
 msgstr "Итого (без налогов):"
 
-msgctxt "odt:purchase.purchase:"
+msgctxt "report:purchase.purchase:"
 msgid "Total:"
 msgstr "Итого:"
 
-msgctxt "odt:purchase.purchase:"
+msgctxt "report:purchase.purchase:"
 msgid "Unit Price"
 msgstr "Цена за единицу"
 
-msgctxt "odt:purchase.purchase:"
+msgctxt "report:purchase.purchase:"
 msgid "VAT:"
 msgstr "ИНН:"
 
@@ -1099,7 +1123,7 @@ msgstr "Строки покупки"
 
 msgctxt "view:purchase.line:"
 msgid "Taxes"
-msgstr ""
+msgstr "Налоги"
 
 msgctxt "view:purchase.product_supplier.price:"
 msgid "Product Supplier Price"
diff --git a/locale/sl_SI.po b/locale/sl_SI.po
index 85b6b78..f605568 100644
--- a/locale/sl_SI.po
+++ b/locale/sl_SI.po
@@ -65,6 +65,21 @@ msgctxt "field:account.invoice,purchases:"
 msgid "Purchases"
 msgstr "Nabavni nalogi"
 
+#, fuzzy
+msgctxt "field:product.product,product_suppliers:"
+msgid "Suppliers"
+msgstr "Dobavitelji"
+
+#, fuzzy
+msgctxt "field:product.product,purchasable:"
+msgid "Purchasable"
+msgstr "Za nabavo"
+
+#, fuzzy
+msgctxt "field:product.product,purchase_uom:"
+msgid "Purchase UOM"
+msgstr "Nabavna ME"
+
 msgctxt "field:product.template,product_suppliers:"
 msgid "Suppliers"
 msgstr "Dobavitelji"
@@ -94,8 +109,8 @@ msgid "Invoice Method"
 msgstr "Način obračuna"
 
 msgctxt "field:purchase.configuration,purchase_sequence:"
-msgid "Purchase Reference Sequence"
-msgstr "Štetje nabavnih nalogov"
+msgid "Purchase Sequence"
+msgstr ""
 
 msgctxt "field:purchase.configuration,rec_name:"
 msgid "Name"
@@ -361,14 +376,14 @@ msgctxt "field:purchase.product_supplier,currency:"
 msgid "Currency"
 msgstr "Valuta"
 
-msgctxt "field:purchase.product_supplier,delivery_time:"
-msgid "Delivery Time"
-msgstr "Dostavljeno"
-
 msgctxt "field:purchase.product_supplier,id:"
 msgid "ID"
 msgstr "ID"
 
+msgctxt "field:purchase.product_supplier,lead_time:"
+msgid "Lead Time"
+msgstr ""
+
 msgctxt "field:purchase.product_supplier,name:"
 msgid "Name"
 msgstr "Naziv"
@@ -505,6 +520,10 @@ msgctxt "field:purchase.purchase,moves:"
 msgid "Moves"
 msgstr "Promet"
 
+msgctxt "field:purchase.purchase,number:"
+msgid "Number"
+msgstr ""
+
 msgctxt "field:purchase.purchase,party:"
 msgid "Party"
 msgstr "Partner"
@@ -545,10 +564,6 @@ msgctxt "field:purchase.purchase,state:"
 msgid "State"
 msgstr "Stanje"
 
-msgctxt "field:purchase.purchase,supplier_reference:"
-msgid "Supplier Reference"
-msgstr "Dobaviteljev sklic"
-
 msgctxt "field:purchase.purchase,tax_amount:"
 msgid "Tax"
 msgstr "Davek"
@@ -649,6 +664,10 @@ msgctxt "field:purchase.purchase-recreated-account.invoice,write_uid:"
 msgid "Write User"
 msgstr "Zapisal"
 
+msgctxt "field:stock.location,supplier_return_location:"
+msgid "Supplier Return"
+msgstr ""
+
 msgctxt "field:stock.move,purchase:"
 msgid "Purchase"
 msgstr "Nabavni nalog"
@@ -694,14 +713,14 @@ msgctxt "help:purchase.handle.shipment.exception.ask,recreate_moves:"
 msgid "The selected moves will be recreated. The other ones will be ignored."
 msgstr "Izbran promet bo ponovno izdelan, ostalo bo prezrto."
 
-msgctxt "help:purchase.product_supplier,delivery_time:"
-msgid "In number of days"
-msgstr "V dnevih"
-
 msgctxt "help:purchase.product_supplier.price,quantity:"
 msgid "Minimal quantity"
 msgstr "Minimalna količina"
 
+msgctxt "help:stock.location,supplier_return_location:"
+msgid "If empty the Storage location is used"
+msgstr ""
+
 msgctxt "model:ir.action,name:act_invoice_form"
 msgid "Invoices"
 msgstr "Računi"
@@ -870,59 +889,64 @@ msgctxt "model:res.group,name:group_purchase_admin"
 msgid "Purchase Administrator"
 msgstr "Nabava - vodenje"
 
-msgctxt "odt:purchase.purchase:"
+msgctxt "report:purchase.purchase:"
 msgid "Amount"
 msgstr "Znesek"
 
-msgctxt "odt:purchase.purchase:"
+msgctxt "report:purchase.purchase:"
 msgid "Date:"
 msgstr "Datum:"
 
-msgctxt "odt:purchase.purchase:"
+msgctxt "report:purchase.purchase:"
 msgid "Description"
 msgstr "Opis"
 
-msgctxt "odt:purchase.purchase:"
+msgctxt "report:purchase.purchase:"
 msgid "Description:"
 msgstr "Opis:"
 
-msgctxt "odt:purchase.purchase:"
+msgctxt "report:purchase.purchase:"
 msgid "Draft Purchase Order"
 msgstr "Osnutek nabavnega naloga"
 
-msgctxt "odt:purchase.purchase:"
+msgctxt "report:purchase.purchase:"
 msgid "Purchase Order N°:"
 msgstr "Nabavni nalog št.:"
 
-msgctxt "odt:purchase.purchase:"
+msgctxt "report:purchase.purchase:"
 msgid "Quantity"
 msgstr "Količina"
 
-msgctxt "odt:purchase.purchase:"
+#, fuzzy
+msgctxt "report:purchase.purchase:"
+msgid "Reference:"
+msgstr "Sklic"
+
+msgctxt "report:purchase.purchase:"
 msgid "Request for Quotation N°:"
 msgstr "Zahtevek za ponudbo št.:"
 
-msgctxt "odt:purchase.purchase:"
+msgctxt "report:purchase.purchase:"
 msgid "Taxes"
 msgstr "Davki"
 
-msgctxt "odt:purchase.purchase:"
+msgctxt "report:purchase.purchase:"
 msgid "Taxes:"
 msgstr "Davki:"
 
-msgctxt "odt:purchase.purchase:"
+msgctxt "report:purchase.purchase:"
 msgid "Total (excl. taxes):"
 msgstr "Skupaj (brez davkov):"
 
-msgctxt "odt:purchase.purchase:"
+msgctxt "report:purchase.purchase:"
 msgid "Total:"
 msgstr "Skupaj:"
 
-msgctxt "odt:purchase.purchase:"
+msgctxt "report:purchase.purchase:"
 msgid "Unit Price"
 msgstr "Cena"
 
-msgctxt "odt:purchase.purchase:"
+msgctxt "report:purchase.purchase:"
 msgid "VAT:"
 msgstr "DDV:"
 
@@ -1173,11 +1197,3 @@ msgstr "Prekliči"
 msgctxt "wizard_button:purchase.handle.shipment.exception,ask,handle:"
 msgid "OK"
 msgstr "V redu"
-
-msgctxt "wizard_button:stock.product_quantities_warehouse,start,end:"
-msgid "Cancel"
-msgstr "Prekliči"
-
-msgctxt "wizard_button:stock.product_quantities_warehouse,start,open_:"
-msgid "Open"
-msgstr "Odpri"
diff --git a/locale/ja_JP.po b/locale/zh_CN.po
similarity index 95%
copy from locale/ja_JP.po
copy to locale/zh_CN.po
index 0f1c642..2141042 100644
--- a/locale/ja_JP.po
+++ b/locale/zh_CN.po
@@ -53,6 +53,18 @@ msgctxt "field:account.invoice,purchases:"
 msgid "Purchases"
 msgstr ""
 
+msgctxt "field:product.product,product_suppliers:"
+msgid "Suppliers"
+msgstr ""
+
+msgctxt "field:product.product,purchasable:"
+msgid "Purchasable"
+msgstr ""
+
+msgctxt "field:product.product,purchase_uom:"
+msgid "Purchase UOM"
+msgstr ""
+
 msgctxt "field:product.template,product_suppliers:"
 msgid "Suppliers"
 msgstr ""
@@ -82,7 +94,7 @@ msgid "Invoice Method"
 msgstr ""
 
 msgctxt "field:purchase.configuration,purchase_sequence:"
-msgid "Purchase Reference Sequence"
+msgid "Purchase Sequence"
 msgstr ""
 
 msgctxt "field:purchase.configuration,rec_name:"
@@ -349,14 +361,14 @@ msgctxt "field:purchase.product_supplier,currency:"
 msgid "Currency"
 msgstr ""
 
-msgctxt "field:purchase.product_supplier,delivery_time:"
-msgid "Delivery Time"
-msgstr ""
-
 msgctxt "field:purchase.product_supplier,id:"
 msgid "ID"
 msgstr ""
 
+msgctxt "field:purchase.product_supplier,lead_time:"
+msgid "Lead Time"
+msgstr ""
+
 msgctxt "field:purchase.product_supplier,name:"
 msgid "Name"
 msgstr ""
@@ -493,6 +505,10 @@ msgctxt "field:purchase.purchase,moves:"
 msgid "Moves"
 msgstr ""
 
+msgctxt "field:purchase.purchase,number:"
+msgid "Number"
+msgstr ""
+
 msgctxt "field:purchase.purchase,party:"
 msgid "Party"
 msgstr ""
@@ -533,10 +549,6 @@ msgctxt "field:purchase.purchase,state:"
 msgid "State"
 msgstr ""
 
-msgctxt "field:purchase.purchase,supplier_reference:"
-msgid "Supplier Reference"
-msgstr ""
-
 msgctxt "field:purchase.purchase,tax_amount:"
 msgid "Tax"
 msgstr ""
@@ -637,6 +649,10 @@ msgctxt "field:purchase.purchase-recreated-account.invoice,write_uid:"
 msgid "Write User"
 msgstr ""
 
+msgctxt "field:stock.location,supplier_return_location:"
+msgid "Supplier Return"
+msgstr ""
+
 msgctxt "field:stock.move,purchase:"
 msgid "Purchase"
 msgstr ""
@@ -682,14 +698,14 @@ msgctxt "help:purchase.handle.shipment.exception.ask,recreate_moves:"
 msgid "The selected moves will be recreated. The other ones will be ignored."
 msgstr ""
 
-msgctxt "help:purchase.product_supplier,delivery_time:"
-msgid "In number of days"
-msgstr ""
-
 msgctxt "help:purchase.product_supplier.price,quantity:"
 msgid "Minimal quantity"
 msgstr ""
 
+msgctxt "help:stock.location,supplier_return_location:"
+msgid "If empty the Storage location is used"
+msgstr ""
+
 msgctxt "model:ir.action,name:act_invoice_form"
 msgid "Invoices"
 msgstr ""
@@ -858,59 +874,63 @@ msgctxt "model:res.group,name:group_purchase_admin"
 msgid "Purchase Administrator"
 msgstr ""
 
-msgctxt "odt:purchase.purchase:"
+msgctxt "report:purchase.purchase:"
 msgid "Amount"
 msgstr ""
 
-msgctxt "odt:purchase.purchase:"
+msgctxt "report:purchase.purchase:"
 msgid "Date:"
 msgstr ""
 
-msgctxt "odt:purchase.purchase:"
+msgctxt "report:purchase.purchase:"
 msgid "Description"
 msgstr ""
 
-msgctxt "odt:purchase.purchase:"
+msgctxt "report:purchase.purchase:"
 msgid "Description:"
 msgstr ""
 
-msgctxt "odt:purchase.purchase:"
+msgctxt "report:purchase.purchase:"
 msgid "Draft Purchase Order"
 msgstr ""
 
-msgctxt "odt:purchase.purchase:"
+msgctxt "report:purchase.purchase:"
 msgid "Purchase Order N°:"
 msgstr ""
 
-msgctxt "odt:purchase.purchase:"
+msgctxt "report:purchase.purchase:"
 msgid "Quantity"
 msgstr ""
 
-msgctxt "odt:purchase.purchase:"
+msgctxt "report:purchase.purchase:"
+msgid "Reference:"
+msgstr ""
+
+msgctxt "report:purchase.purchase:"
 msgid "Request for Quotation N°:"
 msgstr ""
 
-msgctxt "odt:purchase.purchase:"
+msgctxt "report:purchase.purchase:"
 msgid "Taxes"
 msgstr ""
 
-msgctxt "odt:purchase.purchase:"
+msgctxt "report:purchase.purchase:"
 msgid "Taxes:"
 msgstr ""
 
-msgctxt "odt:purchase.purchase:"
+msgctxt "report:purchase.purchase:"
 msgid "Total (excl. taxes):"
 msgstr ""
 
-msgctxt "odt:purchase.purchase:"
+msgctxt "report:purchase.purchase:"
 msgid "Total:"
 msgstr ""
 
-msgctxt "odt:purchase.purchase:"
+msgctxt "report:purchase.purchase:"
 msgid "Unit Price"
 msgstr ""
 
-msgctxt "odt:purchase.purchase:"
+msgctxt "report:purchase.purchase:"
 msgid "VAT:"
 msgstr ""
 
diff --git a/product.py b/product.py
index 83cda78..ede4852 100644
--- a/product.py
+++ b/product.py
@@ -15,10 +15,10 @@ from trytond import backend
 from trytond.modules.product import price_digits
 
 __all__ = ['Template', 'Product', 'ProductSupplier', 'ProductSupplierPrice']
-__metaclass__ = PoolMeta
 
 
 class Template:
+    __metaclass__ = PoolMeta
     __name__ = "product.template"
     purchasable = fields.Boolean('Purchasable', states={
             'readonly': ~Eval('active', True),
@@ -96,6 +96,7 @@ class Template:
 
 
 class Product:
+    __metaclass__ = PoolMeta
     __name__ = 'product.product'
 
     @classmethod
@@ -174,7 +175,7 @@ class ProductSupplier(ModelSQL, ModelView, MatchMixin):
             ('id', If(Eval('context', {}).contains('company'), '=', '!='),
                 Eval('context', {}).get('company', -1)),
             ])
-    delivery_time = fields.Integer('Delivery Time', help="In number of days")
+    lead_time = fields.TimeDelta('Lead Time')
     currency = fields.Many2One('currency.currency', 'Currency', required=True,
         ondelete='RESTRICT')
 
@@ -186,8 +187,9 @@ class ProductSupplier(ModelSQL, ModelView, MatchMixin):
     @classmethod
     def __register__(cls, module_name):
         TableHandler = backend.get('TableHandler')
-        cursor = Transaction().cursor
-        table = TableHandler(cursor, cls, module_name)
+        transaction = Transaction()
+        cursor = transaction.connection.cursor()
+        table = TableHandler(cls, module_name)
         sql_table = cls.__table__()
 
         # Migration from 2.2 new field currency
@@ -199,7 +201,7 @@ class ProductSupplier(ModelSQL, ModelView, MatchMixin):
         if not created_currency:
             Company = Pool().get('company.company')
             company = Company.__table__()
-            limit = cursor.IN_MAX
+            limit = transaction.database.IN_MAX
             cursor.execute(*sql_table.select(Count(sql_table.id)))
             product_supplier_count, = cursor.fetchone()
             for offset in range(0, product_supplier_count, limit):
@@ -220,6 +222,20 @@ class ProductSupplier(ModelSQL, ModelView, MatchMixin):
         # Migration from 2.6: drop required on delivery_time
         table.not_null_action('delivery_time', action='remove')
 
+        # Migration from 3.8: change delivery_time inte timedelta lead_time
+        if table.column_exist('delivery_time'):
+            cursor.execute(*sql_table.select(
+                    sql_table.id, sql_table.delivery_time))
+            for id_, delivery_time in cursor.fetchall():
+                if delivery_time is None:
+                    continue
+                lead_time = datetime.timedelta(days=delivery_time)
+                cursor.execute(*sql_table.update(
+                        [sql_table.lead_time],
+                        [lead_time],
+                        where=sql_table.id == id_))
+            table.drop_column('delivery_time')
+
     @staticmethod
     def order_sequence(tables):
         table, _ = tables[None]
@@ -238,7 +254,7 @@ class ProductSupplier(ModelSQL, ModelView, MatchMixin):
 
     @fields.depends('party')
     def on_change_party(self):
-        cursor = Transaction().cursor
+        cursor = Transaction().connection.cursor()
         self.currency = self.default_currency()
         if self.party:
             table = self.__table__()
@@ -276,9 +292,9 @@ class ProductSupplier(ModelSQL, ModelView, MatchMixin):
 
         if not date:
             date = Date.today()
-        if self.delivery_time is None:
+        if self.lead_time is None:
             return datetime.date.max
-        return date + datetime.timedelta(self.delivery_time)
+        return date + self.lead_time
 
     def compute_purchase_date(self, date):
         '''
@@ -286,9 +302,9 @@ class ProductSupplier(ModelSQL, ModelView, MatchMixin):
         '''
         Date = Pool().get('ir.date')
 
-        if self.delivery_time is None:
+        if self.lead_time is None:
             return Date.today()
-        return date - datetime.timedelta(self.delivery_time)
+        return date - self.lead_time
 
     @staticmethod
     def get_pattern():
@@ -316,8 +332,8 @@ class ProductSupplierPrice(ModelSQL, ModelView, MatchMixin):
     @classmethod
     def __register__(cls, module_name):
         TableHandler = backend.get('TableHandler')
-        cursor = Transaction().cursor
-        table = TableHandler(cursor, cls, module_name)
+        cursor = Transaction().connection.cursor()
+        table = TableHandler(cls, module_name)
         sql_table = cls.__table__()
 
         fill_sequence = not table.column_exist('sequence')
diff --git a/purchase.odt b/purchase.odt
index fbbbf6f..b844fa8 100644
Binary files a/purchase.odt and b/purchase.odt differ
diff --git a/purchase.py b/purchase.py
index 98091b6..27a57f8 100644
--- a/purchase.py
+++ b/purchase.py
@@ -17,7 +17,7 @@ from trytond.wizard import Wizard, StateAction, StateView, StateTransition, \
 from trytond import backend
 from trytond.pyson import Eval, Bool, If, PYSONEncoder, Id
 from trytond.transaction import Transaction
-from trytond.pool import Pool, PoolMeta
+from trytond.pool import Pool
 
 from trytond.modules.account.tax import TaxableMixin
 from trytond.modules.product import price_digits
@@ -27,7 +27,6 @@ __all__ = ['Purchase', 'PurchaseIgnoredInvoice',
     'PurchaseLineIgnoredMove', 'PurchaseLineRecreatedMove', 'PurchaseReport',
     'OpenSupplier', 'HandleShipmentExceptionAsk', 'HandleShipmentException',
     'HandleInvoiceExceptionAsk', 'HandleInvoiceException']
-__metaclass__ = PoolMeta
 
 _STATES = {
     'readonly': Eval('state') != 'draft',
@@ -39,7 +38,7 @@ _ZERO = Decimal(0)
 class Purchase(Workflow, ModelSQL, ModelView, TaxableMixin):
     'Purchase'
     __name__ = 'purchase.purchase'
-    _rec_name = 'reference'
+    _rec_name = 'number'
     company = fields.Many2One('company.company', 'Company', required=True,
         states={
             'readonly': (Eval('state') != 'draft') | Eval('lines', [0]),
@@ -49,8 +48,8 @@ class Purchase(Workflow, ModelSQL, ModelView, TaxableMixin):
                 Eval('context', {}).get('company', -1)),
             ],
         depends=['state'], select=True)
-    reference = fields.Char('Reference', size=None, readonly=True, select=True)
-    supplier_reference = fields.Char('Supplier Reference', select=True)
+    number = fields.Char('Number', size=None, readonly=True, select=True)
+    reference = fields.Char('Reference', select=True)
     description = fields.Char('Description', size=None, states=_STATES,
         depends=_DEPENDS)
     state = fields.Selection([
@@ -227,7 +226,7 @@ class Purchase(Workflow, ModelSQL, ModelView, TaxableMixin):
         Move = pool.get('stock.move')
         InvoiceLine = pool.get('account.invoice.line')
         TableHandler = backend.get('TableHandler')
-        cursor = Transaction().cursor
+        cursor = Transaction().connection.cursor()
         model_data = Table('ir_model_data')
         model_field = Table('ir_model_field')
         sql_table = cls.__table__()
@@ -254,9 +253,14 @@ class Purchase(Workflow, ModelSQL, ModelView, TaxableMixin):
                         len('packing'))],
                 where=model_field.name.like('%packing%')
                 & (model_field.module == module_name)))
-        table = TableHandler(cursor, cls, module_name)
+        table = TableHandler(cls, module_name)
         table.column_rename('packing_state', 'shipment_state')
 
+        # Migration from 3.8:
+        if table.column_exist('supplier_reference'):
+            table.column_rename('reference', 'number')
+            table.column_rename('supplier_reference', 'reference')
+
         super(Purchase, cls).__register__(module_name)
 
         # Migration from 1.2: rename packing to shipment in
@@ -266,7 +270,7 @@ class Purchase(Workflow, ModelSQL, ModelView, TaxableMixin):
                 values=['shipment'],
                 where=sql_table.invoice_method == 'packing'))
 
-        table = TableHandler(cursor, cls, module_name)
+        table = TableHandler(cls, module_name)
         # Migration from 2.2: warehouse is no more required
         table.not_null_action('warehouse', 'remove')
 
@@ -275,9 +279,9 @@ class Purchase(Workflow, ModelSQL, ModelView, TaxableMixin):
 
         # Migration from 3.2
         # state confirmed splitted into confirmed and processing
-        if (TableHandler.table_exist(cursor, PurchaseLine._table)
-                and TableHandler.table_exist(cursor, Move._table)
-                and TableHandler.table_exist(cursor, InvoiceLine._table)):
+        if (TableHandler.table_exist(PurchaseLine._table)
+                and TableHandler.table_exist(Move._table)
+                and TableHandler.table_exist(InvoiceLine._table)):
             purchase_line = PurchaseLine.__table__()
             move = Move.__table__()
             invoice_line = InvoiceLine.__table__()
@@ -302,7 +306,7 @@ class Purchase(Workflow, ModelSQL, ModelView, TaxableMixin):
                     where=sql_table.id.in_(sub_query.select(sub_query.id))))
 
         # Add index on create_date
-        table = TableHandler(cursor, cls, module_name)
+        table = TableHandler(cls, module_name)
         table.index_action('create_date', action='add')
 
     @classmethod
@@ -362,7 +366,7 @@ class Purchase(Workflow, ModelSQL, ModelView, TaxableMixin):
     def on_change_party(self):
         pool = Pool()
         Currency = pool.get('currency.currency')
-        cursor = Transaction().cursor
+        cursor = Transaction().connection.cursor()
         table = self.__table__()
         self.invoice_address = None
         self.payment_term = self.default_payment_term()
@@ -445,10 +449,6 @@ class Purchase(Workflow, ModelSQL, ModelView, TaxableMixin):
                     if value is not None else default_value,)
         return taxable_lines
 
-    @property
-    def tax_type(self):
-        return 'invoice'
-
     def get_tax_amount(self):
         taxes = self._get_taxes().itervalues()
         return sum(tax['amount'] for tax in taxes)
@@ -572,20 +572,20 @@ class Purchase(Workflow, ModelSQL, ModelView, TaxableMixin):
                     })
 
     def get_rec_name(self, name):
-        return (self.reference or str(self.id)
+        return (self.number or str(self.id)
             + ' - ' + self.party.name)
 
     @classmethod
     def search_rec_name(cls, name, clause):
         _, operator, value = clause
-        if operator[1].startswith('!') or operator[1].startswith('not '):
+        if operator.startswith('!') or operator.startswith('not '):
             bool_op = 'AND'
         else:
             bool_op = 'OR'
         names = value.split(' - ', 1)
         domain = [bool_op,
+            ('number', operator, names[0]),
             ('reference', operator, names[0]),
-            ('supplier_reference', operator, names[0]),
             ]
         if len(names) != 1 and names[1]:
             domain = [bool_op, domain, ('party', operator, names[1])]
@@ -601,7 +601,7 @@ class Purchase(Workflow, ModelSQL, ModelView, TaxableMixin):
             default = {}
         default = default.copy()
         default['state'] = 'draft'
-        default['reference'] = None
+        default['number'] = None
         default['invoice_state'] = 'none'
         default['invoices_ignored'] = None
         default['moves'] = None
@@ -617,9 +617,9 @@ class Purchase(Workflow, ModelSQL, ModelView, TaxableMixin):
                 self.raise_user_error('warehouse_required', (self.rec_name,))
 
     @classmethod
-    def set_reference(cls, purchases):
+    def set_number(cls, purchases):
         '''
-        Fill the reference field with the purchase sequence
+        Fill the number field with the purchase sequence
         '''
         pool = Pool()
         Sequence = pool.get('ir.sequence')
@@ -627,12 +627,10 @@ class Purchase(Workflow, ModelSQL, ModelView, TaxableMixin):
 
         config = Config(1)
         for purchase in purchases:
-            if purchase.reference:
+            if purchase.number:
                 continue
-            reference = Sequence.get_id(config.purchase_sequence.id)
-            cls.write([purchase], {
-                    'reference': reference,
-                    })
+            purchase.number = Sequence.get_id(config.purchase_sequence.id)
+        cls.save(purchases)
 
     @classmethod
     def set_purchase_date(cls, purchases):
@@ -652,21 +650,8 @@ class Purchase(Workflow, ModelSQL, ModelView, TaxableMixin):
                     'total_amount_cache': purchase.total_amount,
                     })
 
-    def _get_invoice_line_purchase_line(self, invoice_type):
-        '''
-        Return invoice line for each purchase lines
-        '''
-        res = {}
-        for line in self.lines:
-            val = line.get_invoice_line(invoice_type)
-            if val:
-                res[line.id] = val
-        return res
-
-    def _get_invoice_purchase(self, invoice_type):
-        '''
-        Return invoice of type invoice_type
-        '''
+    def _get_invoice_purchase(self):
+        'Return invoice'
         pool = Pool()
         Journal = pool.get('account.journal')
         Invoice = pool.get('account.invoice')
@@ -681,7 +666,7 @@ class Purchase(Workflow, ModelSQL, ModelView, TaxableMixin):
 
         return Invoice(
             company=self.company,
-            type=invoice_type,
+            type='in',
             journal=journal,
             party=self.party,
             invoice_address=self.invoice_address,
@@ -690,10 +675,8 @@ class Purchase(Workflow, ModelSQL, ModelView, TaxableMixin):
             payment_term=self.payment_term,
             )
 
-    def create_invoice(self, invoice_type):
-        '''
-        Create an invoice for the purchase and return it
-        '''
+    def create_invoice(self):
+        'Create an invoice for the purchase and return it'
         pool = Pool()
         Invoice = pool.get('account.invoice')
 
@@ -704,11 +687,15 @@ class Purchase(Workflow, ModelSQL, ModelView, TaxableMixin):
             self.raise_user_error('missing_account_payable',
                     error_args=(self.party.rec_name,))
 
-        invoice_lines = self._get_invoice_line_purchase_line(invoice_type)
+        invoice_lines = {}
+        for line in self.lines:
+            ilines = line.get_invoice_line()
+            if ilines:
+                invoice_lines[line.id] = ilines
         if not invoice_lines:
             return
 
-        invoice = self._get_invoice_purchase(invoice_type)
+        invoice = self._get_invoice_purchase()
         invoice.lines = list(chain.from_iterable(
                 invoice_lines[l.id] for l in self.lines
                 if l.id in invoice_lines))
@@ -721,21 +708,31 @@ class Purchase(Workflow, ModelSQL, ModelView, TaxableMixin):
         '''
         Create move for each purchase lines
         '''
-        new_moves = []
+        pool = Pool()
+        Move = pool.get('stock.move')
+
+        moves = []
         for line in self.lines:
-            if (line.quantity >= 0) != (move_type == 'in'):
-                continue
-            move = line.create_move()
+            move = line.get_move(move_type)
             if move:
-                new_moves.append(move)
-        return new_moves
+                moves.append(move)
+        Move.save(moves)
+        return moves
+
+    @property
+    def return_from_location(self):
+        if self.warehouse:
+            return (self.warehouse.supplier_return_location
+                or self.warehouse.storage_location)
 
     def _get_return_shipment(self):
         ShipmentInReturn = Pool().get('stock.shipment.in.return')
         return ShipmentInReturn(
             company=self.company,
-            from_location=self.warehouse.storage_location,
+            from_location=self.return_from_location,
             to_location=self.party.supplier_location,
+            supplier=self.party,
+            delivery_address=self.party.address_get(type='delivery'),
             )
 
     def create_return_shipment(self, return_moves):
@@ -784,7 +781,7 @@ class Purchase(Workflow, ModelSQL, ModelView, TaxableMixin):
     def quote(cls, purchases):
         for purchase in purchases:
             purchase.check_for_quotation()
-        cls.set_reference(purchases)
+        cls.set_number(purchases)
 
     @classmethod
     @ModelView.button
@@ -799,6 +796,11 @@ class Purchase(Workflow, ModelSQL, ModelView, TaxableMixin):
         pass
 
     @classmethod
+    @Workflow.transition('done')
+    def do(cls, purchases):
+        pass
+
+    @classmethod
     @ModelView.button_action('purchase.wizard_invoice_handle_exception')
     def handle_invoice_exception(cls, purchases):
         pass
@@ -813,8 +815,7 @@ class Purchase(Workflow, ModelSQL, ModelView, TaxableMixin):
     def process(cls, purchases):
         process, done = [], []
         for purchase in purchases:
-            purchase.create_invoice('in_invoice')
-            purchase.create_invoice('in_credit_note')
+            purchase.create_invoice()
             purchase.set_invoice_state()
             purchase.create_move('in')
             return_moves = purchase.create_move('return')
@@ -828,9 +829,7 @@ class Purchase(Workflow, ModelSQL, ModelView, TaxableMixin):
         if process:
             cls.proceed(process)
         if done:
-            cls.write(done, {
-                    'state': 'done',
-                    })
+            cls.do(done)
 
 
 class PurchaseIgnoredInvoice(ModelSQL):
@@ -875,6 +874,7 @@ class PurchaseLine(ModelSQL, ModelView):
             },
         depends=['unit_digits', 'type'])
     unit = fields.Many2One('product.uom', 'Unit',
+        ondelete='RESTRICT',
         states={
             'required': Bool(Eval('product')),
             'invisible': Eval('type') != 'line',
@@ -889,7 +889,7 @@ class PurchaseLine(ModelSQL, ModelView):
     unit_digits = fields.Function(fields.Integer('Unit Digits'),
         'on_change_with_unit_digits')
     product = fields.Many2One('product.product', 'Product',
-        domain=[('purchasable', '=', True)],
+        ondelete='RESTRICT', domain=[('purchasable', '=', True)],
         states={
             'invisible': Eval('type') != 'line',
             'readonly': ~Eval('_parent_purchase'),
@@ -970,10 +970,10 @@ class PurchaseLine(ModelSQL, ModelView):
     @classmethod
     def __register__(cls, module_name):
         TableHandler = backend.get('TableHandler')
-        cursor = Transaction().cursor
+        cursor = Transaction().connection.cursor()
         sql_table = cls.__table__()
         super(PurchaseLine, cls).__register__(module_name)
-        table = TableHandler(cursor, cls, module_name)
+        table = TableHandler(cls, module_name)
 
         # Migration from 1.0 comment change into note
         if table.column_exist('comment'):
@@ -1162,13 +1162,13 @@ class PurchaseLine(ModelSQL, ModelView):
         return Decimal('0.0')
 
     def get_from_location(self, name):
-        if self.quantity >= 0:
+        if (self.quantity or 0) >= 0:
             return self.purchase.party.supplier_location.id
-        elif self.purchase.warehouse:
-            return self.purchase.warehouse.storage_location.id
+        elif self.purchase.return_from_location:
+            return self.purchase.return_from_location.id
 
     def get_to_location(self, name):
-        if self.quantity >= 0:
+        if (self.quantity or 0) >= 0:
             if self.purchase.warehouse:
                 return self.purchase.warehouse.input_location.id
         else:
@@ -1178,9 +1178,14 @@ class PurchaseLine(ModelSQL, ModelView):
         '_parent_purchase.purchase_date', '_parent_purchase.party')
     def on_change_with_delivery_date(self, name=None):
         if self.moves:
-            return min(m.effective_date if m.effective_date else m.planned_date
-                for m in self.moves)
+            dates = filter(
+                None, (m.effective_date or m.planned_date for m in self.moves))
+            if dates:
+                return min(dates)
+            else:
+                return
         if (self.product
+                and self.quantity is not None
                 and self.quantity > 0
                 and self.purchase and self.purchase.party
                 and self.product.product_suppliers):
@@ -1193,12 +1198,9 @@ class PurchaseLine(ModelSQL, ModelView):
                         return None
                     return delivery_date
 
-    def get_invoice_line(self, invoice_type):
-        '''
-        Return a list of invoice line for purchase line
-        '''
+    def get_invoice_line(self):
+        'Return a list of invoice line for purchase line'
         pool = Pool()
-        Uom = pool.get('product.uom')
         Property = pool.get('ir.property')
         InvoiceLine = pool.get('account.invoice.line')
 
@@ -1208,62 +1210,26 @@ class PurchaseLine(ModelSQL, ModelView):
         invoice_line.note = self.note
         invoice_line.origin = self
         if self.type != 'line':
-            if (self.purchase.invoice_method == 'order'
-                    and not self.invoice_lines
-                    and ((all(l.quantity >= 0 for l in self.purchase.lines
-                                if l.type == 'line')
-                            and invoice_type == 'in_invoice')
-                        or (all(l.quantity <= 0 for l in self.purchase.lines
-                                if l.type == 'line')
-                            and invoice_type == 'in_credit_note'))):
+            if self._get_invoice_not_line():
                 return [invoice_line]
             else:
                 return []
-        if (invoice_type == 'in_invoice') != (self.quantity >= 0):
-            return []
 
-        stock_moves = []
-        if (self.purchase.invoice_method == 'order'
-                or not self.product
-                or self.product.type == 'service'):
-            quantity = abs(self.quantity)
-            stock_moves = self.moves
-        else:
-            quantity = 0.0
-            for move in self.moves:
-                if move.state == 'done':
-                    quantity += Uom.compute_qty(move.uom, move.quantity,
-                        self.unit)
-                    if move.invoiced_quantity < move.quantity:
-                        stock_moves.append(move)
-        invoice_line.stock_moves = stock_moves
+        quantity = (self._get_invoice_line_quantity()
+            - self._get_invoiced_quantity())
 
-        skip_ids = set(l.id for i in self.purchase.invoices_recreated
-            for l in i.lines)
-        for old_invoice_line in self.invoice_lines:
-            if old_invoice_line.type != 'line':
-                continue
-            if old_invoice_line.id not in skip_ids:
-                if old_invoice_line.invoice:
-                    old_invoice_type = old_invoice_line.invoice.type
-                else:
-                    old_invoice_type = old_invoice_line.invoice_type
-
-                sign = 1 if old_invoice_type == invoice_type else -1
-
-                quantity -= Uom.compute_qty(old_invoice_line.unit,
-                        sign * old_invoice_line.quantity, self.unit)
+        if self.unit:
+            quantity = self.unit.round(quantity)
+        invoice_line.quantity = quantity
 
-        rounding = self.unit.rounding if self.unit else 0.01
-        invoice_line.quantity = Uom.round(quantity, rounding)
-        if invoice_line.quantity <= 0:
+        if not invoice_line.quantity:
             return []
 
         invoice_line.unit = self.unit
         invoice_line.product = self.product
         invoice_line.unit_price = self.unit_price
         invoice_line.taxes = self.taxes
-        invoice_line.invoice_type = invoice_type
+        invoice_line.invoice_type = 'in'
         if self.product:
             invoice_line.account = self.product.account_expense_used
             if not invoice_line.account:
@@ -1279,31 +1245,65 @@ class PurchaseLine(ModelSQL, ModelView):
             if not invoice_line.account:
                 self.raise_user_error('missing_account_expense_property',
                     {'purchase': self.purchase.rec_name})
+        invoice_line.stock_moves = self._get_invoice_line_moves()
         return [invoice_line]
 
-    @classmethod
-    def view_attributes(cls):
-        return [
-            ('/form//field[@name="note"]|/form//field[@name="description"]',
-                'spell', Eval('_parent_purchase', {}).get('party_lang'))]
+    def _get_invoice_not_line(self):
+        'Return if the not line should be invoiced'
+        return (self.purchase.invoice_method == 'order'
+            and not self.invoice_lines)
 
-    @classmethod
-    def copy(cls, lines, default=None):
-        if default is None:
-            default = {}
-        default = default.copy()
-        default['moves'] = None
-        default['moves_ignored'] = None
-        default['moves_recreated'] = None
-        default['invoice_lines'] = None
-        return super(PurchaseLine, cls).copy(lines, default=default)
+    def _get_invoice_line_quantity(self):
+        'Return the quantity that should be invoiced'
+        pool = Pool()
+        Uom = pool.get('product.uom')
+
+        if (self.purchase.invoice_method == 'order'
+                or not self.product
+                or self.product.type == 'service'):
+            return self.quantity
+        elif self.purchase.invoice_method == 'shipment':
+            quantity = 0.0
+            for move in self.moves:
+                if move.state == 'done':
+                    quantity += Uom.compute_qty(move.uom, move.quantity,
+                        self.unit)
+            if self.quantity < 0:
+                quantity *= -1
+            return quantity
+
+    def _get_invoiced_quantity(self):
+        'Return the quantity already invoiced'
+        pool = Pool()
+        Uom = pool.get('product.uom')
+
+        quantity = 0
+        skips = {l for i in self.purchase.invoices_recreated for l in i.lines}
+        for invoice_line in self.invoice_lines:
+            if invoice_line.type != 'line':
+                continue
+            if invoice_line not in skips:
+                quantity += Uom.compute_qty(invoice_line.unit,
+                    invoice_line.quantity, self.unit)
+        return quantity
+
+    def _get_invoice_line_moves(self):
+        'Return the stock moves that should be invoiced'
+        moves = []
+        if self.purchase.invoice_method == 'order':
+            moves.extend(self.moves)
+        elif self.purchase.invoice_method == 'shipment':
+            for move in self.moves:
+                if move.state == 'done':
+                    if move.invoiced_quantity < move.quantity:
+                        moves.append(move)
+        return moves
 
-    def get_move(self):
+    def get_move(self, move_type):
         '''
         Return move values for purchase line
         '''
         pool = Pool()
-        Uom = pool.get('product.uom')
         Move = pool.get('stock.move')
 
         if self.type != 'line':
@@ -1312,14 +1312,14 @@ class PurchaseLine(ModelSQL, ModelView):
             return
         if self.product.type == 'service':
             return
-        skip = set(self.moves_recreated)
-        quantity = abs(self.quantity)
-        for move in self.moves:
-            if move not in skip:
-                quantity -= Uom.compute_qty(move.uom, move.quantity,
-                    self.unit)
 
-        quantity = Uom.round(quantity, self.unit.rounding)
+        if (self.quantity >= 0) != (move_type == 'in'):
+            return
+
+        quantity = (self._get_move_quantity(move_type)
+            - self._get_shipped_quantity(move_type))
+
+        quantity = self.unit.round(quantity)
         if quantity <= 0:
             return
 
@@ -1339,20 +1339,47 @@ class PurchaseLine(ModelSQL, ModelView):
         move.unit_price = self.unit_price
         move.currency = self.purchase.currency
         move.planned_date = self.delivery_date
-        move.invoice_lines = [l for l in self.invoice_lines
-            if not l.stock_moves]
+        move.invoice_lines = self._get_move_invoice_lines(move_type)
         move.origin = self
         return move
 
-    def create_move(self):
-        '''
-        Create move line
-        '''
-        move = self.get_move()
-        if not move:
-            return
-        move.save()
-        return move
+    def _get_move_quantity(self, move_type):
+        'Return the quantity that should be shipped'
+        return abs(self.quantity)
+
+    def _get_shipped_quantity(self, move_type):
+        'Return the quantity already shipped'
+        pool = Pool()
+        Uom = pool.get('product.uom')
+
+        quantity = 0
+        skip = set(self.moves_recreated)
+        for move in self.moves:
+            if move not in skip:
+                quantity += Uom.compute_qty(move.uom, move.quantity,
+                    self.unit)
+        return quantity
+
+    def _get_move_invoice_lines(self, move_type):
+        'Return the invoice lines that should be shipped'
+        return [l for l in self.invoice_lines if not l.stock_moves]
+
+    @classmethod
+    def view_attributes(cls):
+        return [
+            ('/form//field[@name="note"]|/form//field[@name="description"]',
+                'spell', Eval('_parent_purchase', {}).get('party_lang'))]
+
+    @classmethod
+    def copy(cls, lines, default=None):
+        if default is None:
+            default = {}
+        default = default.copy()
+        default['moves'] = None
+        default['moves_ignored'] = None
+        default['moves_recreated'] = None
+        default['invoice_lines'] = None
+        return super(PurchaseLine, cls).copy(lines, default=default)
 
 
 class PurchaseLineTax(ModelSQL):
@@ -1401,7 +1428,7 @@ class OpenSupplier(Wizard):
         ModelData = pool.get('ir.model.data')
         Wizard = pool.get('ir.action.wizard')
         Purchase = pool.get('purchase.purchase')
-        cursor = Transaction().cursor
+        cursor = Transaction().connection.cursor()
         purchase = Purchase.__table__()
 
         cursor.execute(*purchase.select(purchase.party,
@@ -1427,7 +1454,7 @@ class HandleShipmentExceptionAsk(ModelView):
 
     @classmethod
     def __register__(cls, module_name):
-        cursor = Transaction().cursor
+        cursor = Transaction().connection.cursor()
         model = Table('ir_model')
         # Migration from 1.2: packing renamed into shipment
         cursor.execute(*model.update(
diff --git a/setup.py b/setup.py
index 434404d..af0c54d 100644
--- a/setup.py
+++ b/setup.py
@@ -5,11 +5,17 @@
 from setuptools import setup
 import re
 import os
-import ConfigParser
+import io
+try:
+    from configparser import ConfigParser
+except ImportError:
+    from ConfigParser import ConfigParser
 
 
 def read(fname):
-    return open(os.path.join(os.path.dirname(__file__), fname)).read()
+    return io.open(
+        os.path.join(os.path.dirname(__file__), fname),
+        'r', encoding='utf-8').read()
 
 
 def get_require_version(name):
@@ -21,7 +27,7 @@ def get_require_version(name):
         major_version, minor_version + 1)
     return require
 
-config = ConfigParser.ConfigParser()
+config = ConfigParser()
 config.readfp(open('tryton.cfg'))
 info = dict(config.items('tryton'))
 for key in ('depends', 'extras_depend', 'xml'):
@@ -43,7 +49,7 @@ if minor_version % 2:
 
 requires = ['python-sql >= 0.4']
 for dep in info.get('depends', []):
-    if not re.match(r'(ir|res|webdav)(\W|$)', dep):
+    if not re.match(r'(ir|res)(\W|$)', dep):
         requires.append(get_require_version('trytond_%s' % dep))
 requires.append(get_require_version('trytond'))
 
@@ -82,6 +88,7 @@ setup(name=name,
         'License :: OSI Approved :: GNU General Public License (GPL)',
         'Natural Language :: Bulgarian',
         'Natural Language :: Catalan',
+        'Natural Language :: Chinese (Simplified)',
         'Natural Language :: Czech',
         'Natural Language :: Dutch',
         'Natural Language :: English',
@@ -95,6 +102,9 @@ setup(name=name,
         'Natural Language :: Spanish',
         'Operating System :: OS Independent',
         'Programming Language :: Python :: 2.7',
+        'Programming Language :: Python :: 3.3',
+        'Programming Language :: Python :: 3.4',
+        'Programming Language :: Python :: 3.5',
         'Programming Language :: Python :: Implementation :: CPython',
         'Programming Language :: Python :: Implementation :: PyPy',
         'Topic :: Office/Business',
@@ -110,5 +120,9 @@ setup(name=name,
     """,
     test_suite='tests',
     test_loader='trytond.test_loader:Loader',
+    use_2to3=True,
+    convert_2to3_doctests=[
+        'tests/scenario_purchase.rst',
+        ],
     tests_require=tests_require,
     )
diff --git a/stock.py b/stock.py
index 6c95b38..191e829 100644
--- a/stock.py
+++ b/stock.py
@@ -3,6 +3,7 @@
 import datetime
 
 from sql import Null
+from sql.aggregate import Max
 from sql.operators import Concat
 
 from trytond.model import Workflow, ModelView, fields
@@ -15,12 +16,12 @@ from trytond import backend
 
 from trytond.modules.product import price_digits
 
-__all__ = ['ShipmentIn', 'ShipmentInReturn', 'Move',
+__all__ = ['ShipmentIn', 'ShipmentInReturn', 'Move', 'Location',
     'OpenProductQuantitiesByWarehouse']
-__metaclass__ = PoolMeta
 
 
 class ShipmentIn:
+    __metaclass__ = PoolMeta
     __name__ = 'stock.shipment.in'
 
     @classmethod
@@ -88,6 +89,7 @@ class ShipmentIn:
 
 
 class ShipmentInReturn:
+    __metaclass__ = PoolMeta
     __name__ = 'stock.shipment.in.return'
 
     @classmethod
@@ -99,6 +101,35 @@ class ShipmentInReturn:
                 })
 
     @classmethod
+    def __register__(cls, module_name):
+        pool = Pool()
+        Move = pool.get('stock.move')
+        PurchaseLine = pool.get('purchase.line')
+        Purchase = pool.get('purchase.purchase')
+        cursor = Transaction().connection.cursor()
+        sql_table = cls.__table__()
+        move = Move.__table__()
+        line = PurchaseLine.__table__()
+        purchase = Purchase.__table__()
+
+        # Migration from 3.8: New supplier field
+        cursor.execute(*sql_table.select(sql_table.supplier,
+                where=sql_table.supplier == Null, limit=1))
+        if cursor.fetchone():
+            value = sql_table.join(move, condition=(
+                    Concat(cls.__name__ + ',', sql_table.id) == move.shipment)
+                ).join(line, condition=(
+                        Concat(PurchaseLine.__name__ + ',', line.id)
+                        == move.origin)
+                ).join(purchase,
+                    condition=(purchase.id == line.purchase)
+                ).select(Max(purchase.party))
+            cursor.execute(*sql_table.update(
+                    columns=[sql_table.supplier],
+                    values=[value]))
+        super(ShipmentInReturn, cls).__register__(module_name)
+
+    @classmethod
     def write(cls, *args):
         pool = Pool()
         Purchase = pool.get('purchase.purchase')
@@ -141,6 +172,7 @@ class ShipmentInReturn:
 
 
 class Move:
+    __metaclass__ = PoolMeta
     __name__ = 'stock.move'
     purchase = fields.Function(fields.Many2One('purchase.purchase', 'Purchase',
             states={
@@ -182,12 +214,12 @@ class Move:
     @classmethod
     def __register__(cls, module_name):
         TableHandler = backend.get('TableHandler')
-        cursor = Transaction().cursor
+        cursor = Transaction().connection.cursor()
         sql_table = cls.__table__()
 
         super(Move, cls).__register__(module_name)
 
-        table = TableHandler(cursor, cls, module_name)
+        table = TableHandler(cls, module_name)
 
         # Migration from 2.6: remove purchase_line
         if table.column_exist('purchase_line'):
@@ -310,6 +342,24 @@ class Move:
                     Purchase.process(purchases)
 
 
+class Location:
+    __metaclass__ = PoolMeta
+    __name__ = 'stock.location'
+
+    supplier_return_location = fields.Many2One(
+        'stock.location', 'Supplier Return',
+        states={
+            'invisible': Eval('type') != 'warehouse',
+            'readonly': ~Eval('active'),
+            },
+        domain=[
+            ('type', '=', 'storage'),
+            ('parent', 'child_of', [Eval('id', -1)]),
+            ],
+        depends=['type', 'active', 'id'],
+        help='If empty the Storage location is used')
+
+
 class OpenProductQuantitiesByWarehouse(Wizard):
     __name__ = 'stock.product_quantities_warehouse'
 
diff --git a/stock.xml b/stock.xml
index 8a60db8..488f807 100644
--- a/stock.xml
+++ b/stock.xml
@@ -10,6 +10,12 @@ this repository contains the full copyright notices and license terms. -->
             <field name="name">move_list_shipment</field>
         </record>
 
+        <record model="ir.ui.view" id="location_view_form">
+            <field name="model">stock.location</field>
+            <field name="inherit" ref="stock.location_view_form"/>
+            <field name="name">location_form</field>
+        </record>
+
         <record model="ir.model.access" id="access_purchase_group_stock">
             <field name="model" search="[('model', '=', 'purchase.purchase')]"/>
             <field name="group" ref="stock.group_stock"/>
diff --git a/tests/__init__.py b/tests/__init__.py
index d69a38c..41d6743 100644
--- a/tests/__init__.py
+++ b/tests/__init__.py
@@ -1,6 +1,9 @@
 # This file is part of Tryton.  The COPYRIGHT file at the top level of
 # this repository contains the full copyright notices and license terms.
 
-from .test_purchase import suite
+try:
+    from trytond.modules.purchase.tests.test_purchase import suite
+except ImportError:
+    from .test_purchase import suite
 
 __all__ = ['suite']
diff --git a/tests/scenario_purchase.rst b/tests/scenario_purchase.rst
index e301469..55c0dca 100644
--- a/tests/scenario_purchase.rst
+++ b/tests/scenario_purchase.rst
@@ -13,7 +13,7 @@ Imports::
     ...     get_company
     >>> from trytond.modules.account.tests.tools import create_fiscalyear, \
     ...     create_chart, get_accounts, create_tax
-    >>> from.trytond.modules.account_invoice.tests.tools import \
+    >>> from trytond.modules.account_invoice.tests.tools import \
     ...     set_fiscalyear_invoice_sequences, create_payment_term
     >>> today = datetime.date.today()
 
@@ -204,7 +204,7 @@ Purchase 5 products::
 Invoice line must be linked to stock move::
 
     >>> _, invoice_line1, invoice_line2 = sorted(invoice.lines,
-    ...     key=lambda l: l.quantity)
+    ...     key=lambda l: l.quantity or 0)
     >>> stock_move1, stock_move2 = sorted(purchase.moves,
     ...     key=lambda m: m.quantity)
     >>> invoice_line1.stock_moves == [stock_move1]
@@ -288,9 +288,9 @@ Open supplier invoice::
     >>> config.user = account_user.id
     >>> invoice = Invoice(invoice.id)
     >>> invoice.type
-    u'in_invoice'
+    u'in'
     >>> invoice_line1, invoice_line2 = sorted(invoice.lines,
-    ...     key=lambda l: l.quantity)
+    ...     key=lambda l: l.quantity or 0)
     >>> for line in invoice.lines:
     ...     line.quantity = 1
     ...     line.save()
@@ -373,11 +373,11 @@ Open supplier credit note::
     >>> config.user = account_user.id
     >>> credit_note = Invoice(credit_note.id)
     >>> credit_note.type
-    u'in_credit_note'
+    u'in'
     >>> len(credit_note.lines)
     1
     >>> sum(l.quantity for l in credit_note.lines)
-    4.0
+    -4.0
     >>> credit_note.invoice_date = today
     >>> credit_note.click('post')
 
@@ -407,7 +407,7 @@ Mixing return and purchase::
     u'processing'
     >>> mix.reload()
     >>> len(mix.moves), len(mix.shipment_returns), len(mix.invoices)
-    (2, 1, 2)
+    (2, 1, 1)
 
 Checking Shipments::
 
@@ -440,23 +440,17 @@ Checking the invoice::
 
     >>> config.user = purchase_user.id
     >>> mix.reload()
-    >>> mix_invoice, mix_credit_note = sorted(mix.invoices,
-    ...     key=attrgetter('type'), reverse=True)
+    >>> mix_invoice, = mix.invoices
     >>> config.user = account_user.id
     >>> mix_invoice = Invoice(mix_invoice.id)
-    >>> mix_credit_note = Invoice(mix_credit_note.id)
-    >>> mix_invoice.type, mix_credit_note.type
-    (u'in_invoice', u'in_credit_note')
-    >>> len(mix_invoice.lines), len(mix_credit_note.lines)
-    (1, 1)
-    >>> sum(l.quantity for l in mix_invoice.lines)
-    7.0
-    >>> sum(l.quantity for l in mix_credit_note.lines)
-    2.0
+    >>> mix_invoice.type
+    u'in'
+    >>> len(mix_invoice.lines)
+    3
+    >>> sorted(l.quantity for l in mix_invoice.lines if l.quantity)
+    [-2.0, 7.0]
     >>> mix_invoice.invoice_date = today
     >>> mix_invoice.click('post')
-    >>> mix_credit_note.invoice_date = today
-    >>> mix_credit_note.click('post')
 
 Mixing stuff with an invoice method 'on shipment'::
 
diff --git a/tests/test_purchase.py b/tests/test_purchase.py
index 1008b94..507256f 100644
--- a/tests/test_purchase.py
+++ b/tests/test_purchase.py
@@ -5,33 +5,34 @@ import doctest
 from decimal import Decimal
 
 import trytond.tests.test_tryton
-from trytond.tests.test_tryton import ModuleTestCase
-from trytond.tests.test_tryton import POOL, DB_NAME, USER, CONTEXT
-from trytond.tests.test_tryton import doctest_setup, doctest_teardown
+from trytond.tests.test_tryton import ModuleTestCase, with_transaction
+from trytond.tests.test_tryton import (doctest_setup, doctest_teardown,
+    doctest_checker)
 from trytond.transaction import Transaction
+from trytond.pool import Pool
+
+from trytond.modules.company.tests import create_company, set_company
+from trytond.modules.account.tests import create_chart
 
 
 class PurchaseTestCase(ModuleTestCase):
     'Test Purchase module'
     module = 'purchase'
 
+    @with_transaction()
     def test_purchase_price(self):
         'Test purchase price'
-        with Transaction().start(DB_NAME, USER, context=CONTEXT):
-            Company = POOL.get('company.company')
-            User = POOL.get('res.user')
-            Account = POOL.get('account.account')
-            Template = POOL.get('product.template')
-            Product = POOL.get('product.product')
-            Uom = POOL.get('product.uom')
-            ProductSupplier = POOL.get('purchase.product_supplier')
-            Party = POOL.get('party.party')
-
-            company, = Company.search([('rec_name', '=', 'Dunder Mifflin')])
-            User.write([User(USER)], {
-                    'main_company': company.id,
-                    'company': company.id,
-                    })
+        pool = Pool()
+        Account = pool.get('account.account')
+        Template = pool.get('product.template')
+        Product = pool.get('product.product')
+        Uom = pool.get('product.uom')
+        ProductSupplier = pool.get('purchase.product_supplier')
+        Party = pool.get('party.party')
+
+        company = create_company()
+        with set_company(company):
+            create_chart(company)
 
             receivable, = Account.search([
                     ('kind', '=', 'receivable'),
@@ -104,17 +105,10 @@ class PurchaseTestCase(ModuleTestCase):
 
 def suite():
     suite = trytond.tests.test_tryton.suite()
-    from trytond.modules.company.tests import test_company
-    for test in test_company.suite():
-        if test not in suite and not isinstance(test, doctest.DocTestCase):
-            suite.addTest(test)
-    from trytond.modules.account.tests import test_account
-    for test in test_account.suite():
-        if test not in suite and not isinstance(test, doctest.DocTestCase):
-            suite.addTest(test)
     suite.addTests(unittest.TestLoader().loadTestsFromTestCase(
         PurchaseTestCase))
     suite.addTests(doctest.DocFileSuite('scenario_purchase.rst',
             setUp=doctest_setup, tearDown=doctest_teardown, encoding='UTF-8',
-            optionflags=doctest.REPORT_ONLY_FIRST_FAILURE))
+            optionflags=doctest.REPORT_ONLY_FIRST_FAILURE,
+            checker=doctest_checker))
     return suite
diff --git a/tryton.cfg b/tryton.cfg
index 98a88c8..28f2539 100644
--- a/tryton.cfg
+++ b/tryton.cfg
@@ -1,5 +1,5 @@
 [tryton]
-version=3.8.1
+version=4.0.0
 depends:
     account
     account_invoice
diff --git a/trytond_purchase.egg-info/PKG-INFO b/trytond_purchase.egg-info/PKG-INFO
index 7496ee2..2f3c8a6 100644
--- a/trytond_purchase.egg-info/PKG-INFO
+++ b/trytond_purchase.egg-info/PKG-INFO
@@ -1,12 +1,12 @@
 Metadata-Version: 1.1
 Name: trytond-purchase
-Version: 3.8.1
+Version: 4.0.0
 Summary: Tryton module for purchase
 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.8/
+Download-URL: http://downloads.tryton.org/4.0/
 Description: trytond_purchase
         ================
         
@@ -54,6 +54,7 @@ Classifier: Intended Audience :: Legal Industry
 Classifier: License :: OSI Approved :: GNU General Public License (GPL)
 Classifier: Natural Language :: Bulgarian
 Classifier: Natural Language :: Catalan
+Classifier: Natural Language :: Chinese (Simplified)
 Classifier: Natural Language :: Czech
 Classifier: Natural Language :: Dutch
 Classifier: Natural Language :: English
@@ -67,6 +68,9 @@ Classifier: Natural Language :: Slovenian
 Classifier: Natural Language :: Spanish
 Classifier: Operating System :: OS Independent
 Classifier: Programming Language :: Python :: 2.7
+Classifier: Programming Language :: Python :: 3.3
+Classifier: Programming Language :: Python :: 3.4
+Classifier: Programming Language :: Python :: 3.5
 Classifier: Programming Language :: Python :: Implementation :: CPython
 Classifier: Programming Language :: Python :: Implementation :: PyPy
 Classifier: Topic :: Office/Business
diff --git a/trytond_purchase.egg-info/SOURCES.txt b/trytond_purchase.egg-info/SOURCES.txt
index 427391f..dda5dc4 100644
--- a/trytond_purchase.egg-info/SOURCES.txt
+++ b/trytond_purchase.egg-info/SOURCES.txt
@@ -79,11 +79,13 @@ locale/fr_FR.po
 locale/hu_HU.po
 locale/it_IT.po
 locale/ja_JP.po
+locale/lo_LA.po
 locale/lt_LT.po
 locale/nl_NL.po
 locale/pt_BR.po
 locale/ru_RU.po
 locale/sl_SI.po
+locale/zh_CN.po
 tests/scenario_purchase.rst
 trytond_purchase.egg-info/PKG-INFO
 trytond_purchase.egg-info/SOURCES.txt
@@ -95,6 +97,7 @@ trytond_purchase.egg-info/top_level.txt
 view/configuration_form.xml
 view/handle_invoice_exception_ask_form.xml
 view/handle_shipment_exception_ask_form.xml
+view/location_form.xml
 view/move_form.xml
 view/move_list_shipment.xml
 view/product_list_purchase_line.xml
diff --git a/trytond_purchase.egg-info/requires.txt b/trytond_purchase.egg-info/requires.txt
index 91c0d3a..bdeb17b 100644
--- a/trytond_purchase.egg-info/requires.txt
+++ b/trytond_purchase.egg-info/requires.txt
@@ -1,11 +1,11 @@
 python-sql >= 0.4
-trytond_account >= 3.8, < 3.9
-trytond_account_invoice >= 3.8, < 3.9
-trytond_account_invoice_stock >= 3.8, < 3.9
-trytond_account_product >= 3.8, < 3.9
-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_stock >= 3.8, < 3.9
-trytond >= 3.8, < 3.9
+trytond_account >= 4.0, < 4.1
+trytond_account_invoice >= 4.0, < 4.1
+trytond_account_invoice_stock >= 4.0, < 4.1
+trytond_account_product >= 4.0, < 4.1
+trytond_company >= 4.0, < 4.1
+trytond_currency >= 4.0, < 4.1
+trytond_party >= 4.0, < 4.1
+trytond_product >= 4.0, < 4.1
+trytond_stock >= 4.0, < 4.1
+trytond >= 4.0, < 4.1
\ No newline at end of file
diff --git a/view/location_form.xml b/view/location_form.xml
new file mode 100644
index 0000000..acf2d3a
--- /dev/null
+++ b/view/location_form.xml
@@ -0,0 +1,9 @@
+<?xml version="1.0"?>
+<!-- This file is part of Tryton.  The COPYRIGHT file at the top level of
+this repository contains the full copyright notices and license terms. -->
+<data>
+    <xpath expr="/form/field[@name='picking_location']" position="after">
+        <label name="supplier_return_location"/>
+        <field name="supplier_return_location"/>
+    </xpath>
+</data>
diff --git a/view/product_list_purchase_line.xml b/view/product_list_purchase_line.xml
index 5c638ca..d02317d 100644
--- a/view/product_list_purchase_line.xml
+++ b/view/product_list_purchase_line.xml
@@ -2,12 +2,12 @@
 <!-- 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="Products">
-    <field name="template"/>
     <field name="code"/>
+    <field name="name"/>
     <field name="list_price_uom"/>
     <field name="cost_price_uom"/>
     <field name="quantity"/>
     <field name="forecast_quantity"/>
     <field name="default_uom"/>
-    <field name="active"/>
+    <field name="active" tree_invisible="1"/>
 </tree>
diff --git a/view/product_supplier_form.xml b/view/product_supplier_form.xml
index 3309c80..7c2006c 100644
--- a/view/product_supplier_form.xml
+++ b/view/product_supplier_form.xml
@@ -12,8 +12,8 @@ this repository contains the full copyright notices and license terms. -->
     <field name="name"/>
     <label name="code"/>
     <field name="code"/>
-    <label name="delivery_time"/>
-    <field name="delivery_time"/>
+    <label name="lead_time"/>
+    <field name="lead_time"/>
     <newline/>
     <label name="currency"/>
     <field name="currency"/>
diff --git a/view/purchase_form.xml b/view/purchase_form.xml
index ff08382..9184518 100644
--- a/view/purchase_form.xml
+++ b/view/purchase_form.xml
@@ -6,8 +6,8 @@ this repository contains the full copyright notices and license terms. -->
     <field name="party"/>
     <label name="invoice_address"/>
     <field name="invoice_address"/>
-    <label name="supplier_reference"/>
-    <field name="supplier_reference"/>
+    <label name="number"/>
+    <field name="number"/>
     <label name="description"/>
     <field name="description" colspan="3"/>
     <label name="reference"/>
diff --git a/view/purchase_tree.xml b/view/purchase_tree.xml
index 6e62f52..69daabb 100644
--- a/view/purchase_tree.xml
+++ b/view/purchase_tree.xml
@@ -2,8 +2,8 @@
 <!-- This file is part of Tryton.  The COPYRIGHT file at the top level of
 this repository contains the full copyright notices and license terms. -->
 <tree string="Purchases">
+    <field name="number"/>
     <field name="reference"/>
-    <field name="supplier_reference"/>
     <field name="purchase_date"/>
     <field name="party"/>
     <field name="warehouse"/>
-- 
tryton-modules-purchase



More information about the tryton-debian-vcs mailing list