Initial commit: OCA Workflow Process packages (456 packages)

This commit is contained in:
Ernad Husremovic 2025-08-29 15:43:00 +02:00
commit d366e42934
18799 changed files with 1284507 additions and 0 deletions

View file

@ -0,0 +1,48 @@
# Purchase Blanket Orders
Odoo addon: purchase_blanket_order
## Installation
```bash
pip install odoo-bringout-oca-purchase-workflow-purchase_blanket_order
```
## Dependencies
This addon depends on:
- purchase
- web_action_conditionable
- base_view_inheritance_extension
## Manifest Information
- **Name**: Purchase Blanket Orders
- **Version**: 16.0.2.1.0
- **Category**: Purchase
- **License**: AGPL-3
- **Installable**: True
## Source
Based on [OCA/purchase-workflow](https://github.com/OCA/purchase-workflow) branch 16.0, addon `purchase_blanket_order`.
## 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_blanket_order Module - purchase_blanket_order
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_blanket_order. 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,7 @@
# Dependencies
This addon depends on:
- [purchase](../../odoo-bringout-oca-ocb-purchase)
- [web_action_conditionable](../../odoo-bringout-oca-web-web_action_conditionable)
- [base_view_inheritance_extension](../../odoo-bringout-oca-server-tools-base_view_inheritance_extension)

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_blanket_order or install in UI.

View file

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

View file

@ -0,0 +1,16 @@
# Models
Detected core models and extensions in purchase_blanket_order.
```mermaid
classDiagram
class purchase_blanket_order
class purchase_blanket_order_line
class purchase_order
class purchase_order_line
class res_config_settings
```
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_blanket_order. Provides features documented in upstream Odoo 16 under this addon.
- Source: OCA/OCB 16.0, addon purchase_blanket_order
- License: LGPL-3

View file

@ -0,0 +1,24 @@
# Reports
Report definitions and templates in purchase_blanket_order.
```mermaid
classDiagram
```
## Available Reports
### PDF/Document Reports
- **Purchase Blanket Order** (PDF/Print)
## Report Files
- **report.xml** (XML template/definition)
- **templates.xml** (XML template/definition)
## Notes
- Named reports above are accessible through Odoo's reporting menu
- Python files define report logic and data processing
- XML files contain report templates, definitions, and formatting
- Reports are integrated with Odoo's printing and email systems

View file

@ -0,0 +1,42 @@
# Security
Access control and security definitions in purchase_blanket_order.
## Access Control Lists (ACLs)
Model access permissions defined in:
- **[ir.model.access.csv](../purchase_blanket_order/security/ir.model.access.csv)**
- 10 model access rules
## Record Rules
Row-level security rules defined in:
## Security Groups & Configuration
Security groups and permissions defined in:
- **[security.xml](../purchase_blanket_order/security/security.xml)**
- 1 security groups defined
```mermaid
graph TB
subgraph "Security Layers"
A[Users] --> B[Groups]
B --> C[Access Control Lists]
C --> D[Models]
B --> E[Record Rules]
E --> F[Individual Records]
end
```
Security files overview:
- **[ir.model.access.csv](../purchase_blanket_order/security/ir.model.access.csv)**
- Model access permissions (CRUD rights)
- **[security.xml](../purchase_blanket_order/security/security.xml)**
- Security groups, categories, and XML-based rules
Notes
- Access Control Lists define which groups can access which models
- Record Rules provide row-level security (filter records by user/group)
- Security groups organize users and define permission sets
- All security is enforced at the ORM level by Odoo

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_blanket_order
```

View file

@ -0,0 +1,9 @@
# Wizards
Transient models exposed as UI wizards in purchase_blanket_order.
```mermaid
classDiagram
class BlanketOrderWizard
class BlanketOrderWizardLine
```

View file

@ -0,0 +1,138 @@
=======================
Purchase Blanket Orders
=======================
..
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!! This file is generated by oca-gen-addon-readme !!
!! changes will be overwritten. !!
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!! source digest: sha256:f258e9da8b80e585dcf4c52f80ed9cb7a7a5baa56d90fa049616aa58fc256b4f
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
.. |badge1| image:: https://img.shields.io/badge/maturity-Beta-yellow.png
:target: https://odoo-community.org/page/development-status
:alt: Beta
.. |badge2| image:: https://img.shields.io/badge/licence-AGPL--3-blue.png
:target: http://www.gnu.org/licenses/agpl-3.0-standalone.html
:alt: License: AGPL-3
.. |badge3| image:: https://img.shields.io/badge/github-OCA%2Fpurchase--workflow-lightgray.png?logo=github
:target: https://github.com/OCA/purchase-workflow/tree/16.0/purchase_blanket_order
: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_blanket_order
: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|
A purchase blanket order is a pre-agreement to purchase a certain number of
quantities of products at a specific price. From a confirmed blanket order,
the users can create new purchase orders at such price, until the blanket
order expires due to reaching the validity date.
**Table of contents**
.. contents::
:local:
Usage
=====
A new menu in the Purchase area is created, allowing users to create new blanket orders.
To create a new Purchase Blanket Order go to the purchase menu in the Purchase section:
.. image:: https://raw.githubusercontent.com/purchase_blanket_order/static/description/BO_menu.png
:alt: Blanket Orders menu
Hitting the button create will open the form view in which we can introduce the following
information:
* Vendor
* Payment Terms
* Ordering and Validity dates
* Order lines:
* Product
* Accorded price
* Original, Ordered, Invoiced, Received and Remaining quantities
* Terms and Conditions of the Blanket Order
.. image:: https://raw.githubusercontent.com/purchase_blanket_order/static/description/BO_form.png
:alt: Blanket Orders form
From the form, once the Blanket Order has been confirmed and its state is open, the user can
create a Purchase Order, check the Purchase Orders associated to the Blanket Order and/or
see the Blanket Order lines associated to the BO.
.. image:: https://raw.githubusercontent.com/purchase_blanket_order/static/description/BO_actions.png
:alt: Actions that can be done from Blanket Order
Hitting the button Create Purchase Order will open a wizard that will ask for the amount of each
product in the BO lines for which the Purchase Order will be created.
.. image:: https://raw.githubusercontent.com/purchase_blanket_order/static/description/PO_from_BO.png
:alt: Create Purchase Order from Blanket Order
Installing this module will add an additional menu which will show all the blanket order lines
currently defined in the system. From this list the user can create customized Purchase Orders
selecting the lines for which the PO (or POs if the vendors are different) is (are) created.
.. image:: https://raw.githubusercontent.com/purchase_blanket_order/static/description/BO_lines.png
:alt: Blanket Order lines and actions
In the Purchase Order form one field is added in the PO lines, the Blanket Order line field. This
field keeps track to which Blanket Order line the PO line is associated. Upon adding a new product
in a newly created Purchase Order a blanket order line will be suggested depending on the following
factors:
* Closer Validity date
* Remaining quantity > Quantity introduced in the Purchase Order line
.. image:: https://raw.githubusercontent.com/purchase_blanket_order/static/description/PO_BOLine.png
:alt: New field added in Purchase Order Line
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_blanket_order%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
~~~~~~~
* ForgeFlow
Contributors
~~~~~~~~~~~~
* Adrià Gil Sorribes <adria.gil@forgeflow.com>
* Jordi Ballester Alomar <jordi.ballester@forgeflow.com>
* Héctor Villarreal <hector.villarreal@forgeflow.com>
* Lois Rilo <lois.rilo@forgeflow.com>
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/purchase-workflow <https://github.com/OCA/purchase-workflow/tree/16.0/purchase_blanket_order>`_ project on GitHub.
You are welcome to contribute. To learn how please visit https://odoo-community.org/page/Contribute.

View file

@ -0,0 +1,4 @@
# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl).
from . import models
from . import wizard

View file

@ -0,0 +1,29 @@
# Copyright 2019-22 ForgeFlow S.L. (https://www.forgeflow.com)
# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl).
{
"name": "Purchase Blanket Orders",
"category": "Purchase",
"license": "AGPL-3",
"author": "ForgeFlow, Odoo Community Association (OCA)",
"version": "16.0.2.1.0",
"website": "https://github.com/OCA/purchase-workflow",
"summary": "Purchase Blanket Orders",
"depends": [
"purchase",
"web_action_conditionable",
"base_view_inheritance_extension",
],
"data": [
"security/ir.model.access.csv",
"security/security.xml",
"data/sequence.xml",
"data/ir_cron.xml",
"wizard/create_purchase_orders.xml",
"views/purchase_config_settings.xml",
"views/purchase_blanket_order_views.xml",
"views/purchase_order_views.xml",
"report/templates.xml",
"report/report.xml",
],
"installable": True,
}

View file

@ -0,0 +1,38 @@
<?xml version="1.0" encoding="utf-8" ?>
<!-- Copyright (C) 2018 ForgeFlow S.L. (https://www.forgeflow.com)
License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl). -->
<odoo noupdate="1">
<record
forcecreate="True"
id="expired_purchase_blanket_orders_cron"
model="ir.cron"
>
<field name="name">Expire Blanket Orders</field>
<field name="interval_number">1</field>
<field name="interval_type">days</field>
<field
name="nextcall"
eval="(DateTime.now() + relativedelta(hour=00, minute=1, second=0)).strftime('%Y-%m-%d %H:%M:%S')"
/>
<field name="numbercall">-1</field>
<field name="doall" eval="False" />
<field name="model_id" ref="model_purchase_blanket_order" />
<field name="state">code</field>
<field name="code">model.expire_orders()</field>
</record>
<record id="warnings_purchase_blanket_orders_cron" model="ir.cron">
<field name="name">Warnings Blanket Orders</field>
<field name="interval_number">1</field>
<field name="interval_type">days</field>
<field
name="nextcall"
eval="(DateTime.now() + relativedelta(hour=00, minute=1, second=0)).strftime('%Y-%m-%d %H:%M:%S')"
/>
<field name="numbercall">-1</field>
<field name="doall" eval="False" />
<field name="model_id" ref="model_purchase_blanket_order" />
<field name="state">code</field>
<field name="code">model.compute_warnings()</field>
</record>
</odoo>

View file

@ -0,0 +1,11 @@
<?xml version="1.0" encoding="utf-8" ?>
<odoo noupdate="1">
<!-- Sequences for purchase.blanket.order -->
<record id="seq_purchase_blanket_order" model="ir.sequence">
<field name="name">Purchase Blanket Order</field>
<field name="code">purchase.blanket.order</field>
<field name="prefix">PBO</field>
<field name="padding">3</field>
<field name="company_id" eval="False" />
</record>
</odoo>

View file

@ -0,0 +1,937 @@
# Translation of Odoo Server.
# This file contains the translation of the following modules:
# * purchase_blanket_order
#
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_blanket_order
#: model_terms:ir.ui.view,arch_db:purchase_blanket_order.report_blanketorder_document
msgid "<span>Blanket Order # </span>"
msgstr "<span>Blanket Order # </span>"
#. module: purchase_blanket_order
#: model_terms:ir.ui.view,arch_db:purchase_blanket_order.report_blanketorder_document
msgid "<strong>Currency:</strong>"
msgstr "<strong>Valuta:</strong>"
#. module: purchase_blanket_order
#: model_terms:ir.ui.view,arch_db:purchase_blanket_order.report_blanketorder_document
msgid "<strong>Payment Terms:</strong>"
msgstr "<strong>Payment Terms:</strong>"
#. module: purchase_blanket_order
#: model_terms:ir.ui.view,arch_db:purchase_blanket_order.report_blanketorder_document
msgid "<strong>Purchase person:</strong>"
msgstr "<strong>Purchase person:</strong>"
#. module: purchase_blanket_order
#: model_terms:ir.ui.view,arch_db:purchase_blanket_order.report_blanketorder_document
msgid "<strong>Subtotal</strong>"
msgstr "<strong>Podukupno</strong>"
#. module: purchase_blanket_order
#: model_terms:ir.ui.view,arch_db:purchase_blanket_order.report_blanketorder_document
msgid "<strong>Total</strong>"
msgstr "<strong>Ukupno</strong>"
#. module: purchase_blanket_order
#: model_terms:ir.ui.view,arch_db:purchase_blanket_order.report_blanketorder_document
msgid "<strong>Validity Date:</strong>"
msgstr "<strong>Validity Datum:</strong>"
#. module: purchase_blanket_order
#: model:ir.model.fields,field_description:purchase_blanket_order.field_purchase_blanket_order__message_needaction
#: model:ir.model.fields,field_description:purchase_blanket_order.field_purchase_blanket_order_line__message_needaction
msgid "Action Needed"
msgstr "Potrebna akcija"
#. module: purchase_blanket_order
#: model:ir.model.fields,field_description:purchase_blanket_order.field_purchase_blanket_order__activity_ids
#: model:ir.model.fields,field_description:purchase_blanket_order.field_purchase_blanket_order_line__activity_ids
msgid "Activities"
msgstr "Aktivnosti"
#. module: purchase_blanket_order
#: model:ir.model.fields,field_description:purchase_blanket_order.field_purchase_blanket_order__activity_exception_decoration
#: model:ir.model.fields,field_description:purchase_blanket_order.field_purchase_blanket_order_line__activity_exception_decoration
msgid "Activity Exception Decoration"
msgstr "Dekoracija iznimke aktivnosti"
#. module: purchase_blanket_order
#: model:ir.model.fields,field_description:purchase_blanket_order.field_purchase_blanket_order__activity_state
#: model:ir.model.fields,field_description:purchase_blanket_order.field_purchase_blanket_order_line__activity_state
msgid "Activity State"
msgstr "Status aktivnosti"
#. module: purchase_blanket_order
#: model:ir.model.fields,field_description:purchase_blanket_order.field_purchase_blanket_order__activity_type_icon
#: model:ir.model.fields,field_description:purchase_blanket_order.field_purchase_blanket_order_line__activity_type_icon
msgid "Activity Type Icon"
msgstr "Ikona tipa aktivnosti"
#. module: purchase_blanket_order
#. odoo-python
#: code:addons/purchase_blanket_order/wizard/create_purchase_orders.py:0
#, python-format
msgid "All lines have already been completed."
msgstr "Verovatno da se prodaje kao usluga"
#. module: purchase_blanket_order
#: model_terms:ir.ui.view,arch_db:purchase_blanket_order.report_blanketorder_document
msgid "Amount"
msgstr "Iznos"
#. module: purchase_blanket_order
#. odoo-python
#: code:addons/purchase_blanket_order/wizard/create_purchase_orders.py:0
#, python-format
msgid "An order can't be empty"
msgstr "Može se potrošiti"
#. module: purchase_blanket_order
#: model:ir.model.fields,field_description:purchase_blanket_order.field_purchase_blanket_order__message_attachment_count
#: model:ir.model.fields,field_description:purchase_blanket_order.field_purchase_blanket_order_line__message_attachment_count
msgid "Attachment Count"
msgstr "Broj priloga"
#. module: purchase_blanket_order
#: model:ir.model.fields,field_description:purchase_blanket_order.field_purchase_blanket_order_wizard_line__blanket_line_id
msgid "Blanket Line"
msgstr "Glavna linija"
#. module: purchase_blanket_order
#: model:ir.model.fields,field_description:purchase_blanket_order.field_purchase_blanket_order_wizard__blanket_order_id
#: model_terms:ir.ui.view,arch_db:purchase_blanket_order.view_purchase_blanket_order_form
msgid "Blanket Order"
msgstr "Glavni nalog"
#. module: purchase_blanket_order
#: model:ir.model.fields,field_description:purchase_blanket_order.field_purchase_order_line__blanket_order_line
msgid "Blanket Order Line"
msgstr "Linija glavnog naloga"
#. module: purchase_blanket_order
#: model:ir.actions.act_window,name:purchase_blanket_order.act_open_purchase_blanket_order_lines_view_tree
#: model:ir.ui.menu,name:purchase_blanket_order.menu_purchase_blanket_order_line
msgid "Blanket Order Lines"
msgstr "Linije blanket naloga"
#. module: purchase_blanket_order
#: model:ir.model,name:purchase_blanket_order.model_purchase_blanket_order_wizard
msgid "Blanket Order Wizard"
msgstr "Čarobnjak glavnog naloga"
#. module: purchase_blanket_order
#: model:ir.model.fields,help:purchase_blanket_order.field_purchase_blanket_order__date_start
msgid "Blanket Order starting date."
msgstr "Početni datum glavnog naloga."
#. module: purchase_blanket_order
#: model:ir.actions.act_window,name:purchase_blanket_order.act_open_purchase_blanket_order_view
#: model:ir.ui.menu,name:purchase_blanket_order.menu_purchase_blanket_order_config
#: model_terms:ir.ui.view,arch_db:purchase_blanket_order.purchase_config_settings_form_view
msgid "Blanket Orders"
msgstr "Blanket nalozi"
#. module: purchase_blanket_order
#. odoo-python
#: code:addons/purchase_blanket_order/wizard/create_purchase_orders.py:0
#, python-format
msgid ""
"Can not create Purchase Order from Blanket Order lines with different "
"currencies"
msgstr ""
#. module: purchase_blanket_order
#: model_terms:ir.ui.view,arch_db:purchase_blanket_order.view_create_purchase_order
#: model_terms:ir.ui.view,arch_db:purchase_blanket_order.view_purchase_blanket_order_form
msgid "Cancel"
msgstr "Otkaži"
#. module: purchase_blanket_order
#: model:ir.model.fields,field_description:purchase_blanket_order.field_purchase_blanket_order__cancelled
msgid "Cancelled"
msgstr "Otkazan"
#. module: purchase_blanket_order
#. odoo-python
#: code:addons/purchase_blanket_order/models/purchase_order.py:0
#, python-format
msgid ""
"Cannot confirm order %s as one of the lines refers to a blanket order that "
"has no remaining quantity."
msgstr ""
#. module: purchase_blanket_order
#: model_terms:ir.actions.act_window,help:purchase_blanket_order.act_open_purchase_blanket_order_view
msgid ""
"Click to create a blanket order that can be converted into a purchase order."
msgstr ""
#. module: purchase_blanket_order
#: model:ir.model.fields,field_description:purchase_blanket_order.field_purchase_blanket_order__company_id
#: model:ir.model.fields,field_description:purchase_blanket_order.field_purchase_blanket_order_line__company_id
msgid "Company"
msgstr "Preduzeće"
#. module: purchase_blanket_order
#: model_terms:ir.ui.view,arch_db:purchase_blanket_order.view_purchase_blanket_order_form
msgid "Confirm"
msgstr "Potvrdi"
#. module: purchase_blanket_order
#: model:ir.model.fields,field_description:purchase_blanket_order.field_purchase_blanket_order__confirmed
msgid "Confirmed"
msgstr "Potvrđeno"
#. module: purchase_blanket_order
#: model_terms:ir.ui.view,arch_db:purchase_blanket_order.view_create_purchase_order
#: model_terms:ir.ui.view,arch_db:purchase_blanket_order.view_purchase_blanket_order_form
msgid "Create Purchase Order"
msgstr "Kreiraj Purchase Order"
#. module: purchase_blanket_order
#: model:ir.actions.act_window,name:purchase_blanket_order.action_create_purchase_order
msgid "Create RFQ"
msgstr "Kreirao"
#. module: purchase_blanket_order
#: model_terms:ir.ui.view,arch_db:purchase_blanket_order.view_create_purchase_order
msgid "Create and View Order"
msgstr "Kreiraj and View Order"
#. module: purchase_blanket_order
#: model:ir.model.fields,field_description:purchase_blanket_order.field_purchase_blanket_order__create_uid
#: model:ir.model.fields,field_description:purchase_blanket_order.field_purchase_blanket_order_line__create_uid
#: model:ir.model.fields,field_description:purchase_blanket_order.field_purchase_blanket_order_wizard__create_uid
#: model:ir.model.fields,field_description:purchase_blanket_order.field_purchase_blanket_order_wizard_line__create_uid
msgid "Created by"
msgstr "Kreirao"
#. module: purchase_blanket_order
#: model:ir.model.fields,field_description:purchase_blanket_order.field_purchase_blanket_order__create_date
#: model:ir.model.fields,field_description:purchase_blanket_order.field_purchase_blanket_order_line__create_date
#: model:ir.model.fields,field_description:purchase_blanket_order.field_purchase_blanket_order_wizard__create_date
#: model:ir.model.fields,field_description:purchase_blanket_order.field_purchase_blanket_order_wizard_line__create_date
msgid "Created on"
msgstr "Kreirano"
#. module: purchase_blanket_order
#: model:ir.model.fields,field_description:purchase_blanket_order.field_purchase_blanket_order__currency_id
#: model:ir.model.fields,field_description:purchase_blanket_order.field_purchase_blanket_order_line__currency_id
#: model:ir.model.fields,field_description:purchase_blanket_order.field_purchase_blanket_order_wizard_line__currency_id
msgid "Currency"
msgstr "Valuta"
#. module: purchase_blanket_order
#. odoo-python
#: code:addons/purchase_blanket_order/models/blanket_orders.py:0
#, python-format
msgid "Date Scheduled"
msgstr "Zakazani datum"
#. module: purchase_blanket_order
#: model:ir.model.fields,help:purchase_blanket_order.field_purchase_blanket_order__validity_date
msgid ""
"Date until which the blanket order will be valid, after this date the "
"blanket order will be marked as expired"
msgstr ""
#. module: purchase_blanket_order
#: model:ir.model.fields,field_description:purchase_blanket_order.field_purchase_blanket_order_line__name
msgid "Description"
msgstr "Opis"
#. module: purchase_blanket_order
#: model:ir.model.fields,field_description:purchase_blanket_order.field_res_config_settings__group_purchase_blanket_disable_adding_lines
msgid "Disable adding more lines to POs"
msgstr "Onemogući dodavanje više linija u nabavne naloge"
#. module: purchase_blanket_order
#: model_terms:ir.ui.view,arch_db:purchase_blanket_order.purchase_config_settings_form_view
msgid "Disable adding more lines to POs from Blanket Orders"
msgstr "Disable adding more lines to POs from Blanket Orders"
#. module: purchase_blanket_order
#: model:res.groups,name:purchase_blanket_order.purchase_blanket_orders_disable_adding_lines
msgid "Disable adding more lines to POs from Purchase Blanket Orders"
msgstr "Onemogući dodavanje više linija u nabavne naloge iz glavnih nabavnih naloga"
#. module: purchase_blanket_order
#: model:ir.model.fields,field_description:purchase_blanket_order.field_purchase_blanket_order__display_name
#: model:ir.model.fields,field_description:purchase_blanket_order.field_purchase_blanket_order_line__display_name
#: model:ir.model.fields,field_description:purchase_blanket_order.field_purchase_blanket_order_wizard__display_name
#: model:ir.model.fields,field_description:purchase_blanket_order.field_purchase_blanket_order_wizard_line__display_name
msgid "Display Name"
msgstr "Prikazani naziv"
#. module: purchase_blanket_order
#: model:ir.model.fields.selection,name:purchase_blanket_order.selection__purchase_blanket_order__state__done
msgid "Done"
msgstr "Gotovo"
#. module: purchase_blanket_order
#: model:ir.model.fields.selection,name:purchase_blanket_order.selection__purchase_blanket_order__state__draft
msgid "Draft"
msgstr "U pripremi"
#. module: purchase_blanket_order
#: model:ir.actions.server,name:purchase_blanket_order.expired_purchase_blanket_orders_cron_ir_actions_server
#: model:ir.cron,cron_name:purchase_blanket_order.expired_purchase_blanket_orders_cron
msgid "Expire Blanket Orders"
msgstr "Istekni blanket naloge"
#. module: purchase_blanket_order
#: model:ir.model.fields.selection,name:purchase_blanket_order.selection__purchase_blanket_order__state__expired
msgid "Expired"
msgstr "Istekao"
#. module: purchase_blanket_order
#: model:ir.model.fields,field_description:purchase_blanket_order.field_purchase_blanket_order__fiscal_position_id
msgid "Fiscal Position"
msgstr "Fiskalna pozicija"
#. module: purchase_blanket_order
#: model:ir.model.fields,field_description:purchase_blanket_order.field_purchase_blanket_order__message_follower_ids
#: model:ir.model.fields,field_description:purchase_blanket_order.field_purchase_blanket_order_line__message_follower_ids
msgid "Followers"
msgstr "Pratioci"
#. module: purchase_blanket_order
#: model:ir.model.fields,field_description:purchase_blanket_order.field_purchase_blanket_order__message_partner_ids
#: model:ir.model.fields,field_description:purchase_blanket_order.field_purchase_blanket_order_line__message_partner_ids
msgid "Followers (Partners)"
msgstr "Pratioci (Partneri)"
#. module: purchase_blanket_order
#: model:ir.model.fields,help:purchase_blanket_order.field_purchase_blanket_order__activity_type_icon
#: model:ir.model.fields,help:purchase_blanket_order.field_purchase_blanket_order_line__activity_type_icon
msgid "Font awesome icon e.g. fa-tasks"
msgstr "Font awesome ikona npr. fa-tasks"
#. module: purchase_blanket_order
#: model:ir.model.fields,field_description:purchase_blanket_order.field_purchase_blanket_order__has_message
#: model:ir.model.fields,field_description:purchase_blanket_order.field_purchase_blanket_order_line__has_message
msgid "Has Message"
msgstr "Ima poruku"
#. module: purchase_blanket_order
#: model:ir.model.fields,field_description:purchase_blanket_order.field_purchase_blanket_order__id
#: model:ir.model.fields,field_description:purchase_blanket_order.field_purchase_blanket_order_line__id
#: model:ir.model.fields,field_description:purchase_blanket_order.field_purchase_blanket_order_wizard__id
#: model:ir.model.fields,field_description:purchase_blanket_order.field_purchase_blanket_order_wizard_line__id
msgid "ID"
msgstr "ID"
#. module: purchase_blanket_order
#: model:ir.model.fields,field_description:purchase_blanket_order.field_purchase_blanket_order__activity_exception_icon
#: model:ir.model.fields,field_description:purchase_blanket_order.field_purchase_blanket_order_line__activity_exception_icon
msgid "Icon"
msgstr "Ikona"
#. module: purchase_blanket_order
#: model:ir.model.fields,help:purchase_blanket_order.field_purchase_blanket_order__activity_exception_icon
#: model:ir.model.fields,help:purchase_blanket_order.field_purchase_blanket_order_line__activity_exception_icon
msgid "Icon to indicate an exception activity."
msgstr "Ikona za prikaz iznimki."
#. module: purchase_blanket_order
#: model:ir.model.fields,help:purchase_blanket_order.field_purchase_blanket_order__message_needaction
#: model:ir.model.fields,help:purchase_blanket_order.field_purchase_blanket_order_line__message_needaction
msgid "If checked, new messages require your attention."
msgstr "Ako je zakačeno, nove poruke će zahtjevati vašu pažnju"
#. module: purchase_blanket_order
#: model:ir.model.fields,help:purchase_blanket_order.field_purchase_blanket_order__message_has_error
#: model:ir.model.fields,help:purchase_blanket_order.field_purchase_blanket_order_line__message_has_error
msgid "If checked, some messages have a delivery error."
msgstr "Ako je označeno neke poruke mogu imati grešku u dostavi."
#. module: purchase_blanket_order
#: model_terms:ir.ui.view,arch_db:purchase_blanket_order.view_purchase_blanket_order_form
msgid "Invoice Information"
msgstr "Invoice Information"
#. module: purchase_blanket_order
#: model_terms:ir.ui.view,arch_db:purchase_blanket_order.view_purchase_blanket_order_search
msgid "Invoiced Qty"
msgstr "Okvirni nalog"
#. module: purchase_blanket_order
#: model:ir.model.fields,field_description:purchase_blanket_order.field_purchase_blanket_order__invoiced_uom_qty
#: model:ir.model.fields,field_description:purchase_blanket_order.field_purchase_blanket_order_line__invoiced_uom_qty
msgid "Invoiced quantity"
msgstr "Fakturisana količina"
#. module: purchase_blanket_order
#: model:ir.model.fields,field_description:purchase_blanket_order.field_purchase_blanket_order__message_is_follower
#: model:ir.model.fields,field_description:purchase_blanket_order.field_purchase_blanket_order_line__message_is_follower
msgid "Is Follower"
msgstr "Pratilac"
#. module: purchase_blanket_order
#: model:ir.model.fields,field_description:purchase_blanket_order.field_purchase_blanket_order____last_update
#: model:ir.model.fields,field_description:purchase_blanket_order.field_purchase_blanket_order_line____last_update
#: model:ir.model.fields,field_description:purchase_blanket_order.field_purchase_blanket_order_wizard____last_update
#: model:ir.model.fields,field_description:purchase_blanket_order.field_purchase_blanket_order_wizard_line____last_update
msgid "Last Modified on"
msgstr "Zadnje mijenjano"
#. module: purchase_blanket_order
#: model:ir.model.fields,field_description:purchase_blanket_order.field_purchase_blanket_order__write_uid
#: model:ir.model.fields,field_description:purchase_blanket_order.field_purchase_blanket_order_line__write_uid
#: model:ir.model.fields,field_description:purchase_blanket_order.field_purchase_blanket_order_wizard__write_uid
#: model:ir.model.fields,field_description:purchase_blanket_order.field_purchase_blanket_order_wizard_line__write_uid
msgid "Last Updated by"
msgstr "Zadnji ažurirao"
#. module: purchase_blanket_order
#: model:ir.model.fields,field_description:purchase_blanket_order.field_purchase_blanket_order__write_date
#: model:ir.model.fields,field_description:purchase_blanket_order.field_purchase_blanket_order_line__write_date
#: model:ir.model.fields,field_description:purchase_blanket_order.field_purchase_blanket_order_wizard__write_date
#: model:ir.model.fields,field_description:purchase_blanket_order.field_purchase_blanket_order_wizard_line__write_date
msgid "Last Updated on"
msgstr "Zadnje ažurirano"
#. module: purchase_blanket_order
#: model:ir.model.fields,field_description:purchase_blanket_order.field_purchase_blanket_order_wizard__line_ids
#: model_terms:ir.ui.view,arch_db:purchase_blanket_order.view_purchase_blanket_order_form
msgid "Lines"
msgstr "Stavke"
#. module: purchase_blanket_order
#: model:ir.model.fields,field_description:purchase_blanket_order.field_purchase_blanket_order__message_main_attachment_id
#: model:ir.model.fields,field_description:purchase_blanket_order.field_purchase_blanket_order_line__message_main_attachment_id
msgid "Main Attachment"
msgstr "Glavna zakačka"
#. module: purchase_blanket_order
#: model:ir.model.fields,field_description:purchase_blanket_order.field_purchase_blanket_order__message_has_error
#: model:ir.model.fields,field_description:purchase_blanket_order.field_purchase_blanket_order_line__message_has_error
msgid "Message Delivery error"
msgstr "Greška pri isporuci poruke"
#. module: purchase_blanket_order
#: model:ir.model.fields,field_description:purchase_blanket_order.field_purchase_blanket_order__message_ids
#: model:ir.model.fields,field_description:purchase_blanket_order.field_purchase_blanket_order_line__message_ids
msgid "Messages"
msgstr "Poruke"
#. module: purchase_blanket_order
#. odoo-python
#: code:addons/purchase_blanket_order/models/blanket_orders.py:0
#, python-format
msgid "Must have some lines"
msgstr "Prikaži blanket nalog"
#. module: purchase_blanket_order
#: model:ir.model.fields,field_description:purchase_blanket_order.field_purchase_blanket_order__my_activity_date_deadline
#: model:ir.model.fields,field_description:purchase_blanket_order.field_purchase_blanket_order_line__my_activity_date_deadline
msgid "My Activity Deadline"
msgstr "Rok za moju aktivnost"
#. module: purchase_blanket_order
#: model:ir.model.fields,field_description:purchase_blanket_order.field_purchase_blanket_order__name
msgid "Name"
msgstr "Naziv:"
#. module: purchase_blanket_order
#: model:ir.model.fields,field_description:purchase_blanket_order.field_purchase_blanket_order__activity_date_deadline
#: model:ir.model.fields,field_description:purchase_blanket_order.field_purchase_blanket_order_line__activity_date_deadline
msgid "Next Activity Deadline"
msgstr "Krajnji rok za sljedeću aktivnost"
#. module: purchase_blanket_order
#: model:ir.model.fields,field_description:purchase_blanket_order.field_purchase_blanket_order__activity_summary
#: model:ir.model.fields,field_description:purchase_blanket_order.field_purchase_blanket_order_line__activity_summary
msgid "Next Activity Summary"
msgstr "Pregled sljedeće aktivnosti"
#. module: purchase_blanket_order
#: model:ir.model.fields,field_description:purchase_blanket_order.field_purchase_blanket_order__activity_type_id
#: model:ir.model.fields,field_description:purchase_blanket_order.field_purchase_blanket_order_line__activity_type_id
msgid "Next Activity Type"
msgstr "Tip sljedeće aktivnosti"
#. module: purchase_blanket_order
#: model:ir.model.fields,field_description:purchase_blanket_order.field_purchase_blanket_order__note
msgid "Note"
msgstr "Zabilješka"
#. module: purchase_blanket_order
#: model:ir.model.fields,field_description:purchase_blanket_order.field_purchase_blanket_order__message_needaction_counter
#: model:ir.model.fields,field_description:purchase_blanket_order.field_purchase_blanket_order_line__message_needaction_counter
msgid "Number of Actions"
msgstr "Broj akcija"
#. module: purchase_blanket_order
#: model:ir.model.fields,field_description:purchase_blanket_order.field_purchase_blanket_order__message_has_error_counter
#: model:ir.model.fields,field_description:purchase_blanket_order.field_purchase_blanket_order_line__message_has_error_counter
msgid "Number of errors"
msgstr "Broj grešaka"
#. module: purchase_blanket_order
#: model:ir.model.fields,help:purchase_blanket_order.field_purchase_blanket_order__message_needaction_counter
#: model:ir.model.fields,help:purchase_blanket_order.field_purchase_blanket_order_line__message_needaction_counter
msgid "Number of messages requiring action"
msgstr "Broj poruka koje zahtijevaju aktivnost"
#. module: purchase_blanket_order
#: model:ir.model.fields,help:purchase_blanket_order.field_purchase_blanket_order__message_has_error_counter
#: model:ir.model.fields,help:purchase_blanket_order.field_purchase_blanket_order_line__message_has_error_counter
msgid "Number of messages with delivery error"
msgstr "Broj poruka sa greškama pri isporuci"
#. module: purchase_blanket_order
#: model:ir.model.fields.selection,name:purchase_blanket_order.selection__purchase_blanket_order__state__open
#: model_terms:ir.ui.view,arch_db:purchase_blanket_order.view_purchase_blanket_order_search
msgid "Open"
msgstr "Otvori"
#. module: purchase_blanket_order
#: model:ir.model.fields,field_description:purchase_blanket_order.field_purchase_blanket_order_line__order_id
msgid "Order"
msgstr "Nalog"
#. module: purchase_blanket_order
#: model_terms:ir.ui.view,arch_db:purchase_blanket_order.view_purchase_blanket_order_form
msgid "Order Lines"
msgstr "Stavke naloga"
#. module: purchase_blanket_order
#: model:ir.model.fields,field_description:purchase_blanket_order.field_purchase_blanket_order__line_ids
msgid "Order lines"
msgstr "Stavke narudžbe"
#. module: purchase_blanket_order
#: model_terms:ir.ui.view,arch_db:purchase_blanket_order.view_purchase_blanket_order_search
msgid "Ordered Qty"
msgstr "Ordered Qty"
#. module: purchase_blanket_order
#: model:ir.model.fields,field_description:purchase_blanket_order.field_purchase_blanket_order__ordered_uom_qty
#: model:ir.model.fields,field_description:purchase_blanket_order.field_purchase_blanket_order_line__ordered_uom_qty
msgid "Ordered quantity"
msgstr "Naručena količina"
#. module: purchase_blanket_order
#: model:ir.model.fields,field_description:purchase_blanket_order.field_purchase_order__blanket_order_id
msgid "Origin blanket order"
msgstr "Izvorni glavni nalog"
#. module: purchase_blanket_order
#: model_terms:ir.ui.view,arch_db:purchase_blanket_order.purchase_blanket_order_line_tree
#: model_terms:ir.ui.view,arch_db:purchase_blanket_order.report_blanketorder_document
#: model_terms:ir.ui.view,arch_db:purchase_blanket_order.view_purchase_blanket_order_form
#: model_terms:ir.ui.view,arch_db:purchase_blanket_order.view_purchase_blanket_order_search
msgid "Original Qty"
msgstr "Kreiraj blanket nalog"
#. module: purchase_blanket_order
#: model:ir.model.fields,field_description:purchase_blanket_order.field_purchase_blanket_order__original_uom_qty
#: model:ir.model.fields,field_description:purchase_blanket_order.field_purchase_blanket_order_line__original_uom_qty
msgid "Original quantity"
msgstr "Originalna količina"
#. module: purchase_blanket_order
#: model_terms:ir.ui.view,arch_db:purchase_blanket_order.view_purchase_blanket_order_form
msgid "Other Information"
msgstr "Ostale informacije"
#. module: purchase_blanket_order
#. odoo-python
#: code:addons/purchase_blanket_order/models/blanket_orders.py:0
#, python-format
msgid "Partner is mandatory"
msgstr "Partner is mandatory"
#. module: purchase_blanket_order
#: model:ir.model.fields,field_description:purchase_blanket_order.field_purchase_blanket_order__payment_term_id
#: model:ir.model.fields,field_description:purchase_blanket_order.field_purchase_blanket_order_line__payment_term_id
msgid "Payment Terms"
msgstr "Uslovi plaćanja"
#. module: purchase_blanket_order
#: model:ir.model.fields,field_description:purchase_blanket_order.field_purchase_blanket_order_line__price_unit
#: model:ir.model.fields,field_description:purchase_blanket_order.field_purchase_blanket_order_wizard_line__price_unit
msgid "Price"
msgstr "Cijena"
#. module: purchase_blanket_order
#. odoo-python
#: code:addons/purchase_blanket_order/models/blanket_orders.py:0
#, python-format
msgid "Price must be greater than zero"
msgstr "Price must be greater than zero"
#. module: purchase_blanket_order
#: model:ir.model,name:purchase_blanket_order.model_res_config_settings
msgid "Procurement purchase grouping settings"
msgstr "Postavke grupiranja nabavki za prokuraciju"
#. module: purchase_blanket_order
#: model:ir.model.fields,field_description:purchase_blanket_order.field_purchase_blanket_order__product_id
#: model:ir.model.fields,field_description:purchase_blanket_order.field_purchase_blanket_order_line__product_id
#: model:ir.model.fields,field_description:purchase_blanket_order.field_purchase_blanket_order_wizard_line__product_id
#: model_terms:ir.ui.view,arch_db:purchase_blanket_order.report_blanketorder_document
msgid "Product"
msgstr "Artikal"
#. module: purchase_blanket_order
#: model:ir.actions.report,name:purchase_blanket_order.report_blanket_order
#: model:ir.model,name:purchase_blanket_order.model_purchase_blanket_order
msgid "Purchase Blanket Order"
msgstr "Nabavni blanket nalog"
#. module: purchase_blanket_order
#. odoo-python
#: code:addons/purchase_blanket_order/wizard/create_purchase_orders.py:0
#, python-format
msgid "Purchase Blanket Order %s is not open"
msgstr "Purchase Blanket Order %s is not open"
#. module: purchase_blanket_order
#: model:ir.model,name:purchase_blanket_order.model_purchase_blanket_order_line
#: model_terms:ir.ui.view,arch_db:purchase_blanket_order.purchase_blanket_order_line_form
msgid "Purchase Blanket Order Line"
msgstr "Linija glavnog nabavnog naloga"
#. module: purchase_blanket_order
#: model:ir.model.fields,field_description:purchase_blanket_order.field_purchase_blanket_order__line_count
msgid "Purchase Blanket Order Line count"
msgstr "Broj linija glavnog nabavnog naloga"
#. module: purchase_blanket_order
#: model:ir.model,name:purchase_blanket_order.model_purchase_blanket_order_wizard_line
msgid "Purchase Blanket Order Wizard Line"
msgstr "Linija čarobnjaka glavnog nabavnog naloga"
#. module: purchase_blanket_order
#: model:ir.model.fields,field_description:purchase_blanket_order.field_purchase_blanket_order__purchase_count
msgid "Purchase Count"
msgstr "Broj nabavki"
#. module: purchase_blanket_order
#: model:ir.model,name:purchase_blanket_order.model_purchase_order
#: model:ir.model.fields,field_description:purchase_blanket_order.field_purchase_blanket_order_wizard__purchase_order_id
msgid "Purchase Order"
msgstr "Nalog za nabavu"
#. module: purchase_blanket_order
#: model:ir.model,name:purchase_blanket_order.model_purchase_order_line
msgid "Purchase Order Line"
msgstr "Stavka naloga za nabavu"
#. module: purchase_blanket_order
#: model:ir.model.fields,field_description:purchase_blanket_order.field_purchase_blanket_order_line__purchase_lines
#: model_terms:ir.ui.view,arch_db:purchase_blanket_order.purchase_blanket_order_line_form
msgid "Purchase Order Lines"
msgstr "Stavke narudžbenice"
#. module: purchase_blanket_order
#. odoo-python
#: code:addons/purchase_blanket_order/models/blanket_orders.py:0
#, python-format
msgid "Quantity must be greater than zero"
msgstr "Quantity must be greater than zero"
#. module: purchase_blanket_order
#: model:ir.model.fields,field_description:purchase_blanket_order.field_purchase_blanket_order_wizard_line__qty
msgid "Quantity to Order"
msgstr "Količina za narudžbu"
#. module: purchase_blanket_order
#. odoo-python
#: code:addons/purchase_blanket_order/wizard/create_purchase_orders.py:0
#, python-format
msgid "RFQ"
msgstr "RFQ"
#. module: purchase_blanket_order
#: model_terms:ir.ui.view,arch_db:purchase_blanket_order.view_purchase_blanket_order_form
msgid "RFQ/Orders"
msgstr "Blanket nalozi"
#. module: purchase_blanket_order
#: model_terms:ir.ui.view,arch_db:purchase_blanket_order.view_purchase_blanket_order_search
msgid "Received Qty"
msgstr "Primljena kol."
#. module: purchase_blanket_order
#: model:ir.model.fields,field_description:purchase_blanket_order.field_purchase_blanket_order__received_uom_qty
#: model:ir.model.fields,field_description:purchase_blanket_order.field_purchase_blanket_order_line__received_uom_qty
msgid "Received quantity"
msgstr "Primljena količina"
#. module: purchase_blanket_order
#: model_terms:ir.ui.view,arch_db:purchase_blanket_order.view_purchase_blanket_order_search
msgid "Remaining Qty"
msgstr "Preostala kol."
#. module: purchase_blanket_order
#: model:ir.model.fields,field_description:purchase_blanket_order.field_purchase_blanket_order__remaining_uom_qty
#: model:ir.model.fields,field_description:purchase_blanket_order.field_purchase_blanket_order_line__remaining_uom_qty
#: model:ir.model.fields,field_description:purchase_blanket_order.field_purchase_blanket_order_wizard_line__remaining_uom_qty
msgid "Remaining quantity"
msgstr "Preostala količina"
#. module: purchase_blanket_order
#: model:ir.model.fields,field_description:purchase_blanket_order.field_purchase_blanket_order_line__remaining_qty
msgid "Remaining quantity in base UoM"
msgstr "Preostala količina u osnovnoj mjerni jedinici"
#. module: purchase_blanket_order
#: model:ir.model.fields,field_description:purchase_blanket_order.field_purchase_blanket_order__user_id
#: model:ir.model.fields,field_description:purchase_blanket_order.field_purchase_blanket_order_line__user_id
msgid "Responsible"
msgstr "Odgovoran"
#. module: purchase_blanket_order
#: model:ir.model.fields,field_description:purchase_blanket_order.field_purchase_blanket_order__activity_user_id
#: model:ir.model.fields,field_description:purchase_blanket_order.field_purchase_blanket_order_line__activity_user_id
msgid "Responsible User"
msgstr "Odgovorni korisnik"
#. module: purchase_blanket_order
#. odoo-python
#: code:addons/purchase_blanket_order/models/purchase_order.py:0
#, python-format
msgid ""
"Schedule dates defined on the Purchase Order Line and on the Blanket Order "
"Line do not match."
msgstr ""
#. module: purchase_blanket_order
#: model:ir.model.fields,field_description:purchase_blanket_order.field_purchase_blanket_order_line__date_schedule
#: model:ir.model.fields,field_description:purchase_blanket_order.field_purchase_blanket_order_wizard_line__date_schedule
#: model_terms:ir.ui.view,arch_db:purchase_blanket_order.report_blanketorder_document
msgid "Scheduled Date"
msgstr "Zakazani datum"
#. module: purchase_blanket_order
#: model_terms:ir.ui.view,arch_db:purchase_blanket_order.purchase_blanket_order_line_search
msgid "Search Purchase Blanket Order Line"
msgstr "Iznos blanket naloga"
#. module: purchase_blanket_order
#: model:ir.model.fields,field_description:purchase_blanket_order.field_purchase_blanket_order_line__sequence
msgid "Sequence"
msgstr "Sekvenca"
#. module: purchase_blanket_order
#: model_terms:ir.ui.view,arch_db:purchase_blanket_order.view_purchase_blanket_order_form
msgid "Setup default terms and conditions in your company settings."
msgstr "Broj blanket naloga"
#. module: purchase_blanket_order
#: model:ir.model.fields,field_description:purchase_blanket_order.field_purchase_blanket_order__date_start
msgid "Start Date"
msgstr "Početni datum"
#. module: purchase_blanket_order
#: model:ir.model.fields,field_description:purchase_blanket_order.field_purchase_blanket_order__state
msgid "State"
msgstr "Status"
#. module: purchase_blanket_order
#: model:ir.model.fields,help:purchase_blanket_order.field_purchase_blanket_order__activity_state
#: model:ir.model.fields,help:purchase_blanket_order.field_purchase_blanket_order_line__activity_state
msgid ""
"Status based on activities\n"
"Overdue: Due date is already passed\n"
"Today: Activity date is today\n"
"Planned: Future activities."
msgstr ""
#. module: purchase_blanket_order
#: model:ir.model.fields,field_description:purchase_blanket_order.field_purchase_blanket_order_line__price_subtotal
msgid "Subtotal"
msgstr "Podukupno"
#. module: purchase_blanket_order
#: model:ir.model.fields,field_description:purchase_blanket_order.field_purchase_blanket_order_line__price_tax
msgid "Tax"
msgstr "Porez"
#. module: purchase_blanket_order
#: model:ir.model.fields,field_description:purchase_blanket_order.field_purchase_blanket_order__amount_tax
#: model:ir.model.fields,field_description:purchase_blanket_order.field_purchase_blanket_order_line__taxes_id
#: model:ir.model.fields,field_description:purchase_blanket_order.field_purchase_blanket_order_wizard_line__taxes_id
#: model_terms:ir.ui.view,arch_db:purchase_blanket_order.report_blanketorder_document
msgid "Taxes"
msgstr "Porezi"
#. module: purchase_blanket_order
#: model_terms:ir.ui.view,arch_db:purchase_blanket_order.view_purchase_blanket_order_form
msgid "Terms and Conditions"
msgstr "Odredbe i uslovi"
#. module: purchase_blanket_order
#. odoo-python
#: code:addons/purchase_blanket_order/models/purchase_order.py:0
#: code:addons/purchase_blanket_order/models/purchase_order.py:0
#, python-format
msgid ""
"The currency of the blanket order must match with that of the purchase "
"order."
msgstr ""
#. module: purchase_blanket_order
#. odoo-python
#: code:addons/purchase_blanket_order/models/purchase_order.py:0
#, python-format
msgid "The vendor must be equal to the blanket order lines vendor"
msgstr "Linija blanket naloga"
#. module: purchase_blanket_order
#: model_terms:ir.ui.view,arch_db:purchase_blanket_order.view_purchase_blanket_order_form
msgid "To Draft"
msgstr "Datum početka blanket naloga"
#. module: purchase_blanket_order
#: model:ir.model.fields,field_description:purchase_blanket_order.field_purchase_blanket_order__amount_total
#: model:ir.model.fields,field_description:purchase_blanket_order.field_purchase_blanket_order_line__price_total
msgid "Total"
msgstr "Ukupno"
#. module: purchase_blanket_order
#: model:ir.model.fields,help:purchase_blanket_order.field_purchase_blanket_order__activity_exception_decoration
#: model:ir.model.fields,help:purchase_blanket_order.field_purchase_blanket_order_line__activity_exception_decoration
msgid "Type of the exception activity on record."
msgstr "Vrsta aktivnosti iznimke na zapisu."
#. module: purchase_blanket_order
#: model_terms:ir.ui.view,arch_db:purchase_blanket_order.report_blanketorder_document
msgid "Unit Price"
msgstr "Cijena"
#. module: purchase_blanket_order
#: model:ir.model.fields,field_description:purchase_blanket_order.field_purchase_blanket_order_line__product_uom
#: model:ir.model.fields,field_description:purchase_blanket_order.field_purchase_blanket_order_wizard_line__product_uom
msgid "Unit of Measure"
msgstr "Jedinica mjere"
#. module: purchase_blanket_order
#: model:ir.model.fields,field_description:purchase_blanket_order.field_purchase_blanket_order__amount_untaxed
msgid "Untaxed Amount"
msgstr "Iznos bez PDV"
#. module: purchase_blanket_order
#: model_terms:ir.actions.act_window,help:purchase_blanket_order.act_open_purchase_blanket_order_view
msgid ""
"Use this menu to search within your blanket orders. For each blanket order,\n"
" you can track the related discussion with the vendor, control\n"
" the products received and control the vendor bills."
msgstr ""
#. module: purchase_blanket_order
#: model_terms:ir.ui.view,arch_db:purchase_blanket_order.report_blanketorder_document
msgid "VAT:"
msgstr "PDV:"
#. module: purchase_blanket_order
#: model:ir.model.fields,field_description:purchase_blanket_order.field_purchase_blanket_order__validity_date
msgid "Validity Date"
msgstr "Datum važenja"
#. module: purchase_blanket_order
#. odoo-python
#: code:addons/purchase_blanket_order/models/blanket_orders.py:0
#, python-format
msgid "Validity date is mandatory"
msgstr "Količina blanket naloga"
#. module: purchase_blanket_order
#. odoo-python
#: code:addons/purchase_blanket_order/models/blanket_orders.py:0
#, python-format
msgid "Validity date must be in the future"
msgstr "Blanket nalog"
#. module: purchase_blanket_order
#: model:ir.model.fields,field_description:purchase_blanket_order.field_purchase_blanket_order__partner_id
#: model:ir.model.fields,field_description:purchase_blanket_order.field_purchase_blanket_order_line__partner_id
#: model:ir.model.fields,field_description:purchase_blanket_order.field_purchase_blanket_order_wizard_line__partner_id
msgid "Vendor"
msgstr "Dobavljač"
#. module: purchase_blanket_order
#: model:ir.model.fields,field_description:purchase_blanket_order.field_purchase_blanket_order__partner_ref
msgid "Vendor Reference"
msgstr "Referenca dobavljača"
#. module: purchase_blanket_order
#: model:ir.actions.server,name:purchase_blanket_order.warnings_purchase_blanket_orders_cron_ir_actions_server
#: model:ir.cron,cron_name:purchase_blanket_order.warnings_purchase_blanket_orders_cron
msgid "Warnings Blanket Orders"
msgstr "Upozorenja blanket naloga"
#. module: purchase_blanket_order
#: model:ir.model.fields,field_description:purchase_blanket_order.field_purchase_blanket_order__website_message_ids
#: model:ir.model.fields,field_description:purchase_blanket_order.field_purchase_blanket_order_line__website_message_ids
msgid "Website Messages"
msgstr "Poruke sa website-a"
#. module: purchase_blanket_order
#: model:ir.model.fields,help:purchase_blanket_order.field_purchase_blanket_order__website_message_ids
#: model:ir.model.fields,help:purchase_blanket_order.field_purchase_blanket_order_line__website_message_ids
msgid "Website communication history"
msgstr "Povijest komunikacije Web stranice"
#. module: purchase_blanket_order
#: model:ir.model.fields,field_description:purchase_blanket_order.field_purchase_blanket_order_wizard_line__wizard_id
msgid "Wizard"
msgstr "ID čarobnjaka"
#. module: purchase_blanket_order
#. odoo-python
#: code:addons/purchase_blanket_order/models/blanket_orders.py:0
#, python-format
msgid ""
"You can not delete a blanket order with opened purchase orders! Try to "
"cancel them before."
msgstr ""
#. module: purchase_blanket_order
#. odoo-python
#: code:addons/purchase_blanket_order/models/blanket_orders.py:0
#, python-format
msgid "You can not delete an open blanket order! Try to cancel it before."
msgstr "Minimalna količina"
#. module: purchase_blanket_order
#. odoo-python
#: code:addons/purchase_blanket_order/wizard/create_purchase_orders.py:0
#, python-format
msgid "You can't create a purchase order from an expired blanket order!"
msgstr "Količina naloga"
#. module: purchase_blanket_order
#. odoo-python
#: code:addons/purchase_blanket_order/wizard/create_purchase_orders.py:0
#, python-format
msgid "You can't order more than the remaining quantities"
msgstr "Originalna količina blanket naloga"
#. module: purchase_blanket_order
#. odoo-python
#: code:addons/purchase_blanket_order/wizard/create_purchase_orders.py:0
#, python-format
msgid "You have to select lines from the same company."
msgstr "Preostala količina"
#. module: purchase_blanket_order
#. odoo-python
#: code:addons/purchase_blanket_order/models/blanket_orders.py:0
#, python-format
msgid "remaining"
msgstr "Količina jedinica"

View file

@ -0,0 +1,960 @@
# Translation of Odoo Server.
# This file contains the translation of the following modules:
# * purchase_blanket_order
#
msgid ""
msgstr ""
"Project-Id-Version: Odoo Server 16.0\n"
"Report-Msgid-Bugs-To: \n"
"PO-Revision-Date: 2025-08-15 13:25+0000\n"
"Last-Translator: Amazngadam <immanuelleppert@gmail.com>\n"
"Language-Team: none\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"
"X-Generator: Weblate 5.10.4\n"
#. module: purchase_blanket_order
#: model_terms:ir.ui.view,arch_db:purchase_blanket_order.report_blanketorder_document
msgid "<span>Blanket Order # </span>"
msgstr "<span>Rahmenauftrag #</span>"
#. module: purchase_blanket_order
#: model_terms:ir.ui.view,arch_db:purchase_blanket_order.report_blanketorder_document
msgid "<strong>Currency:</strong>"
msgstr "<strong>Währung:</strong>"
#. module: purchase_blanket_order
#: model_terms:ir.ui.view,arch_db:purchase_blanket_order.report_blanketorder_document
msgid "<strong>Payment Terms:</strong>"
msgstr "<strong>Zahlungsbedingungen:</strong>"
#. module: purchase_blanket_order
#: model_terms:ir.ui.view,arch_db:purchase_blanket_order.report_blanketorder_document
msgid "<strong>Purchase person:</strong>"
msgstr "<strong>Käufer:</strong>"
#. module: purchase_blanket_order
#: model_terms:ir.ui.view,arch_db:purchase_blanket_order.report_blanketorder_document
msgid "<strong>Subtotal</strong>"
msgstr "<strong>Zwischensumme</strong>"
#. module: purchase_blanket_order
#: model_terms:ir.ui.view,arch_db:purchase_blanket_order.report_blanketorder_document
msgid "<strong>Total</strong>"
msgstr "<strong>Gesamt</strong>"
#. module: purchase_blanket_order
#: model_terms:ir.ui.view,arch_db:purchase_blanket_order.report_blanketorder_document
msgid "<strong>Validity Date:</strong>"
msgstr "<strong>Gültigkeitsdatum</strong>"
#. module: purchase_blanket_order
#: model:ir.model.fields,field_description:purchase_blanket_order.field_purchase_blanket_order__message_needaction
#: model:ir.model.fields,field_description:purchase_blanket_order.field_purchase_blanket_order_line__message_needaction
msgid "Action Needed"
msgstr "Aktion notwendig"
#. module: purchase_blanket_order
#: model:ir.model.fields,field_description:purchase_blanket_order.field_purchase_blanket_order__activity_ids
#: model:ir.model.fields,field_description:purchase_blanket_order.field_purchase_blanket_order_line__activity_ids
msgid "Activities"
msgstr "Aktivitäten"
#. module: purchase_blanket_order
#: model:ir.model.fields,field_description:purchase_blanket_order.field_purchase_blanket_order__activity_exception_decoration
#: model:ir.model.fields,field_description:purchase_blanket_order.field_purchase_blanket_order_line__activity_exception_decoration
msgid "Activity Exception Decoration"
msgstr ""
#. module: purchase_blanket_order
#: model:ir.model.fields,field_description:purchase_blanket_order.field_purchase_blanket_order__activity_state
#: model:ir.model.fields,field_description:purchase_blanket_order.field_purchase_blanket_order_line__activity_state
msgid "Activity State"
msgstr ""
#. module: purchase_blanket_order
#: model:ir.model.fields,field_description:purchase_blanket_order.field_purchase_blanket_order__activity_type_icon
#: model:ir.model.fields,field_description:purchase_blanket_order.field_purchase_blanket_order_line__activity_type_icon
msgid "Activity Type Icon"
msgstr ""
#. module: purchase_blanket_order
#. odoo-python
#: code:addons/purchase_blanket_order/wizard/create_purchase_orders.py:0
#, python-format
msgid "All lines have already been completed."
msgstr ""
#. module: purchase_blanket_order
#: model_terms:ir.ui.view,arch_db:purchase_blanket_order.report_blanketorder_document
msgid "Amount"
msgstr ""
#. module: purchase_blanket_order
#. odoo-python
#: code:addons/purchase_blanket_order/wizard/create_purchase_orders.py:0
#, python-format
msgid "An order can't be empty"
msgstr ""
#. module: purchase_blanket_order
#: model:ir.model.fields,field_description:purchase_blanket_order.field_purchase_blanket_order__message_attachment_count
#: model:ir.model.fields,field_description:purchase_blanket_order.field_purchase_blanket_order_line__message_attachment_count
msgid "Attachment Count"
msgstr ""
#. module: purchase_blanket_order
#: model:ir.model.fields,field_description:purchase_blanket_order.field_purchase_blanket_order_wizard_line__blanket_line_id
msgid "Blanket Line"
msgstr ""
#. module: purchase_blanket_order
#: model:ir.model.fields,field_description:purchase_blanket_order.field_purchase_blanket_order_wizard__blanket_order_id
#: model_terms:ir.ui.view,arch_db:purchase_blanket_order.view_purchase_blanket_order_form
msgid "Blanket Order"
msgstr "Rahmenauftrag"
#. module: purchase_blanket_order
#: model:ir.model.fields,field_description:purchase_blanket_order.field_purchase_order_line__blanket_order_line
msgid "Blanket Order Line"
msgstr "Rahmenauftragszeile"
#. module: purchase_blanket_order
#: model:ir.actions.act_window,name:purchase_blanket_order.act_open_purchase_blanket_order_lines_view_tree
#: model:ir.ui.menu,name:purchase_blanket_order.menu_purchase_blanket_order_line
msgid "Blanket Order Lines"
msgstr "Rahmenauftragszeilen"
#. module: purchase_blanket_order
#: model:ir.model,name:purchase_blanket_order.model_purchase_blanket_order_wizard
msgid "Blanket Order Wizard"
msgstr "Rahmenauftragseingabeassistent"
#. module: purchase_blanket_order
#: model:ir.model.fields,help:purchase_blanket_order.field_purchase_blanket_order__date_start
msgid "Blanket Order starting date."
msgstr "Rahmenauftragsstartdatum."
#. module: purchase_blanket_order
#: model:ir.actions.act_window,name:purchase_blanket_order.act_open_purchase_blanket_order_view
#: model:ir.ui.menu,name:purchase_blanket_order.menu_purchase_blanket_order_config
#: model_terms:ir.ui.view,arch_db:purchase_blanket_order.purchase_config_settings_form_view
msgid "Blanket Orders"
msgstr "Rahmenaufträge"
#. module: purchase_blanket_order
#. odoo-python
#: code:addons/purchase_blanket_order/wizard/create_purchase_orders.py:0
#, python-format
msgid ""
"Can not create Purchase Order from Blanket Order lines with different "
"currencies"
msgstr ""
"Es kann kein Kaufauftrag aus Rahmenauftragszeilen mit verschiedenen "
"Währungen generiert werden"
#. module: purchase_blanket_order
#: model_terms:ir.ui.view,arch_db:purchase_blanket_order.view_create_purchase_order
#: model_terms:ir.ui.view,arch_db:purchase_blanket_order.view_purchase_blanket_order_form
msgid "Cancel"
msgstr "Stornieren"
#. module: purchase_blanket_order
#: model:ir.model.fields,field_description:purchase_blanket_order.field_purchase_blanket_order__cancelled
msgid "Cancelled"
msgstr "Storniert"
#. module: purchase_blanket_order
#. odoo-python
#: code:addons/purchase_blanket_order/models/purchase_order.py:0
#, python-format
msgid ""
"Cannot confirm order %s as one of the lines refers to a blanket order that "
"has no remaining quantity."
msgstr ""
#. module: purchase_blanket_order
#: model_terms:ir.actions.act_window,help:purchase_blanket_order.act_open_purchase_blanket_order_view
msgid ""
"Click to create a blanket order that can be converted into a purchase order."
msgstr ""
"Klicken um einen Rahmenauftrag zu erstellen, welcher in eine Bestellung "
"konvertiert werden kann."
#. module: purchase_blanket_order
#: model:ir.model.fields,field_description:purchase_blanket_order.field_purchase_blanket_order__company_id
#: model:ir.model.fields,field_description:purchase_blanket_order.field_purchase_blanket_order_line__company_id
msgid "Company"
msgstr "Unternehmen"
#. module: purchase_blanket_order
#: model_terms:ir.ui.view,arch_db:purchase_blanket_order.view_purchase_blanket_order_form
msgid "Confirm"
msgstr "Bestätigen"
#. module: purchase_blanket_order
#: model:ir.model.fields,field_description:purchase_blanket_order.field_purchase_blanket_order__confirmed
msgid "Confirmed"
msgstr "Bestätigt"
#. module: purchase_blanket_order
#: model_terms:ir.ui.view,arch_db:purchase_blanket_order.view_create_purchase_order
#: model_terms:ir.ui.view,arch_db:purchase_blanket_order.view_purchase_blanket_order_form
msgid "Create Purchase Order"
msgstr "Bestellung erstellen"
#. module: purchase_blanket_order
#: model:ir.actions.act_window,name:purchase_blanket_order.action_create_purchase_order
msgid "Create RFQ"
msgstr "Angebotsanfrage erstellen"
#. module: purchase_blanket_order
#: model_terms:ir.ui.view,arch_db:purchase_blanket_order.view_create_purchase_order
msgid "Create and View Order"
msgstr "Bestellung erstellen und ansehen"
#. module: purchase_blanket_order
#: model:ir.model.fields,field_description:purchase_blanket_order.field_purchase_blanket_order__create_uid
#: model:ir.model.fields,field_description:purchase_blanket_order.field_purchase_blanket_order_line__create_uid
#: model:ir.model.fields,field_description:purchase_blanket_order.field_purchase_blanket_order_wizard__create_uid
#: model:ir.model.fields,field_description:purchase_blanket_order.field_purchase_blanket_order_wizard_line__create_uid
msgid "Created by"
msgstr "Erstellt von"
#. module: purchase_blanket_order
#: model:ir.model.fields,field_description:purchase_blanket_order.field_purchase_blanket_order__create_date
#: model:ir.model.fields,field_description:purchase_blanket_order.field_purchase_blanket_order_line__create_date
#: model:ir.model.fields,field_description:purchase_blanket_order.field_purchase_blanket_order_wizard__create_date
#: model:ir.model.fields,field_description:purchase_blanket_order.field_purchase_blanket_order_wizard_line__create_date
msgid "Created on"
msgstr "Erstellt am"
#. module: purchase_blanket_order
#: model:ir.model.fields,field_description:purchase_blanket_order.field_purchase_blanket_order__currency_id
#: model:ir.model.fields,field_description:purchase_blanket_order.field_purchase_blanket_order_line__currency_id
#: model:ir.model.fields,field_description:purchase_blanket_order.field_purchase_blanket_order_wizard_line__currency_id
msgid "Currency"
msgstr "Währung"
#. module: purchase_blanket_order
#. odoo-python
#: code:addons/purchase_blanket_order/models/blanket_orders.py:0
#, python-format
msgid "Date Scheduled"
msgstr "Geplantes Datum"
#. module: purchase_blanket_order
#: model:ir.model.fields,help:purchase_blanket_order.field_purchase_blanket_order__validity_date
msgid ""
"Date until which the blanket order will be valid, after this date the "
"blanket order will be marked as expired"
msgstr ""
"Datum bis wann der Rahmenauftrag gültig ist; nach diesem Datum wird der "
"Rahmenauftrag als abgelaufen markiert"
#. module: purchase_blanket_order
#: model:ir.model.fields,field_description:purchase_blanket_order.field_purchase_blanket_order_line__name
msgid "Description"
msgstr "Beschreibung"
#. module: purchase_blanket_order
#: model:ir.model.fields,field_description:purchase_blanket_order.field_res_config_settings__group_purchase_blanket_disable_adding_lines
msgid "Disable adding more lines to POs"
msgstr "Hinzufügen weiterer Positionen zu Bestellungen deaktivieren"
#. module: purchase_blanket_order
#: model_terms:ir.ui.view,arch_db:purchase_blanket_order.purchase_config_settings_form_view
msgid "Disable adding more lines to POs from Blanket Orders"
msgstr ""
"Hinzufügen weiterer Positionen zu Bestellungen von Rahmenaufträgen "
"deaktivieren"
#. module: purchase_blanket_order
#: model:res.groups,name:purchase_blanket_order.purchase_blanket_orders_disable_adding_lines
msgid "Disable adding more lines to POs from Purchase Blanket Orders"
msgstr ""
"Hinzufügen weiterer Positionen zu Bestellungen von Rahmenaufträgen "
"deaktivieren"
#. module: purchase_blanket_order
#: model:ir.model.fields,field_description:purchase_blanket_order.field_purchase_blanket_order__display_name
#: model:ir.model.fields,field_description:purchase_blanket_order.field_purchase_blanket_order_line__display_name
#: model:ir.model.fields,field_description:purchase_blanket_order.field_purchase_blanket_order_wizard__display_name
#: model:ir.model.fields,field_description:purchase_blanket_order.field_purchase_blanket_order_wizard_line__display_name
msgid "Display Name"
msgstr "Anzeigename"
#. module: purchase_blanket_order
#: model:ir.model.fields.selection,name:purchase_blanket_order.selection__purchase_blanket_order__state__done
msgid "Done"
msgstr "Erledigt"
#. module: purchase_blanket_order
#: model:ir.model.fields.selection,name:purchase_blanket_order.selection__purchase_blanket_order__state__draft
msgid "Draft"
msgstr "Entwurf"
#. module: purchase_blanket_order
#: model:ir.actions.server,name:purchase_blanket_order.expired_purchase_blanket_orders_cron_ir_actions_server
#: model:ir.cron,cron_name:purchase_blanket_order.expired_purchase_blanket_orders_cron
msgid "Expire Blanket Orders"
msgstr ""
#. module: purchase_blanket_order
#: model:ir.model.fields.selection,name:purchase_blanket_order.selection__purchase_blanket_order__state__expired
msgid "Expired"
msgstr "Abgelaufen"
#. module: purchase_blanket_order
#: model:ir.model.fields,field_description:purchase_blanket_order.field_purchase_blanket_order__fiscal_position_id
msgid "Fiscal Position"
msgstr "Steuerposition"
#. module: purchase_blanket_order
#: model:ir.model.fields,field_description:purchase_blanket_order.field_purchase_blanket_order__message_follower_ids
#: model:ir.model.fields,field_description:purchase_blanket_order.field_purchase_blanket_order_line__message_follower_ids
msgid "Followers"
msgstr ""
#. module: purchase_blanket_order
#: model:ir.model.fields,field_description:purchase_blanket_order.field_purchase_blanket_order__message_partner_ids
#: model:ir.model.fields,field_description:purchase_blanket_order.field_purchase_blanket_order_line__message_partner_ids
msgid "Followers (Partners)"
msgstr ""
#. module: purchase_blanket_order
#: model:ir.model.fields,help:purchase_blanket_order.field_purchase_blanket_order__activity_type_icon
#: model:ir.model.fields,help:purchase_blanket_order.field_purchase_blanket_order_line__activity_type_icon
msgid "Font awesome icon e.g. fa-tasks"
msgstr ""
#. module: purchase_blanket_order
#: model:ir.model.fields,field_description:purchase_blanket_order.field_purchase_blanket_order__has_message
#: model:ir.model.fields,field_description:purchase_blanket_order.field_purchase_blanket_order_line__has_message
msgid "Has Message"
msgstr "Hat eine Nachricht"
#. module: purchase_blanket_order
#: model:ir.model.fields,field_description:purchase_blanket_order.field_purchase_blanket_order__id
#: model:ir.model.fields,field_description:purchase_blanket_order.field_purchase_blanket_order_line__id
#: model:ir.model.fields,field_description:purchase_blanket_order.field_purchase_blanket_order_wizard__id
#: model:ir.model.fields,field_description:purchase_blanket_order.field_purchase_blanket_order_wizard_line__id
msgid "ID"
msgstr "ID"
#. module: purchase_blanket_order
#: model:ir.model.fields,field_description:purchase_blanket_order.field_purchase_blanket_order__activity_exception_icon
#: model:ir.model.fields,field_description:purchase_blanket_order.field_purchase_blanket_order_line__activity_exception_icon
msgid "Icon"
msgstr "Symbol"
#. module: purchase_blanket_order
#: model:ir.model.fields,help:purchase_blanket_order.field_purchase_blanket_order__activity_exception_icon
#: model:ir.model.fields,help:purchase_blanket_order.field_purchase_blanket_order_line__activity_exception_icon
msgid "Icon to indicate an exception activity."
msgstr "Symbol um eine ausnahmsaktivität zu symbolisieren."
#. module: purchase_blanket_order
#: model:ir.model.fields,help:purchase_blanket_order.field_purchase_blanket_order__message_needaction
#: model:ir.model.fields,help:purchase_blanket_order.field_purchase_blanket_order_line__message_needaction
msgid "If checked, new messages require your attention."
msgstr ""
#. module: purchase_blanket_order
#: model:ir.model.fields,help:purchase_blanket_order.field_purchase_blanket_order__message_has_error
#: model:ir.model.fields,help:purchase_blanket_order.field_purchase_blanket_order_line__message_has_error
msgid "If checked, some messages have a delivery error."
msgstr ""
#. module: purchase_blanket_order
#: model_terms:ir.ui.view,arch_db:purchase_blanket_order.view_purchase_blanket_order_form
msgid "Invoice Information"
msgstr "Rechnungsinformation"
#. module: purchase_blanket_order
#: model_terms:ir.ui.view,arch_db:purchase_blanket_order.view_purchase_blanket_order_search
msgid "Invoiced Qty"
msgstr "Abgerechnete Menge"
#. module: purchase_blanket_order
#: model:ir.model.fields,field_description:purchase_blanket_order.field_purchase_blanket_order__invoiced_uom_qty
#: model:ir.model.fields,field_description:purchase_blanket_order.field_purchase_blanket_order_line__invoiced_uom_qty
msgid "Invoiced quantity"
msgstr "Abgerechnete Menge"
#. module: purchase_blanket_order
#: model:ir.model.fields,field_description:purchase_blanket_order.field_purchase_blanket_order__message_is_follower
#: model:ir.model.fields,field_description:purchase_blanket_order.field_purchase_blanket_order_line__message_is_follower
msgid "Is Follower"
msgstr ""
#. module: purchase_blanket_order
#: model:ir.model.fields,field_description:purchase_blanket_order.field_purchase_blanket_order____last_update
#: model:ir.model.fields,field_description:purchase_blanket_order.field_purchase_blanket_order_line____last_update
#: model:ir.model.fields,field_description:purchase_blanket_order.field_purchase_blanket_order_wizard____last_update
#: model:ir.model.fields,field_description:purchase_blanket_order.field_purchase_blanket_order_wizard_line____last_update
msgid "Last Modified on"
msgstr "Zulätzt geändert am"
#. module: purchase_blanket_order
#: model:ir.model.fields,field_description:purchase_blanket_order.field_purchase_blanket_order__write_uid
#: model:ir.model.fields,field_description:purchase_blanket_order.field_purchase_blanket_order_line__write_uid
#: model:ir.model.fields,field_description:purchase_blanket_order.field_purchase_blanket_order_wizard__write_uid
#: model:ir.model.fields,field_description:purchase_blanket_order.field_purchase_blanket_order_wizard_line__write_uid
msgid "Last Updated by"
msgstr "Zuletzt aktualisiert von"
#. module: purchase_blanket_order
#: model:ir.model.fields,field_description:purchase_blanket_order.field_purchase_blanket_order__write_date
#: model:ir.model.fields,field_description:purchase_blanket_order.field_purchase_blanket_order_line__write_date
#: model:ir.model.fields,field_description:purchase_blanket_order.field_purchase_blanket_order_wizard__write_date
#: model:ir.model.fields,field_description:purchase_blanket_order.field_purchase_blanket_order_wizard_line__write_date
msgid "Last Updated on"
msgstr "Zuletzt aktualsieiert am"
#. module: purchase_blanket_order
#: model:ir.model.fields,field_description:purchase_blanket_order.field_purchase_blanket_order_wizard__line_ids
#: model_terms:ir.ui.view,arch_db:purchase_blanket_order.view_purchase_blanket_order_form
msgid "Lines"
msgstr "Positionen"
#. module: purchase_blanket_order
#: model:ir.model.fields,field_description:purchase_blanket_order.field_purchase_blanket_order__message_main_attachment_id
#: model:ir.model.fields,field_description:purchase_blanket_order.field_purchase_blanket_order_line__message_main_attachment_id
msgid "Main Attachment"
msgstr "Hauptanhang"
#. module: purchase_blanket_order
#: model:ir.model.fields,field_description:purchase_blanket_order.field_purchase_blanket_order__message_has_error
#: model:ir.model.fields,field_description:purchase_blanket_order.field_purchase_blanket_order_line__message_has_error
msgid "Message Delivery error"
msgstr "Nachrichtenzustellungsfehler"
#. module: purchase_blanket_order
#: model:ir.model.fields,field_description:purchase_blanket_order.field_purchase_blanket_order__message_ids
#: model:ir.model.fields,field_description:purchase_blanket_order.field_purchase_blanket_order_line__message_ids
msgid "Messages"
msgstr "Nachrichten"
#. module: purchase_blanket_order
#. odoo-python
#: code:addons/purchase_blanket_order/models/blanket_orders.py:0
#, python-format
msgid "Must have some lines"
msgstr ""
#. module: purchase_blanket_order
#: model:ir.model.fields,field_description:purchase_blanket_order.field_purchase_blanket_order__my_activity_date_deadline
#: model:ir.model.fields,field_description:purchase_blanket_order.field_purchase_blanket_order_line__my_activity_date_deadline
msgid "My Activity Deadline"
msgstr ""
#. module: purchase_blanket_order
#: model:ir.model.fields,field_description:purchase_blanket_order.field_purchase_blanket_order__name
msgid "Name"
msgstr "Name"
#. module: purchase_blanket_order
#: model:ir.model.fields,field_description:purchase_blanket_order.field_purchase_blanket_order__activity_date_deadline
#: model:ir.model.fields,field_description:purchase_blanket_order.field_purchase_blanket_order_line__activity_date_deadline
msgid "Next Activity Deadline"
msgstr ""
#. module: purchase_blanket_order
#: model:ir.model.fields,field_description:purchase_blanket_order.field_purchase_blanket_order__activity_summary
#: model:ir.model.fields,field_description:purchase_blanket_order.field_purchase_blanket_order_line__activity_summary
msgid "Next Activity Summary"
msgstr ""
#. module: purchase_blanket_order
#: model:ir.model.fields,field_description:purchase_blanket_order.field_purchase_blanket_order__activity_type_id
#: model:ir.model.fields,field_description:purchase_blanket_order.field_purchase_blanket_order_line__activity_type_id
msgid "Next Activity Type"
msgstr ""
#. module: purchase_blanket_order
#: model:ir.model.fields,field_description:purchase_blanket_order.field_purchase_blanket_order__note
msgid "Note"
msgstr "Notiz"
#. module: purchase_blanket_order
#: model:ir.model.fields,field_description:purchase_blanket_order.field_purchase_blanket_order__message_needaction_counter
#: model:ir.model.fields,field_description:purchase_blanket_order.field_purchase_blanket_order_line__message_needaction_counter
msgid "Number of Actions"
msgstr ""
#. module: purchase_blanket_order
#: model:ir.model.fields,field_description:purchase_blanket_order.field_purchase_blanket_order__message_has_error_counter
#: model:ir.model.fields,field_description:purchase_blanket_order.field_purchase_blanket_order_line__message_has_error_counter
msgid "Number of errors"
msgstr ""
#. module: purchase_blanket_order
#: model:ir.model.fields,help:purchase_blanket_order.field_purchase_blanket_order__message_needaction_counter
#: model:ir.model.fields,help:purchase_blanket_order.field_purchase_blanket_order_line__message_needaction_counter
msgid "Number of messages requiring action"
msgstr ""
#. module: purchase_blanket_order
#: model:ir.model.fields,help:purchase_blanket_order.field_purchase_blanket_order__message_has_error_counter
#: model:ir.model.fields,help:purchase_blanket_order.field_purchase_blanket_order_line__message_has_error_counter
msgid "Number of messages with delivery error"
msgstr ""
#. module: purchase_blanket_order
#: model:ir.model.fields.selection,name:purchase_blanket_order.selection__purchase_blanket_order__state__open
#: model_terms:ir.ui.view,arch_db:purchase_blanket_order.view_purchase_blanket_order_search
msgid "Open"
msgstr "Offen"
#. module: purchase_blanket_order
#: model:ir.model.fields,field_description:purchase_blanket_order.field_purchase_blanket_order_line__order_id
msgid "Order"
msgstr "Bestellung"
#. module: purchase_blanket_order
#: model_terms:ir.ui.view,arch_db:purchase_blanket_order.view_purchase_blanket_order_form
msgid "Order Lines"
msgstr "Bestellpositionen"
#. module: purchase_blanket_order
#: model:ir.model.fields,field_description:purchase_blanket_order.field_purchase_blanket_order__line_ids
msgid "Order lines"
msgstr "Bestellpositionen"
#. module: purchase_blanket_order
#: model_terms:ir.ui.view,arch_db:purchase_blanket_order.view_purchase_blanket_order_search
msgid "Ordered Qty"
msgstr "Bestellte Menge"
#. module: purchase_blanket_order
#: model:ir.model.fields,field_description:purchase_blanket_order.field_purchase_blanket_order__ordered_uom_qty
#: model:ir.model.fields,field_description:purchase_blanket_order.field_purchase_blanket_order_line__ordered_uom_qty
msgid "Ordered quantity"
msgstr "Bestellte Menge"
#. module: purchase_blanket_order
#: model:ir.model.fields,field_description:purchase_blanket_order.field_purchase_order__blanket_order_id
msgid "Origin blanket order"
msgstr "Quellrahmenauftrag"
#. module: purchase_blanket_order
#: model_terms:ir.ui.view,arch_db:purchase_blanket_order.purchase_blanket_order_line_tree
#: model_terms:ir.ui.view,arch_db:purchase_blanket_order.report_blanketorder_document
#: model_terms:ir.ui.view,arch_db:purchase_blanket_order.view_purchase_blanket_order_form
#: model_terms:ir.ui.view,arch_db:purchase_blanket_order.view_purchase_blanket_order_search
msgid "Original Qty"
msgstr "Ursprüngliche Menge"
#. module: purchase_blanket_order
#: model:ir.model.fields,field_description:purchase_blanket_order.field_purchase_blanket_order__original_uom_qty
#: model:ir.model.fields,field_description:purchase_blanket_order.field_purchase_blanket_order_line__original_uom_qty
msgid "Original quantity"
msgstr "Ursprüngliche Menge"
#. module: purchase_blanket_order
#: model_terms:ir.ui.view,arch_db:purchase_blanket_order.view_purchase_blanket_order_form
msgid "Other Information"
msgstr "Weitere Informationen"
#. module: purchase_blanket_order
#. odoo-python
#: code:addons/purchase_blanket_order/models/blanket_orders.py:0
#, python-format
msgid "Partner is mandatory"
msgstr "Partner ist notwendig"
#. module: purchase_blanket_order
#: model:ir.model.fields,field_description:purchase_blanket_order.field_purchase_blanket_order__payment_term_id
#: model:ir.model.fields,field_description:purchase_blanket_order.field_purchase_blanket_order_line__payment_term_id
msgid "Payment Terms"
msgstr "Zahlungsbedingungen"
#. module: purchase_blanket_order
#: model:ir.model.fields,field_description:purchase_blanket_order.field_purchase_blanket_order_line__price_unit
#: model:ir.model.fields,field_description:purchase_blanket_order.field_purchase_blanket_order_wizard_line__price_unit
msgid "Price"
msgstr "Preis"
#. module: purchase_blanket_order
#. odoo-python
#: code:addons/purchase_blanket_order/models/blanket_orders.py:0
#, python-format
msgid "Price must be greater than zero"
msgstr "Preis muss größer als Null sein"
#. module: purchase_blanket_order
#: model:ir.model,name:purchase_blanket_order.model_res_config_settings
msgid "Procurement purchase grouping settings"
msgstr ""
#. module: purchase_blanket_order
#: model:ir.model.fields,field_description:purchase_blanket_order.field_purchase_blanket_order__product_id
#: model:ir.model.fields,field_description:purchase_blanket_order.field_purchase_blanket_order_line__product_id
#: model:ir.model.fields,field_description:purchase_blanket_order.field_purchase_blanket_order_wizard_line__product_id
#: model_terms:ir.ui.view,arch_db:purchase_blanket_order.report_blanketorder_document
msgid "Product"
msgstr "Produkt"
#. module: purchase_blanket_order
#: model:ir.actions.report,name:purchase_blanket_order.report_blanket_order
#: model:ir.model,name:purchase_blanket_order.model_purchase_blanket_order
msgid "Purchase Blanket Order"
msgstr "Bestellrahmenauftrag"
#. module: purchase_blanket_order
#. odoo-python
#: code:addons/purchase_blanket_order/wizard/create_purchase_orders.py:0
#, python-format
msgid "Purchase Blanket Order %s is not open"
msgstr ""
#. module: purchase_blanket_order
#: model:ir.model,name:purchase_blanket_order.model_purchase_blanket_order_line
#: model_terms:ir.ui.view,arch_db:purchase_blanket_order.purchase_blanket_order_line_form
msgid "Purchase Blanket Order Line"
msgstr "Einkaufrahmenauftragszeile"
#. module: purchase_blanket_order
#: model:ir.model.fields,field_description:purchase_blanket_order.field_purchase_blanket_order__line_count
msgid "Purchase Blanket Order Line count"
msgstr "Einkaufrahmenauftragszeilenanzahl"
#. module: purchase_blanket_order
#: model:ir.model,name:purchase_blanket_order.model_purchase_blanket_order_wizard_line
msgid "Purchase Blanket Order Wizard Line"
msgstr "Einkaufsrahmenauftragseingabeassistentsposition"
#. module: purchase_blanket_order
#: model:ir.model.fields,field_description:purchase_blanket_order.field_purchase_blanket_order__purchase_count
msgid "Purchase Count"
msgstr ""
#. module: purchase_blanket_order
#: model:ir.model,name:purchase_blanket_order.model_purchase_order
#: model:ir.model.fields,field_description:purchase_blanket_order.field_purchase_blanket_order_wizard__purchase_order_id
msgid "Purchase Order"
msgstr "Bestellung"
#. module: purchase_blanket_order
#: model:ir.model,name:purchase_blanket_order.model_purchase_order_line
msgid "Purchase Order Line"
msgstr "Bestellposition"
#. module: purchase_blanket_order
#: model:ir.model.fields,field_description:purchase_blanket_order.field_purchase_blanket_order_line__purchase_lines
#: model_terms:ir.ui.view,arch_db:purchase_blanket_order.purchase_blanket_order_line_form
msgid "Purchase Order Lines"
msgstr "Bestellpositionen"
#. module: purchase_blanket_order
#. odoo-python
#: code:addons/purchase_blanket_order/models/blanket_orders.py:0
#, python-format
msgid "Quantity must be greater than zero"
msgstr "Menge muss größer als Null sein"
#. module: purchase_blanket_order
#: model:ir.model.fields,field_description:purchase_blanket_order.field_purchase_blanket_order_wizard_line__qty
msgid "Quantity to Order"
msgstr "Zu bestellende Menge"
#. module: purchase_blanket_order
#. odoo-python
#: code:addons/purchase_blanket_order/wizard/create_purchase_orders.py:0
#, python-format
msgid "RFQ"
msgstr "Angebotsanfrage"
#. module: purchase_blanket_order
#: model_terms:ir.ui.view,arch_db:purchase_blanket_order.view_purchase_blanket_order_form
msgid "RFQ/Orders"
msgstr "Angebotsanfragen/Bestellungen"
#. module: purchase_blanket_order
#: model_terms:ir.ui.view,arch_db:purchase_blanket_order.view_purchase_blanket_order_search
msgid "Received Qty"
msgstr "Erhaltene Menge"
#. module: purchase_blanket_order
#: model:ir.model.fields,field_description:purchase_blanket_order.field_purchase_blanket_order__received_uom_qty
#: model:ir.model.fields,field_description:purchase_blanket_order.field_purchase_blanket_order_line__received_uom_qty
msgid "Received quantity"
msgstr "Erhaltene Menge"
#. module: purchase_blanket_order
#: model_terms:ir.ui.view,arch_db:purchase_blanket_order.view_purchase_blanket_order_search
msgid "Remaining Qty"
msgstr "Restmenge"
#. module: purchase_blanket_order
#: model:ir.model.fields,field_description:purchase_blanket_order.field_purchase_blanket_order__remaining_uom_qty
#: model:ir.model.fields,field_description:purchase_blanket_order.field_purchase_blanket_order_line__remaining_uom_qty
#: model:ir.model.fields,field_description:purchase_blanket_order.field_purchase_blanket_order_wizard_line__remaining_uom_qty
msgid "Remaining quantity"
msgstr "Restmenge"
#. module: purchase_blanket_order
#: model:ir.model.fields,field_description:purchase_blanket_order.field_purchase_blanket_order_line__remaining_qty
msgid "Remaining quantity in base UoM"
msgstr "Restmenge in basis Mengeneinheit"
#. module: purchase_blanket_order
#: model:ir.model.fields,field_description:purchase_blanket_order.field_purchase_blanket_order__user_id
#: model:ir.model.fields,field_description:purchase_blanket_order.field_purchase_blanket_order_line__user_id
msgid "Responsible"
msgstr "Verantwortlich"
#. module: purchase_blanket_order
#: model:ir.model.fields,field_description:purchase_blanket_order.field_purchase_blanket_order__activity_user_id
#: model:ir.model.fields,field_description:purchase_blanket_order.field_purchase_blanket_order_line__activity_user_id
msgid "Responsible User"
msgstr "Verantwortlicher Nutzer"
#. module: purchase_blanket_order
#. odoo-python
#: code:addons/purchase_blanket_order/models/purchase_order.py:0
#, python-format
msgid ""
"Schedule dates defined on the Purchase Order Line and on the Blanket Order "
"Line do not match."
msgstr ""
"Geplante Daten auf Bestellposition und Rahmenauftragspositionen stimmen "
"nicht überein."
#. module: purchase_blanket_order
#: model:ir.model.fields,field_description:purchase_blanket_order.field_purchase_blanket_order_line__date_schedule
#: model:ir.model.fields,field_description:purchase_blanket_order.field_purchase_blanket_order_wizard_line__date_schedule
#: model_terms:ir.ui.view,arch_db:purchase_blanket_order.report_blanketorder_document
msgid "Scheduled Date"
msgstr "Geplantes Datum"
#. module: purchase_blanket_order
#: model_terms:ir.ui.view,arch_db:purchase_blanket_order.purchase_blanket_order_line_search
msgid "Search Purchase Blanket Order Line"
msgstr "Einkaufsrahmenauftragsposition suchen"
#. module: purchase_blanket_order
#: model:ir.model.fields,field_description:purchase_blanket_order.field_purchase_blanket_order_line__sequence
msgid "Sequence"
msgstr "Sequenz"
#. module: purchase_blanket_order
#: model_terms:ir.ui.view,arch_db:purchase_blanket_order.view_purchase_blanket_order_form
msgid "Setup default terms and conditions in your company settings."
msgstr ""
#. module: purchase_blanket_order
#: model:ir.model.fields,field_description:purchase_blanket_order.field_purchase_blanket_order__date_start
msgid "Start Date"
msgstr "Startdatum"
#. module: purchase_blanket_order
#: model:ir.model.fields,field_description:purchase_blanket_order.field_purchase_blanket_order__state
msgid "State"
msgstr ""
#. module: purchase_blanket_order
#: model:ir.model.fields,help:purchase_blanket_order.field_purchase_blanket_order__activity_state
#: model:ir.model.fields,help:purchase_blanket_order.field_purchase_blanket_order_line__activity_state
msgid ""
"Status based on activities\n"
"Overdue: Due date is already passed\n"
"Today: Activity date is today\n"
"Planned: Future activities."
msgstr ""
#. module: purchase_blanket_order
#: model:ir.model.fields,field_description:purchase_blanket_order.field_purchase_blanket_order_line__price_subtotal
msgid "Subtotal"
msgstr "Zwischensumme"
#. module: purchase_blanket_order
#: model:ir.model.fields,field_description:purchase_blanket_order.field_purchase_blanket_order_line__price_tax
msgid "Tax"
msgstr "Steuer"
#. module: purchase_blanket_order
#: model:ir.model.fields,field_description:purchase_blanket_order.field_purchase_blanket_order__amount_tax
#: model:ir.model.fields,field_description:purchase_blanket_order.field_purchase_blanket_order_line__taxes_id
#: model:ir.model.fields,field_description:purchase_blanket_order.field_purchase_blanket_order_wizard_line__taxes_id
#: model_terms:ir.ui.view,arch_db:purchase_blanket_order.report_blanketorder_document
msgid "Taxes"
msgstr "Steuern"
#. module: purchase_blanket_order
#: model_terms:ir.ui.view,arch_db:purchase_blanket_order.view_purchase_blanket_order_form
msgid "Terms and Conditions"
msgstr "Geschäftsbedingungen"
#. module: purchase_blanket_order
#. odoo-python
#: code:addons/purchase_blanket_order/models/purchase_order.py:0
#: code:addons/purchase_blanket_order/models/purchase_order.py:0
#, python-format
msgid ""
"The currency of the blanket order must match with that of the purchase "
"order."
msgstr ""
"Die Währung des Rahmenauftrags muss mit der Währung der Bestellung "
"übereinstimmen."
#. module: purchase_blanket_order
#. odoo-python
#: code:addons/purchase_blanket_order/models/purchase_order.py:0
#, python-format
msgid "The vendor must be equal to the blanket order lines vendor"
msgstr ""
"Der Lieferant muss mit dem Rahmenauftragspositionslieferanten übereinstimmen"
#. module: purchase_blanket_order
#: model_terms:ir.ui.view,arch_db:purchase_blanket_order.view_purchase_blanket_order_form
msgid "To Draft"
msgstr ""
#. module: purchase_blanket_order
#: model:ir.model.fields,field_description:purchase_blanket_order.field_purchase_blanket_order__amount_total
#: model:ir.model.fields,field_description:purchase_blanket_order.field_purchase_blanket_order_line__price_total
msgid "Total"
msgstr "Gesamt"
#. module: purchase_blanket_order
#: model:ir.model.fields,help:purchase_blanket_order.field_purchase_blanket_order__activity_exception_decoration
#: model:ir.model.fields,help:purchase_blanket_order.field_purchase_blanket_order_line__activity_exception_decoration
msgid "Type of the exception activity on record."
msgstr ""
#. module: purchase_blanket_order
#: model_terms:ir.ui.view,arch_db:purchase_blanket_order.report_blanketorder_document
msgid "Unit Price"
msgstr "Stückpreis"
#. module: purchase_blanket_order
#: model:ir.model.fields,field_description:purchase_blanket_order.field_purchase_blanket_order_line__product_uom
#: model:ir.model.fields,field_description:purchase_blanket_order.field_purchase_blanket_order_wizard_line__product_uom
msgid "Unit of Measure"
msgstr "Maßeinheit"
#. module: purchase_blanket_order
#: model:ir.model.fields,field_description:purchase_blanket_order.field_purchase_blanket_order__amount_untaxed
msgid "Untaxed Amount"
msgstr "Nettobetrag"
#. module: purchase_blanket_order
#: model_terms:ir.actions.act_window,help:purchase_blanket_order.act_open_purchase_blanket_order_view
msgid ""
"Use this menu to search within your blanket orders. For each blanket order,\n"
" you can track the related discussion with the vendor, control\n"
" the products received and control the vendor bills."
msgstr ""
#. module: purchase_blanket_order
#: model_terms:ir.ui.view,arch_db:purchase_blanket_order.report_blanketorder_document
msgid "VAT:"
msgstr "Mehrwertsteuer:"
#. module: purchase_blanket_order
#: model:ir.model.fields,field_description:purchase_blanket_order.field_purchase_blanket_order__validity_date
msgid "Validity Date"
msgstr "Gültigkeitsdatum"
#. module: purchase_blanket_order
#. odoo-python
#: code:addons/purchase_blanket_order/models/blanket_orders.py:0
#, python-format
msgid "Validity date is mandatory"
msgstr "Gültigkeitsdatum ist notwendig"
#. module: purchase_blanket_order
#. odoo-python
#: code:addons/purchase_blanket_order/models/blanket_orders.py:0
#, python-format
msgid "Validity date must be in the future"
msgstr "Gültigkeitsdatum muss in der Zukunft liegen"
#. module: purchase_blanket_order
#: model:ir.model.fields,field_description:purchase_blanket_order.field_purchase_blanket_order__partner_id
#: model:ir.model.fields,field_description:purchase_blanket_order.field_purchase_blanket_order_line__partner_id
#: model:ir.model.fields,field_description:purchase_blanket_order.field_purchase_blanket_order_wizard_line__partner_id
msgid "Vendor"
msgstr "Lieferant"
#. module: purchase_blanket_order
#: model:ir.model.fields,field_description:purchase_blanket_order.field_purchase_blanket_order__partner_ref
msgid "Vendor Reference"
msgstr "Lieferantenreferenz"
#. module: purchase_blanket_order
#: model:ir.actions.server,name:purchase_blanket_order.warnings_purchase_blanket_orders_cron_ir_actions_server
#: model:ir.cron,cron_name:purchase_blanket_order.warnings_purchase_blanket_orders_cron
msgid "Warnings Blanket Orders"
msgstr "Warnungen auf Rahmenaufträgen"
#. module: purchase_blanket_order
#: model:ir.model.fields,field_description:purchase_blanket_order.field_purchase_blanket_order__website_message_ids
#: model:ir.model.fields,field_description:purchase_blanket_order.field_purchase_blanket_order_line__website_message_ids
msgid "Website Messages"
msgstr ""
#. module: purchase_blanket_order
#: model:ir.model.fields,help:purchase_blanket_order.field_purchase_blanket_order__website_message_ids
#: model:ir.model.fields,help:purchase_blanket_order.field_purchase_blanket_order_line__website_message_ids
msgid "Website communication history"
msgstr ""
#. module: purchase_blanket_order
#: model:ir.model.fields,field_description:purchase_blanket_order.field_purchase_blanket_order_wizard_line__wizard_id
msgid "Wizard"
msgstr "Eingabeassistent"
#. module: purchase_blanket_order
#. odoo-python
#: code:addons/purchase_blanket_order/models/blanket_orders.py:0
#, python-format
msgid ""
"You can not delete a blanket order with opened purchase orders! Try to "
"cancel them before."
msgstr ""
"Rahmenaufträge mit offenen Bestellungen können nicht gelöscht werden! "
"Versuche die Bestellungen zuerst zu stornieren."
#. module: purchase_blanket_order
#. odoo-python
#: code:addons/purchase_blanket_order/models/blanket_orders.py:0
#, python-format
msgid "You can not delete an open blanket order! Try to cancel it before."
msgstr ""
"Offene Rahmenaufträge können nicht gelöscht werden! Versuche den "
"Rahmenauftrag zuerst zu stornieren."
#. module: purchase_blanket_order
#. odoo-python
#: code:addons/purchase_blanket_order/wizard/create_purchase_orders.py:0
#, python-format
msgid "You can't create a purchase order from an expired blanket order!"
msgstr ""
"Aus einem abgelaufenen Rahmenauftrag kann keine Bestellung erstellt werden!"
#. module: purchase_blanket_order
#. odoo-python
#: code:addons/purchase_blanket_order/wizard/create_purchase_orders.py:0
#, python-format
msgid "You can't order more than the remaining quantities"
msgstr "Es kann nicht mehr als die Restmenge bestellt werden"
#. module: purchase_blanket_order
#. odoo-python
#: code:addons/purchase_blanket_order/wizard/create_purchase_orders.py:0
#, python-format
msgid "You have to select lines from the same company."
msgstr "Es müssen Positionen des selben Unternehmens ausgewählt werden."
#. module: purchase_blanket_order
#. odoo-python
#: code:addons/purchase_blanket_order/models/blanket_orders.py:0
#, python-format
msgid "remaining"
msgstr "verbleibend"

View file

@ -0,0 +1,972 @@
# Translation of Odoo Server.
# This file contains the translation of the following modules:
# * purchase_blanket_order
#
msgid ""
msgstr ""
"Project-Id-Version: Odoo Server 16.0\n"
"Report-Msgid-Bugs-To: \n"
"PO-Revision-Date: 2024-04-18 08:37+0000\n"
"Last-Translator: Ivorra78 <informatica@totmaterial.es>\n"
"Language-Team: none\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"
"X-Generator: Weblate 4.17\n"
#. module: purchase_blanket_order
#: model_terms:ir.ui.view,arch_db:purchase_blanket_order.report_blanketorder_document
msgid "<span>Blanket Order # </span>"
msgstr "<span>Número de pedido de la manta </span>"
#. module: purchase_blanket_order
#: model_terms:ir.ui.view,arch_db:purchase_blanket_order.report_blanketorder_document
msgid "<strong>Currency:</strong>"
msgstr "<strong>Divisa:</strong>"
#. module: purchase_blanket_order
#: model_terms:ir.ui.view,arch_db:purchase_blanket_order.report_blanketorder_document
msgid "<strong>Payment Terms:</strong>"
msgstr "<strong>Términos de Pago:</strong>"
#. module: purchase_blanket_order
#: model_terms:ir.ui.view,arch_db:purchase_blanket_order.report_blanketorder_document
msgid "<strong>Purchase person:</strong>"
msgstr "<strong>Persona que compra:</strong>"
#. module: purchase_blanket_order
#: model_terms:ir.ui.view,arch_db:purchase_blanket_order.report_blanketorder_document
msgid "<strong>Subtotal</strong>"
msgstr "<strong>Subtotal</strong>"
#. module: purchase_blanket_order
#: model_terms:ir.ui.view,arch_db:purchase_blanket_order.report_blanketorder_document
msgid "<strong>Total</strong>"
msgstr "<strong>Total</strong>"
#. module: purchase_blanket_order
#: model_terms:ir.ui.view,arch_db:purchase_blanket_order.report_blanketorder_document
msgid "<strong>Validity Date:</strong>"
msgstr "<strong>Fecha de Validez:</strong>"
#. module: purchase_blanket_order
#: model:ir.model.fields,field_description:purchase_blanket_order.field_purchase_blanket_order__message_needaction
#: model:ir.model.fields,field_description:purchase_blanket_order.field_purchase_blanket_order_line__message_needaction
msgid "Action Needed"
msgstr "Necesaria Acción"
#. module: purchase_blanket_order
#: model:ir.model.fields,field_description:purchase_blanket_order.field_purchase_blanket_order__activity_ids
#: model:ir.model.fields,field_description:purchase_blanket_order.field_purchase_blanket_order_line__activity_ids
msgid "Activities"
msgstr "Actividades"
#. module: purchase_blanket_order
#: model:ir.model.fields,field_description:purchase_blanket_order.field_purchase_blanket_order__activity_exception_decoration
#: model:ir.model.fields,field_description:purchase_blanket_order.field_purchase_blanket_order_line__activity_exception_decoration
msgid "Activity Exception Decoration"
msgstr "Decoración de Actividad de Excepción"
#. module: purchase_blanket_order
#: model:ir.model.fields,field_description:purchase_blanket_order.field_purchase_blanket_order__activity_state
#: model:ir.model.fields,field_description:purchase_blanket_order.field_purchase_blanket_order_line__activity_state
msgid "Activity State"
msgstr "Estado de la Actividad"
#. module: purchase_blanket_order
#: model:ir.model.fields,field_description:purchase_blanket_order.field_purchase_blanket_order__activity_type_icon
#: model:ir.model.fields,field_description:purchase_blanket_order.field_purchase_blanket_order_line__activity_type_icon
msgid "Activity Type Icon"
msgstr "Icono Tipo de Actividad"
#. module: purchase_blanket_order
#. odoo-python
#: code:addons/purchase_blanket_order/wizard/create_purchase_orders.py:0
#, python-format
msgid "All lines have already been completed."
msgstr "Ya se han completado todas las líneas."
#. module: purchase_blanket_order
#: model_terms:ir.ui.view,arch_db:purchase_blanket_order.report_blanketorder_document
msgid "Amount"
msgstr "Importe"
#. module: purchase_blanket_order
#. odoo-python
#: code:addons/purchase_blanket_order/wizard/create_purchase_orders.py:0
#, python-format
msgid "An order can't be empty"
msgstr "Un pedido no puede estar vacío"
#. module: purchase_blanket_order
#: model:ir.model.fields,field_description:purchase_blanket_order.field_purchase_blanket_order__message_attachment_count
#: model:ir.model.fields,field_description:purchase_blanket_order.field_purchase_blanket_order_line__message_attachment_count
msgid "Attachment Count"
msgstr "Recuento Adjuntos"
#. module: purchase_blanket_order
#: model:ir.model.fields,field_description:purchase_blanket_order.field_purchase_blanket_order_wizard_line__blanket_line_id
msgid "Blanket Line"
msgstr "Línea de Cobertura"
#. module: purchase_blanket_order
#: model:ir.model.fields,field_description:purchase_blanket_order.field_purchase_blanket_order_wizard__blanket_order_id
#: model_terms:ir.ui.view,arch_db:purchase_blanket_order.view_purchase_blanket_order_form
msgid "Blanket Order"
msgstr "Pedido Global"
#. module: purchase_blanket_order
#: model:ir.model.fields,field_description:purchase_blanket_order.field_purchase_order_line__blanket_order_line
msgid "Blanket Order Line"
msgstr "Línea de Pedido Programado"
#. module: purchase_blanket_order
#: model:ir.actions.act_window,name:purchase_blanket_order.act_open_purchase_blanket_order_lines_view_tree
#: model:ir.ui.menu,name:purchase_blanket_order.menu_purchase_blanket_order_line
msgid "Blanket Order Lines"
msgstr "Líneas de Pedido Programado"
#. module: purchase_blanket_order
#: model:ir.model,name:purchase_blanket_order.model_purchase_blanket_order_wizard
msgid "Blanket Order Wizard"
msgstr "Asistente para Pedidos Generales"
#. module: purchase_blanket_order
#: model:ir.model.fields,help:purchase_blanket_order.field_purchase_blanket_order__date_start
msgid "Blanket Order starting date."
msgstr "Fecha de Inicio de la Orden General."
#. module: purchase_blanket_order
#: model:ir.actions.act_window,name:purchase_blanket_order.act_open_purchase_blanket_order_view
#: model:ir.ui.menu,name:purchase_blanket_order.menu_purchase_blanket_order_config
#: model_terms:ir.ui.view,arch_db:purchase_blanket_order.purchase_config_settings_form_view
msgid "Blanket Orders"
msgstr "Órdenes Generales"
#. module: purchase_blanket_order
#. odoo-python
#: code:addons/purchase_blanket_order/wizard/create_purchase_orders.py:0
#, python-format
msgid ""
"Can not create Purchase Order from Blanket Order lines with different "
"currencies"
msgstr ""
"No se puede crear una Orden de Compra a partir de líneas de Orden Global con "
"diferentes monedas"
#. module: purchase_blanket_order
#: model_terms:ir.ui.view,arch_db:purchase_blanket_order.view_create_purchase_order
#: model_terms:ir.ui.view,arch_db:purchase_blanket_order.view_purchase_blanket_order_form
msgid "Cancel"
msgstr "Cancelar"
#. module: purchase_blanket_order
#: model:ir.model.fields,field_description:purchase_blanket_order.field_purchase_blanket_order__cancelled
msgid "Cancelled"
msgstr "Cancelado/a"
#. module: purchase_blanket_order
#. odoo-python
#: code:addons/purchase_blanket_order/models/purchase_order.py:0
#, python-format
msgid ""
"Cannot confirm order %s as one of the lines refers to a blanket order that "
"has no remaining quantity."
msgstr ""
"No puede confirmar el pedido %s ya que una de las líneas se refiere a una "
"programación sin cantidad pendiente."
#. module: purchase_blanket_order
#: model_terms:ir.actions.act_window,help:purchase_blanket_order.act_open_purchase_blanket_order_view
msgid ""
"Click to create a blanket order that can be converted into a purchase order."
msgstr ""
"Haga clic para crear un pedido general que pueda convertirse en un pedido de "
"compra."
#. module: purchase_blanket_order
#: model:ir.model.fields,field_description:purchase_blanket_order.field_purchase_blanket_order__company_id
#: model:ir.model.fields,field_description:purchase_blanket_order.field_purchase_blanket_order_line__company_id
msgid "Company"
msgstr "Companía"
#. module: purchase_blanket_order
#: model_terms:ir.ui.view,arch_db:purchase_blanket_order.view_purchase_blanket_order_form
msgid "Confirm"
msgstr "Confirmar"
#. module: purchase_blanket_order
#: model:ir.model.fields,field_description:purchase_blanket_order.field_purchase_blanket_order__confirmed
msgid "Confirmed"
msgstr "Confirmado/a"
#. module: purchase_blanket_order
#: model_terms:ir.ui.view,arch_db:purchase_blanket_order.view_create_purchase_order
#: model_terms:ir.ui.view,arch_db:purchase_blanket_order.view_purchase_blanket_order_form
msgid "Create Purchase Order"
msgstr "Crear Orden de Compra"
#. module: purchase_blanket_order
#: model:ir.actions.act_window,name:purchase_blanket_order.action_create_purchase_order
msgid "Create RFQ"
msgstr "Crear Solicitud de Presupuesto"
#. module: purchase_blanket_order
#: model_terms:ir.ui.view,arch_db:purchase_blanket_order.view_create_purchase_order
msgid "Create and View Order"
msgstr "Crear y Ver Pedido"
#. module: purchase_blanket_order
#: model:ir.model.fields,field_description:purchase_blanket_order.field_purchase_blanket_order__create_uid
#: model:ir.model.fields,field_description:purchase_blanket_order.field_purchase_blanket_order_line__create_uid
#: model:ir.model.fields,field_description:purchase_blanket_order.field_purchase_blanket_order_wizard__create_uid
#: model:ir.model.fields,field_description:purchase_blanket_order.field_purchase_blanket_order_wizard_line__create_uid
msgid "Created by"
msgstr "Creado por"
#. module: purchase_blanket_order
#: model:ir.model.fields,field_description:purchase_blanket_order.field_purchase_blanket_order__create_date
#: model:ir.model.fields,field_description:purchase_blanket_order.field_purchase_blanket_order_line__create_date
#: model:ir.model.fields,field_description:purchase_blanket_order.field_purchase_blanket_order_wizard__create_date
#: model:ir.model.fields,field_description:purchase_blanket_order.field_purchase_blanket_order_wizard_line__create_date
msgid "Created on"
msgstr "Creado el"
#. module: purchase_blanket_order
#: model:ir.model.fields,field_description:purchase_blanket_order.field_purchase_blanket_order__currency_id
#: model:ir.model.fields,field_description:purchase_blanket_order.field_purchase_blanket_order_line__currency_id
#: model:ir.model.fields,field_description:purchase_blanket_order.field_purchase_blanket_order_wizard_line__currency_id
msgid "Currency"
msgstr "Divisa"
#. module: purchase_blanket_order
#. odoo-python
#: code:addons/purchase_blanket_order/models/blanket_orders.py:0
#, python-format
msgid "Date Scheduled"
msgstr "Fecha Programada"
#. module: purchase_blanket_order
#: model:ir.model.fields,help:purchase_blanket_order.field_purchase_blanket_order__validity_date
msgid ""
"Date until which the blanket order will be valid, after this date the "
"blanket order will be marked as expired"
msgstr ""
"Fecha hasta la cual la orden general será válida, después de esta fecha la "
"orden general se marcará como caducada"
#. module: purchase_blanket_order
#: model:ir.model.fields,field_description:purchase_blanket_order.field_purchase_blanket_order_line__name
msgid "Description"
msgstr "Descripción"
#. module: purchase_blanket_order
#: model:ir.model.fields,field_description:purchase_blanket_order.field_res_config_settings__group_purchase_blanket_disable_adding_lines
msgid "Disable adding more lines to POs"
msgstr "Deshabilitar la adición de más líneas a las órdenes de pedido"
#. module: purchase_blanket_order
#: model_terms:ir.ui.view,arch_db:purchase_blanket_order.purchase_config_settings_form_view
msgid "Disable adding more lines to POs from Blanket Orders"
msgstr ""
"Desactivar la adición de más líneas a los Pedidos a partir de Pedidos "
"Generales"
#. module: purchase_blanket_order
#: model:res.groups,name:purchase_blanket_order.purchase_blanket_orders_disable_adding_lines
msgid "Disable adding more lines to POs from Purchase Blanket Orders"
msgstr ""
"Desactivar la adición de más líneas a los Pedidos desde los Pedidos "
"Generales de Compra"
#. module: purchase_blanket_order
#: model:ir.model.fields,field_description:purchase_blanket_order.field_purchase_blanket_order__display_name
#: model:ir.model.fields,field_description:purchase_blanket_order.field_purchase_blanket_order_line__display_name
#: model:ir.model.fields,field_description:purchase_blanket_order.field_purchase_blanket_order_wizard__display_name
#: model:ir.model.fields,field_description:purchase_blanket_order.field_purchase_blanket_order_wizard_line__display_name
msgid "Display Name"
msgstr "Mostrar Nombre"
#. module: purchase_blanket_order
#: model:ir.model.fields.selection,name:purchase_blanket_order.selection__purchase_blanket_order__state__done
msgid "Done"
msgstr "Hecho"
#. module: purchase_blanket_order
#: model:ir.model.fields.selection,name:purchase_blanket_order.selection__purchase_blanket_order__state__draft
msgid "Draft"
msgstr "Borrador"
#. module: purchase_blanket_order
#: model:ir.actions.server,name:purchase_blanket_order.expired_purchase_blanket_orders_cron_ir_actions_server
#: model:ir.cron,cron_name:purchase_blanket_order.expired_purchase_blanket_orders_cron
msgid "Expire Blanket Orders"
msgstr "Pedidos Generales Caducados"
#. module: purchase_blanket_order
#: model:ir.model.fields.selection,name:purchase_blanket_order.selection__purchase_blanket_order__state__expired
msgid "Expired"
msgstr "Expirado"
#. module: purchase_blanket_order
#: model:ir.model.fields,field_description:purchase_blanket_order.field_purchase_blanket_order__fiscal_position_id
msgid "Fiscal Position"
msgstr "Posición Fiscal"
#. module: purchase_blanket_order
#: model:ir.model.fields,field_description:purchase_blanket_order.field_purchase_blanket_order__message_follower_ids
#: model:ir.model.fields,field_description:purchase_blanket_order.field_purchase_blanket_order_line__message_follower_ids
msgid "Followers"
msgstr "Seguidores"
#. module: purchase_blanket_order
#: model:ir.model.fields,field_description:purchase_blanket_order.field_purchase_blanket_order__message_partner_ids
#: model:ir.model.fields,field_description:purchase_blanket_order.field_purchase_blanket_order_line__message_partner_ids
msgid "Followers (Partners)"
msgstr "Seguidores/as (Socios)"
#. module: purchase_blanket_order
#: model:ir.model.fields,help:purchase_blanket_order.field_purchase_blanket_order__activity_type_icon
#: model:ir.model.fields,help:purchase_blanket_order.field_purchase_blanket_order_line__activity_type_icon
msgid "Font awesome icon e.g. fa-tasks"
msgstr "Fuente Iconos Sorprendentes , por ejemplo fa-tasks"
#. module: purchase_blanket_order
#: model:ir.model.fields,field_description:purchase_blanket_order.field_purchase_blanket_order__has_message
#: model:ir.model.fields,field_description:purchase_blanket_order.field_purchase_blanket_order_line__has_message
msgid "Has Message"
msgstr "Tiene Mensaje"
#. module: purchase_blanket_order
#: model:ir.model.fields,field_description:purchase_blanket_order.field_purchase_blanket_order__id
#: model:ir.model.fields,field_description:purchase_blanket_order.field_purchase_blanket_order_line__id
#: model:ir.model.fields,field_description:purchase_blanket_order.field_purchase_blanket_order_wizard__id
#: model:ir.model.fields,field_description:purchase_blanket_order.field_purchase_blanket_order_wizard_line__id
msgid "ID"
msgstr "ID (identificación)"
#. module: purchase_blanket_order
#: model:ir.model.fields,field_description:purchase_blanket_order.field_purchase_blanket_order__activity_exception_icon
#: model:ir.model.fields,field_description:purchase_blanket_order.field_purchase_blanket_order_line__activity_exception_icon
msgid "Icon"
msgstr "Icono"
#. module: purchase_blanket_order
#: model:ir.model.fields,help:purchase_blanket_order.field_purchase_blanket_order__activity_exception_icon
#: model:ir.model.fields,help:purchase_blanket_order.field_purchase_blanket_order_line__activity_exception_icon
msgid "Icon to indicate an exception activity."
msgstr "Icono para indicar la excepción de la actividad."
#. module: purchase_blanket_order
#: model:ir.model.fields,help:purchase_blanket_order.field_purchase_blanket_order__message_needaction
#: model:ir.model.fields,help:purchase_blanket_order.field_purchase_blanket_order_line__message_needaction
msgid "If checked, new messages require your attention."
msgstr "Si están marcados, nuevos mensajes requiere su atención."
#. module: purchase_blanket_order
#: model:ir.model.fields,help:purchase_blanket_order.field_purchase_blanket_order__message_has_error
#: model:ir.model.fields,help:purchase_blanket_order.field_purchase_blanket_order_line__message_has_error
msgid "If checked, some messages have a delivery error."
msgstr "Si se activa, algunos mensajes tienen un error de envio."
#. module: purchase_blanket_order
#: model_terms:ir.ui.view,arch_db:purchase_blanket_order.view_purchase_blanket_order_form
msgid "Invoice Information"
msgstr "Información Factura"
#. module: purchase_blanket_order
#: model_terms:ir.ui.view,arch_db:purchase_blanket_order.view_purchase_blanket_order_search
msgid "Invoiced Qty"
msgstr "Ctdad Facturada"
#. module: purchase_blanket_order
#: model:ir.model.fields,field_description:purchase_blanket_order.field_purchase_blanket_order__invoiced_uom_qty
#: model:ir.model.fields,field_description:purchase_blanket_order.field_purchase_blanket_order_line__invoiced_uom_qty
msgid "Invoiced quantity"
msgstr "Cantidad facturada"
#. module: purchase_blanket_order
#: model:ir.model.fields,field_description:purchase_blanket_order.field_purchase_blanket_order__message_is_follower
#: model:ir.model.fields,field_description:purchase_blanket_order.field_purchase_blanket_order_line__message_is_follower
msgid "Is Follower"
msgstr "Es Seguidor"
#. module: purchase_blanket_order
#: model:ir.model.fields,field_description:purchase_blanket_order.field_purchase_blanket_order____last_update
#: model:ir.model.fields,field_description:purchase_blanket_order.field_purchase_blanket_order_line____last_update
#: model:ir.model.fields,field_description:purchase_blanket_order.field_purchase_blanket_order_wizard____last_update
#: model:ir.model.fields,field_description:purchase_blanket_order.field_purchase_blanket_order_wizard_line____last_update
msgid "Last Modified on"
msgstr "Última Modificación el"
#. module: purchase_blanket_order
#: model:ir.model.fields,field_description:purchase_blanket_order.field_purchase_blanket_order__write_uid
#: model:ir.model.fields,field_description:purchase_blanket_order.field_purchase_blanket_order_line__write_uid
#: model:ir.model.fields,field_description:purchase_blanket_order.field_purchase_blanket_order_wizard__write_uid
#: model:ir.model.fields,field_description:purchase_blanket_order.field_purchase_blanket_order_wizard_line__write_uid
msgid "Last Updated by"
msgstr "Última Actualización Por"
#. module: purchase_blanket_order
#: model:ir.model.fields,field_description:purchase_blanket_order.field_purchase_blanket_order__write_date
#: model:ir.model.fields,field_description:purchase_blanket_order.field_purchase_blanket_order_line__write_date
#: model:ir.model.fields,field_description:purchase_blanket_order.field_purchase_blanket_order_wizard__write_date
#: model:ir.model.fields,field_description:purchase_blanket_order.field_purchase_blanket_order_wizard_line__write_date
msgid "Last Updated on"
msgstr "Última Actualización el"
#. module: purchase_blanket_order
#: model:ir.model.fields,field_description:purchase_blanket_order.field_purchase_blanket_order_wizard__line_ids
#: model_terms:ir.ui.view,arch_db:purchase_blanket_order.view_purchase_blanket_order_form
msgid "Lines"
msgstr "Líneas"
#. module: purchase_blanket_order
#: model:ir.model.fields,field_description:purchase_blanket_order.field_purchase_blanket_order__message_main_attachment_id
#: model:ir.model.fields,field_description:purchase_blanket_order.field_purchase_blanket_order_line__message_main_attachment_id
msgid "Main Attachment"
msgstr "Archivo Adjunto Principal"
#. module: purchase_blanket_order
#: model:ir.model.fields,field_description:purchase_blanket_order.field_purchase_blanket_order__message_has_error
#: model:ir.model.fields,field_description:purchase_blanket_order.field_purchase_blanket_order_line__message_has_error
msgid "Message Delivery error"
msgstr "Error en Entrega de Mensaje"
#. module: purchase_blanket_order
#: model:ir.model.fields,field_description:purchase_blanket_order.field_purchase_blanket_order__message_ids
#: model:ir.model.fields,field_description:purchase_blanket_order.field_purchase_blanket_order_line__message_ids
msgid "Messages"
msgstr "Mensaje"
#. module: purchase_blanket_order
#. odoo-python
#: code:addons/purchase_blanket_order/models/blanket_orders.py:0
#, python-format
msgid "Must have some lines"
msgstr "Debe tener alguna línea"
#. module: purchase_blanket_order
#: model:ir.model.fields,field_description:purchase_blanket_order.field_purchase_blanket_order__my_activity_date_deadline
#: model:ir.model.fields,field_description:purchase_blanket_order.field_purchase_blanket_order_line__my_activity_date_deadline
msgid "My Activity Deadline"
msgstr "Fecha Límite de Mi Actividad"
#. module: purchase_blanket_order
#: model:ir.model.fields,field_description:purchase_blanket_order.field_purchase_blanket_order__name
msgid "Name"
msgstr "Nombre"
#. module: purchase_blanket_order
#: model:ir.model.fields,field_description:purchase_blanket_order.field_purchase_blanket_order__activity_date_deadline
#: model:ir.model.fields,field_description:purchase_blanket_order.field_purchase_blanket_order_line__activity_date_deadline
msgid "Next Activity Deadline"
msgstr "Fecha Límite de la Siguiente Actividad"
#. module: purchase_blanket_order
#: model:ir.model.fields,field_description:purchase_blanket_order.field_purchase_blanket_order__activity_summary
#: model:ir.model.fields,field_description:purchase_blanket_order.field_purchase_blanket_order_line__activity_summary
msgid "Next Activity Summary"
msgstr "Resumen de Próxima Actividad"
#. module: purchase_blanket_order
#: model:ir.model.fields,field_description:purchase_blanket_order.field_purchase_blanket_order__activity_type_id
#: model:ir.model.fields,field_description:purchase_blanket_order.field_purchase_blanket_order_line__activity_type_id
msgid "Next Activity Type"
msgstr "Tipo Actividad Siguiente"
#. module: purchase_blanket_order
#: model:ir.model.fields,field_description:purchase_blanket_order.field_purchase_blanket_order__note
msgid "Note"
msgstr "Nota"
#. module: purchase_blanket_order
#: model:ir.model.fields,field_description:purchase_blanket_order.field_purchase_blanket_order__message_needaction_counter
#: model:ir.model.fields,field_description:purchase_blanket_order.field_purchase_blanket_order_line__message_needaction_counter
msgid "Number of Actions"
msgstr "Número de Acciones"
#. module: purchase_blanket_order
#: model:ir.model.fields,field_description:purchase_blanket_order.field_purchase_blanket_order__message_has_error_counter
#: model:ir.model.fields,field_description:purchase_blanket_order.field_purchase_blanket_order_line__message_has_error_counter
msgid "Number of errors"
msgstr "Número de Errores"
#. module: purchase_blanket_order
#: model:ir.model.fields,help:purchase_blanket_order.field_purchase_blanket_order__message_needaction_counter
#: model:ir.model.fields,help:purchase_blanket_order.field_purchase_blanket_order_line__message_needaction_counter
msgid "Number of messages requiring action"
msgstr "Número de mensajes que requieren una acción"
#. module: purchase_blanket_order
#: model:ir.model.fields,help:purchase_blanket_order.field_purchase_blanket_order__message_has_error_counter
#: model:ir.model.fields,help:purchase_blanket_order.field_purchase_blanket_order_line__message_has_error_counter
msgid "Number of messages with delivery error"
msgstr "Número de mensajes con error de entrega"
#. module: purchase_blanket_order
#: model:ir.model.fields.selection,name:purchase_blanket_order.selection__purchase_blanket_order__state__open
#: model_terms:ir.ui.view,arch_db:purchase_blanket_order.view_purchase_blanket_order_search
msgid "Open"
msgstr "Abrir"
#. module: purchase_blanket_order
#: model:ir.model.fields,field_description:purchase_blanket_order.field_purchase_blanket_order_line__order_id
msgid "Order"
msgstr "Orden"
#. module: purchase_blanket_order
#: model_terms:ir.ui.view,arch_db:purchase_blanket_order.view_purchase_blanket_order_form
msgid "Order Lines"
msgstr "Líneas de Pedido"
#. module: purchase_blanket_order
#: model:ir.model.fields,field_description:purchase_blanket_order.field_purchase_blanket_order__line_ids
msgid "Order lines"
msgstr "Líneas de pedido"
#. module: purchase_blanket_order
#: model_terms:ir.ui.view,arch_db:purchase_blanket_order.view_purchase_blanket_order_search
msgid "Ordered Qty"
msgstr "Ctd Pedida"
#. module: purchase_blanket_order
#: model:ir.model.fields,field_description:purchase_blanket_order.field_purchase_blanket_order__ordered_uom_qty
#: model:ir.model.fields,field_description:purchase_blanket_order.field_purchase_blanket_order_line__ordered_uom_qty
msgid "Ordered quantity"
msgstr "Cantidad pedida"
#. module: purchase_blanket_order
#: model:ir.model.fields,field_description:purchase_blanket_order.field_purchase_order__blanket_order_id
msgid "Origin blanket order"
msgstr "Pedido general de origen"
#. module: purchase_blanket_order
#: model_terms:ir.ui.view,arch_db:purchase_blanket_order.purchase_blanket_order_line_tree
#: model_terms:ir.ui.view,arch_db:purchase_blanket_order.report_blanketorder_document
#: model_terms:ir.ui.view,arch_db:purchase_blanket_order.view_purchase_blanket_order_form
#: model_terms:ir.ui.view,arch_db:purchase_blanket_order.view_purchase_blanket_order_search
msgid "Original Qty"
msgstr "Ctdad Original"
#. module: purchase_blanket_order
#: model:ir.model.fields,field_description:purchase_blanket_order.field_purchase_blanket_order__original_uom_qty
#: model:ir.model.fields,field_description:purchase_blanket_order.field_purchase_blanket_order_line__original_uom_qty
msgid "Original quantity"
msgstr "Cantidad original"
#. module: purchase_blanket_order
#: model_terms:ir.ui.view,arch_db:purchase_blanket_order.view_purchase_blanket_order_form
msgid "Other Information"
msgstr "Otra Información"
#. module: purchase_blanket_order
#. odoo-python
#: code:addons/purchase_blanket_order/models/blanket_orders.py:0
#, python-format
msgid "Partner is mandatory"
msgstr "Es obligatorio el cliente"
#. module: purchase_blanket_order
#: model:ir.model.fields,field_description:purchase_blanket_order.field_purchase_blanket_order__payment_term_id
#: model:ir.model.fields,field_description:purchase_blanket_order.field_purchase_blanket_order_line__payment_term_id
msgid "Payment Terms"
msgstr "Términos de Pago"
#. module: purchase_blanket_order
#: model:ir.model.fields,field_description:purchase_blanket_order.field_purchase_blanket_order_line__price_unit
#: model:ir.model.fields,field_description:purchase_blanket_order.field_purchase_blanket_order_wizard_line__price_unit
msgid "Price"
msgstr "Precio"
#. module: purchase_blanket_order
#. odoo-python
#: code:addons/purchase_blanket_order/models/blanket_orders.py:0
#, python-format
msgid "Price must be greater than zero"
msgstr "El precio debe ser mayor que cero"
#. module: purchase_blanket_order
#: model:ir.model,name:purchase_blanket_order.model_res_config_settings
msgid "Procurement purchase grouping settings"
msgstr "Configuración de la agrupación de compra abastecida"
#. module: purchase_blanket_order
#: model:ir.model.fields,field_description:purchase_blanket_order.field_purchase_blanket_order__product_id
#: model:ir.model.fields,field_description:purchase_blanket_order.field_purchase_blanket_order_line__product_id
#: model:ir.model.fields,field_description:purchase_blanket_order.field_purchase_blanket_order_wizard_line__product_id
#: model_terms:ir.ui.view,arch_db:purchase_blanket_order.report_blanketorder_document
msgid "Product"
msgstr "Producto"
#. module: purchase_blanket_order
#: model:ir.actions.report,name:purchase_blanket_order.report_blanket_order
#: model:ir.model,name:purchase_blanket_order.model_purchase_blanket_order
msgid "Purchase Blanket Order"
msgstr "Orden de Compra Global"
#. module: purchase_blanket_order
#. odoo-python
#: code:addons/purchase_blanket_order/wizard/create_purchase_orders.py:0
#, python-format
msgid "Purchase Blanket Order %s is not open"
msgstr "La Orden General de Compra %s no está abierta"
#. module: purchase_blanket_order
#: model:ir.model,name:purchase_blanket_order.model_purchase_blanket_order_line
#: model_terms:ir.ui.view,arch_db:purchase_blanket_order.purchase_blanket_order_line_form
msgid "Purchase Blanket Order Line"
msgstr "Línea de Compra de Pedido General"
#. module: purchase_blanket_order
#: model:ir.model.fields,field_description:purchase_blanket_order.field_purchase_blanket_order__line_count
msgid "Purchase Blanket Order Line count"
msgstr "Recuento de Línea de Orden de Compra General"
#. module: purchase_blanket_order
#: model:ir.model,name:purchase_blanket_order.model_purchase_blanket_order_wizard_line
msgid "Purchase Blanket Order Wizard Line"
msgstr "Línea del Asistente de Compra de Pedidos Geerales"
#. module: purchase_blanket_order
#: model:ir.model.fields,field_description:purchase_blanket_order.field_purchase_blanket_order__purchase_count
msgid "Purchase Count"
msgstr "Conteo de Compras"
#. module: purchase_blanket_order
#: model:ir.model,name:purchase_blanket_order.model_purchase_order
#: model:ir.model.fields,field_description:purchase_blanket_order.field_purchase_blanket_order_wizard__purchase_order_id
msgid "Purchase Order"
msgstr "Orden de Compra"
#. module: purchase_blanket_order
#: model:ir.model,name:purchase_blanket_order.model_purchase_order_line
msgid "Purchase Order Line"
msgstr "Línea de Orden de Compra"
#. module: purchase_blanket_order
#: model:ir.model.fields,field_description:purchase_blanket_order.field_purchase_blanket_order_line__purchase_lines
#: model_terms:ir.ui.view,arch_db:purchase_blanket_order.purchase_blanket_order_line_form
msgid "Purchase Order Lines"
msgstr "Líneas de Orden de Compra"
#. module: purchase_blanket_order
#. odoo-python
#: code:addons/purchase_blanket_order/models/blanket_orders.py:0
#, python-format
msgid "Quantity must be greater than zero"
msgstr "La cantidad debe ser mayor que cero"
#. module: purchase_blanket_order
#: model:ir.model.fields,field_description:purchase_blanket_order.field_purchase_blanket_order_wizard_line__qty
msgid "Quantity to Order"
msgstr "Cantidad a Pedir"
#. module: purchase_blanket_order
#. odoo-python
#: code:addons/purchase_blanket_order/wizard/create_purchase_orders.py:0
#, python-format
msgid "RFQ"
msgstr "SDO (Solicitud de Oferta)"
#. module: purchase_blanket_order
#: model_terms:ir.ui.view,arch_db:purchase_blanket_order.view_purchase_blanket_order_form
msgid "RFQ/Orders"
msgstr "Petición de oferta/Pedidos"
#. module: purchase_blanket_order
#: model_terms:ir.ui.view,arch_db:purchase_blanket_order.view_purchase_blanket_order_search
msgid "Received Qty"
msgstr "Ctd. Recibido"
#. module: purchase_blanket_order
#: model:ir.model.fields,field_description:purchase_blanket_order.field_purchase_blanket_order__received_uom_qty
#: model:ir.model.fields,field_description:purchase_blanket_order.field_purchase_blanket_order_line__received_uom_qty
msgid "Received quantity"
msgstr "Cantidad recibida"
#. module: purchase_blanket_order
#: model_terms:ir.ui.view,arch_db:purchase_blanket_order.view_purchase_blanket_order_search
msgid "Remaining Qty"
msgstr "Ctd Restante"
#. module: purchase_blanket_order
#: model:ir.model.fields,field_description:purchase_blanket_order.field_purchase_blanket_order__remaining_uom_qty
#: model:ir.model.fields,field_description:purchase_blanket_order.field_purchase_blanket_order_line__remaining_uom_qty
#: model:ir.model.fields,field_description:purchase_blanket_order.field_purchase_blanket_order_wizard_line__remaining_uom_qty
msgid "Remaining quantity"
msgstr "Cantidad restante"
#. module: purchase_blanket_order
#: model:ir.model.fields,field_description:purchase_blanket_order.field_purchase_blanket_order_line__remaining_qty
msgid "Remaining quantity in base UoM"
msgstr "Cantidad restante en base UdM"
#. module: purchase_blanket_order
#: model:ir.model.fields,field_description:purchase_blanket_order.field_purchase_blanket_order__user_id
#: model:ir.model.fields,field_description:purchase_blanket_order.field_purchase_blanket_order_line__user_id
msgid "Responsible"
msgstr "Responsable"
#. module: purchase_blanket_order
#: model:ir.model.fields,field_description:purchase_blanket_order.field_purchase_blanket_order__activity_user_id
#: model:ir.model.fields,field_description:purchase_blanket_order.field_purchase_blanket_order_line__activity_user_id
msgid "Responsible User"
msgstr "Usuario Responsable"
#. module: purchase_blanket_order
#. odoo-python
#: code:addons/purchase_blanket_order/models/purchase_order.py:0
#, python-format
msgid ""
"Schedule dates defined on the Purchase Order Line and on the Blanket Order "
"Line do not match."
msgstr ""
"Las fechas programadas definidas en la Línea de orden de compra y en la "
"Línea de orden abierta no coinciden."
#. module: purchase_blanket_order
#: model:ir.model.fields,field_description:purchase_blanket_order.field_purchase_blanket_order_line__date_schedule
#: model:ir.model.fields,field_description:purchase_blanket_order.field_purchase_blanket_order_wizard_line__date_schedule
#: model_terms:ir.ui.view,arch_db:purchase_blanket_order.report_blanketorder_document
msgid "Scheduled Date"
msgstr "Fecha Planificada"
#. module: purchase_blanket_order
#: model_terms:ir.ui.view,arch_db:purchase_blanket_order.purchase_blanket_order_line_search
msgid "Search Purchase Blanket Order Line"
msgstr "Buscar Compra Línea de Pedido General"
#. module: purchase_blanket_order
#: model:ir.model.fields,field_description:purchase_blanket_order.field_purchase_blanket_order_line__sequence
msgid "Sequence"
msgstr "Secuencia"
#. module: purchase_blanket_order
#: model_terms:ir.ui.view,arch_db:purchase_blanket_order.view_purchase_blanket_order_form
msgid "Setup default terms and conditions in your company settings."
msgstr ""
"Configurar términos y condiciones por defecto en la configuración de "
"compañía."
#. module: purchase_blanket_order
#: model:ir.model.fields,field_description:purchase_blanket_order.field_purchase_blanket_order__date_start
msgid "Start Date"
msgstr "Fecha Comienzo"
#. module: purchase_blanket_order
#: model:ir.model.fields,field_description:purchase_blanket_order.field_purchase_blanket_order__state
msgid "State"
msgstr "Estado"
#. module: purchase_blanket_order
#: model:ir.model.fields,help:purchase_blanket_order.field_purchase_blanket_order__activity_state
#: model:ir.model.fields,help:purchase_blanket_order.field_purchase_blanket_order_line__activity_state
msgid ""
"Status based on activities\n"
"Overdue: Due date is already passed\n"
"Today: Activity date is today\n"
"Planned: Future activities."
msgstr ""
"Status basado en actividades\n"
"Atrasado: La fecha de entrega ya ha pasado\n"
"Hoy: Fecha de actividad es hoy\n"
"Planeado: Actividades futuras."
#. module: purchase_blanket_order
#: model:ir.model.fields,field_description:purchase_blanket_order.field_purchase_blanket_order_line__price_subtotal
msgid "Subtotal"
msgstr "Subtotal"
#. module: purchase_blanket_order
#: model:ir.model.fields,field_description:purchase_blanket_order.field_purchase_blanket_order_line__price_tax
msgid "Tax"
msgstr "Impuestos"
#. module: purchase_blanket_order
#: model:ir.model.fields,field_description:purchase_blanket_order.field_purchase_blanket_order__amount_tax
#: model:ir.model.fields,field_description:purchase_blanket_order.field_purchase_blanket_order_line__taxes_id
#: model:ir.model.fields,field_description:purchase_blanket_order.field_purchase_blanket_order_wizard_line__taxes_id
#: model_terms:ir.ui.view,arch_db:purchase_blanket_order.report_blanketorder_document
msgid "Taxes"
msgstr "Impuestos"
#. module: purchase_blanket_order
#: model_terms:ir.ui.view,arch_db:purchase_blanket_order.view_purchase_blanket_order_form
msgid "Terms and Conditions"
msgstr "Términos y Condiciones"
#. module: purchase_blanket_order
#. odoo-python
#: code:addons/purchase_blanket_order/models/purchase_order.py:0
#, python-format
msgid ""
"The currency of the blanket order must match with that of the purchase order."
msgstr ""
"La divisa de la orden global debe coincidir con la de la orden de compra."
#. module: purchase_blanket_order
#. odoo-python
#: code:addons/purchase_blanket_order/models/purchase_order.py:0
#, python-format
msgid "The vendor must be equal to the blanket order lines vendor"
msgstr ""
"El proveedor debe ser igual al proveedor de las líneas del pedido global"
#. module: purchase_blanket_order
#: model_terms:ir.ui.view,arch_db:purchase_blanket_order.view_purchase_blanket_order_form
msgid "To Draft"
msgstr "A Borrador"
#. module: purchase_blanket_order
#: model:ir.model.fields,field_description:purchase_blanket_order.field_purchase_blanket_order__amount_total
#: model:ir.model.fields,field_description:purchase_blanket_order.field_purchase_blanket_order_line__price_total
msgid "Total"
msgstr "Total/es"
#. module: purchase_blanket_order
#: model:ir.model.fields,help:purchase_blanket_order.field_purchase_blanket_order__activity_exception_decoration
#: model:ir.model.fields,help:purchase_blanket_order.field_purchase_blanket_order_line__activity_exception_decoration
msgid "Type of the exception activity on record."
msgstr "Tipo de actividad excepcional registrada."
#. module: purchase_blanket_order
#: model_terms:ir.ui.view,arch_db:purchase_blanket_order.report_blanketorder_document
msgid "Unit Price"
msgstr "Precio Unitario"
#. module: purchase_blanket_order
#: model:ir.model.fields,field_description:purchase_blanket_order.field_purchase_blanket_order_line__product_uom
#: model:ir.model.fields,field_description:purchase_blanket_order.field_purchase_blanket_order_wizard_line__product_uom
msgid "Unit of Measure"
msgstr "Unidad de Medida"
#. module: purchase_blanket_order
#: model:ir.model.fields,field_description:purchase_blanket_order.field_purchase_blanket_order__amount_untaxed
msgid "Untaxed Amount"
msgstr "Importe no Tributable"
#. module: purchase_blanket_order
#: model_terms:ir.actions.act_window,help:purchase_blanket_order.act_open_purchase_blanket_order_view
msgid ""
"Use this menu to search within your blanket orders. For each blanket order,\n"
" you can track the related discussion with the vendor, "
"control\n"
" the products received and control the vendor bills."
msgstr ""
"Utilice este menú para buscar dentro de sus pedidos abiertos. Para cada "
"pedido abierto\n"
" puede realizar un seguimiento de las conversaciones con el "
"proveedor, controlar\n"
" los productos recibidos y controlar las facturas del "
"proveedor."
#. module: purchase_blanket_order
#: model_terms:ir.ui.view,arch_db:purchase_blanket_order.report_blanketorder_document
msgid "VAT:"
msgstr "NIF/CIF:"
#. module: purchase_blanket_order
#: model:ir.model.fields,field_description:purchase_blanket_order.field_purchase_blanket_order__validity_date
msgid "Validity Date"
msgstr "Fecha de Validez"
#. module: purchase_blanket_order
#. odoo-python
#: code:addons/purchase_blanket_order/models/blanket_orders.py:0
#, python-format
msgid "Validity date is mandatory"
msgstr "La fecha de validez es obligatoria"
#. module: purchase_blanket_order
#. odoo-python
#: code:addons/purchase_blanket_order/models/blanket_orders.py:0
#, python-format
msgid "Validity date must be in the future"
msgstr "La fecha de validez debe ser superior a la fecha de hoy"
#. module: purchase_blanket_order
#: model:ir.model.fields,field_description:purchase_blanket_order.field_purchase_blanket_order__partner_id
#: model:ir.model.fields,field_description:purchase_blanket_order.field_purchase_blanket_order_line__partner_id
#: model:ir.model.fields,field_description:purchase_blanket_order.field_purchase_blanket_order_wizard_line__partner_id
msgid "Vendor"
msgstr "Vendedor"
#. module: purchase_blanket_order
#: model:ir.model.fields,field_description:purchase_blanket_order.field_purchase_blanket_order__partner_ref
msgid "Vendor Reference"
msgstr "Referencia del Vendedor"
#. module: purchase_blanket_order
#: model:ir.actions.server,name:purchase_blanket_order.warnings_purchase_blanket_orders_cron_ir_actions_server
#: model:ir.cron,cron_name:purchase_blanket_order.warnings_purchase_blanket_orders_cron
msgid "Warnings Blanket Orders"
msgstr "Advertencias Órdenes Generales"
#. module: purchase_blanket_order
#: model:ir.model.fields,field_description:purchase_blanket_order.field_purchase_blanket_order__website_message_ids
#: model:ir.model.fields,field_description:purchase_blanket_order.field_purchase_blanket_order_line__website_message_ids
msgid "Website Messages"
msgstr "Mensajes de la Página Web"
#. module: purchase_blanket_order
#: model:ir.model.fields,help:purchase_blanket_order.field_purchase_blanket_order__website_message_ids
#: model:ir.model.fields,help:purchase_blanket_order.field_purchase_blanket_order_line__website_message_ids
msgid "Website communication history"
msgstr "Historial de la comunicación del sitio web"
#. module: purchase_blanket_order
#: model:ir.model.fields,field_description:purchase_blanket_order.field_purchase_blanket_order_wizard_line__wizard_id
msgid "Wizard"
msgstr "Asistente"
#. module: purchase_blanket_order
#. odoo-python
#: code:addons/purchase_blanket_order/models/blanket_orders.py:0
#, python-format
msgid ""
"You can not delete a blanket order with opened purchase orders! Try to "
"cancel them before."
msgstr ""
"¡No puede eliminar pedido programado con órdenes de compra abiertas! intente "
"cancelarlas antes."
#. module: purchase_blanket_order
#. odoo-python
#: code:addons/purchase_blanket_order/models/blanket_orders.py:0
#, python-format
msgid "You can not delete an open blanket order! Try to cancel it before."
msgstr "¡No puede eliminar una programación abierta! intente cancelarla antes."
#. module: purchase_blanket_order
#. odoo-python
#: code:addons/purchase_blanket_order/wizard/create_purchase_orders.py:0
#, python-format
msgid "You can't create a purchase order from an expired blanket order!"
msgstr "¡No se puede crear un pedido a partir de un pedido abierto caducado!"
#. module: purchase_blanket_order
#. odoo-python
#: code:addons/purchase_blanket_order/wizard/create_purchase_orders.py:0
#, python-format
msgid "You can't order more than the remaining quantities"
msgstr "No puede pedir una cantidad superior a las cantidades restantes"
#. module: purchase_blanket_order
#. odoo-python
#: code:addons/purchase_blanket_order/wizard/create_purchase_orders.py:0
#, python-format
msgid "You have to select lines from the same company."
msgstr "Debe seleccionar líneas de la misma compañía."
#. module: purchase_blanket_order
#. odoo-python
#: code:addons/purchase_blanket_order/models/blanket_orders.py:0
#, python-format
msgid "remaining"
msgstr "restante"
#~ msgid "Config Settings"
#~ msgstr "Ajustes Config"

View file

@ -0,0 +1,966 @@
# Translation of Odoo Server.
# This file contains the translation of the following modules:
# * purchase_blanket_order
#
msgid ""
msgstr ""
"Project-Id-Version: Odoo Server 16.0\n"
"Report-Msgid-Bugs-To: \n"
"PO-Revision-Date: 2025-08-20 15:46+0000\n"
"Last-Translator: mymage <stefano.consolaro@mymage.it>\n"
"Language-Team: none\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 5.10.4\n"
#. module: purchase_blanket_order
#: model_terms:ir.ui.view,arch_db:purchase_blanket_order.report_blanketorder_document
msgid "<span>Blanket Order # </span>"
msgstr "<span>Ordine quadro #</span>"
#. module: purchase_blanket_order
#: model_terms:ir.ui.view,arch_db:purchase_blanket_order.report_blanketorder_document
msgid "<strong>Currency:</strong>"
msgstr "<strong>Valuta:</strong>"
#. module: purchase_blanket_order
#: model_terms:ir.ui.view,arch_db:purchase_blanket_order.report_blanketorder_document
msgid "<strong>Payment Terms:</strong>"
msgstr "<strong>Termini di pagamento:</strong>"
#. module: purchase_blanket_order
#: model_terms:ir.ui.view,arch_db:purchase_blanket_order.report_blanketorder_document
msgid "<strong>Purchase person:</strong>"
msgstr "<strong>Referente acquisti:</strong>"
#. module: purchase_blanket_order
#: model_terms:ir.ui.view,arch_db:purchase_blanket_order.report_blanketorder_document
msgid "<strong>Subtotal</strong>"
msgstr "<strong>Subtotale</strong>"
#. module: purchase_blanket_order
#: model_terms:ir.ui.view,arch_db:purchase_blanket_order.report_blanketorder_document
msgid "<strong>Total</strong>"
msgstr "<strong>Totale</strong>"
#. module: purchase_blanket_order
#: model_terms:ir.ui.view,arch_db:purchase_blanket_order.report_blanketorder_document
msgid "<strong>Validity Date:</strong>"
msgstr "<strong>Data di validità:</strong>"
#. module: purchase_blanket_order
#: model:ir.model.fields,field_description:purchase_blanket_order.field_purchase_blanket_order__message_needaction
#: model:ir.model.fields,field_description:purchase_blanket_order.field_purchase_blanket_order_line__message_needaction
msgid "Action Needed"
msgstr "Azione richiesta"
#. module: purchase_blanket_order
#: model:ir.model.fields,field_description:purchase_blanket_order.field_purchase_blanket_order__activity_ids
#: model:ir.model.fields,field_description:purchase_blanket_order.field_purchase_blanket_order_line__activity_ids
msgid "Activities"
msgstr "Attività"
#. module: purchase_blanket_order
#: model:ir.model.fields,field_description:purchase_blanket_order.field_purchase_blanket_order__activity_exception_decoration
#: model:ir.model.fields,field_description:purchase_blanket_order.field_purchase_blanket_order_line__activity_exception_decoration
msgid "Activity Exception Decoration"
msgstr "Decorazione eccezione attività"
#. module: purchase_blanket_order
#: model:ir.model.fields,field_description:purchase_blanket_order.field_purchase_blanket_order__activity_state
#: model:ir.model.fields,field_description:purchase_blanket_order.field_purchase_blanket_order_line__activity_state
msgid "Activity State"
msgstr "Stato attività"
#. module: purchase_blanket_order
#: model:ir.model.fields,field_description:purchase_blanket_order.field_purchase_blanket_order__activity_type_icon
#: model:ir.model.fields,field_description:purchase_blanket_order.field_purchase_blanket_order_line__activity_type_icon
msgid "Activity Type Icon"
msgstr "Icona tipo attività"
#. module: purchase_blanket_order
#. odoo-python
#: code:addons/purchase_blanket_order/wizard/create_purchase_orders.py:0
#, python-format
msgid "All lines have already been completed."
msgstr "Tutte le righe sono già state completate."
#. module: purchase_blanket_order
#: model_terms:ir.ui.view,arch_db:purchase_blanket_order.report_blanketorder_document
msgid "Amount"
msgstr "Valore"
#. module: purchase_blanket_order
#. odoo-python
#: code:addons/purchase_blanket_order/wizard/create_purchase_orders.py:0
#, python-format
msgid "An order can't be empty"
msgstr "Un ordine non può essere vuoto"
#. module: purchase_blanket_order
#: model:ir.model.fields,field_description:purchase_blanket_order.field_purchase_blanket_order__message_attachment_count
#: model:ir.model.fields,field_description:purchase_blanket_order.field_purchase_blanket_order_line__message_attachment_count
msgid "Attachment Count"
msgstr "Conteggio allegati"
#. module: purchase_blanket_order
#: model:ir.model.fields,field_description:purchase_blanket_order.field_purchase_blanket_order_wizard_line__blanket_line_id
msgid "Blanket Line"
msgstr "Riga ordine aperto"
#. module: purchase_blanket_order
#: model:ir.model.fields,field_description:purchase_blanket_order.field_purchase_blanket_order_wizard__blanket_order_id
#: model_terms:ir.ui.view,arch_db:purchase_blanket_order.view_purchase_blanket_order_form
msgid "Blanket Order"
msgstr "Ordine quadro"
#. module: purchase_blanket_order
#: model:ir.model.fields,field_description:purchase_blanket_order.field_purchase_order_line__blanket_order_line
msgid "Blanket Order Line"
msgstr "Riga ordine quadro"
#. module: purchase_blanket_order
#: model:ir.actions.act_window,name:purchase_blanket_order.act_open_purchase_blanket_order_lines_view_tree
#: model:ir.ui.menu,name:purchase_blanket_order.menu_purchase_blanket_order_line
msgid "Blanket Order Lines"
msgstr "Righe ordine quadro"
#. module: purchase_blanket_order
#: model:ir.model,name:purchase_blanket_order.model_purchase_blanket_order_wizard
msgid "Blanket Order Wizard"
msgstr "Procedura guidata ordine quadro"
#. module: purchase_blanket_order
#: model:ir.model.fields,help:purchase_blanket_order.field_purchase_blanket_order__date_start
msgid "Blanket Order starting date."
msgstr "Data inizio ordine quadro."
#. module: purchase_blanket_order
#: model:ir.actions.act_window,name:purchase_blanket_order.act_open_purchase_blanket_order_view
#: model:ir.ui.menu,name:purchase_blanket_order.menu_purchase_blanket_order_config
#: model_terms:ir.ui.view,arch_db:purchase_blanket_order.purchase_config_settings_form_view
msgid "Blanket Orders"
msgstr "Ordini quadro"
#. module: purchase_blanket_order
#. odoo-python
#: code:addons/purchase_blanket_order/wizard/create_purchase_orders.py:0
#, python-format
msgid ""
"Can not create Purchase Order from Blanket Order lines with different "
"currencies"
msgstr ""
"Non si possono creare ordini di acquisto da righe ordine quadro con valute "
"diverse"
#. module: purchase_blanket_order
#: model_terms:ir.ui.view,arch_db:purchase_blanket_order.view_create_purchase_order
#: model_terms:ir.ui.view,arch_db:purchase_blanket_order.view_purchase_blanket_order_form
msgid "Cancel"
msgstr "Annulla"
#. module: purchase_blanket_order
#: model:ir.model.fields,field_description:purchase_blanket_order.field_purchase_blanket_order__cancelled
msgid "Cancelled"
msgstr "Annullato"
#. module: purchase_blanket_order
#. odoo-python
#: code:addons/purchase_blanket_order/models/purchase_order.py:0
#, python-format
msgid ""
"Cannot confirm order %s as one of the lines refers to a blanket order that "
"has no remaining quantity."
msgstr ""
"Non è possibile confermare l'ordine %s in quanto una delle righe si "
"riferisce ad un ordine quadro che non ha quantità rimanenti."
#. module: purchase_blanket_order
#: model_terms:ir.actions.act_window,help:purchase_blanket_order.act_open_purchase_blanket_order_view
msgid ""
"Click to create a blanket order that can be converted into a purchase order."
msgstr ""
"Clicca per creare un ordine quadro che può essere convertito in un ordine di "
"acquisto."
#. module: purchase_blanket_order
#: model:ir.model.fields,field_description:purchase_blanket_order.field_purchase_blanket_order__company_id
#: model:ir.model.fields,field_description:purchase_blanket_order.field_purchase_blanket_order_line__company_id
msgid "Company"
msgstr "Azienda"
#. module: purchase_blanket_order
#: model_terms:ir.ui.view,arch_db:purchase_blanket_order.view_purchase_blanket_order_form
msgid "Confirm"
msgstr "Conferma"
#. module: purchase_blanket_order
#: model:ir.model.fields,field_description:purchase_blanket_order.field_purchase_blanket_order__confirmed
msgid "Confirmed"
msgstr "Confermato"
#. module: purchase_blanket_order
#: model_terms:ir.ui.view,arch_db:purchase_blanket_order.view_create_purchase_order
#: model_terms:ir.ui.view,arch_db:purchase_blanket_order.view_purchase_blanket_order_form
msgid "Create Purchase Order"
msgstr "Crea ordine di acquisto"
#. module: purchase_blanket_order
#: model:ir.actions.act_window,name:purchase_blanket_order.action_create_purchase_order
msgid "Create RFQ"
msgstr "Crea RdP"
#. module: purchase_blanket_order
#: model_terms:ir.ui.view,arch_db:purchase_blanket_order.view_create_purchase_order
msgid "Create and View Order"
msgstr "Crea e visualizza ordine"
#. module: purchase_blanket_order
#: model:ir.model.fields,field_description:purchase_blanket_order.field_purchase_blanket_order__create_uid
#: model:ir.model.fields,field_description:purchase_blanket_order.field_purchase_blanket_order_line__create_uid
#: model:ir.model.fields,field_description:purchase_blanket_order.field_purchase_blanket_order_wizard__create_uid
#: model:ir.model.fields,field_description:purchase_blanket_order.field_purchase_blanket_order_wizard_line__create_uid
msgid "Created by"
msgstr "Creato da"
#. module: purchase_blanket_order
#: model:ir.model.fields,field_description:purchase_blanket_order.field_purchase_blanket_order__create_date
#: model:ir.model.fields,field_description:purchase_blanket_order.field_purchase_blanket_order_line__create_date
#: model:ir.model.fields,field_description:purchase_blanket_order.field_purchase_blanket_order_wizard__create_date
#: model:ir.model.fields,field_description:purchase_blanket_order.field_purchase_blanket_order_wizard_line__create_date
msgid "Created on"
msgstr "Creato il"
#. module: purchase_blanket_order
#: model:ir.model.fields,field_description:purchase_blanket_order.field_purchase_blanket_order__currency_id
#: model:ir.model.fields,field_description:purchase_blanket_order.field_purchase_blanket_order_line__currency_id
#: model:ir.model.fields,field_description:purchase_blanket_order.field_purchase_blanket_order_wizard_line__currency_id
msgid "Currency"
msgstr "Valuta"
#. module: purchase_blanket_order
#. odoo-python
#: code:addons/purchase_blanket_order/models/blanket_orders.py:0
#, python-format
msgid "Date Scheduled"
msgstr "Data schedulata"
#. module: purchase_blanket_order
#: model:ir.model.fields,help:purchase_blanket_order.field_purchase_blanket_order__validity_date
msgid ""
"Date until which the blanket order will be valid, after this date the "
"blanket order will be marked as expired"
msgstr ""
"Data fino alla quale l'ordine quadro sarà valido, dopo questa data l'ordine "
"quadro sarà indicato come scaduto"
#. module: purchase_blanket_order
#: model:ir.model.fields,field_description:purchase_blanket_order.field_purchase_blanket_order_line__name
msgid "Description"
msgstr "Descrizione"
#. module: purchase_blanket_order
#: model:ir.model.fields,field_description:purchase_blanket_order.field_res_config_settings__group_purchase_blanket_disable_adding_lines
msgid "Disable adding more lines to POs"
msgstr "Disabilita l'aggiunta di altre righe negli OA"
#. module: purchase_blanket_order
#: model_terms:ir.ui.view,arch_db:purchase_blanket_order.purchase_config_settings_form_view
msgid "Disable adding more lines to POs from Blanket Orders"
msgstr "Disabilita l'aggiunta di altre righe negli OA da ordini quadro"
#. module: purchase_blanket_order
#: model:res.groups,name:purchase_blanket_order.purchase_blanket_orders_disable_adding_lines
msgid "Disable adding more lines to POs from Purchase Blanket Orders"
msgstr ""
"Disabilita l'aggiunta di altre righe negli OA da ordini quadro di acquisto"
#. module: purchase_blanket_order
#: model:ir.model.fields,field_description:purchase_blanket_order.field_purchase_blanket_order__display_name
#: model:ir.model.fields,field_description:purchase_blanket_order.field_purchase_blanket_order_line__display_name
#: model:ir.model.fields,field_description:purchase_blanket_order.field_purchase_blanket_order_wizard__display_name
#: model:ir.model.fields,field_description:purchase_blanket_order.field_purchase_blanket_order_wizard_line__display_name
msgid "Display Name"
msgstr "Nome visualizzato"
#. module: purchase_blanket_order
#: model:ir.model.fields.selection,name:purchase_blanket_order.selection__purchase_blanket_order__state__done
msgid "Done"
msgstr "Evaso"
#. module: purchase_blanket_order
#: model:ir.model.fields.selection,name:purchase_blanket_order.selection__purchase_blanket_order__state__draft
msgid "Draft"
msgstr "Bozza"
#. module: purchase_blanket_order
#: model:ir.actions.server,name:purchase_blanket_order.expired_purchase_blanket_orders_cron_ir_actions_server
#: model:ir.cron,cron_name:purchase_blanket_order.expired_purchase_blanket_orders_cron
msgid "Expire Blanket Orders"
msgstr "Scadenza ordini quadro"
#. module: purchase_blanket_order
#: model:ir.model.fields.selection,name:purchase_blanket_order.selection__purchase_blanket_order__state__expired
msgid "Expired"
msgstr "Scaduto"
#. module: purchase_blanket_order
#: model:ir.model.fields,field_description:purchase_blanket_order.field_purchase_blanket_order__fiscal_position_id
msgid "Fiscal Position"
msgstr "Posizione fiscale"
#. module: purchase_blanket_order
#: model:ir.model.fields,field_description:purchase_blanket_order.field_purchase_blanket_order__message_follower_ids
#: model:ir.model.fields,field_description:purchase_blanket_order.field_purchase_blanket_order_line__message_follower_ids
msgid "Followers"
msgstr "Seguito da"
#. module: purchase_blanket_order
#: model:ir.model.fields,field_description:purchase_blanket_order.field_purchase_blanket_order__message_partner_ids
#: model:ir.model.fields,field_description:purchase_blanket_order.field_purchase_blanket_order_line__message_partner_ids
msgid "Followers (Partners)"
msgstr "Seguito da (partner)"
#. module: purchase_blanket_order
#: model:ir.model.fields,help:purchase_blanket_order.field_purchase_blanket_order__activity_type_icon
#: model:ir.model.fields,help:purchase_blanket_order.field_purchase_blanket_order_line__activity_type_icon
msgid "Font awesome icon e.g. fa-tasks"
msgstr "Icona Font Awesome es. fa-tasks"
#. module: purchase_blanket_order
#: model:ir.model.fields,field_description:purchase_blanket_order.field_purchase_blanket_order__has_message
#: model:ir.model.fields,field_description:purchase_blanket_order.field_purchase_blanket_order_line__has_message
msgid "Has Message"
msgstr "Ha un messaggio"
#. module: purchase_blanket_order
#: model:ir.model.fields,field_description:purchase_blanket_order.field_purchase_blanket_order__id
#: model:ir.model.fields,field_description:purchase_blanket_order.field_purchase_blanket_order_line__id
#: model:ir.model.fields,field_description:purchase_blanket_order.field_purchase_blanket_order_wizard__id
#: model:ir.model.fields,field_description:purchase_blanket_order.field_purchase_blanket_order_wizard_line__id
msgid "ID"
msgstr "ID"
#. module: purchase_blanket_order
#: model:ir.model.fields,field_description:purchase_blanket_order.field_purchase_blanket_order__activity_exception_icon
#: model:ir.model.fields,field_description:purchase_blanket_order.field_purchase_blanket_order_line__activity_exception_icon
msgid "Icon"
msgstr "Icona"
#. module: purchase_blanket_order
#: model:ir.model.fields,help:purchase_blanket_order.field_purchase_blanket_order__activity_exception_icon
#: model:ir.model.fields,help:purchase_blanket_order.field_purchase_blanket_order_line__activity_exception_icon
msgid "Icon to indicate an exception activity."
msgstr "Icona per indicare un'attività eccezione."
#. module: purchase_blanket_order
#: model:ir.model.fields,help:purchase_blanket_order.field_purchase_blanket_order__message_needaction
#: model:ir.model.fields,help:purchase_blanket_order.field_purchase_blanket_order_line__message_needaction
msgid "If checked, new messages require your attention."
msgstr "Se selezionata, nuovi messaggi richiedono attenzione."
#. module: purchase_blanket_order
#: model:ir.model.fields,help:purchase_blanket_order.field_purchase_blanket_order__message_has_error
#: model:ir.model.fields,help:purchase_blanket_order.field_purchase_blanket_order_line__message_has_error
msgid "If checked, some messages have a delivery error."
msgstr "Se selezionata, alcuni messaggi hanno un errore di consegna."
#. module: purchase_blanket_order
#: model_terms:ir.ui.view,arch_db:purchase_blanket_order.view_purchase_blanket_order_form
msgid "Invoice Information"
msgstr "Informazioni fattura"
#. module: purchase_blanket_order
#: model_terms:ir.ui.view,arch_db:purchase_blanket_order.view_purchase_blanket_order_search
msgid "Invoiced Qty"
msgstr "Q.tà fatturata"
#. module: purchase_blanket_order
#: model:ir.model.fields,field_description:purchase_blanket_order.field_purchase_blanket_order__invoiced_uom_qty
#: model:ir.model.fields,field_description:purchase_blanket_order.field_purchase_blanket_order_line__invoiced_uom_qty
msgid "Invoiced quantity"
msgstr "Quantità fatturata"
#. module: purchase_blanket_order
#: model:ir.model.fields,field_description:purchase_blanket_order.field_purchase_blanket_order__message_is_follower
#: model:ir.model.fields,field_description:purchase_blanket_order.field_purchase_blanket_order_line__message_is_follower
msgid "Is Follower"
msgstr "Segue"
#. module: purchase_blanket_order
#: model:ir.model.fields,field_description:purchase_blanket_order.field_purchase_blanket_order____last_update
#: model:ir.model.fields,field_description:purchase_blanket_order.field_purchase_blanket_order_line____last_update
#: model:ir.model.fields,field_description:purchase_blanket_order.field_purchase_blanket_order_wizard____last_update
#: model:ir.model.fields,field_description:purchase_blanket_order.field_purchase_blanket_order_wizard_line____last_update
msgid "Last Modified on"
msgstr "Ultima modifica il"
#. module: purchase_blanket_order
#: model:ir.model.fields,field_description:purchase_blanket_order.field_purchase_blanket_order__write_uid
#: model:ir.model.fields,field_description:purchase_blanket_order.field_purchase_blanket_order_line__write_uid
#: model:ir.model.fields,field_description:purchase_blanket_order.field_purchase_blanket_order_wizard__write_uid
#: model:ir.model.fields,field_description:purchase_blanket_order.field_purchase_blanket_order_wizard_line__write_uid
msgid "Last Updated by"
msgstr "Ultimo aggiornamento di"
#. module: purchase_blanket_order
#: model:ir.model.fields,field_description:purchase_blanket_order.field_purchase_blanket_order__write_date
#: model:ir.model.fields,field_description:purchase_blanket_order.field_purchase_blanket_order_line__write_date
#: model:ir.model.fields,field_description:purchase_blanket_order.field_purchase_blanket_order_wizard__write_date
#: model:ir.model.fields,field_description:purchase_blanket_order.field_purchase_blanket_order_wizard_line__write_date
msgid "Last Updated on"
msgstr "Ultimo aggiornamento il"
#. module: purchase_blanket_order
#: model:ir.model.fields,field_description:purchase_blanket_order.field_purchase_blanket_order_wizard__line_ids
#: model_terms:ir.ui.view,arch_db:purchase_blanket_order.view_purchase_blanket_order_form
msgid "Lines"
msgstr "Righe"
#. module: purchase_blanket_order
#: model:ir.model.fields,field_description:purchase_blanket_order.field_purchase_blanket_order__message_main_attachment_id
#: model:ir.model.fields,field_description:purchase_blanket_order.field_purchase_blanket_order_line__message_main_attachment_id
msgid "Main Attachment"
msgstr "Allegato principale"
#. module: purchase_blanket_order
#: model:ir.model.fields,field_description:purchase_blanket_order.field_purchase_blanket_order__message_has_error
#: model:ir.model.fields,field_description:purchase_blanket_order.field_purchase_blanket_order_line__message_has_error
msgid "Message Delivery error"
msgstr "Errore di consegna messaggio"
#. module: purchase_blanket_order
#: model:ir.model.fields,field_description:purchase_blanket_order.field_purchase_blanket_order__message_ids
#: model:ir.model.fields,field_description:purchase_blanket_order.field_purchase_blanket_order_line__message_ids
msgid "Messages"
msgstr "Messaggi"
#. module: purchase_blanket_order
#. odoo-python
#: code:addons/purchase_blanket_order/models/blanket_orders.py:0
#, python-format
msgid "Must have some lines"
msgstr "Deve contenere delle righe"
#. module: purchase_blanket_order
#: model:ir.model.fields,field_description:purchase_blanket_order.field_purchase_blanket_order__my_activity_date_deadline
#: model:ir.model.fields,field_description:purchase_blanket_order.field_purchase_blanket_order_line__my_activity_date_deadline
msgid "My Activity Deadline"
msgstr "Scadenza mia attività"
#. module: purchase_blanket_order
#: model:ir.model.fields,field_description:purchase_blanket_order.field_purchase_blanket_order__name
msgid "Name"
msgstr "Nome"
#. module: purchase_blanket_order
#: model:ir.model.fields,field_description:purchase_blanket_order.field_purchase_blanket_order__activity_date_deadline
#: model:ir.model.fields,field_description:purchase_blanket_order.field_purchase_blanket_order_line__activity_date_deadline
msgid "Next Activity Deadline"
msgstr "Scadenza prossima attività"
#. module: purchase_blanket_order
#: model:ir.model.fields,field_description:purchase_blanket_order.field_purchase_blanket_order__activity_summary
#: model:ir.model.fields,field_description:purchase_blanket_order.field_purchase_blanket_order_line__activity_summary
msgid "Next Activity Summary"
msgstr "Riepilogo prossima attività"
#. module: purchase_blanket_order
#: model:ir.model.fields,field_description:purchase_blanket_order.field_purchase_blanket_order__activity_type_id
#: model:ir.model.fields,field_description:purchase_blanket_order.field_purchase_blanket_order_line__activity_type_id
msgid "Next Activity Type"
msgstr "Tipo prossima attività"
#. module: purchase_blanket_order
#: model:ir.model.fields,field_description:purchase_blanket_order.field_purchase_blanket_order__note
msgid "Note"
msgstr "Nota"
#. module: purchase_blanket_order
#: model:ir.model.fields,field_description:purchase_blanket_order.field_purchase_blanket_order__message_needaction_counter
#: model:ir.model.fields,field_description:purchase_blanket_order.field_purchase_blanket_order_line__message_needaction_counter
msgid "Number of Actions"
msgstr "Numero di azioni"
#. module: purchase_blanket_order
#: model:ir.model.fields,field_description:purchase_blanket_order.field_purchase_blanket_order__message_has_error_counter
#: model:ir.model.fields,field_description:purchase_blanket_order.field_purchase_blanket_order_line__message_has_error_counter
msgid "Number of errors"
msgstr "Numero di errori"
#. module: purchase_blanket_order
#: model:ir.model.fields,help:purchase_blanket_order.field_purchase_blanket_order__message_needaction_counter
#: model:ir.model.fields,help:purchase_blanket_order.field_purchase_blanket_order_line__message_needaction_counter
msgid "Number of messages requiring action"
msgstr "Numero di messaggi che richiedono un'azione"
#. module: purchase_blanket_order
#: model:ir.model.fields,help:purchase_blanket_order.field_purchase_blanket_order__message_has_error_counter
#: model:ir.model.fields,help:purchase_blanket_order.field_purchase_blanket_order_line__message_has_error_counter
msgid "Number of messages with delivery error"
msgstr "Numero di messaggi con errore di consegna"
#. module: purchase_blanket_order
#: model:ir.model.fields.selection,name:purchase_blanket_order.selection__purchase_blanket_order__state__open
#: model_terms:ir.ui.view,arch_db:purchase_blanket_order.view_purchase_blanket_order_search
msgid "Open"
msgstr "Aperto"
#. module: purchase_blanket_order
#: model:ir.model.fields,field_description:purchase_blanket_order.field_purchase_blanket_order_line__order_id
msgid "Order"
msgstr "Ordine"
#. module: purchase_blanket_order
#: model_terms:ir.ui.view,arch_db:purchase_blanket_order.view_purchase_blanket_order_form
msgid "Order Lines"
msgstr "Righe ordine"
#. module: purchase_blanket_order
#: model:ir.model.fields,field_description:purchase_blanket_order.field_purchase_blanket_order__line_ids
msgid "Order lines"
msgstr "Righe ordine"
#. module: purchase_blanket_order
#: model_terms:ir.ui.view,arch_db:purchase_blanket_order.view_purchase_blanket_order_search
msgid "Ordered Qty"
msgstr "Q.tà ordinata"
#. module: purchase_blanket_order
#: model:ir.model.fields,field_description:purchase_blanket_order.field_purchase_blanket_order__ordered_uom_qty
#: model:ir.model.fields,field_description:purchase_blanket_order.field_purchase_blanket_order_line__ordered_uom_qty
msgid "Ordered quantity"
msgstr "Quantità ordinata"
#. module: purchase_blanket_order
#: model:ir.model.fields,field_description:purchase_blanket_order.field_purchase_order__blanket_order_id
msgid "Origin blanket order"
msgstr "Origine ordine quadro"
#. module: purchase_blanket_order
#: model_terms:ir.ui.view,arch_db:purchase_blanket_order.purchase_blanket_order_line_tree
#: model_terms:ir.ui.view,arch_db:purchase_blanket_order.report_blanketorder_document
#: model_terms:ir.ui.view,arch_db:purchase_blanket_order.view_purchase_blanket_order_form
#: model_terms:ir.ui.view,arch_db:purchase_blanket_order.view_purchase_blanket_order_search
msgid "Original Qty"
msgstr "Q.tà originale"
#. module: purchase_blanket_order
#: model:ir.model.fields,field_description:purchase_blanket_order.field_purchase_blanket_order__original_uom_qty
#: model:ir.model.fields,field_description:purchase_blanket_order.field_purchase_blanket_order_line__original_uom_qty
msgid "Original quantity"
msgstr "Quantità originale"
#. module: purchase_blanket_order
#: model_terms:ir.ui.view,arch_db:purchase_blanket_order.view_purchase_blanket_order_form
msgid "Other Information"
msgstr "Altre informazioni"
#. module: purchase_blanket_order
#. odoo-python
#: code:addons/purchase_blanket_order/models/blanket_orders.py:0
#, python-format
msgid "Partner is mandatory"
msgstr "Il partner è obbligatorio"
#. module: purchase_blanket_order
#: model:ir.model.fields,field_description:purchase_blanket_order.field_purchase_blanket_order__payment_term_id
#: model:ir.model.fields,field_description:purchase_blanket_order.field_purchase_blanket_order_line__payment_term_id
msgid "Payment Terms"
msgstr "Termini di pagamento"
#. module: purchase_blanket_order
#: model:ir.model.fields,field_description:purchase_blanket_order.field_purchase_blanket_order_line__price_unit
#: model:ir.model.fields,field_description:purchase_blanket_order.field_purchase_blanket_order_wizard_line__price_unit
msgid "Price"
msgstr "Prezzo"
#. module: purchase_blanket_order
#. odoo-python
#: code:addons/purchase_blanket_order/models/blanket_orders.py:0
#, python-format
msgid "Price must be greater than zero"
msgstr "Il prezzo deve essere maggiore di zero"
#. module: purchase_blanket_order
#: model:ir.model,name:purchase_blanket_order.model_res_config_settings
msgid "Procurement purchase grouping settings"
msgstr "Impostazioni raggruppamento approvvigionamento acquisti"
#. module: purchase_blanket_order
#: model:ir.model.fields,field_description:purchase_blanket_order.field_purchase_blanket_order__product_id
#: model:ir.model.fields,field_description:purchase_blanket_order.field_purchase_blanket_order_line__product_id
#: model:ir.model.fields,field_description:purchase_blanket_order.field_purchase_blanket_order_wizard_line__product_id
#: model_terms:ir.ui.view,arch_db:purchase_blanket_order.report_blanketorder_document
msgid "Product"
msgstr "Prodotto"
#. module: purchase_blanket_order
#: model:ir.actions.report,name:purchase_blanket_order.report_blanket_order
#: model:ir.model,name:purchase_blanket_order.model_purchase_blanket_order
msgid "Purchase Blanket Order"
msgstr "Ordine quadro d'acquisto"
#. module: purchase_blanket_order
#. odoo-python
#: code:addons/purchase_blanket_order/wizard/create_purchase_orders.py:0
#, python-format
msgid "Purchase Blanket Order %s is not open"
msgstr "L'ordine quadro di acquisto %s non è aperto"
#. module: purchase_blanket_order
#: model:ir.model,name:purchase_blanket_order.model_purchase_blanket_order_line
#: model_terms:ir.ui.view,arch_db:purchase_blanket_order.purchase_blanket_order_line_form
msgid "Purchase Blanket Order Line"
msgstr "Riga ordine quadro di acquisto"
#. module: purchase_blanket_order
#: model:ir.model.fields,field_description:purchase_blanket_order.field_purchase_blanket_order__line_count
msgid "Purchase Blanket Order Line count"
msgstr "Numero righe ordine quadro d'acquisto"
#. module: purchase_blanket_order
#: model:ir.model,name:purchase_blanket_order.model_purchase_blanket_order_wizard_line
msgid "Purchase Blanket Order Wizard Line"
msgstr "Riga procedura guidata ordine quadro d'acquisto"
#. module: purchase_blanket_order
#: model:ir.model.fields,field_description:purchase_blanket_order.field_purchase_blanket_order__purchase_count
msgid "Purchase Count"
msgstr "Conteggio acquisti"
#. module: purchase_blanket_order
#: model:ir.model,name:purchase_blanket_order.model_purchase_order
#: model:ir.model.fields,field_description:purchase_blanket_order.field_purchase_blanket_order_wizard__purchase_order_id
msgid "Purchase Order"
msgstr "Ordine di acquisto"
#. module: purchase_blanket_order
#: model:ir.model,name:purchase_blanket_order.model_purchase_order_line
msgid "Purchase Order Line"
msgstr "Riga ordine di acquisto"
#. module: purchase_blanket_order
#: model:ir.model.fields,field_description:purchase_blanket_order.field_purchase_blanket_order_line__purchase_lines
#: model_terms:ir.ui.view,arch_db:purchase_blanket_order.purchase_blanket_order_line_form
msgid "Purchase Order Lines"
msgstr "Righe ordine di acquisto"
#. module: purchase_blanket_order
#. odoo-python
#: code:addons/purchase_blanket_order/models/blanket_orders.py:0
#, python-format
msgid "Quantity must be greater than zero"
msgstr "La quantità deve essere maggiore di zero"
#. module: purchase_blanket_order
#: model:ir.model.fields,field_description:purchase_blanket_order.field_purchase_blanket_order_wizard_line__qty
msgid "Quantity to Order"
msgstr "Quantità da Ordinare"
#. module: purchase_blanket_order
#. odoo-python
#: code:addons/purchase_blanket_order/wizard/create_purchase_orders.py:0
#, python-format
msgid "RFQ"
msgstr "RdP"
#. module: purchase_blanket_order
#: model_terms:ir.ui.view,arch_db:purchase_blanket_order.view_purchase_blanket_order_form
msgid "RFQ/Orders"
msgstr "RdP/Ordini"
#. module: purchase_blanket_order
#: model_terms:ir.ui.view,arch_db:purchase_blanket_order.view_purchase_blanket_order_search
msgid "Received Qty"
msgstr "Q.tà ricevuta"
#. module: purchase_blanket_order
#: model:ir.model.fields,field_description:purchase_blanket_order.field_purchase_blanket_order__received_uom_qty
#: model:ir.model.fields,field_description:purchase_blanket_order.field_purchase_blanket_order_line__received_uom_qty
msgid "Received quantity"
msgstr "Quantità ricevuta"
#. module: purchase_blanket_order
#: model_terms:ir.ui.view,arch_db:purchase_blanket_order.view_purchase_blanket_order_search
msgid "Remaining Qty"
msgstr "Q.tà rimanente"
#. module: purchase_blanket_order
#: model:ir.model.fields,field_description:purchase_blanket_order.field_purchase_blanket_order__remaining_uom_qty
#: model:ir.model.fields,field_description:purchase_blanket_order.field_purchase_blanket_order_line__remaining_uom_qty
#: model:ir.model.fields,field_description:purchase_blanket_order.field_purchase_blanket_order_wizard_line__remaining_uom_qty
msgid "Remaining quantity"
msgstr "Quantità residua"
#. module: purchase_blanket_order
#: model:ir.model.fields,field_description:purchase_blanket_order.field_purchase_blanket_order_line__remaining_qty
msgid "Remaining quantity in base UoM"
msgstr "Quantità rimanente in UdM base"
#. module: purchase_blanket_order
#: model:ir.model.fields,field_description:purchase_blanket_order.field_purchase_blanket_order__user_id
#: model:ir.model.fields,field_description:purchase_blanket_order.field_purchase_blanket_order_line__user_id
msgid "Responsible"
msgstr "Responsabile"
#. module: purchase_blanket_order
#: model:ir.model.fields,field_description:purchase_blanket_order.field_purchase_blanket_order__activity_user_id
#: model:ir.model.fields,field_description:purchase_blanket_order.field_purchase_blanket_order_line__activity_user_id
msgid "Responsible User"
msgstr "Utente responsabile"
#. module: purchase_blanket_order
#. odoo-python
#: code:addons/purchase_blanket_order/models/purchase_order.py:0
#, python-format
msgid ""
"Schedule dates defined on the Purchase Order Line and on the Blanket Order "
"Line do not match."
msgstr ""
"Le date pianificate definite sulla riga ordine di acquisto e sulla riga "
"ordine quadro non corrispondono."
#. module: purchase_blanket_order
#: model:ir.model.fields,field_description:purchase_blanket_order.field_purchase_blanket_order_line__date_schedule
#: model:ir.model.fields,field_description:purchase_blanket_order.field_purchase_blanket_order_wizard_line__date_schedule
#: model_terms:ir.ui.view,arch_db:purchase_blanket_order.report_blanketorder_document
msgid "Scheduled Date"
msgstr "Data schedulata"
#. module: purchase_blanket_order
#: model_terms:ir.ui.view,arch_db:purchase_blanket_order.purchase_blanket_order_line_search
msgid "Search Purchase Blanket Order Line"
msgstr "Cerca riga ordine quadro di acquisto"
#. module: purchase_blanket_order
#: model:ir.model.fields,field_description:purchase_blanket_order.field_purchase_blanket_order_line__sequence
msgid "Sequence"
msgstr "Sequenza"
#. module: purchase_blanket_order
#: model_terms:ir.ui.view,arch_db:purchase_blanket_order.view_purchase_blanket_order_form
msgid "Setup default terms and conditions in your company settings."
msgstr ""
"Imposta termini predefiniti e condizioni nelle tue impostazioni aziendali."
#. module: purchase_blanket_order
#: model:ir.model.fields,field_description:purchase_blanket_order.field_purchase_blanket_order__date_start
msgid "Start Date"
msgstr "Data inizio"
#. module: purchase_blanket_order
#: model:ir.model.fields,field_description:purchase_blanket_order.field_purchase_blanket_order__state
msgid "State"
msgstr "Stato"
#. module: purchase_blanket_order
#: model:ir.model.fields,help:purchase_blanket_order.field_purchase_blanket_order__activity_state
#: model:ir.model.fields,help:purchase_blanket_order.field_purchase_blanket_order_line__activity_state
msgid ""
"Status based on activities\n"
"Overdue: Due date is already passed\n"
"Today: Activity date is today\n"
"Planned: Future activities."
msgstr ""
"Stato in base alle attività\n"
"Scaduto: la data richiesta è trascorsa\n"
"Oggi: la data attività è oggi\n"
"Pianificato: attività future."
#. module: purchase_blanket_order
#: model:ir.model.fields,field_description:purchase_blanket_order.field_purchase_blanket_order_line__price_subtotal
msgid "Subtotal"
msgstr "Subtotale"
#. module: purchase_blanket_order
#: model:ir.model.fields,field_description:purchase_blanket_order.field_purchase_blanket_order_line__price_tax
msgid "Tax"
msgstr "Imposta"
#. module: purchase_blanket_order
#: model:ir.model.fields,field_description:purchase_blanket_order.field_purchase_blanket_order__amount_tax
#: model:ir.model.fields,field_description:purchase_blanket_order.field_purchase_blanket_order_line__taxes_id
#: model:ir.model.fields,field_description:purchase_blanket_order.field_purchase_blanket_order_wizard_line__taxes_id
#: model_terms:ir.ui.view,arch_db:purchase_blanket_order.report_blanketorder_document
msgid "Taxes"
msgstr "Imposte"
#. module: purchase_blanket_order
#: model_terms:ir.ui.view,arch_db:purchase_blanket_order.view_purchase_blanket_order_form
msgid "Terms and Conditions"
msgstr "Termini e condizioni"
#. module: purchase_blanket_order
#. odoo-python
#: code:addons/purchase_blanket_order/models/purchase_order.py:0
#, python-format
msgid ""
"The currency of the blanket order must match with that of the purchase order."
msgstr ""
"La valuta dell'ordine quadro deve corrispondere con quella dell'ordine di "
"acquisto."
#. module: purchase_blanket_order
#. odoo-python
#: code:addons/purchase_blanket_order/models/purchase_order.py:0
#, python-format
msgid "The vendor must be equal to the blanket order lines vendor"
msgstr "Il fornitore deve essere lo stesso delle righe dell'ordine quadro"
#. module: purchase_blanket_order
#: model_terms:ir.ui.view,arch_db:purchase_blanket_order.view_purchase_blanket_order_form
msgid "To Draft"
msgstr "A bozza"
#. module: purchase_blanket_order
#: model:ir.model.fields,field_description:purchase_blanket_order.field_purchase_blanket_order__amount_total
#: model:ir.model.fields,field_description:purchase_blanket_order.field_purchase_blanket_order_line__price_total
msgid "Total"
msgstr "Totale"
#. module: purchase_blanket_order
#: model:ir.model.fields,help:purchase_blanket_order.field_purchase_blanket_order__activity_exception_decoration
#: model:ir.model.fields,help:purchase_blanket_order.field_purchase_blanket_order_line__activity_exception_decoration
msgid "Type of the exception activity on record."
msgstr "Tipo di attività eccezione sul record."
#. module: purchase_blanket_order
#: model_terms:ir.ui.view,arch_db:purchase_blanket_order.report_blanketorder_document
msgid "Unit Price"
msgstr "Prezzo unitario"
#. module: purchase_blanket_order
#: model:ir.model.fields,field_description:purchase_blanket_order.field_purchase_blanket_order_line__product_uom
#: model:ir.model.fields,field_description:purchase_blanket_order.field_purchase_blanket_order_wizard_line__product_uom
msgid "Unit of Measure"
msgstr "Unità di misura"
#. module: purchase_blanket_order
#: model:ir.model.fields,field_description:purchase_blanket_order.field_purchase_blanket_order__amount_untaxed
msgid "Untaxed Amount"
msgstr "Imponibile"
#. module: purchase_blanket_order
#: model_terms:ir.actions.act_window,help:purchase_blanket_order.act_open_purchase_blanket_order_view
msgid ""
"Use this menu to search within your blanket orders. For each blanket order,\n"
" you can track the related discussion with the vendor, "
"control\n"
" the products received and control the vendor bills."
msgstr ""
"Usa questo menu per ricercare nei tuoi ordini quadro. Per ogni ordine quadro,"
"\n"
" puoi tracciare le relative conversazioni con il cliente, "
"controllare\n"
" i prodotti spediti e controllare le fatture del fornitore."
#. module: purchase_blanket_order
#: model_terms:ir.ui.view,arch_db:purchase_blanket_order.report_blanketorder_document
msgid "VAT:"
msgstr "IVA:"
#. module: purchase_blanket_order
#: model:ir.model.fields,field_description:purchase_blanket_order.field_purchase_blanket_order__validity_date
msgid "Validity Date"
msgstr "Data validità"
#. module: purchase_blanket_order
#. odoo-python
#: code:addons/purchase_blanket_order/models/blanket_orders.py:0
#, python-format
msgid "Validity date is mandatory"
msgstr "La data di validità è obbligatoria"
#. module: purchase_blanket_order
#. odoo-python
#: code:addons/purchase_blanket_order/models/blanket_orders.py:0
#, python-format
msgid "Validity date must be in the future"
msgstr "La data di validità deve essere nel futuro"
#. module: purchase_blanket_order
#: model:ir.model.fields,field_description:purchase_blanket_order.field_purchase_blanket_order__partner_id
#: model:ir.model.fields,field_description:purchase_blanket_order.field_purchase_blanket_order_line__partner_id
#: model:ir.model.fields,field_description:purchase_blanket_order.field_purchase_blanket_order_wizard_line__partner_id
msgid "Vendor"
msgstr "Fornitore"
#. module: purchase_blanket_order
#: model:ir.model.fields,field_description:purchase_blanket_order.field_purchase_blanket_order__partner_ref
msgid "Vendor Reference"
msgstr "Riferimento fornitore"
#. module: purchase_blanket_order
#: model:ir.actions.server,name:purchase_blanket_order.warnings_purchase_blanket_orders_cron_ir_actions_server
#: model:ir.cron,cron_name:purchase_blanket_order.warnings_purchase_blanket_orders_cron
msgid "Warnings Blanket Orders"
msgstr "Avvisi ordini quadro"
#. module: purchase_blanket_order
#: model:ir.model.fields,field_description:purchase_blanket_order.field_purchase_blanket_order__website_message_ids
#: model:ir.model.fields,field_description:purchase_blanket_order.field_purchase_blanket_order_line__website_message_ids
msgid "Website Messages"
msgstr "Messaggi sito web"
#. module: purchase_blanket_order
#: model:ir.model.fields,help:purchase_blanket_order.field_purchase_blanket_order__website_message_ids
#: model:ir.model.fields,help:purchase_blanket_order.field_purchase_blanket_order_line__website_message_ids
msgid "Website communication history"
msgstr "Cronologia comunicazioni sito web"
#. module: purchase_blanket_order
#: model:ir.model.fields,field_description:purchase_blanket_order.field_purchase_blanket_order_wizard_line__wizard_id
msgid "Wizard"
msgstr "Procedura guidata"
#. module: purchase_blanket_order
#. odoo-python
#: code:addons/purchase_blanket_order/models/blanket_orders.py:0
#, python-format
msgid ""
"You can not delete a blanket order with opened purchase orders! Try to "
"cancel them before."
msgstr ""
"Non si può cancellare un ordine quadro con ordini di acquisto aperti! "
"Provare prima a cancellarli."
#. module: purchase_blanket_order
#. odoo-python
#: code:addons/purchase_blanket_order/models/blanket_orders.py:0
#, python-format
msgid "You can not delete an open blanket order! Try to cancel it before."
msgstr ""
"Non si può cancellare un ordine quadro in stato aperto! Prova prima ad "
"annullarlo."
#. module: purchase_blanket_order
#. odoo-python
#: code:addons/purchase_blanket_order/wizard/create_purchase_orders.py:0
#, python-format
msgid "You can't create a purchase order from an expired blanket order!"
msgstr "Non si può creare un ordine di acquisto da un ordine quadro scaduto!"
#. module: purchase_blanket_order
#. odoo-python
#: code:addons/purchase_blanket_order/wizard/create_purchase_orders.py:0
#, python-format
msgid "You can't order more than the remaining quantities"
msgstr "Non si può ordinare più della quantità rimanente"
#. module: purchase_blanket_order
#. odoo-python
#: code:addons/purchase_blanket_order/wizard/create_purchase_orders.py:0
#, python-format
msgid "You have to select lines from the same company."
msgstr "Bisogna selezionare le righe della stessa azienda."
#. module: purchase_blanket_order
#. odoo-python
#: code:addons/purchase_blanket_order/models/blanket_orders.py:0
#, python-format
msgid "remaining"
msgstr "rimanenti"

View file

@ -0,0 +1,937 @@
# Translation of Odoo Server.
# This file contains the translation of the following modules:
# * purchase_blanket_order
#
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_blanket_order
#: model_terms:ir.ui.view,arch_db:purchase_blanket_order.report_blanketorder_document
msgid "<span>Blanket Order # </span>"
msgstr ""
#. module: purchase_blanket_order
#: model_terms:ir.ui.view,arch_db:purchase_blanket_order.report_blanketorder_document
msgid "<strong>Currency:</strong>"
msgstr ""
#. module: purchase_blanket_order
#: model_terms:ir.ui.view,arch_db:purchase_blanket_order.report_blanketorder_document
msgid "<strong>Payment Terms:</strong>"
msgstr ""
#. module: purchase_blanket_order
#: model_terms:ir.ui.view,arch_db:purchase_blanket_order.report_blanketorder_document
msgid "<strong>Purchase person:</strong>"
msgstr ""
#. module: purchase_blanket_order
#: model_terms:ir.ui.view,arch_db:purchase_blanket_order.report_blanketorder_document
msgid "<strong>Subtotal</strong>"
msgstr ""
#. module: purchase_blanket_order
#: model_terms:ir.ui.view,arch_db:purchase_blanket_order.report_blanketorder_document
msgid "<strong>Total</strong>"
msgstr ""
#. module: purchase_blanket_order
#: model_terms:ir.ui.view,arch_db:purchase_blanket_order.report_blanketorder_document
msgid "<strong>Validity Date:</strong>"
msgstr ""
#. module: purchase_blanket_order
#: model:ir.model.fields,field_description:purchase_blanket_order.field_purchase_blanket_order__message_needaction
#: model:ir.model.fields,field_description:purchase_blanket_order.field_purchase_blanket_order_line__message_needaction
msgid "Action Needed"
msgstr ""
#. module: purchase_blanket_order
#: model:ir.model.fields,field_description:purchase_blanket_order.field_purchase_blanket_order__activity_ids
#: model:ir.model.fields,field_description:purchase_blanket_order.field_purchase_blanket_order_line__activity_ids
msgid "Activities"
msgstr ""
#. module: purchase_blanket_order
#: model:ir.model.fields,field_description:purchase_blanket_order.field_purchase_blanket_order__activity_exception_decoration
#: model:ir.model.fields,field_description:purchase_blanket_order.field_purchase_blanket_order_line__activity_exception_decoration
msgid "Activity Exception Decoration"
msgstr ""
#. module: purchase_blanket_order
#: model:ir.model.fields,field_description:purchase_blanket_order.field_purchase_blanket_order__activity_state
#: model:ir.model.fields,field_description:purchase_blanket_order.field_purchase_blanket_order_line__activity_state
msgid "Activity State"
msgstr ""
#. module: purchase_blanket_order
#: model:ir.model.fields,field_description:purchase_blanket_order.field_purchase_blanket_order__activity_type_icon
#: model:ir.model.fields,field_description:purchase_blanket_order.field_purchase_blanket_order_line__activity_type_icon
msgid "Activity Type Icon"
msgstr ""
#. module: purchase_blanket_order
#. odoo-python
#: code:addons/purchase_blanket_order/wizard/create_purchase_orders.py:0
#, python-format
msgid "All lines have already been completed."
msgstr ""
#. module: purchase_blanket_order
#: model_terms:ir.ui.view,arch_db:purchase_blanket_order.report_blanketorder_document
msgid "Amount"
msgstr ""
#. module: purchase_blanket_order
#. odoo-python
#: code:addons/purchase_blanket_order/wizard/create_purchase_orders.py:0
#, python-format
msgid "An order can't be empty"
msgstr ""
#. module: purchase_blanket_order
#: model:ir.model.fields,field_description:purchase_blanket_order.field_purchase_blanket_order__message_attachment_count
#: model:ir.model.fields,field_description:purchase_blanket_order.field_purchase_blanket_order_line__message_attachment_count
msgid "Attachment Count"
msgstr ""
#. module: purchase_blanket_order
#: model:ir.model.fields,field_description:purchase_blanket_order.field_purchase_blanket_order_wizard_line__blanket_line_id
msgid "Blanket Line"
msgstr ""
#. module: purchase_blanket_order
#: model:ir.model.fields,field_description:purchase_blanket_order.field_purchase_blanket_order_wizard__blanket_order_id
#: model_terms:ir.ui.view,arch_db:purchase_blanket_order.view_purchase_blanket_order_form
msgid "Blanket Order"
msgstr ""
#. module: purchase_blanket_order
#: model:ir.model.fields,field_description:purchase_blanket_order.field_purchase_order_line__blanket_order_line
msgid "Blanket Order Line"
msgstr ""
#. module: purchase_blanket_order
#: model:ir.actions.act_window,name:purchase_blanket_order.act_open_purchase_blanket_order_lines_view_tree
#: model:ir.ui.menu,name:purchase_blanket_order.menu_purchase_blanket_order_line
msgid "Blanket Order Lines"
msgstr ""
#. module: purchase_blanket_order
#: model:ir.model,name:purchase_blanket_order.model_purchase_blanket_order_wizard
msgid "Blanket Order Wizard"
msgstr ""
#. module: purchase_blanket_order
#: model:ir.model.fields,help:purchase_blanket_order.field_purchase_blanket_order__date_start
msgid "Blanket Order starting date."
msgstr ""
#. module: purchase_blanket_order
#: model:ir.actions.act_window,name:purchase_blanket_order.act_open_purchase_blanket_order_view
#: model:ir.ui.menu,name:purchase_blanket_order.menu_purchase_blanket_order_config
#: model_terms:ir.ui.view,arch_db:purchase_blanket_order.purchase_config_settings_form_view
msgid "Blanket Orders"
msgstr ""
#. module: purchase_blanket_order
#. odoo-python
#: code:addons/purchase_blanket_order/wizard/create_purchase_orders.py:0
#, python-format
msgid ""
"Can not create Purchase Order from Blanket Order lines with different "
"currencies"
msgstr ""
#. module: purchase_blanket_order
#: model_terms:ir.ui.view,arch_db:purchase_blanket_order.view_create_purchase_order
#: model_terms:ir.ui.view,arch_db:purchase_blanket_order.view_purchase_blanket_order_form
msgid "Cancel"
msgstr ""
#. module: purchase_blanket_order
#: model:ir.model.fields,field_description:purchase_blanket_order.field_purchase_blanket_order__cancelled
msgid "Cancelled"
msgstr ""
#. module: purchase_blanket_order
#. odoo-python
#: code:addons/purchase_blanket_order/models/purchase_order.py:0
#, python-format
msgid ""
"Cannot confirm order %s as one of the lines refers to a blanket order that "
"has no remaining quantity."
msgstr ""
#. module: purchase_blanket_order
#: model_terms:ir.actions.act_window,help:purchase_blanket_order.act_open_purchase_blanket_order_view
msgid ""
"Click to create a blanket order that can be converted into a purchase order."
msgstr ""
#. module: purchase_blanket_order
#: model:ir.model.fields,field_description:purchase_blanket_order.field_purchase_blanket_order__company_id
#: model:ir.model.fields,field_description:purchase_blanket_order.field_purchase_blanket_order_line__company_id
msgid "Company"
msgstr ""
#. module: purchase_blanket_order
#: model_terms:ir.ui.view,arch_db:purchase_blanket_order.view_purchase_blanket_order_form
msgid "Confirm"
msgstr ""
#. module: purchase_blanket_order
#: model:ir.model.fields,field_description:purchase_blanket_order.field_purchase_blanket_order__confirmed
msgid "Confirmed"
msgstr ""
#. module: purchase_blanket_order
#: model_terms:ir.ui.view,arch_db:purchase_blanket_order.view_create_purchase_order
#: model_terms:ir.ui.view,arch_db:purchase_blanket_order.view_purchase_blanket_order_form
msgid "Create Purchase Order"
msgstr ""
#. module: purchase_blanket_order
#: model:ir.actions.act_window,name:purchase_blanket_order.action_create_purchase_order
msgid "Create RFQ"
msgstr ""
#. module: purchase_blanket_order
#: model_terms:ir.ui.view,arch_db:purchase_blanket_order.view_create_purchase_order
msgid "Create and View Order"
msgstr ""
#. module: purchase_blanket_order
#: model:ir.model.fields,field_description:purchase_blanket_order.field_purchase_blanket_order__create_uid
#: model:ir.model.fields,field_description:purchase_blanket_order.field_purchase_blanket_order_line__create_uid
#: model:ir.model.fields,field_description:purchase_blanket_order.field_purchase_blanket_order_wizard__create_uid
#: model:ir.model.fields,field_description:purchase_blanket_order.field_purchase_blanket_order_wizard_line__create_uid
msgid "Created by"
msgstr ""
#. module: purchase_blanket_order
#: model:ir.model.fields,field_description:purchase_blanket_order.field_purchase_blanket_order__create_date
#: model:ir.model.fields,field_description:purchase_blanket_order.field_purchase_blanket_order_line__create_date
#: model:ir.model.fields,field_description:purchase_blanket_order.field_purchase_blanket_order_wizard__create_date
#: model:ir.model.fields,field_description:purchase_blanket_order.field_purchase_blanket_order_wizard_line__create_date
msgid "Created on"
msgstr ""
#. module: purchase_blanket_order
#: model:ir.model.fields,field_description:purchase_blanket_order.field_purchase_blanket_order__currency_id
#: model:ir.model.fields,field_description:purchase_blanket_order.field_purchase_blanket_order_line__currency_id
#: model:ir.model.fields,field_description:purchase_blanket_order.field_purchase_blanket_order_wizard_line__currency_id
msgid "Currency"
msgstr ""
#. module: purchase_blanket_order
#. odoo-python
#: code:addons/purchase_blanket_order/models/blanket_orders.py:0
#, python-format
msgid "Date Scheduled"
msgstr ""
#. module: purchase_blanket_order
#: model:ir.model.fields,help:purchase_blanket_order.field_purchase_blanket_order__validity_date
msgid ""
"Date until which the blanket order will be valid, after this date the "
"blanket order will be marked as expired"
msgstr ""
#. module: purchase_blanket_order
#: model:ir.model.fields,field_description:purchase_blanket_order.field_purchase_blanket_order_line__name
msgid "Description"
msgstr ""
#. module: purchase_blanket_order
#: model:ir.model.fields,field_description:purchase_blanket_order.field_res_config_settings__group_purchase_blanket_disable_adding_lines
msgid "Disable adding more lines to POs"
msgstr ""
#. module: purchase_blanket_order
#: model_terms:ir.ui.view,arch_db:purchase_blanket_order.purchase_config_settings_form_view
msgid "Disable adding more lines to POs from Blanket Orders"
msgstr ""
#. module: purchase_blanket_order
#: model:res.groups,name:purchase_blanket_order.purchase_blanket_orders_disable_adding_lines
msgid "Disable adding more lines to POs from Purchase Blanket Orders"
msgstr ""
#. module: purchase_blanket_order
#: model:ir.model.fields,field_description:purchase_blanket_order.field_purchase_blanket_order__display_name
#: model:ir.model.fields,field_description:purchase_blanket_order.field_purchase_blanket_order_line__display_name
#: model:ir.model.fields,field_description:purchase_blanket_order.field_purchase_blanket_order_wizard__display_name
#: model:ir.model.fields,field_description:purchase_blanket_order.field_purchase_blanket_order_wizard_line__display_name
msgid "Display Name"
msgstr ""
#. module: purchase_blanket_order
#: model:ir.model.fields.selection,name:purchase_blanket_order.selection__purchase_blanket_order__state__done
msgid "Done"
msgstr ""
#. module: purchase_blanket_order
#: model:ir.model.fields.selection,name:purchase_blanket_order.selection__purchase_blanket_order__state__draft
msgid "Draft"
msgstr ""
#. module: purchase_blanket_order
#: model:ir.actions.server,name:purchase_blanket_order.expired_purchase_blanket_orders_cron_ir_actions_server
#: model:ir.cron,cron_name:purchase_blanket_order.expired_purchase_blanket_orders_cron
msgid "Expire Blanket Orders"
msgstr ""
#. module: purchase_blanket_order
#: model:ir.model.fields.selection,name:purchase_blanket_order.selection__purchase_blanket_order__state__expired
msgid "Expired"
msgstr ""
#. module: purchase_blanket_order
#: model:ir.model.fields,field_description:purchase_blanket_order.field_purchase_blanket_order__fiscal_position_id
msgid "Fiscal Position"
msgstr ""
#. module: purchase_blanket_order
#: model:ir.model.fields,field_description:purchase_blanket_order.field_purchase_blanket_order__message_follower_ids
#: model:ir.model.fields,field_description:purchase_blanket_order.field_purchase_blanket_order_line__message_follower_ids
msgid "Followers"
msgstr ""
#. module: purchase_blanket_order
#: model:ir.model.fields,field_description:purchase_blanket_order.field_purchase_blanket_order__message_partner_ids
#: model:ir.model.fields,field_description:purchase_blanket_order.field_purchase_blanket_order_line__message_partner_ids
msgid "Followers (Partners)"
msgstr ""
#. module: purchase_blanket_order
#: model:ir.model.fields,help:purchase_blanket_order.field_purchase_blanket_order__activity_type_icon
#: model:ir.model.fields,help:purchase_blanket_order.field_purchase_blanket_order_line__activity_type_icon
msgid "Font awesome icon e.g. fa-tasks"
msgstr ""
#. module: purchase_blanket_order
#: model:ir.model.fields,field_description:purchase_blanket_order.field_purchase_blanket_order__has_message
#: model:ir.model.fields,field_description:purchase_blanket_order.field_purchase_blanket_order_line__has_message
msgid "Has Message"
msgstr ""
#. module: purchase_blanket_order
#: model:ir.model.fields,field_description:purchase_blanket_order.field_purchase_blanket_order__id
#: model:ir.model.fields,field_description:purchase_blanket_order.field_purchase_blanket_order_line__id
#: model:ir.model.fields,field_description:purchase_blanket_order.field_purchase_blanket_order_wizard__id
#: model:ir.model.fields,field_description:purchase_blanket_order.field_purchase_blanket_order_wizard_line__id
msgid "ID"
msgstr ""
#. module: purchase_blanket_order
#: model:ir.model.fields,field_description:purchase_blanket_order.field_purchase_blanket_order__activity_exception_icon
#: model:ir.model.fields,field_description:purchase_blanket_order.field_purchase_blanket_order_line__activity_exception_icon
msgid "Icon"
msgstr ""
#. module: purchase_blanket_order
#: model:ir.model.fields,help:purchase_blanket_order.field_purchase_blanket_order__activity_exception_icon
#: model:ir.model.fields,help:purchase_blanket_order.field_purchase_blanket_order_line__activity_exception_icon
msgid "Icon to indicate an exception activity."
msgstr ""
#. module: purchase_blanket_order
#: model:ir.model.fields,help:purchase_blanket_order.field_purchase_blanket_order__message_needaction
#: model:ir.model.fields,help:purchase_blanket_order.field_purchase_blanket_order_line__message_needaction
msgid "If checked, new messages require your attention."
msgstr ""
#. module: purchase_blanket_order
#: model:ir.model.fields,help:purchase_blanket_order.field_purchase_blanket_order__message_has_error
#: model:ir.model.fields,help:purchase_blanket_order.field_purchase_blanket_order_line__message_has_error
msgid "If checked, some messages have a delivery error."
msgstr ""
#. module: purchase_blanket_order
#: model_terms:ir.ui.view,arch_db:purchase_blanket_order.view_purchase_blanket_order_form
msgid "Invoice Information"
msgstr ""
#. module: purchase_blanket_order
#: model_terms:ir.ui.view,arch_db:purchase_blanket_order.view_purchase_blanket_order_search
msgid "Invoiced Qty"
msgstr ""
#. module: purchase_blanket_order
#: model:ir.model.fields,field_description:purchase_blanket_order.field_purchase_blanket_order__invoiced_uom_qty
#: model:ir.model.fields,field_description:purchase_blanket_order.field_purchase_blanket_order_line__invoiced_uom_qty
msgid "Invoiced quantity"
msgstr ""
#. module: purchase_blanket_order
#: model:ir.model.fields,field_description:purchase_blanket_order.field_purchase_blanket_order__message_is_follower
#: model:ir.model.fields,field_description:purchase_blanket_order.field_purchase_blanket_order_line__message_is_follower
msgid "Is Follower"
msgstr ""
#. module: purchase_blanket_order
#: model:ir.model.fields,field_description:purchase_blanket_order.field_purchase_blanket_order____last_update
#: model:ir.model.fields,field_description:purchase_blanket_order.field_purchase_blanket_order_line____last_update
#: model:ir.model.fields,field_description:purchase_blanket_order.field_purchase_blanket_order_wizard____last_update
#: model:ir.model.fields,field_description:purchase_blanket_order.field_purchase_blanket_order_wizard_line____last_update
msgid "Last Modified on"
msgstr ""
#. module: purchase_blanket_order
#: model:ir.model.fields,field_description:purchase_blanket_order.field_purchase_blanket_order__write_uid
#: model:ir.model.fields,field_description:purchase_blanket_order.field_purchase_blanket_order_line__write_uid
#: model:ir.model.fields,field_description:purchase_blanket_order.field_purchase_blanket_order_wizard__write_uid
#: model:ir.model.fields,field_description:purchase_blanket_order.field_purchase_blanket_order_wizard_line__write_uid
msgid "Last Updated by"
msgstr ""
#. module: purchase_blanket_order
#: model:ir.model.fields,field_description:purchase_blanket_order.field_purchase_blanket_order__write_date
#: model:ir.model.fields,field_description:purchase_blanket_order.field_purchase_blanket_order_line__write_date
#: model:ir.model.fields,field_description:purchase_blanket_order.field_purchase_blanket_order_wizard__write_date
#: model:ir.model.fields,field_description:purchase_blanket_order.field_purchase_blanket_order_wizard_line__write_date
msgid "Last Updated on"
msgstr ""
#. module: purchase_blanket_order
#: model:ir.model.fields,field_description:purchase_blanket_order.field_purchase_blanket_order_wizard__line_ids
#: model_terms:ir.ui.view,arch_db:purchase_blanket_order.view_purchase_blanket_order_form
msgid "Lines"
msgstr ""
#. module: purchase_blanket_order
#: model:ir.model.fields,field_description:purchase_blanket_order.field_purchase_blanket_order__message_main_attachment_id
#: model:ir.model.fields,field_description:purchase_blanket_order.field_purchase_blanket_order_line__message_main_attachment_id
msgid "Main Attachment"
msgstr ""
#. module: purchase_blanket_order
#: model:ir.model.fields,field_description:purchase_blanket_order.field_purchase_blanket_order__message_has_error
#: model:ir.model.fields,field_description:purchase_blanket_order.field_purchase_blanket_order_line__message_has_error
msgid "Message Delivery error"
msgstr ""
#. module: purchase_blanket_order
#: model:ir.model.fields,field_description:purchase_blanket_order.field_purchase_blanket_order__message_ids
#: model:ir.model.fields,field_description:purchase_blanket_order.field_purchase_blanket_order_line__message_ids
msgid "Messages"
msgstr ""
#. module: purchase_blanket_order
#. odoo-python
#: code:addons/purchase_blanket_order/models/blanket_orders.py:0
#, python-format
msgid "Must have some lines"
msgstr ""
#. module: purchase_blanket_order
#: model:ir.model.fields,field_description:purchase_blanket_order.field_purchase_blanket_order__my_activity_date_deadline
#: model:ir.model.fields,field_description:purchase_blanket_order.field_purchase_blanket_order_line__my_activity_date_deadline
msgid "My Activity Deadline"
msgstr ""
#. module: purchase_blanket_order
#: model:ir.model.fields,field_description:purchase_blanket_order.field_purchase_blanket_order__name
msgid "Name"
msgstr ""
#. module: purchase_blanket_order
#: model:ir.model.fields,field_description:purchase_blanket_order.field_purchase_blanket_order__activity_date_deadline
#: model:ir.model.fields,field_description:purchase_blanket_order.field_purchase_blanket_order_line__activity_date_deadline
msgid "Next Activity Deadline"
msgstr ""
#. module: purchase_blanket_order
#: model:ir.model.fields,field_description:purchase_blanket_order.field_purchase_blanket_order__activity_summary
#: model:ir.model.fields,field_description:purchase_blanket_order.field_purchase_blanket_order_line__activity_summary
msgid "Next Activity Summary"
msgstr ""
#. module: purchase_blanket_order
#: model:ir.model.fields,field_description:purchase_blanket_order.field_purchase_blanket_order__activity_type_id
#: model:ir.model.fields,field_description:purchase_blanket_order.field_purchase_blanket_order_line__activity_type_id
msgid "Next Activity Type"
msgstr ""
#. module: purchase_blanket_order
#: model:ir.model.fields,field_description:purchase_blanket_order.field_purchase_blanket_order__note
msgid "Note"
msgstr ""
#. module: purchase_blanket_order
#: model:ir.model.fields,field_description:purchase_blanket_order.field_purchase_blanket_order__message_needaction_counter
#: model:ir.model.fields,field_description:purchase_blanket_order.field_purchase_blanket_order_line__message_needaction_counter
msgid "Number of Actions"
msgstr ""
#. module: purchase_blanket_order
#: model:ir.model.fields,field_description:purchase_blanket_order.field_purchase_blanket_order__message_has_error_counter
#: model:ir.model.fields,field_description:purchase_blanket_order.field_purchase_blanket_order_line__message_has_error_counter
msgid "Number of errors"
msgstr ""
#. module: purchase_blanket_order
#: model:ir.model.fields,help:purchase_blanket_order.field_purchase_blanket_order__message_needaction_counter
#: model:ir.model.fields,help:purchase_blanket_order.field_purchase_blanket_order_line__message_needaction_counter
msgid "Number of messages requiring action"
msgstr ""
#. module: purchase_blanket_order
#: model:ir.model.fields,help:purchase_blanket_order.field_purchase_blanket_order__message_has_error_counter
#: model:ir.model.fields,help:purchase_blanket_order.field_purchase_blanket_order_line__message_has_error_counter
msgid "Number of messages with delivery error"
msgstr ""
#. module: purchase_blanket_order
#: model:ir.model.fields.selection,name:purchase_blanket_order.selection__purchase_blanket_order__state__open
#: model_terms:ir.ui.view,arch_db:purchase_blanket_order.view_purchase_blanket_order_search
msgid "Open"
msgstr ""
#. module: purchase_blanket_order
#: model:ir.model.fields,field_description:purchase_blanket_order.field_purchase_blanket_order_line__order_id
msgid "Order"
msgstr ""
#. module: purchase_blanket_order
#: model_terms:ir.ui.view,arch_db:purchase_blanket_order.view_purchase_blanket_order_form
msgid "Order Lines"
msgstr ""
#. module: purchase_blanket_order
#: model:ir.model.fields,field_description:purchase_blanket_order.field_purchase_blanket_order__line_ids
msgid "Order lines"
msgstr ""
#. module: purchase_blanket_order
#: model_terms:ir.ui.view,arch_db:purchase_blanket_order.view_purchase_blanket_order_search
msgid "Ordered Qty"
msgstr ""
#. module: purchase_blanket_order
#: model:ir.model.fields,field_description:purchase_blanket_order.field_purchase_blanket_order__ordered_uom_qty
#: model:ir.model.fields,field_description:purchase_blanket_order.field_purchase_blanket_order_line__ordered_uom_qty
msgid "Ordered quantity"
msgstr ""
#. module: purchase_blanket_order
#: model:ir.model.fields,field_description:purchase_blanket_order.field_purchase_order__blanket_order_id
msgid "Origin blanket order"
msgstr ""
#. module: purchase_blanket_order
#: model_terms:ir.ui.view,arch_db:purchase_blanket_order.purchase_blanket_order_line_tree
#: model_terms:ir.ui.view,arch_db:purchase_blanket_order.report_blanketorder_document
#: model_terms:ir.ui.view,arch_db:purchase_blanket_order.view_purchase_blanket_order_form
#: model_terms:ir.ui.view,arch_db:purchase_blanket_order.view_purchase_blanket_order_search
msgid "Original Qty"
msgstr ""
#. module: purchase_blanket_order
#: model:ir.model.fields,field_description:purchase_blanket_order.field_purchase_blanket_order__original_uom_qty
#: model:ir.model.fields,field_description:purchase_blanket_order.field_purchase_blanket_order_line__original_uom_qty
msgid "Original quantity"
msgstr ""
#. module: purchase_blanket_order
#: model_terms:ir.ui.view,arch_db:purchase_blanket_order.view_purchase_blanket_order_form
msgid "Other Information"
msgstr ""
#. module: purchase_blanket_order
#. odoo-python
#: code:addons/purchase_blanket_order/models/blanket_orders.py:0
#, python-format
msgid "Partner is mandatory"
msgstr ""
#. module: purchase_blanket_order
#: model:ir.model.fields,field_description:purchase_blanket_order.field_purchase_blanket_order__payment_term_id
#: model:ir.model.fields,field_description:purchase_blanket_order.field_purchase_blanket_order_line__payment_term_id
msgid "Payment Terms"
msgstr ""
#. module: purchase_blanket_order
#: model:ir.model.fields,field_description:purchase_blanket_order.field_purchase_blanket_order_line__price_unit
#: model:ir.model.fields,field_description:purchase_blanket_order.field_purchase_blanket_order_wizard_line__price_unit
msgid "Price"
msgstr ""
#. module: purchase_blanket_order
#. odoo-python
#: code:addons/purchase_blanket_order/models/blanket_orders.py:0
#, python-format
msgid "Price must be greater than zero"
msgstr ""
#. module: purchase_blanket_order
#: model:ir.model,name:purchase_blanket_order.model_res_config_settings
msgid "Procurement purchase grouping settings"
msgstr ""
#. module: purchase_blanket_order
#: model:ir.model.fields,field_description:purchase_blanket_order.field_purchase_blanket_order__product_id
#: model:ir.model.fields,field_description:purchase_blanket_order.field_purchase_blanket_order_line__product_id
#: model:ir.model.fields,field_description:purchase_blanket_order.field_purchase_blanket_order_wizard_line__product_id
#: model_terms:ir.ui.view,arch_db:purchase_blanket_order.report_blanketorder_document
msgid "Product"
msgstr ""
#. module: purchase_blanket_order
#: model:ir.actions.report,name:purchase_blanket_order.report_blanket_order
#: model:ir.model,name:purchase_blanket_order.model_purchase_blanket_order
msgid "Purchase Blanket Order"
msgstr ""
#. module: purchase_blanket_order
#. odoo-python
#: code:addons/purchase_blanket_order/wizard/create_purchase_orders.py:0
#, python-format
msgid "Purchase Blanket Order %s is not open"
msgstr ""
#. module: purchase_blanket_order
#: model:ir.model,name:purchase_blanket_order.model_purchase_blanket_order_line
#: model_terms:ir.ui.view,arch_db:purchase_blanket_order.purchase_blanket_order_line_form
msgid "Purchase Blanket Order Line"
msgstr ""
#. module: purchase_blanket_order
#: model:ir.model.fields,field_description:purchase_blanket_order.field_purchase_blanket_order__line_count
msgid "Purchase Blanket Order Line count"
msgstr ""
#. module: purchase_blanket_order
#: model:ir.model,name:purchase_blanket_order.model_purchase_blanket_order_wizard_line
msgid "Purchase Blanket Order Wizard Line"
msgstr ""
#. module: purchase_blanket_order
#: model:ir.model.fields,field_description:purchase_blanket_order.field_purchase_blanket_order__purchase_count
msgid "Purchase Count"
msgstr ""
#. module: purchase_blanket_order
#: model:ir.model,name:purchase_blanket_order.model_purchase_order
#: model:ir.model.fields,field_description:purchase_blanket_order.field_purchase_blanket_order_wizard__purchase_order_id
msgid "Purchase Order"
msgstr ""
#. module: purchase_blanket_order
#: model:ir.model,name:purchase_blanket_order.model_purchase_order_line
msgid "Purchase Order Line"
msgstr ""
#. module: purchase_blanket_order
#: model:ir.model.fields,field_description:purchase_blanket_order.field_purchase_blanket_order_line__purchase_lines
#: model_terms:ir.ui.view,arch_db:purchase_blanket_order.purchase_blanket_order_line_form
msgid "Purchase Order Lines"
msgstr ""
#. module: purchase_blanket_order
#. odoo-python
#: code:addons/purchase_blanket_order/models/blanket_orders.py:0
#, python-format
msgid "Quantity must be greater than zero"
msgstr ""
#. module: purchase_blanket_order
#: model:ir.model.fields,field_description:purchase_blanket_order.field_purchase_blanket_order_wizard_line__qty
msgid "Quantity to Order"
msgstr ""
#. module: purchase_blanket_order
#. odoo-python
#: code:addons/purchase_blanket_order/wizard/create_purchase_orders.py:0
#, python-format
msgid "RFQ"
msgstr ""
#. module: purchase_blanket_order
#: model_terms:ir.ui.view,arch_db:purchase_blanket_order.view_purchase_blanket_order_form
msgid "RFQ/Orders"
msgstr ""
#. module: purchase_blanket_order
#: model_terms:ir.ui.view,arch_db:purchase_blanket_order.view_purchase_blanket_order_search
msgid "Received Qty"
msgstr ""
#. module: purchase_blanket_order
#: model:ir.model.fields,field_description:purchase_blanket_order.field_purchase_blanket_order__received_uom_qty
#: model:ir.model.fields,field_description:purchase_blanket_order.field_purchase_blanket_order_line__received_uom_qty
msgid "Received quantity"
msgstr ""
#. module: purchase_blanket_order
#: model_terms:ir.ui.view,arch_db:purchase_blanket_order.view_purchase_blanket_order_search
msgid "Remaining Qty"
msgstr ""
#. module: purchase_blanket_order
#: model:ir.model.fields,field_description:purchase_blanket_order.field_purchase_blanket_order__remaining_uom_qty
#: model:ir.model.fields,field_description:purchase_blanket_order.field_purchase_blanket_order_line__remaining_uom_qty
#: model:ir.model.fields,field_description:purchase_blanket_order.field_purchase_blanket_order_wizard_line__remaining_uom_qty
msgid "Remaining quantity"
msgstr ""
#. module: purchase_blanket_order
#: model:ir.model.fields,field_description:purchase_blanket_order.field_purchase_blanket_order_line__remaining_qty
msgid "Remaining quantity in base UoM"
msgstr ""
#. module: purchase_blanket_order
#: model:ir.model.fields,field_description:purchase_blanket_order.field_purchase_blanket_order__user_id
#: model:ir.model.fields,field_description:purchase_blanket_order.field_purchase_blanket_order_line__user_id
msgid "Responsible"
msgstr ""
#. module: purchase_blanket_order
#: model:ir.model.fields,field_description:purchase_blanket_order.field_purchase_blanket_order__activity_user_id
#: model:ir.model.fields,field_description:purchase_blanket_order.field_purchase_blanket_order_line__activity_user_id
msgid "Responsible User"
msgstr ""
#. module: purchase_blanket_order
#. odoo-python
#: code:addons/purchase_blanket_order/models/purchase_order.py:0
#, python-format
msgid ""
"Schedule dates defined on the Purchase Order Line and on the Blanket Order "
"Line do not match."
msgstr ""
#. module: purchase_blanket_order
#: model:ir.model.fields,field_description:purchase_blanket_order.field_purchase_blanket_order_line__date_schedule
#: model:ir.model.fields,field_description:purchase_blanket_order.field_purchase_blanket_order_wizard_line__date_schedule
#: model_terms:ir.ui.view,arch_db:purchase_blanket_order.report_blanketorder_document
msgid "Scheduled Date"
msgstr ""
#. module: purchase_blanket_order
#: model_terms:ir.ui.view,arch_db:purchase_blanket_order.purchase_blanket_order_line_search
msgid "Search Purchase Blanket Order Line"
msgstr ""
#. module: purchase_blanket_order
#: model:ir.model.fields,field_description:purchase_blanket_order.field_purchase_blanket_order_line__sequence
msgid "Sequence"
msgstr ""
#. module: purchase_blanket_order
#: model_terms:ir.ui.view,arch_db:purchase_blanket_order.view_purchase_blanket_order_form
msgid "Setup default terms and conditions in your company settings."
msgstr ""
#. module: purchase_blanket_order
#: model:ir.model.fields,field_description:purchase_blanket_order.field_purchase_blanket_order__date_start
msgid "Start Date"
msgstr ""
#. module: purchase_blanket_order
#: model:ir.model.fields,field_description:purchase_blanket_order.field_purchase_blanket_order__state
msgid "State"
msgstr ""
#. module: purchase_blanket_order
#: model:ir.model.fields,help:purchase_blanket_order.field_purchase_blanket_order__activity_state
#: model:ir.model.fields,help:purchase_blanket_order.field_purchase_blanket_order_line__activity_state
msgid ""
"Status based on activities\n"
"Overdue: Due date is already passed\n"
"Today: Activity date is today\n"
"Planned: Future activities."
msgstr ""
#. module: purchase_blanket_order
#: model:ir.model.fields,field_description:purchase_blanket_order.field_purchase_blanket_order_line__price_subtotal
msgid "Subtotal"
msgstr ""
#. module: purchase_blanket_order
#: model:ir.model.fields,field_description:purchase_blanket_order.field_purchase_blanket_order_line__price_tax
msgid "Tax"
msgstr ""
#. module: purchase_blanket_order
#: model:ir.model.fields,field_description:purchase_blanket_order.field_purchase_blanket_order__amount_tax
#: model:ir.model.fields,field_description:purchase_blanket_order.field_purchase_blanket_order_line__taxes_id
#: model:ir.model.fields,field_description:purchase_blanket_order.field_purchase_blanket_order_wizard_line__taxes_id
#: model_terms:ir.ui.view,arch_db:purchase_blanket_order.report_blanketorder_document
msgid "Taxes"
msgstr ""
#. module: purchase_blanket_order
#: model_terms:ir.ui.view,arch_db:purchase_blanket_order.view_purchase_blanket_order_form
msgid "Terms and Conditions"
msgstr ""
#. module: purchase_blanket_order
#. odoo-python
#: code:addons/purchase_blanket_order/models/purchase_order.py:0
#: code:addons/purchase_blanket_order/models/purchase_order.py:0
#, python-format
msgid ""
"The currency of the blanket order must match with that of the purchase "
"order."
msgstr ""
#. module: purchase_blanket_order
#. odoo-python
#: code:addons/purchase_blanket_order/models/purchase_order.py:0
#, python-format
msgid "The vendor must be equal to the blanket order lines vendor"
msgstr ""
#. module: purchase_blanket_order
#: model_terms:ir.ui.view,arch_db:purchase_blanket_order.view_purchase_blanket_order_form
msgid "To Draft"
msgstr ""
#. module: purchase_blanket_order
#: model:ir.model.fields,field_description:purchase_blanket_order.field_purchase_blanket_order__amount_total
#: model:ir.model.fields,field_description:purchase_blanket_order.field_purchase_blanket_order_line__price_total
msgid "Total"
msgstr ""
#. module: purchase_blanket_order
#: model:ir.model.fields,help:purchase_blanket_order.field_purchase_blanket_order__activity_exception_decoration
#: model:ir.model.fields,help:purchase_blanket_order.field_purchase_blanket_order_line__activity_exception_decoration
msgid "Type of the exception activity on record."
msgstr ""
#. module: purchase_blanket_order
#: model_terms:ir.ui.view,arch_db:purchase_blanket_order.report_blanketorder_document
msgid "Unit Price"
msgstr ""
#. module: purchase_blanket_order
#: model:ir.model.fields,field_description:purchase_blanket_order.field_purchase_blanket_order_line__product_uom
#: model:ir.model.fields,field_description:purchase_blanket_order.field_purchase_blanket_order_wizard_line__product_uom
msgid "Unit of Measure"
msgstr ""
#. module: purchase_blanket_order
#: model:ir.model.fields,field_description:purchase_blanket_order.field_purchase_blanket_order__amount_untaxed
msgid "Untaxed Amount"
msgstr ""
#. module: purchase_blanket_order
#: model_terms:ir.actions.act_window,help:purchase_blanket_order.act_open_purchase_blanket_order_view
msgid ""
"Use this menu to search within your blanket orders. For each blanket order,\n"
" you can track the related discussion with the vendor, control\n"
" the products received and control the vendor bills."
msgstr ""
#. module: purchase_blanket_order
#: model_terms:ir.ui.view,arch_db:purchase_blanket_order.report_blanketorder_document
msgid "VAT:"
msgstr ""
#. module: purchase_blanket_order
#: model:ir.model.fields,field_description:purchase_blanket_order.field_purchase_blanket_order__validity_date
msgid "Validity Date"
msgstr ""
#. module: purchase_blanket_order
#. odoo-python
#: code:addons/purchase_blanket_order/models/blanket_orders.py:0
#, python-format
msgid "Validity date is mandatory"
msgstr ""
#. module: purchase_blanket_order
#. odoo-python
#: code:addons/purchase_blanket_order/models/blanket_orders.py:0
#, python-format
msgid "Validity date must be in the future"
msgstr ""
#. module: purchase_blanket_order
#: model:ir.model.fields,field_description:purchase_blanket_order.field_purchase_blanket_order__partner_id
#: model:ir.model.fields,field_description:purchase_blanket_order.field_purchase_blanket_order_line__partner_id
#: model:ir.model.fields,field_description:purchase_blanket_order.field_purchase_blanket_order_wizard_line__partner_id
msgid "Vendor"
msgstr ""
#. module: purchase_blanket_order
#: model:ir.model.fields,field_description:purchase_blanket_order.field_purchase_blanket_order__partner_ref
msgid "Vendor Reference"
msgstr ""
#. module: purchase_blanket_order
#: model:ir.actions.server,name:purchase_blanket_order.warnings_purchase_blanket_orders_cron_ir_actions_server
#: model:ir.cron,cron_name:purchase_blanket_order.warnings_purchase_blanket_orders_cron
msgid "Warnings Blanket Orders"
msgstr ""
#. module: purchase_blanket_order
#: model:ir.model.fields,field_description:purchase_blanket_order.field_purchase_blanket_order__website_message_ids
#: model:ir.model.fields,field_description:purchase_blanket_order.field_purchase_blanket_order_line__website_message_ids
msgid "Website Messages"
msgstr ""
#. module: purchase_blanket_order
#: model:ir.model.fields,help:purchase_blanket_order.field_purchase_blanket_order__website_message_ids
#: model:ir.model.fields,help:purchase_blanket_order.field_purchase_blanket_order_line__website_message_ids
msgid "Website communication history"
msgstr ""
#. module: purchase_blanket_order
#: model:ir.model.fields,field_description:purchase_blanket_order.field_purchase_blanket_order_wizard_line__wizard_id
msgid "Wizard"
msgstr ""
#. module: purchase_blanket_order
#. odoo-python
#: code:addons/purchase_blanket_order/models/blanket_orders.py:0
#, python-format
msgid ""
"You can not delete a blanket order with opened purchase orders! Try to "
"cancel them before."
msgstr ""
#. module: purchase_blanket_order
#. odoo-python
#: code:addons/purchase_blanket_order/models/blanket_orders.py:0
#, python-format
msgid "You can not delete an open blanket order! Try to cancel it before."
msgstr ""
#. module: purchase_blanket_order
#. odoo-python
#: code:addons/purchase_blanket_order/wizard/create_purchase_orders.py:0
#, python-format
msgid "You can't create a purchase order from an expired blanket order!"
msgstr ""
#. module: purchase_blanket_order
#. odoo-python
#: code:addons/purchase_blanket_order/wizard/create_purchase_orders.py:0
#, python-format
msgid "You can't order more than the remaining quantities"
msgstr ""
#. module: purchase_blanket_order
#. odoo-python
#: code:addons/purchase_blanket_order/wizard/create_purchase_orders.py:0
#, python-format
msgid "You have to select lines from the same company."
msgstr ""
#. module: purchase_blanket_order
#. odoo-python
#: code:addons/purchase_blanket_order/models/blanket_orders.py:0
#, python-format
msgid "remaining"
msgstr ""

View file

@ -0,0 +1,5 @@
# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl).
from . import blanket_orders
from . import purchase_order
from . import purchase_config_settings

View file

@ -0,0 +1,623 @@
# Copyright (C) 2018 ForgeFlow S.L. (https://www.forgeflow.com)
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl).
from datetime import datetime
from odoo import SUPERUSER_ID, _, api, fields, models
from odoo.exceptions import UserError
from odoo.tools import float_is_zero
class BlanketOrder(models.Model):
_name = "purchase.blanket.order"
_inherit = ["mail.thread", "mail.activity.mixin"]
_description = "Purchase Blanket Order"
_order = "date_start desc, id desc"
@api.model
def _default_company(self):
return self.env.user.company_id
@api.depends("line_ids.price_total")
def _compute_amount_all(self):
for order in self:
amount_untaxed = amount_tax = 0.0
for line in order.line_ids:
amount_untaxed += line.price_subtotal
amount_tax += line.price_tax
order.update(
{
"amount_untaxed": order.currency_id.round(amount_untaxed),
"amount_tax": order.currency_id.round(amount_tax),
"amount_total": amount_untaxed + amount_tax,
}
)
name = fields.Char(default="Draft", readonly=True)
partner_id = fields.Many2one(
"res.partner",
string="Vendor",
readonly=True,
tracking=True,
states={"draft": [("readonly", False)]},
)
partner_ref = fields.Char(string="Vendor Reference", copy=False)
line_ids = fields.One2many(
"purchase.blanket.order.line",
"order_id",
string="Order lines",
tracking=True,
copy=True,
)
line_count = fields.Integer(
string="Purchase Blanket Order Line count",
compute="_compute_line_count",
readonly=True,
)
product_id = fields.Many2one(
"product.product",
related="line_ids.product_id",
string="Product",
)
currency_id = fields.Many2one(
"res.currency",
required=True,
default=lambda self: self.env.user.company_id.currency_id.id,
)
payment_term_id = fields.Many2one(
"account.payment.term",
string="Payment Terms",
readonly=True,
states={"draft": [("readonly", False)]},
)
confirmed = fields.Boolean(copy=False)
cancelled = fields.Boolean(copy=False)
state = fields.Selection(
selection=[
("draft", "Draft"),
("open", "Open"),
("done", "Done"),
("expired", "Expired"),
],
compute="_compute_state",
store=True,
copy=False,
tracking=True,
)
validity_date = fields.Date(
readonly=True,
states={"draft": [("readonly", False)]},
tracking=True,
help="Date until which the blanket order will be valid, after this "
"date the blanket order will be marked as expired",
)
date_start = fields.Datetime(
readonly=True,
required=True,
string="Start Date",
default=fields.Datetime.now,
states={"draft": [("readonly", False)]},
help="Blanket Order starting date.",
)
note = fields.Text(readonly=True, states={"draft": [("readonly", False)]})
user_id = fields.Many2one(
"res.users",
string="Responsible",
readonly=True,
default=lambda self: self.env.uid,
states={"draft": [("readonly", False)]},
)
company_id = fields.Many2one(
"res.company",
string="Company",
default=_default_company,
readonly=True,
states={"draft": [("readonly", False)]},
)
purchase_count = fields.Integer(compute="_compute_purchase_count")
fiscal_position_id = fields.Many2one(
"account.fiscal.position", string="Fiscal Position"
)
amount_untaxed = fields.Monetary(
string="Untaxed Amount",
store=True,
readonly=True,
compute="_compute_amount_all",
tracking=True,
)
amount_tax = fields.Monetary(
string="Taxes", store=True, readonly=True, compute="_compute_amount_all"
)
amount_total = fields.Monetary(
string="Total", store=True, readonly=True, compute="_compute_amount_all"
)
# Fields use to filter in tree view
original_uom_qty = fields.Float(
string="Original quantity",
compute="_compute_uom_qty",
search="_search_original_uom_qty",
)
ordered_uom_qty = fields.Float(
string="Ordered quantity",
compute="_compute_uom_qty",
search="_search_ordered_uom_qty",
)
invoiced_uom_qty = fields.Float(
string="Invoiced quantity",
compute="_compute_uom_qty",
search="_search_invoiced_uom_qty",
)
remaining_uom_qty = fields.Float(
string="Remaining quantity",
compute="_compute_uom_qty",
search="_search_remaining_uom_qty",
)
received_uom_qty = fields.Float(
string="Received quantity",
compute="_compute_uom_qty",
search="_search_received_uom_qty",
)
def _get_purchase_orders(self):
return self.mapped("line_ids.purchase_lines.order_id")
@api.depends("line_ids")
def _compute_line_count(self):
self.line_count = len(self.mapped("line_ids"))
def _compute_purchase_count(self):
for blanket_order in self:
blanket_order.purchase_count = len(blanket_order._get_purchase_orders())
@api.depends(
"line_ids.remaining_uom_qty",
"validity_date",
"confirmed",
"cancelled",
)
def _compute_state(self):
today = fields.Date.today()
precision = self.env["decimal.precision"].precision_get(
"Product Unit of Measure"
)
for order in self:
if not order.confirmed and not order.cancelled:
order.state = "draft"
elif order.validity_date <= today or order.cancelled:
order.state = "expired"
elif float_is_zero(
sum(order.line_ids.mapped("remaining_uom_qty")),
precision_digits=precision,
):
order.state = "done"
else:
order.state = "open"
def _compute_uom_qty(self):
for bo in self:
bo.original_uom_qty = sum(bo.mapped("line_ids.original_uom_qty"))
bo.ordered_uom_qty = sum(bo.mapped("line_ids.ordered_uom_qty"))
bo.invoiced_uom_qty = sum(bo.mapped("line_ids.invoiced_uom_qty"))
bo.received_uom_qty = sum(bo.mapped("line_ids.received_uom_qty"))
bo.remaining_uom_qty = sum(bo.mapped("line_ids.remaining_uom_qty"))
@api.onchange("partner_id")
def onchange_partner_id(self):
"""
Update the following fields when the partner is changed:
- Payment term
"""
if not self.partner_id:
self.payment_term_id = False
self.fiscal_position_id = False
return
self.payment_term_id = (
self.partner_id.property_supplier_payment_term_id
and self.partner_id.property_supplier_payment_term_id.id
or False
)
self.fiscal_position_id = (
self.env["account.fiscal.position"]
.with_context(company_id=self.company_id.id)
._get_fiscal_position(partner=self.partner_id)
)
self.currency_id = (
self.partner_id.property_purchase_currency_id.id
or self.env.user.company_id.currency_id.id
)
if self.partner_id.user_id:
self.user_id = self.partner_id.user_id.id
def unlink(self):
for order in self:
if order.state not in ("draft", "expired"):
raise UserError(
_(
"You can not delete an open blanket order! "
"Try to cancel it before."
)
)
return super().unlink()
def copy_data(self, default=None):
if default is None:
default = {}
default.update(self.default_get(["name", "confirmed"]))
return super().copy_data(default)
def _validate(self):
try:
today = fields.Date.today()
for order in self:
assert order.validity_date, _("Validity date is mandatory")
assert order.validity_date > today, _(
"Validity date must be in the future"
)
assert order.partner_id, _("Partner is mandatory")
assert len(order.line_ids) > 0, _("Must have some lines")
order.line_ids._validate()
except AssertionError as e:
raise UserError(e) from e
def set_to_draft(self):
for order in self:
order.write({"cancelled": False})
return True
def action_confirm(self):
self._validate()
for order in self:
vals = {"confirmed": True}
# Set name by sequence only if is necessary
if order.name == "Draft":
sequence_obj = self.env["ir.sequence"]
if order.company_id:
sequence_obj = sequence_obj.with_company(order.company_id)
name = sequence_obj.next_by_code("purchase.blanket.order") or "Draft"
vals.update({"name": name})
order.write(vals)
return True
def action_cancel(self):
for order in self:
if order.purchase_count > 0:
for po in order._get_purchase_orders():
if po.state not in ("cancel"):
raise UserError(
_(
"You can not delete a blanket order with opened "
"purchase orders! "
"Try to cancel them before."
)
)
order.write({"cancelled": True, "confirmed": False})
return True
def action_view_purchase_orders(self):
purchase_orders = self._get_purchase_orders()
action = self.env["ir.actions.actions"]._for_xml_id("purchase.purchase_rfq")
if len(purchase_orders) > 0:
action["domain"] = [("id", "in", purchase_orders.ids)]
action["context"] = [("id", "in", purchase_orders.ids)]
else:
action = {"type": "ir.actions.act_window_close"}
return action
def action_view_purchase_blanket_order_line(self):
action = self.env["ir.actions.actions"]._for_xml_id(
"purchase_blanket_order.act_open_purchase_blanket_order_lines_view_tree"
)
lines = self.mapped("line_ids")
if len(lines) > 0:
action["domain"] = [("id", "in", lines.ids)]
return action
@api.model
def expire_orders(self):
today = fields.Date.today()
expired_orders = self.search(
[("state", "=", "open"), ("validity_date", "<=", today)]
)
expired_orders.modified(["validity_date"])
expired_orders.env.flush_all()
@api.model
def compute_warnings(self):
"""Base function to create activity warnings"""
return True
@api.model
def _search_original_uom_qty(self, operator, value):
bo_line_obj = self.env["purchase.blanket.order.line"]
res = []
bo_lines = bo_line_obj.search([("original_uom_qty", operator, value)])
order_ids = bo_lines.mapped("order_id")
res.append(("id", "in", order_ids.ids))
return res
@api.model
def _search_ordered_uom_qty(self, operator, value):
bo_line_obj = self.env["purchase.blanket.order.line"]
res = []
bo_lines = bo_line_obj.search([("ordered_uom_qty", operator, value)])
order_ids = bo_lines.mapped("order_id")
res.append(("id", "in", order_ids.ids))
return res
@api.model
def _search_invoiced_uom_qty(self, operator, value):
bo_line_obj = self.env["purchase.blanket.order.line"]
res = []
bo_lines = bo_line_obj.search([("invoiced_uom_qty", operator, value)])
order_ids = bo_lines.mapped("order_id")
res.append(("id", "in", order_ids.ids))
return res
@api.model
def _search_received_uom_qty(self, operator, value):
bo_line_obj = self.env["purchase.blanket.order.line"]
res = []
bo_lines = bo_line_obj.search([("received_uom_qty", operator, value)])
order_ids = bo_lines.mapped("order_id")
res.append(("id", "in", order_ids.ids))
return res
@api.model
def _search_remaining_uom_qty(self, operator, value):
bo_line_obj = self.env["purchase.blanket.order.line"]
res = []
bo_lines = bo_line_obj.search([("remaining_uom_qty", operator, value)])
order_ids = bo_lines.mapped("order_id")
res.append(("id", "in", order_ids.ids))
return res
class BlanketOrderLine(models.Model):
_name = "purchase.blanket.order.line"
_description = "Purchase Blanket Order Line"
_inherit = ["mail.thread", "mail.activity.mixin"]
@api.depends("original_uom_qty", "price_unit", "taxes_id")
def _compute_amount(self):
for line in self:
taxes = line.taxes_id.compute_all(
line.price_unit,
line.order_id.currency_id,
line.original_uom_qty,
product=line.product_id,
partner=line.order_id.partner_id,
)
line.update(
{
"price_tax": sum(
t.get("amount", 0.0) for t in taxes.get("taxes", [])
),
"price_total": taxes["total_included"],
"price_subtotal": taxes["total_excluded"],
}
)
name = fields.Char(string="Description", tracking=True)
sequence = fields.Integer()
order_id = fields.Many2one(
"purchase.blanket.order", required=True, ondelete="cascade"
)
product_id = fields.Many2one(
"product.product",
string="Product",
required=True,
domain=[("purchase_ok", "=", True)],
)
product_uom = fields.Many2one("uom.uom", string="Unit of Measure", required=True)
price_unit = fields.Float(string="Price", required=True, digits=("Product Price"))
taxes_id = fields.Many2many(
"account.tax",
string="Taxes",
domain=["|", ("active", "=", False), ("active", "=", True)],
)
date_schedule = fields.Date(string="Scheduled Date")
original_uom_qty = fields.Float(
string="Original quantity",
required=True,
default=1.0,
digits=("Product Unit of Measure"),
)
ordered_uom_qty = fields.Float(
string="Ordered quantity",
compute="_compute_quantities",
store=True,
digits=("Product Unit of Measure"),
)
invoiced_uom_qty = fields.Float(
string="Invoiced quantity",
compute="_compute_quantities",
store=True,
digits=("Product Unit of Measure"),
)
remaining_uom_qty = fields.Float(
string="Remaining quantity",
compute="_compute_quantities",
store=True,
digits=("Product Unit of Measure"),
)
remaining_qty = fields.Float(
string="Remaining quantity in base UoM",
compute="_compute_quantities",
store=True,
digits=("Product Unit of Measure"),
)
received_uom_qty = fields.Float(
string="Received quantity",
compute="_compute_quantities",
store=True,
digits=("Product Unit of Measure"),
)
purchase_lines = fields.One2many(
comodel_name="purchase.order.line",
inverse_name="blanket_order_line",
string="Purchase Order Lines",
readonly=True,
copy=False,
)
company_id = fields.Many2one(
"res.company", related="order_id.company_id", store=True, readonly=True
)
currency_id = fields.Many2one(
"res.currency", related="order_id.currency_id", readonly=True
)
partner_id = fields.Many2one(
related="order_id.partner_id", string="Vendor", readonly=True
)
user_id = fields.Many2one(
related="order_id.user_id", string="Responsible", readonly=True
)
payment_term_id = fields.Many2one(
related="order_id.payment_term_id", string="Payment Terms", readonly=True
)
price_subtotal = fields.Monetary(
compute="_compute_amount", string="Subtotal", store=True
)
price_total = fields.Monetary(compute="_compute_amount", string="Total", store=True)
price_tax = fields.Float(compute="_compute_amount", string="Tax", store=True)
def _format_date(self, date):
# format date following user language
lang_model = self.env["res.lang"]
lang = lang_model._lang_get(self.env.user.lang)
date_format = lang.date_format
return datetime.strftime(fields.Date.from_string(date), date_format)
def name_get(self):
result = []
if self.env.context.get("from_purchase_order"):
for record in self:
res = "[%s]" % record.order_id.name
if record.date_schedule:
formatted_date = self._format_date(record.date_schedule)
res += " - {}: {}".format(_("Date Scheduled"), formatted_date)
res += " ({}: {} {})".format(
_("remaining"),
record.remaining_uom_qty,
record.product_uom.name,
)
result.append((record.id, res))
return result
return super().name_get()
def _get_display_price(self, product):
seller = product._select_seller(
partner_id=self.order_id.partner_id,
quantity=self.original_uom_qty,
date=self.order_id.date_start
and fields.Date.from_string(self.order_id.date_start),
uom_id=self.product_uom,
)
if not seller:
return
price_unit = (
self.env["account.tax"]._fix_tax_included_price_company(
seller.price,
product.supplier_taxes_id,
self.purchase_lines.taxes_id,
self.company_id,
)
if seller
else 0.0
)
if (
price_unit
and seller
and self.order_id.currency_id
and seller.currency_id != self.order_id.currency_id
):
price_unit = seller.currency_id.compute(
price_unit, self.order_id.currency_id
)
if seller and self.product_uom and seller.product_uom != self.product_uom:
price_unit = seller.product_uom._compute_price(price_unit, self.product_uom)
return price_unit
@api.onchange("product_id", "original_uom_qty")
def onchange_product(self):
precision = self.env["decimal.precision"].precision_get(
"Product Unit of Measure"
)
if self.product_id:
name = self.product_id.name
if not self.product_uom:
self.product_uom = self.product_id.uom_po_id or self.product_id.uom_id
if self.order_id.partner_id and float_is_zero(
self.price_unit, precision_digits=precision
):
self.price_unit = self._get_display_price(self.product_id)
if self.product_id.code:
name = "[{}] {}".format(name, self.product_id.code)
if self.product_id.description_purchase:
name += "\n" + self.product_id.description_purchase
self.name = name
fpos = self.order_id.fiscal_position_id
if self.env.uid == SUPERUSER_ID:
company_id = self.env.user.company_id.id
self.taxes_id = fpos.map_tax(
self.product_id.supplier_taxes_id.filtered(
lambda r: r.company_id.id == company_id
)
)
else:
self.taxes_id = fpos.map_tax(self.product_id.supplier_taxes_id)
@api.depends(
"purchase_lines.order_id.state",
"purchase_lines.blanket_order_line",
"purchase_lines.product_qty",
"purchase_lines.product_uom",
"purchase_lines.qty_received",
"purchase_lines.qty_invoiced",
"original_uom_qty",
"product_uom",
)
def _compute_quantities(self):
for line in self:
purchase_lines = line.purchase_lines
line.ordered_uom_qty = sum(
pol.product_uom._compute_quantity(pol.product_qty, line.product_uom)
for pol in purchase_lines
if pol.order_id.state != "cancel" and pol.product_id == line.product_id
)
line.invoiced_uom_qty = sum(
pol.product_uom._compute_quantity(pol.qty_invoiced, line.product_uom)
for pol in purchase_lines
if pol.order_id.state != "cancel" and pol.product_id == line.product_id
)
line.received_uom_qty = sum(
pol.product_uom._compute_quantity(pol.qty_received, line.product_uom)
for pol in purchase_lines
if pol.order_id.state != "cancel" and pol.product_id == line.product_id
)
line.remaining_uom_qty = line.original_uom_qty - line.ordered_uom_qty
line.remaining_qty = line.product_uom._compute_quantity(
line.remaining_uom_qty, line.product_id.uom_id
)
def _validate(self):
try:
for line in self:
assert line.price_unit > 0.0, _("Price must be greater than zero")
assert line.original_uom_qty > 0.0, _(
"Quantity must be greater than zero"
)
except AssertionError as e:
raise UserError(e) from e

