[tryton-debian-vcs] tryton-modules-purchase branch debian updated. debian/4.2.1-1-2-ga72fb3d

Mathias Behrle tryton-debian-vcs at alioth.debian.org
Wed Jun 7 13:35:00 UTC 2017


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

commit a72fb3dcf307d04907d156aa62318a95592a209a
Author: Mathias Behrle <mathiasb at m9s.biz>
Date:   Wed Jun 7 15:27:33 2017 +0200

    Merging upstream version 4.4.1.

diff --git a/CHANGELOG b/CHANGELOG
index e1616fa..79d598f 100644
--- a/CHANGELOG
+++ b/CHANGELOG
@@ -1,3 +1,6 @@
+Version 4.4.1 - 2017-06-06
+* Bug fixes (see mercurial logs for details)
+
 Version 4.4.0 - 2017-05-01
 * Bug fixes (see mercurial logs for details)
 * Add purchase price on product view from line
diff --git a/PKG-INFO b/PKG-INFO
index 78f169c..e641fb4 100644
--- a/PKG-INFO
+++ b/PKG-INFO
@@ -1,6 +1,6 @@
 Metadata-Version: 1.1
 Name: trytond_purchase
-Version: 4.4.0
+Version: 4.4.1
 Summary: Tryton module for purchase
 Home-page: http://www.tryton.org/
 Author: Tryton
diff --git a/purchase.py b/purchase.py
index 942a668..523ae9b 100644
--- a/purchase.py
+++ b/purchase.py
@@ -1046,7 +1046,6 @@ class PurchaseLine(sequence_ordered(), ModelSQL, ModelView):
         if self.product.type == 'service':
             return
         skip_ids = set(x.id for x in self.moves_ignored)
-        skip_ids.update(x.id for x in self.moves_recreated)
         quantity = abs(self.quantity)
         for move in self.moves:
             if move.state == 'done' or move.id in skip_ids:
diff --git a/setup.cfg b/setup.cfg
index 861a9f5..8bfd5a1 100644
--- a/setup.cfg
+++ b/setup.cfg
@@ -1,5 +1,4 @@
 [egg_info]
 tag_build = 
 tag_date = 0
-tag_svn_revision = 0
 
diff --git a/tryton.cfg b/tryton.cfg
index d3b8d07..81ea733 100644
--- a/tryton.cfg
+++ b/tryton.cfg
@@ -1,5 +1,5 @@
 [tryton]
-version=4.4.0
+version=4.4.1
 depends:
     account
     account_invoice
diff --git a/trytond_purchase.egg-info/PKG-INFO b/trytond_purchase.egg-info/PKG-INFO
index 3d8b592..60b0ec9 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.4.0
+Version: 4.4.1
 Summary: Tryton module for purchase
 Home-page: http://www.tryton.org/
 Author: Tryton
commit 0ecd5c06cdd012bffcb88f0a3dacfc24fbc6a9d9
Author: Mathias Behrle <mathiasb at m9s.biz>
Date:   Wed Jun 7 15:26:53 2017 +0200

    Merging upstream version 4.4.0.

diff --git a/CHANGELOG b/CHANGELOG
index 243ec77..e1616fa 100644
--- a/CHANGELOG
+++ b/CHANGELOG
@@ -1,5 +1,7 @@
-Version 4.2.1 - 2017-03-10
+Version 4.4.0 - 2017-05-01
 * Bug fixes (see mercurial logs for details)
+* Add purchase price on product view from line
+* Allow to edit delivery date on purchase line
 
 Version 4.2.0 - 2016-11-28
 * Bug fixes (see mercurial logs for details)
diff --git a/PKG-INFO b/PKG-INFO
index 0aad33a..78f169c 100644
--- a/PKG-INFO
+++ b/PKG-INFO
@@ -1,12 +1,12 @@
 Metadata-Version: 1.1
 Name: trytond_purchase
-Version: 4.2.1
+Version: 4.4.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/4.2/
+Download-URL: http://downloads.tryton.org/4.4/
 Description: trytond_purchase
         ================
         
@@ -51,7 +51,7 @@ Classifier: Framework :: Tryton
 Classifier: Intended Audience :: Developers
 Classifier: Intended Audience :: Financial and Insurance Industry
 Classifier: Intended Audience :: Legal Industry
-Classifier: License :: OSI Approved :: GNU General Public License (GPL)
+Classifier: License :: OSI Approved :: GNU General Public License v3 or later (GPLv3+)
 Classifier: Natural Language :: Bulgarian
 Classifier: Natural Language :: Catalan
 Classifier: Natural Language :: Chinese (Simplified)
diff --git a/__init__.py b/__init__.py
index c857677..0161e47 100644
--- a/__init__.py
+++ b/__init__.py
@@ -29,6 +29,8 @@ def register():
         HandleShipmentExceptionAsk,
         HandleInvoiceExceptionAsk,
         Configuration,
+        ConfigurationSequence,
+        ConfigurationPurchaseMethod,
         Invoice,
         InvoiceLine,
         Location,
@@ -40,6 +42,5 @@ def register():
         OpenSupplier,
         HandleShipmentException,
         HandleInvoiceException,
-        OpenProductQuantitiesByWarehouse,
         PartyReplace,
         module='purchase', type_='wizard')
diff --git a/configuration.py b/configuration.py
index 733f1dc..d20d618 100644
--- a/configuration.py
+++ b/configuration.py
@@ -1,24 +1,127 @@
 # 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 trytond.model import ModelView, ModelSQL, ModelSingleton, fields
-from trytond.pyson import Eval, Bool
+from trytond import backend
+from trytond.model import (ModelView, ModelSQL, ModelSingleton, ValueMixin,
+    fields)
+from trytond.pool import Pool
+from trytond.pyson import Eval
+from trytond.tools.multivalue import migrate_property
+from trytond.modules.company.model import (
+    CompanyMultiValueMixin, CompanyValueMixin)
 
-__all__ = ['Configuration']
+__all__ = ['Configuration',
+    'ConfigurationSequence', 'ConfigurationPurchaseMethod']
+purchase_invoice_method = fields.Selection(
+    'get_purchase_invoice_method', "Invoice Method")
 
 
-class Configuration(ModelSingleton, ModelSQL, ModelView):
+def get_purchase_methods(field_name):
+    @classmethod
+    def func(cls):
+        pool = Pool()
+        Purchase = pool.get('purchase.purchase')
+        return Purchase.fields_get([field_name])[field_name]['selection']
+    return func
+
+
+class Configuration(
+        ModelSingleton, ModelSQL, ModelView, CompanyMultiValueMixin):
     'Purchase Configuration'
     __name__ = 'purchase.configuration'
-    purchase_sequence = fields.Property(fields.Many2One('ir.sequence',
-            'Purchase Sequence', domain=[
+    purchase_sequence = fields.MultiValue(fields.Many2One(
+            'ir.sequence', "Purchase Sequence", required=True,
+            domain=[
                 ('company', 'in',
                     [Eval('context', {}).get('company', -1), None]),
                 ('code', '=', 'purchase.purchase'),
-                ], required=True))
-    purchase_invoice_method = fields.Property(fields.Selection([
-                ('manual', 'Manual'),
-                ('order', 'Based On Order'),
-                ('shipment', 'Based On Shipment'),
-                ], 'Invoice Method', states={
-                'required': Bool(Eval('context', {}).get('company')),
-                }))
+                ]))
+    purchase_invoice_method = fields.MultiValue(purchase_invoice_method)
+    get_purchase_invoice_method = get_purchase_methods('invoice_method')
+
+    @classmethod
+    def multivalue_model(cls, field):
+        pool = Pool()
+        if field == 'purchase_invoice_method':
+            return pool.get('purchase.configuration.purchase_method')
+        if field == 'purchase_sequence':
+            return pool.get('purchase.configuration.sequence')
+        return super(Configuration, cls).multivalue_model(field)
+
+    @classmethod
+    def default_purchase_sequence(cls, **pattern):
+        return cls.multivalue_model(
+            'purchase_sequence').default_purchase_sequence()
+
+    @classmethod
+    def default_purchase_invoice_method(cls, **pattern):
+        return cls.multivalue_model(
+            'purchase_invoice_method').default_purchase_invoice_method()
+
+
+class ConfigurationSequence(ModelSQL, CompanyValueMixin):
+    "Purchase Configuration Sequence"
+    __name__ = 'purchase.configuration.sequence'
+    purchase_sequence = fields.Many2One(
+        'ir.sequence', "Purchase Sequence", required=True,
+        domain=[
+            ('company', 'in', [Eval('company', -1), None]),
+            ('code', '=', 'purchase.purchase'),
+            ],
+        depends=['company'])
+
+    @classmethod
+    def __register__(cls, module_name):
+        TableHandler = backend.get('TableHandler')
+        exist = TableHandler.table_exist(cls._table)
+
+        super(ConfigurationSequence, cls).__register__(module_name)
+
+        if not exist:
+            cls._migrate_property([], [], [])
+
+    @classmethod
+    def _migrate_property(cls, field_names, value_names, fields):
+        field_names.append('purchase_sequence')
+        value_names.append('purchase_sequence')
+        fields.append('company')
+        migrate_property(
+            'purchase.configuration', field_names, cls, value_names,
+            fields=fields)
+
+    @classmethod
+    def default_purchase_sequence(cls):
+        pool = Pool()
+        ModelData = pool.get('ir.model.data')
+        try:
+            return ModelData.get_id('purchase', 'sequence_purchase')
+        except KeyError:
+            return None
+
+
+class ConfigurationPurchaseMethod(ModelSQL, ValueMixin):
+    "Purchase Configuration Purchase Method"
+    __name__ = 'purchase.configuration.purchase_method'
+    purchase_invoice_method = purchase_invoice_method
+    get_purchase_invoice_method = get_purchase_methods('invoice_method')
+
+    @classmethod
+    def __register__(cls, module_name):
+        TableHandler = backend.get('TableHandler')
+        exist = TableHandler.table_exist(cls._table)
+
+        super(ConfigurationPurchaseMethod, cls).__register__(module_name)
+
+        if not exist:
+            cls._migrate_property([], [], [])
+
+    @classmethod
+    def _migrate_property(cls, field_names, value_names, fields):
+        field_names.append('purchase_invoice_method')
+        value_names.append('purchase_invoice_method')
+        migrate_property(
+            'purchase.configuration', field_names, cls, value_names,
+            fields=fields)
+
+    @classmethod
+    def default_purchase_invoice_method(cls):
+        return 'order'
diff --git a/configuration.xml b/configuration.xml
index a7da161..05f1e32 100644
--- a/configuration.xml
+++ b/configuration.xml
@@ -22,17 +22,4 @@ this repository contains the full copyright notices and license terms. -->
             action="act_purchase_configuration_form"
             id="menu_purchase_configuration" icon="tryton-list"/>
     </data>
-    <data noupdate="1">
-        <record model="ir.property" id="property_purchase_sequence">
-            <field name="field"
-                search="[('model.model', '=', 'purchase.configuration'), ('name', '=', 'purchase_sequence')]"/>
-            <field name="value" eval="'ir.sequence,' + str(ref('sequence_purchase'))"/>
-        </record>
-        <record model="ir.property"
-            id="property_purchase_invoice_method">
-            <field name="field"
-               search="[('model.model', '=', 'purchase.configuration'), ('name', '=', 'purchase_invoice_method')]" />
-           <field name="value">,order</field>
-        </record>
-    </data>
 </tryton>
diff --git a/doc/index.rst b/doc/index.rst
index 1f913d4..9f38a1a 100644
--- a/doc/index.rst
+++ b/doc/index.rst
@@ -43,6 +43,8 @@ of them are optional or completed with sensible default values:
     currency of the purchase.
   - Amount: The amount of the current line (Unit Price multiplied by
     Quantity).
+  - Delivery Date: The computed date at which the product is expected to be
+    delivered.
   - Taxes: The list of taxes that will be applied to the current line.
 
 - Invoice State: The state of the invoice related to the purchase.
diff --git a/invoice.py b/invoice.py
index 004783b..7df4714 100644
--- a/invoice.py
+++ b/invoice.py
@@ -1,5 +1,6 @@
 # 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 itertools import chain
 from functools import wraps
 from sql import Table
 
@@ -86,10 +87,7 @@ class Invoice:
     @ModelView.button
     @Workflow.transition('draft')
     def draft(cls, invoices):
-        Purchase = Pool().get('purchase.purchase')
-        purchases = Purchase.search([
-                ('invoices', 'in', [i.id for i in invoices]),
-                ])
+        purchases = list(chain(*(i.purchases for i in invoices)))
         if purchases and any(i.state == 'cancel' for i in invoices):
             cls.raise_user_error('reset_invoice_purchase')
 
@@ -143,7 +141,8 @@ class InvoiceLine:
         PurchaseLine = pool.get('purchase.line')
         name = super(InvoiceLine, self).origin_name
         if isinstance(self.origin, PurchaseLine):
-            name = self.origin.purchase.rec_name
+            name = (self.origin.purchase.reference
+                or self.origin.purchase.rec_name)
         return name
 
     @classmethod
@@ -151,3 +150,16 @@ class InvoiceLine:
         models = super(InvoiceLine, cls)._get_origin()
         models.append('purchase.line')
         return models
+
+    @classmethod
+    def delete(cls, lines):
+        pool = Pool()
+        Purchase = pool.get('purchase.purchase')
+        with Transaction().set_context(_check_access=False):
+            lines = cls.browse(lines)
+            invoices = (l.invoice for l in lines
+                if l.type == 'line' and l.invoice)
+            purchases = [p for i in invoices for p in i.purchases]
+        super(InvoiceLine, cls).delete(lines)
+        with Transaction().set_context(_check_access=False):
+            Purchase.process(purchases)
diff --git a/locale/bg.po b/locale/bg.po
index 69c2768..7cca43b 100644
--- a/locale/bg.po
+++ b/locale/bg.po
@@ -16,7 +16,7 @@ msgid ""
 msgstr ""
 
 msgctxt "error:purchase.line:"
-msgid "Purchase \"%(purchase)s\" misses an \"account expense\" default property."
+msgid "Purchase \"%(purchase)s\" misses a default \"account expense\"."
 msgstr ""
 
 msgctxt "error:purchase.line:"
@@ -65,6 +65,11 @@ msgid "Purchasable"
 msgstr "Купуваем"
 
 #, fuzzy
+msgctxt "field:product.product,purchase_price_uom:"
+msgid "Purchase Price"
+msgstr "Ред от покупка"
+
+#, fuzzy
 msgctxt "field:product.product,purchase_uom:"
 msgid "Purchase UOM"
 msgstr "Мер. ед. на покупка"
@@ -113,6 +118,81 @@ msgctxt "field:purchase.configuration,write_uid:"
 msgid "Write User"
 msgstr "Променено от"
 
+#, fuzzy
+msgctxt "field:purchase.configuration.purchase_method,create_date:"
+msgid "Create Date"
+msgstr "Създадено на"
+
+#, fuzzy
+msgctxt "field:purchase.configuration.purchase_method,create_uid:"
+msgid "Create User"
+msgstr "Създадено от"
+
+#, fuzzy
+msgctxt "field:purchase.configuration.purchase_method,id:"
+msgid "ID"
+msgstr "ID"
+
+#, fuzzy
+msgctxt ""
+"field:purchase.configuration.purchase_method,purchase_invoice_method:"
+msgid "Invoice Method"
+msgstr "Начин на фактуриране"
+
+#, fuzzy
+msgctxt "field:purchase.configuration.purchase_method,rec_name:"
+msgid "Name"
+msgstr "Име"
+
+#, fuzzy
+msgctxt "field:purchase.configuration.purchase_method,write_date:"
+msgid "Write Date"
+msgstr "Променено на"
+
+#, fuzzy
+msgctxt "field:purchase.configuration.purchase_method,write_uid:"
+msgid "Write User"
+msgstr "Променено от"
+
+#, fuzzy
+msgctxt "field:purchase.configuration.sequence,company:"
+msgid "Company"
+msgstr "Фирма"
+
+#, fuzzy
+msgctxt "field:purchase.configuration.sequence,create_date:"
+msgid "Create Date"
+msgstr "Създадено на"
+
+#, fuzzy
+msgctxt "field:purchase.configuration.sequence,create_uid:"
+msgid "Create User"
+msgstr "Създадено от"
+
+#, fuzzy
+msgctxt "field:purchase.configuration.sequence,id:"
+msgid "ID"
+msgstr "ID"
+
+msgctxt "field:purchase.configuration.sequence,purchase_sequence:"
+msgid "Purchase Sequence"
+msgstr ""
+
+#, fuzzy
+msgctxt "field:purchase.configuration.sequence,rec_name:"
+msgid "Name"
+msgstr "Име"
+
+#, fuzzy
+msgctxt "field:purchase.configuration.sequence,write_date:"
+msgid "Write Date"
+msgstr "Променено на"
+
+#, fuzzy
+msgctxt "field:purchase.configuration.sequence,write_uid:"
+msgid "Write User"
+msgstr "Променено от"
+
 msgctxt "field:purchase.handle.invoice.exception.ask,domain_invoices:"
 msgid "Domain Invoices"
 msgstr "Фактури на домейн"
@@ -153,6 +233,15 @@ msgctxt "field:purchase.line,delivery_date:"
 msgid "Delivery Date"
 msgstr "Дата на доставка"
 
+msgctxt "field:purchase.line,delivery_date_edit:"
+msgid "Edit Delivery Date"
+msgstr ""
+
+#, fuzzy
+msgctxt "field:purchase.line,delivery_date_store:"
+msgid "Delivery Date"
+msgstr "Дата на доставка"
+
 msgctxt "field:purchase.line,description:"
 msgid "Description"
 msgstr "Описание"
@@ -475,6 +564,11 @@ msgctxt "field:purchase.purchase,currency_digits:"
 msgid "Currency Digits"
 msgstr "Цифри за валута"
 
+#, fuzzy
+msgctxt "field:purchase.purchase,delivery_date:"
+msgid "Delivery Date"
+msgstr "Дата на доставка"
+
 msgctxt "field:purchase.purchase,description:"
 msgid "Description"
 msgstr "Описание"
@@ -713,10 +807,18 @@ msgstr ""
 "Избраните движение ще бъдат наново създадени, Останалите ще бъдат "
 "игнорирани."
 
+msgctxt "help:purchase.line,delivery_date_edit:"
+msgid "Check to edit the delivery date."
+msgstr ""
+
 msgctxt "help:purchase.product_supplier.price,quantity:"
 msgid "Minimal quantity"
 msgstr "Минимално количество"
 
+msgctxt "help:purchase.purchase,delivery_date:"
+msgid "The default delivery date for each line."
+msgstr ""
+
 msgctxt "help:stock.location,supplier_return_location:"
 msgid "If empty the Storage location is used"
 msgstr ""
@@ -846,6 +948,14 @@ msgctxt "model:purchase.configuration,name:"
 msgid "Purchase Configuration"
 msgstr "Конфигуриране на покупка"
 
+msgctxt "model:purchase.configuration.purchase_method,name:"
+msgid "Purchase Configuration Purchase Method"
+msgstr ""
+
+msgctxt "model:purchase.configuration.sequence,name:"
+msgid "Purchase Configuration Sequence"
+msgstr ""
+
 msgctxt "model:purchase.handle.invoice.exception.ask,name:"
 msgid "Handle Invoice Exception"
 msgstr "Обработване на грешка в фактура"
@@ -972,18 +1082,6 @@ msgctxt "selection:account.invoice,purchase_exception_state:"
 msgid "Recreated"
 msgstr "Създаден наново"
 
-msgctxt "selection:purchase.configuration,purchase_invoice_method:"
-msgid "Based On Order"
-msgstr "Въз основа на поръчка"
-
-msgctxt "selection:purchase.configuration,purchase_invoice_method:"
-msgid "Based On Shipment"
-msgstr "Въз основа на изпращане"
-
-msgctxt "selection:purchase.configuration,purchase_invoice_method:"
-msgid "Manual"
-msgstr "Ръчно"
-
 #, fuzzy
 msgctxt "selection:purchase.line,purchase_state:"
 msgid "Canceled"
@@ -1123,6 +1221,11 @@ msgctxt "view:purchase.handle.shipment.exception.ask:"
 msgid "Choose move to recreate"
 msgstr "Избор на движение за ново създаване"
 
+#, fuzzy
+msgctxt "view:purchase.line:"
+msgid "Delivery Date"
+msgstr "Дата на доставка"
+
 msgctxt "view:purchase.line:"
 msgid "General"
 msgstr "Основен"
diff --git a/locale/ca.po b/locale/ca.po
index bf8ad87..d117a7e 100644
--- a/locale/ca.po
+++ b/locale/ca.po
@@ -18,10 +18,8 @@ msgstr ""
 "%(purchase)s."
 
 msgctxt "error:purchase.line:"
-msgid "Purchase \"%(purchase)s\" misses an \"account expense\" default property."
-msgstr ""
-"Falta la propietat \"Compte de despeses\" per defecte de la compra "
-"\"%(purchase)s\"."
+msgid "Purchase \"%(purchase)s\" misses a default \"account expense\"."
+msgstr "Falta el \"compte de despeses\" per defecte per la compra \"%(purchase)s\"."
 
 msgctxt "error:purchase.line:"
 msgid "Purchase \"%(purchase)s\" misses the supplier location for line \"%(line)s\"."
@@ -69,6 +67,10 @@ msgctxt "field:product.product,purchasable:"
 msgid "Purchasable"
 msgstr "Comprable"
 
+msgctxt "field:product.product,purchase_price_uom:"
+msgid "Purchase Price"
+msgstr "Preu de compra"
+
 msgctxt "field:product.product,purchase_uom:"
 msgid "Purchase UOM"
 msgstr "UdM de compra"
@@ -117,6 +119,67 @@ msgctxt "field:purchase.configuration,write_uid:"
 msgid "Write User"
 msgstr "Usuari de modificació"
 
+msgctxt "field:purchase.configuration.purchase_method,create_date:"
+msgid "Create Date"
+msgstr "Data de creació"
+
+msgctxt "field:purchase.configuration.purchase_method,create_uid:"
+msgid "Create User"
+msgstr "Usuari de creació"
+
+msgctxt "field:purchase.configuration.purchase_method,id:"
+msgid "ID"
+msgstr "ID"
+
+msgctxt ""
+"field:purchase.configuration.purchase_method,purchase_invoice_method:"
+msgid "Invoice Method"
+msgstr "Mètode de facturació"
+
+msgctxt "field:purchase.configuration.purchase_method,rec_name:"
+msgid "Name"
+msgstr "Nom"
+
+msgctxt "field:purchase.configuration.purchase_method,write_date:"
+msgid "Write Date"
+msgstr "Data de modificació"
+
+msgctxt "field:purchase.configuration.purchase_method,write_uid:"
+msgid "Write User"
+msgstr "Usuari de modificació"
+
+msgctxt "field:purchase.configuration.sequence,company:"
+msgid "Company"
+msgstr "Empresa"
+
+msgctxt "field:purchase.configuration.sequence,create_date:"
+msgid "Create Date"
+msgstr "Data de creació"
+
+msgctxt "field:purchase.configuration.sequence,create_uid:"
+msgid "Create User"
+msgstr "Usuari de creació"
+
+msgctxt "field:purchase.configuration.sequence,id:"
+msgid "ID"
+msgstr "ID"
+
+msgctxt "field:purchase.configuration.sequence,purchase_sequence:"
+msgid "Purchase Sequence"
+msgstr "Seqüència de compra"
+
+msgctxt "field:purchase.configuration.sequence,rec_name:"
+msgid "Name"
+msgstr "Nom"
+
+msgctxt "field:purchase.configuration.sequence,write_date:"
+msgid "Write Date"
+msgstr "Data de modificació"
+
+msgctxt "field:purchase.configuration.sequence,write_uid:"
+msgid "Write User"
+msgstr "Usuari de modificació"
+
 msgctxt "field:purchase.handle.invoice.exception.ask,domain_invoices:"
 msgid "Domain Invoices"
 msgstr "Domini de les factures"
