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][ADD] stock_partner_delivery_window #1378

Merged
Merged
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
ad55c25
Add stock_partner_delivery_window
grindtildeath Mar 31, 2020
be78d59
[IMP] stock_partner_delivery_window: black, isort, prettier
dzungtran89 Jan 17, 2021
276bc01
[MIG] stock_partner_delivery_window: Migration to 14.0
dzungtran89 Jan 17, 2021
86eb548
s_p_delivery_window: time format improvements
sebalix Mar 30, 2021
8ed3320
stock_partner_delivery_window: ease warning msg check/override
simahawk Apr 2, 2021
8464cfa
stock_partner_delivery_window: Cleanup
mmequignon Apr 6, 2021
3942d7d
s_p_delivery_window: Add working days as delivery schedule preference
mmequignon Apr 8, 2021
e4e353c
[FW][14.0] stock_partner_delivery_window: Fix default value on delive…
grindtildeath Jun 30, 2021
cdb6d76
[UPD] Update stock_partner_delivery_window.pot
oca-travis Jul 19, 2021
a0ba5cc
[ADD] icon.png
OCA-git-bot Jul 19, 2021
7d3072e
stock_partner_delivery_window 14.0.1.0.1
OCA-git-bot Jul 19, 2021
fd251b5
[FIX] s_p_delivery_window: selection attribute will be ignored as the…
sebalix Aug 3, 2021
e5949c7
stock_partner_delivery_window 14.0.1.1.0
OCA-git-bot Aug 5, 2021
b4129da
[FIX] stock_partner_delivery_window version
gurneyalex Sep 13, 2021
dc948bf
[IMP] stock_partner_delivery_window: copy time window ids of partner
hailangvn Dec 12, 2021
6fff0f9
stock_partner_delivery_window 14.0.1.2.0
OCA-git-bot Dec 22, 2021
242b5d4
[14.0][FIX] Align development statuses
rousseldenis Aug 8, 2022
48984e9
[UPD] README.rst
OCA-git-bot Aug 8, 2022
d4a35e5
[UPD] stock_partner_delivery_window: Upgrade to Beta
rousseldenis Aug 8, 2022
bda7d3f
[UPD] README.rst
OCA-git-bot Aug 8, 2022
1d12f52
stock_partner_delivery_window 14.0.1.2.1
OCA-git-bot Aug 8, 2022
10957ee
s_p_delivery_window: Make delivery windows inclusive
mmequignon Mar 16, 2023
23ebf8c
stock_partner_delivery_window 14.0.1.2.2
OCA-git-bot Mar 21, 2023
749f6db
[IMP] stock_partner_delivery_window: black, isort, prettier
nguyenminhchien Sep 14, 2023
18daa31
[MIG] stock_partner_delivery_window: Migration to 16.0
nguyenminhchien Sep 14, 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 16.0\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2023-09-14 09:01+0000\n"
"PO-Revision-Date: 2023-09-14 09:01+0000\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 "{}: {}"
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
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 {} to {}"
msgstr ""

#. module: stock_partner_delivery_window
#: model:ir.model.fields,field_description:stock_partner_delivery_window.field_partner_delivery_time_window__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
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
#. odoo-python
#: 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
#. odoo-python
#: 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
#. odoo-python
#: code:addons/stock_partner_delivery_window/models/stock_picking.py:0
#, python-format
msgid ""
"The scheduled date is {date} ({tz}), but the partner is set to prefer deliveries on following time windows:\n"
"{window}"
msgstr ""

#. module: stock_partner_delivery_window
#. odoo-python
#: 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