View file

@ -0,0 +1,14 @@
# Copyright (C) 2018 ForgeFlow S.L. (https://www.forgeflow.com)
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl).
from odoo import fields, models
class PurchaseConfigSettings(models.TransientModel):
_inherit = "res.config.settings"
group_purchase_blanket_disable_adding_lines = fields.Boolean(
string="Disable adding more lines to POs",
implied_group="purchase_blanket_order."
"purchase_blanket_orders_disable_adding_lines",
)

View file

@ -0,0 +1,201 @@
# Copyright (C) 2018 ForgeFlow S.L. (https://www.forgeflow.com)
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl).
from datetime import date, timedelta
from odoo import _, api, fields, models
from odoo.exceptions import ValidationError
class PurchaseOrder(models.Model):
_inherit = "purchase.order"
blanket_order_id = fields.Many2one(
"purchase.blanket.order",
string="Origin blanket order",
related="order_line.blanket_order_line.order_id",
readonly=True,
)
@api.model
def _check_exchausted_blanket_order_line(self):
return any(
line.blanket_order_line.remaining_qty < 0.0 for line in self.order_line
)
def button_confirm(self):
res = super().button_confirm()
for order in self:
if order._check_exchausted_blanket_order_line():
raise ValidationError(
_(
"Cannot confirm order %s as one of the lines refers "
"to a blanket order that has no remaining quantity."
)
% order.name
)
return res
@api.constrains("partner_id")
def check_partner_id(self):
for line in self.order_line:
if line.blanket_order_line:
if line.blanket_order_line.partner_id != self.partner_id:
raise ValidationError(
_(
"The vendor must be equal to the blanket order"
" lines vendor"
)
)
@api.constrains("currency_id")
def check_currency(self):
for rec in self:
if any(
line.blanket_order_line.order_id.currency_id != rec.currency_id
for line in rec.order_line.filtered(lambda x: x.blanket_order_line)
):
raise ValidationError(
_(
"The currency of the blanket order must match with that "
"of the purchase order."
)
)
class PurchaseOrderLine(models.Model):
_inherit = "purchase.order.line"
blanket_order_line = fields.Many2one(
comodel_name="purchase.blanket.order.line",
copy=False,
domain="[('product_id', '=', product_id)]",
)
@api.model_create_multi
def create(self, vals_list):
lines = super().create(vals_list)
for line in lines:
if not line.blanket_order_line:
line.with_context(assigned_from_creation=True).get_assigned_bo_line()
return lines
def _get_assigned_bo_line(self, bo_lines):
# We get the blanket order line with enough quantity and closest
# scheduled date
assigned_bo_line = False
date_planned = fields.Date.from_string(self.date_planned) or date.today()
date_delta = timedelta(days=365)
for line in bo_lines.filtered(lambda l: l.date_schedule):
date_schedule = fields.Date.from_string(line.date_schedule)
if date_schedule and abs(date_schedule - date_planned) < date_delta:
assigned_bo_line = line
date_delta = abs(date_schedule - date_planned)
if assigned_bo_line:
return assigned_bo_line
non_date_bo_lines = bo_lines.filtered(lambda l: not l.date_schedule)
if non_date_bo_lines:
return non_date_bo_lines[0]
def _get_eligible_bo_lines_domain(self, base_qty):
filters = [
("product_id", "=", self.product_id.id),
("remaining_qty", ">=", base_qty),
("currency_id", "=", self.order_id.currency_id.id),
("order_id.state", "=", "open"),
]
if self.order_id.partner_id:
filters.append(("partner_id", "=", self.order_id.partner_id.id))
return filters
def _get_eligible_bo_lines(self):
base_qty = self.product_uom._compute_quantity(
self.product_qty, self.product_id.uom_id
)
filters = self._get_eligible_bo_lines_domain(base_qty)
return self.env["purchase.blanket.order.line"].search(filters)
def get_assigned_bo_line(self):
self.ensure_one()
eligible_bo_lines = self._get_eligible_bo_lines()
if eligible_bo_lines:
if (
not self.blanket_order_line
or self.blanket_order_line not in eligible_bo_lines
):
self.blanket_order_line = self._get_assigned_bo_line(eligible_bo_lines)
else:
self.blanket_order_line = False
self.onchange_blanket_order_line()
return {"domain": {"blanket_order_line": [("id", "in", eligible_bo_lines.ids)]}}
@api.onchange("product_id", "partner_id")
def onchange_product_id(self):
res = super().onchange_product_id()
# If product has changed remove the relation with blanket order line
if self.product_id:
return self.get_assigned_bo_line()
return res
@api.depends("product_qty", "product_uom")
def _compute_price_unit_and_date_planned_and_name(self):
res = super()._compute_price_unit_and_date_planned_and_name()
for rec in self:
if (
rec.product_id
and not rec.env.context.get("skip_blanket_find", False)
and not rec.env.context.get("assigned_from_creation", False)
):
return rec.get_assigned_bo_line()
return res
@api.onchange("blanket_order_line")
def onchange_blanket_order_line(self):
bol = self.blanket_order_line
if bol:
self.product_id = bol.product_id
if bol.date_schedule:
self.date_planned = bol.date_schedule
if bol.product_uom != self.product_uom:
price_unit = bol.product_uom._compute_price(
bol.price_unit, self.product_uom
)
else:
price_unit = bol.price_unit
self.price_unit = price_unit
if bol.taxes_id:
self.taxes_id = bol.taxes_id
else:
if not self.env.context.get("assigned_from_creation", False):
self._compute_tax_id()
self.with_context(
skip_blanket_find=True
)._compute_price_unit_and_date_planned_and_name()
@api.constrains("date_planned")
def check_date_planned(self):
for line in self:
date_planned = fields.Date.from_string(line.date_planned)
if (
line.blanket_order_line
and line.blanket_order_line.date_schedule
and line.blanket_order_line.date_schedule != date_planned
and not line.env.context.get("assigned_from_creation", False)
):
raise ValidationError(
_(
"Schedule dates defined on the Purchase Order Line "
"and on the Blanket Order Line do not match."
)
)
@api.constrains("currency_id")
def check_currency(self):
for line in self:
blanket_currency = line.blanket_order_line.order_id.currency_id
if blanket_currency and line.order_id.currency_id != blanket_currency:
raise ValidationError(
_(
"The currency of the blanket order must match with that "
"of the purchase order."
)
)