@@ -157,6 +220,14 @@ msgctxt "field:purchase.line,delivery_date:"
 msgid "Delivery Date"
 msgstr "Data lliurament"
 
+msgctxt "field:purchase.line,delivery_date_edit:"
+msgid "Edit Delivery Date"
+msgstr "Modificar data de lliurament"
+
+msgctxt "field:purchase.line,delivery_date_store:"
+msgid "Delivery Date"
+msgstr "Data lliurament"
+
 msgctxt "field:purchase.line,description:"
 msgid "Description"
 msgstr "Descripció"
@@ -477,6 +548,10 @@ msgctxt "field:purchase.purchase,currency_digits:"
 msgid "Currency Digits"
 msgstr "Decimals de la moneda"
 
+msgctxt "field:purchase.purchase,delivery_date:"
+msgid "Delivery Date"
+msgstr "Data lliurament"
+
 msgctxt "field:purchase.purchase,description:"
 msgid "Description"
 msgstr "Descripció"
@@ -710,10 +785,18 @@ 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.line,delivery_date_edit:"
+msgid "Check to edit the delivery date."
+msgstr "Marca per modificar la data de lliurament."
+
 msgctxt "help:purchase.product_supplier.price,quantity:"
 msgid "Minimal quantity"
 msgstr "Quantitat mínima."
 
+msgctxt "help:purchase.purchase,delivery_date:"
+msgid "The default delivery date for each line."
+msgstr "La data de lliurament per defecte de cada línia."
+
 msgctxt "help:stock.location,supplier_return_location:"
 msgid "If empty the Storage location is used"
 msgstr "Si es deixa buit s'utilitzarà la ubicació d'emmagatzematge."
@@ -834,6 +917,14 @@ msgctxt "model:purchase.configuration,name:"
 msgid "Purchase Configuration"
 msgstr "Configuració de les compres"
 
+msgctxt "model:purchase.configuration.purchase_method,name:"
+msgid "Purchase Configuration Purchase Method"
+msgstr "Configuració dels mètodes de compra"
+
+msgctxt "model:purchase.configuration.sequence,name:"
+msgid "Purchase Configuration Sequence"
+msgstr "Configuració de seqüencies de compra"
+
 msgctxt "model:purchase.handle.invoice.exception.ask,name:"
 msgid "Handle Invoice Exception"
 msgstr "Gestiona excepció de factura"
@@ -958,18 +1049,6 @@ msgctxt "selection:account.invoice,purchase_exception_state:"
 msgid "Recreated"
 msgstr "Recreada"
 
-msgctxt "selection:purchase.configuration,purchase_invoice_method:"
-msgid "Based On Order"
-msgstr "Basat en la comanda"
-
-msgctxt "selection:purchase.configuration,purchase_invoice_method:"
-msgid "Based On Shipment"
-msgstr "Basat en l'enviament"
-
-msgctxt "selection:purchase.configuration,purchase_invoice_method:"
-msgid "Manual"
-msgstr "Manual"
-
 msgctxt "selection:purchase.line,purchase_state:"
 msgid "Canceled"
 msgstr "Cancel·lat"
@@ -1103,6 +1182,10 @@ msgid "Choose move to recreate"
 msgstr "Seleccioneu els moviments a recrear"
 
 msgctxt "view:purchase.line:"
+msgid "Delivery Date"
+msgstr "Data lliurament"
+
+msgctxt "view:purchase.line:"
 msgid "General"
 msgstr "General"
 
diff --git a/locale/cs.po b/locale/cs.po
index 1e3062f..8a02308 100644
--- a/locale/cs.po
+++ b/locale/cs.po
@@ -16,7 +16,7 @@ msgid ""
 msgstr ""
 
 msgctxt "error:purchase.line:"
-msgid "Purchase \"%(purchase)s\" misses an \"account expense\" default property."
+msgid "Purchase \"%(purchase)s\" misses a default \"account expense\"."
 msgstr ""
 
 msgctxt "error:purchase.line:"
@@ -61,6 +61,10 @@ msgctxt "field:product.product,purchasable:"
 msgid "Purchasable"
 msgstr ""
 
+msgctxt "field:product.product,purchase_price_uom:"
+msgid "Purchase Price"
+msgstr ""
+
 msgctxt "field:product.product,purchase_uom:"
 msgid "Purchase UOM"
 msgstr ""
@@ -110,6 +114,69 @@ msgctxt "field:purchase.configuration,write_uid:"
 msgid "Write User"
 msgstr ""
 
+msgctxt "field:purchase.configuration.purchase_method,create_date:"
+msgid "Create Date"
+msgstr ""
+
+msgctxt "field:purchase.configuration.purchase_method,create_uid:"
+msgid "Create User"
+msgstr ""
+
+msgctxt "field:purchase.configuration.purchase_method,id:"
+msgid "ID"
+msgstr ""
+
+msgctxt ""
+"field:purchase.configuration.purchase_method,purchase_invoice_method:"
+msgid "Invoice Method"
+msgstr ""
+
+#, fuzzy
+msgctxt "field:purchase.configuration.purchase_method,rec_name:"
+msgid "Name"
+msgstr "Namu"
+
+msgctxt "field:purchase.configuration.purchase_method,write_date:"
+msgid "Write Date"
+msgstr ""
+
+msgctxt "field:purchase.configuration.purchase_method,write_uid:"
+msgid "Write User"
+msgstr ""
+
+msgctxt "field:purchase.configuration.sequence,company:"
+msgid "Company"
+msgstr ""
+
+msgctxt "field:purchase.configuration.sequence,create_date:"
+msgid "Create Date"
+msgstr ""
+
+msgctxt "field:purchase.configuration.sequence,create_uid:"
+msgid "Create User"
+msgstr ""
+
+msgctxt "field:purchase.configuration.sequence,id:"
+msgid "ID"
+msgstr ""
+
+msgctxt "field:purchase.configuration.sequence,purchase_sequence:"
+msgid "Purchase Sequence"
+msgstr ""
+
+#, fuzzy
+msgctxt "field:purchase.configuration.sequence,rec_name:"
+msgid "Name"
+msgstr "Namu"
+
+msgctxt "field:purchase.configuration.sequence,write_date:"
+msgid "Write Date"
+msgstr ""
+
+msgctxt "field:purchase.configuration.sequence,write_uid:"
+msgid "Write User"
+msgstr ""
+
 msgctxt "field:purchase.handle.invoice.exception.ask,domain_invoices:"
 msgid "Domain Invoices"
 msgstr ""
@@ -150,6 +217,14 @@ msgctxt "field:purchase.line,delivery_date:"
 msgid "Delivery Date"
 msgstr ""
 
+msgctxt "field:purchase.line,delivery_date_edit:"
+msgid "Edit Delivery Date"
+msgstr ""
+
+msgctxt "field:purchase.line,delivery_date_store:"
+msgid "Delivery Date"
+msgstr ""
+
 msgctxt "field:purchase.line,description:"
 msgid "Description"
 msgstr ""
@@ -477,6 +552,10 @@ msgctxt "field:purchase.purchase,currency_digits:"
 msgid "Currency Digits"
 msgstr ""
 
+msgctxt "field:purchase.purchase,delivery_date:"
+msgid "Delivery Date"
+msgstr ""
+
 msgctxt "field:purchase.purchase,description:"
 msgid "Description"
 msgstr ""
@@ -713,10 +792,18 @@ 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.line,delivery_date_edit:"
+msgid "Check to edit the delivery date."
+msgstr ""
+
 msgctxt "help:purchase.product_supplier.price,quantity:"
 msgid "Minimal quantity"
 msgstr ""
 
+msgctxt "help:purchase.purchase,delivery_date:"
+msgid "The default delivery date for each line."
+msgstr ""
+
 msgctxt "help:stock.location,supplier_return_location:"
 msgid "If empty the Storage location is used"
 msgstr ""
@@ -837,6 +924,14 @@ msgctxt "model:purchase.configuration,name:"
 msgid "Purchase Configuration"
 msgstr ""
 
+msgctxt "model:purchase.configuration.purchase_method,name:"
+msgid "Purchase Configuration Purchase Method"
+msgstr ""
+
+msgctxt "model:purchase.configuration.sequence,name:"
+msgid "Purchase Configuration Sequence"
+msgstr ""
+
 msgctxt "model:purchase.handle.invoice.exception.ask,name:"
 msgid "Handle Invoice Exception"
 msgstr ""
@@ -962,18 +1057,6 @@ msgctxt "selection:account.invoice,purchase_exception_state:"
 msgid "Recreated"
 msgstr ""
 
-msgctxt "selection:purchase.configuration,purchase_invoice_method:"
-msgid "Based On Order"
-msgstr ""
-
-msgctxt "selection:purchase.configuration,purchase_invoice_method:"
-msgid "Based On Shipment"
-msgstr ""
-
-msgctxt "selection:purchase.configuration,purchase_invoice_method:"
-msgid "Manual"
-msgstr ""
-
 msgctxt "selection:purchase.line,purchase_state:"
 msgid "Canceled"
 msgstr ""
@@ -1107,6 +1190,10 @@ msgid "Choose move to recreate"
 msgstr ""
 
 msgctxt "view:purchase.line:"
+msgid "Delivery Date"
+msgstr ""
+
+msgctxt "view:purchase.line:"
 msgid "General"
 msgstr ""
 
diff --git a/locale/de.po b/locale/de.po
index 945ca0f..3cb5ea3 100644
--- a/locale/de.po
+++ b/locale/de.po
@@ -20,10 +20,8 @@ msgstr ""
 "eingetragen."
 
 msgctxt "error:purchase.line:"
-msgid "Purchase \"%(purchase)s\" misses an \"account expense\" default property."
-msgstr ""
-"Für Einkauf \"%(purchase)s\" ist keine Standardeigenschaft für das "
-"Aufwandskonto eingetragen."
+msgid "Purchase \"%(purchase)s\" misses a default \"account expense\"."
+msgstr "Für den Einkauf \"%(purchase)s\" ist kein Aufwandskonto eingetragen."
 
 msgctxt "error:purchase.line:"
 msgid "Purchase \"%(purchase)s\" misses the supplier location for line \"%(line)s\"."
@@ -73,6 +71,10 @@ msgctxt "field:product.product,purchasable:"
 msgid "Purchasable"
 msgstr "Käuflich"
 
+msgctxt "field:product.product,purchase_price_uom:"
+msgid "Purchase Price"
+msgstr "Einkaufspreis"
+
 msgctxt "field:product.product,purchase_uom:"
 msgid "Purchase UOM"
 msgstr "Maßeinheit Einkauf"
@@ -121,6 +123,67 @@ msgctxt "field:purchase.configuration,write_uid:"
 msgid "Write User"
 msgstr "Letzte Änderung durch"
 
+msgctxt "field:purchase.configuration.purchase_method,create_date:"
+msgid "Create Date"
+msgstr "Erstellungsdatum"
+
+msgctxt "field:purchase.configuration.purchase_method,create_uid:"
+msgid "Create User"
+msgstr "Erstellt durch"
+
+msgctxt "field:purchase.configuration.purchase_method,id:"
+msgid "ID"
+msgstr "ID"
+
+msgctxt ""
+"field:purchase.configuration.purchase_method,purchase_invoice_method:"
+msgid "Invoice Method"
+msgstr "Rechnungsstellung Einkauf"
+
+msgctxt "field:purchase.configuration.purchase_method,rec_name:"
+msgid "Name"
+msgstr "Name"
+
+msgctxt "field:purchase.configuration.purchase_method,write_date:"
+msgid "Write Date"
+msgstr "Zuletzt geändert"
+
+msgctxt "field:purchase.configuration.purchase_method,write_uid:"
+msgid "Write User"
+msgstr "Letzte Änderung durch"
+
+msgctxt "field:purchase.configuration.sequence,company:"
+msgid "Company"
+msgstr "Unternehmen"
+
+msgctxt "field:purchase.configuration.sequence,create_date:"
+msgid "Create Date"
+msgstr "Erstellungsdatum"
+
+msgctxt "field:purchase.configuration.sequence,create_uid:"
+msgid "Create User"
+msgstr "Erstellt durch"
+
+msgctxt "field:purchase.configuration.sequence,id:"
+msgid "ID"
+msgstr "ID"
+
+msgctxt "field:purchase.configuration.sequence,purchase_sequence:"
+msgid "Purchase Sequence"
+msgstr "Nummernkreis Einkauf"
+
+msgctxt "field:purchase.configuration.sequence,rec_name:"
+msgid "Name"
+msgstr "Name"
+
+msgctxt "field:purchase.configuration.sequence,write_date:"
+msgid "Write Date"
+msgstr "Zuletzt geändert"
+
+msgctxt "field:purchase.configuration.sequence,write_uid:"
+msgid "Write User"
+msgstr "Letzte Änderung durch"
+
 msgctxt "field:purchase.handle.invoice.exception.ask,domain_invoices:"
 msgid "Domain Invoices"
 msgstr "Wertebereich Rechnungen (Domain)"
@@ -161,6 +224,14 @@ msgctxt "field:purchase.line,delivery_date:"
 msgid "Delivery Date"
 msgstr "Lieferdatum"
 
+msgctxt "field:purchase.line,delivery_date_edit:"
+msgid "Edit Delivery Date"
+msgstr "Lieferdatum geändert"
+
+msgctxt "field:purchase.line,delivery_date_store:"
+msgid "Delivery Date"
+msgstr "Lieferdatum"
+
 msgctxt "field:purchase.line,description:"
 msgid "Description"
 msgstr "Beschreibung"
@@ -399,7 +470,7 @@ msgstr "Preise"
 
 msgctxt "field:purchase.product_supplier,product:"
 msgid "Product"
-msgstr "Variante"
+msgstr "Artikel"
 
 msgctxt "field:purchase.product_supplier,rec_name:"
 msgid "Name"
@@ -481,6 +552,10 @@ msgctxt "field:purchase.purchase,currency_digits:"
 msgid "Currency Digits"
 msgstr "Nachkommastellen Währung"
 
+msgctxt "field:purchase.purchase,delivery_date:"
+msgid "Delivery Date"
+msgstr "Lieferdatum"
+
 msgctxt "field:purchase.purchase,description:"
 msgid "Description"
 msgstr "Beschreibung"
@@ -718,10 +793,18 @@ msgstr ""
 "Die ausgewählten Lagerbewegungen werden neu erstellt. Alle anderen werden "
 "ignoriert."
 
+msgctxt "help:purchase.line,delivery_date_edit:"
+msgid "Check to edit the delivery date."
+msgstr "Aktivieren um das Lieferdatum zu ändern."
+
 msgctxt "help:purchase.product_supplier.price,quantity:"
 msgid "Minimal quantity"
 msgstr "Minimale Anzahl"
 
+msgctxt "help:purchase.purchase,delivery_date:"
+msgid "The default delivery date for each line."
+msgstr "Das Standard-Lieferdatum für jede Position."
+
 msgctxt "help:stock.location,supplier_return_location:"
 msgid "If empty the Storage location is used"
 msgstr "Wenn kein Wert eingetragen ist, wird die Lagerzone verwendet."
@@ -842,6 +925,14 @@ msgctxt "model:purchase.configuration,name:"
 msgid "Purchase Configuration"
 msgstr "Einstellungen Einkauf"
 
+msgctxt "model:purchase.configuration.purchase_method,name:"
+msgid "Purchase Configuration Purchase Method"
+msgstr "Einstellungen Einkauf Methode"
+
+msgctxt "model:purchase.configuration.sequence,name:"
+msgid "Purchase Configuration Sequence"
+msgstr "Einstellungen Einkauf Nummernkreis"
+
 msgctxt "model:purchase.handle.invoice.exception.ask,name:"
 msgid "Handle Invoice Exception"
 msgstr "Nachfrage Rechnungsvorbehalt"
@@ -966,18 +1057,6 @@ msgctxt "selection:account.invoice,purchase_exception_state:"
 msgid "Recreated"
 msgstr "Neu erstellt"
 
-msgctxt "selection:purchase.configuration,purchase_invoice_method:"
-msgid "Based On Order"
-msgstr "Bei Beauftragung"
-
-msgctxt "selection:purchase.configuration,purchase_invoice_method:"
-msgid "Based On Shipment"
-msgstr "Bei Lieferung"
-
-msgctxt "selection:purchase.configuration,purchase_invoice_method:"
-msgid "Manual"
-msgstr "Manuell"
-
 msgctxt "selection:purchase.line,purchase_state:"
 msgid "Canceled"
 msgstr "Annulliert"
@@ -1111,6 +1190,10 @@ msgid "Choose move to recreate"
 msgstr "Lagerbewegungen zur Neuerstellung auswählen"
 
 msgctxt "view:purchase.line:"
+msgid "Delivery Date"
+msgstr "Lieferdatum"
+
+msgctxt "view:purchase.line:"
 msgid "General"
 msgstr "Allgemein"
 
diff --git a/locale/es.po b/locale/es.po
index db61dce..5804b4c 100644
--- a/locale/es.po
+++ b/locale/es.po
@@ -18,10 +18,8 @@ msgstr ""
 "%(purchase)s."
 
 msgctxt "error:purchase.line:"
-msgid "Purchase \"%(purchase)s\" misses an \"account expense\" default property."
-msgstr ""
-"Falta la propiedad \"Cuenta de gastos\" por defecto de la compra "
-"\"%(purchase)s\"."
+msgid "Purchase \"%(purchase)s\" misses a default \"account expense\"."
+msgstr "Falta la \"cuenta de gastos\" por defecto de la compra \"%(purchase)s\"."
 
 msgctxt "error:purchase.line:"
 msgid "Purchase \"%(purchase)s\" misses the supplier location for line \"%(line)s\"."
@@ -69,6 +67,10 @@ msgctxt "field:product.product,purchasable:"
 msgid "Purchasable"
 msgstr "Comprable"
 
+msgctxt "field:product.product,purchase_price_uom:"
+msgid "Purchase Price"
+msgstr "Precio de compra"
+
 msgctxt "field:product.product,purchase_uom:"
 msgid "Purchase UOM"
 msgstr "UdM de compra"
@@ -117,6 +119,67 @@ msgctxt "field:purchase.configuration,write_uid:"
 msgid "Write User"
 msgstr "Usuario de modificación"
 
+msgctxt "field:purchase.configuration.purchase_method,create_date:"
+msgid "Create Date"
+msgstr "Fecha de creación"
+
+msgctxt "field:purchase.configuration.purchase_method,create_uid:"
+msgid "Create User"
+msgstr "Usuario de creación"
+
+msgctxt "field:purchase.configuration.purchase_method,id:"
+msgid "ID"
+msgstr "ID"
+
+msgctxt ""
+"field:purchase.configuration.purchase_method,purchase_invoice_method:"
+msgid "Invoice Method"
+msgstr "Método de facturación"
+
+msgctxt "field:purchase.configuration.purchase_method,rec_name:"
+msgid "Name"
+msgstr "Nombre"
+
+msgctxt "field:purchase.configuration.purchase_method,write_date:"
+msgid "Write Date"
+msgstr "Fecha de modificación"
+
+msgctxt "field:purchase.configuration.purchase_method,write_uid:"
+msgid "Write User"
+msgstr "Usuario de modificación"
+
+msgctxt "field:purchase.configuration.sequence,company:"
+msgid "Company"
+msgstr "Empresa"
+
+msgctxt "field:purchase.configuration.sequence,create_date:"
+msgid "Create Date"
+msgstr "Fecha de creación"
+
+msgctxt "field:purchase.configuration.sequence,create_uid:"
+msgid "Create User"
+msgstr "Usuario de creación"
+
+msgctxt "field:purchase.configuration.sequence,id:"
+msgid "ID"
+msgstr "ID"
+
+msgctxt "field:purchase.configuration.sequence,purchase_sequence:"
+msgid "Purchase Sequence"
+msgstr "Secuencia de compra"
+
+msgctxt "field:purchase.configuration.sequence,rec_name:"
+msgid "Name"
+msgstr "Nombre"
+
+msgctxt "field:purchase.configuration.sequence,write_date:"
+msgid "Write Date"
+msgstr "Fecha de modificación"
+
+msgctxt "field:purchase.configuration.sequence,write_uid:"
+msgid "Write User"
+msgstr "Usuario de modificación"
+
 msgctxt "field:purchase.handle.invoice.exception.ask,domain_invoices:"
 msgid "Domain Invoices"
 msgstr "Dominio de facturas"
@@ -157,6 +220,14 @@ msgctxt "field:purchase.line,delivery_date:"
 msgid "Delivery Date"
 msgstr "Fecha entrega"
 
+msgctxt "field:purchase.line,delivery_date_edit:"
+msgid "Edit Delivery Date"
+msgstr "Modificar la fecha de entrega"
+
+msgctxt "field:purchase.line,delivery_date_store:"
+msgid "Delivery Date"
+msgstr "Fecha entrega"
+
 msgctxt "field:purchase.line,description:"
 msgid "Description"
 msgstr "Descripción"
@@ -477,6 +548,10 @@ msgctxt "field:purchase.purchase,currency_digits:"
 msgid "Currency Digits"
 msgstr "Decimales de la moneda"
 
+msgctxt "field:purchase.purchase,delivery_date:"
+msgid "Delivery Date"
+msgstr "Fecha entrega"
+
 msgctxt "field:purchase.purchase,description:"
 msgid "Description"
 msgstr "Descripción"
@@ -712,10 +787,18 @@ 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.line,delivery_date_edit:"
+msgid "Check to edit the delivery date."
+msgstr "Marcar para modificar la fecha de entrega."
+
 msgctxt "help:purchase.product_supplier.price,quantity:"
 msgid "Minimal quantity"
 msgstr "Cantidad mínima."
 
+msgctxt "help:purchase.purchase,delivery_date:"
+msgid "The default delivery date for each line."
+msgstr "La fecha de entrega por defecto de cada línea."
+
 msgctxt "help:stock.location,supplier_return_location:"
 msgid "If empty the Storage location is used"
 msgstr "Si se deja vacío se usará la ubicación de almacenaje."
@@ -836,6 +919,14 @@ msgctxt "model:purchase.configuration,name:"
 msgid "Purchase Configuration"
 msgstr "Configuración de compras"
 
+msgctxt "model:purchase.configuration.purchase_method,name:"
+msgid "Purchase Configuration Purchase Method"
+msgstr "Configuración de los métodos de compra. "
+
+msgctxt "model:purchase.configuration.sequence,name:"
+msgid "Purchase Configuration Sequence"
+msgstr "Configuración de las secuencias de compra"
+
 msgctxt "model:purchase.handle.invoice.exception.ask,name:"
 msgid "Handle Invoice Exception"
 msgstr "Gestionar excepción de factura"
@@ -960,18 +1051,6 @@ msgctxt "selection:account.invoice,purchase_exception_state:"
 msgid "Recreated"
 msgstr "Recreada"
 
-msgctxt "selection:purchase.configuration,purchase_invoice_method:"
-msgid "Based On Order"
-msgstr "Basado en el pedido"
-
-msgctxt "selection:purchase.configuration,purchase_invoice_method:"
-msgid "Based On Shipment"
-msgstr "Basado en el envío"
-
-msgctxt "selection:purchase.configuration,purchase_invoice_method:"
-msgid "Manual"
-msgstr "Manual"
-
 msgctxt "selection:purchase.line,purchase_state:"
 msgid "Canceled"
 msgstr "Cancelada"
