Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[16.0][mig] stock_partner_delivery_window #1332

Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
25 commits
Select commit Hold shift + click to select a range
d324c06
Add stock_partner_delivery_window
grindtildeath Mar 31, 2020
7d08176
[IMP] stock_partner_delivery_window: black, isort, prettier
dzungtran89 Jan 17, 2021
f1dc6f4
[MIG] stock_partner_delivery_window: Migration to 14.0
dzungtran89 Jan 17, 2021
f97b922
s_p_delivery_window: time format improvements
sebalix Mar 30, 2021
97a03f1
stock_partner_delivery_window: ease warning msg check/override
simahawk Apr 2, 2021
10fe25e
stock_partner_delivery_window: Cleanup
mmequignon Apr 6, 2021
f4697f3
s_p_delivery_window: Add working days as delivery schedule preference
mmequignon Apr 8, 2021
83aa938
[FW][14.0] stock_partner_delivery_window: Fix default value on delive…
grindtildeath Jun 30, 2021
9f93399
[UPD] Update stock_partner_delivery_window.pot
oca-travis Jul 19, 2021
bbe7268
[ADD] icon.png
OCA-git-bot Jul 19, 2021
2fee5f2
stock_partner_delivery_window 14.0.1.0.1
OCA-git-bot Jul 19, 2021
4c05e46
[FIX] s_p_delivery_window: selection attribute will be ignored as the…
sebalix Aug 3, 2021
0692d25
stock_partner_delivery_window 14.0.1.1.0
OCA-git-bot Aug 5, 2021
b9ba452
[FIX] stock_partner_delivery_window version
gurneyalex Sep 13, 2021
0e674b8
[IMP] stock_partner_delivery_window: copy time window ids of partner
hailangvn Dec 12, 2021
c45bf73
stock_partner_delivery_window 14.0.1.2.0
OCA-git-bot Dec 22, 2021
9a34a52
[14.0][FIX] Align development statuses
rousseldenis Aug 8, 2022
bb83150
[UPD] README.rst
OCA-git-bot Aug 8, 2022
c0b7540
[UPD] stock_partner_delivery_window: Upgrade to Beta
rousseldenis Aug 8, 2022
58beb3d
[UPD] README.rst
OCA-git-bot Aug 8, 2022
91e6989
stock_partner_delivery_window 14.0.1.2.1
OCA-git-bot Aug 8, 2022
60857bb
s_p_delivery_window: Make delivery windows inclusive
mmequignon Mar 16, 2023
4840fd3
stock_partner_delivery_window 14.0.1.2.2
OCA-git-bot Mar 21, 2023
5da42b2
[IMP] stock_partner_delivery_window: black, isort, prettier
aktiv-heli-kantawala Jul 20, 2023
3a21d76
[MIG] stock_partner_delivery_window: Migration to 16.0
aktiv-heli-kantawala Jul 20, 2023
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
6 changes: 6 additions & 0 deletions setup/stock_partner_delivery_window/setup.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
import setuptools

setuptools.setup(
setup_requires=['setuptools-odoo'],
odoo_addon=True,
)
103 changes: 103 additions & 0 deletions stock_partner_delivery_window/README.rst
Original file line number Diff line number Diff line change
@@ -0,0 +1,103 @@
=============================
Stock Partner Delivery Window
=============================

.. !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!! This file is generated by oca-gen-addon-readme !!
!! changes will be overwritten. !!
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

.. |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%2Fstock--logistics--workflow-lightgray.png?logo=github
:target: https://github.com/OCA/stock-logistics-workflow/tree/14.0/stock_partner_delivery_window
:alt: OCA/stock-logistics-workflow
.. |badge4| image:: https://img.shields.io/badge/weblate-Translate%20me-F47D42.png
:target: https://translation.odoo-community.org/projects/stock-logistics-workflow-14-0/stock-logistics-workflow-14-0-stock_partner_delivery_window
:alt: Translate me on Weblate
.. |badge5| image:: https://img.shields.io/badge/runbot-Try%20me-875A7B.png
:target: https://runbot.odoo-community.org/runbot/154/14.0
:alt: Try me on Runbot

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

This module allows to define time scheduling preference for delivery orders on
partners, in order to raise a warning when changing a scheduled date to a time
window that is not preferred by this customer.

**Table of contents**

.. contents::
:local:

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

On partners form view, under the "Sales & Purchases" tab, one can define a
"Delivery schedule preference" for each partner.

Possible configurations are:

* Any time: Do not postpone deliveries
* Fixed time windows: Postpone deliveries to the next preferred time window
* Weekdays: Postpone deliveries to the next weekday

After selecting "Fixed time windows", one can define the preferred delivery
windows in the embedded tree view below.

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

