Add oca-purchase submodule with 96 purchase modules moved from oca-workflow-process

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
Ernad Husremovic 2025-08-30 18:00:40 +02:00
parent b0628ee8ea
commit 7378b233e9
3994 changed files with 334316 additions and 0 deletions

View file

@ -0,0 +1,46 @@
# Purchase Date Planned Manual
Odoo addon: purchase_date_planned_manual
## Installation
```bash
pip install odoo-bringout-oca-purchase-workflow-purchase_date_planned_manual
```
## Dependencies
This addon depends on:
- purchase_stock
## Manifest Information
- **Name**: Purchase Date Planned Manual
- **Version**: 16.0.1.0.0
- **Category**: Purchase Management
- **License**: AGPL-3
- **Installable**: True
## Source
Based on [OCA/purchase-workflow](https://github.com/OCA/purchase-workflow) branch 16.0, addon `purchase_date_planned_manual`.
## License
This package maintains the original AGPL-3 license from the upstream Odoo project.
## Documentation
- Overview: doc/OVERVIEW.md
- Architecture: doc/ARCHITECTURE.md
- Models: doc/MODELS.md
- Controllers: doc/CONTROLLERS.md
- Wizards: doc/WIZARDS.md
- Reports: doc/REPORTS.md
- Security: doc/SECURITY.md
- Install: doc/INSTALL.md
- Usage: doc/USAGE.md
- Configuration: doc/CONFIGURATION.md
- Dependencies: doc/DEPENDENCIES.md
- Troubleshooting: doc/TROUBLESHOOTING.md
- FAQ: doc/FAQ.md

View file

@ -0,0 +1,32 @@
# Architecture
```mermaid
flowchart TD
U[Users] -->|HTTP| V[Views and QWeb Templates]
V --> C[Controllers]
V --> W[Wizards Transient Models]
C --> M[Models and ORM]
W --> M
M --> R[Reports]
DX[Data XML] --> M
S[Security ACLs and Groups] -. enforces .-> M
subgraph Purchase_date_planned_manual Module - purchase_date_planned_manual
direction LR
M:::layer
W:::layer
C:::layer
V:::layer
R:::layer
S:::layer
DX:::layer
end
classDef layer fill:#eef8ff,stroke:#6ea8fe,stroke-width:1px
```
Notes
- Views include tree/form/kanban templates and report templates.
- Controllers provide website/portal routes when present.
- Wizards are UI flows implemented with `models.TransientModel`.
- Data XML loads data/demo records; Security defines groups and access.

View file

@ -0,0 +1,3 @@
# Configuration
Refer to Odoo settings for purchase_date_planned_manual. Configure related models, access rights, and options as needed.

View file

@ -0,0 +1,3 @@
# Controllers
This module does not define custom HTTP controllers.

View file

@ -0,0 +1,5 @@
# Dependencies
This addon depends on:
- [purchase_stock](https://github.com/bringout/oca-ocb-warehouse/tree/0ee5ffef60413a71dceb350918ad3fb572ec1875/odoo-bringout-oca-ocb-purchase_stock)

View file

@ -0,0 +1,4 @@
# FAQ
- Q: Which Odoo version? A: 16.0 (OCA/OCB packaged).
- Q: How to enable? A: Start server with --addon purchase_date_planned_manual or install in UI.

View file

@ -0,0 +1,7 @@
# Install
```bash
pip install odoo-bringout-oca-purchase-workflow-purchase_date_planned_manual"
# or
uv pip install odoo-bringout-oca-purchase-workflow-purchase_date_planned_manual"
```

View file

@ -0,0 +1,12 @@
# Models
Detected core models and extensions in purchase_date_planned_manual.
```mermaid
classDiagram
class purchase_order_line
```
Notes
- Classes show model technical names; fields omitted for brevity.
- Items listed under _inherit are extensions of existing models.

View file

@ -0,0 +1,6 @@
# Overview
Packaged Odoo addon: purchase_date_planned_manual. Provides features documented in upstream Odoo 16 under this addon.
- Source: OCA/OCB 16.0, addon purchase_date_planned_manual
- License: LGPL-3

View file

@ -0,0 +1,3 @@
# Reports
This module does not define custom reports.

View file

@ -0,0 +1,8 @@
# Security
This module does not define custom security rules or access controls beyond Odoo defaults.
Default Odoo security applies:
- Base user access through standard groups
- Model access inherited from dependencies
- No custom row-level security rules

View file

@ -0,0 +1,5 @@
# Troubleshooting
- Ensure Python and Odoo environment matches repo guidance.
- Check database connectivity and logs if startup fails.
- Validate that dependent addons listed in DEPENDENCIES.md are installed.

View file

@ -0,0 +1,7 @@
# Usage
Start Odoo including this addon (from repo root):
```bash
python3 scripts/nix_odoo_web_server.py --db-name mydb --addon purchase_date_planned_manual
```

View file

@ -0,0 +1,3 @@
# Wizards
This module does not include UI wizards.

View file

@ -0,0 +1,114 @@
============================
Purchase Date Planned Manual
============================
..
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!! This file is generated by oca-gen-addon-readme !!
!! changes will be overwritten. !!
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!! source digest: sha256:217b6e0e3b8319e0da9a606561c1d63c21d3c04d7d5b7ffda4e1d8c101f3f593
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
.. |badge1| image:: https://img.shields.io/badge/maturity-Mature-brightgreen.png
:target: https://odoo-community.org/page/development-status
:alt: Mature
.. |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/16.0/purchase_date_planned_manual
: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-16-0/purchase-workflow-16-0-purchase_date_planned_manual
: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=16.0
:alt: Try me on Runboat
|badge1| |badge2| |badge3| |badge4| |badge5|
This module makes the system to always respect the planned (or scheduled)
date set by the user when creating a Purchase Order.
Additionally, this module modifies the PO views and sets in red the lines
that are predicted to arrive late compared to the scheduled date and vendor
lead time.
**Table of contents**
.. contents::
:local:
Usage
=====
To use this module you could follow any of the two options below:
#. Go to 'Purchase' and create a purchase order.
#. Manually set the scheduled date in the PO lines.
#. This date will never be modified by the system and the lines that are
expected to be late are highlighted in red.
Or:
#. Create a procurement order for a product that can be bought and have the
route 'buy' activated.
#. Run the procurement.
#. Now the scheduled date in the procurement is respected even if the line is
added to a previously existing PO.
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_date_planned_manual%0Aversion:%2016.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
~~~~~~~
* Eficent
Contributors
~~~~~~~~~~~~
* Lois Rilo <lois.rilo@eficent.com>
* Chau Le <chaulb@trobz.com>
Other credits
~~~~~~~~~~~~~
The migration of this module from 12.0 to 16.0 was 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.
.. |maintainer-lreficent| image:: https://github.com/lreficent.png?size=40px
:target: https://github.com/lreficent
:alt: lreficent
Current `maintainer <https://odoo-community.org/page/maintainer-role>`__:
|maintainer-lreficent|
This module is part of the `OCA/purchase-workflow <https://github.com/OCA/purchase-workflow/tree/16.0/purchase_date_planned_manual>`_ project on GitHub.
You are welcome to contribute. To learn how please visit https://odoo-community.org/page/Contribute.

View file

@ -0,0 +1,22 @@
# Copyright 2017 Eficent Business and IT Consulting Services S.L.
# (http://www.eficent.com)
# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl.html).
{
"name": "Purchase Date Planned Manual",
"summary": "This module makes the system to always respect the planned "
"(or scheduled) date in PO lines.",
"version": "16.0.1.0.0",
"development_status": "Mature",
"author": "Eficent, " "Odoo Community Association (OCA)",
"maintainers": ["lreficent"],
"website": "https://github.com/OCA/purchase-workflow",
"category": "Purchase Management",
"depends": ["purchase_stock"],
"data": [
"views/purchase_order_view.xml",
],
"license": "AGPL-3",
"installable": True,
"application": False,
}

View file

@ -0,0 +1,45 @@
# Translation of Odoo Server.
# This file contains the translation of the following modules:
# * purchase_date_planned_manual
#
msgid ""
msgstr ""
"Project-Id-Version: Odoo Server 16.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_date_planned_manual
#: model_terms:ir.ui.view,arch_db:purchase_date_planned_manual.view_purchase_order_form
msgid "Arriving late"
msgstr "Stiže kasno"
#. module: purchase_date_planned_manual
#: model:ir.model.fields,field_description:purchase_date_planned_manual.field_purchase_order_line__predicted_arrival_late
msgid "Planned to be late"
msgstr "Planirano je da kasni"
#. module: purchase_date_planned_manual
#: model:ir.model,name:purchase_date_planned_manual.model_purchase_order_line
msgid "Purchase Order Line"
msgstr "Stavka naloga za nabavu"
#. module: purchase_date_planned_manual
#. odoo-python
#: code:addons/purchase_date_planned_manual/models/purchase_order.py:0
#, python-format
msgid ""
"This line is scheduled for: %s. \n"
" However it is now planned to arrive late."
msgstr ""
#. module: purchase_date_planned_manual
#: model:ir.model.fields,help:purchase_date_planned_manual.field_purchase_order_line__predicted_arrival_late
msgid ""
"True if the arrival at scheduled date is planned to be late. Takes into "
"account the vendor lead time and the company margin for lead times."
msgstr ""

View file

@ -0,0 +1,60 @@
# Translation of Odoo Server.
# This file contains the translation of the following modules:
# * purchase_date_planned_manual
#
# Translators:
# OCA Transbot <transbot@odoo-community.org>, 2017
msgid ""
msgstr ""
"Project-Id-Version: Odoo Server 9.0c\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2017-06-23 00:46+0000\n"
"PO-Revision-Date: 2017-06-23 00:46+0000\n"
"Last-Translator: OCA Transbot <transbot@odoo-community.org>, 2017\n"
"Language-Team: German (https://www.transifex.com/oca/teams/23907/de/)\n"
"Language: de\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: \n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
#. module: purchase_date_planned_manual
#: model_terms:ir.ui.view,arch_db:purchase_date_planned_manual.view_purchase_order_form
msgid "Arriving late"
msgstr ""
#. module: purchase_date_planned_manual
#: model:ir.model.fields,field_description:purchase_date_planned_manual.field_purchase_order_line__predicted_arrival_late
msgid "Planned to be late"
msgstr ""
#. module: purchase_date_planned_manual
#: model:ir.model,name:purchase_date_planned_manual.model_purchase_order_line
msgid "Purchase Order Line"
msgstr "Bestellposition"
#. module: purchase_date_planned_manual
#: model:ir.model,name:purchase_date_planned_manual.model_stock_rule
msgid "Stock Rule"
msgstr ""
#. module: purchase_date_planned_manual
#: code:addons/purchase_date_planned_manual/models/purchase_order.py:50
#, python-format
msgid ""
"This line is scheduled for: %s. \n"
" However it is now planned to arrive late."
msgstr ""
#. module: purchase_date_planned_manual
#: model:ir.model.fields,help:purchase_date_planned_manual.field_purchase_order_line__predicted_arrival_late
msgid ""
"True if the arrival at scheduled date is planned to be late. Takes into "
"account the vendor lead time and the company margin for lead times."
msgstr ""
#~ msgid "Procurement"
#~ msgstr "Beschaffung"
#~ msgid "Purchase Order"
#~ msgstr "Bestellauftrag"

View file

@ -0,0 +1,60 @@
# Translation of Odoo Server.
# This file contains the translation of the following modules:
# * purchase_date_planned_manual
#
# Translators:
# OCA Transbot <transbot@odoo-community.org>, 2017
msgid ""
msgstr ""
"Project-Id-Version: Odoo Server 9.0c\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2017-06-23 00:46+0000\n"
"PO-Revision-Date: 2017-06-23 00:46+0000\n"
"Last-Translator: OCA Transbot <transbot@odoo-community.org>, 2017\n"
"Language-Team: Spanish (https://www.transifex.com/oca/teams/23907/es/)\n"
"Language: es\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: \n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
#. module: purchase_date_planned_manual
#: model_terms:ir.ui.view,arch_db:purchase_date_planned_manual.view_purchase_order_form
msgid "Arriving late"
msgstr ""
#. module: purchase_date_planned_manual
#: model:ir.model.fields,field_description:purchase_date_planned_manual.field_purchase_order_line__predicted_arrival_late
msgid "Planned to be late"
msgstr ""
#. module: purchase_date_planned_manual
#: model:ir.model,name:purchase_date_planned_manual.model_purchase_order_line
msgid "Purchase Order Line"
msgstr "Línea orden de compra"
#. module: purchase_date_planned_manual
#: model:ir.model,name:purchase_date_planned_manual.model_stock_rule
msgid "Stock Rule"
msgstr ""
#. module: purchase_date_planned_manual
#: code:addons/purchase_date_planned_manual/models/purchase_order.py:50
#, python-format
msgid ""
"This line is scheduled for: %s. \n"
" However it is now planned to arrive late."
msgstr ""
#. module: purchase_date_planned_manual
#: model:ir.model.fields,help:purchase_date_planned_manual.field_purchase_order_line__predicted_arrival_late
msgid ""
"True if the arrival at scheduled date is planned to be late. Takes into "
"account the vendor lead time and the company margin for lead times."
msgstr ""
#~ msgid "Procurement"
#~ msgstr "Abastecimiento"
#~ msgid "Purchase Order"
#~ msgstr "Pedido de compra"

View file

@ -0,0 +1,59 @@
# Translation of Odoo Server.
# This file contains the translation of the following modules:
# * purchase_date_planned_manual
#
# Translators:
# OCA Transbot <transbot@odoo-community.org>, 2017
# Juan González <bifomania@protonmail.com>, 2017
msgid ""
msgstr ""
"Project-Id-Version: Odoo Server 9.0c\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2017-06-23 00:46+0000\n"
"PO-Revision-Date: 2017-06-23 00:46+0000\n"
"Last-Translator: Juan González <bifomania@protonmail.com>, 2017\n"
"Language-Team: Spanish (Mexico) (https://www.transifex.com/oca/teams/23907/"
"es_MX/)\n"
"Language: es_MX\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: \n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
#. module: purchase_date_planned_manual
#: model_terms:ir.ui.view,arch_db:purchase_date_planned_manual.view_purchase_order_form
msgid "Arriving late"
msgstr ""
#. module: purchase_date_planned_manual
#: model:ir.model.fields,field_description:purchase_date_planned_manual.field_purchase_order_line__predicted_arrival_late
msgid "Planned to be late"
msgstr ""
#. module: purchase_date_planned_manual
#: model:ir.model,name:purchase_date_planned_manual.model_purchase_order_line
msgid "Purchase Order Line"
msgstr "Línea de orden de compra"
#. module: purchase_date_planned_manual
#: model:ir.model,name:purchase_date_planned_manual.model_stock_rule
msgid "Stock Rule"
msgstr ""
#. module: purchase_date_planned_manual
#: code:addons/purchase_date_planned_manual/models/purchase_order.py:50
#, python-format
msgid ""
"This line is scheduled for: %s. \n"
" However it is now planned to arrive late."
msgstr ""
#. module: purchase_date_planned_manual
#: model:ir.model.fields,help:purchase_date_planned_manual.field_purchase_order_line__predicted_arrival_late
msgid ""
"True if the arrival at scheduled date is planned to be late. Takes into "
"account the vendor lead time and the company margin for lead times."
msgstr ""
#~ msgid "Procurement"
#~ msgstr "Contratación"

View file

@ -0,0 +1,58 @@
# Translation of Odoo Server.
# This file contains the translation of the following modules:
# * purchase_date_planned_manual
#
# Translators:
# Timo Talvitie <timo.talvitie@vizucom.com>, 2017
# OCA Transbot <transbot@odoo-community.org>, 2017
msgid ""
msgstr ""
"Project-Id-Version: Odoo Server 9.0c\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2017-06-23 00:46+0000\n"
"PO-Revision-Date: 2017-06-23 00:46+0000\n"
"Last-Translator: OCA Transbot <transbot@odoo-community.org>, 2017\n"
"Language-Team: Finnish (https://www.transifex.com/oca/teams/23907/fi/)\n"
"Language: fi\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: \n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
#. module: purchase_date_planned_manual
#: model_terms:ir.ui.view,arch_db:purchase_date_planned_manual.view_purchase_order_form
msgid "Arriving late"
msgstr ""
#. module: purchase_date_planned_manual
#: model:ir.model.fields,field_description:purchase_date_planned_manual.field_purchase_order_line__predicted_arrival_late
msgid "Planned to be late"
msgstr ""
#. module: purchase_date_planned_manual
#: model:ir.model,name:purchase_date_planned_manual.model_purchase_order_line
msgid "Purchase Order Line"
msgstr "Ostotilausrivi"
#. module: purchase_date_planned_manual
#: model:ir.model,name:purchase_date_planned_manual.model_stock_rule
msgid "Stock Rule"
msgstr ""
#. module: purchase_date_planned_manual
#: code:addons/purchase_date_planned_manual/models/purchase_order.py:50
#, python-format
msgid ""
"This line is scheduled for: %s. \n"
" However it is now planned to arrive late."
msgstr ""
#. module: purchase_date_planned_manual
#: model:ir.model.fields,help:purchase_date_planned_manual.field_purchase_order_line__predicted_arrival_late
msgid ""
"True if the arrival at scheduled date is planned to be late. Takes into "
"account the vendor lead time and the company margin for lead times."
msgstr ""
#~ msgid "Purchase Order"
#~ msgstr "Ostotilaus"

View file

@ -0,0 +1,60 @@
# Translation of Odoo Server.
# This file contains the translation of the following modules:
# * purchase_date_planned_manual
#
# Translators:
# OCA Transbot <transbot@odoo-community.org>, 2017
msgid ""
msgstr ""
"Project-Id-Version: Odoo Server 9.0c\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2017-06-23 00:46+0000\n"
"PO-Revision-Date: 2017-06-23 00:46+0000\n"
"Last-Translator: OCA Transbot <transbot@odoo-community.org>, 2017\n"
"Language-Team: French (https://www.transifex.com/oca/teams/23907/fr/)\n"
"Language: fr\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: \n"
"Plural-Forms: nplurals=2; plural=(n > 1);\n"
#. module: purchase_date_planned_manual
#: model_terms:ir.ui.view,arch_db:purchase_date_planned_manual.view_purchase_order_form
msgid "Arriving late"
msgstr ""
#. module: purchase_date_planned_manual
#: model:ir.model.fields,field_description:purchase_date_planned_manual.field_purchase_order_line__predicted_arrival_late
msgid "Planned to be late"
msgstr ""
#. module: purchase_date_planned_manual
#: model:ir.model,name:purchase_date_planned_manual.model_purchase_order_line
msgid "Purchase Order Line"
msgstr "Ligne de commande d'achat"
#. module: purchase_date_planned_manual
#: model:ir.model,name:purchase_date_planned_manual.model_stock_rule
msgid "Stock Rule"
msgstr ""
#. module: purchase_date_planned_manual
#: code:addons/purchase_date_planned_manual/models/purchase_order.py:50
#, python-format
msgid ""
"This line is scheduled for: %s. \n"
" However it is now planned to arrive late."
msgstr ""
#. module: purchase_date_planned_manual
#: model:ir.model.fields,help:purchase_date_planned_manual.field_purchase_order_line__predicted_arrival_late
msgid ""
"True if the arrival at scheduled date is planned to be late. Takes into "
"account the vendor lead time and the company margin for lead times."
msgstr ""
#~ msgid "Procurement"
#~ msgstr "Procurement"
#~ msgid "Purchase Order"
#~ msgstr "Commande d'achat"

View file

@ -0,0 +1,58 @@
# Translation of Odoo Server.
# This file contains the translation of the following modules:
# * purchase_date_planned_manual
#
# Translators:
# OCA Transbot <transbot@odoo-community.org>, 2017
msgid ""
msgstr ""
"Project-Id-Version: Odoo Server 9.0c\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2017-06-23 00:46+0000\n"
"PO-Revision-Date: 2017-06-23 00:46+0000\n"
"Last-Translator: OCA Transbot <transbot@odoo-community.org>, 2017\n"
"Language-Team: French (France) (https://www.transifex.com/oca/teams/23907/"
"fr_FR/)\n"
"Language: fr_FR\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: \n"
"Plural-Forms: nplurals=2; plural=(n > 1);\n"
#. module: purchase_date_planned_manual
#: model_terms:ir.ui.view,arch_db:purchase_date_planned_manual.view_purchase_order_form
msgid "Arriving late"
msgstr ""
#. module: purchase_date_planned_manual
#: model:ir.model.fields,field_description:purchase_date_planned_manual.field_purchase_order_line__predicted_arrival_late
msgid "Planned to be late"
msgstr ""
#. module: purchase_date_planned_manual
#: model:ir.model,name:purchase_date_planned_manual.model_purchase_order_line
msgid "Purchase Order Line"
msgstr ""
#. module: purchase_date_planned_manual
#: model:ir.model,name:purchase_date_planned_manual.model_stock_rule
msgid "Stock Rule"
msgstr ""
#. module: purchase_date_planned_manual
#: code:addons/purchase_date_planned_manual/models/purchase_order.py:50
#, python-format
msgid ""
"This line is scheduled for: %s. \n"
" However it is now planned to arrive late."
msgstr ""
#. module: purchase_date_planned_manual
#: model:ir.model.fields,help:purchase_date_planned_manual.field_purchase_order_line__predicted_arrival_late
msgid ""
"True if the arrival at scheduled date is planned to be late. Takes into "
"account the vendor lead time and the company margin for lead times."
msgstr ""
#~ msgid "Purchase Order"
#~ msgstr "Bon de commande"

View file

@ -0,0 +1,57 @@
# Translation of Odoo Server.
# This file contains the translation of the following modules:
# * purchase_date_planned_manual
#
# Translators:
# Alejandro Santana <alejandrosantana@anubia.es>, 2017
msgid ""
msgstr ""
"Project-Id-Version: Odoo Server 9.0c\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2017-06-23 00:46+0000\n"
"PO-Revision-Date: 2017-06-23 00:46+0000\n"
"Last-Translator: Alejandro Santana <alejandrosantana@anubia.es>, 2017\n"
"Language-Team: Galician (https://www.transifex.com/oca/teams/23907/gl/)\n"
"Language: gl\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: \n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
#. module: purchase_date_planned_manual
#: model_terms:ir.ui.view,arch_db:purchase_date_planned_manual.view_purchase_order_form
msgid "Arriving late"
msgstr ""
#. module: purchase_date_planned_manual
#: model:ir.model.fields,field_description:purchase_date_planned_manual.field_purchase_order_line__predicted_arrival_late
msgid "Planned to be late"
msgstr ""
#. module: purchase_date_planned_manual
#: model:ir.model,name:purchase_date_planned_manual.model_purchase_order_line
msgid "Purchase Order Line"
msgstr ""
#. module: purchase_date_planned_manual
#: model:ir.model,name:purchase_date_planned_manual.model_stock_rule
msgid "Stock Rule"
msgstr ""
#. module: purchase_date_planned_manual
#: code:addons/purchase_date_planned_manual/models/purchase_order.py:50
#, python-format
msgid ""
"This line is scheduled for: %s. \n"
" However it is now planned to arrive late."
msgstr ""
#. module: purchase_date_planned_manual
#: model:ir.model.fields,help:purchase_date_planned_manual.field_purchase_order_line__predicted_arrival_late
msgid ""
"True if the arrival at scheduled date is planned to be late. Takes into "
"account the vendor lead time and the company margin for lead times."
msgstr ""
#~ msgid "Purchase Order"
#~ msgstr "Orde de compra"

View file

@ -0,0 +1,58 @@
# Translation of Odoo Server.
# This file contains the translation of the following modules:
# * purchase_date_planned_manual
#
# Translators:
# OCA Transbot <transbot@odoo-community.org>, 2017
msgid ""
msgstr ""
"Project-Id-Version: Odoo Server 9.0c\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2017-06-23 00:46+0000\n"
"PO-Revision-Date: 2017-06-23 00:46+0000\n"
"Last-Translator: OCA Transbot <transbot@odoo-community.org>, 2017\n"
"Language-Team: Croatian (https://www.transifex.com/oca/teams/23907/hr/)\n"
"Language: hr\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: \n"
"Plural-Forms: nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && n"
"%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n"
#. module: purchase_date_planned_manual
#: model_terms:ir.ui.view,arch_db:purchase_date_planned_manual.view_purchase_order_form
msgid "Arriving late"
msgstr ""
#. module: purchase_date_planned_manual
#: model:ir.model.fields,field_description:purchase_date_planned_manual.field_purchase_order_line__predicted_arrival_late
msgid "Planned to be late"
msgstr ""
#. module: purchase_date_planned_manual
#: model:ir.model,name:purchase_date_planned_manual.model_purchase_order_line
msgid "Purchase Order Line"
msgstr ""
#. module: purchase_date_planned_manual
#: model:ir.model,name:purchase_date_planned_manual.model_stock_rule
msgid "Stock Rule"
msgstr ""
#. module: purchase_date_planned_manual
#: code:addons/purchase_date_planned_manual/models/purchase_order.py:50
#, python-format
msgid ""
"This line is scheduled for: %s. \n"
" However it is now planned to arrive late."
msgstr ""
#. module: purchase_date_planned_manual
#: model:ir.model.fields,help:purchase_date_planned_manual.field_purchase_order_line__predicted_arrival_late
msgid ""
"True if the arrival at scheduled date is planned to be late. Takes into "
"account the vendor lead time and the company margin for lead times."
msgstr ""
#~ msgid "Procurement"
#~ msgstr "Nabava"

View file

@ -0,0 +1,66 @@
# Translation of Odoo Server.
# This file contains the translation of the following modules:
# * purchase_date_planned_manual
#
# Translators:
# OCA Transbot <transbot@odoo-community.org>, 2017
msgid ""
msgstr ""
"Project-Id-Version: Odoo Server 9.0c\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2017-06-23 00:46+0000\n"
"PO-Revision-Date: 2024-06-15 19:36+0000\n"
"Last-Translator: mymage <stefano.consolaro@mymage.it>\n"
"Language-Team: Italian (https://www.transifex.com/oca/teams/23907/it/)\n"
"Language: it\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: \n"
"Plural-Forms: nplurals=2; plural=n != 1;\n"
"X-Generator: Weblate 4.17\n"
#. module: purchase_date_planned_manual
#: model_terms:ir.ui.view,arch_db:purchase_date_planned_manual.view_purchase_order_form
msgid "Arriving late"
msgstr "Arrivo in ritardo"
#. module: purchase_date_planned_manual
#: model:ir.model.fields,field_description:purchase_date_planned_manual.field_purchase_order_line__predicted_arrival_late
msgid "Planned to be late"
msgstr "Pianificato per essere in ritardo"
#. module: purchase_date_planned_manual
#: model:ir.model,name:purchase_date_planned_manual.model_purchase_order_line
msgid "Purchase Order Line"
msgstr "Riga ordine di acquisto"
#. module: purchase_date_planned_manual
#: model:ir.model,name:purchase_date_planned_manual.model_stock_rule
msgid "Stock Rule"
msgstr "Regola di magazzino"
#. module: purchase_date_planned_manual
#: code:addons/purchase_date_planned_manual/models/purchase_order.py:50
#, python-format
msgid ""
"This line is scheduled for: %s. \n"
" However it is now planned to arrive late."
msgstr ""
"Questa riga è schedulata per : %s.\n"
"Comunque non è pianificata per arrivare in ritardo."
#. module: purchase_date_planned_manual
#: model:ir.model.fields,help:purchase_date_planned_manual.field_purchase_order_line__predicted_arrival_late
msgid ""
"True if the arrival at scheduled date is planned to be late. Takes into "
"account the vendor lead time and the company margin for lead times."
msgstr ""
"Vero se l'arrivo alla data schedulata è pianificato per essere in ritardo. "
"Tiene in considerazione il tempo di attraversamento del fornitore e il "
"margine dell'azienda per il tempi di attraversamento."
#~ msgid "Procurement"
#~ msgstr "Approvvigionamento"
#~ msgid "Purchase Order"
#~ msgstr "Ordine Acquisto"

View file

@ -0,0 +1,57 @@
# Translation of Odoo Server.
# This file contains the translation of the following modules:
# * purchase_date_planned_manual
#
# Translators:
# OCA Transbot <transbot@odoo-community.org>, 2017
msgid ""
msgstr ""
"Project-Id-Version: Odoo Server 9.0c\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2017-06-23 00:46+0000\n"
"PO-Revision-Date: 2017-06-23 00:46+0000\n"
"Last-Translator: OCA Transbot <transbot@odoo-community.org>, 2017\n"
"Language-Team: Dutch (https://www.transifex.com/oca/teams/23907/nl/)\n"
"Language: nl\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: \n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
#. module: purchase_date_planned_manual
#: model_terms:ir.ui.view,arch_db:purchase_date_planned_manual.view_purchase_order_form
msgid "Arriving late"
msgstr ""
#. module: purchase_date_planned_manual
#: model:ir.model.fields,field_description:purchase_date_planned_manual.field_purchase_order_line__predicted_arrival_late
msgid "Planned to be late"
msgstr ""
#. module: purchase_date_planned_manual
#: model:ir.model,name:purchase_date_planned_manual.model_purchase_order_line
msgid "Purchase Order Line"
msgstr ""
#. module: purchase_date_planned_manual
#: model:ir.model,name:purchase_date_planned_manual.model_stock_rule
msgid "Stock Rule"
msgstr ""
#. module: purchase_date_planned_manual
#: code:addons/purchase_date_planned_manual/models/purchase_order.py:50
#, python-format
msgid ""
"This line is scheduled for: %s. \n"
" However it is now planned to arrive late."
msgstr ""
#. module: purchase_date_planned_manual
#: model:ir.model.fields,help:purchase_date_planned_manual.field_purchase_order_line__predicted_arrival_late
msgid ""
"True if the arrival at scheduled date is planned to be late. Takes into "
"account the vendor lead time and the company margin for lead times."
msgstr ""
#~ msgid "Purchase Order"
#~ msgstr "Inkooporder"

View file

@ -0,0 +1,67 @@
# Translation of Odoo Server.
# This file contains the translation of the following modules:
# * purchase_date_planned_manual
#
# Translators:
# OCA Transbot <transbot@odoo-community.org>, 2017
msgid ""
msgstr ""
"Project-Id-Version: Odoo Server 9.0c\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2017-06-23 00:46+0000\n"
"PO-Revision-Date: 2022-10-03 18:36+0000\n"
"Last-Translator: Douglas Custódio <douglascstd@yahoo.com>\n"
"Language-Team: Portuguese (Brazil) (https://www.transifex.com/oca/"
"teams/23907/pt_BR/)\n"
"Language: pt_BR\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: \n"
"Plural-Forms: nplurals=2; plural=n > 1;\n"
"X-Generator: Weblate 4.3.2\n"
#. module: purchase_date_planned_manual
#: model_terms:ir.ui.view,arch_db:purchase_date_planned_manual.view_purchase_order_form
msgid "Arriving late"
msgstr "Chegando tarde"
#. module: purchase_date_planned_manual
#: model:ir.model.fields,field_description:purchase_date_planned_manual.field_purchase_order_line__predicted_arrival_late
msgid "Planned to be late"
msgstr "Planejado para chegar atrasado"
#. module: purchase_date_planned_manual
#: model:ir.model,name:purchase_date_planned_manual.model_purchase_order_line
msgid "Purchase Order Line"
msgstr "Linha do Pedido de Compra"
#. module: purchase_date_planned_manual
#: model:ir.model,name:purchase_date_planned_manual.model_stock_rule
msgid "Stock Rule"
msgstr "Regra do Estoque"
#. module: purchase_date_planned_manual
#: code:addons/purchase_date_planned_manual/models/purchase_order.py:50
#, python-format
msgid ""
"This line is scheduled for: %s. \n"
" However it is now planned to arrive late."
msgstr ""
"Esta linha está programada para: %s.\n"
" No entanto, agora está planejado chegar tarde."
#. module: purchase_date_planned_manual
#: model:ir.model.fields,help:purchase_date_planned_manual.field_purchase_order_line__predicted_arrival_late
msgid ""
"True if the arrival at scheduled date is planned to be late. Takes into "
"account the vendor lead time and the company margin for lead times."
msgstr ""
"Verdadeiro se a chegada na data agendada estiver atrasada. Leva em "
"consideração o lead time do fornecedor e a margem da empresa para os lead "
"times."
#~ msgid "Procurement"
#~ msgstr "Aquisição"
#~ msgid "Purchase Order"
#~ msgstr "Pedido de Compra"

View file

@ -0,0 +1,59 @@
# Translation of Odoo Server.
# This file contains the translation of the following modules:
# * purchase_date_planned_manual
#
# Translators:
# OCA Transbot <transbot@odoo-community.org>, 2017
# Pedro Castro Silva <pedrocs@sossia.pt>, 2017
msgid ""
msgstr ""
"Project-Id-Version: Odoo Server 9.0c\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2017-06-23 00:46+0000\n"
"PO-Revision-Date: 2017-06-23 00:46+0000\n"
"Last-Translator: Pedro Castro Silva <pedrocs@sossia.pt>, 2017\n"
"Language-Team: Portuguese (Portugal) (https://www.transifex.com/oca/"
"teams/23907/pt_PT/)\n"
"Language: pt_PT\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: \n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
#. module: purchase_date_planned_manual
#: model_terms:ir.ui.view,arch_db:purchase_date_planned_manual.view_purchase_order_form
msgid "Arriving late"
msgstr ""
#. module: purchase_date_planned_manual
#: model:ir.model.fields,field_description:purchase_date_planned_manual.field_purchase_order_line__predicted_arrival_late
msgid "Planned to be late"
msgstr ""
#. module: purchase_date_planned_manual
#: model:ir.model,name:purchase_date_planned_manual.model_purchase_order_line
msgid "Purchase Order Line"
msgstr "Linha de Encomenda de Compra"
#. module: purchase_date_planned_manual
#: model:ir.model,name:purchase_date_planned_manual.model_stock_rule
msgid "Stock Rule"
msgstr ""
#. module: purchase_date_planned_manual
#: code:addons/purchase_date_planned_manual/models/purchase_order.py:50
#, python-format
msgid ""
"This line is scheduled for: %s. \n"
" However it is now planned to arrive late."
msgstr ""
#. module: purchase_date_planned_manual
#: model:ir.model.fields,help:purchase_date_planned_manual.field_purchase_order_line__predicted_arrival_late
msgid ""
"True if the arrival at scheduled date is planned to be late. Takes into "
"account the vendor lead time and the company margin for lead times."
msgstr ""
#~ msgid "Procurement"
#~ msgstr "Aquisições"

View file

@ -0,0 +1,45 @@
# Translation of Odoo Server.
# This file contains the translation of the following modules:
# * purchase_date_planned_manual
#
msgid ""
msgstr ""
"Project-Id-Version: Odoo Server 16.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_date_planned_manual
#: model_terms:ir.ui.view,arch_db:purchase_date_planned_manual.view_purchase_order_form
msgid "Arriving late"
msgstr ""
#. module: purchase_date_planned_manual
#: model:ir.model.fields,field_description:purchase_date_planned_manual.field_purchase_order_line__predicted_arrival_late
msgid "Planned to be late"
msgstr ""
#. module: purchase_date_planned_manual
#: model:ir.model,name:purchase_date_planned_manual.model_purchase_order_line
msgid "Purchase Order Line"
msgstr ""
#. module: purchase_date_planned_manual
#. odoo-python
#: code:addons/purchase_date_planned_manual/models/purchase_order.py:0
#, python-format
msgid ""
"This line is scheduled for: %s. \n"
" However it is now planned to arrive late."
msgstr ""
#. module: purchase_date_planned_manual
#: model:ir.model.fields,help:purchase_date_planned_manual.field_purchase_order_line__predicted_arrival_late
msgid ""
"True if the arrival at scheduled date is planned to be late. Takes into "
"account the vendor lead time and the company margin for lead times."
msgstr ""

View file

@ -0,0 +1,61 @@
# Translation of Odoo Server.
# This file contains the translation of the following modules:
# * purchase_date_planned_manual
#
# Translators:
# Dorin Hongu <dhongu@gmail.com>, 2017
msgid ""
msgstr ""
"Project-Id-Version: Odoo Server 9.0c\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2017-06-23 00:46+0000\n"
"PO-Revision-Date: 2017-06-23 00:46+0000\n"
"Last-Translator: Dorin Hongu <dhongu@gmail.com>, 2017\n"
"Language-Team: Romanian (https://www.transifex.com/oca/teams/23907/ro/)\n"
"Language: ro\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: \n"
"Plural-Forms: nplurals=3; plural=(n==1?0:(((n%100>19)||((n%100==0)&&(n!=0)))?"
"2:1));\n"
#. module: purchase_date_planned_manual
#: model_terms:ir.ui.view,arch_db:purchase_date_planned_manual.view_purchase_order_form
msgid "Arriving late"
msgstr ""
#. module: purchase_date_planned_manual
#: model:ir.model.fields,field_description:purchase_date_planned_manual.field_purchase_order_line__predicted_arrival_late
msgid "Planned to be late"
msgstr ""
#. module: purchase_date_planned_manual
#: model:ir.model,name:purchase_date_planned_manual.model_purchase_order_line
msgid "Purchase Order Line"
msgstr "Linie comandă achiziție"
#. module: purchase_date_planned_manual
#: model:ir.model,name:purchase_date_planned_manual.model_stock_rule
msgid "Stock Rule"
msgstr ""
#. module: purchase_date_planned_manual
#: code:addons/purchase_date_planned_manual/models/purchase_order.py:50
#, python-format
msgid ""
"This line is scheduled for: %s. \n"
" However it is now planned to arrive late."
msgstr ""
#. module: purchase_date_planned_manual
#: model:ir.model.fields,help:purchase_date_planned_manual.field_purchase_order_line__predicted_arrival_late
msgid ""
"True if the arrival at scheduled date is planned to be late. Takes into "
"account the vendor lead time and the company margin for lead times."
msgstr ""
#~ msgid "Procurement"
#~ msgstr "Aprovizionare"
#~ msgid "Purchase Order"
#~ msgstr "Comandă achiziție"

View file

@ -0,0 +1,67 @@
# Translation of Odoo Server.
# This file contains the translation of the following modules:
# * purchase_date_planned_manual
#
# Translators:
# OCA Transbot <transbot@odoo-community.org>, 2017
msgid ""
msgstr ""
"Project-Id-Version: Odoo Server 9.0c\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2017-06-23 00:46+0000\n"
"PO-Revision-Date: 2021-02-24 11:45+0000\n"
"Last-Translator: Matjaz Mozetic <matjaz@luxim.si>\n"
"Language-Team: Slovenian (https://www.transifex.com/oca/teams/23907/sl/)\n"
"Language: sl\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: \n"
"Plural-Forms: nplurals=4; plural=n%100==1 ? 0 : n%100==2 ? 1 : n%100==3 || n"
"%100==4 ? 2 : 3;\n"
"X-Generator: Weblate 4.3.2\n"
#. module: purchase_date_planned_manual
#: model_terms:ir.ui.view,arch_db:purchase_date_planned_manual.view_purchase_order_form
msgid "Arriving late"
msgstr "Zamuja"
#. module: purchase_date_planned_manual
#: model:ir.model.fields,field_description:purchase_date_planned_manual.field_purchase_order_line__predicted_arrival_late
msgid "Planned to be late"
msgstr "Pričakovana zamuda"
#. module: purchase_date_planned_manual
#: model:ir.model,name:purchase_date_planned_manual.model_purchase_order_line
msgid "Purchase Order Line"
msgstr "Postavka nabavnega naloga"
#. module: purchase_date_planned_manual
#: model:ir.model,name:purchase_date_planned_manual.model_stock_rule
msgid "Stock Rule"
msgstr "Pravilo zaloge"
#. module: purchase_date_planned_manual
#: code:addons/purchase_date_planned_manual/models/purchase_order.py:50
#, python-format
msgid ""
"This line is scheduled for: %s. \n"
" However it is now planned to arrive late."
msgstr ""
"Ta postavka je načrtovana na: %s. \n"
" A zdaj je pričakovana je zamuda."
#. module: purchase_date_planned_manual
#: model:ir.model.fields,help:purchase_date_planned_manual.field_purchase_order_line__predicted_arrival_late
msgid ""
"True if the arrival at scheduled date is planned to be late. Takes into "
"account the vendor lead time and the company margin for lead times."
msgstr ""
"Pravilno, če se pričakuje zamuda glede na načrtovani datum. Upošteva rok "
"dobave dobavitelja in nastavitve družbe glede varnostnih razlik v rokih "
"dobave."
#~ msgid "Procurement"
#~ msgstr "Oskrba"
#~ msgid "Purchase Order"
#~ msgstr "Nabavni nalog"

View file

@ -0,0 +1,58 @@
# Translation of Odoo Server.
# This file contains the translation of the following modules:
# * purchase_date_planned_manual
#
# Translators:
# OCA Transbot <transbot@odoo-community.org>, 2017
msgid ""
msgstr ""
"Project-Id-Version: Odoo Server 9.0c\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2017-06-23 00:46+0000\n"
"PO-Revision-Date: 2017-06-23 00:46+0000\n"
"Last-Translator: OCA Transbot <transbot@odoo-community.org>, 2017\n"
"Language-Team: Turkish (Turkey) (https://www.transifex.com/oca/teams/23907/"
"tr_TR/)\n"
"Language: tr_TR\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: \n"
"Plural-Forms: nplurals=1; plural=0;\n"
#. module: purchase_date_planned_manual
#: model_terms:ir.ui.view,arch_db:purchase_date_planned_manual.view_purchase_order_form
msgid "Arriving late"
msgstr ""
#. module: purchase_date_planned_manual
#: model:ir.model.fields,field_description:purchase_date_planned_manual.field_purchase_order_line__predicted_arrival_late
msgid "Planned to be late"
msgstr ""
#. module: purchase_date_planned_manual
#: model:ir.model,name:purchase_date_planned_manual.model_purchase_order_line
msgid "Purchase Order Line"
msgstr ""
#. module: purchase_date_planned_manual
#: model:ir.model,name:purchase_date_planned_manual.model_stock_rule
msgid "Stock Rule"
msgstr ""
#. module: purchase_date_planned_manual
#: code:addons/purchase_date_planned_manual/models/purchase_order.py:50
#, python-format
msgid ""
"This line is scheduled for: %s. \n"
" However it is now planned to arrive late."
msgstr ""
#. module: purchase_date_planned_manual
#: model:ir.model.fields,help:purchase_date_planned_manual.field_purchase_order_line__predicted_arrival_late
msgid ""
"True if the arrival at scheduled date is planned to be late. Takes into "
"account the vendor lead time and the company margin for lead times."
msgstr ""
#~ msgid "Procurement"
#~ msgstr "Satın alma"

View file

@ -0,0 +1,61 @@
# Translation of Odoo Server.
# This file contains the translation of the following modules:
# * purchase_date_planned_manual
#
# Translators:
# OCA Transbot <transbot@odoo-community.org>, 2017
msgid ""
msgstr ""
"Project-Id-Version: Odoo Server 9.0c\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2017-06-23 00:46+0000\n"
"PO-Revision-Date: 2017-06-23 00:46+0000\n"
"Last-Translator: OCA Transbot <transbot@odoo-community.org>, 2017\n"
"Language-Team: Vietnamese (Viet Nam) (https://www.transifex.com/oca/"
"teams/23907/vi_VN/)\n"
"Language: vi_VN\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: \n"
"Plural-Forms: nplurals=1; plural=0;\n"
#. module: purchase_date_planned_manual
#: model_terms:ir.ui.view,arch_db:purchase_date_planned_manual.view_purchase_order_form
msgid "Arriving late"
msgstr ""
#. module: purchase_date_planned_manual
#: model:ir.model.fields,field_description:purchase_date_planned_manual.field_purchase_order_line__predicted_arrival_late
msgid "Planned to be late"
msgstr ""
#. module: purchase_date_planned_manual
#: model:ir.model,name:purchase_date_planned_manual.model_purchase_order_line
msgid "Purchase Order Line"
msgstr ""
#. module: purchase_date_planned_manual
#: model:ir.model,name:purchase_date_planned_manual.model_stock_rule
msgid "Stock Rule"
msgstr ""
#. module: purchase_date_planned_manual
#: code:addons/purchase_date_planned_manual/models/purchase_order.py:50
#, python-format
msgid ""
"This line is scheduled for: %s. \n"
" However it is now planned to arrive late."
msgstr ""
#. module: purchase_date_planned_manual
#: model:ir.model.fields,help:purchase_date_planned_manual.field_purchase_order_line__predicted_arrival_late
msgid ""
"True if the arrival at scheduled date is planned to be late. Takes into "
"account the vendor lead time and the company margin for lead times."
msgstr ""
#~ msgid "Procurement"
#~ msgstr "Mua sắm / Cung ứng"
#~ msgid "Purchase Order"
#~ msgstr "Đơn hàng Mua"

View file

@ -0,0 +1,62 @@
# Translation of Odoo Server.
# This file contains the translation of the following modules:
# * purchase_date_planned_manual
#
# Translators:
# OCA Transbot <transbot@odoo-community.org>, 2017
msgid ""
msgstr ""
"Project-Id-Version: Odoo Server 9.0c\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2017-06-23 00:46+0000\n"
"PO-Revision-Date: 2019-09-17 19:24+0000\n"
"Last-Translator: 黎伟杰 <674416404@qq.com>\n"
"Language-Team: Chinese (China) (https://www.transifex.com/oca/teams/23907/"
"zh_CN/)\n"
"Language: zh_CN\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: \n"
"Plural-Forms: nplurals=1; plural=0;\n"
"X-Generator: Weblate 3.8\n"
#. module: purchase_date_planned_manual
#: model_terms:ir.ui.view,arch_db:purchase_date_planned_manual.view_purchase_order_form
msgid "Arriving late"
msgstr "迟到了"
#. module: purchase_date_planned_manual
#: model:ir.model.fields,field_description:purchase_date_planned_manual.field_purchase_order_line__predicted_arrival_late
msgid "Planned to be late"
msgstr "计划迟到了"
#. module: purchase_date_planned_manual
#: model:ir.model,name:purchase_date_planned_manual.model_purchase_order_line
msgid "Purchase Order Line"
msgstr "采购订单行"
#. module: purchase_date_planned_manual
#: model:ir.model,name:purchase_date_planned_manual.model_stock_rule
msgid "Stock Rule"
msgstr "库存规则"
#. module: purchase_date_planned_manual
#: code:addons/purchase_date_planned_manual/models/purchase_order.py:50
#, python-format
msgid ""
"This line is scheduled for: %s. \n"
" However it is now planned to arrive late."
msgstr ""
"此行计划为%s。\n"
"不过,现在计划迟到了。"
#. module: purchase_date_planned_manual
#: model:ir.model.fields,help:purchase_date_planned_manual.field_purchase_order_line__predicted_arrival_late
msgid ""
"True if the arrival at scheduled date is planned to be late. Takes into "
"account the vendor lead time and the company margin for lead times."
msgstr ""
"如果计划在预定日期到达,则为真。考虑供应商的提前期和公司的交付周期保证金。"
#~ msgid "Procurement"
#~ msgstr "补货"

View file

@ -0,0 +1,85 @@
# Copyright 2017 Eficent Business and IT Consulting Services S.L.
# (http://www.eficent.com)
# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl.html).
from dateutil.relativedelta import relativedelta
from odoo import _, api, fields, models
from odoo.exceptions import UserError
from odoo.fields import Datetime as Dt
class PurchaseOrderLine(models.Model):
_inherit = "purchase.order.line"
predicted_arrival_late = fields.Boolean(
string="Planned to be late",
compute="_compute_predicted_arrival_late",
help="True if the arrival at scheduled date is planned to be late. "
"Takes into account the vendor lead time and the company margin "
"for lead times.",
)
@api.depends("order_id.state")
def _compute_predicted_arrival_late(self):
"""Colour the lines in red if the products are predicted to arrive
late."""
for line in self:
if line.product_id:
seller = line.product_id._select_seller(
partner_id=line.partner_id,
quantity=line.product_qty,
date=line.order_id.date_order.date(),
uom_id=line.product_uom,
)
order_date = line.order_id.date_order
po_lead = line.order_id.company_id.po_lead
delta = po_lead + seller.delay if seller else po_lead
date_expected = order_date + relativedelta(days=delta)
line.predicted_arrival_late = (
date_expected > line.date_planned and line.order_id.state == "draft"
)
else:
line.predicted_arrival_late = False
@api.model
def _get_date_planned(self, seller, po=False):
"""Do not change the scheduled date if we already have one."""
if self.date_planned:
return self.date_planned
else:
return super(PurchaseOrderLine, self)._get_date_planned(seller, po)
def action_delayed_line(self):
raise UserError(
_(
"This line is scheduled for: %s. \n However it is now planned to "
"arrive late."
)
% Dt.to_string(Dt.context_timestamp(self, self.date_planned))
)
def _find_candidate(
self,
product_id,
product_qty,
product_uom,
location_id,
name,
origin,
company_id,
values,
):
date_planned = values.get("date_planned")
if date_planned:
self = self.filtered(lambda line: line.date_planned == date_planned)
return super()._find_candidate(
product_id,
product_qty,
product_uom,
location_id,
name,
origin,
company_id,
values,
)

View file

@ -0,0 +1,3 @@
* Lois Rilo <lois.rilo@eficent.com>
* Chau Le <chaulb@trobz.com>

View file

@ -0,0 +1 @@
The migration of this module from 12.0 to 16.0 was financially supported by Camptocamp

View file

@ -0,0 +1,6 @@
This module makes the system to always respect the planned (or scheduled)
date set by the user when creating a Purchase Order.
Additionally, this module modifies the PO views and sets in red the lines
that are predicted to arrive late compared to the scheduled date and vendor
lead time.

View file

@ -0,0 +1,14 @@
To use this module you could follow any of the two options below:
#. Go to 'Purchase' and create a purchase order.
#. Manually set the scheduled date in the PO lines.
#. This date will never be modified by the system and the lines that are
expected to be late are highlighted in red.
Or:
#. Create a procurement order for a product that can be bought and have the
route 'buy' activated.
#. Run the procurement.
#. Now the scheduled date in the procurement is respected even if the line is
added to a previously existing PO.

View file

@ -0,0 +1,6 @@
import setuptools
setuptools.setup(
setup_requires=["setuptools-odoo"],
odoo_addon=True,
)

View file

@ -0,0 +1,451 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta name="generator" content="Docutils: https://docutils.sourceforge.io/" />
<title>Purchase Date Planned Manual</title>
<style type="text/css">
/*
:Author: David Goodger (goodger@python.org)
:Id: $Id: html4css1.css 8954 2022-01-20 10:10:25Z milde $
:Copyright: This stylesheet has been placed in the public domain.
Default cascading style sheet for the HTML output of Docutils.
See https://docutils.sourceforge.io/docs/howto/html-stylesheets.html for how to
customize this style sheet.
*/
/* used to remove borders from tables and images */
.borderless, table.borderless td, table.borderless th {
border: 0 }
table.borderless td, table.borderless th {
/* Override padding for "table.docutils td" with "! important".
The right padding separates the table cells. */
padding: 0 0.5em 0 0 ! important }
.first {
/* Override more specific margin styles with "! important". */
margin-top: 0 ! important }
.last, .with-subtitle {
margin-bottom: 0 ! important }
.hidden {
display: none }
.subscript {
vertical-align: sub;
font-size: smaller }
.superscript {
vertical-align: super;
font-size: smaller }
a.toc-backref {
text-decoration: none ;
color: black }
blockquote.epigraph {
margin: 2em 5em ; }
dl.docutils dd {
margin-bottom: 0.5em }
object[type="image/svg+xml"], object[type="application/x-shockwave-flash"] {
overflow: hidden;
}
/* Uncomment (and remove this text!) to get bold-faced definition list terms
dl.docutils dt {
font-weight: bold }
*/
div.abstract {
margin: 2em 5em }
div.abstract p.topic-title {
font-weight: bold ;
text-align: center }
div.admonition, div.attention, div.caution, div.danger, div.error,
div.hint, div.important, div.note, div.tip, div.warning {
margin: 2em ;
border: medium outset ;
padding: 1em }
div.admonition p.admonition-title, div.hint p.admonition-title,
div.important p.admonition-title, div.note p.admonition-title,
div.tip p.admonition-title {
font-weight: bold ;
font-family: sans-serif }
div.attention p.admonition-title, div.caution p.admonition-title,
div.danger p.admonition-title, div.error p.admonition-title,
div.warning p.admonition-title, .code .error {
color: red ;
font-weight: bold ;
font-family: sans-serif }
/* Uncomment (and remove this text!) to get reduced vertical space in
compound paragraphs.
div.compound .compound-first, div.compound .compound-middle {
margin-bottom: 0.5em }
div.compound .compound-last, div.compound .compound-middle {
margin-top: 0.5em }
*/
div.dedication {
margin: 2em 5em ;
text-align: center ;
font-style: italic }
div.dedication p.topic-title {
font-weight: bold ;
font-style: normal }
div.figure {
margin-left: 2em ;
margin-right: 2em }
div.footer, div.header {
clear: both;
font-size: smaller }
div.line-block {
display: block ;
margin-top: 1em ;
margin-bottom: 1em }
div.line-block div.line-block {
margin-top: 0 ;
margin-bottom: 0 ;
margin-left: 1.5em }
div.sidebar {
margin: 0 0 0.5em 1em ;
border: medium outset ;
padding: 1em ;
background-color: #ffffee ;
width: 40% ;
float: right ;
clear: right }
div.sidebar p.rubric {
font-family: sans-serif ;
font-size: medium }
div.system-messages {
margin: 5em }
div.system-messages h1 {
color: red }
div.system-message {
border: medium outset ;
padding: 1em }
div.system-message p.system-message-title {
color: red ;
font-weight: bold }
div.topic {
margin: 2em }
h1.section-subtitle, h2.section-subtitle, h3.section-subtitle,
h4.section-subtitle, h5.section-subtitle, h6.section-subtitle {
margin-top: 0.4em }
h1.title {
text-align: center }
h2.subtitle {
text-align: center }
hr.docutils {
width: 75% }
img.align-left, .figure.align-left, object.align-left, table.align-left {
clear: left ;
float: left ;
margin-right: 1em }
img.align-right, .figure.align-right, object.align-right, table.align-right {
clear: right ;
float: right ;
margin-left: 1em }
img.align-center, .figure.align-center, object.align-center {
display: block;
margin-left: auto;
margin-right: auto;
}
table.align-center {
margin-left: auto;
margin-right: auto;
}
.align-left {
text-align: left }
.align-center {
clear: both ;
text-align: center }
.align-right {
text-align: right }
/* reset inner alignment in figures */
div.align-right {
text-align: inherit }
/* div.align-center * { */
/* text-align: left } */
.align-top {
vertical-align: top }
.align-middle {
vertical-align: middle }
.align-bottom {
vertical-align: bottom }
ol.simple, ul.simple {
margin-bottom: 1em }
ol.arabic {
list-style: decimal }
ol.loweralpha {
list-style: lower-alpha }
ol.upperalpha {
list-style: upper-alpha }
ol.lowerroman {
list-style: lower-roman }
ol.upperroman {
list-style: upper-roman }
p.attribution {
text-align: right ;
margin-left: 50% }
p.caption {
font-style: italic }
p.credits {
font-style: italic ;
font-size: smaller }
p.label {
white-space: nowrap }
p.rubric {
font-weight: bold ;
font-size: larger ;
color: maroon ;
text-align: center }
p.sidebar-title {
font-family: sans-serif ;
font-weight: bold ;
font-size: larger }
p.sidebar-subtitle {
font-family: sans-serif ;
font-weight: bold }
p.topic-title {
font-weight: bold }
pre.address {
margin-bottom: 0 ;
margin-top: 0 ;
font: inherit }
pre.literal-block, pre.doctest-block, pre.math, pre.code {
margin-left: 2em ;
margin-right: 2em }
pre.code .ln { color: grey; } /* 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 }
pre.code .literal.string, code .literal.string { color: #0C5404 }
pre.code .name.builtin, code .name.builtin { color: #352B84 }
pre.code .deleted, code .deleted { background-color: #DEB0A1}
pre.code .inserted, code .inserted { background-color: #A3D289}
span.classifier {
font-family: sans-serif ;
font-style: oblique }
span.classifier-delimiter {
font-family: sans-serif ;
font-weight: bold }
span.interpreted {
font-family: sans-serif }
span.option {
white-space: nowrap }
span.pre {
white-space: pre }
span.problematic {
color: red }
span.section-subtitle {
/* font-size relative to parent (h1..h6 element) */
font-size: 80% }
table.citation {
border-left: solid 1px gray;
margin-left: 1px }
table.docinfo {
margin: 2em 4em }
table.docutils {
margin-top: 0.5em ;
margin-bottom: 0.5em }
table.footnote {
border-left: solid 1px black;
margin-left: 1px }
table.docutils td, table.docutils th,
table.docinfo td, table.docinfo th {
padding-left: 0.5em ;
padding-right: 0.5em ;
vertical-align: top }
table.docutils th.field-name, table.docinfo th.docinfo-name {
font-weight: bold ;
text-align: left ;
white-space: nowrap ;
padding-left: 0 }
/* "booktabs" style (no vertical lines) */
table.docutils.booktabs {
border: 0px;
border-top: 2px solid;
border-bottom: 2px solid;
border-collapse: collapse;
}
table.docutils.booktabs * {
border: 0px;
}
table.docutils.booktabs th {
border-bottom: thin solid;
text-align: left;
}
h1 tt.docutils, h2 tt.docutils, h3 tt.docutils,
h4 tt.docutils, h5 tt.docutils, h6 tt.docutils {
font-size: 100% }
ul.auto-toc {
list-style-type: none }
</style>
</head>
<body>
<div class="document" id="purchase-date-planned-manual">
<h1 class="title">Purchase Date Planned Manual</h1>
<!-- !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!! This file is generated by oca-gen-addon-readme !!
!! changes will be overwritten. !!
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!! source digest: sha256:217b6e0e3b8319e0da9a606561c1d63c21d3c04d7d5b7ffda4e1d8c101f3f593
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! -->
<p><a class="reference external image-reference" href="https://odoo-community.org/page/development-status"><img alt="Mature" src="https://img.shields.io/badge/maturity-Mature-brightgreen.png" /></a> <a class="reference external image-reference" href="http://www.gnu.org/licenses/agpl-3.0-standalone.html"><img alt="License: AGPL-3" src="https://img.shields.io/badge/licence-AGPL--3-blue.png" /></a> <a class="reference external image-reference" href="https://github.com/OCA/purchase-workflow/tree/16.0/purchase_date_planned_manual"><img alt="OCA/purchase-workflow" src="https://img.shields.io/badge/github-OCA%2Fpurchase--workflow-lightgray.png?logo=github" /></a> <a class="reference external image-reference" href="https://translation.odoo-community.org/projects/purchase-workflow-16-0/purchase-workflow-16-0-purchase_date_planned_manual"><img alt="Translate me on Weblate" src="https://img.shields.io/badge/weblate-Translate%20me-F47D42.png" /></a> <a class="reference external image-reference" href="https://runboat.odoo-community.org/builds?repo=OCA/purchase-workflow&amp;target_branch=16.0"><img alt="Try me on Runboat" src="https://img.shields.io/badge/runboat-Try%20me-875A7B.png" /></a></p>
<p>This module makes the system to always respect the planned (or scheduled)
date set by the user when creating a Purchase Order.</p>
<p>Additionally, this module modifies the PO views and sets in red the lines
that are predicted to arrive late compared to the scheduled date and vendor
lead time.</p>
<p><strong>Table of contents</strong></p>
<div class="contents local topic" id="contents">
<ul class="simple">
<li><a class="reference internal" href="#usage" id="toc-entry-1">Usage</a></li>
<li><a class="reference internal" href="#bug-tracker" id="toc-entry-2">Bug Tracker</a></li>
<li><a class="reference internal" href="#credits" id="toc-entry-3">Credits</a><ul>
<li><a class="reference internal" href="#authors" id="toc-entry-4">Authors</a></li>
<li><a class="reference internal" href="#contributors" id="toc-entry-5">Contributors</a></li>
<li><a class="reference internal" href="#other-credits" id="toc-entry-6">Other credits</a></li>
<li><a class="reference internal" href="#maintainers" id="toc-entry-7">Maintainers</a></li>
</ul>
</li>
</ul>
</div>
<div class="section" id="usage">
<h1><a class="toc-backref" href="#toc-entry-1">Usage</a></h1>
<p>To use this module you could follow any of the two options below:</p>
<ol class="arabic simple">
<li>Go to Purchase and create a purchase order.</li>
<li>Manually set the scheduled date in the PO lines.</li>
<li>This date will never be modified by the system and the lines that are
expected to be late are highlighted in red.</li>
</ol>
<p>Or:</p>
<ol class="arabic simple">
<li>Create a procurement order for a product that can be bought and have the
route buy activated.</li>
<li>Run the procurement.</li>
<li>Now the scheduled date in the procurement is respected even if the line is
added to a previously existing PO.</li>
</ol>
</div>
<div class="section" id="bug-tracker">
<h1><a class="toc-backref" href="#toc-entry-2">Bug Tracker</a></h1>
<p>Bugs are tracked on <a class="reference external" href="https://github.com/OCA/purchase-workflow/issues">GitHub Issues</a>.
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
<a class="reference external" href="https://github.com/OCA/purchase-workflow/issues/new?body=module:%20purchase_date_planned_manual%0Aversion:%2016.0%0A%0A**Steps%20to%20reproduce**%0A-%20...%0A%0A**Current%20behavior**%0A%0A**Expected%20behavior**">feedback</a>.</p>
<p>Do not contact contributors directly about support or help with technical issues.</p>
</div>
<div class="section" id="credits">
<h1><a class="toc-backref" href="#toc-entry-3">Credits</a></h1>
<div class="section" id="authors">
<h2><a class="toc-backref" href="#toc-entry-4">Authors</a></h2>
<ul class="simple">
<li>Eficent</li>
</ul>
</div>
<div class="section" id="contributors">
<h2><a class="toc-backref" href="#toc-entry-5">Contributors</a></h2>
<ul class="simple">
<li>Lois Rilo &lt;<a class="reference external" href="mailto:lois.rilo&#64;eficent.com">lois.rilo&#64;eficent.com</a>&gt;</li>
<li>Chau Le &lt;<a class="reference external" href="mailto:chaulb&#64;trobz.com">chaulb&#64;trobz.com</a>&gt;</li>
</ul>
</div>
<div class="section" id="other-credits">
<h2><a class="toc-backref" href="#toc-entry-6">Other credits</a></h2>
<p>The migration of this module from 12.0 to 16.0 was financially supported by Camptocamp</p>
</div>
<div class="section" id="maintainers">
<h2><a class="toc-backref" href="#toc-entry-7">Maintainers</a></h2>
<p>This module is maintained by the OCA.</p>
<a class="reference external image-reference" href="https://odoo-community.org"><img alt="Odoo Community Association" src="https://odoo-community.org/logo.png" /></a>
<p>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.</p>
<p>Current <a class="reference external" href="https://odoo-community.org/page/maintainer-role">maintainer</a>:</p>
<p><a class="reference external image-reference" href="https://github.com/lreficent"><img alt="lreficent" src="https://github.com/lreficent.png?size=40px" /></a></p>
<p>This module is part of the <a class="reference external" href="https://github.com/OCA/purchase-workflow/tree/16.0/purchase_date_planned_manual">OCA/purchase-workflow</a> project on GitHub.</p>
<p>You are welcome to contribute. To learn how please visit <a class="reference external" href="https://odoo-community.org/page/Contribute">https://odoo-community.org/page/Contribute</a>.</p>
</div>
</div>
</div>
</body>
</html>

View file

@ -0,0 +1 @@
from . import test_date_planned_manual

View file

@ -0,0 +1,203 @@
# Copyright 2017 Eficent Business and IT Consulting Services S.L.
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl).
from datetime import datetime, timedelta
from odoo.exceptions import UserError
from odoo.fields import first
from odoo.tests import tagged
from odoo.tests.common import TransactionCase
@tagged("post_install", "-at_install")
class TestDatePlannedManual(TransactionCase):
def setUp(self):
super().setUp()
self.category = self.env["product.category"].create({"name": "Test category"})
self.po_model = self.env["purchase.order"]
self.pol_model = self.env["purchase.order.line"]
self.pp_model = self.env["product.product"]
# Create some partner, products and supplier info:
self.route_buy_id = self.env.ref("purchase_stock.route_warehouse0_buy")
self.rule = first(self.route_buy_id.rule_ids)
self.partner = self.env["res.partner"].create(
{
"name": "Test supplier",
"supplier_rank": 1,
}
)
self.warehouse = self.env["stock.warehouse"].search(
[("company_id", "=", self.env.user.id)], limit=1
)
self.warehouse.delivery_steps = "pick_ship"
self.final_location = self.partner.property_stock_customer
self.product_1 = self._create_product(
"Test product 1", self.category, self.partner
)
self.product_2 = self._create_product(
"Test product 2", self.category, self.partner
)
self.env["stock.quant"]._update_available_quantity(
self.product_1, self.warehouse.lot_stock_id, 10.0
)
# Create purchase order and dates
self.purchase_order = self.po_model.create(
{
"partner_id": self.partner.id,
"picking_type_id": self.rule.picking_type_id.id,
}
)
self.next_week_time = datetime.now() + timedelta(days=7)
def _create_product(self, name, category, partner):
product = self.env["product.product"].create(
{
"name": name,
"type": "product",
"categ_id": category.id,
"seller_ids": [(0, 0, {"partner_id": partner.id, "min_qty": 1.0})],
}
)
return product
def test_manually_set_pol_date(self):
"""Tests the manual modification of scheduled date in purchase order
lines."""
last_week_time = datetime.now() - timedelta(days=7)
po_line_1 = self.pol_model.create(
{
"order_id": self.purchase_order.id,
"product_id": self.product_1.id,
"date_planned": last_week_time,
"name": "Test",
"product_qty": 1.0,
"product_uom": self.product_1.uom_id.id,
"price_unit": 10.0,
}
)
po_line_2 = self.pol_model.create(
{
"order_id": self.purchase_order.id,
"product_id": self.product_2.id,
"date_planned": self.next_week_time,
"name": "Test",
"product_qty": 10.0,
"product_uom": self.product_2.uom_id.id,
"price_unit": 20.0,
}
)
self.assertTrue(
po_line_1.date_planned < datetime.now(),
"First test PO line should be predicted late.",
)
self.assertFalse(
po_line_2.date_planned < datetime.now(),
"Second test PO line should not be predicted late.",
)
self.purchase_order.button_confirm()
self.assertEqual(
po_line_1.date_planned,
last_week_time,
"Scheduled date should have benn respected.",
)
self.assertNotEqual(
po_line_1.order_id.state, "draft", "state should not be draft'."
)
self.assertFalse(
po_line_1.predicted_arrival_late,
"predicted_arrival_late should be false when not in " "state 'draft'.",
)
with self.assertRaises(UserError):
po_line_1.action_delayed_line()
def _run_procurement(self, product, origin, values):
procurement_group_obj = self.env["procurement.group"]
procurement = procurement_group_obj.Procurement(
product,
1,
product.uom_id,
self.final_location,
False,
origin,
self.warehouse.company_id,
values,
)
rule = procurement_group_obj._get_rule(
procurement.product_id, procurement.location_id, procurement.values
)
self.rule._run_buy([(procurement, rule)])
def test_merging_of_po_lines_if_same_date_planned(self):
"""When only merge PO lines if they have same date_planned"""
origin = "test_merging_of_po_lines_if_same_date_planned"
values = {
"warehouse_id": self.warehouse,
"date_planned": self.next_week_time,
}
self._run_procurement(self.product_1, origin, values)
orders = self.env["purchase.order"].search([("origin", "=", origin)])
self.assertEqual(
len(orders.order_line),
1,
"The PO should still have only one PO line.",
)
self.assertEqual(orders.order_line.product_qty, 1.0)
# New procurement but 1 PO, 1 line, double qty.
self._run_procurement(self.product_1, origin, values)
orders = self.env["purchase.order"].search([("origin", "=", origin)])
self.assertEqual(
len(orders.order_line),
1,
"The PO should still have only one PO line.",
)
self.assertEqual(
orders.order_line.product_qty,
2.0,
"The qty of the PO line should have increased by 1.",
)
self.assertEqual(
orders.order_line.date_planned,
self.next_week_time,
"The date_planned of the PO line should be the same.",
)
def test_no_merging_of_po_lines_if_diff_date_planned(self):
"""No merge PO lines if they not have same date_planned"""
origin = "test_no_merging_of_po_lines_if_diff_date_planned"
values = {
"warehouse_id": self.warehouse,
"date_planned": self.next_week_time,
}
self._run_procurement(self.product_1, origin, values)
orders = self.env["purchase.order"].search([("origin", "=", origin)])
self.assertEqual(
len(orders.order_line),
1,
"The PO should still have only one PO line.",
)
self.assertEqual(orders.order_line.product_qty, 1.0)
self.assertEqual(orders.date_planned, self.next_week_time)
# New procurement but 1 PO, 2 lines.
values["date_planned"] += timedelta(days=1)
self._run_procurement(self.product_1, origin, values)
orders = self.env["purchase.order"].search([("origin", "=", origin)])
self.assertEqual(len(orders), 1)
self.assertEqual(
len(orders.order_line),
2,
"A new PO line should have been create for the move.",
)
self.assertEqual(
orders.order_line[0].date_planned,
orders.date_planned,
"The date_planned of the PO line should be the same.",
)
self.assertEqual(
orders.order_line[1].date_planned,
orders.date_planned + timedelta(days=1),
"The date_planned of the PO line should be the same.",
)