@@ -1105,6 +1184,10 @@ msgid "Choose move to recreate"
 msgstr "Seleccione los movimientos a recrear"
 
 msgctxt "view:purchase.line:"
+msgid "Delivery Date"
+msgstr "Fecha entrega"
+
+msgctxt "view:purchase.line:"
 msgid "General"
 msgstr "General"
 
diff --git a/locale/es_419.po b/locale/es_419.po
index f45d4b4..c54fb84 100644
--- a/locale/es_419.po
+++ b/locale/es_419.po
@@ -16,7 +16,7 @@ msgid ""
 msgstr ""
 
 msgctxt "error:purchase.line:"
-msgid "Purchase \"%(purchase)s\" misses an \"account expense\" default property."
+msgid "Purchase \"%(purchase)s\" misses a default \"account expense\"."
 msgstr ""
 
 msgctxt "error:purchase.line:"
@@ -25,11 +25,11 @@ msgstr ""
 
 msgctxt "error:purchase.purchase:"
 msgid "A warehouse must be defined for quotation of purchase \"%s\"."
-msgstr ""
+msgstr "Se debe definir una bodega para la cotización de la compra \"%s\"."
 
 msgctxt "error:purchase.purchase:"
 msgid "Missing \"Account Payable\" on party \"%s\"."
-msgstr ""
+msgstr "Falta la \"Cuenta por pagar\" en el tercero \"%s\"."
 
 msgctxt "error:purchase.purchase:"
 msgid "Purchase \"%s\" must be cancelled before deletion."
@@ -45,14 +45,15 @@ msgid ""
 "purchase."
 msgstr ""
 
+#, fuzzy
 msgctxt "field:account.invoice,purchase_exception_state:"
 msgid "Exception State"
-msgstr ""
+msgstr "Estado de excepción"
 
 #, fuzzy
 msgctxt "field:account.invoice,purchases:"
 msgid "Purchases"
-msgstr "Purchases"
+msgstr "Comprar"
 
 msgctxt "field:product.product,product_suppliers:"
 msgid "Suppliers"
@@ -62,6 +63,10 @@ msgctxt "field:product.product,purchasable:"
 msgid "Purchasable"
 msgstr ""
 
+msgctxt "field:product.product,purchase_price_uom:"
+msgid "Purchase Price"
+msgstr ""
+
 msgctxt "field:product.product,purchase_uom:"
 msgid "Purchase UOM"
 msgstr ""
@@ -110,6 +115,67 @@ msgctxt "field:purchase.configuration,write_uid:"
 msgid "Write User"
 msgstr ""
 
+msgctxt "field:purchase.configuration.purchase_method,create_date:"
+msgid "Create Date"
+msgstr ""
+
+msgctxt "field:purchase.configuration.purchase_method,create_uid:"
+msgid "Create User"
+msgstr ""
+
+msgctxt "field:purchase.configuration.purchase_method,id:"
+msgid "ID"
+msgstr ""
+
+msgctxt ""
+"field:purchase.configuration.purchase_method,purchase_invoice_method:"
+msgid "Invoice Method"
+msgstr ""
+
+msgctxt "field:purchase.configuration.purchase_method,rec_name:"
+msgid "Name"
+msgstr ""
+
+msgctxt "field:purchase.configuration.purchase_method,write_date:"
+msgid "Write Date"
+msgstr ""
+
+msgctxt "field:purchase.configuration.purchase_method,write_uid:"
+msgid "Write User"
+msgstr ""
+
+msgctxt "field:purchase.configuration.sequence,company:"
+msgid "Company"
+msgstr ""
+
+msgctxt "field:purchase.configuration.sequence,create_date:"
+msgid "Create Date"
+msgstr ""
+
+msgctxt "field:purchase.configuration.sequence,create_uid:"
+msgid "Create User"
+msgstr ""
+
+msgctxt "field:purchase.configuration.sequence,id:"
+msgid "ID"
+msgstr ""
+
+msgctxt "field:purchase.configuration.sequence,purchase_sequence:"
+msgid "Purchase Sequence"
+msgstr ""
+
+msgctxt "field:purchase.configuration.sequence,rec_name:"
+msgid "Name"
+msgstr ""
+
+msgctxt "field:purchase.configuration.sequence,write_date:"
+msgid "Write Date"
+msgstr ""
+
+msgctxt "field:purchase.configuration.sequence,write_uid:"
+msgid "Write User"
+msgstr ""
+
 msgctxt "field:purchase.handle.invoice.exception.ask,domain_invoices:"
 msgid "Domain Invoices"
 msgstr ""
@@ -134,9 +200,10 @@ msgctxt "field:purchase.handle.shipment.exception.ask,recreate_moves:"
 msgid "Recreate Moves"
 msgstr ""
 
+#, fuzzy
 msgctxt "field:purchase.line,amount:"
 msgid "Amount"
-msgstr ""
+msgstr "Subtotal"
 
 msgctxt "field:purchase.line,create_date:"
 msgid "Create Date"
@@ -148,8 +215,16 @@ msgstr ""
 
 msgctxt "field:purchase.line,delivery_date:"
 msgid "Delivery Date"
+msgstr "Fecha de entrega"
+
+msgctxt "field:purchase.line,delivery_date_edit:"
+msgid "Edit Delivery Date"
 msgstr ""
 
+msgctxt "field:purchase.line,delivery_date_store:"
+msgid "Delivery Date"
+msgstr "Fecha de entrega"
+
 msgctxt "field:purchase.line,description:"
 msgid "Description"
 msgstr ""
@@ -164,7 +239,7 @@ msgstr ""
 
 msgctxt "field:purchase.line,invoice_lines:"
 msgid "Invoice Lines"
-msgstr ""
+msgstr "Líneas de factura"
 
 msgctxt "field:purchase.line,move_done:"
 msgid "Moves Done"
@@ -201,7 +276,7 @@ msgstr ""
 #, fuzzy
 msgctxt "field:purchase.line,purchase:"
 msgid "Purchase"
-msgstr "Purchase"
+msgstr "Comprar"
 
 msgctxt "field:purchase.line,purchase_state:"
 msgid "Purchase State"
@@ -241,7 +316,7 @@ msgstr ""
 
 msgctxt "field:purchase.line,unit_price:"
 msgid "Unit Price"
-msgstr ""
+msgstr "Precio unitario"
 
 msgctxt "field:purchase.line,write_date:"
 msgid "Write Date"
@@ -383,10 +458,9 @@ msgctxt "field:purchase.product_supplier,party:"
 msgid "Supplier"
 msgstr ""
 
-#, fuzzy
 msgctxt "field:purchase.product_supplier,prices:"
 msgid "Prices"
-msgstr "Prices"
+msgstr ""
 
 msgctxt "field:purchase.product_supplier,product:"
 msgid "Product"
@@ -438,7 +512,7 @@ msgstr ""
 
 msgctxt "field:purchase.product_supplier.price,unit_price:"
 msgid "Unit Price"
-msgstr ""
+msgstr "Precio unitario"
 
 msgctxt "field:purchase.product_supplier.price,write_date:"
 msgid "Write Date"
@@ -472,6 +546,11 @@ msgctxt "field:purchase.purchase,currency_digits:"
 msgid "Currency Digits"
 msgstr ""
 
+#, fuzzy
+msgctxt "field:purchase.purchase,delivery_date:"
+msgid "Delivery Date"
+msgstr "Fecha de entrega"
+
 msgctxt "field:purchase.purchase,description:"
 msgid "Description"
 msgstr ""
@@ -490,12 +569,11 @@ msgstr ""
 
 msgctxt "field:purchase.purchase,invoice_state:"
 msgid "Invoice State"
-msgstr ""
+msgstr "Estado de factura"
 
-#, fuzzy
 msgctxt "field:purchase.purchase,invoices:"
 msgid "Invoices"
-msgstr "Invoices"
+msgstr ""
 
 msgctxt "field:purchase.purchase,invoices_ignored:"
 msgid "Ignored Invoices"
@@ -543,16 +621,15 @@ msgstr ""
 
 msgctxt "field:purchase.purchase,shipment_returns:"
 msgid "Shipment Returns"
-msgstr ""
+msgstr "Devolución"
 
 msgctxt "field:purchase.purchase,shipment_state:"
 msgid "Shipment State"
-msgstr ""
+msgstr "Estado de envío"
 
-#, fuzzy
 msgctxt "field:purchase.purchase,shipments:"
 msgid "Shipments"
-msgstr "Shipments"
+msgstr "Envíos"
 
 msgctxt "field:purchase.purchase,state:"
 msgid "State"
@@ -576,15 +653,15 @@ msgstr ""
 
 msgctxt "field:purchase.purchase,untaxed_amount:"
 msgid "Untaxed"
-msgstr ""
+msgstr "Base sin impuesto"
 
 msgctxt "field:purchase.purchase,untaxed_amount_cache:"
 msgid "Untaxed Cache"
-msgstr ""
+msgstr "Cache base sin impuesto"
 
 msgctxt "field:purchase.purchase,warehouse:"
 msgid "Warehouse"
-msgstr ""
+msgstr "Bodega"
 
 msgctxt "field:purchase.purchase,write_date:"
 msgid "Write Date"
@@ -606,15 +683,14 @@ msgctxt "field:purchase.purchase-ignored-account.invoice,id:"
 msgid "ID"
 msgstr ""
 
-#, fuzzy
 msgctxt "field:purchase.purchase-ignored-account.invoice,invoice:"
 msgid "Invoice"
-msgstr "Invoices"
+msgstr ""
 
 #, fuzzy
 msgctxt "field:purchase.purchase-ignored-account.invoice,purchase:"
 msgid "Purchase"
-msgstr "Purchase"
+msgstr "Comprar"
 
 msgctxt "field:purchase.purchase-ignored-account.invoice,rec_name:"
 msgid "Name"
@@ -640,15 +716,14 @@ msgctxt "field:purchase.purchase-recreated-account.invoice,id:"
 msgid "ID"
 msgstr ""
 
-#, fuzzy
 msgctxt "field:purchase.purchase-recreated-account.invoice,invoice:"
 msgid "Invoice"
-msgstr "Invoices"
+msgstr ""
 
 #, fuzzy
 msgctxt "field:purchase.purchase-recreated-account.invoice,purchase:"
 msgid "Purchase"
-msgstr "Purchase"
+msgstr "Comprar"
 
 msgctxt "field:purchase.purchase-recreated-account.invoice,rec_name:"
 msgid "Name"
@@ -664,12 +739,11 @@ msgstr ""
 
 msgctxt "field:stock.location,supplier_return_location:"
 msgid "Supplier Return"
-msgstr ""
+msgstr "Devolución a proveedor"
 
-#, fuzzy
 msgctxt "field:stock.move,purchase:"
 msgid "Purchase"
-msgstr "Purchase"
+msgstr "Comprar"
 
 msgctxt "field:stock.move,purchase_currency:"
 msgid "Purchase Currency"
@@ -677,7 +751,7 @@ msgstr ""
 
 msgctxt "field:stock.move,purchase_exception_state:"
 msgid "Exception State"
-msgstr ""
+msgstr "Estado de excepción"
 
 msgctxt "field:stock.move,purchase_quantity:"
 msgid "Purchase Quantity"
@@ -687,13 +761,14 @@ msgctxt "field:stock.move,purchase_unit:"
 msgid "Purchase Unit"
 msgstr ""
 
+#, fuzzy
 msgctxt "field:stock.move,purchase_unit_digits:"
 msgid "Purchase Unit Digits"
-msgstr ""
+msgstr "Precio unitario de compra"
 
 msgctxt "field:stock.move,purchase_unit_price:"
 msgid "Purchase Unit Price"
-msgstr ""
+msgstr "Precio unitario de compra"
 
 msgctxt "field:stock.move,purchase_visible:"
 msgid "Purchase Visible"
@@ -712,140 +787,162 @@ 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.line,delivery_date_edit:"
+msgid "Check to edit the delivery date."
+msgstr ""
+
 msgctxt "help:purchase.product_supplier.price,quantity:"
 msgid "Minimal quantity"
 msgstr ""
 
+msgctxt "help:purchase.purchase,delivery_date:"
+msgid "The default delivery date for each line."
+msgstr ""
+
 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"
-msgstr "Invoices"
+msgstr ""
 
 msgctxt "model:ir.action,name:act_open_supplier"
 msgid "Parties associated to Purchases"
-msgstr "Parties associated to Purchases"
+msgstr "Proveedores"
 
 msgctxt "model:ir.action,name:act_product_supplier_form"
 msgid "Product Suppliers"
-msgstr "Product Suppliers"
+msgstr "Proveedores de producto"
 
 msgctxt "model:ir.action,name:act_product_supplier_price_form"
 msgid "Prices"
-msgstr "Prices"
+msgstr ""
 
 msgctxt "model:ir.action,name:act_purchase_configuration_form"
 msgid "Purchase Configuration"
-msgstr "Purchase Configuration"
+msgstr ""
 
+#, fuzzy
 msgctxt "model:ir.action,name:act_purchase_form"
 msgid "Purchases"
-msgstr "Purchases"
+msgstr "Comprar"
 
+#, fuzzy
 msgctxt "model:ir.action,name:act_purchase_form2"
 msgid "Purchases"
-msgstr "Purchases"
+msgstr "Comprar"
 
+#, fuzzy
 msgctxt "model:ir.action,name:act_purchase_invoice_relate"
 msgid "Purchases"
-msgstr "Purchases"
+msgstr "Comprar"
 
 msgctxt "model:ir.action,name:act_return_form"
 msgid "Returns"
-msgstr "Returns"
+msgstr "Devolución"
 
 msgctxt "model:ir.action,name:act_shipment_form"
 msgid "Shipments"
-msgstr "Shipments"
+msgstr "Envíos"
 
+#, fuzzy
 msgctxt "model:ir.action,name:report_purchase"
 msgid "Purchase"
-msgstr "Purchase"
+msgstr "Comprar"
 
 msgctxt "model:ir.action,name:wizard_invoice_handle_exception"
 msgid "Handle Invoice Exception"
-msgstr "Handle Invoice Exception"
+msgstr ""
 
 msgctxt "model:ir.action,name:wizard_shipment_handle_exception"
 msgid "Handle Shipment Exception"
-msgstr "Handle Shipment Exception"
+msgstr ""
 
 msgctxt "model:ir.action.act_window.domain,name:act_purchase_form_domain_all"
 msgid "All"
-msgstr "All"
+msgstr ""
 
 msgctxt ""
 "model:ir.action.act_window.domain,name:act_purchase_form_domain_confirmed"
 msgid "Confirmed"
-msgstr "Confirmed"
+msgstr ""
 
 msgctxt ""
 "model:ir.action.act_window.domain,name:act_purchase_form_domain_draft"
 msgid "Draft"
-msgstr "Draft"
+msgstr ""
 
 msgctxt ""
 "model:ir.action.act_window.domain,name:act_purchase_form_domain_processing"
 msgid "Processing"
-msgstr "Processing"
+msgstr ""
 
 msgctxt ""
 "model:ir.action.act_window.domain,name:act_purchase_form_domain_quotation"
 msgid "Quotation"
-msgstr "Quotation"
+msgstr ""
 
+#, fuzzy
 msgctxt "model:ir.sequence,name:sequence_purchase"
 msgid "Purchase"
-msgstr "Purchase"
+msgstr "Comprar"
 
+#, fuzzy
 msgctxt "model:ir.sequence.type,name:sequence_type_purchase"
 msgid "Purchase"
-msgstr "Purchase"
+msgstr "Comprar"
 
 msgctxt "model:ir.ui.menu,name:menu_configuration"
 msgid "Configuration"
-msgstr "Configuration"
+msgstr ""
 
+#, fuzzy
 msgctxt "model:ir.ui.menu,name:menu_product_supplier"
 msgid "Product Suppliers"
-msgstr "Product Suppliers"
+msgstr "Proveedores de producto"
 
+#, fuzzy
 msgctxt "model:ir.ui.menu,name:menu_purchase"
 msgid "Purchase"
-msgstr "Purchase"
+msgstr "Comprar"
 
 msgctxt "model:ir.ui.menu,name:menu_purchase_configuration"
 msgid "Purchase Configuration"
-msgstr "Purchase Configuration"
+msgstr ""
 
+#, fuzzy
 msgctxt "model:ir.ui.menu,name:menu_purchase_form"
 msgid "Purchases"
-msgstr "Purchases"
+msgstr "Comprar"
 
 msgctxt "model:ir.ui.menu,name:menu_reporting"
 msgid "Reporting"
-msgstr "Reporting"
+msgstr ""
 
 msgctxt "model:ir.ui.menu,name:menu_supplier"
 msgid "Parties associated to Purchases"
-msgstr "Parties associated to Purchases"
+msgstr "Proveedores"
 
-#, fuzzy
 msgctxt "model:purchase.configuration,name:"
 msgid "Purchase Configuration"
-msgstr "Purchase Configuration"
+msgstr ""
+
+msgctxt "model:purchase.configuration.purchase_method,name:"
+msgid "Purchase Configuration Purchase Method"
+msgstr ""
+
+msgctxt "model:purchase.configuration.sequence,name:"
+msgid "Purchase Configuration Sequence"
+msgstr ""
 
-#, fuzzy
 msgctxt "model:purchase.handle.invoice.exception.ask,name:"
 msgid "Handle Invoice Exception"
-msgstr "Handle Invoice Exception"
+msgstr ""
 
-#, fuzzy
 msgctxt "model:purchase.handle.shipment.exception.ask,name:"
 msgid "Handle Shipment Exception"
-msgstr "Handle Shipment Exception"
+msgstr ""
 
 msgctxt "model:purchase.line,name:"
 msgid "Purchase Line"
@@ -866,7 +963,7 @@ msgstr ""
 #, fuzzy
 msgctxt "model:purchase.product_supplier,name:"
 msgid "Product Supplier"
-msgstr "Product Suppliers"
+msgstr "Proveedores de producto"
 
 msgctxt "model:purchase.product_supplier.price,name:"
 msgid "Product Supplier Price"
@@ -875,7 +972,7 @@ msgstr ""
 #, fuzzy
 msgctxt "model:purchase.purchase,name:"
 msgid "Purchase"
-msgstr "Purchase"
+msgstr "Comprar"
 
 msgctxt "model:purchase.purchase-ignored-account.invoice,name:"
 msgid "Purchase - Ignored Invoice"
@@ -885,22 +982,22 @@ msgctxt "model:purchase.purchase-recreated-account.invoice,name:"
 msgid "Purchase - Recreated Invoice"
 msgstr ""
 
+#, fuzzy
 msgctxt "model:res.group,name:group_purchase"
 msgid "Purchase"
-msgstr "Purchase"
+msgstr "Comprar"
 
 msgctxt "model:res.group,name:group_purchase_admin"
 msgid "Purchase Administrator"
-msgstr "Purchase Administrator"
+msgstr ""
 
-#, fuzzy
 msgctxt "report:purchase.purchase:"
 msgid ":"
-msgstr ":"
+msgstr ""
 
 msgctxt "report:purchase.purchase:"
 msgid "Amount"
-msgstr ""
+msgstr "Subtotal"
 
 msgctxt "report:purchase.purchase:"
 msgid "Date:"
@@ -916,11 +1013,11 @@ msgstr ""
 
 msgctxt "report:purchase.purchase:"
 msgid "Draft Purchase Order"
-msgstr ""
+msgstr "Orden de compra en borrador"
 
 msgctxt "report:purchase.purchase:"
 msgid "Purchase Order N°:"
-msgstr ""
+msgstr "Orden de compra Nº:"
 
 msgctxt "report:purchase.purchase:"
 msgid "Quantity"
@@ -932,7 +1029,7 @@ msgstr ""
 
 msgctxt "report:purchase.purchase:"
 msgid "Request for Quotation N°:"
-msgstr ""
+msgstr "Solicitud de cotización Nº:"
 
 msgctxt "report:purchase.purchase:"
 msgid "Taxes"
@@ -944,7 +1041,7 @@ msgstr ""
 
 msgctxt "report:purchase.purchase:"
 msgid "Total (excl. taxes):"
-msgstr ""
+msgstr "Total (sin impuestos):"
 
 msgctxt "report:purchase.purchase:"
 msgid "Total:"
@@ -952,7 +1049,7 @@ msgstr ""
 
 msgctxt "report:purchase.purchase:"
 msgid "Unit Price"
-msgstr ""
+msgstr "Precio unitario"
 
 msgctxt "selection:account.invoice,purchase_exception_state:"
 msgid ""
@@ -966,45 +1063,29 @@ msgctxt "selection:account.invoice,purchase_exception_state:"
 msgid "Recreated"
 msgstr ""
 
-msgctxt "selection:purchase.configuration,purchase_invoice_method:"
-msgid "Based On Order"
-msgstr ""
-
-msgctxt "selection:purchase.configuration,purchase_invoice_method:"
-msgid "Based On Shipment"
-msgstr ""
-
-msgctxt "selection:purchase.configuration,purchase_invoice_method:"
-msgid "Manual"
-msgstr ""
-
 msgctxt "selection:purchase.line,purchase_state:"
 msgid "Canceled"
 msgstr ""
 
-#, fuzzy
 msgctxt "selection:purchase.line,purchase_state:"
 msgid "Confirmed"
-msgstr "Confirmed"
+msgstr ""
 
 msgctxt "selection:purchase.line,purchase_state:"
 msgid "Done"
 msgstr ""
 
-#, fuzzy
 msgctxt "selection:purchase.line,purchase_state:"
 msgid "Draft"
-msgstr "Draft"
+msgstr ""
 
-#, fuzzy
 msgctxt "selection:purchase.line,purchase_state:"
 msgid "Processing"
-msgstr "Processing"
+msgstr ""
 
-#, fuzzy
 msgctxt "selection:purchase.line,purchase_state:"
 msgid "Quotation"
-msgstr "Quotation"
+msgstr ""
 
 msgctxt "selection:purchase.line,type:"
 msgid "Comment"
@@ -1024,7 +1105,7 @@ msgstr ""
 
 msgctxt "selection:purchase.purchase,invoice_method:"
 msgid "Based On Order"
-msgstr ""
+msgstr "Basado en la orden"
 
 msgctxt "selection:purchase.purchase,invoice_method:"
 msgid "Based On Shipment"
@@ -1070,29 +1151,25 @@ msgctxt "selection:purchase.purchase,state:"
 msgid "Canceled"
 msgstr ""
 
-#, fuzzy
 msgctxt "selection:purchase.purchase,state:"
 msgid "Confirmed"
-msgstr "Confirmed"
+msgstr ""
 
 msgctxt "selection:purchase.purchase,state:"
 msgid "Done"
 msgstr ""
 
-#, fuzzy
 msgctxt "selection:purchase.purchase,state:"
 msgid "Draft"
-msgstr "Draft"
+msgstr ""
 
-#, fuzzy
 msgctxt "selection:purchase.purchase,state:"
 msgid "Processing"
-msgstr "Processing"
+msgstr ""
 
-#, fuzzy
 msgctxt "selection:purchase.purchase,state:"
 msgid "Quotation"
-msgstr "Quotation"
+msgstr ""
 
 msgctxt "selection:stock.move,purchase_exception_state:"
 msgid ""
@@ -1119,6 +1196,10 @@ msgid "Choose move to recreate"
 msgstr ""
 
 msgctxt "view:purchase.line:"
+msgid "Delivery Date"
+msgstr "Fecha de entrega"
+
+msgctxt "view:purchase.line:"
 msgid "General"
 msgstr ""
 
@@ -1134,25 +1215,21 @@ msgctxt "view:purchase.purchase:"
 msgid "Cancel"
 msgstr ""
 
-#, fuzzy
 msgctxt "view:purchase.purchase:"
 msgid "Confirm"