Bugs are tracked on `GitHub Issues <https://github.com/OCA/stock-logistics-workflow/issues>`_.
In case of trouble, please check there if your issue has already been reported.
If you spotted it first, help us smashing it by providing a detailed and welcomed
`feedback <https://github.com/OCA/stock-logistics-workflow/issues/new?body=module:%20stock_partner_delivery_window%0Aversion:%2014.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
~~~~~~~

* Camptocamp
* ACSONE SA/NV

Contributors
~~~~~~~~~~~~

* Akim Juillerat <akim.juillerat@camptocamp.com>
* Matthieu Méquignon <matthieu.mequignon@camptocamp.com>

Trobz

* Dung Tran <dungtd@trobz.com>

Other credits
~~~~~~~~~~~~~

The development of this module has been financially supported by:

* Camptocamp

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.

This module is part of the `OCA/stock-logistics-workflow <https://github.com/OCA/stock-logistics-workflow/tree/14.0/stock_partner_delivery_window>`_ 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 stock_partner_delivery_window/__init__.py
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
from . import models
15 changes: 15 additions & 0 deletions stock_partner_delivery_window/__manifest__.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
# Copyright 2020 Camptocamp SA
# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl)
{
"name": "Stock Partner Delivery Window",
"summary": "Define preferred delivery time windows for partners",
"version": "16.0.1.0.0",
"category": "Inventory",
"author": "Camptocamp, ACSONE SA/NV, Odoo Community Association (OCA)",
"license": "AGPL-3",
"website": "https://github.com/OCA/stock-logistics-workflow",
"depends": ["base_time_window", "partner_tz", "stock"],
"data": ["security/ir.model.access.csv", "views/res_partner.xml"],
"demo": ["demo/delivery_time_window.xml"],
"installable": True,
}
15 changes: 15 additions & 0 deletions stock_partner_delivery_window/demo/delivery_time_window.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
<?xml version="1.0" encoding="UTF-8" ?>
<odoo>
<record id="demo_partner_delivery_window_1" model="partner.delivery.time.window">
<field name="partner_id" ref="base.res_partner_1" />
<field name="time_window_start">10.0</field>
<field name="time_window_end">18.0</field>
<field
name="time_window_weekday_ids"
eval="[(4, ref('base_time_window.time_weekday_monday'))]"
/>
</record>
<record id="base.res_partner_1" model="res.partner">
<field name="delivery_time_preference">time_windows</field>
</record>
</odoo>
183 changes: 183 additions & 0 deletions stock_partner_delivery_window/i18n/stock_partner_delivery_window.pot
Original file line number Diff line number Diff line change
@@ -0,0 +1,183 @@
# Translation of Odoo Server.
# This file contains the translation of the following modules:
# * stock_partner_delivery_window
#
msgid ""
msgstr ""
"Project-Id-Version: Odoo Server 14.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: stock_partner_delivery_window
#: code:addons/stock_partner_delivery_window/models/res_partner.py:0
#, python-format
msgid "%s: %s"
msgstr ""

#. module: stock_partner_delivery_window
#: model:ir.model.fields.selection,name:stock_partner_delivery_window.selection__res_partner__delivery_time_preference__anytime
msgid "Any time"
msgstr ""

#. module: stock_partner_delivery_window
#: model:ir.model,name:stock_partner_delivery_window.model_res_partner
msgid "Contact"
msgstr ""

#. module: stock_partner_delivery_window
#: model:ir.model.fields,field_description:stock_partner_delivery_window.field_partner_delivery_time_window__create_uid
msgid "Created by"
msgstr ""

#. module: stock_partner_delivery_window
#: model:ir.model.fields,field_description:stock_partner_delivery_window.field_partner_delivery_time_window__create_date
msgid "Created on"
msgstr ""

#. module: stock_partner_delivery_window
#: model:ir.model.fields,help:stock_partner_delivery_window.field_res_partner__delivery_time_preference
#: model:ir.model.fields,help:stock_partner_delivery_window.field_res_users__delivery_time_preference
msgid ""
"Define the scheduling preference for delivery orders:\n"
"\n"
"* Any time: Do not postpone deliveries\n"
"* Fixed time windows: Postpone deliveries to the next preferred time window\n"
"* Weekdays: Postpone deliveries to the next weekday"
msgstr ""

#. module: stock_partner_delivery_window
#: model:ir.model.fields,field_description:stock_partner_delivery_window.field_res_partner__delivery_time_preference
#: model:ir.model.fields,field_description:stock_partner_delivery_window.field_res_users__delivery_time_preference
msgid "Delivery time schedule preference"
msgstr ""

#. module: stock_partner_delivery_window
#: model:ir.model.fields,field_description:stock_partner_delivery_window.field_res_partner__delivery_time_window_ids
#: model:ir.model.fields,field_description:stock_partner_delivery_window.field_res_users__delivery_time_window_ids
msgid "Delivery time windows"
msgstr ""

#. module: stock_partner_delivery_window
#: model:ir.model.fields,field_description:stock_partner_delivery_window.field_partner_delivery_time_window__display_name
#: model:ir.model.fields,field_description:stock_partner_delivery_window.field_res_partner__display_name
#: model:ir.model.fields,field_description:stock_partner_delivery_window.field_stock_picking__display_name
msgid "Display Name"
msgstr ""

#. module: stock_partner_delivery_window
#: model:ir.model.fields.selection,name:stock_partner_delivery_window.selection__res_partner__delivery_time_preference__time_windows
msgid "Fixed time windows"
msgstr ""

