From 8f1fe299483c6c16a8a4ec1ded288b6da2cf2e0b Mon Sep 17 00:00:00 2001
From: Lois Rilo
Date: Fri, 5 Jul 2024 09:52:02 +0200
Subject: [PATCH 01/10] [ADD] purchase_order_line_original_date
---
purchase_order_line_original_date/README.rst | 101 ++++
purchase_order_line_original_date/__init__.py | 1 +
.../__manifest__.py | 19 +
.../models/__init__.py | 2 +
.../models/purchase_order.py | 34 ++
.../models/purchase_order_line.py | 15 +
.../readme/CONTRIBUTORS.rst | 3 +
.../readme/DESCRIPTION.rst | 8 +
.../readme/USAGE.rst | 4 +
.../static/description/icon.png | Bin 0 -> 9455 bytes
.../static/description/index.html | 444 ++++++++++++++++++
.../tests/__init__.py | 1 +
.../test_purchase_order_line_original_date.py | 66 +++
.../views/purchase_order_line_views.xml | 29 ++
.../views/purchase_order_views.xml | 23 +
15 files changed, 750 insertions(+)
create mode 100644 purchase_order_line_original_date/README.rst
create mode 100644 purchase_order_line_original_date/__init__.py
create mode 100644 purchase_order_line_original_date/__manifest__.py
create mode 100644 purchase_order_line_original_date/models/__init__.py
create mode 100644 purchase_order_line_original_date/models/purchase_order.py
create mode 100644 purchase_order_line_original_date/models/purchase_order_line.py
create mode 100644 purchase_order_line_original_date/readme/CONTRIBUTORS.rst
create mode 100644 purchase_order_line_original_date/readme/DESCRIPTION.rst
create mode 100644 purchase_order_line_original_date/readme/USAGE.rst
create mode 100644 purchase_order_line_original_date/static/description/icon.png
create mode 100644 purchase_order_line_original_date/static/description/index.html
create mode 100644 purchase_order_line_original_date/tests/__init__.py
create mode 100644 purchase_order_line_original_date/tests/test_purchase_order_line_original_date.py
create mode 100644 purchase_order_line_original_date/views/purchase_order_line_views.xml
create mode 100644 purchase_order_line_original_date/views/purchase_order_views.xml
diff --git a/purchase_order_line_original_date/README.rst b/purchase_order_line_original_date/README.rst
new file mode 100644
index 00000000000..cf948770737
--- /dev/null
+++ b/purchase_order_line_original_date/README.rst
@@ -0,0 +1,101 @@
+=================================
+Purchase Order Line Original Date
+=================================
+
+..
+ !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
+ !! This file is generated by oca-gen-addon-readme !!
+ !! changes will be overwritten. !!
+ !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
+ !! source digest: sha256:c363e3fd6d3126c1f211ed678f57453c96815d5968673d1929cb9ac5f754018a
+ !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
+
+.. |badge1| image:: https://img.shields.io/badge/maturity-Beta-yellow.png
+ :target: https://odoo-community.org/page/development-status
+ :alt: Beta
+.. |badge2| image:: https://img.shields.io/badge/licence-LGPL--3-blue.png
+ :target: http://www.gnu.org/licenses/lgpl-3.0-standalone.html
+ :alt: License: LGPL-3
+.. |badge3| image:: https://img.shields.io/badge/github-OCA%2Fpurchase--workflow-lightgray.png?logo=github
+ :target: https://github.com/OCA/purchase-workflow/tree/15.0/purchase_order_line_original_date
+ :alt: OCA/purchase-workflow
+.. |badge4| image:: https://img.shields.io/badge/weblate-Translate%20me-F47D42.png
+ :target: https://translation.odoo-community.org/projects/purchase-workflow-15-0/purchase-workflow-15-0-purchase_order_line_original_date
+ :alt: Translate me on Weblate
+.. |badge5| image:: https://img.shields.io/badge/runboat-Try%20me-875A7B.png
+ :target: https://runboat.odoo-community.org/builds?repo=OCA/purchase-workflow&target_branch=15.0
+ :alt: Try me on Runboat
+
+|badge1| |badge2| |badge3| |badge4| |badge5|
+
+This module adds the *Original Delivery Date* to Purchase Order lines. This is
+useful for past analysis and vendor performance reports.
+
+In standard Odoo, once a PO is confirmed with delivery dates on its lines, this
+dates can still change to reflect changes in the planning (e.g. you receive a
+notification from your supplier that goods will arrive a couple of days later).
+In such situation you lost precious information of the original delivery dates
+that can be used to compute the real delay in the receipt from your supplier.
+
+**Table of contents**
+
+.. contents::
+ :local:
+
+Usage
+=====
+
+#. Create a new PO and assign an delivery dates to its lines.
+#. Confirm the PO.
+#. Change the delivery date of some lines.
+#. Original delivery date is kept unchanged.
+
+Bug Tracker
+===========
+
+Bugs are tracked on `GitHub Issues `_.
+In case of trouble, please check there if your issue has already been reported.
+If you spotted it first, help us to smash it by providing a detailed and welcomed
+`feedback `_.
+
+Do not contact contributors directly about support or help with technical issues.
+
+Credits
+=======
+
+Authors
+~~~~~~~
+
+* ForgeFlow
+
+Contributors
+~~~~~~~~~~~~
+
+* `ForgeFlow `_:
+
+ * Lois Rilo Antelo
+
+Maintainers
+~~~~~~~~~~~
+
+This module is maintained by the OCA.
+
+.. image:: https://odoo-community.org/logo.png
+ :alt: Odoo Community Association
+ :target: https://odoo-community.org
+
+OCA, or the Odoo Community Association, is a nonprofit organization whose
+mission is to support the collaborative development of Odoo features and
+promote its widespread use.
+
+.. |maintainer-LoisRForgeFlow| image:: https://github.com/LoisRForgeFlow.png?size=40px
+ :target: https://github.com/LoisRForgeFlow
+ :alt: LoisRForgeFlow
+
+Current `maintainer `__:
+
+|maintainer-LoisRForgeFlow|
+
+This module is part of the `OCA/purchase-workflow `_ project on GitHub.
+
+You are welcome to contribute. To learn how please visit https://odoo-community.org/page/Contribute.
diff --git a/purchase_order_line_original_date/__init__.py b/purchase_order_line_original_date/__init__.py
new file mode 100644
index 00000000000..0650744f6bc
--- /dev/null
+++ b/purchase_order_line_original_date/__init__.py
@@ -0,0 +1 @@
+from . import models
diff --git a/purchase_order_line_original_date/__manifest__.py b/purchase_order_line_original_date/__manifest__.py
new file mode 100644
index 00000000000..f07055d3df6
--- /dev/null
+++ b/purchase_order_line_original_date/__manifest__.py
@@ -0,0 +1,19 @@
+# Copyright 2024 ForgeFlow S.L. (https://www.forgeflow.com)
+# License LGPL-3.0 or later (http://www.gnu.org/licenses/lgpl.html).
+
+{
+ "name": "Purchase Order Line Original Date",
+ "summary": "adds the Original Delivery Date to PO lines.",
+ "version": "15.0.1.0.0",
+ "category": "Purchase Management",
+ "maintainers": ["LoisRForgeFlow"],
+ "website": "https://github.com/OCA/purchase-workflow",
+ "author": "ForgeFlow, Odoo Community Association (OCA)",
+ "license": "LGPL-3",
+ "installable": True,
+ "depends": ["purchase"],
+ "data": [
+ "views/purchase_order_line_views.xml",
+ "views/purchase_order_views.xml",
+ ],
+}
diff --git a/purchase_order_line_original_date/models/__init__.py b/purchase_order_line_original_date/models/__init__.py
new file mode 100644
index 00000000000..876d2185368
--- /dev/null
+++ b/purchase_order_line_original_date/models/__init__.py
@@ -0,0 +1,2 @@
+from . import purchase_order_line
+from . import purchase_order
diff --git a/purchase_order_line_original_date/models/purchase_order.py b/purchase_order_line_original_date/models/purchase_order.py
new file mode 100644
index 00000000000..e32f5477ca8
--- /dev/null
+++ b/purchase_order_line_original_date/models/purchase_order.py
@@ -0,0 +1,34 @@
+# Copyright 2024 ForgeFlow S.L. (https://www.forgeflow.com)
+# License LGPL-3.0 or later (http://www.gnu.org/licenses/lgpl.html).
+
+from odoo import api, fields, models
+
+
+class PurchaseOrder(models.Model):
+ _inherit = "purchase.order"
+
+ original_date_planned = fields.Datetime(
+ string="Original Receipt Date",
+ compute="_compute_original_date_planned",
+ store=True,
+ readonly=True,
+ tracking=True,
+ help="Original Delivery date promised by vendor at PO confirmation.",
+ )
+
+ @api.depends("order_line.original_date_planned")
+ def _compute_original_date_planned(self):
+ for order in self:
+ dates_list = order.order_line.filtered(
+ lambda x: not x.display_type and x.original_date_planned
+ ).mapped("original_date_planned")
+ if dates_list:
+ order.original_date_planned = fields.Datetime.to_string(min(dates_list))
+ else:
+ order.original_date_planned = False
+
+ def button_confirm(self):
+ res = super().button_confirm()
+ for pol in self.mapped("order_line"):
+ pol.original_date_planned = pol.date_planned
+ return res
diff --git a/purchase_order_line_original_date/models/purchase_order_line.py b/purchase_order_line_original_date/models/purchase_order_line.py
new file mode 100644
index 00000000000..97b7c4bccf8
--- /dev/null
+++ b/purchase_order_line_original_date/models/purchase_order_line.py
@@ -0,0 +1,15 @@
+# Copyright 2024 ForgeFlow S.L. (https://www.forgeflow.com)
+# License LGPL-3.0 or later (http://www.gnu.org/licenses/lgpl.html).
+
+from odoo import fields, models
+
+
+class PurchaseOrderLine(models.Model):
+ _inherit = "purchase.order.line"
+
+ original_date_planned = fields.Datetime(
+ string="Original Delivery Date",
+ readonly=True,
+ copy=False,
+ help="Original delivery date at PO confirmation.",
+ )
diff --git a/purchase_order_line_original_date/readme/CONTRIBUTORS.rst b/purchase_order_line_original_date/readme/CONTRIBUTORS.rst
new file mode 100644
index 00000000000..d852fb7dd4d
--- /dev/null
+++ b/purchase_order_line_original_date/readme/CONTRIBUTORS.rst
@@ -0,0 +1,3 @@
+* `ForgeFlow `_:
+
+ * Lois Rilo Antelo
diff --git a/purchase_order_line_original_date/readme/DESCRIPTION.rst b/purchase_order_line_original_date/readme/DESCRIPTION.rst
new file mode 100644
index 00000000000..c9efb3643bc
--- /dev/null
+++ b/purchase_order_line_original_date/readme/DESCRIPTION.rst
@@ -0,0 +1,8 @@
+This module adds the *Original Delivery Date* to Purchase Order lines. This is
+useful for past analysis and vendor performance reports.
+
+In standard Odoo, once a PO is confirmed with delivery dates on its lines, this
+dates can still change to reflect changes in the planning (e.g. you receive a
+notification from your supplier that goods will arrive a couple of days later).
+In such situation you lost precious information of the original delivery dates
+that can be used to compute the real delay in the receipt from your supplier.
diff --git a/purchase_order_line_original_date/readme/USAGE.rst b/purchase_order_line_original_date/readme/USAGE.rst
new file mode 100644
index 00000000000..2307cade127
--- /dev/null
+++ b/purchase_order_line_original_date/readme/USAGE.rst
@@ -0,0 +1,4 @@
+#. Create a new PO and assign an delivery dates to its lines.
+#. Confirm the PO.
+#. Change the delivery date of some lines.
+#. Original delivery date is kept unchanged.
diff --git a/purchase_order_line_original_date/static/description/icon.png b/purchase_order_line_original_date/static/description/icon.png
new file mode 100644
index 0000000000000000000000000000000000000000..3a0328b516c4980e8e44cdb63fd945757ddd132d
GIT binary patch
literal 9455
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
z
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
Xviia!U7SGha1wx#SCgwmn*{w2TRX*I
literal 0
HcmV?d00001
diff --git a/purchase_order_line_original_date/static/description/index.html b/purchase_order_line_original_date/static/description/index.html
new file mode 100644
index 00000000000..a9ece5555b7
--- /dev/null
+++ b/purchase_order_line_original_date/static/description/index.html
@@ -0,0 +1,444 @@
+
+
+
+
+
+Purchase Order Line Original Date
+
+
+
+
+
Purchase Order Line Original Date
+
+
+