-msgstr "Confirmed"
+msgstr ""
 
-#, fuzzy
 msgctxt "view:purchase.purchase:"
 msgid "Draft"
-msgstr "Draft"
+msgstr ""
 
-#, fuzzy
 msgctxt "view:purchase.purchase:"
 msgid "Handle Invoice Exception"
-msgstr "Handle Invoice Exception"
+msgstr ""
 
-#, fuzzy
 msgctxt "view:purchase.purchase:"
 msgid "Handle Shipment Exception"
-msgstr "Handle Shipment Exception"
+msgstr ""
 
 msgctxt "view:purchase.purchase:"
 msgid "Other Info"
@@ -1165,11 +1242,11 @@ msgstr ""
 #, fuzzy
 msgctxt "view:purchase.purchase:"
 msgid "Purchase"
-msgstr "Purchase"
+msgstr "Comprar"
 
 msgctxt "view:purchase.purchase:"
 msgid "Quote"
-msgstr ""
+msgstr "Cotizar"
 
 msgctxt "view:stock.move:"
 msgid "Cancel"
diff --git a/locale/fr.po b/locale/fr.po
index 64d645b..e708c58 100644
--- a/locale/fr.po
+++ b/locale/fr.po
@@ -18,10 +18,9 @@ msgstr ""
 "charge."
 
 msgctxt "error:purchase.line:"
-msgid "Purchase \"%(purchase)s\" misses an \"account expense\" default property."
+msgid "Purchase \"%(purchase)s\" misses a default \"account expense\"."
 msgstr ""
-"La propriété par défaut « compte de charge » est absente de l'achat « "
-"%(purchase)s »."
+"Il manque pour l'achat « %(purchase)s » un « compte de charge » par défaut."
 
 msgctxt "error:purchase.line:"
 msgid "Purchase \"%(purchase)s\" misses the supplier location for line \"%(line)s\"."
@@ -69,6 +68,10 @@ msgctxt "field:product.product,purchasable:"
 msgid "Purchasable"
 msgstr "Achetable"
 
+msgctxt "field:product.product,purchase_price_uom:"
+msgid "Purchase Price"
+msgstr "Prix d'achat"
+
 msgctxt "field:product.product,purchase_uom:"
 msgid "Purchase UOM"
 msgstr "UDM d'achat"
@@ -117,6 +120,67 @@ msgctxt "field:purchase.configuration,write_uid:"
 msgid "Write User"
 msgstr "Mis à jour par"
 
+msgctxt "field:purchase.configuration.purchase_method,create_date:"
+msgid "Create Date"
+msgstr "Date de création"
+
+msgctxt "field:purchase.configuration.purchase_method,create_uid:"
+msgid "Create User"
+msgstr "Créé par"
+
+msgctxt "field:purchase.configuration.purchase_method,id:"
+msgid "ID"
+msgstr "ID"
+
+msgctxt ""
+"field:purchase.configuration.purchase_method,purchase_invoice_method:"
+msgid "Invoice Method"
+msgstr "Méthode de facturation"
+
+msgctxt "field:purchase.configuration.purchase_method,rec_name:"
+msgid "Name"
+msgstr "Nom"
+
+msgctxt "field:purchase.configuration.purchase_method,write_date:"
+msgid "Write Date"
+msgstr "Date de mise à jour"
+
+msgctxt "field:purchase.configuration.purchase_method,write_uid:"
+msgid "Write User"
+msgstr "Mis à jour par"
+
+msgctxt "field:purchase.configuration.sequence,company:"
+msgid "Company"
+msgstr "Société"
+
+msgctxt "field:purchase.configuration.sequence,create_date:"
+msgid "Create Date"
+msgstr "Date de création"
+
+msgctxt "field:purchase.configuration.sequence,create_uid:"
+msgid "Create User"
+msgstr "Créé par"
+
+msgctxt "field:purchase.configuration.sequence,id:"
+msgid "ID"
+msgstr "ID"
+
+msgctxt "field:purchase.configuration.sequence,purchase_sequence:"
+msgid "Purchase Sequence"
+msgstr "Séquence d'achat"
+
+msgctxt "field:purchase.configuration.sequence,rec_name:"
+msgid "Name"
+msgstr "Nom"
+
+msgctxt "field:purchase.configuration.sequence,write_date:"
+msgid "Write Date"
+msgstr "Date de mise à jour"
+
+msgctxt "field:purchase.configuration.sequence,write_uid:"
+msgid "Write User"
+msgstr "Mis à jour par"
+
 msgctxt "field:purchase.handle.invoice.exception.ask,domain_invoices:"
 msgid "Domain Invoices"
 msgstr "Domaine des factures"
@@ -157,6 +221,14 @@ msgctxt "field:purchase.line,delivery_date:"
 msgid "Delivery Date"
 msgstr "Date de livraison"
 
+msgctxt "field:purchase.line,delivery_date_edit:"
+msgid "Edit Delivery Date"
+msgstr "Date de livraison éditée"
+
+msgctxt "field:purchase.line,delivery_date_store:"
+msgid "Delivery Date"
+msgstr "Date de livraison"
+
 msgctxt "field:purchase.line,description:"
 msgid "Description"
 msgstr "Description"
@@ -477,6 +549,10 @@ msgctxt "field:purchase.purchase,currency_digits:"
 msgid "Currency Digits"
 msgstr "Décimales de la devise"
 
+msgctxt "field:purchase.purchase,delivery_date:"
+msgid "Delivery Date"
+msgstr "Date de livraison"
+
 msgctxt "field:purchase.purchase,description:"
 msgid "Description"
 msgstr "Description"
@@ -712,10 +788,18 @@ 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.line,delivery_date_edit:"
+msgid "Check to edit the delivery date."
+msgstr "Cocher pour éditer la date de livraison."
+
 msgctxt "help:purchase.product_supplier.price,quantity:"
 msgid "Minimal quantity"
 msgstr "Quantité minimale"
 
+msgctxt "help:purchase.purchase,delivery_date:"
+msgid "The default delivery date for each line."
+msgstr "La date de livraison par défaut pour chaque ligne."
+
 msgctxt "help:stock.location,supplier_return_location:"
 msgid "If empty the Storage location is used"
 msgstr "Si vide l'emplacement magasin est utilisé"
@@ -836,6 +920,14 @@ msgctxt "model:purchase.configuration,name:"
 msgid "Purchase Configuration"
 msgstr "Configuration des achats"
 
+msgctxt "model:purchase.configuration.purchase_method,name:"
+msgid "Purchase Configuration Purchase Method"
+msgstr "Configuration d'achat Méthode d'achat"
+
+msgctxt "model:purchase.configuration.sequence,name:"
+msgid "Purchase Configuration Sequence"
+msgstr "Configuration d'achat Séquence"
+
 msgctxt "model:purchase.handle.invoice.exception.ask,name:"
 msgid "Handle Invoice Exception"
 msgstr "Exception de facture - Demande"
@@ -960,18 +1052,6 @@ msgctxt "selection:account.invoice,purchase_exception_state:"
 msgid "Recreated"
 msgstr "Recréé"
 
-msgctxt "selection:purchase.configuration,purchase_invoice_method:"
-msgid "Based On Order"
-msgstr "Basé sur la commande"
-
-msgctxt "selection:purchase.configuration,purchase_invoice_method:"
-msgid "Based On Shipment"
-msgstr "Basé sur la livraison"
-
-msgctxt "selection:purchase.configuration,purchase_invoice_method:"
-msgid "Manual"
-msgstr "Manuel"
-
 msgctxt "selection:purchase.line,purchase_state:"
 msgid "Canceled"
 msgstr "Annulé"
@@ -1105,6 +1185,10 @@ msgid "Choose move to recreate"
 msgstr "Choisir le mouvement à recréer"
 
 msgctxt "view:purchase.line:"
+msgid "Delivery Date"
+msgstr "Date de livraison"
+
+msgctxt "view:purchase.line:"
 msgid "General"
 msgstr "Général"
 
diff --git a/locale/hu_HU.po b/locale/hu_HU.po
index cb5b89f..387fdac 100644
--- a/locale/hu_HU.po
+++ b/locale/hu_HU.po
@@ -16,7 +16,7 @@ msgid ""
 msgstr ""
 
 msgctxt "error:purchase.line:"
-msgid "Purchase \"%(purchase)s\" misses an \"account expense\" default property."
+msgid "Purchase \"%(purchase)s\" misses a default \"account expense\"."
 msgstr ""
 
 msgctxt "error:purchase.line:"
@@ -63,6 +63,10 @@ msgctxt "field:product.product,purchasable:"
 msgid "Purchasable"
 msgstr ""
 
+msgctxt "field:product.product,purchase_price_uom:"
+msgid "Purchase Price"
+msgstr ""
+
 msgctxt "field:product.product,purchase_uom:"
 msgid "Purchase UOM"
 msgstr ""
@@ -118,6 +122,80 @@ msgctxt "field:purchase.configuration,write_uid:"
 msgid "Write User"
 msgstr "Által módosítva"
 
+#, fuzzy
+msgctxt "field:purchase.configuration.purchase_method,create_date:"
+msgid "Create Date"
+msgstr "Létrehozás détuma"
+
+#, fuzzy
+msgctxt "field:purchase.configuration.purchase_method,create_uid:"
+msgid "Create User"
+msgstr "Által létrehozva "
+
+#, fuzzy
+msgctxt "field:purchase.configuration.purchase_method,id:"
+msgid "ID"
+msgstr "ID"
+
+msgctxt ""
+"field:purchase.configuration.purchase_method,purchase_invoice_method:"
+msgid "Invoice Method"
+msgstr ""
+
+#, fuzzy
+msgctxt "field:purchase.configuration.purchase_method,rec_name:"
+msgid "Name"
+msgstr "Név"
+
+#, fuzzy
+msgctxt "field:purchase.configuration.purchase_method,write_date:"
+msgid "Write Date"
+msgstr "utolsó módosítás dátuma"
+
+#, fuzzy
+msgctxt "field:purchase.configuration.purchase_method,write_uid:"
+msgid "Write User"
+msgstr "Által módosítva"
+
+#, fuzzy
+msgctxt "field:purchase.configuration.sequence,company:"
+msgid "Company"
+msgstr "Társaság"
+
+#, fuzzy
+msgctxt "field:purchase.configuration.sequence,create_date:"
+msgid "Create Date"
+msgstr "Létrehozás détuma"
+
+#, fuzzy
+msgctxt "field:purchase.configuration.sequence,create_uid:"
+msgid "Create User"
+msgstr "Által létrehozva "
+
+#, fuzzy
+msgctxt "field:purchase.configuration.sequence,id:"
+msgid "ID"
+msgstr "ID"
+
+msgctxt "field:purchase.configuration.sequence,purchase_sequence:"
+msgid "Purchase Sequence"
+msgstr ""
+
+#, fuzzy
+msgctxt "field:purchase.configuration.sequence,rec_name:"
+msgid "Name"
+msgstr "Név"
+
+#, fuzzy
+msgctxt "field:purchase.configuration.sequence,write_date:"
+msgid "Write Date"
+msgstr "utolsó módosítás dátuma"
+
+#, fuzzy
+msgctxt "field:purchase.configuration.sequence,write_uid:"
+msgid "Write User"
+msgstr "Által módosítva"
+
 msgctxt "field:purchase.handle.invoice.exception.ask,domain_invoices:"
 msgid "Domain Invoices"
 msgstr ""
@@ -162,6 +240,14 @@ msgctxt "field:purchase.line,delivery_date:"
 msgid "Delivery Date"
 msgstr ""
 
+msgctxt "field:purchase.line,delivery_date_edit:"
+msgid "Edit Delivery Date"
+msgstr ""
+
+msgctxt "field:purchase.line,delivery_date_store:"
+msgid "Delivery Date"
+msgstr ""
+
 #, fuzzy
 msgctxt "field:purchase.line,description:"
 msgid "Description"
@@ -544,6 +630,10 @@ msgctxt "field:purchase.purchase,currency_digits:"
 msgid "Currency Digits"
 msgstr ""
 
+msgctxt "field:purchase.purchase,delivery_date:"
+msgid "Delivery Date"
+msgstr ""
+
 #, fuzzy
 msgctxt "field:purchase.purchase,description:"
 msgid "Description"
@@ -804,10 +894,18 @@ 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.line,delivery_date_edit:"
+msgid "Check to edit the delivery date."
+msgstr ""
+
 msgctxt "help:purchase.product_supplier.price,quantity:"
 msgid "Minimal quantity"
 msgstr ""
 
+msgctxt "help:purchase.purchase,delivery_date:"
+msgid "The default delivery date for each line."
+msgstr ""
+
 msgctxt "help:stock.location,supplier_return_location:"
 msgid "If empty the Storage location is used"
 msgstr ""
@@ -939,6 +1037,14 @@ msgctxt "model:purchase.configuration,name:"
 msgid "Purchase Configuration"
 msgstr ""
 
+msgctxt "model:purchase.configuration.purchase_method,name:"
+msgid "Purchase Configuration Purchase Method"
+msgstr ""
+
+msgctxt "model:purchase.configuration.sequence,name:"
+msgid "Purchase Configuration Sequence"
+msgstr ""
+
 msgctxt "model:purchase.handle.invoice.exception.ask,name:"
 msgid "Handle Invoice Exception"
 msgstr ""
@@ -1070,18 +1176,6 @@ msgctxt "selection:account.invoice,purchase_exception_state:"
 msgid "Recreated"
 msgstr ""
 
-msgctxt "selection:purchase.configuration,purchase_invoice_method:"
-msgid "Based On Order"
-msgstr ""
-
-msgctxt "selection:purchase.configuration,purchase_invoice_method:"
-msgid "Based On Shipment"
-msgstr ""
-
-msgctxt "selection:purchase.configuration,purchase_invoice_method:"
-msgid "Manual"
-msgstr ""
-
 #, fuzzy
 msgctxt "selection:purchase.line,purchase_state:"
 msgid "Canceled"
@@ -1224,6 +1318,10 @@ msgid "Choose move to recreate"
 msgstr ""
 
 msgctxt "view:purchase.line:"
+msgid "Delivery Date"
+msgstr ""
+
+msgctxt "view:purchase.line:"
 msgid "General"
 msgstr ""
 
diff --git a/locale/it_IT.po b/locale/it_IT.po
index fe9d045..6296e3f 100644
--- a/locale/it_IT.po
+++ b/locale/it_IT.po
@@ -18,10 +18,8 @@ msgstr ""
 "costo."
 
 msgctxt "error:purchase.line:"
-msgid "Purchase \"%(purchase)s\" misses an \"account expense\" default property."
+msgid "Purchase \"%(purchase)s\" misses a default \"account expense\"."
 msgstr ""
-"All'acquisto \"%(purchase)s\" manca una proprietà predefinita del conto di "
-"costo."
 
 msgctxt "error:purchase.line:"
 msgid "Purchase \"%(purchase)s\" misses the supplier location for line \"%(line)s\"."
@@ -71,6 +69,11 @@ msgctxt "field:product.product,purchasable:"
 msgid "Purchasable"
 msgstr "Acquistabile"
 
+#, fuzzy
+msgctxt "field:product.product,purchase_price_uom:"
+msgid "Purchase Price"
+msgstr "Riga ordine di acquisto"
+
 msgctxt "field:product.product,purchase_uom:"
 msgid "Purchase UOM"
 msgstr "UDM acquisto"
@@ -119,6 +122,82 @@ msgctxt "field:purchase.configuration,write_uid:"
 msgid "Write User"
 msgstr "modificato da"
 
+#, fuzzy
+msgctxt "field:purchase.configuration.purchase_method,create_date:"
+msgid "Create Date"
+msgstr "creato il"
+
+#, fuzzy
+msgctxt "field:purchase.configuration.purchase_method,create_uid:"
+msgid "Create User"
+msgstr "creato da"
+
+#, fuzzy
+msgctxt "field:purchase.configuration.purchase_method,id:"
+msgid "ID"
+msgstr "ID"
+
+#, fuzzy
+msgctxt ""
+"field:purchase.configuration.purchase_method,purchase_invoice_method:"
+msgid "Invoice Method"
+msgstr "Metodo di fatturazione"
+
+#, fuzzy
+msgctxt "field:purchase.configuration.purchase_method,rec_name:"
+msgid "Name"
+msgstr "Nome"
+
+#, fuzzy
+msgctxt "field:purchase.configuration.purchase_method,write_date:"
+msgid "Write Date"
+msgstr "modificato il"
+
+#, fuzzy
+msgctxt "field:purchase.configuration.purchase_method,write_uid:"
+msgid "Write User"
+msgstr "modificato da"
+
+#, fuzzy
+msgctxt "field:purchase.configuration.sequence,company:"
+msgid "Company"
+msgstr "Azienda"
+
+#, fuzzy
+msgctxt "field:purchase.configuration.sequence,create_date:"
+msgid "Create Date"
+msgstr "creato il"
+
+#, fuzzy
+msgctxt "field:purchase.configuration.sequence,create_uid:"
+msgid "Create User"
+msgstr "creato da"
+
+#, fuzzy
+msgctxt "field:purchase.configuration.sequence,id:"
+msgid "ID"
+msgstr "ID"
+
+#, fuzzy
+msgctxt "field:purchase.configuration.sequence,purchase_sequence:"
+msgid "Purchase Sequence"
+msgstr "Sequenza di acquisto"
+
+#, fuzzy
+msgctxt "field:purchase.configuration.sequence,rec_name:"
+msgid "Name"
+msgstr "Nome"
+
+#, fuzzy
+msgctxt "field:purchase.configuration.sequence,write_date:"
+msgid "Write Date"
+msgstr "modificato il"
+
+#, fuzzy
+msgctxt "field:purchase.configuration.sequence,write_uid:"
+msgid "Write User"
+msgstr "modificato da"
+
 msgctxt "field:purchase.handle.invoice.exception.ask,domain_invoices:"
 msgid "Domain Invoices"
 msgstr "Dominio fatture"
@@ -159,6 +238,15 @@ msgctxt "field:purchase.line,delivery_date:"
 msgid "Delivery Date"
 msgstr "Data di consegna"
 
+msgctxt "field:purchase.line,delivery_date_edit:"
+msgid "Edit Delivery Date"
+msgstr ""
+
+#, fuzzy
+msgctxt "field:purchase.line,delivery_date_store:"
+msgid "Delivery Date"
+msgstr "Data di consegna"
+
 msgctxt "field:purchase.line,description:"
 msgid "Description"
 msgstr "Descrizione"
@@ -479,6 +567,11 @@ msgctxt "field:purchase.purchase,currency_digits:"
 msgid "Currency Digits"
 msgstr "posizioni valuta"
 
+#, fuzzy
+msgctxt "field:purchase.purchase,delivery_date:"
+msgid "Delivery Date"
+msgstr "Data di consegna"
+
 msgctxt "field:purchase.purchase,description:"
 msgid "Description"
 msgstr "Descrizione"
@@ -717,10 +810,18 @@ msgstr ""
 "I movimenti selezionati verranno ricreati. Gli altri non verranno "
 "considerati."
 
+msgctxt "help:purchase.line,delivery_date_edit:"
+msgid "Check to edit the delivery date."
+msgstr ""
+
 msgctxt "help:purchase.product_supplier.price,quantity:"
 msgid "Minimal quantity"
 msgstr "Quantità minimale"
 
+msgctxt "help:purchase.purchase,delivery_date:"
+msgid "The default delivery date for each line."
+msgstr ""
+
 msgctxt "help:stock.location,supplier_return_location:"
 msgid "If empty the Storage location is used"
 msgstr "Se vuoto viene usata la locazione di immagazzinamento"
@@ -841,6 +942,14 @@ msgctxt "model:purchase.configuration,name:"
 msgid "Purchase Configuration"
 msgstr "Configurazione acquisti"
 
+msgctxt "model:purchase.configuration.purchase_method,name:"
+msgid "Purchase Configuration Purchase Method"
+msgstr ""
+
+msgctxt "model:purchase.configuration.sequence,name:"
+msgid "Purchase Configuration Sequence"
+msgstr ""
+
 msgctxt "model:purchase.handle.invoice.exception.ask,name:"
 msgid "Handle Invoice Exception"
 msgstr "Gestire eccezione in fattura"
@@ -966,18 +1075,6 @@ msgctxt "selection:account.invoice,purchase_exception_state:"
 msgid "Recreated"
 msgstr "Ricreati"
 
-msgctxt "selection:purchase.configuration,purchase_invoice_method:"
-msgid "Based On Order"
-msgstr "Basato su ordine"
-
-msgctxt "selection:purchase.configuration,purchase_invoice_method:"
-msgid "Based On Shipment"
-msgstr "Basato su Spedizione"
-
-msgctxt "selection:purchase.configuration,purchase_invoice_method:"
-msgid "Manual"
-msgstr "Manuale"
-
 msgctxt "selection:purchase.line,purchase_state:"
 msgid "Canceled"
 msgstr "Annullato"
@@ -1111,6 +1208,11 @@ msgctxt "view:purchase.handle.shipment.exception.ask:"
 msgid "Choose move to recreate"
 msgstr "Scegliere il movimento da ricreare"
 
+#, fuzzy
+msgctxt "view:purchase.line:"
+msgid "Delivery Date"
+msgstr "Data di consegna"
+
 msgctxt "view:purchase.line:"
 msgid "General"
 msgstr "Generale"
diff --git a/locale/ja_JP.po b/locale/ja_JP.po
index f45d4b4..0e8405b 100644
--- a/locale/ja_JP.po
+++ b/locale/ja_JP.po
@@ -16,7 +16,7 @@ msgid ""
 msgstr ""
 
 msgctxt "error:purchase.line:"
-msgid "Purchase \"%(purchase)s\" misses an \"account expense\" default property."
+msgid "Purchase \"%(purchase)s\" misses a default \"account expense\"."
 msgstr ""
 
 msgctxt "error:purchase.line:"
@@ -62,6 +62,10 @@ msgctxt "field:product.product,purchasable:"
 msgid "Purchasable"
 msgstr ""
 
+msgctxt "field:product.product,purchase_price_uom:"
+msgid "Purchase Price"
+msgstr ""
+
 msgctxt "field:product.product,purchase_uom:"
 msgid "Purchase UOM"
 msgstr ""
@@ -110,6 +114,67 @@ msgctxt "field:purchase.configuration,write_uid:"
 msgid "Write User"
 msgstr ""
 
+msgctxt "field:purchase.configuration.purchase_method,create_date:"
+msgid "Create Date"
+msgstr ""
+
+msgctxt "field:purchase.configuration.purchase_method,create_uid:"
+msgid "Create User"
+msgstr ""
+
+msgctxt "field:purchase.configuration.purchase_method,id:"
+msgid "ID"
+msgstr ""
+
+msgctxt ""
+"field:purchase.configuration.purchase_method,purchase_invoice_method:"
+msgid "Invoice Method"
+msgstr ""
+
+msgctxt "field:purchase.configuration.purchase_method,rec_name:"
+msgid "Name"
+msgstr ""
+
+msgctxt "field:purchase.configuration.purchase_method,write_date:"
+msgid "Write Date"
+msgstr ""
+
+msgctxt "field:purchase.configuration.purchase_method,write_uid:"
+msgid "Write User"
+msgstr ""
+
+msgctxt "field:purchase.configuration.sequence,company:"
+msgid "Company"
+msgstr ""
+
+msgctxt "field:purchase.configuration.sequence,create_date:"
+msgid "Create Date"
+msgstr ""
+
+msgctxt "field:purchase.configuration.sequence,create_uid:"
+msgid "Create User"
+msgstr ""
+
+msgctxt "field:purchase.configuration.sequence,id:"
+msgid "ID"
+msgstr ""
+
+msgctxt "field:purchase.configuration.sequence,purchase_sequence:"
+msgid "Purchase Sequence"
+msgstr ""
+
+msgctxt "field:purchase.configuration.sequence,rec_name:"
+msgid "Name"
+msgstr ""
+
+msgctxt "field:purchase.configuration.sequence,write_date:"
+msgid "Write Date"
+msgstr ""
+
+msgctxt "field:purchase.configuration.sequence,write_uid:"
+msgid "Write User"
+msgstr ""
+
 msgctxt "field:purchase.handle.invoice.exception.ask,domain_invoices:"
 msgid "Domain Invoices"
 msgstr ""