View file

@ -0,0 +1,28 @@
<?xml version="1.0" encoding="utf-8" ?>
<!-- Copyright 2017 Eficent Business and IT Consulting Services S.L.
License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl). -->
<odoo>
<record id="view_purchase_order_form" model="ir.ui.view">
<field name="name">purchase.order.form - purchase_date_planned_manual</field>
<field name="model">purchase.order</field>
<field name="inherit_id" ref="purchase.purchase_order_form" />
<field name="arch" type="xml">
<xpath expr="//field[@name='order_line']/tree" position="inside">
<field name="predicted_arrival_late" invisible="1" />
<button
title="Arriving late"
attrs="{'invisible': [('predicted_arrival_late', '=', False)]}"
name="action_delayed_line"
type="object"
icon="fa-exclamation-triangle"
/>
</xpath>
<xpath expr="//field[@name='order_line']/tree" position="attributes">
<attribute
name="decoration-danger"
>predicted_arrival_late == True</attribute>
</xpath>
</field>
</record>
</odoo>

View file

@ -0,0 +1,42 @@
[project]
name = "odoo-bringout-oca-purchase-workflow-purchase_date_planned_manual"
version = "16.0.0"
description = "Purchase Date Planned Manual - This module makes the system to always respect the planned (or scheduled) date in PO lines."
authors = [
{ name = "Ernad Husremovic", email = "hernad@bring.out.ba" }
]
dependencies = [
"odoo-bringout-oca-purchase-workflow-purchase_stock>=16.0.0",
"requests>=2.25.1"
]
readme = "README.md"
requires-python = ">= 3.11"
classifiers = [
"Development Status :: 5 - Production/Stable",
"Intended Audience :: Developers",
"License :: OSI Approved :: GNU Lesser General Public License v3 (LGPLv3)",
"Programming Language :: Python :: 3",
"Programming Language :: Python :: 3.11",
"Programming Language :: Python :: 3.12",
"Topic :: Office/Business",
]
[project.urls]
homepage = "https://github.com/bringout/0"
repository = "https://github.com/bringout/0"
[build-system]
requires = ["hatchling"]
build-backend = "hatchling.build"
[tool.hatch.metadata]
allow-direct-references = true
[tool.hatch.build.targets.wheel]
packages = ["purchase_date_planned_manual"]
[tool.rye]
managed = true
dev-dependencies = [
"pytest>=8.4.1",
]