#. module: stock_partner_delivery_window
#: model:ir.model.fields,field_description:stock_partner_delivery_window.field_partner_delivery_time_window__time_window_start
msgid "From"
msgstr ""

#. module: stock_partner_delivery_window
#: code:addons/stock_partner_delivery_window/models/res_partner.py:0
#, python-format
msgid "From %s to %s"
msgstr ""

#. module: stock_partner_delivery_window
#: model:ir.model.fields,field_description:stock_partner_delivery_window.field_partner_delivery_time_window__id
#: model:ir.model.fields,field_description:stock_partner_delivery_window.field_res_partner__id
#: model:ir.model.fields,field_description:stock_partner_delivery_window.field_stock_picking__id
msgid "ID"
msgstr ""

#. module: stock_partner_delivery_window
#: model:ir.model.fields,field_description:stock_partner_delivery_window.field_partner_delivery_time_window____last_update
#: model:ir.model.fields,field_description:stock_partner_delivery_window.field_res_partner____last_update
#: model:ir.model.fields,field_description:stock_partner_delivery_window.field_stock_picking____last_update
msgid "Last Modified on"
msgstr ""

#. module: stock_partner_delivery_window
#: model:ir.model.fields,field_description:stock_partner_delivery_window.field_partner_delivery_time_window__write_uid
msgid "Last Updated by"
msgstr ""

#. module: stock_partner_delivery_window
#: model:ir.model.fields,field_description:stock_partner_delivery_window.field_partner_delivery_time_window__write_date
msgid "Last Updated on"
msgstr ""

#. module: stock_partner_delivery_window
#: model:ir.model.fields,field_description:stock_partner_delivery_window.field_partner_delivery_time_window__partner_id
msgid "Partner"
msgstr ""

#. module: stock_partner_delivery_window
#: code:addons/stock_partner_delivery_window/models/res_partner.py:0
#, python-format
msgid ""
"Please define at least one delivery time window or change preference to Any "
"time"
msgstr ""

#. module: stock_partner_delivery_window
#: model:ir.model,name:stock_partner_delivery_window.model_partner_delivery_time_window
msgid "Preferred delivery time windows"
msgstr ""

#. module: stock_partner_delivery_window
#: code:addons/stock_partner_delivery_window/models/stock_picking.py:0
#, python-format
msgid "Scheduled date does not match partner's Delivery window preference."
msgstr ""

#. module: stock_partner_delivery_window
#: code:addons/stock_partner_delivery_window/models/stock_picking.py:0
#, python-format
msgid ""
"The scheduled date is %s (%s), but the partner is set to prefer deliveries on following time windows:\n"
"%s"
msgstr ""

#. module: stock_partner_delivery_window
#: code:addons/stock_partner_delivery_window/models/stock_picking.py:0
#, python-format
msgid ""
"The scheduled date is {} ({}), but the partner is set to prefer deliveries "
"on working days."
msgstr ""

#. module: stock_partner_delivery_window
#: model:ir.model.fields,field_description:stock_partner_delivery_window.field_partner_delivery_time_window__time_window_weekday_ids
msgid "Time Window Weekday"
msgstr ""

#. module: stock_partner_delivery_window
#: model:ir.model.fields,field_description:stock_partner_delivery_window.field_partner_delivery_time_window__tz
msgid "Timezone"
msgstr ""

#. module: stock_partner_delivery_window
#: model:ir.model.fields,field_description:stock_partner_delivery_window.field_partner_delivery_time_window__time_window_end
msgid "To"
msgstr ""

#. module: stock_partner_delivery_window
#: model:ir.model,name:stock_partner_delivery_window.model_stock_picking
msgid "Transfer"
msgstr ""

#. module: stock_partner_delivery_window
#: model:ir.model.fields.selection,name:stock_partner_delivery_window.selection__res_partner__delivery_time_preference__workdays
msgid "Weekdays (Monday to Friday)"
msgstr ""

#. module: stock_partner_delivery_window
#: model:ir.model.fields,help:stock_partner_delivery_window.field_partner_delivery_time_window__tz
msgid ""
"When printing documents and exporting/importing data, time values are computed according to this timezone.\n"
"If the timezone is not set, UTC (Coordinated Universal Time) is used.\n"
"Anywhere else, time values are computed according to the time offset of your web client."
msgstr ""
3 changes: 3 additions & 0 deletions stock_partner_delivery_window/models/__init__.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
from . import delivery_time_window
from . import res_partner
from . import stock_picking
20 changes: 20 additions & 0 deletions stock_partner_delivery_window/models/delivery_time_window.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
# Copyright 2020 Camptocamp SA
# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl)

from odoo import api, fields, models


class DeliveryTimeWindow(models.Model):
_name = "partner.delivery.time.window"
_inherit = "time.window.mixin"
_description = "Preferred delivery time windows"
_time_window_overlap_check_field = "partner_id"

partner_id = fields.Many2one(
"res.partner", required=True, index=True, ondelete="cascade"
)
tz = fields.Selection(related="partner_id.tz", readonly=True)

@api.constrains("partner_id")
def check_window_no_overlaps(self):
return super().check_window_no_overlaps()
Loading