@@ -150,6 +215,14 @@ msgctxt "field:purchase.line,delivery_date:"
 msgid "Delivery Date"
 msgstr ""
 
+msgctxt "field:purchase.line,delivery_date_edit:"
+msgid "Edit Delivery Date"
+msgstr ""
+
+msgctxt "field:purchase.line,delivery_date_store:"
+msgid "Delivery Date"
+msgstr ""
+
 msgctxt "field:purchase.line,description:"
 msgid "Description"
 msgstr ""
@@ -472,6 +545,10 @@ msgctxt "field:purchase.purchase,currency_digits:"
 msgid "Currency Digits"
 msgstr ""
 
+msgctxt "field:purchase.purchase,delivery_date:"
+msgid "Delivery Date"
+msgstr ""
+
 msgctxt "field:purchase.purchase,description:"
 msgid "Description"
 msgstr ""
@@ -712,10 +789,18 @@ 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.line,delivery_date_edit:"
+msgid "Check to edit the delivery date."
+msgstr ""
+
 msgctxt "help:purchase.product_supplier.price,quantity:"
 msgid "Minimal quantity"
 msgstr ""
 
+msgctxt "help:purchase.purchase,delivery_date:"
+msgid "The default delivery date for each line."
+msgstr ""
+
 msgctxt "help:stock.location,supplier_return_location:"
 msgid "If empty the Storage location is used"
 msgstr ""
@@ -837,6 +922,14 @@ msgctxt "model:purchase.configuration,name:"
 msgid "Purchase Configuration"
 msgstr "Purchase Configuration"
 
+msgctxt "model:purchase.configuration.purchase_method,name:"
+msgid "Purchase Configuration Purchase Method"
+msgstr ""
+
+msgctxt "model:purchase.configuration.sequence,name:"
+msgid "Purchase Configuration Sequence"
+msgstr ""
+
 #, fuzzy
 msgctxt "model:purchase.handle.invoice.exception.ask,name:"
 msgid "Handle Invoice Exception"
@@ -966,18 +1059,6 @@ msgctxt "selection:account.invoice,purchase_exception_state:"
 msgid "Recreated"
 msgstr ""
 
-msgctxt "selection:purchase.configuration,purchase_invoice_method:"
-msgid "Based On Order"
-msgstr ""
-
-msgctxt "selection:purchase.configuration,purchase_invoice_method:"
-msgid "Based On Shipment"
-msgstr ""
-
-msgctxt "selection:purchase.configuration,purchase_invoice_method:"
-msgid "Manual"
-msgstr ""
-
 msgctxt "selection:purchase.line,purchase_state:"
 msgid "Canceled"
 msgstr ""
@@ -1119,6 +1200,10 @@ msgid "Choose move to recreate"
 msgstr ""
 
 msgctxt "view:purchase.line:"
+msgid "Delivery Date"
+msgstr ""
+
+msgctxt "view:purchase.line:"
 msgid "General"
 msgstr ""
 
diff --git a/locale/lo.po b/locale/lo.po
index 91409e2..457f8ce 100644
--- a/locale/lo.po
+++ b/locale/lo.po
@@ -16,7 +16,7 @@ msgid ""
 msgstr ""
 
 msgctxt "error:purchase.line:"
-msgid "Purchase \"%(purchase)s\" misses an \"account expense\" default property."
+msgid "Purchase \"%(purchase)s\" misses a default \"account expense\"."
 msgstr ""
 
 msgctxt "error:purchase.line:"
@@ -62,6 +62,11 @@ msgctxt "field:product.product,purchasable:"
 msgid "Purchasable"
 msgstr ""
 
+#, fuzzy
+msgctxt "field:product.product,purchase_price_uom:"
+msgid "Purchase Price"
+msgstr "ວັນທີຈັດຊື້"
+
 msgctxt "field:product.product,purchase_uom:"
 msgid "Purchase UOM"
 msgstr ""
@@ -117,6 +122,80 @@ msgctxt "field:purchase.configuration,write_uid:"
 msgid "Write User"
 msgstr "ຂຽນຜູ້ໃຊ້ງານ"
 
+#, fuzzy
+msgctxt "field:purchase.configuration.purchase_method,create_date:"
+msgid "Create Date"
+msgstr "ສ້າງວັນທີ"
+
+#, fuzzy
+msgctxt "field:purchase.configuration.purchase_method,create_uid:"
+msgid "Create User"
+msgstr "ສ້າງຜູ້ໃຊ້ງານ"
+
+#, fuzzy
+msgctxt "field:purchase.configuration.purchase_method,id:"
+msgid "ID"
+msgstr "ເລກລໍາດັບ"
+
+msgctxt ""
+"field:purchase.configuration.purchase_method,purchase_invoice_method:"
+msgid "Invoice Method"
+msgstr ""
+
+#, fuzzy
+msgctxt "field:purchase.configuration.purchase_method,rec_name:"
+msgid "Name"
+msgstr "ຊື່"
+
+#, fuzzy
+msgctxt "field:purchase.configuration.purchase_method,write_date:"
+msgid "Write Date"
+msgstr "ຂຽນວັນທີ"
+
+#, fuzzy
+msgctxt "field:purchase.configuration.purchase_method,write_uid:"
+msgid "Write User"
+msgstr "ຂຽນຜູ້ໃຊ້ງານ"
+
+#, fuzzy
+msgctxt "field:purchase.configuration.sequence,company:"
+msgid "Company"
+msgstr "ຫ້ອງການ/ສຳນັກງານ"
+
+#, fuzzy
+msgctxt "field:purchase.configuration.sequence,create_date:"
+msgid "Create Date"
+msgstr "ສ້າງວັນທີ"
+
+#, fuzzy
+msgctxt "field:purchase.configuration.sequence,create_uid:"
+msgid "Create User"
+msgstr "ສ້າງຜູ້ໃຊ້ງານ"
+
+#, fuzzy
+msgctxt "field:purchase.configuration.sequence,id:"
+msgid "ID"
+msgstr "ເລກລໍາດັບ"
+
+msgctxt "field:purchase.configuration.sequence,purchase_sequence:"
+msgid "Purchase Sequence"
+msgstr ""
+
+#, fuzzy
+msgctxt "field:purchase.configuration.sequence,rec_name:"
+msgid "Name"
+msgstr "ຊື່"
+
+#, fuzzy
+msgctxt "field:purchase.configuration.sequence,write_date:"
+msgid "Write Date"
+msgstr "ຂຽນວັນທີ"
+
+#, fuzzy
+msgctxt "field:purchase.configuration.sequence,write_uid:"
+msgid "Write User"
+msgstr "ຂຽນຜູ້ໃຊ້ງານ"
+
 msgctxt "field:purchase.handle.invoice.exception.ask,domain_invoices:"
 msgid "Domain Invoices"
 msgstr ""
@@ -162,6 +241,14 @@ msgctxt "field:purchase.line,delivery_date:"
 msgid "Delivery Date"
 msgstr ""
 
+msgctxt "field:purchase.line,delivery_date_edit:"
+msgid "Edit Delivery Date"
+msgstr ""
+
+msgctxt "field:purchase.line,delivery_date_store:"
+msgid "Delivery Date"
+msgstr ""
+
 msgctxt "field:purchase.line,description:"
 msgid "Description"
 msgstr "ເນື້ອໃນລາຍການ"
@@ -546,6 +633,10 @@ msgctxt "field:purchase.purchase,currency_digits:"
 msgid "Currency Digits"
 msgstr "ໂຕເລກສະກຸນເງິນ"
 
+msgctxt "field:purchase.purchase,delivery_date:"
+msgid "Delivery Date"
+msgstr ""
+
 #, fuzzy
 msgctxt "field:purchase.purchase,description:"
 msgid "Description"
@@ -798,10 +889,18 @@ 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.line,delivery_date_edit:"
+msgid "Check to edit the delivery date."
+msgstr ""
+
 msgctxt "help:purchase.product_supplier.price,quantity:"
 msgid "Minimal quantity"
 msgstr ""
 
+msgctxt "help:purchase.purchase,delivery_date:"
+msgid "The default delivery date for each line."
+msgstr ""
+
 msgctxt "help:stock.location,supplier_return_location:"
 msgid "If empty the Storage location is used"
 msgstr ""
@@ -935,6 +1034,14 @@ msgctxt "model:purchase.configuration,name:"
 msgid "Purchase Configuration"
 msgstr "ຕັ້ງຄ່າການຈັດຊື້"
 
+msgctxt "model:purchase.configuration.purchase_method,name:"
+msgid "Purchase Configuration Purchase Method"
+msgstr ""
+
+msgctxt "model:purchase.configuration.sequence,name:"
+msgid "Purchase Configuration Sequence"
+msgstr ""
+
 msgctxt "model:purchase.handle.invoice.exception.ask,name:"
 msgid "Handle Invoice Exception"
 msgstr ""
@@ -1071,19 +1178,6 @@ msgctxt "selection:account.invoice,purchase_exception_state:"
 msgid "Recreated"
 msgstr "ສ້າງຂຶ້ນໃໝ່"
 
-msgctxt "selection:purchase.configuration,purchase_invoice_method:"
-msgid "Based On Order"
-msgstr ""
-
-msgctxt "selection:purchase.configuration,purchase_invoice_method:"
-msgid "Based On Shipment"
-msgstr ""
-
-#, fuzzy
-msgctxt "selection:purchase.configuration,purchase_invoice_method:"
-msgid "Manual"
-msgstr "ໃສ່ເອົາເອງ"
-
 #, fuzzy
 msgctxt "selection:purchase.line,purchase_state:"
 msgid "Canceled"
@@ -1231,6 +1325,10 @@ msgctxt "view:purchase.handle.shipment.exception.ask:"
 msgid "Choose move to recreate"
 msgstr ""
 
+msgctxt "view:purchase.line:"
+msgid "Delivery Date"
+msgstr ""
+
 #, fuzzy
 msgctxt "view:purchase.line:"
 msgid "General"
diff --git a/locale/lt.po b/locale/lt.po
index 1e3062f..8a02308 100644
--- a/locale/lt.po
+++ b/locale/lt.po
@@ -16,7 +16,7 @@ msgid ""
 msgstr ""
 
 msgctxt "error:purchase.line:"
-msgid "Purchase \"%(purchase)s\" misses an \"account expense\" default property."
+msgid "Purchase \"%(purchase)s\" misses a default \"account expense\"."
 msgstr ""
 
 msgctxt "error:purchase.line:"
@@ -61,6 +61,10 @@ msgctxt "field:product.product,purchasable:"
 msgid "Purchasable"
 msgstr ""
 
+msgctxt "field:product.product,purchase_price_uom:"
+msgid "Purchase Price"
+msgstr ""
+
 msgctxt "field:product.product,purchase_uom:"
 msgid "Purchase UOM"
 msgstr ""
@@ -110,6 +114,69 @@ msgctxt "field:purchase.configuration,write_uid:"
 msgid "Write User"
 msgstr ""
 
+msgctxt "field:purchase.configuration.purchase_method,create_date:"
+msgid "Create Date"
+msgstr ""
+
+msgctxt "field:purchase.configuration.purchase_method,create_uid:"
+msgid "Create User"
+msgstr ""
+
+msgctxt "field:purchase.configuration.purchase_method,id:"
+msgid "ID"
+msgstr ""
+
+msgctxt ""
+"field:purchase.configuration.purchase_method,purchase_invoice_method:"
+msgid "Invoice Method"
+msgstr ""
+
+#, fuzzy
+msgctxt "field:purchase.configuration.purchase_method,rec_name:"
+msgid "Name"
+msgstr "Namu"
+
+msgctxt "field:purchase.configuration.purchase_method,write_date:"
+msgid "Write Date"
+msgstr ""
+
+msgctxt "field:purchase.configuration.purchase_method,write_uid:"
+msgid "Write User"
+msgstr ""
+
+msgctxt "field:purchase.configuration.sequence,company:"
+msgid "Company"
+msgstr ""
+
+msgctxt "field:purchase.configuration.sequence,create_date:"
+msgid "Create Date"
+msgstr ""
+
+msgctxt "field:purchase.configuration.sequence,create_uid:"
+msgid "Create User"
+msgstr ""
+
+msgctxt "field:purchase.configuration.sequence,id:"
+msgid "ID"
+msgstr ""
+
+msgctxt "field:purchase.configuration.sequence,purchase_sequence:"
+msgid "Purchase Sequence"
+msgstr ""
+
+#, fuzzy
+msgctxt "field:purchase.configuration.sequence,rec_name:"
+msgid "Name"
+msgstr "Namu"
+
+msgctxt "field:purchase.configuration.sequence,write_date:"
+msgid "Write Date"
+msgstr ""
+
+msgctxt "field:purchase.configuration.sequence,write_uid:"
+msgid "Write User"
+msgstr ""
+
 msgctxt "field:purchase.handle.invoice.exception.ask,domain_invoices:"
 msgid "Domain Invoices"
 msgstr ""
@@ -150,6 +217,14 @@ msgctxt "field:purchase.line,delivery_date:"
 msgid "Delivery Date"
 msgstr ""
 
+msgctxt "field:purchase.line,delivery_date_edit:"
+msgid "Edit Delivery Date"
+msgstr ""
+
+msgctxt "field:purchase.line,delivery_date_store:"
+msgid "Delivery Date"
+msgstr ""
+
 msgctxt "field:purchase.line,description:"
 msgid "Description"
 msgstr ""
@@ -477,6 +552,10 @@ msgctxt "field:purchase.purchase,currency_digits:"
 msgid "Currency Digits"
 msgstr ""
 
+msgctxt "field:purchase.purchase,delivery_date:"
+msgid "Delivery Date"
+msgstr ""
+
 msgctxt "field:purchase.purchase,description:"
 msgid "Description"
 msgstr ""
@@ -713,10 +792,18 @@ 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.line,delivery_date_edit:"
+msgid "Check to edit the delivery date."
+msgstr ""
+
 msgctxt "help:purchase.product_supplier.price,quantity:"
 msgid "Minimal quantity"
 msgstr ""
 
+msgctxt "help:purchase.purchase,delivery_date:"
+msgid "The default delivery date for each line."
+msgstr ""
+
 msgctxt "help:stock.location,supplier_return_location:"
 msgid "If empty the Storage location is used"
 msgstr ""
@@ -837,6 +924,14 @@ msgctxt "model:purchase.configuration,name:"
 msgid "Purchase Configuration"
 msgstr ""
 
+msgctxt "model:purchase.configuration.purchase_method,name:"
+msgid "Purchase Configuration Purchase Method"
+msgstr ""
+
+msgctxt "model:purchase.configuration.sequence,name:"
+msgid "Purchase Configuration Sequence"
+msgstr ""
+
 msgctxt "model:purchase.handle.invoice.exception.ask,name:"
 msgid "Handle Invoice Exception"
 msgstr ""
@@ -962,18 +1057,6 @@ msgctxt "selection:account.invoice,purchase_exception_state:"
 msgid "Recreated"
 msgstr ""
 
-msgctxt "selection:purchase.configuration,purchase_invoice_method:"
-msgid "Based On Order"
-msgstr ""
-
-msgctxt "selection:purchase.configuration,purchase_invoice_method:"
-msgid "Based On Shipment"
-msgstr ""
-
-msgctxt "selection:purchase.configuration,purchase_invoice_method:"
-msgid "Manual"
-msgstr ""
-
 msgctxt "selection:purchase.line,purchase_state:"
 msgid "Canceled"
 msgstr ""
@@ -1107,6 +1190,10 @@ msgid "Choose move to recreate"
 msgstr ""
 
 msgctxt "view:purchase.line:"
+msgid "Delivery Date"
+msgstr ""
+
+msgctxt "view:purchase.line:"
 msgid "General"
 msgstr ""
 
diff --git a/locale/nl.po b/locale/nl.po
index fc89e6c..b221eaf 100644
--- a/locale/nl.po
+++ b/locale/nl.po
@@ -16,7 +16,7 @@ msgid ""
 msgstr ""
 
 msgctxt "error:purchase.line:"
-msgid "Purchase \"%(purchase)s\" misses an \"account expense\" default property."
+msgid "Purchase \"%(purchase)s\" misses a default \"account expense\"."
 msgstr ""
 
 msgctxt "error:purchase.line:"
@@ -64,6 +64,10 @@ msgctxt "field:product.product,purchasable:"
 msgid "Purchasable"
 msgstr ""
 
+msgctxt "field:product.product,purchase_price_uom:"
+msgid "Purchase Price"
+msgstr ""
+
 msgctxt "field:product.product,purchase_uom:"
 msgid "Purchase UOM"
 msgstr ""
@@ -121,6 +125,81 @@ msgid "Write User"
 msgstr "Gebruiker"
 
 #, fuzzy
+msgctxt "field:purchase.configuration.purchase_method,create_date:"
+msgid "Create Date"
+msgstr "Datum"
+
+#, fuzzy
+msgctxt "field:purchase.configuration.purchase_method,create_uid:"
+msgid "Create User"
+msgstr "Gebruiker"
+
+#, fuzzy
+msgctxt "field:purchase.configuration.purchase_method,id:"
+msgid "ID"
+msgstr "ID"
+
+#, fuzzy
+msgctxt ""
+"field:purchase.configuration.purchase_method,purchase_invoice_method:"
+msgid "Invoice Method"
+msgstr "Factuur afhandeling"
+
+#, fuzzy
+msgctxt "field:purchase.configuration.purchase_method,rec_name:"
+msgid "Name"
+msgstr "Naam bijlage"
+
+#, fuzzy
+msgctxt "field:purchase.configuration.purchase_method,write_date:"
+msgid "Write Date"
+msgstr "Schrijfdatum"
+
+#, fuzzy
+msgctxt "field:purchase.configuration.purchase_method,write_uid:"
+msgid "Write User"
+msgstr "Gebruiker"
+
+#, fuzzy
+msgctxt "field:purchase.configuration.sequence,company:"
+msgid "Company"
+msgstr "Bedrijf"
+
+#, fuzzy
+msgctxt "field:purchase.configuration.sequence,create_date:"
+msgid "Create Date"
+msgstr "Datum"
+
+#, fuzzy
+msgctxt "field:purchase.configuration.sequence,create_uid:"
+msgid "Create User"
+msgstr "Gebruiker"
+
+#, fuzzy
+msgctxt "field:purchase.configuration.sequence,id:"
+msgid "ID"
+msgstr "ID"
+
+msgctxt "field:purchase.configuration.sequence,purchase_sequence:"
+msgid "Purchase Sequence"
+msgstr ""
+
+#, fuzzy
+msgctxt "field:purchase.configuration.sequence,rec_name:"
+msgid "Name"
+msgstr "Naam bijlage"
+
+#, fuzzy
+msgctxt "field:purchase.configuration.sequence,write_date:"
+msgid "Write Date"
+msgstr "Schrijfdatum"
+
+#, fuzzy
+msgctxt "field:purchase.configuration.sequence,write_uid:"
+msgid "Write User"
+msgstr "Gebruiker"
+
+#, fuzzy
 msgctxt "field:purchase.handle.invoice.exception.ask,domain_invoices:"
 msgid "Domain Invoices"
 msgstr "Domein facturen"
@@ -169,6 +248,14 @@ msgctxt "field:purchase.line,delivery_date:"
 msgid "Delivery Date"
 msgstr ""
 
+msgctxt "field:purchase.line,delivery_date_edit:"
+msgid "Edit Delivery Date"
+msgstr ""
+
+msgctxt "field:purchase.line,delivery_date_store:"
+msgid "Delivery Date"
+msgstr ""
+
 #, fuzzy
 msgctxt "field:purchase.line,description:"
 msgid "Description"
@@ -560,6 +647,10 @@ msgctxt "field:purchase.purchase,currency_digits:"
 msgid "Currency Digits"
 msgstr "Valuta decimalen"
 
+msgctxt "field:purchase.purchase,delivery_date:"
+msgid "Delivery Date"
+msgstr ""
+
 #, fuzzy
 msgctxt "field:purchase.purchase,description:"
 msgid "Description"
@@ -843,10 +934,18 @@ msgstr ""
 "De geselecteerde facturen worden opnieuw aangemaakt. De rest wordt "
 "genegeerd."
 
+msgctxt "help:purchase.line,delivery_date_edit:"
+msgid "Check to edit the delivery date."
+msgstr ""
+
 msgctxt "help:purchase.product_supplier.price,quantity:"
 msgid "Minimal quantity"
 msgstr ""
 
+msgctxt "help:purchase.purchase,delivery_date:"
+msgid "The default delivery date for each line."
+msgstr ""
+
 msgctxt "help:stock.location,supplier_return_location:"
 msgid "If empty the Storage location is used"
 msgstr ""
@@ -985,6 +1084,14 @@ msgctxt "model:purchase.configuration,name:"
 msgid "Purchase Configuration"
 msgstr ""
 
+msgctxt "model:purchase.configuration.purchase_method,name:"
+msgid "Purchase Configuration Purchase Method"
+msgstr ""
+
+msgctxt "model:purchase.configuration.sequence,name:"
+msgid "Purchase Configuration Sequence"
+msgstr ""
+
 #, fuzzy
 msgctxt "model:purchase.handle.invoice.exception.ask,name:"
 msgid "Handle Invoice Exception"
@@ -1127,19 +1234,6 @@ msgctxt "selection:account.invoice,purchase_exception_state:"
 msgid "Recreated"
 msgstr "Opnieuw aangemaakt"
 
-msgctxt "selection:purchase.configuration,purchase_invoice_method:"
-msgid "Based On Order"
-msgstr ""
-
-msgctxt "selection:purchase.configuration,purchase_invoice_method:"
-msgid "Based On Shipment"
-msgstr ""
-
-#, fuzzy
-msgctxt "selection:purchase.configuration,purchase_invoice_method:"
-msgid "Manual"
-msgstr "Handmatig"
-
 #, fuzzy
 msgctxt "selection:purchase.line,purchase_state:"
 msgid "Canceled"
@@ -1301,6 +1395,10 @@ msgctxt "view:purchase.handle.shipment.exception.ask:"
 msgid "Choose move to recreate"
 msgstr "Kies boeking om opnieuw aan te maken"
 
+msgctxt "view:purchase.line:"
+msgid "Delivery Date"
+msgstr ""
+
 #, fuzzy
 msgctxt "view:purchase.line:"
 msgid "General"
diff --git a/locale/pl.po b/locale/pl.po
index f45d4b4..0e8405b 100644
--- a/locale/pl.po
+++ b/locale/pl.po
@@ -16,7 +16,7 @@ msgid ""
 msgstr ""
 
 msgctxt "error:purchase.line:"
-msgid "Purchase \"%(purchase)s\" misses an \"account expense\" default property."
+msgid "Purchase \"%(purchase)s\" misses a default \"account expense\"."
 msgstr ""
 
 msgctxt "error:purchase.line:"
@@ -62,6 +62,10 @@ msgctxt "field:product.product,purchasable:"
 msgid "Purchasable"
 msgstr ""
 