View file

@ -0,0 +1,4 @@
* Adrià Gil Sorribes <adria.gil@forgeflow.com>
* Jordi Ballester Alomar <jordi.ballester@forgeflow.com>
* Héctor Villarreal <hector.villarreal@forgeflow.com>
* Lois Rilo <lois.rilo@forgeflow.com>

View file

@ -0,0 +1,4 @@
A purchase blanket order is a pre-agreement to purchase a certain number of
quantities of products at a specific price. From a confirmed blanket order,
the users can create new purchase orders at such price, until the blanket
order expires due to reaching the validity date.

View file

@ -0,0 +1,52 @@
A new menu in the Purchase area is created, allowing users to create new blanket orders.
To create a new Purchase Blanket Order go to the purchase menu in the Purchase section:
.. image:: /purchase_blanket_order/static/description/BO_menu.png
:alt: Blanket Orders menu
Hitting the button create will open the form view in which we can introduce the following
information:
* Vendor
* Payment Terms
* Ordering and Validity dates
* Order lines:
* Product
* Accorded price
* Original, Ordered, Invoiced, Received and Remaining quantities
* Terms and Conditions of the Blanket Order
.. image:: /purchase_blanket_order/static/description/BO_form.png
:alt: Blanket Orders form
From the form, once the Blanket Order has been confirmed and its state is open, the user can
create a Purchase Order, check the Purchase Orders associated to the Blanket Order and/or
see the Blanket Order lines associated to the BO.
.. image:: /purchase_blanket_order/static/description/BO_actions.png
:alt: Actions that can be done from Blanket Order
Hitting the button Create Purchase Order will open a wizard that will ask for the amount of each
product in the BO lines for which the Purchase Order will be created.
.. image:: /purchase_blanket_order/static/description/PO_from_BO.png
:alt: Create Purchase Order from Blanket Order
Installing this module will add an additional menu which will show all the blanket order lines
currently defined in the system. From this list the user can create customized Purchase Orders
selecting the lines for which the PO (or POs if the vendors are different) is (are) created.
.. image:: /purchase_blanket_order/static/description/BO_lines.png
:alt: Blanket Order lines and actions
In the Purchase Order form one field is added in the PO lines, the Blanket Order line field. This
field keeps track to which Blanket Order line the PO line is associated. Upon adding a new product
in a newly created Purchase Order a blanket order line will be suggested depending on the following
factors:
* Closer Validity date
* Remaining quantity > Quantity introduced in the Purchase Order line
.. image:: /purchase_blanket_order/static/description/PO_BOLine.png
:alt: New field added in Purchase Order Line