+
This module adds the Original Delivery Date to Purchase Order lines. This is
+useful for past analysis and vendor performance reports.
+
In standard Odoo, once a PO is confirmed with delivery dates on its lines, this
+dates can still change to reflect changes in the planning (e.g. you receive a
+notification from your supplier that goods will arrive a couple of days later).
+In such situation you lost precious information of the original delivery dates
+that can be used to compute the real delay in the receipt from your supplier.
+
Table of contents
+
+
+
+
+- Create a new PO and assign an delivery dates to its lines.
+- Confirm the PO.
+- Change the delivery date of some lines.
+- Original delivery date is kept unchanged.
+
+
+
+
+
Bugs are tracked on GitHub Issues.
+In case of trouble, please check there if your issue has already been reported.
+If you spotted it first, help us to smash it by providing a detailed and welcomed
+feedback.
+
Do not contact contributors directly about support or help with technical issues.
+
+
+
+
+
+
+
+
This module is maintained by the OCA.
+

+
OCA, or the Odoo Community Association, is a nonprofit organization whose
+mission is to support the collaborative development of Odoo features and
+promote its widespread use.
+
Current maintainer:
+

+
This module is part of the OCA/purchase-workflow project on GitHub.
+
You are welcome to contribute. To learn how please visit https://odoo-community.org/page/Contribute.
+
+
+
+
+
diff --git a/purchase_order_line_original_date/tests/__init__.py b/purchase_order_line_original_date/tests/__init__.py
new file mode 100644
index 00000000000..3f384033d08
--- /dev/null
+++ b/purchase_order_line_original_date/tests/__init__.py
@@ -0,0 +1 @@
+from . import test_purchase_order_line_original_date
diff --git a/purchase_order_line_original_date/tests/test_purchase_order_line_original_date.py b/purchase_order_line_original_date/tests/test_purchase_order_line_original_date.py
new file mode 100644
index 00000000000..53b4bced471
--- /dev/null
+++ b/purchase_order_line_original_date/tests/test_purchase_order_line_original_date.py
@@ -0,0 +1,66 @@
+# Copyright 2024 ForgeFlow S.L. (https://www.forgeflow.com)
+# License LGPL-3.0 or later (http://www.gnu.org/licenses/lgpl.html).
+
+from datetime import datetime, timedelta as td
+
+from odoo.tests import common
+
+
+class TestPoLineOriginalDate(common.TransactionCase):
+ @classmethod
+ def setUpClass(cls):
+ super().setUpClass()
+ cls.po_model = cls.env["purchase.order"]
+
+ cls.vendor_1 = cls.env["res.partner"].create(
+ {
+ "name": "Vendor 1",
+ }
+ )
+ cls.product_1 = cls.env["product.product"].create({"name": "test"})
+ cls.comparison_delta = td(seconds=1)
+ cls.today = datetime.today()
+ cls.tomorrow = cls.today + td(1)
+ cls.day_2 = cls.today + td(2)
+
+ @classmethod
+ def create_purchase_order(cls, product, date_planned, qty=10.0):
+ return cls.env["purchase.order"].create(
+ {
+ "partner_id": cls.vendor_1.id,
+ "order_line": [
+ (
+ 0,
+ 0,
+ {
+ "product_id": product.id,
+ "product_uom": product.uom_id.id,
+ "name": product.name,
+ "price_unit": 100.0,
+ "date_planned": date_planned,
+ "product_qty": qty,
+ },
+ )
+ ],
+ }
+ )
+
+ def test_01_original_date_planned_stored(self):
+ po = self.create_purchase_order(self.product_1, self.tomorrow)
+ self.assertTrue(po.date_planned)
+ self.assertFalse(po.original_date_planned)
+ line = po.order_line
+ self.assertTrue(line.date_planned)
+ self.assertFalse(line.original_date_planned)
+ po.button_confirm()
+ self.assertTrue(po.original_date_planned)
+ self.assertEqual(po.date_planned, po.original_date_planned)
+ self.assertTrue(line.original_date_planned)
+ self.assertEqual(line.date_planned, line.original_date_planned)
+ line.date_planned = self.day_2
+ self.assertAlmostEqual(
+ po.original_date_planned, self.tomorrow, delta=self.comparison_delta
+ )
+ self.assertAlmostEqual(po.date_planned, self.day_2, delta=self.comparison_delta)
+ self.assertEqual(line.original_date_planned, self.tomorrow)
+ self.assertEqual(line.date_planned, self.day_2)
diff --git a/purchase_order_line_original_date/views/purchase_order_line_views.xml b/purchase_order_line_original_date/views/purchase_order_line_views.xml
new file mode 100644
index 00000000000..afb74c38b2b
--- /dev/null
+++ b/purchase_order_line_original_date/views/purchase_order_line_views.xml
@@ -0,0 +1,29 @@
+
+
+
+
+ purchase.order.line.tree- purchase_order_line_original_date
+ purchase.order.line
+
+
+
+
+
+
+
+
+
+ stock.move.form - purchase_order_line_original_date
+ purchase.order.line
+
+
+
+
+
+
+
+
+
diff --git a/purchase_order_line_original_date/views/purchase_order_views.xml b/purchase_order_line_original_date/views/purchase_order_views.xml
new file mode 100644
index 00000000000..24ab1e90849
--- /dev/null
+++ b/purchase_order_line_original_date/views/purchase_order_views.xml
@@ -0,0 +1,23 @@
+
+
+
+
+
+ purchase.order.form - stock_move_original_date
+ purchase.order
+
+
+
+
+
+
+
+
+
+
+
+
From 52abb41c5a13516d5269b929dd678c154e918f66 Mon Sep 17 00:00:00 2001
From: oca-ci
Date: Wed, 17 Jul 2024 08:06:46 +0000
Subject: [PATCH 02/10] [UPD] Update purchase_order_line_original_date.pot
---
.../purchase_order_line_original_date.pot | 44 +++++++++++++++++++
1 file changed, 44 insertions(+)
create mode 100644 purchase_order_line_original_date/i18n/purchase_order_line_original_date.pot
diff --git a/purchase_order_line_original_date/i18n/purchase_order_line_original_date.pot b/purchase_order_line_original_date/i18n/purchase_order_line_original_date.pot
new file mode 100644
index 00000000000..c5d2cff6bed
--- /dev/null
+++ b/purchase_order_line_original_date/i18n/purchase_order_line_original_date.pot
@@ -0,0 +1,44 @@
+# Translation of Odoo Server.
+# This file contains the translation of the following modules:
+# * purchase_order_line_original_date
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: Odoo Server 15.0\n"
+"Report-Msgid-Bugs-To: \n"
+"Last-Translator: \n"
+"Language-Team: \n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: \n"
+"Plural-Forms: \n"
+
+#. module: purchase_order_line_original_date
+#: model:ir.model.fields,field_description:purchase_order_line_original_date.field_purchase_order_line__original_date_planned
+msgid "Original Delivery Date"
+msgstr ""
+
+#. module: purchase_order_line_original_date
+#: model:ir.model.fields,help:purchase_order_line_original_date.field_purchase_order__original_date_planned
+msgid "Original Delivery date promised by vendor at PO confirmation."
+msgstr ""
+
+#. module: purchase_order_line_original_date
+#: model:ir.model.fields,field_description:purchase_order_line_original_date.field_purchase_order__original_date_planned
+msgid "Original Receipt Date"
+msgstr ""
+
+#. module: purchase_order_line_original_date
+#: model:ir.model.fields,help:purchase_order_line_original_date.field_purchase_order_line__original_date_planned
+msgid "Original delivery date at PO confirmation."
+msgstr ""
+
+#. module: purchase_order_line_original_date
+#: model:ir.model,name:purchase_order_line_original_date.model_purchase_order
+msgid "Purchase Order"
+msgstr ""
+
+#. module: purchase_order_line_original_date
+#: model:ir.model,name:purchase_order_line_original_date.model_purchase_order_line
+msgid "Purchase Order Line"
+msgstr ""
From a3e1c5536293988373697eb313b90887df7f69d6 Mon Sep 17 00:00:00 2001
From: OCA-git-bot
Date: Wed, 17 Jul 2024 08:14:56 +0000
Subject: [PATCH 03/10] [BOT] post-merge updates
---
purchase_order_line_original_date/README.rst | 2 +-
.../static/description/index.html | 13 ++++++++-----
2 files changed, 9 insertions(+), 6 deletions(-)
diff --git a/purchase_order_line_original_date/README.rst b/purchase_order_line_original_date/README.rst
index cf948770737..2f3d3dbf3c3 100644
--- a/purchase_order_line_original_date/README.rst
+++ b/purchase_order_line_original_date/README.rst
@@ -7,7 +7,7 @@ Purchase Order Line Original Date
!! This file is generated by oca-gen-addon-readme !!
!! changes will be overwritten. !!
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
- !! source digest: sha256:c363e3fd6d3126c1f211ed678f57453c96815d5968673d1929cb9ac5f754018a
+ !! source digest: sha256:4e2326b4fb2554542d07776ed2f0f32d7e670e559d57b3c4965b088555603839
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
.. |badge1| image:: https://img.shields.io/badge/maturity-Beta-yellow.png
diff --git a/purchase_order_line_original_date/static/description/index.html b/purchase_order_line_original_date/static/description/index.html
index a9ece5555b7..5a540569bee 100644
--- a/purchase_order_line_original_date/static/description/index.html
+++ b/purchase_order_line_original_date/static/description/index.html
@@ -8,10 +8,11 @@
/*
:Author: David Goodger (goodger@python.org)
-:Id: $Id: html4css1.css 8954 2022-01-20 10:10:25Z milde $
+:Id: $Id: html4css1.css 9511 2024-01-13 09:50:07Z milde $
:Copyright: This stylesheet has been placed in the public domain.
Default cascading style sheet for the HTML output of Docutils.
+Despite the name, some widely supported CSS2 features are used.
See https://docutils.sourceforge.io/docs/howto/html-stylesheets.html for how to
customize this style sheet.
@@ -274,7 +275,7 @@
margin-left: 2em ;
margin-right: 2em }
-pre.code .ln { color: grey; } /* line numbers */
+pre.code .ln { color: gray; } /* line numbers */
pre.code, code { background-color: #eeeeee }
pre.code .comment, code .comment { color: #5C6576 }
pre.code .keyword, code .keyword { color: #3B0D06; font-weight: bold }
@@ -300,7 +301,7 @@
span.pre {
white-space: pre }
-span.problematic {
+span.problematic, pre.problematic {
color: red }
span.section-subtitle {
@@ -366,7 +367,7 @@ Purchase Order Line Original Date
!! This file is generated by oca-gen-addon-readme !!
!! changes will be overwritten. !!
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
-!! source digest: sha256:c363e3fd6d3126c1f211ed678f57453c96815d5968673d1929cb9ac5f754018a
+!! source digest: sha256:4e2326b4fb2554542d07776ed2f0f32d7e670e559d57b3c4965b088555603839
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! -->

This module adds the Original Delivery Date to Purchase Order lines. This is
@@ -429,7 +430,9 @@
This module is maintained by the OCA.
-

+
+
+
OCA, or the Odoo Community Association, is a nonprofit organization whose
mission is to support the collaborative development of Odoo features and
promote its widespread use.
From 84b8fab6d56670ee9129234f1a2968c412b8b9da Mon Sep 17 00:00:00 2001
From: Arnau
Date: Fri, 25 Jul 2025 10:44:43 +0200
Subject: [PATCH 04/10] [IMP] purchase_order_line_original_date: pre-commit
auto fixes
---
purchase_order_line_original_date/README.rst | 43 ++++++++++---------
.../pyproject.toml | 3 ++
.../readme/CONTRIBUTORS.md | 3 ++
.../readme/CONTRIBUTORS.rst | 3 --
.../readme/DESCRIPTION.md | 9 ++++
.../readme/DESCRIPTION.rst | 8 ----
.../readme/USAGE.md | 4 ++
.../readme/USAGE.rst | 4 --
.../static/description/index.html | 21 ++++-----
.../test_purchase_order_line_original_date.py | 3 +-
.../views/purchase_order_line_views.xml | 1 -
.../views/purchase_order_views.xml | 2 -
12 files changed, 54 insertions(+), 50 deletions(-)
create mode 100644 purchase_order_line_original_date/pyproject.toml
create mode 100644 purchase_order_line_original_date/readme/CONTRIBUTORS.md
delete mode 100644 purchase_order_line_original_date/readme/CONTRIBUTORS.rst
create mode 100644 purchase_order_line_original_date/readme/DESCRIPTION.md
delete mode 100644 purchase_order_line_original_date/readme/DESCRIPTION.rst
create mode 100644 purchase_order_line_original_date/readme/USAGE.md
delete mode 100644 purchase_order_line_original_date/readme/USAGE.rst
diff --git a/purchase_order_line_original_date/README.rst b/purchase_order_line_original_date/README.rst
index 2f3d3dbf3c3..9fa3a24aced 100644
--- a/purchase_order_line_original_date/README.rst
+++ b/purchase_order_line_original_date/README.rst
@@ -17,25 +17,26 @@ Purchase Order Line Original Date
:target: http://www.gnu.org/licenses/lgpl-3.0-standalone.html
:alt: License: LGPL-3
.. |badge3| image:: https://img.shields.io/badge/github-OCA%2Fpurchase--workflow-lightgray.png?logo=github
- :target: https://github.com/OCA/purchase-workflow/tree/15.0/purchase_order_line_original_date
+ :target: https://github.com/OCA/purchase-workflow/tree/18.0/purchase_order_line_original_date
:alt: OCA/purchase-workflow
.. |badge4| image:: https://img.shields.io/badge/weblate-Translate%20me-F47D42.png
- :target: https://translation.odoo-community.org/projects/purchase-workflow-15-0/purchase-workflow-15-0-purchase_order_line_original_date
+ :target: https://translation.odoo-community.org/projects/purchase-workflow-18-0/purchase-workflow-18-0-purchase_order_line_original_date
:alt: Translate me on Weblate
.. |badge5| image:: https://img.shields.io/badge/runboat-Try%20me-875A7B.png
- :target: https://runboat.odoo-community.org/builds?repo=OCA/purchase-workflow&target_branch=15.0
+ :target: https://runboat.odoo-community.org/builds?repo=OCA/purchase-workflow&target_branch=18.0
:alt: Try me on Runboat
|badge1| |badge2| |badge3| |badge4| |badge5|
-This module adds the *Original Delivery Date* to Purchase Order lines. This is
-useful for past analysis and vendor performance reports.
+This module adds the *Original Delivery Date* to Purchase Order lines.
+This is useful for past analysis and vendor performance reports.
-In standard Odoo, once a PO is confirmed with delivery dates on its lines, this
-dates can still change to reflect changes in the planning (e.g. you receive a
-notification from your supplier that goods will arrive a couple of days later).
-In such situation you lost precious information of the original delivery dates
-that can be used to compute the real delay in the receipt from your supplier.
+In standard Odoo, once a PO is confirmed with delivery dates on its
+lines, this dates can still change to reflect changes in the planning
+(e.g. you receive a notification from your supplier that goods will
+arrive a couple of days later). In such situation you lost precious
+information of the original delivery dates that can be used to compute
+the real delay in the receipt from your supplier.
**Table of contents**
@@ -45,10 +46,10 @@ that can be used to compute the real delay in the receipt from your supplier.
Usage
=====
-#. Create a new PO and assign an delivery dates to its lines.
-#. Confirm the PO.
-#. Change the delivery date of some lines.
-#. Original delivery date is kept unchanged.
+1. Create a new PO and assign an delivery dates to its lines.
+2. Confirm the PO.
+3. Change the delivery date of some lines.
+4. Original delivery date is kept unchanged.
Bug Tracker
===========
@@ -56,7 +57,7 @@ Bug Tracker
Bugs are tracked on `GitHub Issues `_.
In case of trouble, please check there if your issue has already been reported.
If you spotted it first, help us to smash it by providing a detailed and welcomed
-`feedback `_.
+`feedback `_.
Do not contact contributors directly about support or help with technical issues.
@@ -64,19 +65,19 @@ Credits
=======
Authors
-~~~~~~~
+-------
* ForgeFlow
Contributors
-~~~~~~~~~~~~
+------------
-* `ForgeFlow `_:
+- `ForgeFlow `__:
- * Lois Rilo Antelo
+ - Lois Rilo Antelo
Maintainers
-~~~~~~~~~~~
+-----------
This module is maintained by the OCA.
@@ -96,6 +97,6 @@ Current `maintainer `__:
|maintainer-LoisRForgeFlow|
-This module is part of the `OCA/purchase-workflow `_ project on GitHub.
+This module is part of the `OCA/purchase-workflow `_ project on GitHub.
You are welcome to contribute. To learn how please visit https://odoo-community.org/page/Contribute.
diff --git a/purchase_order_line_original_date/pyproject.toml b/purchase_order_line_original_date/pyproject.toml
new file mode 100644
index 00000000000..4231d0cccb3
--- /dev/null
+++ b/purchase_order_line_original_date/pyproject.toml
@@ -0,0 +1,3 @@
+[build-system]
+requires = ["whool"]
+build-backend = "whool.buildapi"
diff --git a/purchase_order_line_original_date/readme/CONTRIBUTORS.md b/purchase_order_line_original_date/readme/CONTRIBUTORS.md
new file mode 100644
index 00000000000..2b98ba55fda
--- /dev/null
+++ b/purchase_order_line_original_date/readme/CONTRIBUTORS.md
@@ -0,0 +1,3 @@
+- [ForgeFlow](https://www.forgeflow.com):
+
+ > - Lois Rilo Antelo
diff --git a/purchase_order_line_original_date/readme/CONTRIBUTORS.rst b/purchase_order_line_original_date/readme/CONTRIBUTORS.rst
deleted file mode 100644
index d852fb7dd4d..00000000000
--- a/purchase_order_line_original_date/readme/CONTRIBUTORS.rst
+++ /dev/null
@@ -1,3 +0,0 @@
-* `ForgeFlow `_:
-
- * Lois Rilo Antelo
diff --git a/purchase_order_line_original_date/readme/DESCRIPTION.md b/purchase_order_line_original_date/readme/DESCRIPTION.md
new file mode 100644
index 00000000000..b55dd5918de
--- /dev/null
+++ b/purchase_order_line_original_date/readme/DESCRIPTION.md
@@ -0,0 +1,9 @@
+This module adds the *Original Delivery Date* to Purchase Order lines.
+This is useful for past analysis and vendor performance reports.
+
+In standard Odoo, once a PO is confirmed with delivery dates on its
+lines, this dates can still change to reflect changes in the planning
+(e.g. you receive a notification from your supplier that goods will
+arrive a couple of days later). In such situation you lost precious
+information of the original delivery dates that can be used to compute
+the real delay in the receipt from your supplier.
diff --git a/purchase_order_line_original_date/readme/DESCRIPTION.rst b/purchase_order_line_original_date/readme/DESCRIPTION.rst
deleted file mode 100644
index c9efb3643bc..00000000000
--- a/purchase_order_line_original_date/readme/DESCRIPTION.rst
+++ /dev/null
@@ -1,8 +0,0 @@
-This module adds the *Original Delivery Date* to Purchase Order lines. This is
-useful for past analysis and vendor performance reports.
-
-In standard Odoo, once a PO is confirmed with delivery dates on its lines, this
-dates can still change to reflect changes in the planning (e.g. you receive a
-notification from your supplier that goods will arrive a couple of days later).
-In such situation you lost precious information of the original delivery dates
-that can be used to compute the real delay in the receipt from your supplier.
diff --git a/purchase_order_line_original_date/readme/USAGE.md b/purchase_order_line_original_date/readme/USAGE.md
new file mode 100644
index 00000000000..2c6e23dea3f
--- /dev/null
+++ b/purchase_order_line_original_date/readme/USAGE.md
@@ -0,0 +1,4 @@
+1. Create a new PO and assign an delivery dates to its lines.
+2. Confirm the PO.
+3. Change the delivery date of some lines.
+4. Original delivery date is kept unchanged.
diff --git a/purchase_order_line_original_date/readme/USAGE.rst b/purchase_order_line_original_date/readme/USAGE.rst
deleted file mode 100644
index 2307cade127..00000000000
--- a/purchase_order_line_original_date/readme/USAGE.rst
+++ /dev/null
@@ -1,4 +0,0 @@
-#. Create a new PO and assign an delivery dates to its lines.
-#. Confirm the PO.
-#. Change the delivery date of some lines.
-#. Original delivery date is kept unchanged.
diff --git a/purchase_order_line_original_date/static/description/index.html b/purchase_order_line_original_date/static/description/index.html
index 5a540569bee..55fecd97b6b 100644
--- a/purchase_order_line_original_date/static/description/index.html
+++ b/purchase_order_line_original_date/static/description/index.html
@@ -369,14 +369,15 @@ Purchase Order Line Original Date
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!! source digest: sha256:4e2326b4fb2554542d07776ed2f0f32d7e670e559d57b3c4965b088555603839
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! -->
-

-This module adds the Original Delivery Date to Purchase Order lines. This is
-useful for past analysis and vendor performance reports.
-In standard Odoo, once a PO is confirmed with delivery dates on its lines, this
-dates can still change to reflect changes in the planning (e.g. you receive a
-notification from your supplier that goods will arrive a couple of days later).
-In such situation you lost precious information of the original delivery dates
-that can be used to compute the real delay in the receipt from your supplier.
+

+This module adds the Original Delivery Date to Purchase Order lines.
+This is useful for past analysis and vendor performance reports.
+In standard Odoo, once a PO is confirmed with delivery dates on its
+lines, this dates can still change to reflect changes in the planning
+(e.g. you receive a notification from your supplier that goods will
+arrive a couple of days later). In such situation you lost precious
+information of the original delivery dates that can be used to compute
+the real delay in the receipt from your supplier.
Table of contents
@@ -404,7 +405,7 @@
Bugs are tracked on GitHub Issues.
In case of trouble, please check there if your issue has already been reported.
If you spotted it first, help us to smash it by providing a detailed and welcomed
-feedback.
+feedback.
Do not contact contributors directly about support or help with technical issues.
diff --git a/purchase_order_line_original_date/tests/test_purchase_order_line_original_date.py b/purchase_order_line_original_date/tests/test_purchase_order_line_original_date.py
index 53b4bced471..b22ab76a3e6 100644
--- a/purchase_order_line_original_date/tests/test_purchase_order_line_original_date.py
+++ b/purchase_order_line_original_date/tests/test_purchase_order_line_original_date.py
@@ -1,7 +1,8 @@
# Copyright 2024 ForgeFlow S.L. (https://www.forgeflow.com)
# License LGPL-3.0 or later (http://www.gnu.org/licenses/lgpl.html).
-from datetime import datetime, timedelta as td
+from datetime import datetime
+from datetime import timedelta as td
from odoo.tests import common
diff --git a/purchase_order_line_original_date/views/purchase_order_line_views.xml b/purchase_order_line_original_date/views/purchase_order_line_views.xml
index afb74c38b2b..9cf9c2df046 100644
--- a/purchase_order_line_original_date/views/purchase_order_line_views.xml
+++ b/purchase_order_line_original_date/views/purchase_order_line_views.xml
@@ -25,5 +25,4 @@
-
diff --git a/purchase_order_line_original_date/views/purchase_order_views.xml b/purchase_order_line_original_date/views/purchase_order_views.xml
index 24ab1e90849..63b295a8db1 100644
--- a/purchase_order_line_original_date/views/purchase_order_views.xml
+++ b/purchase_order_line_original_date/views/purchase_order_views.xml
@@ -2,7 +2,6 @@
-
purchase.order.form - stock_move_original_date
purchase.order
@@ -19,5 +18,4 @@
-
From da53fb1d84461c553322f458348183cd5b8a918a Mon Sep 17 00:00:00 2001
From: Arnau
Date: Fri, 25 Jul 2025 11:02:44 +0200
Subject: [PATCH 05/10] [MIG] purchase_order_line_original_date: Migration to
18.0
---
purchase_order_line_original_date/README.rst | 16 ++++++++--------
.../__manifest__.py | 4 ++--
.../models/purchase_order.py | 4 ++--
.../models/purchase_order_line.py | 4 ++--
.../readme/DESCRIPTION.md | 6 +++---
.../readme/USAGE.md | 6 +++---
.../static/description/index.html | 16 ++++++++--------
.../test_purchase_order_line_original_date.py | 4 +++-
.../views/purchase_order_views.xml | 2 +-
9 files changed, 32 insertions(+), 30 deletions(-)
diff --git a/purchase_order_line_original_date/README.rst b/purchase_order_line_original_date/README.rst
index 9fa3a24aced..8afe924d60a 100644
--- a/purchase_order_line_original_date/README.rst
+++ b/purchase_order_line_original_date/README.rst
@@ -28,15 +28,15 @@ Purchase Order Line Original Date
|badge1| |badge2| |badge3| |badge4| |badge5|
-This module adds the *Original Delivery Date* to Purchase Order lines.
-This is useful for past analysis and vendor performance reports.
+This module adds the *Original Expected Arrival* to Purchase Order
+lines. This is useful for past analysis and vendor performance reports.
-In standard Odoo, once a PO is confirmed with delivery dates on its
+In standard Odoo, once a PO is confirmed with expected arrivals on its
lines, this dates can still change to reflect changes in the planning
(e.g. you receive a notification from your supplier that goods will
arrive a couple of days later). In such situation you lost precious
-information of the original delivery dates that can be used to compute
-the real delay in the receipt from your supplier.
+information of the original expected arrivals that can be used to
+compute the real delay in the receipt from your supplier.
**Table of contents**
@@ -46,10 +46,10 @@ the real delay in the receipt from your supplier.
Usage
=====
-1. Create a new PO and assign an delivery dates to its lines.
+1. Create a new PO and assign an expected arrival to its lines.
2. Confirm the PO.
-3. Change the delivery date of some lines.
-4. Original delivery date is kept unchanged.
+3. Change the expected arrival of some lines.
+4. Original expected arrival is kept unchanged.
Bug Tracker
===========
diff --git a/purchase_order_line_original_date/__manifest__.py b/purchase_order_line_original_date/__manifest__.py
index f07055d3df6..fceb233641d 100644
--- a/purchase_order_line_original_date/__manifest__.py
+++ b/purchase_order_line_original_date/__manifest__.py
@@ -3,8 +3,8 @@
{
"name": "Purchase Order Line Original Date",
- "summary": "adds the Original Delivery Date to PO lines.",
- "version": "15.0.1.0.0",
+ "summary": "adds the Original Expected Arrival to PO lines.",
+ "version": "18.0.1.0.0",
"category": "Purchase Management",
"maintainers": ["LoisRForgeFlow"],
"website": "https://github.com/OCA/purchase-workflow",
diff --git a/purchase_order_line_original_date/models/purchase_order.py b/purchase_order_line_original_date/models/purchase_order.py
index e32f5477ca8..fd011d97064 100644
--- a/purchase_order_line_original_date/models/purchase_order.py
+++ b/purchase_order_line_original_date/models/purchase_order.py
@@ -8,12 +8,12 @@ class PurchaseOrder(models.Model):
_inherit = "purchase.order"
original_date_planned = fields.Datetime(
- string="Original Receipt Date",
+ string="Original Expected Arrival",
compute="_compute_original_date_planned",
store=True,
readonly=True,
tracking=True,
- help="Original Delivery date promised by vendor at PO confirmation.",
+ help="Original Expected Arrival promised by vendor at PO confirmation.",
)
@api.depends("order_line.original_date_planned")
diff --git a/purchase_order_line_original_date/models/purchase_order_line.py b/purchase_order_line_original_date/models/purchase_order_line.py
index 97b7c4bccf8..52950e07986 100644
--- a/purchase_order_line_original_date/models/purchase_order_line.py
+++ b/purchase_order_line_original_date/models/purchase_order_line.py
@@ -8,8 +8,8 @@ class PurchaseOrderLine(models.Model):
_inherit = "purchase.order.line"
original_date_planned = fields.Datetime(
- string="Original Delivery Date",
+ string="Original Expected Arrival",
readonly=True,
copy=False,
- help="Original delivery date at PO confirmation.",
+ help="Original expected arrival at PO confirmation.",
)
diff --git a/purchase_order_line_original_date/readme/DESCRIPTION.md b/purchase_order_line_original_date/readme/DESCRIPTION.md
index b55dd5918de..546f0ca2e38 100644
--- a/purchase_order_line_original_date/readme/DESCRIPTION.md
+++ b/purchase_order_line_original_date/readme/DESCRIPTION.md
@@ -1,9 +1,9 @@
-This module adds the *Original Delivery Date* to Purchase Order lines.
+This module adds the *Original Expected Arrival* to Purchase Order lines.
This is useful for past analysis and vendor performance reports.
-In standard Odoo, once a PO is confirmed with delivery dates on its
+In standard Odoo, once a PO is confirmed with expected arrivals on its
lines, this dates can still change to reflect changes in the planning
(e.g. you receive a notification from your supplier that goods will
arrive a couple of days later). In such situation you lost precious
-information of the original delivery dates that can be used to compute
+information of the original expected arrivals that can be used to compute
the real delay in the receipt from your supplier.
diff --git a/purchase_order_line_original_date/readme/USAGE.md b/purchase_order_line_original_date/readme/USAGE.md
index 2c6e23dea3f..630ecbebde7 100644
--- a/purchase_order_line_original_date/readme/USAGE.md
+++ b/purchase_order_line_original_date/readme/USAGE.md
@@ -1,4 +1,4 @@
-1. Create a new PO and assign an delivery dates to its lines.
+1. Create a new PO and assign an expected arrival to its lines.
2. Confirm the PO.
-3. Change the delivery date of some lines.
-4. Original delivery date is kept unchanged.
+3. Change the expected arrival of some lines.
+4. Original expected arrival is kept unchanged.
diff --git a/purchase_order_line_original_date/static/description/index.html b/purchase_order_line_original_date/static/description/index.html
index 55fecd97b6b..14a178a6e94 100644
--- a/purchase_order_line_original_date/static/description/index.html
+++ b/purchase_order_line_original_date/static/description/index.html
@@ -370,14 +370,14 @@ Purchase Order Line Original Date
!! source digest: sha256:4e2326b4fb2554542d07776ed2f0f32d7e670e559d57b3c4965b088555603839
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! -->

-This module adds the Original Delivery Date to Purchase Order lines.
-This is useful for past analysis and vendor performance reports.
-In standard Odoo, once a PO is confirmed with delivery dates on its
+
This module adds the Original Expected Arrival to Purchase Order
+lines. This is useful for past analysis and vendor performance reports.
+In standard Odoo, once a PO is confirmed with expected arrivals on its
lines, this dates can still change to reflect changes in the planning
(e.g. you receive a notification from your supplier that goods will
arrive a couple of days later). In such situation you lost precious
-information of the original delivery dates that can be used to compute
-the real delay in the receipt from your supplier.
+information of the original expected arrivals that can be used to
+compute the real delay in the receipt from your supplier.
Table of contents
@@ -394,10 +394,10 @@ Purchase Order Line Original Date
-- Create a new PO and assign an delivery dates to its lines.
+- Create a new PO and assign an expected arrival to its lines.
- Confirm the PO.
-- Change the delivery date of some lines.
-- Original delivery date is kept unchanged.
+- Change the expected arrival of some lines.
+- Original expected arrival is kept unchanged.
diff --git a/purchase_order_line_original_date/tests/test_purchase_order_line_original_date.py b/purchase_order_line_original_date/tests/test_purchase_order_line_original_date.py
index b22ab76a3e6..3f8b38693da 100644
--- a/purchase_order_line_original_date/tests/test_purchase_order_line_original_date.py
+++ b/purchase_order_line_original_date/tests/test_purchase_order_line_original_date.py
@@ -55,7 +55,9 @@ def test_01_original_date_planned_stored(self):
self.assertFalse(line.original_date_planned)
po.button_confirm()
self.assertTrue(po.original_date_planned)
- self.assertEqual(po.date_planned, po.original_date_planned)
+ self.assertEqual(
+ po.date_planned.replace(microsecond=0), po.original_date_planned
+ )
self.assertTrue(line.original_date_planned)
self.assertEqual(line.date_planned, line.original_date_planned)
line.date_planned = self.day_2
diff --git a/purchase_order_line_original_date/views/purchase_order_views.xml b/purchase_order_line_original_date/views/purchase_order_views.xml
index 63b295a8db1..43151bebb30 100644
--- a/purchase_order_line_original_date/views/purchase_order_views.xml
+++ b/purchase_order_line_original_date/views/purchase_order_views.xml
@@ -11,7 +11,7 @@
From 76db2e6de219155e018eb0b6878509fa4d37f9ee Mon Sep 17 00:00:00 2001
From: oca-ci
Date: Wed, 6 Aug 2025 08:29:44 +0000
Subject: [PATCH 06/10] [UPD] Update purchase_order_line_original_date.pot
---
.../i18n/purchase_order_line_original_date.pot | 14 +++++---------
1 file changed, 5 insertions(+), 9 deletions(-)
diff --git a/purchase_order_line_original_date/i18n/purchase_order_line_original_date.pot b/purchase_order_line_original_date/i18n/purchase_order_line_original_date.pot
index c5d2cff6bed..8bbabdefb46 100644
--- a/purchase_order_line_original_date/i18n/purchase_order_line_original_date.pot
+++ b/purchase_order_line_original_date/i18n/purchase_order_line_original_date.pot
@@ -4,7 +4,7 @@
#
msgid ""
msgstr ""
-"Project-Id-Version: Odoo Server 15.0\n"
+"Project-Id-Version: Odoo Server 18.0\n"
"Report-Msgid-Bugs-To: \n"
"Last-Translator: \n"
"Language-Team: \n"
@@ -14,23 +14,19 @@ msgstr ""
"Plural-Forms: \n"
#. module: purchase_order_line_original_date
+#: model:ir.model.fields,field_description:purchase_order_line_original_date.field_purchase_order__original_date_planned
#: model:ir.model.fields,field_description:purchase_order_line_original_date.field_purchase_order_line__original_date_planned
-msgid "Original Delivery Date"
+msgid "Original Expected Arrival"
msgstr ""
#. module: purchase_order_line_original_date
#: model:ir.model.fields,help:purchase_order_line_original_date.field_purchase_order__original_date_planned
-msgid "Original Delivery date promised by vendor at PO confirmation."
-msgstr ""
-
-#. module: purchase_order_line_original_date
-#: model:ir.model.fields,field_description:purchase_order_line_original_date.field_purchase_order__original_date_planned
-msgid "Original Receipt Date"
+msgid "Original Expected Arrival promised by vendor at PO confirmation."
msgstr ""
#. module: purchase_order_line_original_date
#: model:ir.model.fields,help:purchase_order_line_original_date.field_purchase_order_line__original_date_planned
-msgid "Original delivery date at PO confirmation."
+msgid "Original expected arrival at PO confirmation."
msgstr ""
#. module: purchase_order_line_original_date
From ab41c70b240816ba4525a59e505657ccdd8d5206 Mon Sep 17 00:00:00 2001
From: OCA-git-bot
Date: Wed, 6 Aug 2025 08:34:56 +0000
Subject: [PATCH 07/10] [BOT] post-merge updates
---
purchase_order_line_original_date/README.rst | 8 ++++--
.../static/description/index.html | 28 +++++++++++--------
2 files changed, 23 insertions(+), 13 deletions(-)
diff --git a/purchase_order_line_original_date/README.rst b/purchase_order_line_original_date/README.rst
index 8afe924d60a..988fabf7278 100644
--- a/purchase_order_line_original_date/README.rst
+++ b/purchase_order_line_original_date/README.rst
@@ -1,3 +1,7 @@
+.. image:: https://odoo-community.org/readme-banner-image
+ :target: https://odoo-community.org/get-involved?utm_source=readme
+ :alt: Odoo Community Association
+
=================================
Purchase Order Line Original Date
=================================
@@ -7,13 +11,13 @@ Purchase Order Line Original Date
!! This file is generated by oca-gen-addon-readme !!
!! changes will be overwritten. !!
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
- !! source digest: sha256:4e2326b4fb2554542d07776ed2f0f32d7e670e559d57b3c4965b088555603839
+ !! source digest: sha256:76829994f0fe50535aee54cbd34a1543764e31c239b9eea023798a8804634d3e
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
.. |badge1| image:: https://img.shields.io/badge/maturity-Beta-yellow.png
:target: https://odoo-community.org/page/development-status
:alt: Beta
-.. |badge2| image:: https://img.shields.io/badge/licence-LGPL--3-blue.png
+.. |badge2| image:: https://img.shields.io/badge/license-LGPL--3-blue.png
:target: http://www.gnu.org/licenses/lgpl-3.0-standalone.html
:alt: License: LGPL-3
.. |badge3| image:: https://img.shields.io/badge/github-OCA%2Fpurchase--workflow-lightgray.png?logo=github
diff --git a/purchase_order_line_original_date/static/description/index.html b/purchase_order_line_original_date/static/description/index.html
index 14a178a6e94..1001e2fed1a 100644
--- a/purchase_order_line_original_date/static/description/index.html
+++ b/purchase_order_line_original_date/static/description/index.html
@@ -3,7 +3,7 @@
-Purchase Order Line Original Date
+README.rst
-
-
Purchase Order Line Original Date
+
+
+
+
+
+
+
Purchase Order Line Original Date
-

+

This module adds the Original Expected Arrival to Purchase Order
lines. This is useful for past analysis and vendor performance reports.
In standard Odoo, once a PO is confirmed with expected arrivals on its
@@ -392,7 +397,7 @@
Purchase Order Line Original Date
-
+
- Create a new PO and assign an expected arrival to its lines.
- Confirm the PO.
@@ -401,7 +406,7 @@
-
+
Bugs are tracked on GitHub Issues.
In case of trouble, please check there if your issue has already been reported.
If you spotted it first, help us to smash it by providing a detailed and welcomed
@@ -409,15 +414,15 @@
Do not contact contributors directly about support or help with technical issues.
+