+msgctxt "field:product.product,purchase_price_uom:"
+msgid "Purchase Price"
+msgstr ""
+
 msgctxt "field:product.product,purchase_uom:"
 msgid "Purchase UOM"
 msgstr ""
@@ -110,6 +114,67 @@ msgctxt "field:purchase.configuration,write_uid:"
 msgid "Write User"
 msgstr ""
 
+msgctxt "field:purchase.configuration.purchase_method,create_date:"
+msgid "Create Date"
+msgstr ""
+
+msgctxt "field:purchase.configuration.purchase_method,create_uid:"
+msgid "Create User"
+msgstr ""
+
+msgctxt "field:purchase.configuration.purchase_method,id:"
+msgid "ID"
+msgstr ""
+
+msgctxt ""
+"field:purchase.configuration.purchase_method,purchase_invoice_method:"
+msgid "Invoice Method"
+msgstr ""
+
+msgctxt "field:purchase.configuration.purchase_method,rec_name:"
+msgid "Name"
+msgstr ""
+
+msgctxt "field:purchase.configuration.purchase_method,write_date:"
+msgid "Write Date"
+msgstr ""
+
+msgctxt "field:purchase.configuration.purchase_method,write_uid:"
+msgid "Write User"
+msgstr ""
+
+msgctxt "field:purchase.configuration.sequence,company:"
+msgid "Company"
+msgstr ""
+
+msgctxt "field:purchase.configuration.sequence,create_date:"
+msgid "Create Date"
+msgstr ""
+
+msgctxt "field:purchase.configuration.sequence,create_uid:"
+msgid "Create User"
+msgstr ""
+
+msgctxt "field:purchase.configuration.sequence,id:"
+msgid "ID"
+msgstr ""
+
+msgctxt "field:purchase.configuration.sequence,purchase_sequence:"
+msgid "Purchase Sequence"
+msgstr ""
+
+msgctxt "field:purchase.configuration.sequence,rec_name:"
+msgid "Name"
+msgstr ""
+
+msgctxt "field:purchase.configuration.sequence,write_date:"
+msgid "Write Date"
+msgstr ""
+
+msgctxt "field:purchase.configuration.sequence,write_uid:"
+msgid "Write User"
+msgstr ""
+
 msgctxt "field:purchase.handle.invoice.exception.ask,domain_invoices:"
 msgid "Domain Invoices"
 msgstr ""
@@ -150,6 +215,14 @@ msgctxt "field:purchase.line,delivery_date:"
 msgid "Delivery Date"
 msgstr ""
 
+msgctxt "field:purchase.line,delivery_date_edit:"
+msgid "Edit Delivery Date"
+msgstr ""
+
+msgctxt "field:purchase.line,delivery_date_store:"
+msgid "Delivery Date"
+msgstr ""
+
 msgctxt "field:purchase.line,description:"
 msgid "Description"
 msgstr ""
@@ -472,6 +545,10 @@ msgctxt "field:purchase.purchase,currency_digits:"
 msgid "Currency Digits"
 msgstr ""
 
+msgctxt "field:purchase.purchase,delivery_date:"
+msgid "Delivery Date"
+msgstr ""
+
 msgctxt "field:purchase.purchase,description:"
 msgid "Description"
 msgstr ""
@@ -712,10 +789,18 @@ 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.line,delivery_date_edit:"
+msgid "Check to edit the delivery date."
+msgstr ""
+
 msgctxt "help:purchase.product_supplier.price,quantity:"
 msgid "Minimal quantity"
 msgstr ""
 
+msgctxt "help:purchase.purchase,delivery_date:"
+msgid "The default delivery date for each line."
+msgstr ""
+
 msgctxt "help:stock.location,supplier_return_location:"
 msgid "If empty the Storage location is used"
 msgstr ""
@@ -837,6 +922,14 @@ msgctxt "model:purchase.configuration,name:"
 msgid "Purchase Configuration"
 msgstr "Purchase Configuration"
 
+msgctxt "model:purchase.configuration.purchase_method,name:"
+msgid "Purchase Configuration Purchase Method"
+msgstr ""
+
+msgctxt "model:purchase.configuration.sequence,name:"
+msgid "Purchase Configuration Sequence"
+msgstr ""
+
 #, fuzzy
 msgctxt "model:purchase.handle.invoice.exception.ask,name:"
 msgid "Handle Invoice Exception"
@@ -966,18 +1059,6 @@ msgctxt "selection:account.invoice,purchase_exception_state:"
 msgid "Recreated"
 msgstr ""
 
-msgctxt "selection:purchase.configuration,purchase_invoice_method:"
-msgid "Based On Order"
-msgstr ""
-
-msgctxt "selection:purchase.configuration,purchase_invoice_method:"
-msgid "Based On Shipment"
-msgstr ""
-
-msgctxt "selection:purchase.configuration,purchase_invoice_method:"
-msgid "Manual"
-msgstr ""
-
 msgctxt "selection:purchase.line,purchase_state:"
 msgid "Canceled"
 msgstr ""
@@ -1119,6 +1200,10 @@ msgid "Choose move to recreate"
 msgstr ""
 
 msgctxt "view:purchase.line:"
+msgid "Delivery Date"
+msgstr ""
+
+msgctxt "view:purchase.line:"
 msgid "General"
 msgstr ""
 
diff --git a/locale/pt_BR.po b/locale/pt_BR.po
index 9f06f54..a1adafb 100644
--- a/locale/pt_BR.po
+++ b/locale/pt_BR.po
@@ -18,8 +18,8 @@ msgstr ""
 "despesas."
 
 msgctxt "error:purchase.line:"
-msgid "Purchase \"%(purchase)s\" misses an \"account expense\" default property."
-msgstr "Falta a propriedade \"conta de despesas\" padrão na compra \"%(purchase)s\"."
+msgid "Purchase \"%(purchase)s\" misses a default \"account expense\"."
+msgstr "Falta \"conta despesa\" padrão na compra \"%(purchase)s\"."
 
 msgctxt "error:purchase.line:"
 msgid "Purchase \"%(purchase)s\" misses the supplier location for line \"%(line)s\"."
@@ -29,7 +29,7 @@ msgstr ""
 
 msgctxt "error:purchase.purchase:"
 msgid "A warehouse must be defined for quotation of purchase \"%s\"."
-msgstr "Um armazém deve ser definido para a cotação da compra \"%s\"."
+msgstr "Um almoxarifado deve ser definido para a cotação da compra \"%s\"."
 
 msgctxt "error:purchase.purchase:"
 msgid "Missing \"Account Payable\" on party \"%s\"."
@@ -59,20 +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_price_uom:"
+msgid "Purchase Price"
+msgstr "Preço de Compra"
+
 msgctxt "field:product.product,purchase_uom:"
 msgid "Purchase UOM"
-msgstr "UM de compra"
+msgstr "UDM de compra"
 
 msgctxt "field:product.template,product_suppliers:"
 msgid "Suppliers"
@@ -104,7 +105,7 @@ msgstr "Método da fatura"
 
 msgctxt "field:purchase.configuration,purchase_sequence:"
 msgid "Purchase Sequence"
-msgstr ""
+msgstr "Sequência de Compra"
 
 msgctxt "field:purchase.configuration,rec_name:"
 msgid "Name"
@@ -118,6 +119,67 @@ msgctxt "field:purchase.configuration,write_uid:"
 msgid "Write User"
 msgstr "Gravado pelo usuário"
 
+msgctxt "field:purchase.configuration.purchase_method,create_date:"
+msgid "Create Date"
+msgstr "Data de criação"
+
+msgctxt "field:purchase.configuration.purchase_method,create_uid:"
+msgid "Create User"
+msgstr "Criado por"
+
+msgctxt "field:purchase.configuration.purchase_method,id:"
+msgid "ID"
+msgstr "ID"
+
+msgctxt ""
+"field:purchase.configuration.purchase_method,purchase_invoice_method:"
+msgid "Invoice Method"
+msgstr "Método da fatura"
+
+msgctxt "field:purchase.configuration.purchase_method,rec_name:"
+msgid "Name"
+msgstr "Nome"
+
+msgctxt "field:purchase.configuration.purchase_method,write_date:"
+msgid "Write Date"
+msgstr "Data de edição"
+
+msgctxt "field:purchase.configuration.purchase_method,write_uid:"
+msgid "Write User"
+msgstr "Editado por"
+
+msgctxt "field:purchase.configuration.sequence,company:"
+msgid "Company"
+msgstr "Empresa"
+
+msgctxt "field:purchase.configuration.sequence,create_date:"
+msgid "Create Date"
+msgstr "Data de criação"
+
+msgctxt "field:purchase.configuration.sequence,create_uid:"
+msgid "Create User"
+msgstr "Criado por"
+
+msgctxt "field:purchase.configuration.sequence,id:"
+msgid "ID"
+msgstr "ID"
+
+msgctxt "field:purchase.configuration.sequence,purchase_sequence:"
+msgid "Purchase Sequence"
+msgstr "Sequência de Compra"
+
+msgctxt "field:purchase.configuration.sequence,rec_name:"
+msgid "Name"
+msgstr "Nome"
+
+msgctxt "field:purchase.configuration.sequence,write_date:"
+msgid "Write Date"
+msgstr "Data de edição"
+
+msgctxt "field:purchase.configuration.sequence,write_uid:"
+msgid "Write User"
+msgstr "Editado por"
+
 msgctxt "field:purchase.handle.invoice.exception.ask,domain_invoices:"
 msgid "Domain Invoices"
 msgstr "Faturas do domínio"
@@ -158,6 +220,14 @@ msgctxt "field:purchase.line,delivery_date:"
 msgid "Delivery Date"
 msgstr "Data de entrega"
 
+msgctxt "field:purchase.line,delivery_date_edit:"
+msgid "Edit Delivery Date"
+msgstr "Editar Data de Entrega"
+
+msgctxt "field:purchase.line,delivery_date_store:"
+msgid "Delivery Date"
+msgstr "Data de entrega"
+
 msgctxt "field:purchase.line,description:"
 msgid "Description"
 msgstr "Descrição"
@@ -210,10 +280,9 @@ msgctxt "field:purchase.line,purchase:"
 msgid "Purchase"
 msgstr "Compra"
 
-#, fuzzy
 msgctxt "field:purchase.line,purchase_state:"
 msgid "Purchase State"
-msgstr "Data da compra"
+msgstr "Estado da Compra"
 
 msgctxt "field:purchase.line,quantity:"
 msgid "Quantity"
@@ -381,7 +450,7 @@ msgstr "ID"
 
 msgctxt "field:purchase.product_supplier,lead_time:"
 msgid "Lead Time"
-msgstr ""
+msgstr "Tempo de Espera"
 
 msgctxt "field:purchase.product_supplier,name:"
 msgid "Name"
@@ -479,6 +548,10 @@ msgctxt "field:purchase.purchase,currency_digits:"
 msgid "Currency Digits"
 msgstr "Dígitos da moeda"
 
+msgctxt "field:purchase.purchase,delivery_date:"
+msgid "Delivery Date"
+msgstr "Data de entrega"
+
 msgctxt "field:purchase.purchase,description:"
 msgid "Description"
 msgstr "Descrição"
@@ -519,7 +592,6 @@ msgctxt "field:purchase.purchase,moves:"
 msgid "Moves"
 msgstr "Movimentações"
 
-#, fuzzy
 msgctxt "field:purchase.purchase,number:"
 msgid "Number"
 msgstr "Número"
@@ -534,7 +606,7 @@ msgstr "Língua do parceiro"
 
 msgctxt "field:purchase.purchase,payment_term:"
 msgid "Payment Term"
-msgstr "Vencimento do pagamento"
+msgstr "Prazo de pagamento"
 
 msgctxt "field:purchase.purchase,purchase_date:"
 msgid "Purchase Date"
@@ -550,15 +622,15 @@ msgstr "Referência"
 
 msgctxt "field:purchase.purchase,shipment_returns:"
 msgid "Shipment Returns"
-msgstr "Retornos de remessas"
+msgstr "Retornos de Remessas"
 
 msgctxt "field:purchase.purchase,shipment_state:"
 msgid "Shipment State"
-msgstr "Estado da expedição"
+msgstr "Estado da Remessa"
 
 msgctxt "field:purchase.purchase,shipments:"
 msgid "Shipments"
-msgstr "Expedições"
+msgstr "Remessas"
 
 msgctxt "field:purchase.purchase,state:"
 msgid "State"
@@ -590,7 +662,7 @@ msgstr "Base pré-calculada isenta"
 
 msgctxt "field:purchase.purchase,warehouse:"
 msgid "Warehouse"
-msgstr "Estoque/Almoxarifado"
+msgstr "Almoxarifado"
 
 msgctxt "field:purchase.purchase,write_date:"
 msgid "Write Date"
@@ -666,7 +738,7 @@ msgstr "Gravado pelo usuário"
 
 msgctxt "field:stock.location,supplier_return_location:"
 msgid "Supplier Return"
-msgstr ""
+msgstr "Retorno do Forenecedor"
 
 msgctxt "field:stock.move,purchase:"
 msgid "Purchase"
@@ -715,13 +787,21 @@ 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.line,delivery_date_edit:"
+msgid "Check to edit the delivery date."
+msgstr "Marque para editar a data de entrega."
+
 msgctxt "help:purchase.product_supplier.price,quantity:"
 msgid "Minimal quantity"
 msgstr "Quantidade mínima"
 
+msgctxt "help:purchase.purchase,delivery_date:"
+msgid "The default delivery date for each line."
+msgstr "A data de entrega padrão para cada linha."
+
 msgctxt "help:stock.location,supplier_return_location:"
 msgid "If empty the Storage location is used"
-msgstr ""
+msgstr "Se vazio, a localização de Armazenamento será usada"
 
 msgctxt "model:ir.action,name:act_invoice_form"
 msgid "Invoices"
@@ -761,7 +841,7 @@ msgstr "Devoluções"
 
 msgctxt "model:ir.action,name:act_shipment_form"
 msgid "Shipments"
-msgstr "Expedições"
+msgstr "Remessas"
 
 msgctxt "model:ir.action,name:report_purchase"
 msgid "Purchase"
@@ -773,7 +853,7 @@ msgstr "Manejar exceção da fatura"
 
 msgctxt "model:ir.action,name:wizard_shipment_handle_exception"
 msgid "Handle Shipment Exception"
-msgstr "Manejar exceção da expedição"
+msgstr "Manejar Exceção da Remessa"
 
 msgctxt "model:ir.action.act_window.domain,name:act_purchase_form_domain_all"
 msgid "All"
@@ -839,13 +919,21 @@ msgctxt "model:purchase.configuration,name:"
 msgid "Purchase Configuration"
 msgstr "Configuração da compra"
 
+msgctxt "model:purchase.configuration.purchase_method,name:"
+msgid "Purchase Configuration Purchase Method"
+msgstr "Configurações de Compra Método de Compra"
+
+msgctxt "model:purchase.configuration.sequence,name:"
+msgid "Purchase Configuration Sequence"
+msgstr "Configurações de Compra Sequẽncia"
+
 msgctxt "model:purchase.handle.invoice.exception.ask,name:"
 msgid "Handle Invoice Exception"
 msgstr "Exceção da fatura do punho"
 
 msgctxt "model:purchase.handle.shipment.exception.ask,name:"
 msgid "Handle Shipment Exception"
-msgstr "Exceção da expedição do punho"
+msgstr "Manejar Exceção da Remessa"
 
 msgctxt "model:purchase.line,name:"
 msgid "Purchase Line"
@@ -891,7 +979,6 @@ msgctxt "model:res.group,name:group_purchase_admin"
 msgid "Purchase Administrator"
 msgstr "Administrador de compras"
 
-#, fuzzy
 msgctxt "report:purchase.purchase:"
 msgid ":"
 msgstr ":"
@@ -924,14 +1011,13 @@ msgctxt "report:purchase.purchase:"
 msgid "Quantity"
 msgstr "Quantidade"
 
-#, fuzzy
 msgctxt "report:purchase.purchase:"
 msgid "Reference:"
-msgstr "Referência"
+msgstr "Referência:"
 
 msgctxt "report:purchase.purchase:"
 msgid "Request for Quotation N°:"
-msgstr "Requisição de Cotação n°:"
+msgstr "Pedido de Cotação n°:"
 
 msgctxt "report:purchase.purchase:"
 msgid "Taxes"
@@ -953,10 +1039,9 @@ msgctxt "report:purchase.purchase:"
 msgid "Unit Price"
 msgstr "Preço unitário"
 
-#, fuzzy
 msgctxt "selection:account.invoice,purchase_exception_state:"
 msgid ""
-msgstr "Português (Brasil)"
+msgstr ""
 
 msgctxt "selection:account.invoice,purchase_exception_state:"
 msgid "Ignored"
@@ -966,44 +1051,26 @@ msgctxt "selection:account.invoice,purchase_exception_state:"
 msgid "Recreated"
 msgstr "Recriado"
 
-msgctxt "selection:purchase.configuration,purchase_invoice_method:"
-msgid "Based On Order"
-msgstr "Baseado na ordem"
-
-msgctxt "selection:purchase.configuration,purchase_invoice_method:"
-msgid "Based On Shipment"
-msgstr "Baseado na expedição"
-
-msgctxt "selection:purchase.configuration,purchase_invoice_method:"
-msgid "Manual"
-msgstr "Manual"
-
-#, fuzzy
 msgctxt "selection:purchase.line,purchase_state:"
 msgid "Canceled"
 msgstr "Cancelado"
 
-#, fuzzy
 msgctxt "selection:purchase.line,purchase_state:"
 msgid "Confirmed"
 msgstr "Confirmado"
 
-#, fuzzy
 msgctxt "selection:purchase.line,purchase_state:"
 msgid "Done"
 msgstr "Feito"
 
-#, fuzzy
 msgctxt "selection:purchase.line,purchase_state:"
 msgid "Draft"
 msgstr "Rascunho"
 
-#, fuzzy
 msgctxt "selection:purchase.line,purchase_state:"
 msgid "Processing"
 msgstr "Processando"
 
-#, fuzzy
 msgctxt "selection:purchase.line,purchase_state:"
 msgid "Quotation"
 msgstr "Cotação"
@@ -1030,7 +1097,7 @@ msgstr "Baseado na ordem"
 
 msgctxt "selection:purchase.purchase,invoice_method:"
 msgid "Based On Shipment"
-msgstr "Baseado na expedição"
+msgstr "Baseado Na Remessa"
 
 msgctxt "selection:purchase.purchase,invoice_method:"
 msgid "Manual"
@@ -1092,10 +1159,9 @@ msgctxt "selection:purchase.purchase,state:"
 msgid "Quotation"
 msgstr "Cotação"
 
-#, fuzzy
 msgctxt "selection:stock.move,purchase_exception_state:"
 msgid ""
-msgstr "Português (Brasil)"
+msgstr ""
 
 msgctxt "selection:stock.move,purchase_exception_state:"
 msgid "Ignored"
@@ -1118,6 +1184,10 @@ msgid "Choose move to recreate"
 msgstr "Escolha a movimentação a recriar"
 
 msgctxt "view:purchase.line:"
+msgid "Delivery Date"
+msgstr "Data de entrega"
+
+msgctxt "view:purchase.line:"
 msgid "General"
 msgstr "Geral"
 
@@ -1147,7 +1217,7 @@ msgstr "Manejar exceção da fatura"
 
 msgctxt "view:purchase.purchase:"
 msgid "Handle Shipment Exception"
-msgstr "Manejar exceção da expedição"
+msgstr "Manejar Exceção da Remessa"
 
 msgctxt "view:purchase.purchase:"
 msgid "Other Info"
@@ -1165,12 +1235,10 @@ msgctxt "view:purchase.purchase:"
 msgid "Quote"
 msgstr "Cotar"
 
-#, fuzzy
 msgctxt "view:stock.move:"
 msgid "Cancel"
 msgstr "Cancelar"
 
-#, fuzzy
 msgctxt "view:stock.move:"
 msgid "Reset to Draft"
 msgstr "Voltar para Rascunho"
diff --git a/locale/ru.po b/locale/ru.po
index 31d0fb4..d4b0720 100644
--- a/locale/ru.po
+++ b/locale/ru.po
@@ -18,8 +18,8 @@ msgstr ""
 "расходов."
 
 msgctxt "error:purchase.line:"
-msgid "Purchase \"%(purchase)s\" misses an \"account expense\" default property."
-msgstr "У покупки \"%(purchase)s\" не заполнено поле \"Счет расходов\"."
+msgid "Purchase \"%(purchase)s\" misses a default \"account expense\"."
+msgstr ""
 
 msgctxt "error:purchase.line:"
 msgid "Purchase \"%(purchase)s\" misses the supplier location for line \"%(line)s\"."
@@ -70,6 +70,11 @@ msgid "Purchasable"
 msgstr "Для покупки"
 
 #, fuzzy
+msgctxt "field:product.product,purchase_price_uom:"
+msgid "Purchase Price"
+msgstr "Строка покупки"
+
+#, fuzzy
 msgctxt "field:product.product,purchase_uom:"
 msgid "Purchase UOM"
 msgstr "Покупка, ед. измерения"
@@ -118,6 +123,81 @@ msgctxt "field:purchase.configuration,write_uid:"
 msgid "Write User"
 msgstr "Изменено пользователем"
 
+#, fuzzy
+msgctxt "field:purchase.configuration.purchase_method,create_date:"
+msgid "Create Date"
+msgstr "Дата создания"
+
+#, fuzzy
+msgctxt "field:purchase.configuration.purchase_method,create_uid:"
+msgid "Create User"
+msgstr "Создано пользователем"
+
+#, fuzzy
+msgctxt "field:purchase.configuration.purchase_method,id:"
+msgid "ID"
+msgstr "ID"
+
+#, fuzzy
+msgctxt ""
+"field:purchase.configuration.purchase_method,purchase_invoice_method:"
+msgid "Invoice Method"
+msgstr "Метод инвойса"
+
+#, fuzzy
+msgctxt "field:purchase.configuration.purchase_method,rec_name:"
+msgid "Name"
+msgstr "Наименование"
+
+#, fuzzy
+msgctxt "field:purchase.configuration.purchase_method,write_date:"
+msgid "Write Date"
+msgstr "Дата изменения"
+
+#, fuzzy
+msgctxt "field:purchase.configuration.purchase_method,write_uid:"
+msgid "Write User"
+msgstr "Изменено пользователем"
+
+#, fuzzy
+msgctxt "field:purchase.configuration.sequence,company:"
+msgid "Company"
+msgstr "Организация"
+
+#, fuzzy
+msgctxt "field:purchase.configuration.sequence,create_date:"
+msgid "Create Date"
+msgstr "Дата создания"
+
+#, fuzzy
+msgctxt "field:purchase.configuration.sequence,create_uid:"
+msgid "Create User"
+msgstr "Создано пользователем"
+
+#, fuzzy
+msgctxt "field:purchase.configuration.sequence,id:"
+msgid "ID"
+msgstr "ID"
+
+msgctxt "field:purchase.configuration.sequence,purchase_sequence:"
+msgid "Purchase Sequence"
+msgstr ""
+
+#, fuzzy
+msgctxt "field:purchase.configuration.sequence,rec_name:"
+msgid "Name"
+msgstr "Наименование"
+
+#, fuzzy
+msgctxt "field:purchase.configuration.sequence,write_date:"
+msgid "Write Date"
+msgstr "Дата изменения"
+
+#, fuzzy
+msgctxt "field:purchase.configuration.sequence,write_uid:"
+msgid "Write User"
+msgstr "Изменено пользователем"
+
 msgctxt "field:purchase.handle.invoice.exception.ask,domain_invoices:"
 msgid "Domain Invoices"
 msgstr "Домен инвойсов"
