Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
109 changes: 109 additions & 0 deletions purchase_order_etd_eta/README.rst
Original file line number Diff line number Diff line change
@@ -0,0 +1,109 @@
======================
Purchase Order ETD/ETA
======================

..
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!! This file is generated by oca-gen-addon-readme !!
!! changes will be overwritten. !!
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!! source digest: sha256:38890cab558012aca5ba0396b59d0116ea743611b7c0bcb74fdda76da3465194
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

.. |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-AGPL--3-blue.png
:target: http://www.gnu.org/licenses/agpl-3.0-standalone.html
:alt: License: AGPL-3
.. |badge3| image:: https://img.shields.io/badge/github-OCA%2Fpurchase--workflow-lightgray.png?logo=github
:target: https://github.com/OCA/purchase-workflow/tree/18.0/purchase_order_etd_eta
: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-18-0/purchase-workflow-18-0-purchase_order_etd_eta
: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=18.0
:alt: Try me on Runboat

|badge1| |badge2| |badge3| |badge4| |badge5|

The module adds ETD, ETA, and Shipping Schedule Note fields to purchase
orders and displays them in the purchase order and RFQ reports.

**Table of contents**

.. contents::
:local:

Use Cases / Context
===================

Some companies need to store ETD and ETA information on Purchase Orders
for communication with suppliers and for printing on reports.

These values are informational and may include simple instructions such
as "ASAP" or "TBD".

Configuration
=============

To hide the Expected Arrival in purchase reports when ETA is set:

1. Go to Purchase ‣ Configuration ‣ Settings.
2. Enable *Hide Expected Arrival in Purchase Order Reports*. When
enabled, the Expected Arrival date will not be displayed in purchase
order reports if ETA is set.

Bug Tracker
===========

Bugs are tracked on `GitHub Issues <https://github.com/OCA/purchase-workflow/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 <https://github.com/OCA/purchase-workflow/issues/new?body=module:%20purchase_order_etd_eta%0Aversion:%2018.0%0A%0A**Steps%20to%20reproduce**%0A-%20...%0A%0A**Current%20behavior**%0A%0A**Expected%20behavior**>`_.

Do not contact contributors directly about support or help with technical issues.

Credits
=======

Authors
-------

* Quartile

Contributors
------------

- `Quartile <https://www.quartile.co>`__:

- Aung Ko Ko Lin

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-yostashiro| image:: https://github.com/yostashiro.png?size=40px
:target: https://github.com/yostashiro
:alt: yostashiro
.. |maintainer-aungkokolin1997| image:: https://github.com/aungkokolin1997.png?size=40px
:target: https://github.com/aungkokolin1997
:alt: aungkokolin1997

Current `maintainers <https://odoo-community.org/page/maintainer-role>`__:

|maintainer-yostashiro| |maintainer-aungkokolin1997|

This module is part of the `OCA/purchase-workflow <https://github.com/OCA/purchase-workflow/tree/18.0/purchase_order_etd_eta>`_ project on GitHub.

You are welcome to contribute. To learn how please visit https://odoo-community.org/page/Contribute.
1 change: 1 addition & 0 deletions purchase_order_etd_eta/__init__.py
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
from . import models
20 changes: 20 additions & 0 deletions purchase_order_etd_eta/__manifest__.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
# Copyright 2026 Quartile (https://www.quartile.co)
# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl).
{
"name": "Purchase Order ETD/ETA",
"summary": "Add Estimated Time of Departure/Arrival fields to Purchase Orders",
"version": "18.0.1.0.0",
"category": "Purchases",
"website": "https://github.com/OCA/purchase-workflow",
"author": "Quartile, Odoo Community Association (OCA)",
"license": "AGPL-3",
"depends": ["purchase"],
"data": [
"report/purchase_order_templates.xml",
"report/purchase_quotation_templates.xml",
"views/purchase_order_views.xml",
"views/res_config_settings_views.xml",
],
"maintainers": ["yostashiro", "aungkokolin1997"],
"installable": True,
}
3 changes: 3 additions & 0 deletions purchase_order_etd_eta/models/__init__.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
from . import purchase_order
from . import res_company
from . import res_config_settings
24 changes: 24 additions & 0 deletions purchase_order_etd_eta/models/purchase_order.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
# Copyright 2026 Quartile (https://www.quartile.co)
# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl).

from odoo import fields, models