View file

@ -0,0 +1,12 @@
<?xml version="1.0" encoding="utf-8" ?>
<odoo>
<record id="report_blanket_order" model="ir.actions.report">
<field name="name">Purchase Blanket Order</field>
<field name="model">purchase.blanket.order</field>
<field name="report_type">qweb-pdf</field>
<field name="report_name">purchase_blanket_order.report_blanketorder</field>
<field name="report_file">purchase_blanket_order.report_blanketorder</field>
<field name="binding_model_id" ref="model_purchase_blanket_order" />
<field name="binding_type">report</field>
</record>
</odoo>

View file

@ -0,0 +1,132 @@
<?xml version="1.0" encoding="utf-8" ?>
<odoo>
<template id="report_blanketorder_document">
<t t-call="web.external_layout">
<t t-set="doc" t-value="doc.with_context({'lang':doc.partner_id.lang})" />
<div class="page">
<div class="oe_structure" />
<div class="row">
<div class="col-xs-6">
<div
t-field="doc.partner_id"
t-options='{"widget": "contact", "fields": ["address", "name", "phone", "fax"], "no_marker": True, "phone_icons": True}'
/>
<p t-if="doc.partner_id.vat">VAT: <span
t-field="doc.partner_id.vat"
/></p>
</div>
</div>
<h2>
<span>Blanket Order # </span>
<span t-field="doc.name" />
</h2>
<div class="row mt32 mb32" id="informations">
<div class="col-xs-3">
<strong>Validity Date:</strong>
<p t-field="doc.validity_date" />
</div>
<div t-if="doc.payment_term_id" class="col-xs-3">
<strong>Payment Terms:</strong>
<p t-field="doc.payment_term_id" />
</div>
<div t-if="doc.user_id.name" class="col-xs-3">
<strong>Purchase person:</strong>
<p t-field="doc.user_id" />
</div>
<div t-if="doc.currency_id" class="col-xs-3">
<strong>Currency:</strong>
<p t-field="doc.currency_id" />
</div>
</div>
<table class="table table-condensed">
<thead>
<tr>
<th>Product</th>
<th class="text-right">Unit Price</th>
<th class="text-center">Scheduled Date</th>
<th class="text-right">Original Qty</th>
<th class="text-right">Amount</th>
</tr>
</thead>
<tbody class="purchase_tbody">
<t t-foreach="doc.line_ids" t-as="l">
<tr>
<td name="td_name" class="text-left">
<span t-field="l.product_id" />
</td>
<td class="text-right">
<span t-field="l.price_unit" />
</td>
<td class="text-center">
<span t-field="l.date_schedule" />
</td>
<td class="text-right">
<span t-field="l.original_uom_qty" />
<span
t-field="l.product_uom"
groups="uom.group_uom"
/>
</td>
<td class="text-right">
<span
t-field="l.price_subtotal"
t-options='{"widget": "monetary", "display_currency": l.currency_id}'
/>
</td>
</tr>
</t>
</tbody>
</table>
<div id="total" class="row justify-content-end">
<div class="col-4">
<table class="table table-condensed">
<tr class="border-black">
<td>
<strong>Subtotal</strong>
</td>
<td class="text-right">
<span
t-field="doc.amount_untaxed"
t-options='{"widget": "monetary", "display_currency": doc.currency_id}'
/>
</td>
</tr>
<tr>
<td>Taxes</td>
<td class="text-right">
<span
t-field="doc.amount_tax"
t-options='{"widget": "monetary", "display_currency": doc.currency_id}'
/>
</td>
</tr>
<tr class="border-black">
<td>
<strong>Total</strong>
</td>
<td class="text-right">
<span
t-field="doc.amount_total"
t-options='{"widget": "monetary", "display_currency": doc.currency_id}'
/>
</td>
</tr>
</table>
</div>
</div>
<p t-field="doc.note" />
<div class="oe_structure" />
</div>
</t>
</template>
<template id="report_blanketorder">
<t t-call="web.html_container">
<t t-foreach="docs" t-as="doc">
<t
t-call="purchase_blanket_order.report_blanketorder_document"
t-lang="doc.partner_id.lang"
/>
</t>
</t>
</template>
</odoo>