@@ -158,6 +238,15 @@ msgctxt "field:purchase.line,delivery_date:"
 msgid "Delivery Date"
 msgstr "Дата доставки"
 
+msgctxt "field:purchase.line,delivery_date_edit:"
+msgid "Edit Delivery Date"
+msgstr ""
+
+#, fuzzy
+msgctxt "field:purchase.line,delivery_date_store:"
+msgid "Delivery Date"
+msgstr "Дата доставки"
+
 msgctxt "field:purchase.line,description:"
 msgid "Description"
 msgstr "Описание"
@@ -480,6 +569,11 @@ msgctxt "field:purchase.purchase,currency_digits:"
 msgid "Currency Digits"
 msgstr "Кол-во цифр валюты"
 
+#, fuzzy
+msgctxt "field:purchase.purchase,delivery_date:"
+msgid "Delivery Date"
+msgstr "Дата доставки"
+
 msgctxt "field:purchase.purchase,description:"
 msgid "Description"
 msgstr "Описание"
@@ -716,10 +810,18 @@ msgid "The selected moves will be recreated. The other ones will be ignored."
 msgstr ""
 "Выбранные перемещения будут созданы заново. Остальные будут проигнорированы."
 
+msgctxt "help:purchase.line,delivery_date_edit:"
+msgid "Check to edit the delivery date."
+msgstr ""
+
 msgctxt "help:purchase.product_supplier.price,quantity:"
 msgid "Minimal quantity"
 msgstr "Минимальное кол-во"
 
+msgctxt "help:purchase.purchase,delivery_date:"
+msgid "The default delivery date for each line."
+msgstr ""
+
 msgctxt "help:stock.location,supplier_return_location:"
 msgid "If empty the Storage location is used"
 msgstr ""
@@ -845,6 +947,14 @@ msgctxt "model:purchase.configuration,name:"
 msgid "Purchase Configuration"
 msgstr "Конфигурация покупок"
 
+msgctxt "model:purchase.configuration.purchase_method,name:"
+msgid "Purchase Configuration Purchase Method"
+msgstr ""
+
+msgctxt "model:purchase.configuration.sequence,name:"
+msgid "Purchase Configuration Sequence"
+msgstr ""
+
 msgctxt "model:purchase.handle.invoice.exception.ask,name:"
 msgid "Handle Invoice Exception"
 msgstr "Обработка особых ситуаций инвойса"
@@ -971,18 +1081,6 @@ msgctxt "selection:account.invoice,purchase_exception_state:"
 msgid "Recreated"
 msgstr "Создано заново"
 
-msgctxt "selection:purchase.configuration,purchase_invoice_method:"
-msgid "Based On Order"
-msgstr "Основанные на заказе"
-
-msgctxt "selection:purchase.configuration,purchase_invoice_method:"
-msgid "Based On Shipment"
-msgstr "Основанные на доставке"
-
-msgctxt "selection:purchase.configuration,purchase_invoice_method:"
-msgid "Manual"
-msgstr "Ручной"
-
 #, fuzzy
 msgctxt "selection:purchase.line,purchase_state:"
 msgid "Canceled"
@@ -1122,6 +1220,11 @@ msgctxt "view:purchase.handle.shipment.exception.ask:"
 msgid "Choose move to recreate"
 msgstr "Выберите проводки для пересоздания"
 
+#, fuzzy
+msgctxt "view:purchase.line:"
+msgid "Delivery Date"
+msgstr "Дата доставки"
+
 msgctxt "view:purchase.line:"
 msgid "General"
 msgstr "Основной"
diff --git a/locale/sl.po b/locale/sl.po
index c23b5c2..afeaa40 100644
--- a/locale/sl.po
+++ b/locale/sl.po
@@ -20,10 +20,8 @@ msgstr ""
 "konto."
 
 msgctxt "error:purchase.line:"
-msgid "Purchase \"%(purchase)s\" misses an \"account expense\" default property."
-msgstr ""
-"Nabavnemu nalogu \"%(purchase)s\" manjka privzeta lastnost odhodkovnega "
-"konta."
+msgid "Purchase \"%(purchase)s\" misses a default \"account expense\"."
+msgstr "Nabavnemu nalogu \"%(purchase)s\" manjka privzeti odhodkovni konto."
 
 msgctxt "error:purchase.line:"
 msgid "Purchase \"%(purchase)s\" misses the supplier location for line \"%(line)s\"."
@@ -73,6 +71,10 @@ msgctxt "field:product.product,purchasable:"
 msgid "Purchasable"
 msgstr "Za nabavo"
 
+msgctxt "field:product.product,purchase_price_uom:"
+msgid "Purchase Price"
+msgstr "Nabavna cena"
+
 msgctxt "field:product.product,purchase_uom:"
 msgid "Purchase UOM"
 msgstr "Nabavna ME"
@@ -121,6 +123,67 @@ msgctxt "field:purchase.configuration,write_uid:"
 msgid "Write User"
 msgstr "Zapisal"
 
+msgctxt "field:purchase.configuration.purchase_method,create_date:"
+msgid "Create Date"
+msgstr "Izdelano"
+
+msgctxt "field:purchase.configuration.purchase_method,create_uid:"
+msgid "Create User"
+msgstr "Izdelal"
+
+msgctxt "field:purchase.configuration.purchase_method,id:"
+msgid "ID"
+msgstr "ID"
+
+msgctxt ""
+"field:purchase.configuration.purchase_method,purchase_invoice_method:"
+msgid "Invoice Method"
+msgstr "Način obračuna"
+
+msgctxt "field:purchase.configuration.purchase_method,rec_name:"
+msgid "Name"
+msgstr "Ime"
+
+msgctxt "field:purchase.configuration.purchase_method,write_date:"
+msgid "Write Date"
+msgstr "Zapisano"
+
+msgctxt "field:purchase.configuration.purchase_method,write_uid:"
+msgid "Write User"
+msgstr "Zapisal"
+
+msgctxt "field:purchase.configuration.sequence,company:"
+msgid "Company"
+msgstr "Družba"
+
+msgctxt "field:purchase.configuration.sequence,create_date:"
+msgid "Create Date"
+msgstr "Izdelano"
+
+msgctxt "field:purchase.configuration.sequence,create_uid:"
+msgid "Create User"
+msgstr "Izdelal"
+
+msgctxt "field:purchase.configuration.sequence,id:"
+msgid "ID"
+msgstr "ID"
+
+msgctxt "field:purchase.configuration.sequence,purchase_sequence:"
+msgid "Purchase Sequence"
+msgstr "Štetje nabavnih nalogov"
+
+msgctxt "field:purchase.configuration.sequence,rec_name:"
+msgid "Name"
+msgstr "Ime"
+
+msgctxt "field:purchase.configuration.sequence,write_date:"
+msgid "Write Date"
+msgstr "Zapisano"
+
+msgctxt "field:purchase.configuration.sequence,write_uid:"
+msgid "Write User"
+msgstr "Zapisal"
+
 msgctxt "field:purchase.handle.invoice.exception.ask,domain_invoices:"
 msgid "Domain Invoices"
 msgstr "Vključeni računi"
@@ -159,7 +222,15 @@ msgstr "Izdelal"
 
 msgctxt "field:purchase.line,delivery_date:"
 msgid "Delivery Date"
-msgstr "Dostavljeno"
+msgstr "Datum dostave"
+
+msgctxt "field:purchase.line,delivery_date_edit:"
+msgid "Edit Delivery Date"
+msgstr "Popravek datuma dostave"
+
+msgctxt "field:purchase.line,delivery_date_store:"
+msgid "Delivery Date"
+msgstr "Datum dostave"
 
 msgctxt "field:purchase.line,description:"
 msgid "Description"
@@ -215,7 +286,7 @@ msgstr "Nabavni nalog"
 
 msgctxt "field:purchase.line,purchase_state:"
 msgid "Purchase State"
-msgstr ""
+msgstr "Stanje nabave"
 
 msgctxt "field:purchase.line,quantity:"
 msgid "Quantity"
@@ -481,6 +552,10 @@ msgctxt "field:purchase.purchase,currency_digits:"
 msgid "Currency Digits"
 msgstr "Decimalke"
 
+msgctxt "field:purchase.purchase,delivery_date:"
+msgid "Delivery Date"
+msgstr "Datum dostave"
+
 msgctxt "field:purchase.purchase,description:"
 msgid "Description"
 msgstr "Opis"
@@ -714,10 +789,18 @@ 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.line,delivery_date_edit:"
+msgid "Check to edit the delivery date."
+msgstr "Označite, če popravljate datum dostave."
+
 msgctxt "help:purchase.product_supplier.price,quantity:"
 msgid "Minimal quantity"
 msgstr "Minimalna količina"
 
+msgctxt "help:purchase.purchase,delivery_date:"
+msgid "The default delivery date for each line."
+msgstr "Privzet datum dostave za postavko."
+
 msgctxt "help:stock.location,supplier_return_location:"
 msgid "If empty the Storage location is used"
 msgstr "Če je prazno, se uporablja lokacija shrambe"
@@ -838,6 +921,14 @@ msgctxt "model:purchase.configuration,name:"
 msgid "Purchase Configuration"
 msgstr "Nabavna konfiguracija"
 
+msgctxt "model:purchase.configuration.purchase_method,name:"
+msgid "Purchase Configuration Purchase Method"
+msgstr "Konfiguracija načina nabave"
+
+msgctxt "model:purchase.configuration.sequence,name:"
+msgid "Purchase Configuration Sequence"
+msgstr "Konfiguacija štetja nabavnih nalogov"
+
 msgctxt "model:purchase.handle.invoice.exception.ask,name:"
 msgid "Handle Invoice Exception"
 msgstr "Obravnava pridržanih računov"
@@ -890,7 +981,6 @@ msgctxt "model:res.group,name:group_purchase_admin"
 msgid "Purchase Administrator"
 msgstr "Nabava - vodenje"
 
-#, fuzzy
 msgctxt "report:purchase.purchase:"
 msgid ":"
 msgstr ":"
@@ -963,44 +1053,26 @@ msgctxt "selection:account.invoice,purchase_exception_state:"
 msgid "Recreated"
 msgstr "Ponovno izdelano"
 
-msgctxt "selection:purchase.configuration,purchase_invoice_method:"
-msgid "Based On Order"
-msgstr "Na podlagi naloga"
-
-msgctxt "selection:purchase.configuration,purchase_invoice_method:"
-msgid "Based On Shipment"
-msgstr "Na podlagi prevzemnice"
-
-msgctxt "selection:purchase.configuration,purchase_invoice_method:"
-msgid "Manual"
-msgstr "Ročno"
-
-#, fuzzy
 msgctxt "selection:purchase.line,purchase_state:"
 msgid "Canceled"
 msgstr "Preklicano"
 
-#, fuzzy
 msgctxt "selection:purchase.line,purchase_state:"
 msgid "Confirmed"
 msgstr "Potrjeno"
 
-#, fuzzy
 msgctxt "selection:purchase.line,purchase_state:"
 msgid "Done"
 msgstr "Zaključeno"
 
-#, fuzzy
 msgctxt "selection:purchase.line,purchase_state:"
 msgid "Draft"
 msgstr "V pripravi"
 
-#, fuzzy
 msgctxt "selection:purchase.line,purchase_state:"
 msgid "Processing"
 msgstr "Obdelava"
 
-#, fuzzy
 msgctxt "selection:purchase.line,purchase_state:"
 msgid "Quotation"
 msgstr "Ponudba"
@@ -1114,6 +1186,10 @@ msgid "Choose move to recreate"
 msgstr "Izbor prometa za ponovno izdelavo"
 
 msgctxt "view:purchase.line:"
+msgid "Delivery Date"
+msgstr "Datum dostave"
+
+msgctxt "view:purchase.line:"
 msgid "General"
 msgstr "Splošno"
 
@@ -1161,12 +1237,10 @@ msgctxt "view:purchase.purchase:"
 msgid "Quote"
 msgstr "Ponudba"
 
-#, fuzzy
 msgctxt "view:stock.move:"
 msgid "Cancel"
 msgstr "Prekliči"
 
-#, fuzzy
 msgctxt "view:stock.move:"
 msgid "Reset to Draft"
 msgstr "Ponastavitev"
diff --git a/locale/zh_CN.po b/locale/zh_CN.po
index d57e3d5..a0ba9ed 100644
--- a/locale/zh_CN.po
+++ b/locale/zh_CN.po
@@ -16,7 +16,7 @@ msgid ""
 msgstr ""
 
 msgctxt "error:purchase.line:"
-msgid "Purchase \"%(purchase)s\" misses an \"account expense\" default property."
+msgid "Purchase \"%(purchase)s\" misses a default \"account expense\"."
 msgstr ""
 
 msgctxt "error:purchase.line:"
@@ -61,6 +61,10 @@ msgctxt "field:product.product,purchasable:"
 msgid "Purchasable"
 msgstr ""
 
+msgctxt "field:product.product,purchase_price_uom:"
+msgid "Purchase Price"
+msgstr ""
+
 msgctxt "field:product.product,purchase_uom:"
 msgid "Purchase UOM"
 msgstr ""
@@ -115,6 +119,79 @@ msgctxt "field:purchase.configuration,write_uid:"
 msgid "Write User"
 msgstr "写入帐号"
 
+#, fuzzy
+msgctxt "field:purchase.configuration.purchase_method,create_date:"
+msgid "Create Date"
+msgstr "创建日期:"
+
+#, fuzzy
+msgctxt "field:purchase.configuration.purchase_method,create_uid:"
+msgid "Create User"
+msgstr "添加用户"
+
+#, fuzzy
+msgctxt "field:purchase.configuration.purchase_method,id:"
+msgid "ID"
+msgstr "编号"
+
+msgctxt ""
+"field:purchase.configuration.purchase_method,purchase_invoice_method:"
+msgid "Invoice Method"
+msgstr ""
+
+#, fuzzy
+msgctxt "field:purchase.configuration.purchase_method,rec_name:"
+msgid "Name"
+msgstr "纳木"
+
+#, fuzzy
+msgctxt "field:purchase.configuration.purchase_method,write_date:"
+msgid "Write Date"
+msgstr "写入日期"
+
+#, fuzzy
+msgctxt "field:purchase.configuration.purchase_method,write_uid:"
+msgid "Write User"
+msgstr "写入帐号"
+
+msgctxt "field:purchase.configuration.sequence,company:"
+msgid "Company"
+msgstr ""
+
+#, fuzzy
+msgctxt "field:purchase.configuration.sequence,create_date:"
+msgid "Create Date"
+msgstr "创建日期:"
+
+#, fuzzy
+msgctxt "field:purchase.configuration.sequence,create_uid:"
+msgid "Create User"
+msgstr "添加用户"
+
+#, fuzzy
+msgctxt "field:purchase.configuration.sequence,id:"
+msgid "ID"
+msgstr "编号"
+
+msgctxt "field:purchase.configuration.sequence,purchase_sequence:"
+msgid "Purchase Sequence"
+msgstr ""
+
+#, fuzzy
+msgctxt "field:purchase.configuration.sequence,rec_name:"
+msgid "Name"
+msgstr "纳木"
+
+#, fuzzy
+msgctxt "field:purchase.configuration.sequence,write_date:"
+msgid "Write Date"
+msgstr "写入日期"
+
+#, fuzzy
+msgctxt "field:purchase.configuration.sequence,write_uid:"
+msgid "Write User"
+msgstr "写入帐号"
+
 msgctxt "field:purchase.handle.invoice.exception.ask,domain_invoices:"
 msgid "Domain Invoices"
 msgstr ""
@@ -159,6 +236,14 @@ msgctxt "field:purchase.line,delivery_date:"
 msgid "Delivery Date"
 msgstr ""
 
+msgctxt "field:purchase.line,delivery_date_edit:"
+msgid "Edit Delivery Date"
+msgstr ""
+
+msgctxt "field:purchase.line,delivery_date_store:"
+msgid "Delivery Date"
+msgstr ""
+
 #, fuzzy
 msgctxt "field:purchase.line,description:"
 msgid "Description"
@@ -523,6 +608,10 @@ msgctxt "field:purchase.purchase,currency_digits:"
 msgid "Currency Digits"
 msgstr ""
 
+msgctxt "field:purchase.purchase,delivery_date:"
+msgid "Delivery Date"
+msgstr ""
+
 #, fuzzy
 msgctxt "field:purchase.purchase,description:"
 msgid "Description"
@@ -774,10 +863,18 @@ 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.line,delivery_date_edit:"
+msgid "Check to edit the delivery date."
+msgstr ""
+
 msgctxt "help:purchase.product_supplier.price,quantity:"
 msgid "Minimal quantity"
 msgstr ""
 
+msgctxt "help:purchase.purchase,delivery_date:"
+msgid "The default delivery date for each line."
+msgstr ""
+
 msgctxt "help:stock.location,supplier_return_location:"
 msgid "If empty the Storage location is used"
 msgstr ""
@@ -900,6 +997,14 @@ msgctxt "model:purchase.configuration,name:"
 msgid "Purchase Configuration"
 msgstr ""
 
+msgctxt "model:purchase.configuration.purchase_method,name:"
+msgid "Purchase Configuration Purchase Method"
+msgstr ""
+
+msgctxt "model:purchase.configuration.sequence,name:"
+msgid "Purchase Configuration Sequence"
+msgstr ""
+
 msgctxt "model:purchase.handle.invoice.exception.ask,name:"
 msgid "Handle Invoice Exception"
 msgstr ""
@@ -1027,18 +1132,6 @@ msgctxt "selection:account.invoice,purchase_exception_state:"
 msgid "Recreated"
 msgstr ""
 
-msgctxt "selection:purchase.configuration,purchase_invoice_method:"
-msgid "Based On Order"
-msgstr ""
-
-msgctxt "selection:purchase.configuration,purchase_invoice_method:"
-msgid "Based On Shipment"
-msgstr ""
-
-msgctxt "selection:purchase.configuration,purchase_invoice_method:"
-msgid "Manual"
-msgstr ""
-
 #, fuzzy
 msgctxt "selection:purchase.line,purchase_state:"
 msgid "Canceled"
@@ -1177,6 +1270,10 @@ msgctxt "view:purchase.handle.shipment.exception.ask:"
 msgid "Choose move to recreate"
 msgstr ""
 
+msgctxt "view:purchase.line:"
+msgid "Delivery Date"
+msgstr ""
+
 #, fuzzy
 msgctxt "view:purchase.line:"
 msgid "General"
diff --git a/party.xml b/party.xml
index 2d20034..285f699 100644
--- a/party.xml
+++ b/party.xml
@@ -7,7 +7,8 @@ this repository contains the full copyright notices and license terms. -->
             <field name="name">Purchases</field>
             <field name="res_model">purchase.purchase</field>
             <field name="domain"
-                eval="[('party', 'in', Eval('active_ids'))]" pyson="1"/>
+                eval="[If(Eval('active_ids', []) == [Eval('active_id')], ('party', '=', Eval('active_id')), ('party', 'in', Eval('active_ids')))]"
+                pyson="1"/>
         </record>
         <record model="ir.action.keyword"
                 id="act_open_purchase_keyword1">
diff --git a/product.py b/product.py
index ca70d50..fc01585 100644
--- a/product.py
+++ b/product.py
@@ -99,6 +99,14 @@ class Product:
     __metaclass__ = PoolMeta
     __name__ = 'product.product'
 