class PurchaseOrder(models.Model):
_inherit = "purchase.order"

date_etd = fields.Date(string="ETD", help="Estimated Time of Departure")
date_eta = fields.Date(string="ETA", help="Estimated Time of Arrival")
shipping_schedule_note = fields.Char(
help="Additional shipping schedule instructions or clarifications. "
"Use this field when ETD or ETA cannot be expressed as a specific date "
"(for example: ASAP, TBD, etc.).",
)

def display_expected_arrival(self):
self.ensure_one()
if (
self.company_id.hide_expected_arrival_when_eta and self.date_eta
) or not self.date_planned:
return False
return True
10 changes: 10 additions & 0 deletions purchase_order_etd_eta/models/res_company.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
# Copyright 2026 Quartile (https://www.quartile.co)
# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl).

from odoo import fields, models


class ResCompany(models.Model):
_inherit = "res.company"

hide_expected_arrival_when_eta = fields.Boolean()
13 changes: 13 additions & 0 deletions purchase_order_etd_eta/models/res_config_settings.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
# Copyright 2026 Quartile (https://www.quartile.co)
# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl).

from odoo import fields, models


class ResConfigSettings(models.TransientModel):
_inherit = "res.config.settings"

hide_expected_arrival_when_eta = fields.Boolean(
related="company_id.hide_expected_arrival_when_eta",
readonly=False,
)
3 changes: 3 additions & 0 deletions purchase_order_etd_eta/pyproject.toml
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
[build-system]
requires = ["whool"]
build-backend = "whool.buildapi"
6 changes: 6 additions & 0 deletions purchase_order_etd_eta/readme/CONFIGURE.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
To hide the Expected Arrival in purchase reports when ETA is set:

1. Go to Purchase ‣ Configuration ‣ Settings.
2. Enable *Hide Expected Arrival in Purchase Order Reports*.
When enabled, the Expected Arrival date will not be displayed in purchase
order reports if ETA is set.
5 changes: 5 additions & 0 deletions purchase_order_etd_eta/readme/CONTEXT.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
Some companies need to store ETD and ETA information on Purchase Orders for
communication with suppliers and for printing on reports.

These values are informational and may include simple instructions such as
"ASAP" or "TBD".
2 changes: 2 additions & 0 deletions purchase_order_etd_eta/readme/CONTRIBUTORS.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
- [Quartile](https://www.quartile.co):
- Aung Ko Ko Lin
2 changes: 2 additions & 0 deletions purchase_order_etd_eta/readme/DESCRIPTION.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
The module adds ETD, ETA, and Shipping Schedule Note fields to purchase orders
and displays them in the purchase order and RFQ reports.
34 changes: 34 additions & 0 deletions purchase_order_etd_eta/report/purchase_order_templates.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,34 @@
<?xml version="1.0" encoding="utf-8" ?>
<odoo>
<template id="purchase_etd_eta_info">
<div id="etd_eta_info" class="row mb-4">
<div t-if="o.date_etd" class="col-2">
<strong>ETD:</strong>
<p t-field="o.date_etd" class="m-0" />
</div>
<div t-if="o.date_eta" class="col-2">
<strong>ETA:</strong>
<p t-field="o.date_eta" class="m-0" />
</div>
<div t-if="o.shipping_schedule_note" class="col-8">
<strong>Shipping Schedule Note:</strong>
<p
t-field="o.shipping_schedule_note"
class="m-0"
style="white-space: pre"
/>
</div>
</div>
</template>
<template
id="report_purchaseorder_document"
inherit_id="purchase.report_purchaseorder_document"
>
<xpath expr="//div[@t-if='o.date_planned']" position="attributes">
<attribute name="t-if">o.display_expected_arrival()</attribute>
</xpath>
<xpath expr="//div[@id='informations']" position="after">
<t t-call="purchase_order_etd_eta.purchase_etd_eta_info" />
</xpath>
</template>
</odoo>
11 changes: 11 additions & 0 deletions purchase_order_etd_eta/report/purchase_quotation_templates.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
<?xml version="1.0" encoding="utf-8" ?>
<odoo>
<template
id="report_purchasequotation_document"
inherit_id="purchase.report_purchasequotation_document"
>
<xpath expr="//t[@t-set='layout_document_title']" position="after">
<t t-call="purchase_order_etd_eta.purchase_etd_eta_info" />
</xpath>
</template>
</odoo>
Loading