View file

@ -0,0 +1,11 @@
id,name,model_id:id,group_id:id,perm_read,perm_write,perm_create,perm_unlink
access_purchase_blanket_order,purchase.order,model_purchase_blanket_order,purchase.group_purchase_manager,1,1,1,0
access_purchase_blanket_order_line,purchase.order.line,model_purchase_blanket_order_line,purchase.group_purchase_manager,1,1,1,1
access_purchase_blanket_order_manager,purchase.order.manager,model_purchase_blanket_order,purchase.group_purchase_manager,1,1,1,1
access_purchase_blanket_order_line_manager,purchase.order.line.manager,model_purchase_blanket_order_line,purchase.group_purchase_manager,1,1,1,1
access_purchase_blanket_order_accountant,purchase.order.accountant,model_purchase_blanket_order,account.group_account_user,1,1,0,0
access_purchase_blanket_order_line_accountant,purchase.order.line accountant,model_purchase_blanket_order_line,account.group_account_user,1,1,0,0
access_purchase_blanket_order_user,purchase.order user,model_purchase_blanket_order,base.group_user,1,0,0,0
access_purchase_blanket_order_line_user,purchase.order.line user,model_purchase_blanket_order_line,base.group_user,1,0,0,0
access_purchase_blanket_order_wizard_user,purchase.blanket.order.wizard user,model_purchase_blanket_order_wizard,base.group_user,1,1,1,0
access_purchase_blanket_order_wizard_line_user,purchase.blanket.order.wizard.line user,model_purchase_blanket_order_wizard_line,base.group_user,1,1,1,1
1 id name model_id:id group_id:id perm_read perm_write perm_create perm_unlink
2 access_purchase_blanket_order purchase.order model_purchase_blanket_order purchase.group_purchase_manager 1 1 1 0
3 access_purchase_blanket_order_line purchase.order.line model_purchase_blanket_order_line purchase.group_purchase_manager 1 1 1 1
4 access_purchase_blanket_order_manager purchase.order.manager model_purchase_blanket_order purchase.group_purchase_manager 1 1 1 1
5 access_purchase_blanket_order_line_manager purchase.order.line.manager model_purchase_blanket_order_line purchase.group_purchase_manager 1 1 1 1
6 access_purchase_blanket_order_accountant purchase.order.accountant model_purchase_blanket_order account.group_account_user 1 1 0 0
7 access_purchase_blanket_order_line_accountant purchase.order.line accountant model_purchase_blanket_order_line account.group_account_user 1 1 0 0
8 access_purchase_blanket_order_user purchase.order user model_purchase_blanket_order base.group_user 1 0 0 0
9 access_purchase_blanket_order_line_user purchase.order.line user model_purchase_blanket_order_line base.group_user 1 0 0 0
10 access_purchase_blanket_order_wizard_user purchase.blanket.order.wizard user model_purchase_blanket_order_wizard base.group_user 1 1 1 0
11 access_purchase_blanket_order_wizard_line_user purchase.blanket.order.wizard.line user model_purchase_blanket_order_wizard_line base.group_user 1 1 1 1

