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

15.0 mig stock partner delivery window #1146

Closed
wants to merge 23 commits into from
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
23 commits
Select commit Hold shift + click to select a range
b2f2d28
Add stock_partner_delivery_window
grindtildeath Mar 31, 2020
7ad832d
[IMP] stock_partner_delivery_window: black, isort, prettier
dzungtran89 Jan 17, 2021
b27e56e
[MIG] stock_partner_delivery_window: Migration to 14.0
dzungtran89 Jan 17, 2021
cd3b92e
s_p_delivery_window: time format improvements
sebalix Mar 30, 2021
33e83c7
stock_partner_delivery_window: ease warning msg check/override
simahawk Apr 2, 2021
9004cd7
stock_partner_delivery_window: Cleanup
mmequignon Apr 6, 2021
757ab12
s_p_delivery_window: Add working days as delivery schedule preference
mmequignon Apr 8, 2021
7cf1921
[FW][14.0] stock_partner_delivery_window: Fix default value on delive…
grindtildeath Jun 30, 2021
4994e83
[UPD] Update stock_partner_delivery_window.pot
oca-travis Jul 19, 2021
d143a16
[ADD] icon.png
OCA-git-bot Jul 19, 2021
53879a4
stock_partner_delivery_window 14.0.1.0.1
OCA-git-bot Jul 19, 2021
c92d3bb
[FIX] s_p_delivery_window: selection attribute will be ignored as the…
sebalix Aug 3, 2021
877ba2d
stock_partner_delivery_window 14.0.1.1.0
OCA-git-bot Aug 5, 2021
5b7ff7f
[FIX] stock_partner_delivery_window version
gurneyalex Sep 13, 2021
d5b62e7
[IMP] stock_partner_delivery_window: copy time window ids of partner
hailangvn Dec 12, 2021
7e2650f
stock_partner_delivery_window 14.0.1.2.0
OCA-git-bot Dec 22, 2021
7754ebf
[14.0][FIX] Align development statuses
rousseldenis Aug 8, 2022
30b0d82
[UPD] README.rst
OCA-git-bot Aug 8, 2022
0eb82aa
[UPD] stock_partner_delivery_window: Upgrade to Beta
rousseldenis Aug 8, 2022
aa27949
[UPD] README.rst
OCA-git-bot Aug 8, 2022
1fbeab3
stock_partner_delivery_window 14.0.1.2.1
OCA-git-bot Aug 8, 2022
263189b
[IMP] stock_partner_delivery_window: black, isort, prettier
Dec 1, 2022
9f1098d
[MIG] stock_partner_delivery_window: Migration to 15.0
Dec 2, 2022
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": "15.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
23 changes: 23 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,23 @@
# 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