+    purchase_price_uom = fields.Function(fields.Numeric(
+            "Purchase Price", digits=price_digits), 'get_purchase_price_uom')
+
+    @classmethod
+    def get_purchase_price_uom(cls, products, name):
+        quantity = Transaction().context.get('quantity', 0)
+        return cls.get_purchase_price(products, quantity=quantity)
+
     @classmethod
     def get_purchase_price(cls, products, quantity=0):
         '''
@@ -135,20 +143,22 @@ class Product:
             default_uom = product.default_uom
             default_currency = (user.company.currency if user.company
                 else None)
-            if not uom:
-                uom = default_uom
+            if not uom or default_uom.category != uom.category:
+                product_uom = default_uom
+            else:
+                product_uom = uom
             pattern = ProductSupplier.get_pattern()
             for product_supplier in product.product_suppliers:
                 if product_supplier.match(pattern):
                     pattern = ProductSupplierPrice.get_pattern()
                     for price in product_supplier.prices:
-                        if price.match(quantity, uom, pattern):
+                        if price.match(quantity, product_uom, pattern):
                             prices[product.id] = price.unit_price
                             default_uom = product_supplier.uom
                             default_currency = product_supplier.currency
                     break
             prices[product.id] = Uom.compute_price(
-                default_uom, prices[product.id], uom)
+                default_uom, prices[product.id], product_uom)
             if currency and default_currency:
                 date = context.get('purchase_date') or today
                 with Transaction().set_context(date=date):
diff --git a/purchase.py b/purchase.py
index 1b3f177..942a668 100644
--- a/purchase.py
+++ b/purchase.py
@@ -139,6 +139,14 @@ class Purchase(Workflow, ModelSQL, ModelView, TaxableMixin):
     invoices_recreated = fields.Many2Many(
             'purchase.purchase-recreated-account.invoice',
             'purchase', 'invoice', 'Recreated Invoices', readonly=True)
+    delivery_date = fields.Date(
+        "Delivery Date",
+        states={
+            'readonly': Eval('state').in_([
+                    'processing', 'done', 'cancel']),
+            },
+        depends=['state'],
+        help="The default delivery date for each line.")
     shipment_state = fields.Selection([
             ('none', 'None'),
             ('waiting', 'Waiting'),
@@ -682,18 +690,17 @@ class Purchase(Workflow, ModelSQL, ModelView, TaxableMixin):
             self.raise_user_error('missing_account_payable',
                     error_args=(self.party.rec_name,))
 
-        invoice_lines = {}
+        invoice_lines = []
         for line in self.lines:
-            ilines = line.get_invoice_line()
-            if ilines:
-                invoice_lines[line.id] = ilines
+            invoice_lines.append(line.get_invoice_line())
+        invoice_lines = list(chain(*invoice_lines))
         if not invoice_lines:
             return
 
         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))
+        if getattr(invoice, 'lines', None):
+            invoice_lines = list(invoice.lines) + invoice_lines
+        invoice.lines = invoice_lines
         invoice.save()
 
         Invoice.update_taxes([invoice])
@@ -905,6 +912,13 @@ class PurchaseLine(sequence_ordered(), ModelSQL, ModelView):
             'stock_date_end': Eval('_parent_purchase', {}).get(
                 'purchase_date'),
             'stock_skip_warehouse': True,
+            # From _get_context_purchase_price
+            'currency': Eval('_parent_purchase', {}).get('currency'),
+            'supplier': Eval('_parent_purchase', {}).get('party'),
+            'purchase_date': Eval('_parent_purchase', {}).get('purchase_date'),
+            'uom': Eval('unit'),
+            'taxes': Eval('taxes', []),
+            'quantity': Eval('quantity'),
             }, depends=['type', 'purchase_state'])
     product_uom_category = fields.Function(
         fields.Many2One('product.uom.category', 'Product Uom Category'),
@@ -957,10 +971,29 @@ class PurchaseLine(sequence_ordered(), ModelSQL, ModelView):
             'To Location'), 'get_to_location')
     delivery_date = fields.Function(fields.Date('Delivery Date',
             states={
-                'invisible': Eval('type') != 'line',
+                'invisible': ((Eval('type') != 'line')
+                    | Eval('delivery_date_edit', False)),
                 },
-            depends=['type']),
+            depends=['type', 'delivery_date_edit']),
         'on_change_with_delivery_date')
+    delivery_date_edit = fields.Boolean(
+        "Edit Delivery Date",
+        states={
+            'invisible': Eval('type') != 'line',
+            'readonly': Eval('purchase_state').in_([
+                    'processing', 'done', 'cancel']),
+            },
+        depends=['type', 'purchase_state'],
+        help="Check to edit the delivery date.")
+    delivery_date_store = fields.Date(
+        "Delivery Date",
+        states={
+            'invisible': ((Eval('type') != 'line')
+                | ~Eval('delivery_date_edit', False)),
+            'readonly': Eval('purchase_state').in_([
+                    'processing', 'done', 'cancel']),
+            },
+        depends=['type', 'delivery_date_edit', 'purchase_state'])
     purchase_state = fields.Function(
         fields.Selection(STATES, 'Purchase State'),
         'on_change_with_purchase_state')
@@ -973,8 +1006,8 @@ class PurchaseLine(sequence_ordered(), ModelSQL, ModelView):
                     'misses the supplier location for line "%(line)s".'),
                 'missing_account_expense': ('Product "%(product)s" of '
                     'purchase %(purchase)s misses an expense account.'),
-                'missing_account_expense_property': ('Purchase "%(purchase)s" '
-                    'misses an "account expense" default property.'),
+                'missing_default_account_expense': ('Purchase "%(purchase)s" '
+                    'misses a default "account expense".'),
                 })
 
     @classmethod
@@ -999,26 +1032,33 @@ class PurchaseLine(sequence_ordered(), ModelSQL, ModelView):
     def default_type():
         return 'line'
 
-    def get_move_done(self, name):
-        Uom = Pool().get('product.uom')
-        done = True
+    @classmethod
+    def default_delivery_date_edit(cls):
+        return False
+
+    @property
+    def _move_remaining_quantity(self):
+        "Compute the remaining quantity to receive"
+        pool = Pool()
+        Uom = pool.get('product.uom')
         if self.type != 'line' or not self.product:
-            return True
+            return
         if self.product.type == 'service':
-            return True
-        skip_ids = set(x.id for x in self.moves_recreated
-            + self.moves_ignored)
-        quantity = self.quantity
+            return
+        skip_ids = set(x.id for x in self.moves_ignored)
+        skip_ids.update(x.id for x in self.moves_recreated)
+        quantity = abs(self.quantity)
         for move in self.moves:
-            if move.state != 'done' \
-                    and move.id not in skip_ids:
-                done = False
-                break
-            quantity -= Uom.compute_qty(move.uom, move.quantity, self.unit)
-        if done:
-            if self.unit.round(quantity) > 0.0:
-                done = False
-        return done
+            if move.state == 'done' or move.id in skip_ids:
+                quantity -= Uom.compute_qty(move.uom, move.quantity, self.unit)
+        return quantity
+
+    def get_move_done(self, name):
+        quantity = self._move_remaining_quantity
+        if quantity is None:
+            return True
+        else:
+            return self.unit.round(quantity) <= 0
 
     def get_move_exception(self, name):
         skip_ids = set(x.id for x in self.moves_ignored
@@ -1083,7 +1123,7 @@ class PurchaseLine(sequence_ordered(), ModelSQL, ModelView):
                 if tax_ids:
                     taxes.extend(tax_ids)
                 continue
-            taxes.append(tax)
+            taxes.append(tax.id)
         if party and party.supplier_tax_rule:
             tax_ids = party.supplier_tax_rule.apply(None, pattern)
             if tax_ids:
@@ -1180,7 +1220,9 @@ class PurchaseLine(sequence_ordered(), ModelSQL, ModelView):
             return self.purchase.party.supplier_location.id
 
     @fields.depends('product', 'quantity', 'moves',
-        '_parent_purchase.purchase_date', '_parent_purchase.party')
+        '_parent_purchase.purchase_date', '_parent_purchase.party',
+        'delivery_date_edit', 'delivery_date_store',
+        '_parent_purchase.delivery_date')
     def on_change_with_delivery_date(self, name=None):
         if self.moves:
             dates = filter(
@@ -1189,6 +1231,10 @@ class PurchaseLine(sequence_ordered(), ModelSQL, ModelView):
                 return min(dates)
             else:
                 return
+        if self.delivery_date_edit:
+            return self.delivery_date_store
+        if self.purchase and self.purchase.delivery_date:
+            return self.purchase.delivery_date
         if (self.product
                 and self.quantity is not None
                 and self.quantity > 0
@@ -1211,8 +1257,9 @@ class PurchaseLine(sequence_ordered(), ModelSQL, ModelView):
     def get_invoice_line(self):
         'Return a list of invoice line for purchase line'
         pool = Pool()
-        Property = pool.get('ir.property')
         InvoiceLine = pool.get('account.invoice.line')
+        AccountConfiguration = pool.get('account.configuration')
+        account_config = AccountConfiguration(1)
 
         invoice_line = InvoiceLine()
         invoice_line.type = self.type
@@ -1248,12 +1295,13 @@ class PurchaseLine(sequence_ordered(), ModelSQL, ModelView):
                         'purchase': self.purchase.rec_name,
                         })
         else:
-            for model in ('product.template', 'product.category'):
-                invoice_line.account = Property.get('account_expense', model)
+            for name in ['default_product_account_expense',
+                    'default_category_account_expense']:
+                invoice_line.account = account_config.get_multivalue(name)
                 if invoice_line.account:
                     break
             if not invoice_line.account:
-                self.raise_user_error('missing_account_expense_property',
+                self.raise_user_error('missing_default_account_expense',
                     {'purchase': self.purchase.rec_name})
         invoice_line.stock_moves = self._get_invoice_line_moves()
         return [invoice_line]
@@ -1378,7 +1426,11 @@ class PurchaseLine(sequence_ordered(), ModelSQL, ModelView):
     def view_attributes(cls):
         return [
             ('/form//field[@name="note"]|/form//field[@name="description"]',
-                'spell', Eval('_parent_purchase', {}).get('party_lang'))]
+                'spell', Eval('_parent_purchase', {}).get('party_lang')),
+            ('//label[@id="delivery_date"]', 'states', {
+                    'invisible': Eval('type') != 'line',
+                    }),
+            ]
 
     @classmethod
     def copy(cls, lines, default=None):
@@ -1581,19 +1633,13 @@ class HandleInvoiceException(Wizard):
 
     def transition_handle(self):
         Purchase = Pool().get('purchase.purchase')
-        to_recreate = self.ask.recreate_invoices
-        domain_invoices = self.ask.domain_invoices
 
         purchase = Purchase(Transaction().context['active_id'])
 
-        skip = set(purchase.invoices_ignored)
-        skip.update(purchase.invoices_recreated)
         invoices_ignored = []
         invoices_recreated = []
-        for invoice in purchase.invoices:
-            if invoice not in domain_invoices or invoice in skip:
-                continue
-            if invoice in to_recreate:
+        for invoice in self.ask.domain_invoices:
+            if invoice in self.ask.recreate_invoices:
                 invoices_recreated.append(invoice.id)
             else:
                 invoices_ignored.append(invoice.id)
diff --git a/purchase.xml b/purchase.xml
index 22504b6..531d0f6 100644
--- a/purchase.xml
+++ b/purchase.xml
@@ -70,7 +70,7 @@ this repository contains the full copyright notices and license terms. -->
             <field name="name">Shipments</field>
             <field name="res_model">stock.shipment.in</field>
             <field name="domain"
-                eval="[('moves.purchase', 'in', Eval('active_ids'))]"
+                eval="[If(Eval('active_ids', []) == [Eval('active_id')], ('moves.purchase', '=', Eval('active_id')), ('moves.purchase', 'in', Eval('active_ids')))]"
                 pyson="1"/>
         </record>
         <record model="ir.action.keyword"
@@ -83,7 +83,7 @@ this repository contains the full copyright notices and license terms. -->
             <field name="name">Returns</field>
             <field name="res_model">stock.shipment.in.return</field>
             <field name="domain"
-                eval="[('moves.purchase', 'in', Eval('active_ids'))]"
+                eval="[If(Eval('active_ids', []) == [Eval('active_id')], ('moves.purchase', '=', Eval('active_id')), ('moves.purchase', 'in', Eval('active_ids')))]"
                 pyson="1"/>
         </record>
         <record model="ir.action.keyword"
@@ -97,7 +97,7 @@ this repository contains the full copyright notices and license terms. -->
             <field name="res_model">account.invoice</field>
             <field name="context"></field>
             <field name="domain"
-                eval="[('lines.origin.purchase.id', 'in', Eval('active_ids'), 'purchase.line')]"
+                eval="[If(Eval('active_ids', []) == [Eval('active_id')], ('lines.origin.purchase.id', '=', Eval('active_id'), 'purchase.line'), ('lines.origin.purchase.id', 'in', Eval('active_ids'), 'purchase.line'))]"
                 pyson="1"/>
         </record>
         <record model="ir.action.keyword"
@@ -184,7 +184,8 @@ this repository contains the full copyright notices and license terms. -->
             <field name="name">Purchases</field>
             <field name="res_model">purchase.purchase</field>
             <field name="domain"
-                eval="[('invoices', 'in', Eval('active_ids'))]" pyson="1"/>
+                eval="[If(Eval('active_ids', []) == [Eval('active_id')], ('invoices', '=', Eval('active_id')), ('invoices', 'in', Eval('active_ids')))]"
+                pyson="1"/>
         </record>
         <record model="ir.action.act_window.view"
             id="act_purchase_invoice_relate_view1">
@@ -461,7 +462,7 @@ this repository contains the full copyright notices and license terms. -->
             <field name="name">Prices</field>
             <field name="res_model">purchase.product_supplier.price</field>
             <field name="domain"
-                eval="[('product_supplier', 'in', Eval('active_ids'))]"
+                eval="[If(Eval('active_ids', []) == [Eval('active_id')], ('product_supplier', '=', Eval('active_id')), ('product_supplier', 'in', Eval('active_ids')))]"
                 pyson="1"/>
         </record>
         <record model="ir.action.keyword"
diff --git a/setup.py b/setup.py
index cf21f9c..6ba9183 100644
--- a/setup.py
+++ b/setup.py
@@ -85,7 +85,7 @@ setup(name=name,
         'Intended Audience :: Developers',
         'Intended Audience :: Financial and Insurance Industry',
         'Intended Audience :: Legal Industry',
-        'License :: OSI Approved :: GNU General Public License (GPL)',
+        'License :: OSI Approved :: GNU General Public License v3 or later (GPLv3+)',
         'Natural Language :: Bulgarian',
         'Natural Language :: Catalan',
         'Natural Language :: Chinese (Simplified)',
diff --git a/stock.py b/stock.py
index 191e829..3ad00c7 100644
--- a/stock.py
+++ b/stock.py
@@ -1,23 +1,18 @@
 # This file is part of Tryton.  The COPYRIGHT file at the top level of
 # this repository contains the full copyright notices and license terms.
-import datetime
-
 from sql import Null
 from sql.aggregate import Max
 from sql.operators import Concat
 
 from trytond.model import Workflow, ModelView, fields
 from trytond.pyson import Eval
-from trytond.wizard import Wizard
 from trytond.pool import Pool, PoolMeta
 from trytond.transaction import Transaction
-from trytond.pyson import PYSONDecoder, PYSONEncoder
 from trytond import backend
 
 from trytond.modules.product import price_digits
 
-__all__ = ['ShipmentIn', 'ShipmentInReturn', 'Move', 'Location',
-    'OpenProductQuantitiesByWarehouse']
+__all__ = ['ShipmentIn', 'ShipmentInReturn', 'Move', 'Location']
 
 
 class ShipmentIn:
@@ -295,7 +290,8 @@ class Move:
         PurchaseLine = pool.get('purchase.line')
         name = super(Move, self).origin_name
         if isinstance(self.origin, PurchaseLine):
-            name = self.origin.purchase.rec_name
+            name = (self.origin.purchase.reference
+                or self.origin.purchase.rec_name)
         return name
 
     @classmethod
@@ -358,29 +354,3 @@ class Location:
             ],
         depends=['type', 'active', 'id'],
         help='If empty the Storage location is used')
-
-
-class OpenProductQuantitiesByWarehouse(Wizard):
-    __name__ = 'stock.product_quantities_warehouse'
-
-    def do_open_(self, action):
-        Product = Pool().get('product.product')
-
-        action, data = super(OpenProductQuantitiesByWarehouse,
-            self).do_open_(action)
-
-        product = Product(Transaction().context['active_id'])
-        if product.product_suppliers:
-            product_supplier = product.product_suppliers[0]
-            supply_date = product_supplier.compute_supply_date()
-            if supply_date != datetime.date.max:
-                search_value = \
-                    PYSONDecoder().decode(action['pyson_search_value'])
-                clause = ('date', '<=', supply_date)
-                if search_value and search_value[0] != 'OR':
-                    search_value.append(clause)
-                else:
-                    search_value = [search_value, clause]
-                action['pyson_search_value'] = PYSONEncoder().encode(
-                    search_value)
-        return action, data
diff --git a/tests/scenario_purchase.rst b/tests/scenario_purchase.rst
index 33195ba..b289639 100644
--- a/tests/scenario_purchase.rst
+++ b/tests/scenario_purchase.rst
@@ -184,6 +184,10 @@ Purchase 5 products::
     (Decimal('25.00'), Decimal('2.50'), Decimal('27.50'))
     >>> purchase.state
     u'processing'
+    >>> purchase.shipment_state
+    u'waiting'
+    >>> purchase.invoice_state
+    u'waiting'
     >>> len(purchase.moves), len(purchase.shipment_returns), len(purchase.invoices)
     (2, 0, 1)
     >>> invoice, = purchase.invoices
@@ -214,6 +218,10 @@ Post invoice and check no new invoices::
     >>> invoice.click('post')
     >>> config.user = purchase_user.id
     >>> purchase.reload()
+    >>> purchase.shipment_state
+    u'waiting'
+    >>> purchase.invoice_state
+    u'waiting'
     >>> len(purchase.moves), len(purchase.shipment_returns), len(purchase.invoices)
     (2, 0, 1)
 
@@ -239,6 +247,12 @@ Purchase 5 products with an invoice method 'on shipment'::
     >>> purchase.click('quote')
     >>> purchase.click('confirm')
     >>> purchase.click('process')
+    >>> purchase.state
+    u'processing'
+    >>> purchase.shipment_state
+    u'waiting'
+    >>> purchase.invoice_state
+    u'none'
     >>> len(purchase.moves), len(purchase.shipment_returns), len(purchase.invoices)
     (2, 0, 0)
 
@@ -267,12 +281,16 @@ Validate Shipments::
     >>> shipment.click('receive')
     >>> shipment.click('done')
     >>> purchase.reload()
+    >>> purchase.shipment_state
+    u'received'
     >>> len(purchase.shipments), len(purchase.shipment_returns)
     (1, 0)
 
 Open supplier invoice::
 
     >>> config.user = purchase_user.id
+    >>> purchase.invoice_state
+    u'waiting'
     >>> invoice, = purchase.invoices
     >>> config.user = account_user.id
     >>> invoice = Invoice(invoice.id)
@@ -331,7 +349,10 @@ Create a Return::
     >>> return_.click('process')
     >>> return_.state
     u'processing'
-    >>> return_.reload()
+    >>> return_.shipment_state
+    u'waiting'
+    >>> return_.invoice_state
+    u'none'
     >>> (len(return_.shipments), len(return_.shipment_returns),
     ...     len(return_.invoices))
     (0, 1, 0)
@@ -353,7 +374,14 @@ Check Return Shipments::
     >>> ship_return.click('done')
     >>> ship_return.state
     u'done'
+    >>> config.user = purchase_user.id
     >>> return_.reload()
+    >>> return_.state
+    u'processing'
+    >>> return_.shipment_state
+    u'received'
+    >>> return_.invoice_state
+    u'waiting'
 
 Open supplier credit note::
 
@@ -394,7 +422,10 @@ Mixing return and purchase::
     >>> mix.click('process')
     >>> mix.state
     u'processing'
-    >>> mix.reload()
+    >>> mix.shipment_state
+    u'waiting'
+    >>> mix.invoice_state
+    u'waiting'
     >>> len(mix.moves), len(mix.shipment_returns), len(mix.invoices)
     (2, 1, 1)
 
@@ -465,7 +496,10 @@ Mixing stuff with an invoice method 'on shipment'::
     >>> mix.click('process')
     >>> mix.state
     u'processing'
-    >>> mix.reload()
+    >>> mix.shipment_state
+    u'waiting'
+    >>> mix.invoice_state
+    u'none'
     >>> len(mix.moves), len(mix.shipment_returns), len(mix.invoices)
     (2, 1, 0)
 
@@ -511,6 +545,10 @@ Purchase services::
     >>> service_purchase.click('process')
     >>> service_purchase.state
     u'processing'
+    >>> service_purchase.shipment_state
+    u'none'
+    >>> service_purchase.invoice_state
+    u'waiting'
     >>> service_invoice, = service_purchase.invoices
 
 Pay the service invoice::
@@ -537,7 +575,7 @@ Check service purchase states::
     >>> service_purchase.state
     u'done'
 
-Create a purchase to be invoiced on shipment partialy and check correctly
+Create a purchase to be invoiced on shipment partially and check correctly
 linked to invoices::
 
     >>> purchase = Purchase()
@@ -573,3 +611,26 @@ linked to invoices::
     5.0
     >>> stock_move.state
     u'done'
+
+Deleting a line from a invoice should recreate it::
+
+    >>> purchase = Purchase()
+    >>> purchase.party = customer
+    >>> line = purchase.lines.new()
+    >>> line.product = product
+    >>> line.quantity = 10.0
+    >>> purchase.click('quote')
+    >>> purchase.click('confirm')
+    >>> purchase.click('process')
+    >>> invoice, = purchase.invoices
+    >>> config.user = account_user.id
+    >>> invoice_line, = invoice.lines
+    >>> invoice.lines.remove(invoice_line)
+    >>> invoice.invoice_date = today
+    >>> invoice.click('post')
+    >>> config.user = purchase_user.id
+    >>> purchase.reload()
+    >>> new_invoice, = purchase.invoices
+    >>> new_invoice.number
+    >>> len(new_invoice.lines)
+    1
diff --git a/tryton.cfg b/tryton.cfg
index cf8add7..d3b8d07 100644
--- a/tryton.cfg
+++ b/tryton.cfg
@@ -1,5 +1,5 @@
 [tryton]
-version=4.2.1
+version=4.4.0
 depends:
     account
     account_invoice
diff --git a/trytond_purchase.egg-info/PKG-INFO b/trytond_purchase.egg-info/PKG-INFO
index 1bdff14..3d8b592 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: 4.2.1
+Version: 4.4.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/4.2/
+Download-URL: http://downloads.tryton.org/4.4/
 Description: trytond_purchase
         ================
         
@@ -51,7 +51,7 @@ Classifier: Framework :: Tryton
 Classifier: Intended Audience :: Developers
 Classifier: Intended Audience :: Financial and Insurance Industry
 Classifier: Intended Audience :: Legal Industry
-Classifier: License :: OSI Approved :: GNU General Public License (GPL)
+Classifier: License :: OSI Approved :: GNU General Public License v3 or later (GPLv3+)
 Classifier: Natural Language :: Bulgarian
 Classifier: Natural Language :: Catalan
 Classifier: Natural Language :: Chinese (Simplified)
diff --git a/trytond_purchase.egg-info/requires.txt b/trytond_purchase.egg-info/requires.txt
index 6007097..5cb2b44 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 >= 4.2, < 4.3
-trytond_account_invoice >= 4.2, < 4.3
-trytond_account_invoice_stock >= 4.2, < 4.3
-trytond_account_product >= 4.2, < 4.3
-trytond_company >= 4.2, < 4.3
-trytond_currency >= 4.2, < 4.3
-trytond_party >= 4.2, < 4.3
-trytond_product >= 4.2, < 4.3
-trytond_stock >= 4.2, < 4.3
-trytond >= 4.2, < 4.3
+trytond_account >= 4.4, < 4.5
+trytond_account_invoice >= 4.4, < 4.5
+trytond_account_invoice_stock >= 4.4, < 4.5
+trytond_account_product >= 4.4, < 4.5
+trytond_company >= 4.4, < 4.5
+trytond_currency >= 4.4, < 4.5
+trytond_party >= 4.4, < 4.5
+trytond_product >= 4.4, < 4.5
+trytond_stock >= 4.4, < 4.5
+trytond >= 4.4, < 4.5
diff --git a/view/product_list_purchase_line.xml b/view/product_list_purchase_line.xml
index f4af523..c41f5ac 100644
--- a/view/product_list_purchase_line.xml
+++ b/view/product_list_purchase_line.xml
@@ -4,8 +4,9 @@ this repository contains the full copyright notices and license terms. -->
 <tree>
     <field name="code"/>
     <field name="name"/>
-    <field name="list_price_uom"/>
+    <field name="purchase_price_uom"/>
     <field name="cost_price_uom"/>
+    <field name="list_price_uom"/>
     <field name="quantity"/>
     <field name="forecast_quantity"/>
     <field name="default_uom"/>
diff --git a/view/purchase_form.xml b/view/purchase_form.xml
index 6b779a2..a7d55fd 100644
--- a/view/purchase_form.xml
+++ b/view/purchase_form.xml
@@ -39,7 +39,7 @@ this repository contains the full copyright notices and license terms. -->
                 <field name="tax_amount" xalign="1.0" xexpand="0"/>
                 <label name="total_amount" xalign="1.0" xexpand="1"/>
                 <field name="total_amount" xalign="1.0" xexpand="0"/>
-                <group col="6" colspan="2" id="buttons">
+                <group col="-1" colspan="2" id="buttons">
                     <button name="cancel" string="Cancel"
                         icon="tryton-cancel"/>
                     <button name="draft" string="Draft"/>
@@ -61,8 +61,11 @@ this repository contains the full copyright notices and license terms. -->
         <page string="Other Info" id="info">
             <label name="company"/>
             <field name="company"/>
+            <newline/>
             <label name="invoice_method"/>
             <field name="invoice_method"/>
+            <label name="delivery_date"/>
+            <field name="delivery_date"/>
             <separator name="comment" colspan="4"/>
             <field name="comment" colspan="4"/>
         </page>
diff --git a/view/purchase_line_form.xml b/view/purchase_line_form.xml
index 6e5c8fc..7411852 100644
--- a/view/purchase_line_form.xml
+++ b/view/purchase_line_form.xml
@@ -24,8 +24,12 @@ this repository contains the full copyright notices and license terms. -->
             <field name="unit_price"/>
             <label name="amount"/>
             <field name="amount"/>
-            <label name="delivery_date"/>
-            <field name="delivery_date"/>
+            <label id="delivery_date" string="Delivery Date"/>
+            <group id="delivery_date" col="-1">
+                <field name="delivery_date" xexpand="0"/>
+                <field name="delivery_date_store" xexpand="0"/>
+                <field name="delivery_date_edit" xexpand="0"/>
+            </group>
         </page>
         <page string="Taxes" id="taxes">
             <field name="taxes" colspan="4"/>
diff --git a/view/template_form.xml b/view/template_form.xml
index 6bdc573..e7931d5 100644
--- a/view/template_form.xml
+++ b/view/template_form.xml
@@ -3,10 +3,10 @@
 this repository contains the full copyright notices and license terms. -->
 <data>
     <xpath
-        expr="/form/notebook/page[@id='general']/field[@name='cost_price_method']"
-        position="after">
+        expr="/form/notebook/page[@id='general']/group[@id='checkboxes']"
+        position="inside">
         <label name="purchasable"/>
-        <field name="purchasable"/>
+        <field name="purchasable" xexpand="0" width="25"/>
     </xpath>
     <xpath expr="/form/notebook/page[@id='general']" position="after">
         <page string="Suppliers" id="suppliers">
-- 
tryton-modules-purchase



More information about the tryton-debian-vcs mailing list