View file

@ -0,0 +1,25 @@
<?xml version="1.0" encoding="utf-8" ?>
<odoo noupdate="1">
<record model="res.groups" id="purchase_blanket_orders_disable_adding_lines">
<field
name="name"
>Disable adding more lines to POs from Purchase Blanket Orders</field>
</record>
<!-- Multi - Company Rules -->
<record model="ir.rule" id="blanket_order_comp_rule">
<field name="name">Blanket Order multi-company</field>
<field name="model_id" ref="model_purchase_blanket_order" />
<field name="global" eval="True" />
<field
name="domain_force"
>['|', ('company_id','=',False), ('company_id','in',company_ids)]</field>
</record>
<record model="ir.rule" id="blanket_order_line_comp_rule">
<field name="name">Blanket Order Line multi-company</field>
<field name="model_id" ref="model_purchase_blanket_order_line" />
<field name="global" eval="True" />
<field
name="domain_force"
>['|', ('company_id','=',False), ('company_id','in',company_ids)]</field>
</record>
</odoo>

Binary file not shown.

After

Width:  |  Height:  |  Size: 32 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 28 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 9.2 KiB

View file

@ -0,0 +1,472 @@
<!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 Blanket Orders</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-blanket-orders">
<h1 class="title">Purchase Blanket Orders</h1>
<!-- !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!! This file is generated by oca-gen-addon-readme !!
!! changes will be overwritten. !!
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!! source digest: sha256:f258e9da8b80e585dcf4c52f80ed9cb7a7a5baa56d90fa049616aa58fc256b4f
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! -->
<p><a class="reference external image-reference" href="https://odoo-community.org/page/development-status"><img alt="Beta" src="https://img.shields.io/badge/maturity-Beta-yellow.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_blanket_order"><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_blanket_order"><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>A purchase blanket order is a pre-agreement to purchase a certain number of
quantities of products at a specific price. From a confirmed blanket order,
the users can create new purchase orders at such price, until the blanket
order expires due to reaching the validity date.</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="#maintainers" id="toc-entry-6">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>A new menu in the Purchase area is created, allowing users to create new blanket orders.</p>
<p>To create a new Purchase Blanket Order go to the purchase menu in the Purchase section:</p>
<img alt="Blanket Orders menu" src="https://raw.githubusercontent.com/purchase_blanket_order/static/description/BO_menu.png" />
<p>Hitting the button create will open the form view in which we can introduce the following
information:</p>
<ul class="simple">
<li>Vendor</li>
<li>Payment Terms</li>
<li>Ordering and Validity dates</li>
<li><dl class="first docutils">
<dt>Order lines:</dt>
<dd><ul class="first last">
<li>Product</li>
<li>Accorded price</li>
<li>Original, Ordered, Invoiced, Received and Remaining quantities</li>
</ul>
</dd>
</dl>
</li>
<li>Terms and Conditions of the Blanket Order</li>
</ul>
<img alt="Blanket Orders form" src="https://raw.githubusercontent.com/purchase_blanket_order/static/description/BO_form.png" />
<p>From the form, once the Blanket Order has been confirmed and its state is open, the user can
create a Purchase Order, check the Purchase Orders associated to the Blanket Order and/or
see the Blanket Order lines associated to the BO.</p>
<img alt="Actions that can be done from Blanket Order" src="https://raw.githubusercontent.com/purchase_blanket_order/static/description/BO_actions.png" />
<p>Hitting the button Create Purchase Order will open a wizard that will ask for the amount of each
product in the BO lines for which the Purchase Order will be created.</p>
<img alt="Create Purchase Order from Blanket Order" src="https://raw.githubusercontent.com/purchase_blanket_order/static/description/PO_from_BO.png" />
<p>Installing this module will add an additional menu which will show all the blanket order lines
currently defined in the system. From this list the user can create customized Purchase Orders
selecting the lines for which the PO (or POs if the vendors are different) is (are) created.</p>
<img alt="Blanket Order lines and actions" src="https://raw.githubusercontent.com/purchase_blanket_order/static/description/BO_lines.png" />
<p>In the Purchase Order form one field is added in the PO lines, the Blanket Order line field. This
field keeps track to which Blanket Order line the PO line is associated. Upon adding a new product
in a newly created Purchase Order a blanket order line will be suggested depending on the following
factors:</p>
<ul class="simple">
<li>Closer Validity date</li>
<li>Remaining quantity &gt; Quantity introduced in the Purchase Order line</li>
</ul>
<img alt="New field added in Purchase Order Line" src="https://raw.githubusercontent.com/purchase_blanket_order/static/description/PO_BOLine.png" />
</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_blanket_order%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>ForgeFlow</li>
</ul>
</div>
<div class="section" id="contributors">
<h2><a class="toc-backref" href="#toc-entry-5">Contributors</a></h2>
<ul class="simple">
<li>Adrià Gil Sorribes &lt;<a class="reference external" href="mailto:adria.gil&#64;forgeflow.com">adria.gil&#64;forgeflow.com</a>&gt;</li>
<li>Jordi Ballester Alomar &lt;<a class="reference external" href="mailto:jordi.ballester&#64;forgeflow.com">jordi.ballester&#64;forgeflow.com</a>&gt;</li>
<li>Héctor Villarreal &lt;<a class="reference external" href="mailto:hector.villarreal&#64;forgeflow.com">hector.villarreal&#64;forgeflow.com</a>&gt;</li>
<li>Lois Rilo &lt;<a class="reference external" href="mailto:lois.rilo&#64;forgeflow.com">lois.rilo&#64;forgeflow.com</a>&gt;</li>
</ul>
</div>
<div class="section" id="maintainers">
<h2><a class="toc-backref" href="#toc-entry-6">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>This module is part of the <a class="reference external" href="https://github.com/OCA/purchase-workflow/tree/16.0/purchase_blanket_order">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,4 @@
# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl).
from . import test_purchase_blanket_order
from . import test_purchase_order

View file

@ -0,0 +1,298 @@
# Copyright (C) 2018 ForgeFlow S.L. (https://www.forgeflow.com)
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html).
from datetime import date, timedelta
from odoo import fields
from odoo.exceptions import UserError
from odoo.tests import common
class TestPurchaseBlanketOrders(common.TransactionCase):
def setUp(self):
super().setUp()
self.blanket_order_obj = self.env["purchase.blanket.order"]
self.blanket_order_line_obj = self.env["purchase.blanket.order.line"]
self.blanket_order_wiz_obj = self.env["purchase.blanket.order.wizard"]
self.user_test = self.env["res.users"].create(
{"name": "Test user", "login": "test_login"}
)
self.partner = self.env["res.partner"].create(
{"name": "TEST SUPPLIER", "supplier_rank": 1}
)
self.payment_term = self.env.ref("account.account_payment_term_30days")
# Seller IDS
seller = self.env["product.supplierinfo"].create(
{"partner_id": self.partner.id, "price": 30.0}
)
self.product = self.env["product.product"].create(
{
"name": "Demo",
"categ_id": self.env.ref("product.product_category_1").id,
"standard_price": 35.0,
"seller_ids": [(6, 0, [seller.id])],
"type": "consu",
"uom_id": self.env.ref("uom.product_uom_unit").id,
"default_code": "PROD_DEL01",
"description_purchase": "Purchase Description",
}
)
self.product2 = self.env["product.product"].create(
{
"name": "Demo 2",
"categ_id": self.env.ref("product.product_category_1").id,
"standard_price": 50.0,
"type": "consu",
"uom_id": self.env.ref("uom.product_uom_unit").id,
"default_code": "PROD_DEL02",
}
)
self.yesterday = date.today() - timedelta(days=1)
self.tomorrow = date.today() + timedelta(days=1)
def _get_po_from_wizard(self, res):
return self.env[res["res_model"]].search(res["domain"])
def test_01_create_blanket_order_flow(self):
"""We create a blanket order and check constrains to confirm BO"""
blanket_order = self.blanket_order_obj.create(
{
"partner_id": self.partner.id,
"validity_date": fields.Date.to_string(self.yesterday),
"payment_term_id": self.payment_term.id,
"line_ids": [
(
0,
0,
{
"product_id": self.product.id,
"original_uom_qty": 20.0,
"price_unit": 0.0, # will be updated later
"product_uom": self.product.uom_id.id,
},
)
],
}
)
blanket_order.sudo().onchange_partner_id()
blanket_order.line_ids[0].write({"product_uom": False})
blanket_order.line_ids[0].sudo().onchange_product()
blanket_order._compute_line_count()
blanket_order._compute_uom_qty()
name = (
"[{}] {}".format(self.product.name, self.product.code)
+ "\n"
+ self.product.description_purchase
)
self.assertEqual(blanket_order.line_ids[0].name, name)
self.assertEqual(blanket_order.line_ids[0].product_uom, self.product.uom_id)
self.assertEqual(blanket_order.state, "draft")
self.assertEqual(blanket_order.line_ids[0].price_unit, 30.0)
self.assertEqual(blanket_order.original_uom_qty, 20.0)
self.assertEqual(blanket_order.ordered_uom_qty, 0.0)
self.assertEqual(blanket_order.remaining_uom_qty, 20.0)
# date in the past
with self.assertRaises(UserError):
blanket_order.sudo().action_confirm()
blanket_order.validity_date = fields.Date.to_string(self.tomorrow)
initial_name = blanket_order.name
blanket_order.sudo().action_confirm()
self.assertNotEqual(initial_name, blanket_order.name)
blanket_order.sudo().action_cancel()
self.assertEqual(blanket_order.state, "expired")
blanket_order.sudo().set_to_draft()
self.assertEqual(blanket_order.state, "draft")
previous_name = blanket_order.name
blanket_order.sudo().action_confirm()
self.assertEqual(previous_name, blanket_order.name)
self.assertEqual(blanket_order.state, "open")
blanket_order.action_view_purchase_blanket_order_line()
# Search view check
blanket_order._search_original_uom_qty(">=", 0.0)
blanket_order._search_ordered_uom_qty(">=", 0.0)
blanket_order._search_invoiced_uom_qty(">=", 0.0)
blanket_order._search_received_uom_qty(">=", 0.0)
blanket_order._search_remaining_uom_qty(">=", 0.0)
def test_02_create_purchase_orders_from_blanket_order(self):
"""We create a blanket order and create two purchase orders"""
blanket_order = self.blanket_order_obj.create(
{
"partner_id": self.partner.id,
"partner_ref": "REF",
"validity_date": fields.Date.to_string(self.tomorrow),
"payment_term_id": self.payment_term.id,
"line_ids": [
(
0,
0,
{
"product_id": self.product.id,
"product_uom": self.product.uom_id.id,
"original_uom_qty": 20.0,
"price_unit": 30.0,
},
)
],
}
)
blanket_order.sudo().onchange_partner_id()
with self.assertRaises(UserError):
# Blanket order is not confirmed
self.blanket_order_wiz_obj.with_context(
active_id=blanket_order.id, active_model="purchase.blanket.order"
).create({})
blanket_order.sudo().action_confirm()
wizard1 = self.blanket_order_wiz_obj.with_context(
active_id=blanket_order.id, active_model="purchase.blanket.order"
).create({})
wizard1.line_ids[0].write({"qty": 30.0})
with self.assertRaises(UserError):
# Wizard quantity greater than remaining quantity
wizard1.sudo().create_purchase_order()
wizard1.line_ids[0].write({"qty": 10.0})
res = wizard1.sudo().create_purchase_order()
po = self._get_po_from_wizard(res)
self.assertEqual(po.partner_ref, "REF")
wizard2 = self.blanket_order_wiz_obj.with_context(
active_id=blanket_order.id, active_model="purchase.blanket.order"
).create({})
wizard2.line_ids[0].write({"qty": 10.0})
res = wizard2.sudo().create_purchase_order()
po = self._get_po_from_wizard(res)
self.assertEqual(po.partner_ref, "REF")
with self.assertRaises(UserError):
# Blanket order already completed
self.blanket_order_wiz_obj.with_context(
active_id=blanket_order.id, active_model="purchase.blanket.order"
).create({})
self.assertEqual(blanket_order.state, "done")
self.assertEqual(blanket_order.purchase_count, 2)
view_action = blanket_order.action_view_purchase_orders()
domain_ids = view_action["domain"][0][2]
self.assertEqual(len(domain_ids), 2)
def test_03_create_purchase_orders_from_blanket_order_line(self):
"""We create a blanket order and create two purchase orders
from the blanket order lines"""
blanket_order = self.blanket_order_obj.create(
{
"partner_id": self.partner.id,
"partner_ref": "REF",
"validity_date": fields.Date.to_string(self.tomorrow),
"payment_term_id": self.payment_term.id,
"line_ids": [
(
0,
0,
{
"product_id": self.product.id,
"product_uom": self.product.uom_id.id,
"original_uom_qty": 20.0,
"price_unit": 30.0,
},
),
(
0,
0,
{
"product_id": self.product2.id,
"product_uom": self.product2.uom_id.id,
"original_uom_qty": 50.0,
"price_unit": 60.0,
},
),
],
}
)
blanket_order.sudo().onchange_partner_id()
blanket_order.sudo().action_confirm()
bo_lines = blanket_order.line_ids
self.assertEqual(blanket_order.line_count, 2)
wizard1 = self.blanket_order_wiz_obj.with_context(
active_ids=[bo_lines[0].id, bo_lines[1].id]
).create({})
self.assertEqual(len(wizard1.line_ids), 2)
wizard1.line_ids[0].write({"qty": 10.0})
wizard1.line_ids[1].write({"qty": 20.0})
wizard1.sudo().create_purchase_order()
self.assertEqual(bo_lines[0].remaining_uom_qty, 10.0)
self.assertEqual(bo_lines[1].remaining_uom_qty, 30.0)
def test_04_constraints_blanket_order(self):
"""We create a blanket order and check constraints"""
blanket_order = self.blanket_order_obj.create(
{
"partner_id": self.partner.id,
"partner_ref": "REF",
"validity_date": fields.Date.to_string(self.tomorrow),
"payment_term_id": self.payment_term.id,
"line_ids": [
(
0,
0,
{
"product_id": self.product.id,
"product_uom": self.product.uom_id.id,
"original_uom_qty": 20.0,
"price_unit": 30.0,
},
)
],
}
)
blanket_order.write({"partner_id": False})
blanket_order.onchange_partner_id()
self.assertFalse(blanket_order.payment_term_id)
self.assertFalse(blanket_order.fiscal_position_id)
self.partner.user_id = self.user_test
blanket_order.write({"partner_id": self.partner.id})
blanket_order.onchange_partner_id()
self.assertEqual(blanket_order.user_id, self.user_test)
blanket_order.sudo().action_confirm()
self.assertEqual(blanket_order.state, "open")
# remove open BO
with self.assertRaises(UserError):
blanket_order.sudo().unlink()
wizard1 = self.blanket_order_wiz_obj.with_context(
active_id=blanket_order.id, active_model="purchase.blanket.order"
).create({})
wizard1.line_ids[0].write({"qty": 10.0})
res = wizard1.sudo().create_purchase_order()
po = self._get_po_from_wizard(res)
# cancel BO with PO not cancelled
with self.assertRaises(UserError):
blanket_order.sudo().action_cancel()
po.button_cancel()
blanket_order.sudo().action_cancel()
with self.assertRaises(UserError):
# Blanket order expired
self.blanket_order_wiz_obj.with_context(
active_id=blanket_order.id, active_model="purchase.blanket.order"
).create({})

View file

@ -0,0 +1,217 @@
# Copyright (C) 2018 ForgeFlow S.L. (https://www.forgeflow.com)
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html).
from datetime import date, timedelta
from odoo import fields
from odoo.exceptions import ValidationError
from odoo.tests import common
class TestPurchaseOrder(common.TransactionCase):
def setUp(self):
super().setUp()
self.blanket_order_obj = self.env["purchase.blanket.order"]
self.blanket_order_line_obj = self.env["purchase.blanket.order.line"]
self.purchase_order_obj = self.env["purchase.order"]
self.purchase_order_line_obj = self.env["purchase.order.line"]
self.partner = self.env["res.partner"].create(
{"name": "TEST SUPPLIER", "supplier_rank": 1}
)
self.partner_2 = self.env["res.partner"].create(
{"name": "TEST SUPPLIER 2", "supplier_rank": 2}
)
self.payment_term = self.env.ref("account.account_payment_term_30days")
# Seller IDS
seller = self.env["product.supplierinfo"].create(
{"partner_id": self.partner.id, "price": 30.0}
)
self.product = self.env["product.product"].create(
{
"name": "Demo",
"categ_id": self.env.ref("product.product_category_1").id,
"standard_price": 35.0,
"seller_ids": [(6, 0, [seller.id])],
"type": "consu",
"uom_id": self.env.ref("uom.product_uom_unit").id,
"default_code": "PROD_DEL01",
}
)
self.product_2 = self.env["product.product"].create(
{
"name": "Demo 2",
"categ_id": self.env.ref("product.product_category_1").id,
"standard_price": 35.0,
"seller_ids": [(6, 0, [seller.id])],
"type": "consu",
"uom_id": self.env.ref("uom.product_uom_unit").id,
"default_code": "PROD_DEL02",
}
)
self.validity = date.today() + timedelta(days=365)
self.date_schedule_1 = date.today() + timedelta(days=10)
self.date_schedule_2 = date.today() + timedelta(days=20)
self.currency_test = self.env["res.currency"].create(
{"name": "Test Currency", "symbol": "T"}
)
def create_blanket_order_01(self):
blanket_order = self.blanket_order_obj.create(
{
"partner_id": self.partner.id,
"validity_date": fields.Date.to_string(self.validity),
"payment_term_id": self.payment_term.id,
"line_ids": [
(
0,
0,
{
"product_id": self.product.id,
"product_uom": self.product.uom_id.id,
"date_schedule": fields.Date.to_string(
self.date_schedule_1
),
"original_uom_qty": 20.0,
"price_unit": 30.0,
},
),
(
0,
0,
{
"product_id": self.product.id,
"product_uom": self.product.uom_id.id,
"date_schedule": fields.Date.to_string(
self.date_schedule_2
),
"original_uom_qty": 20.0,
"price_unit": 30.0,
},
),
],
}
)
blanket_order.sudo().onchange_partner_id()
return blanket_order
def create_blanket_order_02(self):
blanket_order = self.blanket_order_obj.create(
{
"partner_id": self.partner.id,
"validity_date": fields.Date.to_string(self.validity),
"payment_term_id": self.payment_term.id,
"line_ids": [
(
0,
0,
{
"product_id": self.product.id,
"product_uom": self.product.uom_id.id,
"original_uom_qty": 20.0,
"price_unit": 30.0,
},
),
(
0,
0,
{
"product_id": self.product_2.id,
"product_uom": self.product.uom_id.id,
"original_uom_qty": 20.0,
"price_unit": 30.0,
},
),
],
}
)
blanket_order.sudo().onchange_partner_id()
return blanket_order
def test_01_create_purchase_order(self):
blanket_order = self.create_blanket_order_01()
blanket_order.sudo().action_confirm()
bo_lines = self.blanket_order_line_obj.search(
[("order_id", "=", blanket_order.id)]
)
self.assertEqual(len(bo_lines), 2)
po = self.purchase_order_obj.create(
{
"partner_id": self.partner.id,
"order_line": [
(
0,
0,
{
"name": self.product.name,
"product_id": self.product.id,
"product_qty": 5.0,
"product_uom": self.product.uom_po_id.id,
"date_planned": date.today(),
"price_unit": 10.0,
},
)
],
}
)
po_line = po.order_line[0]
po_line.with_context(from_purchase_order=True).name_get()
po_line.onchange_product_id()
self.assertEqual(po_line._get_eligible_bo_lines(), bo_lines)
bo_line_assigned = self.blanket_order_line_obj.search(
[("date_schedule", "=", fields.Date.to_string(self.date_schedule_1))]
)
self.assertEqual(po_line.blanket_order_line, bo_line_assigned)
def test_02_create_purchase_order(self):
blanket_order = self.create_blanket_order_02()
blanket_order.sudo().action_confirm()
bo_lines = self.blanket_order_line_obj.search(
[("order_id", "=", blanket_order.id)]
)
self.assertEqual(len(bo_lines), 2)
po = self.purchase_order_obj.create(
{
"partner_id": self.partner.id,
"order_line": [
(
0,
0,
{
"name": self.product.name,
"product_id": self.product.id,
"product_qty": 5.0,
"product_uom": self.product.uom_po_id.id,
"date_planned": date.today(),
"price_unit": 10.0,
},
)
],
}
)
po_line = po.order_line[0]
po_line.with_context(from_purchase_order=True).name_get()
po_line.onchange_product_id()
self.assertEqual(
po_line._get_eligible_bo_lines(),
bo_lines.filtered(lambda l: l.product_id == self.product),
)
bo_line_assigned = self.blanket_order_line_obj.search(
[
("order_id", "=", blanket_order.id),
("product_id", "=", self.product.id),
("date_schedule", "=", False),
]
)
self.assertEqual(po_line.blanket_order_line, bo_line_assigned)
# change currency of the PO line
with self.assertRaises(ValidationError):
po.write({"currency_id": self.currency_test})
# change partner of the PO line
with self.assertRaises(ValidationError):
po.write({"partner_id": self.partner_2})

View file

@ -0,0 +1,455 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!-- # Copyright (C) 2018 ForgeFlow S.L. (https://www.forgeflow.com)
License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl). -->
<odoo>
<record id="view_purchase_blanket_order_tree" model="ir.ui.view">
<field name="name">purchase.blanket.order.tree</field>
<field name="model">purchase.blanket.order</field>
<field name="arch" type="xml">
<tree
decoration-info="state in ('draft','to_approve')"
decoration-muted="state in ('expired')"
>
<field name="date_start" />
<field name="partner_ref" optional="hide" />
<field name="name" />
<field name="user_id" />
<field name="partner_id" />
<field name="validity_date" />
<field name="activity_ids" widget="list_activity" />
<field name="state" />
</tree>
</field>
</record>
<record id="view_purchase_blanket_order_form" model="ir.ui.view">
<field name="name">purchase.blanket.order.form</field>
<field name="model">purchase.blanket.order</field>
<field name="arch" type="xml">
<form string="Blanket Order">
<header>
<button
name="%(action_create_purchase_order)d"
string="Create Purchase Order"
type="action"
class="btn-primary"
attrs="{'invisible': [('state', '!=', 'open')]}"
/>
<button
name="set_to_draft"
states="expired,done"
string="To Draft"
class="btn-secondary"
type="object"
/>
<button
name="action_cancel"
states="open"
string="Cancel"
class="btn-secondary"
type="object"
/>
<button
name="action_confirm"
states="draft"
string="Confirm"
class="btn-primary o_purchase_confirm"
type="object"
/>
<field
name="state"
widget="statusbar"
statusbar_visible="draft,open,expired"
/>
</header>
<sheet>
<div class="oe_button_box" name="button_box">
<button
name="action_view_purchase_orders"
type="object"
class="oe_stat_button"
icon="fa-list-alt"
>
<field
name="purchase_count"
widget="statinfo"
string="RFQ/Orders"
/>
</button>
<button
type="object"
name="action_view_purchase_blanket_order_line"
class="oe_stat_button"
attrs="{'invisible':[('line_count', '=', 0)]}"
icon="fa-list"
>
<field name="line_count" widget="statinfo" string="Lines" />
</button>
</div>
<div class="oe_title">
<h1>
<field name="name" readonly="1" />
</h1>
</div>
<group name="group_top">
<group name="group_top_left">
<field
name="partner_id"
attrs="{'required': [('state', '=', 'draft')]}"
context="{'res_partner_search_mode': 'supplier', 'show_address': 1}"
options='{"always_reload": True}'
/>
<field name="partner_ref" />
</group>
<group name="group_top_right">
<field
name="currency_id"
groups="base.group_multi_currency"
options="{'no_create': True}"
/>
<field name="user_id" />
<field
name="company_id"
groups="base.group_multi_company"
options="{'no_create': True}"
/>
<field name="company_id" invisible="1" />
</group>
</group>
<group name="group_bottom">
<group name="group_bottom_left">
<field
name="date_start"
attrs="{'required': [('state', '=', 'draft')]}"
/>
</group>
<group name="group_bottom_right">
<field
name="validity_date"
attrs="{'required': [('state', '=', 'draft')]}"
/>
</group>
</group>
<notebook>
<page string="Order Lines">
<field
name="line_ids"
force_save="1"
attrs="{'readonly': [('state', 'in', ('done','expired'))]}"
>
<tree editable="bottom">
<field name="sequence" widget="handle" />
<field name="name" invisible="1" />
<field
name="product_id"
context="{'partner_id':parent.partner_id, 'quantity':original_uom_qty, 'company_id': parent.company_id}"
/>
<field
name="original_uom_qty"
string="Original Qty"
context="{'partner_id':parent.partner_id, 'quantity':original_uom_qty, 'company_id': parent.company_id}"
/>
<field name="product_uom" groups="uom.group_uom" />
<field name="price_unit" />
<field name="date_schedule" />
<field name="ordered_uom_qty" />
<field name="invoiced_uom_qty" />
<field name="received_uom_qty" />
<field name="remaining_uom_qty" />
<field
name="taxes_id"
widget="many2many_tags"
domain="[('type_tax_use','=','purchase')]"
context="{'default_type_tax_use': 'purchase'}"
options="{'no_create': True}"
/>
<field name="price_subtotal" widget="monetary" />
</tree>
</field>
<group class="oe_subtotal_footer oe_right">
<field
name="amount_untaxed"
widget="monetary"
options="{'currency_field': 'currency_id'}"
/>
<field
name="amount_tax"
widget="monetary"
options="{'currency_field': 'currency_id'}"
/>
<div class="oe_subtotal_footer_separator oe_inline">
<label for="amount_total" />
</div>
<field
name="amount_total"
nolabel="1"
class="oe_subtotal_footer_separator"
widget="monetary"
options="{'currency_field': 'currency_id'}"
/>
</group>
<separator string="Terms and Conditions" />
<field
name="note"
class="oe_inline"
placeholder="Setup default terms and conditions in your company settings."
/>
<div class="oe_clear" />
</page>
<page name="other_info" string="Other Information">
<group
name="invoice_information"
string="Invoice Information"
>
<field
name="payment_term_id"
attrs="{'readonly': [('state', '=', 'done')]}"
options="{'no_create': True}"
/>
<field
name="fiscal_position_id"
options="{'no_create': True}"
attrs="{'readonly': [('state', '=', 'done')]}"
/>
</group>
</page>
</notebook>
</sheet>
<div class="oe_chatter">
<field name="message_follower_ids" widget="mail_followers" />
<field name="activity_ids" widget="mail_activity" />
<field name="message_ids" widget="mail_thread" />
</div>
</form>
</field>
</record>
<record id="view_purchase_blanket_order_search" model="ir.ui.view">
<field name="name">purchase.blanket.order.search</field>
<field name="model">purchase.blanket.order</field>
<field name="arch" type="xml">
<search>
<filter
name="state_open"
string="Open"
domain="[('state','=', 'open')]"
/>
<filter
name="original_uom_qty"
string="Original Qty"
domain="[('original_uom_qty','>',0.0)]"
/>
<filter
name="ordered_uom_qty"
string="Ordered Qty"
domain="[('ordered_uom_qty','>',0.0)]"
/>
<filter
name="invoiced_uom_qty"
string="Invoiced Qty"
domain="[('invoiced_uom_qty','>',0.0)]"
/>
<filter
name="received_uom_qty"
string="Received Qty"
domain="[('received_uom_qty','>',0.0)]"
/>
<filter
name="remaining_uom_qty"
string="Remaining Qty"
domain="[('remaining_uom_qty','>',0.0)]"
/>
<group>
<field name="name" />
<field name="partner_id" />
<field name="product_id" />
<field name="state" />
</group>
</search>
</field>
</record>
<record model="ir.actions.act_window" id="act_open_purchase_blanket_order_view">
<field name="name">Blanket Orders</field>
<field name="type">ir.actions.act_window</field>
<field name="res_model">purchase.blanket.order</field>
<field name="view_mode">tree,form</field>
<field name="search_view_id" ref="view_purchase_blanket_order_search" />
<field name="domain">[]</field>
<field name="context">{}</field>
<field name="help" type="html">
<p class="oe_view_nocontent_create">
Click to create a blanket order that can be converted into a purchase order.
</p>
<p>
Use this menu to search within your blanket orders. For each blanket order,
you can track the related discussion with the vendor, control
the products received and control the vendor bills.
</p>
</field>
</record>
<record id="purchase_blanket_order_line_tree" model="ir.ui.view">
<field name="name">purchase.blanket.order.line.tree</field>
<field name="model">purchase.blanket.order.line</field>
<field name="arch" type="xml">
<tree create="false">
<field name="sequence" widget="handle" />
<field name="name" invisible="1" />
<field name="order_id" />
<field
name="product_id"
context="{'partner_id':parent.partner_id, 'quantity':original_uom_qty, 'company_id': parent.company_id}"
/>
<field name="product_uom" invisible="1" />
<field name="price_unit" />
<field name="date_schedule" />
<field
name="original_uom_qty"
string="Original Qty"
context="{'partner_id':parent.partner_id, 'quantity':original_uom_qty, 'company_id': parent.company_id}"
/>
<field name="ordered_uom_qty" />
<field name="invoiced_uom_qty" />
<field name="received_uom_qty" />
<field name="remaining_uom_qty" />
<field name="activity_ids" widget="list_activity" />
</tree>
</field>
</record>
<record id="purchase_blanket_order_line_form" model="ir.ui.view">
<field name="name">purchase.blanket.order.line.form</field>
<field name="model">purchase.blanket.order.line</field>
<field name="priority" eval="20" />
<field name="arch" type="xml">
<form string="Purchase Blanket Order Line" duplicate="false">
<sheet>
<h1>
<field name="order_id" />
</h1>
<group>
<group>
<group>
<field name="product_id" readonly="1" />
<field name="price_unit" readonly="1" />
<field name="partner_id" readonly="1" />
<field name="date_schedule" readonly="1" />
</group>
</group>
<group>
<label for="original_uom_qty" />
<div>
<field
name="original_uom_qty"
class="oe_inline"
readonly="1"
/>
<field
name="product_uom"
groups="uom.group_uom"
class="oe_inline"
readonly="1"
/>
</div>
<label for="ordered_uom_qty" />
<div>
<field
name="ordered_uom_qty"
class="oe_inline"
readonly="1"
/>
<field
name="product_uom"
groups="uom.group_uom"
class="oe_inline"
readonly="1"
/>
</div>
<label for="invoiced_uom_qty" />
<div>
<field
name="invoiced_uom_qty"
class="oe_inline"
readonly="1"
/>
<field
name="product_uom"
groups="uom.group_uom"
class="oe_inline"
readonly="1"
/>
</div>
<label for="remaining_uom_qty" />
<div>
<field
name="remaining_uom_qty"
class="oe_inline"
readonly="1"
/>
<field
name="product_uom"
groups="uom.group_uom"
class="oe_inline"
readonly="1"
/>
</div>
<label for="remaining_qty" />
<div>
<field
name="remaining_qty"
class="oe_inline"
readonly="1"
/>
</div>
</group>
</group>
<notebook>
<page name="purchase_lines" string="Purchase Order Lines">
<field
name="purchase_lines"
mode="tree"
readonly="1"
domain="[('product_id', '=', product_id)]"
/>
</page>
</notebook>
</sheet>
<div class="oe_chatter">
<field name="message_follower_ids" widget="mail_followers" />
<field name="activity_ids" widget="mail_activity" />
<field name="message_ids" widget="mail_thread" />
</div>
</form>
</field>
</record>
<record id="purchase_blanket_order_line_search" model="ir.ui.view">
<field name="name">purchase.blanket.order.line.search</field>
<field name="model">purchase.blanket.order.line</field>
<field name="arch" type="xml">
<search string="Search Purchase Blanket Order Line">
<field name="product_id" />
<field name="date_schedule" />
</search>
</field>
</record>
<record
id="act_open_purchase_blanket_order_lines_view_tree"
model="ir.actions.act_window"
>
<field name="name">Blanket Order Lines</field>
<field name="type">ir.actions.act_window</field>
<field name="res_model">purchase.blanket.order.line</field>
<field name="view_mode">tree,form</field>
<field name="search_view_id" ref="purchase_blanket_order_line_search" />
</record>
<menuitem
id="menu_purchase_blanket_order_config"
parent="purchase.menu_procurement_management"
groups="purchase.group_purchase_manager"
sequence="8"
action="act_open_purchase_blanket_order_view"
/>
<menuitem
action="act_open_purchase_blanket_order_lines_view_tree"
id="menu_purchase_blanket_order_line"
sequence="9"
parent="purchase.menu_procurement_management"
/>
</odoo>

View file

@ -0,0 +1,34 @@
<?xml version="1.0" encoding="utf-8" ?>
<!-- # Copyright (C) 2018 ForgeFlow S.L. (https://www.forgeflow.com)
License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl). -->
<odoo>
<record model="ir.ui.view" id="purchase_config_settings_form_view">
<field name="name">res.config.settings.form (in purchase_blanket_order)</field>
<field name="model">res.config.settings</field>
<field
name="inherit_id"
ref="purchase.res_config_settings_view_form_purchase"
/>
<field name="arch" type="xml">
<xpath
expr="//div[hasclass('row','mt16','o_settings_container')][position() = 3]"
position="after"
>
<h2>Blanket Orders</h2>
<div class="row mt16 o_settings_container">
<div class="col-xs-12 col-md-6 o_setting_box">
<div class="o_setting_left_pane">
<field name="group_purchase_blanket_disable_adding_lines" />
</div>
<div class="o_setting_right_pane">
<label for="group_purchase_blanket_disable_adding_lines" />
<div class="text-muted">
Disable adding more lines to POs from Blanket Orders
</div>
</div>
</div>
</div>
</xpath>
</field>
</record>
</odoo>

View file

@ -0,0 +1,43 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!-- # Copyright (C) 2018 ForgeFlow S.L. (https://www.forgeflow.com)
License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl). -->
<odoo>
<record id="purchase_order_form" model="ir.ui.view">
<field name="name">purchase.order.from.blanket.form</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']//field[@name='date_planned']"
position="after"
>
<field
name="blanket_order_line"
context="{'from_purchase_order': True}"
/>
</xpath>
<field name="order_line" position="attributes">
<attribute
name="context"
operation="update"
>{'from_purchase_order': True}</attribute>
</field>
</field>
</record>
<record id="purchase_order_form_disable_adding_lines" model="ir.ui.view">
<field
name="name"
>purchase.order.from.blanket.form - disable adding lines</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="attributes">
<attribute name="create">blanket_order_id==False</attribute>
<field
name="groups"
eval="[(6,0,[ref('purchase_blanket_order.purchase_blanket_orders_disable_adding_lines')])]"
/>
</xpath>
</field>
</record>
</odoo>

View file

@ -0,0 +1,3 @@
# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl).
from . import create_purchase_orders

View file

@ -0,0 +1,221 @@
# Copyright (C) 2018 ForgeFlow S.L. (https://www.forgeflow.com)
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl).
from collections import defaultdict
from odoo import _, api, fields, models
from odoo.exceptions import UserError
from odoo.tools import float_is_zero
class BlanketOrderWizard(models.TransientModel):
_name = "purchase.blanket.order.wizard"
_description = "Blanket Order Wizard"
@api.model
def _default_order(self):
# in case the cron hasn't run
active_model = self.env.context.get("active_model", False)
self.env["purchase.blanket.order"].expire_orders()
if (
not self.env.context.get("active_id")
or active_model != "purchase.blanket.order"
):
return False
blanket_order = self.env["purchase.blanket.order"].search(
[("id", "=", self.env.context["active_id"])], limit=1
)
if blanket_order.state == "expired":
raise UserError(
_("You can't create a purchase order from an expired blanket order!")
)
return blanket_order
@api.model
def _check_valid_blanket_order_line(self, bo_lines):
precision = self.env["decimal.precision"].precision_get(
"Product Unit of Measure"
)
company_id = False
if float_is_zero(
sum(bo_lines.mapped("remaining_uom_qty")), precision_digits=precision
):
raise UserError(_("All lines have already been completed."))
for line in bo_lines:
if line.order_id.state != "open":
raise UserError(
_("Purchase Blanket Order %s is not open") % line.order_id.name
)
line_company_id = line.company_id and line.company_id.id or False
if company_id is not False and line_company_id != company_id:
raise UserError(_("You have to select lines from the same company."))
else:
company_id = line_company_id
@api.model
def _default_lines(self):
blanket_order_line_obj = self.env["purchase.blanket.order.line"]
blanket_order_line_ids = self.env.context.get("active_ids", False)
active_model = self.env.context.get("active_model", False)
if active_model == "purchase.blanket.order":
bo_lines = self._default_order().line_ids
else:
bo_lines = blanket_order_line_obj.browse(blanket_order_line_ids)
self._check_valid_blanket_order_line(bo_lines)
lines = [
(
0,
0,
{
"blanket_line_id": line.id,
"product_id": line.product_id.id,
"date_schedule": line.date_schedule,
"remaining_uom_qty": line.remaining_uom_qty,
"price_unit": line.price_unit,
"product_uom": line.product_uom,
"qty": line.remaining_uom_qty,
"partner_id": line.partner_id,
},
)
for line in bo_lines
if line.remaining_uom_qty > 0
]
return lines
blanket_order_id = fields.Many2one(
"purchase.blanket.order", readonly=True, default=_default_order
)
purchase_order_id = fields.Many2one(
"purchase.order",
string="Purchase Order",
domain=[("state", "=", "draft")],
)
line_ids = fields.One2many(
"purchase.blanket.order.wizard.line",
"wizard_id",
string="Lines",
default=_default_lines,
)
def create_purchase_order(self):
order_lines_by_supplier = defaultdict(list)
currency_id = 0
payment_term_id = 0
for line in self.line_ids:
if line.qty == 0.0:
continue
if line.qty > line.remaining_uom_qty:
raise UserError(_("You can't order more than the remaining quantities"))
date_planned = line.blanket_line_id.date_schedule
vals = {
"product_id": line.product_id.id,
"name": line.product_id.name,
"date_planned": date_planned
if date_planned
else line.blanket_line_id.order_id.date_start,
"product_uom": line.product_uom.id,
"sequence": line.blanket_line_id.sequence,
"price_unit": line.blanket_line_id.price_unit,
"blanket_order_line": line.blanket_line_id.id,
"product_qty": line.qty,
"taxes_id": [(6, 0, line.taxes_id.ids)],
}
order_lines_by_supplier[line.partner_id.id].append((0, 0, vals))
if currency_id == 0:
currency_id = line.blanket_line_id.order_id.currency_id.id
elif currency_id != line.blanket_line_id.order_id.currency_id.id:
currency_id = False
if payment_term_id == 0:
payment_term_id = line.blanket_line_id.payment_term_id.id
elif payment_term_id != line.blanket_line_id.payment_term_id.id:
payment_term_id = False
if not order_lines_by_supplier:
raise UserError(_("An order can't be empty"))
if not currency_id:
raise UserError(
_(
"Can not create Purchase Order from Blanket "
"Order lines with different currencies"
)
)
res = []
for supplier in order_lines_by_supplier:
order_vals = {
"partner_id": int(supplier),
}
if self.blanket_order_id:
order_vals.update(
{
"partner_ref": self.blanket_order_id.partner_ref,
"origin": self.blanket_order_id.name,
}
)
order_vals.update(
{
"currency_id": currency_id if currency_id else False,
"payment_term_id": (payment_term_id if payment_term_id else False),
"order_line": order_lines_by_supplier[supplier],
}
)
purchase_order = self.env["purchase.order"].create(order_vals)
res.append(purchase_order.id)
return {
"domain": [("id", "in", res)],
"name": _("RFQ"),
"view_mode": "tree,form",
"res_model": "purchase.order",
"view_id": False,
"context": {"from_purchase_order": True},
"type": "ir.actions.act_window",
}
class BlanketOrderWizardLine(models.TransientModel):
_name = "purchase.blanket.order.wizard.line"
_description = "Purchase Blanket Order Wizard Line"
wizard_id = fields.Many2one("purchase.blanket.order.wizard")
blanket_line_id = fields.Many2one("purchase.blanket.order.line")
product_id = fields.Many2one(
"product.product",
related="blanket_line_id.product_id",
string="Product",
readonly=True,
)
product_uom = fields.Many2one(
"uom.uom",
related="blanket_line_id.product_uom",
string="Unit of Measure",
readonly=True,
)
date_schedule = fields.Date(related="blanket_line_id.date_schedule", readonly=True)
remaining_uom_qty = fields.Float(
related="blanket_line_id.remaining_uom_qty", readonly=True
)
qty = fields.Float(string="Quantity to Order", required=True)
price_unit = fields.Float(related="blanket_line_id.price_unit", readonly=True)
currency_id = fields.Many2one("res.currency", related="blanket_line_id.currency_id")
partner_id = fields.Many2one(
"res.partner",
related="blanket_line_id.partner_id",
string="Vendor",
readonly=True,
)
taxes_id = fields.Many2many(
"account.tax", related="blanket_line_id.taxes_id", readonly=True
)

View file

@ -0,0 +1,45 @@
<?xml version="1.0" encoding="utf-8" ?>
<odoo>
<record id="view_create_purchase_order" model="ir.ui.view">
<field name="name">Create Purchase Order</field>
<field name="model">purchase.blanket.order.wizard</field>
<field name="arch" type="xml">
<form string="Create Purchase Order">
<div>
<field name="line_ids" nolabel="1">
<tree create="false" editable="bottom">
<field name="blanket_line_id" invisible="1" />
<field name="product_id" force_save="1" />
<field name="partner_id" force_save="1" />
<field name="date_schedule" force_save="1" />
<field name="price_unit" force_save="1" />
<field name="remaining_uom_qty" force_save="1" />
<field name="product_uom" groups="uom.group_uom" />
<field name="qty" />
</tree>
</field>
</div>
<footer>
<button
name="create_purchase_order"
string="Create and View Order"
type="object"
class="btn-primary"
/>
<button string="Cancel" class="btn-default" special="cancel" />
</footer>
</form>
</field>
</record>
<record id="action_create_purchase_order" model="ir.actions.act_window">
<field name="name">Create RFQ</field>
<field name="type">ir.actions.act_window</field>
<field name="res_model">purchase.blanket.order.wizard</field>
<field name="view_mode">form</field>
<field name="target">new</field>
<field
name="binding_model_id"
ref="purchase_blanket_order.model_purchase_blanket_order_line"
/>
</record>
</odoo>

View file

@ -0,0 +1,44 @@
[project]
name = "odoo-bringout-oca-purchase-workflow-purchase_blanket_order"
version = "16.0.0"
description = "Purchase Blanket Orders - Purchase Blanket Orders"
authors = [
{ name = "Ernad Husremovic", email = "hernad@bring.out.ba" }
]
dependencies = [
"odoo-bringout-oca-ocb-purchase>=16.0.0",
"odoo-bringout-oca-purchase-workflow-web_action_conditionable>=16.0.0",
"odoo-bringout-oca-purchase-workflow-base_view_inheritance_extension>=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_blanket_order"]
[tool.rye]
managed = true
dev-dependencies = [
"pytest>=8.4.1",
]