diff --git a/sale_blanket_order/README.rst b/sale_blanket_order/README.rst new file mode 100644 index 00000000000..c7ea073b91f --- /dev/null +++ b/sale_blanket_order/README.rst @@ -0,0 +1,171 @@ +=================== +Sale Blanket Orders +=================== + +.. + !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! + !! This file is generated by oca-gen-addon-readme !! + !! changes will be overwritten. !! + !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! + !! source digest: sha256:3ed0d98f6c7baa76799bdb56bea83ceacdd6dd8f33e5050b56cd1c602d366edb + !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! + +.. |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%2Fsale--workflow-lightgray.png?logo=github + :target: https://github.com/OCA/sale-workflow/tree/18.0/sale_blanket_order + :alt: OCA/sale-workflow +.. |badge4| image:: https://img.shields.io/badge/weblate-Translate%20me-F47D42.png + :target: https://translation.odoo-community.org/projects/sale-workflow-18-0/sale-workflow-18-0-sale_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/sale-workflow&target_branch=18.0 + :alt: Try me on Runboat + +|badge1| |badge2| |badge3| |badge4| |badge5| + +A blanket order is a pre-agreement to sell a certain number of +quantities of products at a specific price. From a confirmed blanket +order, the users can create new sale orders at such price, until the +blanket order expires, either due to reaching the validity date or +exhausting all the quantities of products. + +**Table of contents** + +.. contents:: + :local: + +Usage +===== + +A new menu in the Sales area is created, allowing users to create new +blanket orders. + +To create a new Sale Blanket Order go to the sale menu in the Sales +section: + +|image1| + +Hitting the button create will open the form view in which we can +introduce the following information: + +- Vendor + +- Salesperson + +- Payment Terms + +- Validity date + +- Order lines: + + - Product + - Accorded price + - Original, Ordered, Invoiced, Received and Remaining quantities + +- Terms and Conditions of the Blanket Order + +|image2| + +From the form, once the Blanket Order has been confirmed and its state +is open, the user can create a Sale Order, check the Sale Orders +associated to the Blanket Order and/or see the Blanket Order lines +associated to the BO. + +|image3| + +Hitting the button Create Sale Order will open a wizard that will ask +for the amount of each product in the BO lines for which the Sale Order +will be created. + +|image4| + +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 Sale Orders selecting the lines for which +the PO (or POs if the customers are different) is (are) created. + +|image5| + +In the Sale 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 Sale +Order a blanket order line will be suggested depending on the following +factors: + +- Closer Validity date +- Remaining quantity > Quantity introduced in the Sale Order line + +|image6| + +.. |image1| image:: https://raw.githubusercontent.com/OCA/sale-workflow/18.0/sale_blanket_order/static/description/BO_menu.png +.. |image2| image:: https://raw.githubusercontent.com/OCA/sale-workflow/18.0/sale_blanket_order/static/description/BO_form.png +.. |image3| image:: https://raw.githubusercontent.com/OCA/sale-workflow/18.0/sale_blanket_order/static/description/BO_actions.png +.. |image4| image:: https://raw.githubusercontent.com/OCA/sale-workflow/18.0/sale_blanket_order/static/description/PO_from_BO.png +.. |image5| image:: https://raw.githubusercontent.com/OCA/sale-workflow/18.0/sale_blanket_order/static/description/BO_lines.png +.. |image6| image:: https://raw.githubusercontent.com/OCA/sale-workflow/18.0/sale_blanket_order/static/description/PO_BOLine.png + +Bug Tracker +=========== + +Bugs are tracked on `GitHub 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 `_. + +Do not contact contributors directly about support or help with technical issues. + +Credits +======= + +Authors +------- + +* Acsone SA/NV + +Contributors +------------ + +- André Pereira (https://www.acsone.eu/) + +- Adrià Gil Sorribes (https://www.eficent.com/) + +- Jordi Ballester Alomar + +- Alex Comba (https://www.agilebg.com/) + +- Codeforward (https://www.codeforward.nl/): + + - Jasper Jumelet + - Chris Bergman + +- `Trobz `__: + + - Nguyễn Minh Chiến + +Other credits +------------- + +The migration of this module from 15.0 to 16.0 was financially supported +by Camptocamp + +Maintainers +----------- + +This module is maintained by the OCA. + +.. image:: https://odoo-community.org/logo.png + :alt: Odoo Community Association + :target: https://odoo-community.org + +OCA, or the Odoo Community Association, is a nonprofit organization whose +mission is to support the collaborative development of Odoo features and +promote its widespread use. + +This module is part of the `OCA/sale-workflow `_ project on GitHub. + +You are welcome to contribute. To learn how please visit https://odoo-community.org/page/Contribute. diff --git a/sale_blanket_order/__init__.py b/sale_blanket_order/__init__.py new file mode 100644 index 00000000000..93aa2c1f84b --- /dev/null +++ b/sale_blanket_order/__init__.py @@ -0,0 +1,4 @@ +# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl). + +from . import models +from . import wizard diff --git a/sale_blanket_order/__manifest__.py b/sale_blanket_order/__manifest__.py new file mode 100644 index 00000000000..c4df4f97136 --- /dev/null +++ b/sale_blanket_order/__manifest__.py @@ -0,0 +1,26 @@ +# Copyright 2018 Acsone +# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl). +{ + "name": "Sale Blanket Orders", + "category": "Sale", + "license": "AGPL-3", + "author": "Acsone SA/NV, Odoo Community Association (OCA)", + "version": "18.0.1.0.0", + "website": "https://github.com/OCA/sale-workflow", + "summary": "Blanket Orders", + "depends": ["uom", "sale_management"], + "data": [ + "security/security.xml", + "security/ir.model.access.csv", + "data/sequence.xml", + "data/ir_cron.xml", + "wizard/create_sale_orders.xml", + "views/sale_config_settings.xml", + "views/sale_blanket_order_views.xml", + "views/sale_blanket_order_line_views.xml", + "views/sale_order_views.xml", + "report/templates.xml", + "report/report.xml", + ], + "installable": True, +} diff --git a/sale_blanket_order/data/ir_cron.xml b/sale_blanket_order/data/ir_cron.xml new file mode 100644 index 00000000000..11ce5097e17 --- /dev/null +++ b/sale_blanket_order/data/ir_cron.xml @@ -0,0 +1,17 @@ + + + + + Expire Blanket Orders + 1 + days + + + code + model.expire_orders() + + diff --git a/sale_blanket_order/data/sequence.xml b/sale_blanket_order/data/sequence.xml new file mode 100644 index 00000000000..fb498e7a338 --- /dev/null +++ b/sale_blanket_order/data/sequence.xml @@ -0,0 +1,11 @@ + + + + + Blanket Order + sale.blanket.order + BO + 3 + + + diff --git a/sale_blanket_order/i18n/de.po b/sale_blanket_order/i18n/de.po new file mode 100644 index 00000000000..0c23410d86c --- /dev/null +++ b/sale_blanket_order/i18n/de.po @@ -0,0 +1,1101 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * sale_blanket_order +# +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 11.0\n" +"Report-Msgid-Bugs-To: \n" +"PO-Revision-Date: 2020-12-09 14:49+0000\n" +"Last-Translator: André Volksdorf \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 3.10\n" + +#. module: sale_blanket_order +#. odoo-python +#: code:addons/sale_blanket_order/models/blanket_orders.py:0 +#, python-format +msgid "" +"\n" +" You cannot change the type of a sale order line.\n" +" Instead you should delete the current line and create a " +"new line\n" +" of the proper type.\n" +" " +msgstr "" + +#. module: sale_blanket_order +#: model:ir.actions.report,print_report_name:sale_blanket_order.report_blanket_order +msgid "'Blanket Order - %s' % object.name" +msgstr "" + +#. module: sale_blanket_order +#: model_terms:ir.ui.view,arch_db:sale_blanket_order.report_blanketorder_document +msgid "Blanket Order # " +msgstr "Rahmenauftrag # " + +#. module: sale_blanket_order +#: model_terms:ir.ui.view,arch_db:sale_blanket_order.report_blanketorder_document +msgid "Subtotal" +msgstr "" + +#. module: sale_blanket_order +#: model_terms:ir.ui.view,arch_db:sale_blanket_order.report_blanketorder_document +msgid "Currency:" +msgstr "Währung:" + +#. module: sale_blanket_order +#: model_terms:ir.ui.view,arch_db:sale_blanket_order.report_blanketorder_document +msgid "Salesperson:" +msgstr "Verkäufer:" + +#. module: sale_blanket_order +#: model_terms:ir.ui.view,arch_db:sale_blanket_order.report_blanketorder_document +msgid "Subtotal" +msgstr "Zwischensumme" + +#. module: sale_blanket_order +#: model_terms:ir.ui.view,arch_db:sale_blanket_order.report_blanketorder_document +msgid "Total" +msgstr "Gesamt" + +#. module: sale_blanket_order +#: model_terms:ir.ui.view,arch_db:sale_blanket_order.report_blanketorder_document +msgid "Validity Date:" +msgstr "Gültigkeitsdatum:" + +#. module: sale_blanket_order +#: model_terms:ir.ui.view,arch_db:sale_blanket_order.report_blanketorder_document +msgid "Your Reference:" +msgstr "Ihre Referenz:" + +#. module: sale_blanket_order +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order__message_needaction +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order_line__message_needaction +msgid "Action Needed" +msgstr "Aktion erforderlich" + +#. module: sale_blanket_order +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order__activity_ids +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order_line__activity_ids +msgid "Activities" +msgstr "Aktivitäten" + +#. module: sale_blanket_order +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order__activity_exception_decoration +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order_line__activity_exception_decoration +msgid "Activity Exception Decoration" +msgstr "" + +#. module: sale_blanket_order +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order__activity_state +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order_line__activity_state +msgid "Activity State" +msgstr "Status" + +#. module: sale_blanket_order +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order__activity_type_icon +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order_line__activity_type_icon +msgid "Activity Type Icon" +msgstr "" + +#. module: sale_blanket_order +#: model_terms:ir.ui.view,arch_db:sale_blanket_order.view_blanket_order_form +msgid "Add a note" +msgstr "" + +#. module: sale_blanket_order +#: model_terms:ir.ui.view,arch_db:sale_blanket_order.view_blanket_order_form +msgid "Add a product" +msgstr "" + +#. module: sale_blanket_order +#: model_terms:ir.ui.view,arch_db:sale_blanket_order.view_blanket_order_form +msgid "Add a section" +msgstr "" + +#. module: sale_blanket_order +#: model_terms:ir.ui.view,arch_db:sale_blanket_order.report_blanketorder_document +msgid "Amount" +msgstr "Summe" + +#. module: sale_blanket_order +#. odoo-python +#: code:addons/sale_blanket_order/wizard/create_sale_orders.py:0 +#, python-format +msgid "An order can't be empty" +msgstr "Ein Auftrag kann nicht leer sein" + +#. module: sale_blanket_order +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order__analytic_account_id +msgid "Analytic Account" +msgstr "" + +#. module: sale_blanket_order +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order_line__analytic_distribution +msgid "Analytic Distribution" +msgstr "" + +#. module: sale_blanket_order +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order_line__analytic_distribution_search +msgid "Analytic Distribution Search" +msgstr "" + +#. module: sale_blanket_order +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order_line__analytic_precision +msgid "Analytic Precision" +msgstr "" + +#. module: sale_blanket_order +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order__message_attachment_count +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order_line__message_attachment_count +msgid "Attachment Count" +msgstr "Anhänge zählen" + +#. module: sale_blanket_order +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order_wizard_line__blanket_line_id +msgid "Blanket Line" +msgstr "Rahmen Auftragszeilen" + +#. module: sale_blanket_order +#: model:ir.actions.report,name:sale_blanket_order.report_blanket_order +#: model:ir.model,name:sale_blanket_order.model_sale_blanket_order +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order_wizard__blanket_order_id +#: model_terms:ir.ui.view,arch_db:sale_blanket_order.view_blanket_order_form +msgid "Blanket Order" +msgstr "Rahmenauftrag" + +#. module: sale_blanket_order +#: model:ir.model,name:sale_blanket_order.model_sale_blanket_order_line +msgid "Blanket Order Line" +msgstr "Rahmen Auftragszeile" + +#. module: sale_blanket_order +#: model:ir.actions.act_window,name:sale_blanket_order.act_open_sale_blanket_order_lines_view_tree +#: model:ir.ui.menu,name:sale_blanket_order.menu_sale_blanket_order_line +msgid "Blanket Order Lines" +msgstr "Rahmen Auftragszeilen" + +#. module: sale_blanket_order +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_order_line__blanket_order_line +msgid "Blanket Order line" +msgstr "Rahmen Auftragszeile" + +#. module: sale_blanket_order +#: model:ir.actions.act_window,name:sale_blanket_order.act_open_blanket_order_view +#: model:ir.ui.menu,name:sale_blanket_order.menu_blanket_order_config +#: model_terms:ir.ui.view,arch_db:sale_blanket_order.sale_config_settings_form_view +msgid "Blanket Orders" +msgstr "Rahmenaufträge" + +#. module: sale_blanket_order +#: model:ir.model,name:sale_blanket_order.model_sale_blanket_order_wizard +msgid "Blanket order wizard" +msgstr "Assistent für Blanko-Aufträge" + +#. module: sale_blanket_order +#: model:ir.model,name:sale_blanket_order.model_sale_blanket_order_wizard_line +msgid "Blanket order wizard line" +msgstr "Rahmenauftragszeile Assistent" + +#. module: sale_blanket_order +#. odoo-python +#: code:addons/sale_blanket_order/wizard/create_sale_orders.py:0 +#, python-format +msgid "" +"Can not create Sale Order from Blanket Order lines with different currencies" +msgstr "" +"Kann keinen Verkaufsauftrag aus Rahmen-Auftragszeilen mit verschiedenen " +"Währungen erstellen" + +#. module: sale_blanket_order +#: model_terms:ir.ui.view,arch_db:sale_blanket_order.view_blanket_order_form +#: model_terms:ir.ui.view,arch_db:sale_blanket_order.view_create_sale_order +msgid "Cancel" +msgstr "Abbrechen" + +#. module: sale_blanket_order +#. odoo-python +#: code:addons/sale_blanket_order/models/sale_orders.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 "" +"Auftrag %s kann nicht bestätigt werden, da sich eine der Zeilen auf einen " +"Rahmenauftrag bezieht, der keine Restmenge hat." + +#. module: sale_blanket_order +#: model_terms:ir.actions.act_window,help:sale_blanket_order.act_open_blanket_order_view +msgid "" +"Click to create a blanket order that can be converted into a sale order." +msgstr "" +"Klicken um einen Rahmenauftrag zu erstellen, der in einen Verkaufsauftrag " +"umgewandelt werden kann." + +#. module: sale_blanket_order +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order__company_id +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order_line__company_id +msgid "Company" +msgstr "Unternehmen" + +#. module: sale_blanket_order +#: model:ir.model,name:sale_blanket_order.model_res_config_settings +msgid "Config Settings" +msgstr "Konfiguration" + +#. module: sale_blanket_order +#: model_terms:ir.ui.view,arch_db:sale_blanket_order.view_blanket_order_form +msgid "Confirm" +msgstr "Bestätigen" + +#. module: sale_blanket_order +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order__confirmed +msgid "Confirmed" +msgstr "Bestätigt" + +#. module: sale_blanket_order +#: model:ir.actions.act_window,name:sale_blanket_order.action_create_sale_order +#: model_terms:ir.ui.view,arch_db:sale_blanket_order.view_blanket_order_form +#: model_terms:ir.ui.view,arch_db:sale_blanket_order.view_create_sale_order +msgid "Create Sale Order" +msgstr "Verkaufsauftrag erstellen" + +#. module: sale_blanket_order +#: model_terms:ir.ui.view,arch_db:sale_blanket_order.view_create_sale_order +msgid "Create and View Order" +msgstr "Auftrag erstellen und anzeigen" + +#. module: sale_blanket_order +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order__create_uid +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order_line__create_uid +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order_wizard__create_uid +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order_wizard_line__create_uid +msgid "Created by" +msgstr "Erstellt von" + +#. module: sale_blanket_order +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order__create_date +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order_line__create_date +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order_wizard__create_date +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order_wizard_line__create_date +msgid "Created on" +msgstr "Erstellt am" + +#. module: sale_blanket_order +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order__currency_id +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order_line__currency_id +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order_wizard_line__currency_id +msgid "Currency" +msgstr "Währung" + +#. module: sale_blanket_order +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order_line__partner_id +msgid "Customer" +msgstr "Kunde" + +#. module: sale_blanket_order +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order__client_order_ref +msgid "Customer Reference" +msgstr "Kunden-Referenz" + +#. module: sale_blanket_order +#. odoo-python +#: code:addons/sale_blanket_order/models/blanket_orders.py:0 +#, python-format +msgid "Date Scheduled" +msgstr "Geplantes Datum" + +#. module: sale_blanket_order +#: model_terms:ir.ui.view,arch_db:sale_blanket_order.view_blanket_order_search +msgid "Delivered Qty" +msgstr "Gelieferte Menge" + +#. module: sale_blanket_order +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order__delivered_uom_qty +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order_line__delivered_uom_qty +msgid "Delivered quantity" +msgstr "Gelieferte Menge" + +#. module: sale_blanket_order +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order_line__name +msgid "Description" +msgstr "Beschreibung" + +#. module: sale_blanket_order +#: model:ir.model.fields,field_description:sale_blanket_order.field_res_config_settings__group_blanket_disable_adding_lines +msgid "Disable adding more lines to SOs" +msgstr "Deaktivieren Sie das Hinzufügen weiterer Zeilen zu SOs" + +#. module: sale_blanket_order +#: model:res.groups,name:sale_blanket_order.blanket_orders_disable_adding_lines +#: model_terms:ir.ui.view,arch_db:sale_blanket_order.sale_config_settings_form_view +msgid "Disable adding more lines to SOs from Blanket Orders" +msgstr "" +"Deaktivieren Sie das Hinzufügen weiterer Zeilen zu SOs aus Rahmenaufträgen" + +#. module: sale_blanket_order +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order__display_name +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order_line__display_name +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order_wizard__display_name +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order_wizard_line__display_name +msgid "Display Name" +msgstr "Anzeigename" + +#. module: sale_blanket_order +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order_line__display_type +msgid "Display Type" +msgstr "" + +#. module: sale_blanket_order +#: model:ir.model.fields.selection,name:sale_blanket_order.selection__sale_blanket_order__state__done +msgid "Done" +msgstr "Erledigt" + +#. module: sale_blanket_order +#: model:ir.model.fields.selection,name:sale_blanket_order.selection__sale_blanket_order__state__draft +msgid "Draft" +msgstr "Entwurf" + +#. module: sale_blanket_order +#: model:ir.actions.server,name:sale_blanket_order.expired_blanket_orders_cron_ir_actions_server +msgid "Expire Blanket Orders" +msgstr "Auslaufende Rahmenaufträge" + +#. module: sale_blanket_order +#: model:ir.model.fields.selection,name:sale_blanket_order.selection__sale_blanket_order__state__expired +msgid "Expired" +msgstr "Abgelaufen" + +#. module: sale_blanket_order +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order__fiscal_position_id +msgid "Fiscal Position" +msgstr "Steuerzuordnung" + +#. module: sale_blanket_order +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order__message_follower_ids +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order_line__message_follower_ids +msgid "Followers" +msgstr "Abonnenten" + +#. module: sale_blanket_order +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order__message_partner_ids +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order_line__message_partner_ids +msgid "Followers (Partners)" +msgstr "Abonnenten (Kontakte)" + +#. module: sale_blanket_order +#: model:ir.model.fields,help:sale_blanket_order.field_sale_blanket_order__activity_type_icon +#: model:ir.model.fields,help:sale_blanket_order.field_sale_blanket_order_line__activity_type_icon +msgid "Font awesome icon e.g. fa-tasks" +msgstr "" + +#. module: sale_blanket_order +#: model:ir.model.constraint,message:sale_blanket_order.constraint_sale_blanket_order_line_non_accountable_null_fields +msgid "Forbidden values on non-accountable sale order line" +msgstr "" + +#. module: sale_blanket_order +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order__has_message +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order_line__has_message +msgid "Has Message" +msgstr "" + +#. module: sale_blanket_order +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order__id +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order_line__id +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order_wizard__id +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order_wizard_line__id +msgid "ID" +msgstr "ID" + +#. module: sale_blanket_order +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order__activity_exception_icon +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order_line__activity_exception_icon +msgid "Icon" +msgstr "" + +#. module: sale_blanket_order +#: model:ir.model.fields,help:sale_blanket_order.field_sale_blanket_order__activity_exception_icon +#: model:ir.model.fields,help:sale_blanket_order.field_sale_blanket_order_line__activity_exception_icon +msgid "Icon to indicate an exception activity." +msgstr "" + +#. module: sale_blanket_order +#: model:ir.model.fields,help:sale_blanket_order.field_sale_blanket_order__message_needaction +#: model:ir.model.fields,help:sale_blanket_order.field_sale_blanket_order_line__message_needaction +msgid "If checked, new messages require your attention." +msgstr "Falls markiert, erfordern neue Nachrichten Ihre Aufmerksamkeit." + +#. module: sale_blanket_order +#: model:ir.model.fields,help:sale_blanket_order.field_sale_blanket_order__message_has_error +#: model:ir.model.fields,help:sale_blanket_order.field_sale_blanket_order_line__message_has_error +msgid "If checked, some messages have a delivery error." +msgstr "" +"Wenn diese Option aktiviert ist, weisen einige Nachrichten einen " +"Zustellungsfehler auf." + +#. module: sale_blanket_order +#: model_terms:ir.ui.view,arch_db:sale_blanket_order.view_blanket_order_search +msgid "Invoiced Qty" +msgstr "Fakturierte Menge" + +#. module: sale_blanket_order +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order__invoiced_uom_qty +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order_line__invoiced_uom_qty +msgid "Invoiced quantity" +msgstr "Fakturierte Menge" + +#. module: sale_blanket_order +#: model_terms:ir.ui.view,arch_db:sale_blanket_order.view_blanket_order_form +msgid "Invoicing" +msgstr "" + +#. module: sale_blanket_order +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order__message_is_follower +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order_line__message_is_follower +msgid "Is Follower" +msgstr "Ist Abonnent" + +#. module: sale_blanket_order +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order__write_uid +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order_line__write_uid +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order_wizard__write_uid +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order_wizard_line__write_uid +msgid "Last Updated by" +msgstr "Zuletzt aktualisiert von" + +#. module: sale_blanket_order +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order__write_date +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order_line__write_date +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order_wizard__write_date +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order_wizard_line__write_date +msgid "Last Updated on" +msgstr "Zuletzt aktualisiert am" + +#. module: sale_blanket_order +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order_wizard__line_ids +#: model_terms:ir.ui.view,arch_db:sale_blanket_order.view_blanket_order_form +msgid "Lines" +msgstr "Zeilen" + +#. module: sale_blanket_order +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order__message_has_error +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order_line__message_has_error +msgid "Message Delivery error" +msgstr "Fehler bei Nachrichtenübermittlung" + +#. module: sale_blanket_order +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order__message_ids +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order_line__message_ids +msgid "Messages" +msgstr "Mitteilungen" + +#. module: sale_blanket_order +#: model:ir.model.constraint,message:sale_blanket_order.constraint_sale_blanket_order_line_accountable_required_fields +msgid "Missing required fields on accountable sale order line." +msgstr "" + +#. module: sale_blanket_order +#. odoo-python +#: code:addons/sale_blanket_order/models/blanket_orders.py:0 +#, python-format +msgid "Must have some lines" +msgstr "Muss einige Zeilen haben" + +#. module: sale_blanket_order +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order__my_activity_date_deadline +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order_line__my_activity_date_deadline +msgid "My Activity Deadline" +msgstr "" + +#. module: sale_blanket_order +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order__name +msgid "Name" +msgstr "Name" + +#. module: sale_blanket_order +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order__activity_date_deadline +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order_line__activity_date_deadline +msgid "Next Activity Deadline" +msgstr "Nächste Deadline Aktivität" + +#. module: sale_blanket_order +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order__activity_summary +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order_line__activity_summary +msgid "Next Activity Summary" +msgstr "Zusammenfassung der nächsten Aktion" + +#. module: sale_blanket_order +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order__activity_type_id +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order_line__activity_type_id +msgid "Next Activity Type" +msgstr "Nächste Aktivitätsart" + +#. module: sale_blanket_order +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order__note +#: model:ir.model.fields.selection,name:sale_blanket_order.selection__sale_blanket_order_line__display_type__line_note +msgid "Note" +msgstr "Notiz" + +#. module: sale_blanket_order +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order__message_needaction_counter +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order_line__message_needaction_counter +msgid "Number of Actions" +msgstr "Anzahl Aktionen" + +#. module: sale_blanket_order +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order__message_has_error_counter +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order_line__message_has_error_counter +msgid "Number of errors" +msgstr "" + +#. module: sale_blanket_order +#: model:ir.model.fields,help:sale_blanket_order.field_sale_blanket_order__message_needaction_counter +#: model:ir.model.fields,help:sale_blanket_order.field_sale_blanket_order_line__message_needaction_counter +msgid "Number of messages requiring action" +msgstr "" + +#. module: sale_blanket_order +#: model:ir.model.fields,help:sale_blanket_order.field_sale_blanket_order__message_has_error_counter +#: model:ir.model.fields,help:sale_blanket_order.field_sale_blanket_order_line__message_has_error_counter +msgid "Number of messages with delivery error" +msgstr "Anzahl der Nachrichten mit einer Fehlermeldung" + +#. module: sale_blanket_order +#: model:ir.model.fields.selection,name:sale_blanket_order.selection__sale_blanket_order__state__open +#: model_terms:ir.ui.view,arch_db:sale_blanket_order.view_blanket_order_search +msgid "Open" +msgstr "Offen" + +#. module: sale_blanket_order +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order_line__order_id +msgid "Order" +msgstr "Auftrag" + +#. module: sale_blanket_order +#: model_terms:ir.ui.view,arch_db:sale_blanket_order.view_blanket_order_form +msgid "Order Lines" +msgstr "Auftragszeilen" + +#. module: sale_blanket_order +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order__line_ids +msgid "Order lines" +msgstr "Auftragszeilen" + +#. module: sale_blanket_order +#: model_terms:ir.ui.view,arch_db:sale_blanket_order.view_blanket_order_search +msgid "Ordered Qty" +msgstr "Bestellte Menge" + +#. module: sale_blanket_order +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order__ordered_uom_qty +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order_line__ordered_uom_qty +msgid "Ordered quantity" +msgstr "Bestellte Menge" + +#. module: sale_blanket_order +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_order__blanket_order_id +msgid "Origin blanket order" +msgstr "Ursprünglicher Rahmenauftrag" + +#. module: sale_blanket_order +#: model_terms:ir.ui.view,arch_db:sale_blanket_order.report_blanketorder_document +#: model_terms:ir.ui.view,arch_db:sale_blanket_order.sale_blanket_order_line_tree +#: model_terms:ir.ui.view,arch_db:sale_blanket_order.view_blanket_order_form +#: model_terms:ir.ui.view,arch_db:sale_blanket_order.view_blanket_order_search +msgid "Original Qty" +msgstr "Ursprüngliche Menge" + +#. module: sale_blanket_order +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order__original_uom_qty +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order_line__original_uom_qty +msgid "Original quantity" +msgstr "Ursprüngliche Menge" + +#. module: sale_blanket_order +#: model_terms:ir.ui.view,arch_db:sale_blanket_order.view_blanket_order_form +msgid "Other Information" +msgstr "Weitere Informationen" + +#. module: sale_blanket_order +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order__partner_id +msgid "Partner" +msgstr "Partner" + +#. module: sale_blanket_order +#. odoo-python +#: code:addons/sale_blanket_order/models/blanket_orders.py:0 +#, python-format +msgid "Partner is mandatory" +msgstr "Partner ist obligatorisch" + +#. module: sale_blanket_order +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order__payment_term_id +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order_line__payment_term_id +msgid "Payment Terms" +msgstr "Zahlungsbedingungen" + +#. module: sale_blanket_order +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order_line__price_unit +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order_wizard_line__price_unit +msgid "Price" +msgstr "Preis" + +#. module: sale_blanket_order +#. odoo-python +#: code:addons/sale_blanket_order/models/blanket_orders.py:0 +#, python-format +msgid "Price must be greater than zero" +msgstr "Der Preis muss größer als 0 sein" + +#. module: sale_blanket_order +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order__pricelist_id +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order_line__pricelist_id +msgid "Pricelist" +msgstr "Preisliste" + +#. module: sale_blanket_order +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order_line__pricelist_item_id +msgid "Pricelist Item" +msgstr "" + +#. module: sale_blanket_order +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order__product_id +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order_line__product_id +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order_wizard_line__product_id +#: model_terms:ir.ui.view,arch_db:sale_blanket_order.report_blanketorder_document +msgid "Product" +msgstr "Produkt" + +#. module: sale_blanket_order +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order_wizard__sale_order_id +msgid "Purchase Order" +msgstr "Beschaffungsauftrag" + +#. module: sale_blanket_order +#. odoo-python +#: code:addons/sale_blanket_order/models/blanket_orders.py:0 +#, python-format +msgid "Quantity must be greater than zero" +msgstr "Die Menge muss größer als 0 sein" + +#. module: sale_blanket_order +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order_wizard_line__qty +msgid "Quantity to Order" +msgstr "Bestellmenge" + +#. module: sale_blanket_order +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order__rating_ids +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order_line__rating_ids +msgid "Ratings" +msgstr "" + +#. module: sale_blanket_order +#: model_terms:ir.ui.view,arch_db:sale_blanket_order.view_blanket_order_search +msgid "Remaining Qty" +msgstr "Verbleibende Menge" + +#. module: sale_blanket_order +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order__remaining_uom_qty +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order_line__remaining_uom_qty +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order_wizard_line__remaining_uom_qty +msgid "Remaining quantity" +msgstr "Verbleibende Menge" + +#. module: sale_blanket_order +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order_line__remaining_qty +msgid "Remaining quantity in base UoM" +msgstr "Verbleibende Menge in Basis-ME" + +#. module: sale_blanket_order +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order_line__user_id +msgid "Responsible" +msgstr "Verantwortlich" + +#. module: sale_blanket_order +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order__activity_user_id +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order_line__activity_user_id +msgid "Responsible User" +msgstr "Verantwortlicher Benutzer" + +#. module: sale_blanket_order +#. odoo-python +#: code:addons/sale_blanket_order/wizard/create_sale_orders.py:0 +#, python-format +msgid "Sale Blanket Order %s is not open" +msgstr "Rahmen-Verkaufsauftrag %s ist nicht offen" + +#. module: sale_blanket_order +#: model_terms:ir.ui.view,arch_db:sale_blanket_order.sale_blanket_order_line_form +msgid "Sale Blanket Order Line" +msgstr "Rahmen Verkaufsauftragszeile" + +#. module: sale_blanket_order +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order__line_count +msgid "Sale Blanket Order Line count" +msgstr "Rahmen Verkaufsauftragszeile" + +#. module: sale_blanket_order +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order__sale_count +msgid "Sale Count" +msgstr "Anzahl der Verkäufe" + +#. module: sale_blanket_order +#: model_terms:ir.ui.view,arch_db:sale_blanket_order.sale_blanket_order_line_form +msgid "Sale Order Lines" +msgstr "Auftragspositionen" + +#. module: sale_blanket_order +#: model_terms:ir.ui.view,arch_db:sale_blanket_order.view_blanket_order_form +msgid "Sale Orders" +msgstr "Aufträge" + +#. module: sale_blanket_order +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order_line__sale_lines +msgid "Sale order lines" +msgstr "Verkaufsauftragszeilen" + +#. module: sale_blanket_order +#: model_terms:ir.ui.view,arch_db:sale_blanket_order.view_blanket_order_form +msgid "Sales Information" +msgstr "Informationen Verkauf" + +#. module: sale_blanket_order +#: model:ir.model,name:sale_blanket_order.model_sale_order +msgid "Sales Order" +msgstr "" + +#. module: sale_blanket_order +#: model:ir.model,name:sale_blanket_order.model_sale_order_line +msgid "Sales Order Line" +msgstr "Auftragsposition" + +#. module: sale_blanket_order +#. odoo-python +#: code:addons/sale_blanket_order/wizard/create_sale_orders.py:0 +#, python-format +msgid "Sales Orders" +msgstr "Aufträge" + +#. module: sale_blanket_order +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order__team_id +msgid "Sales Team" +msgstr "Verkaufsteam" + +#. module: sale_blanket_order +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order__user_id +msgid "Salesperson" +msgstr "Verkäufer" + +#. module: sale_blanket_order +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order_line__date_schedule +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order_wizard_line__date_schedule +#: model_terms:ir.ui.view,arch_db:sale_blanket_order.report_blanketorder_document +msgid "Scheduled Date" +msgstr "Geplantes Datum" + +#. module: sale_blanket_order +#: model_terms:ir.ui.view,arch_db:sale_blanket_order.sale_blanket_order_line_search +msgid "Search Sale Blanket Order Line" +msgstr "Suche nach Rahmen-Verkaufsauftragszeile" + +#. module: sale_blanket_order +#: model:ir.model.fields.selection,name:sale_blanket_order.selection__sale_blanket_order_line__display_type__line_section +msgid "Section" +msgstr "" + +#. module: sale_blanket_order +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order_line__sequence +msgid "Sequence" +msgstr "Sequenz" + +#. module: sale_blanket_order +#: model_terms:ir.ui.view,arch_db:sale_blanket_order.view_blanket_order_form +msgid "Setup default terms and conditions in your company settings." +msgstr "" +"Richten Sie in Ihren Unternehmenseinstellungen Standardbedingungen ein." + +#. module: sale_blanket_order +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order__state +msgid "State" +msgstr "Bundesland" + +#. module: sale_blanket_order +#: model:ir.model.fields,help:sale_blanket_order.field_sale_blanket_order__activity_state +#: model:ir.model.fields,help:sale_blanket_order.field_sale_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 basierend auf Aktivitäten\n" +"Überfällig: Fälligkeitsdatum ist bereits überschritten\n" +"Heute: Aktivitätsdatum ist heute\n" +"Geplant: Zukünftige Aktivitäten." + +#. module: sale_blanket_order +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order_line__price_subtotal +msgid "Subtotal" +msgstr "Zwischensumme" + +#. module: sale_blanket_order +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order_line__price_tax +msgid "Tax" +msgstr "Steuer" + +#. module: sale_blanket_order +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order__amount_tax +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order_line__taxes_id +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order_wizard_line__taxes_id +#: model_terms:ir.ui.view,arch_db:sale_blanket_order.report_blanketorder_document +msgid "Taxes" +msgstr "Steuern" + +#. module: sale_blanket_order +#: model:ir.model.fields,help:sale_blanket_order.field_sale_blanket_order_line__display_type +msgid "Technical field for UX purpose." +msgstr "" + +#. module: sale_blanket_order +#: model_terms:ir.ui.view,arch_db:sale_blanket_order.view_blanket_order_form +msgid "Terms and Conditions" +msgstr "Geschäftsbedingungen" + +#. module: sale_blanket_order +#. odoo-python +#: code:addons/sale_blanket_order/models/sale_orders.py:0 +#, python-format +msgid "" +"The currency of the blanket order must match with that of the sale order." +msgstr "" +"Die Währung des Rahmenauftrags muss mit der Währung des Verkaufsauftrags " +"übereinstimmen." + +#. module: sale_blanket_order +#. odoo-python +#: code:addons/sale_blanket_order/models/sale_orders.py:0 +#, python-format +msgid "The customer must be equal to the blanket order lines customer" +msgstr "Der Kunde muss dem Kunden der Blanko-Auftragszeilen entsprechen" + +#. module: sale_blanket_order +#. odoo-python +#: code:addons/sale_blanket_order/models/sale_orders.py:0 +#, python-format +msgid "The product in the blanket order and in the sales order must match" +msgstr "Das Produkt im Rahmenauftrag und im Kundenauftrag muss übereinstimmen" + +#. module: sale_blanket_order +#. odoo-python +#: code:addons/sale_blanket_order/wizard/create_sale_orders.py:0 +#, python-format +msgid "The sale has already been completed." +msgstr "Der Verkauf ist bereits abgeschlossen." + +#. module: sale_blanket_order +#: model_terms:ir.ui.view,arch_db:sale_blanket_order.view_blanket_order_form +msgid "To Draft" +msgstr "Entwurf" + +#. module: sale_blanket_order +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order__amount_total +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order_line__price_total +msgid "Total" +msgstr "Gesamt" + +#. module: sale_blanket_order +#: model:ir.model.fields,help:sale_blanket_order.field_sale_blanket_order__activity_exception_decoration +#: model:ir.model.fields,help:sale_blanket_order.field_sale_blanket_order_line__activity_exception_decoration +msgid "Type of the exception activity on record." +msgstr "" + +#. module: sale_blanket_order +#: model_terms:ir.ui.view,arch_db:sale_blanket_order.report_blanketorder_document +msgid "Unit Price" +msgstr "Stückpreis" + +#. module: sale_blanket_order +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order_line__product_uom +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order_wizard_line__product_uom +msgid "Unit of Measure" +msgstr "Mengeneinheit" + +#. module: sale_blanket_order +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order__amount_untaxed +msgid "Untaxed Amount" +msgstr "Nettosumme" + +#. module: sale_blanket_order +#: model_terms:ir.actions.act_window,help:sale_blanket_order.act_open_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 customer, " +"control\n" +" the products delivered and control the vendor bills." +msgstr "" +"Verwenden Sie dieses Menü, um innerhalb Ihrer Rahmenaufträge zu suchen. Für " +"jede Rahmenbestellung,\n" +" können Sie die zugehörige Diskussion mit dem Kunden " +"verfolgen, \n" +" die gelieferten Produkte nachverfolgen und die " +"Lieferantenrechnungen kontrollieren." + +#. module: sale_blanket_order +#: model_terms:ir.ui.view,arch_db:sale_blanket_order.report_blanketorder_document +msgid "VAT:" +msgstr "USt.-ID:" + +#. module: sale_blanket_order +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order__validity_date +msgid "Validity Date" +msgstr "Gültigkeitsdatum" + +#. module: sale_blanket_order +#. odoo-python +#: code:addons/sale_blanket_order/models/blanket_orders.py:0 +#, python-format +msgid "Validity date is mandatory" +msgstr "Gültigkeitsdatum ist obligatorisch" + +#. module: sale_blanket_order +#. odoo-python +#: code:addons/sale_blanket_order/models/blanket_orders.py:0 +#, python-format +msgid "Validity date must be in the future" +msgstr "Das Gültigkeitsdatum muss in der Zukunft liegen" + +#. module: sale_blanket_order +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order_wizard_line__partner_id +msgid "Vendor" +msgstr "Lieferant" + +#. module: sale_blanket_order +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order__website_message_ids +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order_line__website_message_ids +msgid "Website Messages" +msgstr "Website-Botschaften" + +#. module: sale_blanket_order +#: model:ir.model.fields,help:sale_blanket_order.field_sale_blanket_order__website_message_ids +#: model:ir.model.fields,help:sale_blanket_order.field_sale_blanket_order_line__website_message_ids +msgid "Website communication history" +msgstr "Geschichte der Website-Kommunikation" + +#. module: sale_blanket_order +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order_wizard_line__wizard_id +msgid "Wizard" +msgstr "Assistent" + +#. module: sale_blanket_order +#. odoo-python +#: code:addons/sale_blanket_order/models/blanket_orders.py:0 +#, python-format +msgid "" +"You can not delete a blanket order with opened sale orders! Try to cancel " +"them before." +msgstr "" + +#. module: sale_blanket_order +#. odoo-python +#: code:addons/sale_blanket_order/models/blanket_orders.py:0 +#, python-format +msgid "" +"You can not delete an open blanket or with active sale orders! Try to cancel " +"it before." +msgstr "" + +#. module: sale_blanket_order +#. odoo-python +#: code:addons/sale_blanket_order/wizard/create_sale_orders.py:0 +#, python-format +msgid "You can't create a sale order from an expired blanket order!" +msgstr "" +"Sie können keinen Verkaufsauftrag aus einem abgelaufenen Rahmenauftrag " +"erstellen!" + +#. module: sale_blanket_order +#. odoo-python +#: code:addons/sale_blanket_order/wizard/create_sale_orders.py:0 +#, python-format +msgid "You can't order more than the remaining quantities" +msgstr "Sie können nicht mehr als die offene Menge beauftragen" + +#. module: sale_blanket_order +#. odoo-python +#: code:addons/sale_blanket_order/wizard/create_sale_orders.py:0 +#, python-format +msgid "You have to select lines from the same company." +msgstr "Sie müssen Zeilen desselben Unternehmens auswählen." + +#. module: sale_blanket_order +#. odoo-python +#: code:addons/sale_blanket_order/models/blanket_orders.py:0 +#, python-format +msgid "remaining" +msgstr "verbleibend" + +#~ msgid "Last Modified on" +#~ msgstr "Zuletzt geändert am" + +#~ msgid "Main Attachment" +#~ msgstr "Hauptanhang" + +#~ msgid "Number of messages which requires an action" +#~ msgstr "Anzahl der Nachrichten die eine Aktion erfordern" + +#~ msgid "Number of unread messages" +#~ msgstr "Anzahl ungelesener Nachrichten" + +#~ msgid "Unread Messages" +#~ msgstr "Ungelesene Nachrichten" + +#~ msgid "Unread Messages Counter" +#~ msgstr "Zähler für ungelesene Nachrichten" + +#~ msgid "Followers (Channels)" +#~ msgstr "Abonnenten (Kanäle)" + +#~ msgid "Sale Blanket Order Lines" +#~ msgstr "Rahmen Verkaufsauftragszeilen" + +#~ msgid "If checked new messages require your attention." +#~ msgstr "" +#~ "Wenn dieses Feld aktiviert ist, erfordern neue Nachrichten deine " +#~ "Aufmerksamtkeit." + +#~ msgid "Number of error" +#~ msgstr "Anzahl der Fehler" + +#~ msgid "Overdue" +#~ msgstr "Überfällig" + +#~ msgid "Planned" +#~ msgstr "Geplant" + +#~ msgid "Sale Order" +#~ msgstr "Verkaufsauftrag" + +#~ msgid "Today" +#~ msgstr "Heute" + +#~ msgid "" +#~ "You can not delete a blanket order with opened purchase orders! Try to " +#~ "cancel them before." +#~ msgstr "" +#~ "Sie können eine Rahmenbestellung mit offenen Bestellungen nicht löschen! " +#~ "Versuchen Sie, sie vorher zu stornieren." + +#~ msgid "You can not delete an open blanket order! Try to cancel it before." +#~ msgstr "" +#~ "Sie können eine offene Rahmenbestellung nicht löschen! Versuchen Sie, sie " +#~ "vorher zu stornieren." + +#~ msgid "Quotation" +#~ msgstr "Angebot" diff --git a/sale_blanket_order/i18n/es.po b/sale_blanket_order/i18n/es.po new file mode 100644 index 00000000000..d331eb5ea66 --- /dev/null +++ b/sale_blanket_order/i18n/es.po @@ -0,0 +1,1082 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * sale_blanket_order +# +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 13.0\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2021-02-13 12:38+0000\n" +"PO-Revision-Date: 2024-01-27 13:37+0000\n" +"Last-Translator: Ivorra78 \n" +"Language-Team: \n" +"Language: es\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=2; plural=n != 1;\n" +"X-Generator: Weblate 4.17\n" + +#. module: sale_blanket_order +#. odoo-python +#: code:addons/sale_blanket_order/models/blanket_orders.py:0 +#, python-format +msgid "" +"\n" +" You cannot change the type of a sale order line.\n" +" Instead you should delete the current line and create a " +"new line\n" +" of the proper type.\n" +" " +msgstr "" +"\n" +" No es posible modificar el tipo de línea de un pedido de " +"venta.\n" +" En su lugar, debe borrar la línea actual y crear una " +"nueva línea\n" +" del tipo adecuado.\n" +" " + +#. module: sale_blanket_order +#: model:ir.actions.report,print_report_name:sale_blanket_order.report_blanket_order +msgid "'Blanket Order - %s' % object.name" +msgstr "'Blanket Order - %s' % object.name" + +#. module: sale_blanket_order +#: model_terms:ir.ui.view,arch_db:sale_blanket_order.report_blanketorder_document +msgid "Blanket Order # " +msgstr "Programación # " + +#. module: sale_blanket_order +#: model_terms:ir.ui.view,arch_db:sale_blanket_order.report_blanketorder_document +msgid "Subtotal" +msgstr "Subtotal" + +#. module: sale_blanket_order +#: model_terms:ir.ui.view,arch_db:sale_blanket_order.report_blanketorder_document +msgid "Currency:" +msgstr "Moneda:" + +#. module: sale_blanket_order +#: model_terms:ir.ui.view,arch_db:sale_blanket_order.report_blanketorder_document +msgid "Salesperson:" +msgstr "Comercial:" + +#. module: sale_blanket_order +#: model_terms:ir.ui.view,arch_db:sale_blanket_order.report_blanketorder_document +msgid "Subtotal" +msgstr "Subtotal" + +#. module: sale_blanket_order +#: model_terms:ir.ui.view,arch_db:sale_blanket_order.report_blanketorder_document +msgid "Total" +msgstr "Total" + +#. module: sale_blanket_order +#: model_terms:ir.ui.view,arch_db:sale_blanket_order.report_blanketorder_document +msgid "Validity Date:" +msgstr "Fecha Validez:" + +#. module: sale_blanket_order +#: model_terms:ir.ui.view,arch_db:sale_blanket_order.report_blanketorder_document +msgid "Your Reference:" +msgstr "Su Referencia:" + +#. module: sale_blanket_order +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order__message_needaction +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order_line__message_needaction +msgid "Action Needed" +msgstr "Acción Necesaria" + +#. module: sale_blanket_order +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order__activity_ids +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order_line__activity_ids +msgid "Activities" +msgstr "Actividades" + +#. module: sale_blanket_order +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order__activity_exception_decoration +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order_line__activity_exception_decoration +msgid "Activity Exception Decoration" +msgstr "Decoración de Actividad de Excepción" + +#. module: sale_blanket_order +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order__activity_state +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order_line__activity_state +msgid "Activity State" +msgstr "Estado Actividad" + +#. module: sale_blanket_order +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order__activity_type_icon +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order_line__activity_type_icon +msgid "Activity Type Icon" +msgstr "Icono de Tipo de Actividad" + +#. module: sale_blanket_order +#: model_terms:ir.ui.view,arch_db:sale_blanket_order.view_blanket_order_form +msgid "Add a note" +msgstr "Añadir una nota" + +#. module: sale_blanket_order +#: model_terms:ir.ui.view,arch_db:sale_blanket_order.view_blanket_order_form +msgid "Add a product" +msgstr "Añadir un producto" + +#. module: sale_blanket_order +#: model_terms:ir.ui.view,arch_db:sale_blanket_order.view_blanket_order_form +msgid "Add a section" +msgstr "Añadir una sección" + +#. module: sale_blanket_order +#: model_terms:ir.ui.view,arch_db:sale_blanket_order.report_blanketorder_document +msgid "Amount" +msgstr "Importe" + +#. module: sale_blanket_order +#. odoo-python +#: code:addons/sale_blanket_order/wizard/create_sale_orders.py:0 +#, python-format +msgid "An order can't be empty" +msgstr "Un pedido no puede estar vacío" + +#. module: sale_blanket_order +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order__analytic_account_id +msgid "Analytic Account" +msgstr "Cuenta Analítica" + +#. module: sale_blanket_order +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order_line__analytic_distribution +msgid "Analytic Distribution" +msgstr "" + +#. module: sale_blanket_order +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order_line__analytic_distribution_search +msgid "Analytic Distribution Search" +msgstr "" + +#. module: sale_blanket_order +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order_line__analytic_precision +msgid "Analytic Precision" +msgstr "" + +#. module: sale_blanket_order +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order__message_attachment_count +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order_line__message_attachment_count +msgid "Attachment Count" +msgstr "Cuenta Adjunto" + +#. module: sale_blanket_order +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order_wizard_line__blanket_line_id +msgid "Blanket Line" +msgstr "Línea programada" + +#. module: sale_blanket_order +#: model:ir.actions.report,name:sale_blanket_order.report_blanket_order +#: model:ir.model,name:sale_blanket_order.model_sale_blanket_order +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order_wizard__blanket_order_id +#: model_terms:ir.ui.view,arch_db:sale_blanket_order.view_blanket_order_form +msgid "Blanket Order" +msgstr "Pedido Programado" + +#. module: sale_blanket_order +#: model:ir.model,name:sale_blanket_order.model_sale_blanket_order_line +msgid "Blanket Order Line" +msgstr "Línea de Pedido Programado" + +#. module: sale_blanket_order +#: model:ir.actions.act_window,name:sale_blanket_order.act_open_sale_blanket_order_lines_view_tree +#: model:ir.ui.menu,name:sale_blanket_order.menu_sale_blanket_order_line +msgid "Blanket Order Lines" +msgstr "Líneas de Pedido Programado" + +#. module: sale_blanket_order +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_order_line__blanket_order_line +msgid "Blanket Order line" +msgstr "Programación" + +#. module: sale_blanket_order +#: model:ir.actions.act_window,name:sale_blanket_order.act_open_blanket_order_view +#: model:ir.ui.menu,name:sale_blanket_order.menu_blanket_order_config +#: model_terms:ir.ui.view,arch_db:sale_blanket_order.sale_config_settings_form_view +msgid "Blanket Orders" +msgstr "Pedidos Programados" + +#. module: sale_blanket_order +#: model:ir.model,name:sale_blanket_order.model_sale_blanket_order_wizard +msgid "Blanket order wizard" +msgstr "Asistente de Pedido Programado" + +#. module: sale_blanket_order +#: model:ir.model,name:sale_blanket_order.model_sale_blanket_order_wizard_line +msgid "Blanket order wizard line" +msgstr "Línea asistente de pedido programado" + +#. module: sale_blanket_order +#. odoo-python +#: code:addons/sale_blanket_order/wizard/create_sale_orders.py:0 +#, python-format +msgid "" +"Can not create Sale Order from Blanket Order lines with different currencies" +msgstr "No puede crear un pedido desde una programación con monedas diferentes" + +#. module: sale_blanket_order +#: model_terms:ir.ui.view,arch_db:sale_blanket_order.view_blanket_order_form +#: model_terms:ir.ui.view,arch_db:sale_blanket_order.view_create_sale_order +msgid "Cancel" +msgstr "Cancelar" + +#. module: sale_blanket_order +#. odoo-python +#: code:addons/sale_blanket_order/models/sale_orders.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: sale_blanket_order +#: model_terms:ir.actions.act_window,help:sale_blanket_order.act_open_blanket_order_view +msgid "" +"Click to create a blanket order that can be converted into a sale order." +msgstr "" +"Click para crear una pedido programado que puede ser convertido en un pedido " +"de venta." + +#. module: sale_blanket_order +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order__company_id +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order_line__company_id +msgid "Company" +msgstr "Empresa" + +#. module: sale_blanket_order +#: model:ir.model,name:sale_blanket_order.model_res_config_settings +msgid "Config Settings" +msgstr "Opciones de Configuración" + +#. module: sale_blanket_order +#: model_terms:ir.ui.view,arch_db:sale_blanket_order.view_blanket_order_form +msgid "Confirm" +msgstr "Confirmar" + +#. module: sale_blanket_order +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order__confirmed +msgid "Confirmed" +msgstr "Confirmado" + +#. module: sale_blanket_order +#: model:ir.actions.act_window,name:sale_blanket_order.action_create_sale_order +#: model_terms:ir.ui.view,arch_db:sale_blanket_order.view_blanket_order_form +#: model_terms:ir.ui.view,arch_db:sale_blanket_order.view_create_sale_order +msgid "Create Sale Order" +msgstr "Crear Pedido" + +#. module: sale_blanket_order +#: model_terms:ir.ui.view,arch_db:sale_blanket_order.view_create_sale_order +msgid "Create and View Order" +msgstr "Crear y ver Pedido" + +#. module: sale_blanket_order +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order__create_uid +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order_line__create_uid +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order_wizard__create_uid +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order_wizard_line__create_uid +msgid "Created by" +msgstr "Creado por" + +#. module: sale_blanket_order +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order__create_date +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order_line__create_date +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order_wizard__create_date +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order_wizard_line__create_date +msgid "Created on" +msgstr "Creado en" + +#. module: sale_blanket_order +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order__currency_id +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order_line__currency_id +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order_wizard_line__currency_id +msgid "Currency" +msgstr "Moneda" + +#. module: sale_blanket_order +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order_line__partner_id +msgid "Customer" +msgstr "Cliente" + +#. module: sale_blanket_order +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order__client_order_ref +msgid "Customer Reference" +msgstr "Expediente del Cliente" + +#. module: sale_blanket_order +#. odoo-python +#: code:addons/sale_blanket_order/models/blanket_orders.py:0 +#, python-format +msgid "Date Scheduled" +msgstr "Fecha prevista" + +#. module: sale_blanket_order +#: model_terms:ir.ui.view,arch_db:sale_blanket_order.view_blanket_order_search +msgid "Delivered Qty" +msgstr "Ctdad entregada" + +#. module: sale_blanket_order +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order__delivered_uom_qty +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order_line__delivered_uom_qty +msgid "Delivered quantity" +msgstr "Cantidad entregada" + +#. module: sale_blanket_order +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order_line__name +msgid "Description" +msgstr "Descripción" + +#. module: sale_blanket_order +#: model:ir.model.fields,field_description:sale_blanket_order.field_res_config_settings__group_blanket_disable_adding_lines +msgid "Disable adding more lines to SOs" +msgstr "Desactivar añadir más líneas a Pedidos" + +#. module: sale_blanket_order +#: model:res.groups,name:sale_blanket_order.blanket_orders_disable_adding_lines +#: model_terms:ir.ui.view,arch_db:sale_blanket_order.sale_config_settings_form_view +msgid "Disable adding more lines to SOs from Blanket Orders" +msgstr "Desactivar añadir más líneas a Pedidos desde Programaciones" + +#. module: sale_blanket_order +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order__display_name +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order_line__display_name +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order_wizard__display_name +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order_wizard_line__display_name +msgid "Display Name" +msgstr "Nombre mostrado" + +#. module: sale_blanket_order +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order_line__display_type +msgid "Display Type" +msgstr "Mostrar Tipo" + +#. module: sale_blanket_order +#: model:ir.model.fields.selection,name:sale_blanket_order.selection__sale_blanket_order__state__done +msgid "Done" +msgstr "Hecho" + +#. module: sale_blanket_order +#: model:ir.model.fields.selection,name:sale_blanket_order.selection__sale_blanket_order__state__draft +msgid "Draft" +msgstr "Borrador" + +#. module: sale_blanket_order +#: model:ir.actions.server,name:sale_blanket_order.expired_blanket_orders_cron_ir_actions_server +msgid "Expire Blanket Orders" +msgstr "Expirar Programaciones" + +#. module: sale_blanket_order +#: model:ir.model.fields.selection,name:sale_blanket_order.selection__sale_blanket_order__state__expired +msgid "Expired" +msgstr "Expirado" + +#. module: sale_blanket_order +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order__fiscal_position_id +msgid "Fiscal Position" +msgstr "Posición Fiscal" + +#. module: sale_blanket_order +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order__message_follower_ids +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order_line__message_follower_ids +msgid "Followers" +msgstr "Seguidores" + +#. module: sale_blanket_order +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order__message_partner_ids +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order_line__message_partner_ids +msgid "Followers (Partners)" +msgstr "Seguidores (contactos)" + +#. module: sale_blanket_order +#: model:ir.model.fields,help:sale_blanket_order.field_sale_blanket_order__activity_type_icon +#: model:ir.model.fields,help:sale_blanket_order.field_sale_blanket_order_line__activity_type_icon +msgid "Font awesome icon e.g. fa-tasks" +msgstr "Fuente iconos sorprendentes p.e fa-tasks" + +#. module: sale_blanket_order +#: model:ir.model.constraint,message:sale_blanket_order.constraint_sale_blanket_order_line_non_accountable_null_fields +msgid "Forbidden values on non-accountable sale order line" +msgstr "Valores prohibidos en la línea de pedido de venta no contable" + +#. module: sale_blanket_order +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order__has_message +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order_line__has_message +msgid "Has Message" +msgstr "Tiene Mensaje" + +#. module: sale_blanket_order +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order__id +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order_line__id +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order_wizard__id +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order_wizard_line__id +msgid "ID" +msgstr "ID" + +#. module: sale_blanket_order +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order__activity_exception_icon +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order_line__activity_exception_icon +msgid "Icon" +msgstr "Icono" + +#. module: sale_blanket_order +#: model:ir.model.fields,help:sale_blanket_order.field_sale_blanket_order__activity_exception_icon +#: model:ir.model.fields,help:sale_blanket_order.field_sale_blanket_order_line__activity_exception_icon +msgid "Icon to indicate an exception activity." +msgstr "Icono para indicar la excepción de actividad." + +#. module: sale_blanket_order +#: model:ir.model.fields,help:sale_blanket_order.field_sale_blanket_order__message_needaction +#: model:ir.model.fields,help:sale_blanket_order.field_sale_blanket_order_line__message_needaction +msgid "If checked, new messages require your attention." +msgstr "Si activo, los nuevos mensajes requieren su atención." + +#. module: sale_blanket_order +#: model:ir.model.fields,help:sale_blanket_order.field_sale_blanket_order__message_has_error +#: model:ir.model.fields,help:sale_blanket_order.field_sale_blanket_order_line__message_has_error +msgid "If checked, some messages have a delivery error." +msgstr "Si activo, algunos mensajes tienen error de entrega." + +#. module: sale_blanket_order +#: model_terms:ir.ui.view,arch_db:sale_blanket_order.view_blanket_order_search +msgid "Invoiced Qty" +msgstr "Ctdad facturada" + +#. module: sale_blanket_order +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order__invoiced_uom_qty +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order_line__invoiced_uom_qty +msgid "Invoiced quantity" +msgstr "Cantidad facturada" + +#. module: sale_blanket_order +#: model_terms:ir.ui.view,arch_db:sale_blanket_order.view_blanket_order_form +msgid "Invoicing" +msgstr "Facturación" + +#. module: sale_blanket_order +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order__message_is_follower +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order_line__message_is_follower +msgid "Is Follower" +msgstr "Es seguidor" + +#. module: sale_blanket_order +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order__write_uid +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order_line__write_uid +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order_wizard__write_uid +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order_wizard_line__write_uid +msgid "Last Updated by" +msgstr "Ultima actualización por" + +#. module: sale_blanket_order +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order__write_date +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order_line__write_date +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order_wizard__write_date +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order_wizard_line__write_date +msgid "Last Updated on" +msgstr "Ultima actualización" + +#. module: sale_blanket_order +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order_wizard__line_ids +#: model_terms:ir.ui.view,arch_db:sale_blanket_order.view_blanket_order_form +msgid "Lines" +msgstr "Líneas" + +#. module: sale_blanket_order +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order__message_has_error +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order_line__message_has_error +msgid "Message Delivery error" +msgstr "Error de entrega de mensaje" + +#. module: sale_blanket_order +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order__message_ids +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order_line__message_ids +msgid "Messages" +msgstr "Mensajes" + +#. module: sale_blanket_order +#: model:ir.model.constraint,message:sale_blanket_order.constraint_sale_blanket_order_line_accountable_required_fields +msgid "Missing required fields on accountable sale order line." +msgstr "Faltan campos obligatorios en la línea de pedido de venta contable." + +#. module: sale_blanket_order +#. odoo-python +#: code:addons/sale_blanket_order/models/blanket_orders.py:0 +#, python-format +msgid "Must have some lines" +msgstr "Debe tener alguna línea" + +#. module: sale_blanket_order +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order__my_activity_date_deadline +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order_line__my_activity_date_deadline +msgid "My Activity Deadline" +msgstr "Fecha Límite de Mi Actividad" + +#. module: sale_blanket_order +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order__name +msgid "Name" +msgstr "Nombre" + +#. module: sale_blanket_order +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order__activity_date_deadline +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order_line__activity_date_deadline +msgid "Next Activity Deadline" +msgstr "Fecha límite próxima actividad" + +#. module: sale_blanket_order +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order__activity_summary +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order_line__activity_summary +msgid "Next Activity Summary" +msgstr "Resúmen próxima actividad" + +#. module: sale_blanket_order +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order__activity_type_id +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order_line__activity_type_id +msgid "Next Activity Type" +msgstr "Tipo próxima actividad" + +#. module: sale_blanket_order +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order__note +#: model:ir.model.fields.selection,name:sale_blanket_order.selection__sale_blanket_order_line__display_type__line_note +msgid "Note" +msgstr "Nota" + +#. module: sale_blanket_order +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order__message_needaction_counter +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order_line__message_needaction_counter +msgid "Number of Actions" +msgstr "Número de acciones" + +#. module: sale_blanket_order +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order__message_has_error_counter +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order_line__message_has_error_counter +msgid "Number of errors" +msgstr "Número de errores" + +#. module: sale_blanket_order +#: model:ir.model.fields,help:sale_blanket_order.field_sale_blanket_order__message_needaction_counter +#: model:ir.model.fields,help:sale_blanket_order.field_sale_blanket_order_line__message_needaction_counter +msgid "Number of messages requiring action" +msgstr "" + +#. module: sale_blanket_order +#: model:ir.model.fields,help:sale_blanket_order.field_sale_blanket_order__message_has_error_counter +#: model:ir.model.fields,help:sale_blanket_order.field_sale_blanket_order_line__message_has_error_counter +msgid "Number of messages with delivery error" +msgstr "Número de mensajes con error de entrega" + +#. module: sale_blanket_order +#: model:ir.model.fields.selection,name:sale_blanket_order.selection__sale_blanket_order__state__open +#: model_terms:ir.ui.view,arch_db:sale_blanket_order.view_blanket_order_search +msgid "Open" +msgstr "Abierto" + +#. module: sale_blanket_order +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order_line__order_id +msgid "Order" +msgstr "Pedido" + +#. module: sale_blanket_order +#: model_terms:ir.ui.view,arch_db:sale_blanket_order.view_blanket_order_form +msgid "Order Lines" +msgstr "Líneas de pedido" + +#. module: sale_blanket_order +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order__line_ids +msgid "Order lines" +msgstr "Líneas de pedido" + +#. module: sale_blanket_order +#: model_terms:ir.ui.view,arch_db:sale_blanket_order.view_blanket_order_search +msgid "Ordered Qty" +msgstr "Ctdad pedida" + +#. module: sale_blanket_order +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order__ordered_uom_qty +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order_line__ordered_uom_qty +msgid "Ordered quantity" +msgstr "Cantidad pedida" + +#. module: sale_blanket_order +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_order__blanket_order_id +msgid "Origin blanket order" +msgstr "Programación orígen" + +#. module: sale_blanket_order +#: model_terms:ir.ui.view,arch_db:sale_blanket_order.report_blanketorder_document +#: model_terms:ir.ui.view,arch_db:sale_blanket_order.sale_blanket_order_line_tree +#: model_terms:ir.ui.view,arch_db:sale_blanket_order.view_blanket_order_form +#: model_terms:ir.ui.view,arch_db:sale_blanket_order.view_blanket_order_search +msgid "Original Qty" +msgstr "Ctdad original" + +#. module: sale_blanket_order +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order__original_uom_qty +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order_line__original_uom_qty +msgid "Original quantity" +msgstr "Cantidad original" + +#. module: sale_blanket_order +#: model_terms:ir.ui.view,arch_db:sale_blanket_order.view_blanket_order_form +msgid "Other Information" +msgstr "Otra Información" + +#. module: sale_blanket_order +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order__partner_id +msgid "Partner" +msgstr "Cliente" + +#. module: sale_blanket_order +#. odoo-python +#: code:addons/sale_blanket_order/models/blanket_orders.py:0 +#, python-format +msgid "Partner is mandatory" +msgstr "Es obligatorio el cliente" + +#. module: sale_blanket_order +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order__payment_term_id +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order_line__payment_term_id +msgid "Payment Terms" +msgstr "Modo de pago" + +#. module: sale_blanket_order +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order_line__price_unit +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order_wizard_line__price_unit +msgid "Price" +msgstr "Precio" + +#. module: sale_blanket_order +#. odoo-python +#: code:addons/sale_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: sale_blanket_order +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order__pricelist_id +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order_line__pricelist_id +msgid "Pricelist" +msgstr "Tarifa" + +#. module: sale_blanket_order +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order_line__pricelist_item_id +msgid "Pricelist Item" +msgstr "" + +#. module: sale_blanket_order +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order__product_id +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order_line__product_id +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order_wizard_line__product_id +#: model_terms:ir.ui.view,arch_db:sale_blanket_order.report_blanketorder_document +msgid "Product" +msgstr "Producto" + +#. module: sale_blanket_order +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order_wizard__sale_order_id +msgid "Purchase Order" +msgstr "Pedido de compra" + +#. module: sale_blanket_order +#. odoo-python +#: code:addons/sale_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: sale_blanket_order +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order_wizard_line__qty +msgid "Quantity to Order" +msgstr "Cantidad pedida" + +#. module: sale_blanket_order +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order__rating_ids +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order_line__rating_ids +msgid "Ratings" +msgstr "" + +#. module: sale_blanket_order +#: model_terms:ir.ui.view,arch_db:sale_blanket_order.view_blanket_order_search +msgid "Remaining Qty" +msgstr "Ctdad restante" + +#. module: sale_blanket_order +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order__remaining_uom_qty +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order_line__remaining_uom_qty +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order_wizard_line__remaining_uom_qty +msgid "Remaining quantity" +msgstr "Cantidad restante" + +#. module: sale_blanket_order +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order_line__remaining_qty +msgid "Remaining quantity in base UoM" +msgstr "Cantidad restante en base UdM" + +#. module: sale_blanket_order +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order_line__user_id +msgid "Responsible" +msgstr "Responsable" + +#. module: sale_blanket_order +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order__activity_user_id +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order_line__activity_user_id +msgid "Responsible User" +msgstr "Usuario responsable" + +#. module: sale_blanket_order +#. odoo-python +#: code:addons/sale_blanket_order/wizard/create_sale_orders.py:0 +#, python-format +msgid "Sale Blanket Order %s is not open" +msgstr "La programación %s no está abierta" + +#. module: sale_blanket_order +#: model_terms:ir.ui.view,arch_db:sale_blanket_order.sale_blanket_order_line_form +msgid "Sale Blanket Order Line" +msgstr "Línea de Programación de Venta" + +#. module: sale_blanket_order +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order__line_count +msgid "Sale Blanket Order Line count" +msgstr "Contador de línea de programación de venta" + +#. module: sale_blanket_order +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order__sale_count +msgid "Sale Count" +msgstr "Contador de Venta" + +#. module: sale_blanket_order +#: model_terms:ir.ui.view,arch_db:sale_blanket_order.sale_blanket_order_line_form +msgid "Sale Order Lines" +msgstr "Líneas de pedido de cliente" + +#. module: sale_blanket_order +#: model_terms:ir.ui.view,arch_db:sale_blanket_order.view_blanket_order_form +msgid "Sale Orders" +msgstr "Pedidos de cliente" + +#. module: sale_blanket_order +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order_line__sale_lines +msgid "Sale order lines" +msgstr "Líneas de pedido de cliente" + +#. module: sale_blanket_order +#: model_terms:ir.ui.view,arch_db:sale_blanket_order.view_blanket_order_form +msgid "Sales Information" +msgstr "Información de Venta" + +#. module: sale_blanket_order +#: model:ir.model,name:sale_blanket_order.model_sale_order +msgid "Sales Order" +msgstr "Pedido de venta" + +#. module: sale_blanket_order +#: model:ir.model,name:sale_blanket_order.model_sale_order_line +msgid "Sales Order Line" +msgstr "Línea de pedido de venta" + +#. module: sale_blanket_order +#. odoo-python +#: code:addons/sale_blanket_order/wizard/create_sale_orders.py:0 +#, python-format +msgid "Sales Orders" +msgstr "Pedidos de clientes" + +#. module: sale_blanket_order +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order__team_id +msgid "Sales Team" +msgstr "Equipo de Venta" + +#. module: sale_blanket_order +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order__user_id +msgid "Salesperson" +msgstr "Comercial" + +#. module: sale_blanket_order +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order_line__date_schedule +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order_wizard_line__date_schedule +#: model_terms:ir.ui.view,arch_db:sale_blanket_order.report_blanketorder_document +msgid "Scheduled Date" +msgstr "Fecha programada" + +#. module: sale_blanket_order +#: model_terms:ir.ui.view,arch_db:sale_blanket_order.sale_blanket_order_line_search +msgid "Search Sale Blanket Order Line" +msgstr "Búsqueda de línea de pedido programado" + +#. module: sale_blanket_order +#: model:ir.model.fields.selection,name:sale_blanket_order.selection__sale_blanket_order_line__display_type__line_section +msgid "Section" +msgstr "Sección" + +#. module: sale_blanket_order +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order_line__sequence +msgid "Sequence" +msgstr "Secuencia" + +#. module: sale_blanket_order +#: model_terms:ir.ui.view,arch_db:sale_blanket_order.view_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: sale_blanket_order +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order__state +msgid "State" +msgstr "Estado" + +#. module: sale_blanket_order +#: model:ir.model.fields,help:sale_blanket_order.field_sale_blanket_order__activity_state +#: model:ir.model.fields,help:sale_blanket_order.field_sale_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 "" +"Estado basado en actividades\n" +"Atrasado: la fecha de vencimiento ya pasó\n" +"Hoy: la fecha de la actividad es hoy\n" +"Programado: actividades futuras." + +#. module: sale_blanket_order +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order_line__price_subtotal +msgid "Subtotal" +msgstr "Subtotal" + +#. module: sale_blanket_order +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order_line__price_tax +msgid "Tax" +msgstr "Impuesto" + +#. module: sale_blanket_order +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order__amount_tax +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order_line__taxes_id +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order_wizard_line__taxes_id +#: model_terms:ir.ui.view,arch_db:sale_blanket_order.report_blanketorder_document +msgid "Taxes" +msgstr "Impuestos" + +#. module: sale_blanket_order +#: model:ir.model.fields,help:sale_blanket_order.field_sale_blanket_order_line__display_type +msgid "Technical field for UX purpose." +msgstr "Campo técnico con fines de UX." + +#. module: sale_blanket_order +#: model_terms:ir.ui.view,arch_db:sale_blanket_order.view_blanket_order_form +msgid "Terms and Conditions" +msgstr "Términos y Condiciones" + +#. module: sale_blanket_order +#. odoo-python +#: code:addons/sale_blanket_order/models/sale_orders.py:0 +#, python-format +msgid "" +"The currency of the blanket order must match with that of the sale order." +msgstr "" +"La moneda de la programación debe coincidir con la del pedido de venta." + +#. module: sale_blanket_order +#. odoo-python +#: code:addons/sale_blanket_order/models/sale_orders.py:0 +#, python-format +msgid "The customer must be equal to the blanket order lines customer" +msgstr "" +"El cliente debe ser igual al cliente de las líneas del pedido programado" + +#. module: sale_blanket_order +#. odoo-python +#: code:addons/sale_blanket_order/models/sale_orders.py:0 +#, python-format +msgid "The product in the blanket order and in the sales order must match" +msgstr "" +"El producto en el pedido programado y el del pedido de venta deben coincidir" + +#. module: sale_blanket_order +#. odoo-python +#: code:addons/sale_blanket_order/wizard/create_sale_orders.py:0 +#, python-format +msgid "The sale has already been completed." +msgstr "Esta venta ya ha sido completada." + +#. module: sale_blanket_order +#: model_terms:ir.ui.view,arch_db:sale_blanket_order.view_blanket_order_form +msgid "To Draft" +msgstr "A Borrador" + +#. module: sale_blanket_order +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order__amount_total +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order_line__price_total +msgid "Total" +msgstr "Total" + +#. module: sale_blanket_order +#: model:ir.model.fields,help:sale_blanket_order.field_sale_blanket_order__activity_exception_decoration +#: model:ir.model.fields,help:sale_blanket_order.field_sale_blanket_order_line__activity_exception_decoration +msgid "Type of the exception activity on record." +msgstr "Tipo de actividad excepcional registrada." + +#. module: sale_blanket_order +#: model_terms:ir.ui.view,arch_db:sale_blanket_order.report_blanketorder_document +msgid "Unit Price" +msgstr "Precio unitario" + +#. module: sale_blanket_order +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order_line__product_uom +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order_wizard_line__product_uom +msgid "Unit of Measure" +msgstr "Unidad de Medida" + +#. module: sale_blanket_order +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order__amount_untaxed +msgid "Untaxed Amount" +msgstr "Base imponible" + +#. module: sale_blanket_order +#: model_terms:ir.actions.act_window,help:sale_blanket_order.act_open_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 customer, " +"control\n" +" the products delivered and control the vendor bills." +msgstr "" +"Use este menú para buscar dentro de los pedidos programados. Para cada " +"programación,\n" +" puede seguir la conversación relacionada con el cliente, " +"controlar\n" +" los productos entregados y las facturas a cliente." + +#. module: sale_blanket_order +#: model_terms:ir.ui.view,arch_db:sale_blanket_order.report_blanketorder_document +msgid "VAT:" +msgstr "IVA:" + +#. module: sale_blanket_order +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order__validity_date +msgid "Validity Date" +msgstr "Fecha de validez" + +#. module: sale_blanket_order +#. odoo-python +#: code:addons/sale_blanket_order/models/blanket_orders.py:0 +#, python-format +msgid "Validity date is mandatory" +msgstr "La fecha de validez es obligatoria" + +#. module: sale_blanket_order +#. odoo-python +#: code:addons/sale_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: sale_blanket_order +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order_wizard_line__partner_id +msgid "Vendor" +msgstr "Cliente" + +#. module: sale_blanket_order +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order__website_message_ids +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order_line__website_message_ids +msgid "Website Messages" +msgstr "Mensajes en el sitio web" + +#. module: sale_blanket_order +#: model:ir.model.fields,help:sale_blanket_order.field_sale_blanket_order__website_message_ids +#: model:ir.model.fields,help:sale_blanket_order.field_sale_blanket_order_line__website_message_ids +msgid "Website communication history" +msgstr "Historial de comunicación en el sitio web" + +#. module: sale_blanket_order +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order_wizard_line__wizard_id +msgid "Wizard" +msgstr "Asistente" + +#. module: sale_blanket_order +#. odoo-python +#: code:addons/sale_blanket_order/models/blanket_orders.py:0 +#, python-format +msgid "" +"You can not delete a blanket order with opened sale orders! Try to cancel " +"them before." +msgstr "" +"¡No se puede eliminar una programación de venta con órdenes de venta " +"abiertas! Intente cancelarlas antes." + +#. module: sale_blanket_order +#. odoo-python +#: code:addons/sale_blanket_order/models/blanket_orders.py:0 +#, python-format +msgid "" +"You can not delete an open blanket or with active sale orders! Try to cancel " +"it before." +msgstr "" +"¡No se puede eliminar una programación de venta abierta o con órdenes de " +"venta activas! Intente cancelarlas antes." + +#. module: sale_blanket_order +#. odoo-python +#: code:addons/sale_blanket_order/wizard/create_sale_orders.py:0 +#, python-format +msgid "You can't create a sale order from an expired blanket order!" +msgstr "" +"¡No puede crear un pedido de venta a partir de un pedido programado vencido!" + +#. module: sale_blanket_order +#. odoo-python +#: code:addons/sale_blanket_order/wizard/create_sale_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: sale_blanket_order +#. odoo-python +#: code:addons/sale_blanket_order/wizard/create_sale_orders.py:0 +#, python-format +msgid "You have to select lines from the same company." +msgstr "Tiene que seleccionar líneas desde la misma compañía." + +#. module: sale_blanket_order +#. odoo-python +#: code:addons/sale_blanket_order/models/blanket_orders.py:0 +#, python-format +msgid "remaining" +msgstr "restante" + +#~ msgid "Analytic Tags" +#~ msgstr "Etiquetas Analíticas" + +#~ msgid "Last Modified on" +#~ msgstr "Ultima modificación" + +#~ msgid "Main Attachment" +#~ msgstr "Adjunto principal" + +#~ msgid "Next Activity Calendar Event" +#~ msgstr "Próximo Evento del Calendario de Actividades" + +#~ msgid "Number of messages which requires an action" +#~ msgstr "Número de mensajes que requieren una acción" + +#~ msgid "Number of unread messages" +#~ msgstr "Número de mensajes no leídos" + +#~ msgid "SMS Delivery error" +#~ msgstr "Error entrega SMS" + +#~ msgid "Unread Messages" +#~ msgstr "Mensajes no leídos" + +#~ msgid "Unread Messages Counter" +#~ msgstr "Contador de mensajes no leídos" + +#~ msgid "Followers (Channels)" +#~ msgstr "Seguidores (canales)" + +#~ msgid "Sale Blanket Order Lines" +#~ msgstr "Líneas de programación de venta" diff --git a/sale_blanket_order/i18n/fr.po b/sale_blanket_order/i18n/fr.po new file mode 100644 index 00000000000..f8d17cd4280 --- /dev/null +++ b/sale_blanket_order/i18n/fr.po @@ -0,0 +1,1073 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * sale_blanket_order +# +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 15.0\n" +"Report-Msgid-Bugs-To: \n" +"PO-Revision-Date: 2022-09-16 09:05+0000\n" +"Last-Translator: ClementChaumienneC2C \n" +"Language-Team: none\n" +"Language: fr\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: \n" +"Plural-Forms: nplurals=2; plural=n > 1;\n" +"X-Generator: Weblate 4.3.2\n" + +#. module: sale_blanket_order +#. odoo-python +#: code:addons/sale_blanket_order/models/blanket_orders.py:0 +#, python-format +msgid "" +"\n" +" You cannot change the type of a sale order line.\n" +" Instead you should delete the current line and create a " +"new line\n" +" of the proper type.\n" +" " +msgstr "" +"\n" +" Vous ne pouvez pas changer le type de la ligne de " +"commande de vente.\n" +" Vous devriez plutôt effacer la ligne actuelle et en " +"recréer une nouvelle\n" +" du bon type.\n" +" " + +#. module: sale_blanket_order +#: model:ir.actions.report,print_report_name:sale_blanket_order.report_blanket_order +msgid "'Blanket Order - %s' % object.name" +msgstr "'Soumission - %s' % object.name" + +#. module: sale_blanket_order +#: model_terms:ir.ui.view,arch_db:sale_blanket_order.report_blanketorder_document +msgid "Blanket Order # " +msgstr "Soumission # " + +#. module: sale_blanket_order +#: model_terms:ir.ui.view,arch_db:sale_blanket_order.report_blanketorder_document +msgid "Subtotal" +msgstr "Sous-total" + +#. module: sale_blanket_order +#: model_terms:ir.ui.view,arch_db:sale_blanket_order.report_blanketorder_document +msgid "Currency:" +msgstr "Devise :" + +#. module: sale_blanket_order +#: model_terms:ir.ui.view,arch_db:sale_blanket_order.report_blanketorder_document +msgid "Salesperson:" +msgstr "Vendeur:" + +#. module: sale_blanket_order +#: model_terms:ir.ui.view,arch_db:sale_blanket_order.report_blanketorder_document +msgid "Subtotal" +msgstr "Sous total" + +#. module: sale_blanket_order +#: model_terms:ir.ui.view,arch_db:sale_blanket_order.report_blanketorder_document +msgid "Total" +msgstr "Total" + +#. module: sale_blanket_order +#: model_terms:ir.ui.view,arch_db:sale_blanket_order.report_blanketorder_document +msgid "Validity Date:" +msgstr "Expiration:" + +#. module: sale_blanket_order +#: model_terms:ir.ui.view,arch_db:sale_blanket_order.report_blanketorder_document +msgid "Your Reference:" +msgstr "Votre Référence:" + +#. module: sale_blanket_order +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order__message_needaction +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order_line__message_needaction +msgid "Action Needed" +msgstr "Action requise" + +#. module: sale_blanket_order +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order__activity_ids +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order_line__activity_ids +msgid "Activities" +msgstr "Activités" + +#. module: sale_blanket_order +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order__activity_exception_decoration +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order_line__activity_exception_decoration +msgid "Activity Exception Decoration" +msgstr "Symbole Exception Activité" + +#. module: sale_blanket_order +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order__activity_state +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order_line__activity_state +msgid "Activity State" +msgstr "Statut Activité" + +#. module: sale_blanket_order +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order__activity_type_icon +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order_line__activity_type_icon +msgid "Activity Type Icon" +msgstr "Type d'icône activité" + +#. module: sale_blanket_order +#: model_terms:ir.ui.view,arch_db:sale_blanket_order.view_blanket_order_form +msgid "Add a note" +msgstr "Ajouter une note" + +#. module: sale_blanket_order +#: model_terms:ir.ui.view,arch_db:sale_blanket_order.view_blanket_order_form +msgid "Add a product" +msgstr "Ajouter un produit" + +#. module: sale_blanket_order +#: model_terms:ir.ui.view,arch_db:sale_blanket_order.view_blanket_order_form +msgid "Add a section" +msgstr "Ajouter une section" + +#. module: sale_blanket_order +#: model_terms:ir.ui.view,arch_db:sale_blanket_order.report_blanketorder_document +msgid "Amount" +msgstr "Montant" + +#. module: sale_blanket_order +#. odoo-python +#: code:addons/sale_blanket_order/wizard/create_sale_orders.py:0 +#, python-format +msgid "An order can't be empty" +msgstr "Un document de vente ne peut pas être vide" + +#. module: sale_blanket_order +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order__analytic_account_id +msgid "Analytic Account" +msgstr "Compte Analytique" + +#. module: sale_blanket_order +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order_line__analytic_distribution +msgid "Analytic Distribution" +msgstr "" + +#. module: sale_blanket_order +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order_line__analytic_distribution_search +msgid "Analytic Distribution Search" +msgstr "" + +#. module: sale_blanket_order +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order_line__analytic_precision +msgid "Analytic Precision" +msgstr "" + +#. module: sale_blanket_order +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order__message_attachment_count +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order_line__message_attachment_count +msgid "Attachment Count" +msgstr "Compteur Pièce jointe" + +#. module: sale_blanket_order +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order_wizard_line__blanket_line_id +msgid "Blanket Line" +msgstr "Ligne de soumission" + +#. module: sale_blanket_order +#: model:ir.actions.report,name:sale_blanket_order.report_blanket_order +#: model:ir.model,name:sale_blanket_order.model_sale_blanket_order +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order_wizard__blanket_order_id +#: model_terms:ir.ui.view,arch_db:sale_blanket_order.view_blanket_order_form +msgid "Blanket Order" +msgstr "Soumission" + +#. module: sale_blanket_order +#: model:ir.model,name:sale_blanket_order.model_sale_blanket_order_line +msgid "Blanket Order Line" +msgstr "Ligne de soumission" + +#. module: sale_blanket_order +#: model:ir.actions.act_window,name:sale_blanket_order.act_open_sale_blanket_order_lines_view_tree +#: model:ir.ui.menu,name:sale_blanket_order.menu_sale_blanket_order_line +msgid "Blanket Order Lines" +msgstr "Ligne de soumission" + +#. module: sale_blanket_order +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_order_line__blanket_order_line +msgid "Blanket Order line" +msgstr "Ligne de soumission" + +#. module: sale_blanket_order +#: model:ir.actions.act_window,name:sale_blanket_order.act_open_blanket_order_view +#: model:ir.ui.menu,name:sale_blanket_order.menu_blanket_order_config +#: model_terms:ir.ui.view,arch_db:sale_blanket_order.sale_config_settings_form_view +msgid "Blanket Orders" +msgstr "Soumissions" + +#. module: sale_blanket_order +#: model:ir.model,name:sale_blanket_order.model_sale_blanket_order_wizard +msgid "Blanket order wizard" +msgstr "Wizard soumission" + +#. module: sale_blanket_order +#: model:ir.model,name:sale_blanket_order.model_sale_blanket_order_wizard_line +msgid "Blanket order wizard line" +msgstr "Wizard Ligne Soumission" + +#. module: sale_blanket_order +#. odoo-python +#: code:addons/sale_blanket_order/wizard/create_sale_orders.py:0 +#, python-format +msgid "" +"Can not create Sale Order from Blanket Order lines with different currencies" +msgstr "" +"Il n'est pas possible de créer une commande de vente depuis une soumission " +"avec plusieurs devises" + +#. module: sale_blanket_order +#: model_terms:ir.ui.view,arch_db:sale_blanket_order.view_blanket_order_form +#: model_terms:ir.ui.view,arch_db:sale_blanket_order.view_create_sale_order +msgid "Cancel" +msgstr "Annuler" + +#. module: sale_blanket_order +#. odoo-python +#: code:addons/sale_blanket_order/models/sale_orders.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 "" +"La commande%s ne peut pas être confirmée car elle fait référence à une " +"soumission qui n'a pas de quantité restante." + +#. module: sale_blanket_order +#: model_terms:ir.actions.act_window,help:sale_blanket_order.act_open_blanket_order_view +msgid "" +"Click to create a blanket order that can be converted into a sale order." +msgstr "" +"Cliquez pour créer une soumission pouvant être convertie en commande de " +"vente." + +#. module: sale_blanket_order +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order__company_id +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order_line__company_id +msgid "Company" +msgstr "Société" + +#. module: sale_blanket_order +#: model:ir.model,name:sale_blanket_order.model_res_config_settings +msgid "Config Settings" +msgstr "Paramètres" + +#. module: sale_blanket_order +#: model_terms:ir.ui.view,arch_db:sale_blanket_order.view_blanket_order_form +msgid "Confirm" +msgstr "Confirmer" + +#. module: sale_blanket_order +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order__confirmed +msgid "Confirmed" +msgstr "Confirmé" + +#. module: sale_blanket_order +#: model:ir.actions.act_window,name:sale_blanket_order.action_create_sale_order +#: model_terms:ir.ui.view,arch_db:sale_blanket_order.view_blanket_order_form +#: model_terms:ir.ui.view,arch_db:sale_blanket_order.view_create_sale_order +msgid "Create Sale Order" +msgstr "Créer Commande de Vente" + +#. module: sale_blanket_order +#: model_terms:ir.ui.view,arch_db:sale_blanket_order.view_create_sale_order +msgid "Create and View Order" +msgstr "Créer et visualiser Commande de vente" + +#. module: sale_blanket_order +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order__create_uid +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order_line__create_uid +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order_wizard__create_uid +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order_wizard_line__create_uid +msgid "Created by" +msgstr "Crée par" + +#. module: sale_blanket_order +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order__create_date +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order_line__create_date +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order_wizard__create_date +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order_wizard_line__create_date +msgid "Created on" +msgstr "Crée le" + +#. module: sale_blanket_order +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order__currency_id +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order_line__currency_id +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order_wizard_line__currency_id +msgid "Currency" +msgstr "Devise" + +#. module: sale_blanket_order +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order_line__partner_id +msgid "Customer" +msgstr "Client" + +#. module: sale_blanket_order +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order__client_order_ref +msgid "Customer Reference" +msgstr "Référence Client" + +#. module: sale_blanket_order +#. odoo-python +#: code:addons/sale_blanket_order/models/blanket_orders.py:0 +#, python-format +msgid "Date Scheduled" +msgstr "Date planifiée" + +#. module: sale_blanket_order +#: model_terms:ir.ui.view,arch_db:sale_blanket_order.view_blanket_order_search +msgid "Delivered Qty" +msgstr "Qté livrée" + +#. module: sale_blanket_order +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order__delivered_uom_qty +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order_line__delivered_uom_qty +msgid "Delivered quantity" +msgstr "Quantité Livrée" + +#. module: sale_blanket_order +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order_line__name +msgid "Description" +msgstr "Description" + +#. module: sale_blanket_order +#: model:ir.model.fields,field_description:sale_blanket_order.field_res_config_settings__group_blanket_disable_adding_lines +msgid "Disable adding more lines to SOs" +msgstr "Blockage ajout plus de lignes aux BCs" + +#. module: sale_blanket_order +#: model:res.groups,name:sale_blanket_order.blanket_orders_disable_adding_lines +#: model_terms:ir.ui.view,arch_db:sale_blanket_order.sale_config_settings_form_view +msgid "Disable adding more lines to SOs from Blanket Orders" +msgstr "Blocage ajout de plus de lignes aux BCs depuis la soumission" + +#. module: sale_blanket_order +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order__display_name +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order_line__display_name +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order_wizard__display_name +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order_wizard_line__display_name +msgid "Display Name" +msgstr "Nom affiché" + +#. module: sale_blanket_order +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order_line__display_type +msgid "Display Type" +msgstr "Type d'affichage" + +#. module: sale_blanket_order +#: model:ir.model.fields.selection,name:sale_blanket_order.selection__sale_blanket_order__state__done +msgid "Done" +msgstr "Fait" + +#. module: sale_blanket_order +#: model:ir.model.fields.selection,name:sale_blanket_order.selection__sale_blanket_order__state__draft +msgid "Draft" +msgstr "Brouillon" + +#. module: sale_blanket_order +#: model:ir.actions.server,name:sale_blanket_order.expired_blanket_orders_cron_ir_actions_server +msgid "Expire Blanket Orders" +msgstr "Soumissions Expirées" + +#. module: sale_blanket_order +#: model:ir.model.fields.selection,name:sale_blanket_order.selection__sale_blanket_order__state__expired +msgid "Expired" +msgstr "Expiré" + +#. module: sale_blanket_order +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order__fiscal_position_id +msgid "Fiscal Position" +msgstr "Position Fiscale" + +#. module: sale_blanket_order +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order__message_follower_ids +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order_line__message_follower_ids +msgid "Followers" +msgstr "Abonnés" + +#. module: sale_blanket_order +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order__message_partner_ids +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order_line__message_partner_ids +msgid "Followers (Partners)" +msgstr "Abonnés (Client)" + +#. module: sale_blanket_order +#: model:ir.model.fields,help:sale_blanket_order.field_sale_blanket_order__activity_type_icon +#: model:ir.model.fields,help:sale_blanket_order.field_sale_blanket_order_line__activity_type_icon +msgid "Font awesome icon e.g. fa-tasks" +msgstr "Police icône" + +#. module: sale_blanket_order +#: model:ir.model.constraint,message:sale_blanket_order.constraint_sale_blanket_order_line_non_accountable_null_fields +msgid "Forbidden values on non-accountable sale order line" +msgstr "Valeurs interdites sur une ligne de vente non facturable" + +#. module: sale_blanket_order +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order__has_message +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order_line__has_message +msgid "Has Message" +msgstr "A un Message" + +#. module: sale_blanket_order +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order__id +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order_line__id +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order_wizard__id +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order_wizard_line__id +msgid "ID" +msgstr "ID" + +#. module: sale_blanket_order +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order__activity_exception_icon +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order_line__activity_exception_icon +msgid "Icon" +msgstr "Icône" + +#. module: sale_blanket_order +#: model:ir.model.fields,help:sale_blanket_order.field_sale_blanket_order__activity_exception_icon +#: model:ir.model.fields,help:sale_blanket_order.field_sale_blanket_order_line__activity_exception_icon +msgid "Icon to indicate an exception activity." +msgstr "Icône pour indiquer une exception sur activité." + +#. module: sale_blanket_order +#: model:ir.model.fields,help:sale_blanket_order.field_sale_blanket_order__message_needaction +#: model:ir.model.fields,help:sale_blanket_order.field_sale_blanket_order_line__message_needaction +msgid "If checked, new messages require your attention." +msgstr "Si coché, les nouveaux messages requièrent votre attention." + +#. module: sale_blanket_order +#: model:ir.model.fields,help:sale_blanket_order.field_sale_blanket_order__message_has_error +#: model:ir.model.fields,help:sale_blanket_order.field_sale_blanket_order_line__message_has_error +msgid "If checked, some messages have a delivery error." +msgstr "Si coché, certains messages ont des erreurs." + +#. module: sale_blanket_order +#: model_terms:ir.ui.view,arch_db:sale_blanket_order.view_blanket_order_search +msgid "Invoiced Qty" +msgstr "Qté facturée" + +#. module: sale_blanket_order +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order__invoiced_uom_qty +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order_line__invoiced_uom_qty +msgid "Invoiced quantity" +msgstr "Quantité facturée" + +#. module: sale_blanket_order +#: model_terms:ir.ui.view,arch_db:sale_blanket_order.view_blanket_order_form +msgid "Invoicing" +msgstr "Factures" + +#. module: sale_blanket_order +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order__message_is_follower +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order_line__message_is_follower +msgid "Is Follower" +msgstr "Est abonné" + +#. module: sale_blanket_order +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order__write_uid +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order_line__write_uid +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order_wizard__write_uid +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order_wizard_line__write_uid +msgid "Last Updated by" +msgstr "Dernière modification par" + +#. module: sale_blanket_order +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order__write_date +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order_line__write_date +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order_wizard__write_date +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order_wizard_line__write_date +msgid "Last Updated on" +msgstr "Dernière modification le" + +#. module: sale_blanket_order +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order_wizard__line_ids +#: model_terms:ir.ui.view,arch_db:sale_blanket_order.view_blanket_order_form +msgid "Lines" +msgstr "Lignes" + +#. module: sale_blanket_order +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order__message_has_error +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order_line__message_has_error +msgid "Message Delivery error" +msgstr "Message d'erreur" + +#. module: sale_blanket_order +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order__message_ids +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order_line__message_ids +msgid "Messages" +msgstr "Messages" + +#. module: sale_blanket_order +#: model:ir.model.constraint,message:sale_blanket_order.constraint_sale_blanket_order_line_accountable_required_fields +msgid "Missing required fields on accountable sale order line." +msgstr "Champs requis manquants sur une ligne de vente facturable." + +#. module: sale_blanket_order +#. odoo-python +#: code:addons/sale_blanket_order/models/blanket_orders.py:0 +#, python-format +msgid "Must have some lines" +msgstr "Doit avoir des lignes" + +#. module: sale_blanket_order +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order__my_activity_date_deadline +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order_line__my_activity_date_deadline +msgid "My Activity Deadline" +msgstr "Deadline Mon Activité" + +#. module: sale_blanket_order +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order__name +msgid "Name" +msgstr "Nom" + +#. module: sale_blanket_order +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order__activity_date_deadline +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order_line__activity_date_deadline +msgid "Next Activity Deadline" +msgstr "Deadline Activité Suivante" + +#. module: sale_blanket_order +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order__activity_summary +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order_line__activity_summary +msgid "Next Activity Summary" +msgstr "Résumé Activité suivante" + +#. module: sale_blanket_order +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order__activity_type_id +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order_line__activity_type_id +msgid "Next Activity Type" +msgstr "Type activité suivante" + +#. module: sale_blanket_order +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order__note +#: model:ir.model.fields.selection,name:sale_blanket_order.selection__sale_blanket_order_line__display_type__line_note +msgid "Note" +msgstr "Note" + +#. module: sale_blanket_order +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order__message_needaction_counter +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order_line__message_needaction_counter +msgid "Number of Actions" +msgstr "Nombre d'actions" + +#. module: sale_blanket_order +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order__message_has_error_counter +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order_line__message_has_error_counter +msgid "Number of errors" +msgstr "Nombre d'erreurs" + +#. module: sale_blanket_order +#: model:ir.model.fields,help:sale_blanket_order.field_sale_blanket_order__message_needaction_counter +#: model:ir.model.fields,help:sale_blanket_order.field_sale_blanket_order_line__message_needaction_counter +msgid "Number of messages requiring action" +msgstr "" + +#. module: sale_blanket_order +#: model:ir.model.fields,help:sale_blanket_order.field_sale_blanket_order__message_has_error_counter +#: model:ir.model.fields,help:sale_blanket_order.field_sale_blanket_order_line__message_has_error_counter +msgid "Number of messages with delivery error" +msgstr "Nombre de message avec une erreur" + +#. module: sale_blanket_order +#: model:ir.model.fields.selection,name:sale_blanket_order.selection__sale_blanket_order__state__open +#: model_terms:ir.ui.view,arch_db:sale_blanket_order.view_blanket_order_search +msgid "Open" +msgstr "Ouvert" + +#. module: sale_blanket_order +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order_line__order_id +msgid "Order" +msgstr "Commande" + +#. module: sale_blanket_order +#: model_terms:ir.ui.view,arch_db:sale_blanket_order.view_blanket_order_form +msgid "Order Lines" +msgstr "Lignes Commande" + +#. module: sale_blanket_order +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order__line_ids +msgid "Order lines" +msgstr "Lignes commandes" + +#. module: sale_blanket_order +#: model_terms:ir.ui.view,arch_db:sale_blanket_order.view_blanket_order_search +msgid "Ordered Qty" +msgstr "Qté Commandée" + +#. module: sale_blanket_order +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order__ordered_uom_qty +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order_line__ordered_uom_qty +msgid "Ordered quantity" +msgstr "Quantité commandée" + +#. module: sale_blanket_order +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_order__blanket_order_id +msgid "Origin blanket order" +msgstr "Soumission d'origine" + +#. module: sale_blanket_order +#: model_terms:ir.ui.view,arch_db:sale_blanket_order.report_blanketorder_document +#: model_terms:ir.ui.view,arch_db:sale_blanket_order.sale_blanket_order_line_tree +#: model_terms:ir.ui.view,arch_db:sale_blanket_order.view_blanket_order_form +#: model_terms:ir.ui.view,arch_db:sale_blanket_order.view_blanket_order_search +msgid "Original Qty" +msgstr "Qté Initiale" + +#. module: sale_blanket_order +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order__original_uom_qty +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order_line__original_uom_qty +msgid "Original quantity" +msgstr "Quantité initiale" + +#. module: sale_blanket_order +#: model_terms:ir.ui.view,arch_db:sale_blanket_order.view_blanket_order_form +msgid "Other Information" +msgstr "Autre information" + +#. module: sale_blanket_order +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order__partner_id +msgid "Partner" +msgstr "Client" + +#. module: sale_blanket_order +#. odoo-python +#: code:addons/sale_blanket_order/models/blanket_orders.py:0 +#, python-format +msgid "Partner is mandatory" +msgstr "Client est obligatoire" + +#. module: sale_blanket_order +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order__payment_term_id +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order_line__payment_term_id +msgid "Payment Terms" +msgstr "Conditions de paiement" + +#. module: sale_blanket_order +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order_line__price_unit +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order_wizard_line__price_unit +msgid "Price" +msgstr "Prix" + +#. module: sale_blanket_order +#. odoo-python +#: code:addons/sale_blanket_order/models/blanket_orders.py:0 +#, python-format +msgid "Price must be greater than zero" +msgstr "Le prix doit être plus grand que zero" + +#. module: sale_blanket_order +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order__pricelist_id +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order_line__pricelist_id +msgid "Pricelist" +msgstr "Liste de prix" + +#. module: sale_blanket_order +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order_line__pricelist_item_id +msgid "Pricelist Item" +msgstr "" + +#. module: sale_blanket_order +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order__product_id +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order_line__product_id +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order_wizard_line__product_id +#: model_terms:ir.ui.view,arch_db:sale_blanket_order.report_blanketorder_document +msgid "Product" +msgstr "Produit" + +#. module: sale_blanket_order +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order_wizard__sale_order_id +msgid "Purchase Order" +msgstr "Commande Achat" + +#. module: sale_blanket_order +#. odoo-python +#: code:addons/sale_blanket_order/models/blanket_orders.py:0 +#, python-format +msgid "Quantity must be greater than zero" +msgstr "La quantité doit être plus grande que zéro" + +#. module: sale_blanket_order +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order_wizard_line__qty +msgid "Quantity to Order" +msgstr "Quantité à commander" + +#. module: sale_blanket_order +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order__rating_ids +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order_line__rating_ids +msgid "Ratings" +msgstr "" + +#. module: sale_blanket_order +#: model_terms:ir.ui.view,arch_db:sale_blanket_order.view_blanket_order_search +msgid "Remaining Qty" +msgstr "Qté restante" + +#. module: sale_blanket_order +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order__remaining_uom_qty +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order_line__remaining_uom_qty +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order_wizard_line__remaining_uom_qty +msgid "Remaining quantity" +msgstr "Quantité restante" + +#. module: sale_blanket_order +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order_line__remaining_qty +msgid "Remaining quantity in base UoM" +msgstr "Quantité restante en unitlé de base" + +#. module: sale_blanket_order +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order_line__user_id +msgid "Responsible" +msgstr "Responsable" + +#. module: sale_blanket_order +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order__activity_user_id +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order_line__activity_user_id +msgid "Responsible User" +msgstr "Utilisateur Responsable" + +#. module: sale_blanket_order +#. odoo-python +#: code:addons/sale_blanket_order/wizard/create_sale_orders.py:0 +#, python-format +msgid "Sale Blanket Order %s is not open" +msgstr "La soumission %s n'est pas ouverte" + +#. module: sale_blanket_order +#: model_terms:ir.ui.view,arch_db:sale_blanket_order.sale_blanket_order_line_form +msgid "Sale Blanket Order Line" +msgstr "Ligne de soumission" + +#. module: sale_blanket_order +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order__line_count +msgid "Sale Blanket Order Line count" +msgstr "Nombre de lignes de soumission" + +#. module: sale_blanket_order +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order__sale_count +msgid "Sale Count" +msgstr "Nombre de ventes" + +#. module: sale_blanket_order +#: model_terms:ir.ui.view,arch_db:sale_blanket_order.sale_blanket_order_line_form +msgid "Sale Order Lines" +msgstr "Lignes commande de vente" + +#. module: sale_blanket_order +#: model_terms:ir.ui.view,arch_db:sale_blanket_order.view_blanket_order_form +msgid "Sale Orders" +msgstr "Commandes de vente" + +#. module: sale_blanket_order +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order_line__sale_lines +msgid "Sale order lines" +msgstr "Lignes commande de vente" + +#. module: sale_blanket_order +#: model_terms:ir.ui.view,arch_db:sale_blanket_order.view_blanket_order_form +msgid "Sales Information" +msgstr "Information Ventes" + +#. module: sale_blanket_order +#: model:ir.model,name:sale_blanket_order.model_sale_order +msgid "Sales Order" +msgstr "Commandes de vente" + +#. module: sale_blanket_order +#: model:ir.model,name:sale_blanket_order.model_sale_order_line +msgid "Sales Order Line" +msgstr "Ligne Commande de vente" + +#. module: sale_blanket_order +#. odoo-python +#: code:addons/sale_blanket_order/wizard/create_sale_orders.py:0 +#, python-format +msgid "Sales Orders" +msgstr "Commandes de ventes" + +#. module: sale_blanket_order +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order__team_id +msgid "Sales Team" +msgstr "Equipe commerciale" + +#. module: sale_blanket_order +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order__user_id +msgid "Salesperson" +msgstr "Vendeur" + +#. module: sale_blanket_order +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order_line__date_schedule +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order_wizard_line__date_schedule +#: model_terms:ir.ui.view,arch_db:sale_blanket_order.report_blanketorder_document +msgid "Scheduled Date" +msgstr "Date planifiée" + +#. module: sale_blanket_order +#: model_terms:ir.ui.view,arch_db:sale_blanket_order.sale_blanket_order_line_search +msgid "Search Sale Blanket Order Line" +msgstr "Recherche ligne de soumission" + +#. module: sale_blanket_order +#: model:ir.model.fields.selection,name:sale_blanket_order.selection__sale_blanket_order_line__display_type__line_section +msgid "Section" +msgstr "Section" + +#. module: sale_blanket_order +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order_line__sequence +msgid "Sequence" +msgstr "Séquence" + +#. module: sale_blanket_order +#: model_terms:ir.ui.view,arch_db:sale_blanket_order.view_blanket_order_form +msgid "Setup default terms and conditions in your company settings." +msgstr "Paramétrez les conditions de paiement par défaut dans votre société." + +#. module: sale_blanket_order +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order__state +msgid "State" +msgstr "Statut" + +#. module: sale_blanket_order +#: model:ir.model.fields,help:sale_blanket_order.field_sale_blanket_order__activity_state +#: model:ir.model.fields,help:sale_blanket_order.field_sale_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 "" +"Statut basé sur les activités\n" +"Echéance: la date d'échéance est déjà passée\n" +"Aujourd'hui: la date d'activité est aujourd'hui\n" +"Planifié : Activités futures." + +#. module: sale_blanket_order +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order_line__price_subtotal +msgid "Subtotal" +msgstr "Sous-total" + +#. module: sale_blanket_order +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order_line__price_tax +msgid "Tax" +msgstr "Taxe" + +#. module: sale_blanket_order +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order__amount_tax +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order_line__taxes_id +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order_wizard_line__taxes_id +#: model_terms:ir.ui.view,arch_db:sale_blanket_order.report_blanketorder_document +msgid "Taxes" +msgstr "Taxes" + +#. module: sale_blanket_order +#: model:ir.model.fields,help:sale_blanket_order.field_sale_blanket_order_line__display_type +msgid "Technical field for UX purpose." +msgstr "Champs technique utilisé pour UX." + +#. module: sale_blanket_order +#: model_terms:ir.ui.view,arch_db:sale_blanket_order.view_blanket_order_form +msgid "Terms and Conditions" +msgstr "Termes et Conditions" + +#. module: sale_blanket_order +#. odoo-python +#: code:addons/sale_blanket_order/models/sale_orders.py:0 +#, python-format +msgid "" +"The currency of the blanket order must match with that of the sale order." +msgstr "La devise de la soumission doit être la même que la commande de vente." + +#. module: sale_blanket_order +#. odoo-python +#: code:addons/sale_blanket_order/models/sale_orders.py:0 +#, python-format +msgid "The customer must be equal to the blanket order lines customer" +msgstr "Le client doit être le même que la soumission" + +#. module: sale_blanket_order +#. odoo-python +#: code:addons/sale_blanket_order/models/sale_orders.py:0 +#, python-format +msgid "The product in the blanket order and in the sales order must match" +msgstr "" +"L'article dans la soumission et dans la commande de vente doit être les mêmes" + +#. module: sale_blanket_order +#. odoo-python +#: code:addons/sale_blanket_order/wizard/create_sale_orders.py:0 +#, python-format +msgid "The sale has already been completed." +msgstr "La vente a déjà été effectuée." + +#. module: sale_blanket_order +#: model_terms:ir.ui.view,arch_db:sale_blanket_order.view_blanket_order_form +msgid "To Draft" +msgstr "Remettre en Brouillon" + +#. module: sale_blanket_order +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order__amount_total +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order_line__price_total +msgid "Total" +msgstr "Total" + +#. module: sale_blanket_order +#: model:ir.model.fields,help:sale_blanket_order.field_sale_blanket_order__activity_exception_decoration +#: model:ir.model.fields,help:sale_blanket_order.field_sale_blanket_order_line__activity_exception_decoration +msgid "Type of the exception activity on record." +msgstr "Type de l'exception d'activité sur l'enregistrement." + +#. module: sale_blanket_order +#: model_terms:ir.ui.view,arch_db:sale_blanket_order.report_blanketorder_document +msgid "Unit Price" +msgstr "Prix unitaire" + +#. module: sale_blanket_order +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order_line__product_uom +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order_wizard_line__product_uom +msgid "Unit of Measure" +msgstr "Unité de mesure" + +#. module: sale_blanket_order +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order__amount_untaxed +msgid "Untaxed Amount" +msgstr "Montant hors taxes" + +#. module: sale_blanket_order +#: model_terms:ir.actions.act_window,help:sale_blanket_order.act_open_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 customer, " +"control\n" +" the products delivered and control the vendor bills." +msgstr "" +"Utiliser ce menu pour cherche dans les soumissions. Pour chaque soumission,\n" +" vous pouvez traquer les discussions avec le client, " +"controler\n" +" les produits livrés et controler les factures fournisseurs." + +#. module: sale_blanket_order +#: model_terms:ir.ui.view,arch_db:sale_blanket_order.report_blanketorder_document +msgid "VAT:" +msgstr "TVA :" + +#. module: sale_blanket_order +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order__validity_date +msgid "Validity Date" +msgstr "Expiration" + +#. module: sale_blanket_order +#. odoo-python +#: code:addons/sale_blanket_order/models/blanket_orders.py:0 +#, python-format +msgid "Validity date is mandatory" +msgstr "La date d'expiration est obligatoire" + +#. module: sale_blanket_order +#. odoo-python +#: code:addons/sale_blanket_order/models/blanket_orders.py:0 +#, python-format +msgid "Validity date must be in the future" +msgstr "La date d'expiration doit être dans le futur" + +#. module: sale_blanket_order +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order_wizard_line__partner_id +msgid "Vendor" +msgstr "Fournisseur" + +#. module: sale_blanket_order +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order__website_message_ids +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order_line__website_message_ids +msgid "Website Messages" +msgstr "Messages site internet" + +#. module: sale_blanket_order +#: model:ir.model.fields,help:sale_blanket_order.field_sale_blanket_order__website_message_ids +#: model:ir.model.fields,help:sale_blanket_order.field_sale_blanket_order_line__website_message_ids +msgid "Website communication history" +msgstr "Historique communication site internet" + +#. module: sale_blanket_order +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order_wizard_line__wizard_id +msgid "Wizard" +msgstr "Assistant" + +#. module: sale_blanket_order +#. odoo-python +#: code:addons/sale_blanket_order/models/blanket_orders.py:0 +#, python-format +msgid "" +"You can not delete a blanket order with opened sale orders! Try to cancel " +"them before." +msgstr "" +"Vous ne pouvez pas effacer une soumission ouverte avec des commandes de " +"vente ! Essayez plutôt de l'annuler avant." + +#. module: sale_blanket_order +#. odoo-python +#: code:addons/sale_blanket_order/models/blanket_orders.py:0 +#, python-format +msgid "" +"You can not delete an open blanket or with active sale orders! Try to cancel " +"it before." +msgstr "" +"Vous ne pouvez pas effacer une soumission ouverte ou avec des commandes de " +"vente actives ! Essayez de l'annuler avant." + +#. module: sale_blanket_order +#. odoo-python +#: code:addons/sale_blanket_order/wizard/create_sale_orders.py:0 +#, python-format +msgid "You can't create a sale order from an expired blanket order!" +msgstr "" +"Vous ne pouvez pas créer une commande de vente depuis une soumission " +"expirée !" + +#. module: sale_blanket_order +#. odoo-python +#: code:addons/sale_blanket_order/wizard/create_sale_orders.py:0 +#, python-format +msgid "You can't order more than the remaining quantities" +msgstr "Vous ne pouvez pas commander plus que la quantité restante" + +#. module: sale_blanket_order +#. odoo-python +#: code:addons/sale_blanket_order/wizard/create_sale_orders.py:0 +#, python-format +msgid "You have to select lines from the same company." +msgstr "Vous devez sélectionner les lignes de la même société." + +#. module: sale_blanket_order +#. odoo-python +#: code:addons/sale_blanket_order/models/blanket_orders.py:0 +#, python-format +msgid "remaining" +msgstr "restante" + +#~ msgid "Analytic Tags" +#~ msgstr "Etiquettes Analytiques" + +#~ msgid "Last Modified on" +#~ msgstr "Dernière Modification le" + +#~ msgid "Main Attachment" +#~ msgstr "Pièce jointe principale" + +#~ msgid "Next Activity Calendar Event" +#~ msgstr "Prochaine Activité Calendrier" + +#~ msgid "Number of messages which requires an action" +#~ msgstr "Nombre des messages requérants une action" + +#~ msgid "Number of unread messages" +#~ msgstr "Nombre de messages non lus" + +#~ msgid "SMS Delivery error" +#~ msgstr "Erreur envoi sms" + +#~ msgid "Unread Messages" +#~ msgstr "Messages non lus" + +#~ msgid "Unread Messages Counter" +#~ msgstr "Nombre message non lus" diff --git a/sale_blanket_order/i18n/fr_FR.po b/sale_blanket_order/i18n/fr_FR.po new file mode 100644 index 00000000000..4e72b58e3fb --- /dev/null +++ b/sale_blanket_order/i18n/fr_FR.po @@ -0,0 +1,1075 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * sale_blanket_order +# +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 15.0\n" +"Report-Msgid-Bugs-To: \n" +"PO-Revision-Date: 2022-09-06 14:07+0000\n" +"Last-Translator: ClementChaumienneC2C \n" +"Language-Team: none\n" +"Language: fr_FR\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: \n" +"Plural-Forms: nplurals=2; plural=n > 1;\n" +"X-Generator: Weblate 4.3.2\n" + +#. module: sale_blanket_order +#. odoo-python +#: code:addons/sale_blanket_order/models/blanket_orders.py:0 +#, python-format +msgid "" +"\n" +" You cannot change the type of a sale order line.\n" +" Instead you should delete the current line and create a " +"new line\n" +" of the proper type.\n" +" " +msgstr "" +"\n" +" Vous ne pouvez psa changer le type de la ligne de " +"commande de vente.\n" +" Vous devez effacer la ligne et en créer une nouvelle du " +"même type.\n" +" " + +#. module: sale_blanket_order +#: model:ir.actions.report,print_report_name:sale_blanket_order.report_blanket_order +msgid "'Blanket Order - %s' % object.name" +msgstr "'Soumission - %s' % object.name" + +#. module: sale_blanket_order +#: model_terms:ir.ui.view,arch_db:sale_blanket_order.report_blanketorder_document +msgid "Blanket Order # " +msgstr "Soumission # " + +#. module: sale_blanket_order +#: model_terms:ir.ui.view,arch_db:sale_blanket_order.report_blanketorder_document +msgid "Subtotal" +msgstr "Sous-total" + +#. module: sale_blanket_order +#: model_terms:ir.ui.view,arch_db:sale_blanket_order.report_blanketorder_document +msgid "Currency:" +msgstr "Devise :" + +#. module: sale_blanket_order +#: model_terms:ir.ui.view,arch_db:sale_blanket_order.report_blanketorder_document +msgid "Salesperson:" +msgstr "Vendeur:" + +#. module: sale_blanket_order +#: model_terms:ir.ui.view,arch_db:sale_blanket_order.report_blanketorder_document +msgid "Subtotal" +msgstr "Sous total" + +#. module: sale_blanket_order +#: model_terms:ir.ui.view,arch_db:sale_blanket_order.report_blanketorder_document +msgid "Total" +msgstr "Total" + +#. module: sale_blanket_order +#: model_terms:ir.ui.view,arch_db:sale_blanket_order.report_blanketorder_document +msgid "Validity Date:" +msgstr "Expiration:" + +#. module: sale_blanket_order +#: model_terms:ir.ui.view,arch_db:sale_blanket_order.report_blanketorder_document +msgid "Your Reference:" +msgstr "Votre Référence:" + +#. module: sale_blanket_order +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order__message_needaction +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order_line__message_needaction +msgid "Action Needed" +msgstr "Action requise" + +#. module: sale_blanket_order +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order__activity_ids +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order_line__activity_ids +msgid "Activities" +msgstr "Activités" + +#. module: sale_blanket_order +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order__activity_exception_decoration +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order_line__activity_exception_decoration +msgid "Activity Exception Decoration" +msgstr "Symbole Exception Activité" + +#. module: sale_blanket_order +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order__activity_state +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order_line__activity_state +msgid "Activity State" +msgstr "Statut Activité" + +#. module: sale_blanket_order +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order__activity_type_icon +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order_line__activity_type_icon +msgid "Activity Type Icon" +msgstr "Type d'icône activité" + +#. module: sale_blanket_order +#: model_terms:ir.ui.view,arch_db:sale_blanket_order.view_blanket_order_form +msgid "Add a note" +msgstr "Ajouter une note" + +#. module: sale_blanket_order +#: model_terms:ir.ui.view,arch_db:sale_blanket_order.view_blanket_order_form +msgid "Add a product" +msgstr "Ajouter un produit" + +#. module: sale_blanket_order +#: model_terms:ir.ui.view,arch_db:sale_blanket_order.view_blanket_order_form +msgid "Add a section" +msgstr "Ajouter une section" + +#. module: sale_blanket_order +#: model_terms:ir.ui.view,arch_db:sale_blanket_order.report_blanketorder_document +msgid "Amount" +msgstr "Montant" + +#. module: sale_blanket_order +#. odoo-python +#: code:addons/sale_blanket_order/wizard/create_sale_orders.py:0 +#, python-format +msgid "An order can't be empty" +msgstr "Un document de vente ne peut pas être vide" + +#. module: sale_blanket_order +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order__analytic_account_id +msgid "Analytic Account" +msgstr "Compte Analytique" + +#. module: sale_blanket_order +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order_line__analytic_distribution +msgid "Analytic Distribution" +msgstr "" + +#. module: sale_blanket_order +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order_line__analytic_distribution_search +msgid "Analytic Distribution Search" +msgstr "" + +#. module: sale_blanket_order +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order_line__analytic_precision +msgid "Analytic Precision" +msgstr "" + +#. module: sale_blanket_order +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order__message_attachment_count +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order_line__message_attachment_count +msgid "Attachment Count" +msgstr "Compteur Pièce jointe" + +#. module: sale_blanket_order +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order_wizard_line__blanket_line_id +msgid "Blanket Line" +msgstr "Ligne de soumission" + +#. module: sale_blanket_order +#: model:ir.actions.report,name:sale_blanket_order.report_blanket_order +#: model:ir.model,name:sale_blanket_order.model_sale_blanket_order +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order_wizard__blanket_order_id +#: model_terms:ir.ui.view,arch_db:sale_blanket_order.view_blanket_order_form +msgid "Blanket Order" +msgstr "Soumission" + +#. module: sale_blanket_order +#: model:ir.model,name:sale_blanket_order.model_sale_blanket_order_line +msgid "Blanket Order Line" +msgstr "Ligne de soumission" + +#. module: sale_blanket_order +#: model:ir.actions.act_window,name:sale_blanket_order.act_open_sale_blanket_order_lines_view_tree +#: model:ir.ui.menu,name:sale_blanket_order.menu_sale_blanket_order_line +msgid "Blanket Order Lines" +msgstr "Ligne de soumission" + +#. module: sale_blanket_order +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_order_line__blanket_order_line +msgid "Blanket Order line" +msgstr "Ligne de soumission" + +#. module: sale_blanket_order +#: model:ir.actions.act_window,name:sale_blanket_order.act_open_blanket_order_view +#: model:ir.ui.menu,name:sale_blanket_order.menu_blanket_order_config +#: model_terms:ir.ui.view,arch_db:sale_blanket_order.sale_config_settings_form_view +msgid "Blanket Orders" +msgstr "Soumissions" + +#. module: sale_blanket_order +#: model:ir.model,name:sale_blanket_order.model_sale_blanket_order_wizard +msgid "Blanket order wizard" +msgstr "Wizard soumission" + +#. module: sale_blanket_order +#: model:ir.model,name:sale_blanket_order.model_sale_blanket_order_wizard_line +msgid "Blanket order wizard line" +msgstr "Wizard Ligne Soumission" + +#. module: sale_blanket_order +#. odoo-python +#: code:addons/sale_blanket_order/wizard/create_sale_orders.py:0 +#, python-format +msgid "" +"Can not create Sale Order from Blanket Order lines with different currencies" +msgstr "" +"Il n'est pas possible de créer une commande de vente depuis une soumission " +"avec plusieurs devises" + +#. module: sale_blanket_order +#: model_terms:ir.ui.view,arch_db:sale_blanket_order.view_blanket_order_form +#: model_terms:ir.ui.view,arch_db:sale_blanket_order.view_create_sale_order +msgid "Cancel" +msgstr "Annuler" + +#. module: sale_blanket_order +#. odoo-python +#: code:addons/sale_blanket_order/models/sale_orders.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 "" +"La commande%s ne peut pas être confirmée car elle fait référence à une " +"soumission qui n'a pas de quantité restante." + +#. module: sale_blanket_order +#: model_terms:ir.actions.act_window,help:sale_blanket_order.act_open_blanket_order_view +msgid "" +"Click to create a blanket order that can be converted into a sale order." +msgstr "" +"Cliquez pour créer une soumission pouvant être convertie en commande de " +"vente." + +#. module: sale_blanket_order +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order__company_id +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order_line__company_id +msgid "Company" +msgstr "Société" + +#. module: sale_blanket_order +#: model:ir.model,name:sale_blanket_order.model_res_config_settings +msgid "Config Settings" +msgstr "Paramètres" + +#. module: sale_blanket_order +#: model_terms:ir.ui.view,arch_db:sale_blanket_order.view_blanket_order_form +msgid "Confirm" +msgstr "Confirmer" + +#. module: sale_blanket_order +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order__confirmed +msgid "Confirmed" +msgstr "Confirmé" + +#. module: sale_blanket_order +#: model:ir.actions.act_window,name:sale_blanket_order.action_create_sale_order +#: model_terms:ir.ui.view,arch_db:sale_blanket_order.view_blanket_order_form +#: model_terms:ir.ui.view,arch_db:sale_blanket_order.view_create_sale_order +msgid "Create Sale Order" +msgstr "Créer Commande de Vente" + +#. module: sale_blanket_order +#: model_terms:ir.ui.view,arch_db:sale_blanket_order.view_create_sale_order +msgid "Create and View Order" +msgstr "Créer et visualiser Commande de vente" + +#. module: sale_blanket_order +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order__create_uid +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order_line__create_uid +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order_wizard__create_uid +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order_wizard_line__create_uid +msgid "Created by" +msgstr "Crée par" + +#. module: sale_blanket_order +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order__create_date +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order_line__create_date +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order_wizard__create_date +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order_wizard_line__create_date +msgid "Created on" +msgstr "Crée le" + +#. module: sale_blanket_order +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order__currency_id +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order_line__currency_id +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order_wizard_line__currency_id +msgid "Currency" +msgstr "Devise" + +#. module: sale_blanket_order +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order_line__partner_id +msgid "Customer" +msgstr "Client" + +#. module: sale_blanket_order +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order__client_order_ref +msgid "Customer Reference" +msgstr "Référence Client" + +#. module: sale_blanket_order +#. odoo-python +#: code:addons/sale_blanket_order/models/blanket_orders.py:0 +#, python-format +msgid "Date Scheduled" +msgstr "Date planifiée" + +#. module: sale_blanket_order +#: model_terms:ir.ui.view,arch_db:sale_blanket_order.view_blanket_order_search +msgid "Delivered Qty" +msgstr "Qté livrée" + +#. module: sale_blanket_order +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order__delivered_uom_qty +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order_line__delivered_uom_qty +msgid "Delivered quantity" +msgstr "Quantité Livrée" + +#. module: sale_blanket_order +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order_line__name +msgid "Description" +msgstr "Description" + +#. module: sale_blanket_order +#: model:ir.model.fields,field_description:sale_blanket_order.field_res_config_settings__group_blanket_disable_adding_lines +msgid "Disable adding more lines to SOs" +msgstr "Blockage ajout plus de lignes aux BCs" + +#. module: sale_blanket_order +#: model:res.groups,name:sale_blanket_order.blanket_orders_disable_adding_lines +#: model_terms:ir.ui.view,arch_db:sale_blanket_order.sale_config_settings_form_view +msgid "Disable adding more lines to SOs from Blanket Orders" +msgstr "Blocage ajout de plus de lignes aux BCs depuis la soumission" + +#. module: sale_blanket_order +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order__display_name +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order_line__display_name +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order_wizard__display_name +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order_wizard_line__display_name +msgid "Display Name" +msgstr "Nom affiché" + +#. module: sale_blanket_order +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order_line__display_type +msgid "Display Type" +msgstr "Type d'affichage" + +#. module: sale_blanket_order +#: model:ir.model.fields.selection,name:sale_blanket_order.selection__sale_blanket_order__state__done +msgid "Done" +msgstr "Fait" + +#. module: sale_blanket_order +#: model:ir.model.fields.selection,name:sale_blanket_order.selection__sale_blanket_order__state__draft +msgid "Draft" +msgstr "Brouillon" + +#. module: sale_blanket_order +#: model:ir.actions.server,name:sale_blanket_order.expired_blanket_orders_cron_ir_actions_server +msgid "Expire Blanket Orders" +msgstr "Soumissions Expirées" + +#. module: sale_blanket_order +#: model:ir.model.fields.selection,name:sale_blanket_order.selection__sale_blanket_order__state__expired +msgid "Expired" +msgstr "Expiré" + +#. module: sale_blanket_order +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order__fiscal_position_id +msgid "Fiscal Position" +msgstr "Position Fiscale" + +#. module: sale_blanket_order +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order__message_follower_ids +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order_line__message_follower_ids +msgid "Followers" +msgstr "Abonnés" + +#. module: sale_blanket_order +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order__message_partner_ids +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order_line__message_partner_ids +msgid "Followers (Partners)" +msgstr "Abonnés (Client)" + +#. module: sale_blanket_order +#: model:ir.model.fields,help:sale_blanket_order.field_sale_blanket_order__activity_type_icon +#: model:ir.model.fields,help:sale_blanket_order.field_sale_blanket_order_line__activity_type_icon +msgid "Font awesome icon e.g. fa-tasks" +msgstr "Police icône" + +#. module: sale_blanket_order +#: model:ir.model.constraint,message:sale_blanket_order.constraint_sale_blanket_order_line_non_accountable_null_fields +msgid "Forbidden values on non-accountable sale order line" +msgstr "Valeurs interdites sur une ligne de vente non facturable" + +#. module: sale_blanket_order +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order__has_message +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order_line__has_message +msgid "Has Message" +msgstr "A un Message" + +#. module: sale_blanket_order +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order__id +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order_line__id +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order_wizard__id +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order_wizard_line__id +msgid "ID" +msgstr "ID" + +#. module: sale_blanket_order +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order__activity_exception_icon +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order_line__activity_exception_icon +msgid "Icon" +msgstr "Icône" + +#. module: sale_blanket_order +#: model:ir.model.fields,help:sale_blanket_order.field_sale_blanket_order__activity_exception_icon +#: model:ir.model.fields,help:sale_blanket_order.field_sale_blanket_order_line__activity_exception_icon +msgid "Icon to indicate an exception activity." +msgstr "Icône pour indiquer une exception sur activité." + +#. module: sale_blanket_order +#: model:ir.model.fields,help:sale_blanket_order.field_sale_blanket_order__message_needaction +#: model:ir.model.fields,help:sale_blanket_order.field_sale_blanket_order_line__message_needaction +msgid "If checked, new messages require your attention." +msgstr "Si coché, les nouveaux messages requièrent votre attention." + +#. module: sale_blanket_order +#: model:ir.model.fields,help:sale_blanket_order.field_sale_blanket_order__message_has_error +#: model:ir.model.fields,help:sale_blanket_order.field_sale_blanket_order_line__message_has_error +msgid "If checked, some messages have a delivery error." +msgstr "Si coché, certains messages ont des erreurs." + +#. module: sale_blanket_order +#: model_terms:ir.ui.view,arch_db:sale_blanket_order.view_blanket_order_search +msgid "Invoiced Qty" +msgstr "Qté facturée" + +#. module: sale_blanket_order +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order__invoiced_uom_qty +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order_line__invoiced_uom_qty +msgid "Invoiced quantity" +msgstr "Quantité facturée" + +#. module: sale_blanket_order +#: model_terms:ir.ui.view,arch_db:sale_blanket_order.view_blanket_order_form +msgid "Invoicing" +msgstr "Factures" + +#. module: sale_blanket_order +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order__message_is_follower +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order_line__message_is_follower +msgid "Is Follower" +msgstr "Est abonné" + +#. module: sale_blanket_order +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order__write_uid +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order_line__write_uid +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order_wizard__write_uid +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order_wizard_line__write_uid +msgid "Last Updated by" +msgstr "Dernière modification par" + +#. module: sale_blanket_order +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order__write_date +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order_line__write_date +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order_wizard__write_date +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order_wizard_line__write_date +msgid "Last Updated on" +msgstr "Dernière modification le" + +#. module: sale_blanket_order +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order_wizard__line_ids +#: model_terms:ir.ui.view,arch_db:sale_blanket_order.view_blanket_order_form +msgid "Lines" +msgstr "Lignes" + +#. module: sale_blanket_order +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order__message_has_error +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order_line__message_has_error +msgid "Message Delivery error" +msgstr "Message d'erreur" + +#. module: sale_blanket_order +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order__message_ids +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order_line__message_ids +msgid "Messages" +msgstr "Messages" + +#. module: sale_blanket_order +#: model:ir.model.constraint,message:sale_blanket_order.constraint_sale_blanket_order_line_accountable_required_fields +msgid "Missing required fields on accountable sale order line." +msgstr "Champs requis manquants sur une ligne de vente facturable." + +#. module: sale_blanket_order +#. odoo-python +#: code:addons/sale_blanket_order/models/blanket_orders.py:0 +#, python-format +msgid "Must have some lines" +msgstr "Doit avoir des lignes" + +#. module: sale_blanket_order +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order__my_activity_date_deadline +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order_line__my_activity_date_deadline +msgid "My Activity Deadline" +msgstr "Deadline Mon Activité" + +#. module: sale_blanket_order +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order__name +msgid "Name" +msgstr "Nom" + +#. module: sale_blanket_order +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order__activity_date_deadline +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order_line__activity_date_deadline +msgid "Next Activity Deadline" +msgstr "Deadline Activité Suivante" + +#. module: sale_blanket_order +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order__activity_summary +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order_line__activity_summary +msgid "Next Activity Summary" +msgstr "Résumé Activité suivante" + +#. module: sale_blanket_order +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order__activity_type_id +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order_line__activity_type_id +msgid "Next Activity Type" +msgstr "Type activité suivante" + +#. module: sale_blanket_order +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order__note +#: model:ir.model.fields.selection,name:sale_blanket_order.selection__sale_blanket_order_line__display_type__line_note +msgid "Note" +msgstr "Note" + +#. module: sale_blanket_order +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order__message_needaction_counter +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order_line__message_needaction_counter +msgid "Number of Actions" +msgstr "Nombre d'actions" + +#. module: sale_blanket_order +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order__message_has_error_counter +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order_line__message_has_error_counter +msgid "Number of errors" +msgstr "Nombre d'erreurs" + +#. module: sale_blanket_order +#: model:ir.model.fields,help:sale_blanket_order.field_sale_blanket_order__message_needaction_counter +#: model:ir.model.fields,help:sale_blanket_order.field_sale_blanket_order_line__message_needaction_counter +msgid "Number of messages requiring action" +msgstr "" + +#. module: sale_blanket_order +#: model:ir.model.fields,help:sale_blanket_order.field_sale_blanket_order__message_has_error_counter +#: model:ir.model.fields,help:sale_blanket_order.field_sale_blanket_order_line__message_has_error_counter +msgid "Number of messages with delivery error" +msgstr "Nombre de message avec une erreur" + +#. module: sale_blanket_order +#: model:ir.model.fields.selection,name:sale_blanket_order.selection__sale_blanket_order__state__open +#: model_terms:ir.ui.view,arch_db:sale_blanket_order.view_blanket_order_search +msgid "Open" +msgstr "Ouvert" + +#. module: sale_blanket_order +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order_line__order_id +msgid "Order" +msgstr "Commande" + +#. module: sale_blanket_order +#: model_terms:ir.ui.view,arch_db:sale_blanket_order.view_blanket_order_form +msgid "Order Lines" +msgstr "Ligne Commande" + +#. module: sale_blanket_order +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order__line_ids +msgid "Order lines" +msgstr "Lignes de commande" + +#. module: sale_blanket_order +#: model_terms:ir.ui.view,arch_db:sale_blanket_order.view_blanket_order_search +msgid "Ordered Qty" +msgstr "Qté Commandée" + +#. module: sale_blanket_order +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order__ordered_uom_qty +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order_line__ordered_uom_qty +msgid "Ordered quantity" +msgstr "Quantité commandée" + +#. module: sale_blanket_order +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_order__blanket_order_id +msgid "Origin blanket order" +msgstr "Soumission source" + +#. module: sale_blanket_order +#: model_terms:ir.ui.view,arch_db:sale_blanket_order.report_blanketorder_document +#: model_terms:ir.ui.view,arch_db:sale_blanket_order.sale_blanket_order_line_tree +#: model_terms:ir.ui.view,arch_db:sale_blanket_order.view_blanket_order_form +#: model_terms:ir.ui.view,arch_db:sale_blanket_order.view_blanket_order_search +msgid "Original Qty" +msgstr "Qté initiale" + +#. module: sale_blanket_order +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order__original_uom_qty +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order_line__original_uom_qty +msgid "Original quantity" +msgstr "Quantité Initiale" + +#. module: sale_blanket_order +#: model_terms:ir.ui.view,arch_db:sale_blanket_order.view_blanket_order_form +msgid "Other Information" +msgstr "Autre information" + +#. module: sale_blanket_order +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order__partner_id +msgid "Partner" +msgstr "Client" + +#. module: sale_blanket_order +#. odoo-python +#: code:addons/sale_blanket_order/models/blanket_orders.py:0 +#, python-format +msgid "Partner is mandatory" +msgstr "Le client est obligatoire" + +#. module: sale_blanket_order +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order__payment_term_id +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order_line__payment_term_id +msgid "Payment Terms" +msgstr "Conditions de paiement" + +#. module: sale_blanket_order +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order_line__price_unit +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order_wizard_line__price_unit +msgid "Price" +msgstr "Prix" + +#. module: sale_blanket_order +#. odoo-python +#: code:addons/sale_blanket_order/models/blanket_orders.py:0 +#, python-format +msgid "Price must be greater than zero" +msgstr "Le prix doit être supérieur à 0" + +#. module: sale_blanket_order +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order__pricelist_id +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order_line__pricelist_id +msgid "Pricelist" +msgstr "Liste de Prix" + +#. module: sale_blanket_order +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order_line__pricelist_item_id +msgid "Pricelist Item" +msgstr "" + +#. module: sale_blanket_order +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order__product_id +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order_line__product_id +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order_wizard_line__product_id +#: model_terms:ir.ui.view,arch_db:sale_blanket_order.report_blanketorder_document +msgid "Product" +msgstr "Article" + +#. module: sale_blanket_order +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order_wizard__sale_order_id +msgid "Purchase Order" +msgstr "Commande Achat" + +#. module: sale_blanket_order +#. odoo-python +#: code:addons/sale_blanket_order/models/blanket_orders.py:0 +#, python-format +msgid "Quantity must be greater than zero" +msgstr "La quantité doit être supérieure à 0" + +#. module: sale_blanket_order +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order_wizard_line__qty +msgid "Quantity to Order" +msgstr "Quantité à commander" + +#. module: sale_blanket_order +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order__rating_ids +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order_line__rating_ids +msgid "Ratings" +msgstr "" + +#. module: sale_blanket_order +#: model_terms:ir.ui.view,arch_db:sale_blanket_order.view_blanket_order_search +msgid "Remaining Qty" +msgstr "Qté Restante" + +#. module: sale_blanket_order +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order__remaining_uom_qty +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order_line__remaining_uom_qty +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order_wizard_line__remaining_uom_qty +msgid "Remaining quantity" +msgstr "Quantité restante" + +#. module: sale_blanket_order +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order_line__remaining_qty +msgid "Remaining quantity in base UoM" +msgstr "Quantité restante en unité de base" + +#. module: sale_blanket_order +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order_line__user_id +msgid "Responsible" +msgstr "Responsable" + +#. module: sale_blanket_order +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order__activity_user_id +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order_line__activity_user_id +msgid "Responsible User" +msgstr "Utilisateur Responsable" + +#. module: sale_blanket_order +#. odoo-python +#: code:addons/sale_blanket_order/wizard/create_sale_orders.py:0 +#, python-format +msgid "Sale Blanket Order %s is not open" +msgstr "La soumission de vente %s n'est pas ouvertre" + +#. module: sale_blanket_order +#: model_terms:ir.ui.view,arch_db:sale_blanket_order.sale_blanket_order_line_form +msgid "Sale Blanket Order Line" +msgstr "Lignes de soumission de vente" + +#. module: sale_blanket_order +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order__line_count +msgid "Sale Blanket Order Line count" +msgstr "Nombre de lignes de soumission de vente" + +#. module: sale_blanket_order +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order__sale_count +msgid "Sale Count" +msgstr "Nombre de Vente" + +#. module: sale_blanket_order +#: model_terms:ir.ui.view,arch_db:sale_blanket_order.sale_blanket_order_line_form +msgid "Sale Order Lines" +msgstr "Ligne de Commande de vente" + +#. module: sale_blanket_order +#: model_terms:ir.ui.view,arch_db:sale_blanket_order.view_blanket_order_form +msgid "Sale Orders" +msgstr "Commandes de vente" + +#. module: sale_blanket_order +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order_line__sale_lines +msgid "Sale order lines" +msgstr "Ligne de commande de ventes" + +#. module: sale_blanket_order +#: model_terms:ir.ui.view,arch_db:sale_blanket_order.view_blanket_order_form +msgid "Sales Information" +msgstr "Information de vente" + +#. module: sale_blanket_order +#: model:ir.model,name:sale_blanket_order.model_sale_order +msgid "Sales Order" +msgstr "Commandes de Vente" + +#. module: sale_blanket_order +#: model:ir.model,name:sale_blanket_order.model_sale_order_line +msgid "Sales Order Line" +msgstr "Ligne Commande de Vente" + +#. module: sale_blanket_order +#. odoo-python +#: code:addons/sale_blanket_order/wizard/create_sale_orders.py:0 +#, python-format +msgid "Sales Orders" +msgstr "Commandes de Vente" + +#. module: sale_blanket_order +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order__team_id +msgid "Sales Team" +msgstr "Equipe commerciale" + +#. module: sale_blanket_order +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order__user_id +msgid "Salesperson" +msgstr "Vendeur" + +#. module: sale_blanket_order +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order_line__date_schedule +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order_wizard_line__date_schedule +#: model_terms:ir.ui.view,arch_db:sale_blanket_order.report_blanketorder_document +msgid "Scheduled Date" +msgstr "Date prévue" + +#. module: sale_blanket_order +#: model_terms:ir.ui.view,arch_db:sale_blanket_order.sale_blanket_order_line_search +msgid "Search Sale Blanket Order Line" +msgstr "Recherche Ligne de Soumission" + +#. module: sale_blanket_order +#: model:ir.model.fields.selection,name:sale_blanket_order.selection__sale_blanket_order_line__display_type__line_section +msgid "Section" +msgstr "Section" + +#. module: sale_blanket_order +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order_line__sequence +msgid "Sequence" +msgstr "Séquence" + +#. module: sale_blanket_order +#: model_terms:ir.ui.view,arch_db:sale_blanket_order.view_blanket_order_form +msgid "Setup default terms and conditions in your company settings." +msgstr "Paramètres des conditions générales par défaut." + +#. module: sale_blanket_order +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order__state +msgid "State" +msgstr "Etat" + +#. module: sale_blanket_order +#: model:ir.model.fields,help:sale_blanket_order.field_sale_blanket_order__activity_state +#: model:ir.model.fields,help:sale_blanket_order.field_sale_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 "" +"Statut basé sur les activités\n" +"Expiré: La date d'échéance est passée\n" +"Aujourd'hui: La date d'activité est aujourd'hui\n" +"Planifié: Future activités." + +#. module: sale_blanket_order +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order_line__price_subtotal +msgid "Subtotal" +msgstr "Sous-total" + +#. module: sale_blanket_order +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order_line__price_tax +msgid "Tax" +msgstr "Taxe" + +#. module: sale_blanket_order +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order__amount_tax +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order_line__taxes_id +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order_wizard_line__taxes_id +#: model_terms:ir.ui.view,arch_db:sale_blanket_order.report_blanketorder_document +msgid "Taxes" +msgstr "Taxes" + +#. module: sale_blanket_order +#: model:ir.model.fields,help:sale_blanket_order.field_sale_blanket_order_line__display_type +msgid "Technical field for UX purpose." +msgstr "Champ technique pour UX." + +#. module: sale_blanket_order +#: model_terms:ir.ui.view,arch_db:sale_blanket_order.view_blanket_order_form +msgid "Terms and Conditions" +msgstr "Conditions générales" + +#. module: sale_blanket_order +#. odoo-python +#: code:addons/sale_blanket_order/models/sale_orders.py:0 +#, python-format +msgid "" +"The currency of the blanket order must match with that of the sale order." +msgstr "" +"La devise de la soumission doit être la même que celle dans la commande de " +"vente." + +#. module: sale_blanket_order +#. odoo-python +#: code:addons/sale_blanket_order/models/sale_orders.py:0 +#, python-format +msgid "The customer must be equal to the blanket order lines customer" +msgstr "Le client doit être le même que celui dans la ligne de soumission" + +#. module: sale_blanket_order +#. odoo-python +#: code:addons/sale_blanket_order/models/sale_orders.py:0 +#, python-format +msgid "The product in the blanket order and in the sales order must match" +msgstr "" +"Le produit dans la soumission et dans la command de vente doivent " +"correspondre" + +#. module: sale_blanket_order +#. odoo-python +#: code:addons/sale_blanket_order/wizard/create_sale_orders.py:0 +#, python-format +msgid "The sale has already been completed." +msgstr "La vente est déjà complète." + +#. module: sale_blanket_order +#: model_terms:ir.ui.view,arch_db:sale_blanket_order.view_blanket_order_form +msgid "To Draft" +msgstr "En brouillon" + +#. module: sale_blanket_order +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order__amount_total +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order_line__price_total +msgid "Total" +msgstr "Total" + +#. module: sale_blanket_order +#: model:ir.model.fields,help:sale_blanket_order.field_sale_blanket_order__activity_exception_decoration +#: model:ir.model.fields,help:sale_blanket_order.field_sale_blanket_order_line__activity_exception_decoration +msgid "Type of the exception activity on record." +msgstr "Type de l'exception sur l'enregistrement." + +#. module: sale_blanket_order +#: model_terms:ir.ui.view,arch_db:sale_blanket_order.report_blanketorder_document +msgid "Unit Price" +msgstr "Prix unitaire" + +#. module: sale_blanket_order +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order_line__product_uom +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order_wizard_line__product_uom +msgid "Unit of Measure" +msgstr "Unité de mesure" + +#. module: sale_blanket_order +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order__amount_untaxed +msgid "Untaxed Amount" +msgstr "Montant Hors Taxes" + +#. module: sale_blanket_order +#: model_terms:ir.actions.act_window,help:sale_blanket_order.act_open_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 customer, " +"control\n" +" the products delivered and control the vendor bills." +msgstr "" +"Utilisez ce menu pour chercher à l'intérieur des soumissions. Pour chaque " +"soumission,\n" +" vous pouvez traquer les discussions avec le client, " +"controler\n" +" les produits délivrés et controler les factures fournisseurs." + +#. module: sale_blanket_order +#: model_terms:ir.ui.view,arch_db:sale_blanket_order.report_blanketorder_document +msgid "VAT:" +msgstr "TVA  :" + +#. module: sale_blanket_order +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order__validity_date +msgid "Validity Date" +msgstr "Date d'expiration" + +#. module: sale_blanket_order +#. odoo-python +#: code:addons/sale_blanket_order/models/blanket_orders.py:0 +#, python-format +msgid "Validity date is mandatory" +msgstr "La date d'expiration est obligatoire" + +#. module: sale_blanket_order +#. odoo-python +#: code:addons/sale_blanket_order/models/blanket_orders.py:0 +#, python-format +msgid "Validity date must be in the future" +msgstr "La date d'expiration doit être dans le futur" + +#. module: sale_blanket_order +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order_wizard_line__partner_id +msgid "Vendor" +msgstr "Fournisseur" + +#. module: sale_blanket_order +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order__website_message_ids +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order_line__website_message_ids +msgid "Website Messages" +msgstr "Messages site internet" + +#. module: sale_blanket_order +#: model:ir.model.fields,help:sale_blanket_order.field_sale_blanket_order__website_message_ids +#: model:ir.model.fields,help:sale_blanket_order.field_sale_blanket_order_line__website_message_ids +msgid "Website communication history" +msgstr "Historique des messages internet" + +#. module: sale_blanket_order +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order_wizard_line__wizard_id +msgid "Wizard" +msgstr "Wizard" + +#. module: sale_blanket_order +#. odoo-python +#: code:addons/sale_blanket_order/models/blanket_orders.py:0 +#, python-format +msgid "" +"You can not delete a blanket order with opened sale orders! Try to cancel " +"them before." +msgstr "" +"Vous ne pouvez pas effacer une soumission avec des commande de ventes " +"ouvertes ! Essayez de les annuler avant." + +#. module: sale_blanket_order +#. odoo-python +#: code:addons/sale_blanket_order/models/blanket_orders.py:0 +#, python-format +msgid "" +"You can not delete an open blanket or with active sale orders! Try to cancel " +"it before." +msgstr "" +"Vous ne pouvez pas effacer une soumission with opened or active sale " +"orders ! Essayez de les annuler avant." + +#. module: sale_blanket_order +#. odoo-python +#: code:addons/sale_blanket_order/wizard/create_sale_orders.py:0 +#, python-format +msgid "You can't create a sale order from an expired blanket order!" +msgstr "" +"Vous ne pouvez pas créer de commande de vente depuis une soumission expirée !" + +#. module: sale_blanket_order +#. odoo-python +#: code:addons/sale_blanket_order/wizard/create_sale_orders.py:0 +#, python-format +msgid "You can't order more than the remaining quantities" +msgstr "Vous ne pouvez pas commander plus que les quantités restantes" + +#. module: sale_blanket_order +#. odoo-python +#: code:addons/sale_blanket_order/wizard/create_sale_orders.py:0 +#, python-format +msgid "You have to select lines from the same company." +msgstr "Vous devez sélectionner des lignes depuis la même société." + +#. module: sale_blanket_order +#. odoo-python +#: code:addons/sale_blanket_order/models/blanket_orders.py:0 +#, python-format +msgid "remaining" +msgstr "restant" + +#~ msgid "Analytic Tags" +#~ msgstr "Etiquettes Analytiques" + +#~ msgid "Last Modified on" +#~ msgstr "Dernière Modification le" + +#~ msgid "Main Attachment" +#~ msgstr "Pièce jointe principale" + +#~ msgid "Next Activity Calendar Event" +#~ msgstr "Prochaine Activité Calendrier" + +#~ msgid "Number of messages which requires an action" +#~ msgstr "Nombre des messages requérants une action" + +#~ msgid "Number of unread messages" +#~ msgstr "Nombre de messages non lus" + +#~ msgid "SMS Delivery error" +#~ msgstr "SMS Erreur Expédition" + +#~ msgid "Unread Messages" +#~ msgstr "Message non lus" + +#~ msgid "Unread Messages Counter" +#~ msgstr "Nombre de messages non lus" diff --git a/sale_blanket_order/i18n/it.po b/sale_blanket_order/i18n/it.po new file mode 100644 index 00000000000..893f4404763 --- /dev/null +++ b/sale_blanket_order/i18n/it.po @@ -0,0 +1,1059 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * sale_blanket_order +# +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 16.0\n" +"Report-Msgid-Bugs-To: \n" +"PO-Revision-Date: 2024-08-21 09:06+0000\n" +"Last-Translator: mymage \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.6.2\n" + +#. module: sale_blanket_order +#. odoo-python +#: code:addons/sale_blanket_order/models/blanket_orders.py:0 +#, python-format +msgid "" +"\n" +" You cannot change the type of a sale order line.\n" +" Instead you should delete the current line and create a " +"new line\n" +" of the proper type.\n" +" " +msgstr "" +"\n" +" Non si può cambiare il tipo della riga ordine di " +"vendita.\n" +" Bisogna cancellare la riga attuale e crearne una nuova\n" +" del tipo appropriato.\n" +" " + +#. module: sale_blanket_order +#: model:ir.actions.report,print_report_name:sale_blanket_order.report_blanket_order +msgid "'Blanket Order - %s' % object.name" +msgstr "'Ordine aperto - %s' % object.name" + +#. module: sale_blanket_order +#: model_terms:ir.ui.view,arch_db:sale_blanket_order.report_blanketorder_document +msgid "Blanket Order # " +msgstr "Ordine aperto #" + +#. module: sale_blanket_order +#: model_terms:ir.ui.view,arch_db:sale_blanket_order.report_blanketorder_document +msgid "Subtotal" +msgstr "Subtotale" + +#. module: sale_blanket_order +#: model_terms:ir.ui.view,arch_db:sale_blanket_order.report_blanketorder_document +msgid "Currency:" +msgstr "Valuta:" + +#. module: sale_blanket_order +#: model_terms:ir.ui.view,arch_db:sale_blanket_order.report_blanketorder_document +msgid "Salesperson:" +msgstr "Addetto alle vendite:" + +#. module: sale_blanket_order +#: model_terms:ir.ui.view,arch_db:sale_blanket_order.report_blanketorder_document +msgid "Subtotal" +msgstr "Subtotale" + +#. module: sale_blanket_order +#: model_terms:ir.ui.view,arch_db:sale_blanket_order.report_blanketorder_document +msgid "Total" +msgstr "Totale" + +#. module: sale_blanket_order +#: model_terms:ir.ui.view,arch_db:sale_blanket_order.report_blanketorder_document +msgid "Validity Date:" +msgstr "Data di validità:" + +#. module: sale_blanket_order +#: model_terms:ir.ui.view,arch_db:sale_blanket_order.report_blanketorder_document +msgid "Your Reference:" +msgstr "Vostro riferimento:" + +#. module: sale_blanket_order +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order__message_needaction +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order_line__message_needaction +msgid "Action Needed" +msgstr "Azione richiesta" + +#. module: sale_blanket_order +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order__activity_ids +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order_line__activity_ids +msgid "Activities" +msgstr "Attività" + +#. module: sale_blanket_order +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order__activity_exception_decoration +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order_line__activity_exception_decoration +msgid "Activity Exception Decoration" +msgstr "Decorazione eccezione attività" + +#. module: sale_blanket_order +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order__activity_state +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order_line__activity_state +msgid "Activity State" +msgstr "Stato attività" + +#. module: sale_blanket_order +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order__activity_type_icon +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order_line__activity_type_icon +msgid "Activity Type Icon" +msgstr "Icona tipo attività" + +#. module: sale_blanket_order +#: model_terms:ir.ui.view,arch_db:sale_blanket_order.view_blanket_order_form +msgid "Add a note" +msgstr "Aggiungi nota" + +#. module: sale_blanket_order +#: model_terms:ir.ui.view,arch_db:sale_blanket_order.view_blanket_order_form +msgid "Add a product" +msgstr "Aggiungi un prodotto" + +#. module: sale_blanket_order +#: model_terms:ir.ui.view,arch_db:sale_blanket_order.view_blanket_order_form +msgid "Add a section" +msgstr "Aggiungi una sezione" + +#. module: sale_blanket_order +#: model_terms:ir.ui.view,arch_db:sale_blanket_order.report_blanketorder_document +msgid "Amount" +msgstr "Valore" + +#. module: sale_blanket_order +#. odoo-python +#: code:addons/sale_blanket_order/wizard/create_sale_orders.py:0 +#, python-format +msgid "An order can't be empty" +msgstr "Un ordine non può essere vuoto" + +#. module: sale_blanket_order +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order__analytic_account_id +msgid "Analytic Account" +msgstr "Conto analitico" + +#. module: sale_blanket_order +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order_line__analytic_distribution +msgid "Analytic Distribution" +msgstr "Distribuzione analitica" + +#. module: sale_blanket_order +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order_line__analytic_distribution_search +msgid "Analytic Distribution Search" +msgstr "Ricerca distribuzione analitica" + +#. module: sale_blanket_order +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order_line__analytic_precision +msgid "Analytic Precision" +msgstr "Precisione analitica" + +#. module: sale_blanket_order +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order__message_attachment_count +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order_line__message_attachment_count +msgid "Attachment Count" +msgstr "Conteggio allegati" + +#. module: sale_blanket_order +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order_wizard_line__blanket_line_id +msgid "Blanket Line" +msgstr "Riga ordine aperto" + +#. module: sale_blanket_order +#: model:ir.actions.report,name:sale_blanket_order.report_blanket_order +#: model:ir.model,name:sale_blanket_order.model_sale_blanket_order +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order_wizard__blanket_order_id +#: model_terms:ir.ui.view,arch_db:sale_blanket_order.view_blanket_order_form +msgid "Blanket Order" +msgstr "Ordine aperto" + +#. module: sale_blanket_order +#: model:ir.model,name:sale_blanket_order.model_sale_blanket_order_line +msgid "Blanket Order Line" +msgstr "Riga ordine aperto" + +#. module: sale_blanket_order +#: model:ir.actions.act_window,name:sale_blanket_order.act_open_sale_blanket_order_lines_view_tree +#: model:ir.ui.menu,name:sale_blanket_order.menu_sale_blanket_order_line +msgid "Blanket Order Lines" +msgstr "Righe ordine aperto" + +#. module: sale_blanket_order +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_order_line__blanket_order_line +msgid "Blanket Order line" +msgstr "Riga ordine aperto" + +#. module: sale_blanket_order +#: model:ir.actions.act_window,name:sale_blanket_order.act_open_blanket_order_view +#: model:ir.ui.menu,name:sale_blanket_order.menu_blanket_order_config +#: model_terms:ir.ui.view,arch_db:sale_blanket_order.sale_config_settings_form_view +msgid "Blanket Orders" +msgstr "Ordini aperti" + +#. module: sale_blanket_order +#: model:ir.model,name:sale_blanket_order.model_sale_blanket_order_wizard +msgid "Blanket order wizard" +msgstr "Procedura guidata ordine aperto" + +#. module: sale_blanket_order +#: model:ir.model,name:sale_blanket_order.model_sale_blanket_order_wizard_line +msgid "Blanket order wizard line" +msgstr "Riga procedura guidata ordine aperto" + +#. module: sale_blanket_order +#. odoo-python +#: code:addons/sale_blanket_order/wizard/create_sale_orders.py:0 +#, python-format +msgid "" +"Can not create Sale Order from Blanket Order lines with different currencies" +msgstr "" +"Non si possono creare ordini di vendita da righe ordine aperto con valute " +"diverse" + +#. module: sale_blanket_order +#: model_terms:ir.ui.view,arch_db:sale_blanket_order.view_blanket_order_form +#: model_terms:ir.ui.view,arch_db:sale_blanket_order.view_create_sale_order +msgid "Cancel" +msgstr "Annulla" + +#. module: sale_blanket_order +#. odoo-python +#: code:addons/sale_blanket_order/models/sale_orders.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 aperto che non ha quantità rimanenti." + +#. module: sale_blanket_order +#: model_terms:ir.actions.act_window,help:sale_blanket_order.act_open_blanket_order_view +msgid "" +"Click to create a blanket order that can be converted into a sale order." +msgstr "" +"Cliccare per creare un ordine aperto che può essere convertito in un ordine " +"di vendita." + +#. module: sale_blanket_order +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order__company_id +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order_line__company_id +msgid "Company" +msgstr "Azienda" + +#. module: sale_blanket_order +#: model:ir.model,name:sale_blanket_order.model_res_config_settings +msgid "Config Settings" +msgstr "Impostazioni configurazione" + +#. module: sale_blanket_order +#: model_terms:ir.ui.view,arch_db:sale_blanket_order.view_blanket_order_form +msgid "Confirm" +msgstr "Conferma" + +#. module: sale_blanket_order +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order__confirmed +msgid "Confirmed" +msgstr "Confermato" + +#. module: sale_blanket_order +#: model:ir.actions.act_window,name:sale_blanket_order.action_create_sale_order +#: model_terms:ir.ui.view,arch_db:sale_blanket_order.view_blanket_order_form +#: model_terms:ir.ui.view,arch_db:sale_blanket_order.view_create_sale_order +msgid "Create Sale Order" +msgstr "Crea ordine di vendita" + +#. module: sale_blanket_order +#: model_terms:ir.ui.view,arch_db:sale_blanket_order.view_create_sale_order +msgid "Create and View Order" +msgstr "Crea e visualizza ordine" + +#. module: sale_blanket_order +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order__create_uid +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order_line__create_uid +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order_wizard__create_uid +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order_wizard_line__create_uid +msgid "Created by" +msgstr "Creato da" + +#. module: sale_blanket_order +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order__create_date +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order_line__create_date +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order_wizard__create_date +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order_wizard_line__create_date +msgid "Created on" +msgstr "Creato il" + +#. module: sale_blanket_order +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order__currency_id +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order_line__currency_id +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order_wizard_line__currency_id +msgid "Currency" +msgstr "Valuta" + +#. module: sale_blanket_order +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order_line__partner_id +msgid "Customer" +msgstr "Cliente" + +#. module: sale_blanket_order +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order__client_order_ref +msgid "Customer Reference" +msgstr "Riferimento cliente" + +#. module: sale_blanket_order +#. odoo-python +#: code:addons/sale_blanket_order/models/blanket_orders.py:0 +#, python-format +msgid "Date Scheduled" +msgstr "Data schedulata" + +#. module: sale_blanket_order +#: model_terms:ir.ui.view,arch_db:sale_blanket_order.view_blanket_order_search +msgid "Delivered Qty" +msgstr "Q.tà consegnata" + +#. module: sale_blanket_order +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order__delivered_uom_qty +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order_line__delivered_uom_qty +msgid "Delivered quantity" +msgstr "Quantità consegnata" + +#. module: sale_blanket_order +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order_line__name +msgid "Description" +msgstr "Descrizione" + +#. module: sale_blanket_order +#: model:ir.model.fields,field_description:sale_blanket_order.field_res_config_settings__group_blanket_disable_adding_lines +msgid "Disable adding more lines to SOs" +msgstr "Disabilita l'aggiunta di altre righe negli OV" + +#. module: sale_blanket_order +#: model:res.groups,name:sale_blanket_order.blanket_orders_disable_adding_lines +#: model_terms:ir.ui.view,arch_db:sale_blanket_order.sale_config_settings_form_view +msgid "Disable adding more lines to SOs from Blanket Orders" +msgstr "Disabilita l'aggiunta di altre righe negli OV da ordini aperti" + +#. module: sale_blanket_order +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order__display_name +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order_line__display_name +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order_wizard__display_name +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order_wizard_line__display_name +msgid "Display Name" +msgstr "Nome visualizzato" + +#. module: sale_blanket_order +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order_line__display_type +msgid "Display Type" +msgstr "Tipo visualizzazione" + +#. module: sale_blanket_order +#: model:ir.model.fields.selection,name:sale_blanket_order.selection__sale_blanket_order__state__done +msgid "Done" +msgstr "Evaso" + +#. module: sale_blanket_order +#: model:ir.model.fields.selection,name:sale_blanket_order.selection__sale_blanket_order__state__draft +msgid "Draft" +msgstr "Bozza" + +#. module: sale_blanket_order +#: model:ir.actions.server,name:sale_blanket_order.expired_blanket_orders_cron_ir_actions_server +msgid "Expire Blanket Orders" +msgstr "Scadenza ordini aperti" + +#. module: sale_blanket_order +#: model:ir.model.fields.selection,name:sale_blanket_order.selection__sale_blanket_order__state__expired +msgid "Expired" +msgstr "Scaduto" + +#. module: sale_blanket_order +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order__fiscal_position_id +msgid "Fiscal Position" +msgstr "Posizione fiscale" + +#. module: sale_blanket_order +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order__message_follower_ids +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order_line__message_follower_ids +msgid "Followers" +msgstr "Seguito da" + +#. module: sale_blanket_order +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order__message_partner_ids +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order_line__message_partner_ids +msgid "Followers (Partners)" +msgstr "Seguito da (partner)" + +#. module: sale_blanket_order +#: model:ir.model.fields,help:sale_blanket_order.field_sale_blanket_order__activity_type_icon +#: model:ir.model.fields,help:sale_blanket_order.field_sale_blanket_order_line__activity_type_icon +msgid "Font awesome icon e.g. fa-tasks" +msgstr "Icona Font Awesome es. fa-tasks" + +#. module: sale_blanket_order +#: model:ir.model.constraint,message:sale_blanket_order.constraint_sale_blanket_order_line_non_accountable_null_fields +msgid "Forbidden values on non-accountable sale order line" +msgstr "Valori vietati nella riga ordine vendita non giustificabile" + +#. module: sale_blanket_order +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order__has_message +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order_line__has_message +msgid "Has Message" +msgstr "Ha un messaggio" + +#. module: sale_blanket_order +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order__id +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order_line__id +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order_wizard__id +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order_wizard_line__id +msgid "ID" +msgstr "ID" + +#. module: sale_blanket_order +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order__activity_exception_icon +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order_line__activity_exception_icon +msgid "Icon" +msgstr "Icona" + +#. module: sale_blanket_order +#: model:ir.model.fields,help:sale_blanket_order.field_sale_blanket_order__activity_exception_icon +#: model:ir.model.fields,help:sale_blanket_order.field_sale_blanket_order_line__activity_exception_icon +msgid "Icon to indicate an exception activity." +msgstr "Icona per indicare un'attività eccezione." + +#. module: sale_blanket_order +#: model:ir.model.fields,help:sale_blanket_order.field_sale_blanket_order__message_needaction +#: model:ir.model.fields,help:sale_blanket_order.field_sale_blanket_order_line__message_needaction +msgid "If checked, new messages require your attention." +msgstr "Se selezionata, nuovi messaggi richiedono attenzione." + +#. module: sale_blanket_order +#: model:ir.model.fields,help:sale_blanket_order.field_sale_blanket_order__message_has_error +#: model:ir.model.fields,help:sale_blanket_order.field_sale_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: sale_blanket_order +#: model_terms:ir.ui.view,arch_db:sale_blanket_order.view_blanket_order_search +msgid "Invoiced Qty" +msgstr "Q.tà fatturata" + +#. module: sale_blanket_order +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order__invoiced_uom_qty +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order_line__invoiced_uom_qty +msgid "Invoiced quantity" +msgstr "Quantità fatturata" + +#. module: sale_blanket_order +#: model_terms:ir.ui.view,arch_db:sale_blanket_order.view_blanket_order_form +msgid "Invoicing" +msgstr "Fatturazione" + +#. module: sale_blanket_order +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order__message_is_follower +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order_line__message_is_follower +msgid "Is Follower" +msgstr "Segue" + +#. module: sale_blanket_order +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order__write_uid +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order_line__write_uid +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order_wizard__write_uid +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order_wizard_line__write_uid +msgid "Last Updated by" +msgstr "Ultimo aggiornamento di" + +#. module: sale_blanket_order +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order__write_date +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order_line__write_date +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order_wizard__write_date +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order_wizard_line__write_date +msgid "Last Updated on" +msgstr "Ultimo aggiornamento il" + +#. module: sale_blanket_order +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order_wizard__line_ids +#: model_terms:ir.ui.view,arch_db:sale_blanket_order.view_blanket_order_form +msgid "Lines" +msgstr "Righe" + +#. module: sale_blanket_order +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order__message_has_error +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order_line__message_has_error +msgid "Message Delivery error" +msgstr "Errore di consegna messaggio" + +#. module: sale_blanket_order +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order__message_ids +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order_line__message_ids +msgid "Messages" +msgstr "Messaggi" + +#. module: sale_blanket_order +#: model:ir.model.constraint,message:sale_blanket_order.constraint_sale_blanket_order_line_accountable_required_fields +msgid "Missing required fields on accountable sale order line." +msgstr "Campi richesti non compilati su riga ordine vendta giustificabile." + +#. module: sale_blanket_order +#. odoo-python +#: code:addons/sale_blanket_order/models/blanket_orders.py:0 +#, python-format +msgid "Must have some lines" +msgstr "Deve contenere delle righe" + +#. module: sale_blanket_order +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order__my_activity_date_deadline +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order_line__my_activity_date_deadline +msgid "My Activity Deadline" +msgstr "Scadenza mia attività" + +#. module: sale_blanket_order +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order__name +msgid "Name" +msgstr "Nome" + +#. module: sale_blanket_order +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order__activity_date_deadline +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order_line__activity_date_deadline +msgid "Next Activity Deadline" +msgstr "Scadenza prossima attività" + +#. module: sale_blanket_order +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order__activity_summary +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order_line__activity_summary +msgid "Next Activity Summary" +msgstr "Riepilogo prossima attività" + +#. module: sale_blanket_order +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order__activity_type_id +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order_line__activity_type_id +msgid "Next Activity Type" +msgstr "Tipo prossima attività" + +#. module: sale_blanket_order +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order__note +#: model:ir.model.fields.selection,name:sale_blanket_order.selection__sale_blanket_order_line__display_type__line_note +msgid "Note" +msgstr "Nota" + +#. module: sale_blanket_order +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order__message_needaction_counter +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order_line__message_needaction_counter +msgid "Number of Actions" +msgstr "Numero di azioni" + +#. module: sale_blanket_order +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order__message_has_error_counter +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order_line__message_has_error_counter +msgid "Number of errors" +msgstr "Numero di errori" + +#. module: sale_blanket_order +#: model:ir.model.fields,help:sale_blanket_order.field_sale_blanket_order__message_needaction_counter +#: model:ir.model.fields,help:sale_blanket_order.field_sale_blanket_order_line__message_needaction_counter +msgid "Number of messages requiring action" +msgstr "Numero di messaggi che richiedono un'azione" + +#. module: sale_blanket_order +#: model:ir.model.fields,help:sale_blanket_order.field_sale_blanket_order__message_has_error_counter +#: model:ir.model.fields,help:sale_blanket_order.field_sale_blanket_order_line__message_has_error_counter +msgid "Number of messages with delivery error" +msgstr "Numero di messaggi con errore di consegna" + +#. module: sale_blanket_order +#: model:ir.model.fields.selection,name:sale_blanket_order.selection__sale_blanket_order__state__open +#: model_terms:ir.ui.view,arch_db:sale_blanket_order.view_blanket_order_search +msgid "Open" +msgstr "Apri" + +#. module: sale_blanket_order +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order_line__order_id +msgid "Order" +msgstr "Ordine" + +#. module: sale_blanket_order +#: model_terms:ir.ui.view,arch_db:sale_blanket_order.view_blanket_order_form +msgid "Order Lines" +msgstr "Righe ordine" + +#. module: sale_blanket_order +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order__line_ids +msgid "Order lines" +msgstr "Righe ordine" + +#. module: sale_blanket_order +#: model_terms:ir.ui.view,arch_db:sale_blanket_order.view_blanket_order_search +msgid "Ordered Qty" +msgstr "Q.tà ordinata" + +#. module: sale_blanket_order +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order__ordered_uom_qty +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order_line__ordered_uom_qty +msgid "Ordered quantity" +msgstr "Quantità ordinata" + +#. module: sale_blanket_order +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_order__blanket_order_id +msgid "Origin blanket order" +msgstr "Origine ordine aperto" + +#. module: sale_blanket_order +#: model_terms:ir.ui.view,arch_db:sale_blanket_order.report_blanketorder_document +#: model_terms:ir.ui.view,arch_db:sale_blanket_order.sale_blanket_order_line_tree +#: model_terms:ir.ui.view,arch_db:sale_blanket_order.view_blanket_order_form +#: model_terms:ir.ui.view,arch_db:sale_blanket_order.view_blanket_order_search +msgid "Original Qty" +msgstr "Q.tà originale" + +#. module: sale_blanket_order +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order__original_uom_qty +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order_line__original_uom_qty +msgid "Original quantity" +msgstr "Quantità originale" + +#. module: sale_blanket_order +#: model_terms:ir.ui.view,arch_db:sale_blanket_order.view_blanket_order_form +msgid "Other Information" +msgstr "Altre informazioni" + +#. module: sale_blanket_order +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order__partner_id +msgid "Partner" +msgstr "Partner" + +#. module: sale_blanket_order +#. odoo-python +#: code:addons/sale_blanket_order/models/blanket_orders.py:0 +#, python-format +msgid "Partner is mandatory" +msgstr "Il partner è obbligatorio" + +#. module: sale_blanket_order +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order__payment_term_id +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order_line__payment_term_id +msgid "Payment Terms" +msgstr "Termini di pagamento" + +#. module: sale_blanket_order +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order_line__price_unit +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order_wizard_line__price_unit +msgid "Price" +msgstr "Prezzo" + +#. module: sale_blanket_order +#. odoo-python +#: code:addons/sale_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: sale_blanket_order +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order__pricelist_id +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order_line__pricelist_id +msgid "Pricelist" +msgstr "Listino prezzi" + +#. module: sale_blanket_order +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order_line__pricelist_item_id +msgid "Pricelist Item" +msgstr "Articolo listino prezzi" + +#. module: sale_blanket_order +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order__product_id +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order_line__product_id +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order_wizard_line__product_id +#: model_terms:ir.ui.view,arch_db:sale_blanket_order.report_blanketorder_document +msgid "Product" +msgstr "Prodotto" + +#. module: sale_blanket_order +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order_wizard__sale_order_id +msgid "Purchase Order" +msgstr "Ordine di acquisto" + +#. module: sale_blanket_order +#. odoo-python +#: code:addons/sale_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: sale_blanket_order +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order_wizard_line__qty +msgid "Quantity to Order" +msgstr "Quantità da ordinare" + +#. module: sale_blanket_order +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order__rating_ids +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order_line__rating_ids +msgid "Ratings" +msgstr "Valutazioni" + +#. module: sale_blanket_order +#: model_terms:ir.ui.view,arch_db:sale_blanket_order.view_blanket_order_search +msgid "Remaining Qty" +msgstr "Q.tà rimanente" + +#. module: sale_blanket_order +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order__remaining_uom_qty +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order_line__remaining_uom_qty +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order_wizard_line__remaining_uom_qty +msgid "Remaining quantity" +msgstr "Quantità rimanente" + +#. module: sale_blanket_order +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order_line__remaining_qty +msgid "Remaining quantity in base UoM" +msgstr "Quantità rimanente in UdM base" + +#. module: sale_blanket_order +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order_line__user_id +msgid "Responsible" +msgstr "Responsabile" + +#. module: sale_blanket_order +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order__activity_user_id +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order_line__activity_user_id +msgid "Responsible User" +msgstr "Utente responsabile" + +#. module: sale_blanket_order +#. odoo-python +#: code:addons/sale_blanket_order/wizard/create_sale_orders.py:0 +#, python-format +msgid "Sale Blanket Order %s is not open" +msgstr "L'ordine di vendita aperto %s non è aperto" + +#. module: sale_blanket_order +#: model_terms:ir.ui.view,arch_db:sale_blanket_order.sale_blanket_order_line_form +msgid "Sale Blanket Order Line" +msgstr "Riga ordine di vendita aperto" + +#. module: sale_blanket_order +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order__line_count +msgid "Sale Blanket Order Line count" +msgstr "Numero righe ordine di vendita aperto" + +#. module: sale_blanket_order +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order__sale_count +msgid "Sale Count" +msgstr "Conteggio vendite" + +#. module: sale_blanket_order +#: model_terms:ir.ui.view,arch_db:sale_blanket_order.sale_blanket_order_line_form +msgid "Sale Order Lines" +msgstr "Righe ordine di vendita" + +#. module: sale_blanket_order +#: model_terms:ir.ui.view,arch_db:sale_blanket_order.view_blanket_order_form +msgid "Sale Orders" +msgstr "Ordini di vendita" + +#. module: sale_blanket_order +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order_line__sale_lines +msgid "Sale order lines" +msgstr "Righe ordine di vendita" + +#. module: sale_blanket_order +#: model_terms:ir.ui.view,arch_db:sale_blanket_order.view_blanket_order_form +msgid "Sales Information" +msgstr "Informazioni vendite" + +#. module: sale_blanket_order +#: model:ir.model,name:sale_blanket_order.model_sale_order +msgid "Sales Order" +msgstr "Ordine di vendita" + +#. module: sale_blanket_order +#: model:ir.model,name:sale_blanket_order.model_sale_order_line +msgid "Sales Order Line" +msgstr "Riga ordine di vendita" + +#. module: sale_blanket_order +#. odoo-python +#: code:addons/sale_blanket_order/wizard/create_sale_orders.py:0 +#, python-format +msgid "Sales Orders" +msgstr "Ordini di vendita" + +#. module: sale_blanket_order +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order__team_id +msgid "Sales Team" +msgstr "Team di vendita" + +#. module: sale_blanket_order +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order__user_id +msgid "Salesperson" +msgstr "Addetto vendite" + +#. module: sale_blanket_order +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order_line__date_schedule +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order_wizard_line__date_schedule +#: model_terms:ir.ui.view,arch_db:sale_blanket_order.report_blanketorder_document +msgid "Scheduled Date" +msgstr "Data schedulata" + +#. module: sale_blanket_order +#: model_terms:ir.ui.view,arch_db:sale_blanket_order.sale_blanket_order_line_search +msgid "Search Sale Blanket Order Line" +msgstr "Cerca riga ordine di vendita aperto" + +#. module: sale_blanket_order +#: model:ir.model.fields.selection,name:sale_blanket_order.selection__sale_blanket_order_line__display_type__line_section +msgid "Section" +msgstr "Sezione" + +#. module: sale_blanket_order +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order_line__sequence +msgid "Sequence" +msgstr "Sequenza" + +#. module: sale_blanket_order +#: model_terms:ir.ui.view,arch_db:sale_blanket_order.view_blanket_order_form +msgid "Setup default terms and conditions in your company settings." +msgstr "" +"Imposta termini predefiniti e condizioni nelle tue impostazioni aziendali." + +#. module: sale_blanket_order +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order__state +msgid "State" +msgstr "Stato" + +#. module: sale_blanket_order +#: model:ir.model.fields,help:sale_blanket_order.field_sale_blanket_order__activity_state +#: model:ir.model.fields,help:sale_blanket_order.field_sale_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: sale_blanket_order +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order_line__price_subtotal +msgid "Subtotal" +msgstr "Subtotale" + +#. module: sale_blanket_order +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order_line__price_tax +msgid "Tax" +msgstr "Imposta" + +#. module: sale_blanket_order +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order__amount_tax +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order_line__taxes_id +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order_wizard_line__taxes_id +#: model_terms:ir.ui.view,arch_db:sale_blanket_order.report_blanketorder_document +msgid "Taxes" +msgstr "Imposte" + +#. module: sale_blanket_order +#: model:ir.model.fields,help:sale_blanket_order.field_sale_blanket_order_line__display_type +msgid "Technical field for UX purpose." +msgstr "Campo tecnico per motivi di UX." + +#. module: sale_blanket_order +#: model_terms:ir.ui.view,arch_db:sale_blanket_order.view_blanket_order_form +msgid "Terms and Conditions" +msgstr "Termini e condizioni" + +#. module: sale_blanket_order +#. odoo-python +#: code:addons/sale_blanket_order/models/sale_orders.py:0 +#, python-format +msgid "" +"The currency of the blanket order must match with that of the sale order." +msgstr "" +"La valuta dell'ordine aperto deve corrispondere con quella dell'ordine di " +"vendita." + +#. module: sale_blanket_order +#. odoo-python +#: code:addons/sale_blanket_order/models/sale_orders.py:0 +#, python-format +msgid "The customer must be equal to the blanket order lines customer" +msgstr "Il cliente deve essere lo stesso delle righe dell'ordine aperto" + +#. module: sale_blanket_order +#. odoo-python +#: code:addons/sale_blanket_order/models/sale_orders.py:0 +#, python-format +msgid "The product in the blanket order and in the sales order must match" +msgstr "" +"Il prodotto nell'ordine aperto e nell'ordine di vendita deve corrispondere" + +#. module: sale_blanket_order +#. odoo-python +#: code:addons/sale_blanket_order/wizard/create_sale_orders.py:0 +#, python-format +msgid "The sale has already been completed." +msgstr "La vendita è stata già completata." + +#. module: sale_blanket_order +#: model_terms:ir.ui.view,arch_db:sale_blanket_order.view_blanket_order_form +msgid "To Draft" +msgstr "A bozza" + +#. module: sale_blanket_order +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order__amount_total +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order_line__price_total +msgid "Total" +msgstr "Totale" + +#. module: sale_blanket_order +#: model:ir.model.fields,help:sale_blanket_order.field_sale_blanket_order__activity_exception_decoration +#: model:ir.model.fields,help:sale_blanket_order.field_sale_blanket_order_line__activity_exception_decoration +msgid "Type of the exception activity on record." +msgstr "Tipo di attività eccezione sul record." + +#. module: sale_blanket_order +#: model_terms:ir.ui.view,arch_db:sale_blanket_order.report_blanketorder_document +msgid "Unit Price" +msgstr "Prezzo unitario" + +#. module: sale_blanket_order +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order_line__product_uom +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order_wizard_line__product_uom +msgid "Unit of Measure" +msgstr "Unità di misura" + +#. module: sale_blanket_order +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order__amount_untaxed +msgid "Untaxed Amount" +msgstr "Imponibile" + +#. module: sale_blanket_order +#: model_terms:ir.actions.act_window,help:sale_blanket_order.act_open_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 customer, " +"control\n" +" the products delivered and control the vendor bills." +msgstr "" +"Usa questo menu per ricercare nel tuo ordine aperto. Per ogni ordine " +"aperto,\n" +" puoi tracciare le relative conversazioni con il cliente, " +"controllare\n" +" i prodotti spediti e controllare le fatture del venditore." + +#. module: sale_blanket_order +#: model_terms:ir.ui.view,arch_db:sale_blanket_order.report_blanketorder_document +msgid "VAT:" +msgstr "IVA:" + +#. module: sale_blanket_order +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order__validity_date +msgid "Validity Date" +msgstr "Data validità" + +#. module: sale_blanket_order +#. odoo-python +#: code:addons/sale_blanket_order/models/blanket_orders.py:0 +#, python-format +msgid "Validity date is mandatory" +msgstr "La data di validità è obbligatoria" + +#. module: sale_blanket_order +#. odoo-python +#: code:addons/sale_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: sale_blanket_order +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order_wizard_line__partner_id +msgid "Vendor" +msgstr "Fornitore" + +#. module: sale_blanket_order +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order__website_message_ids +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order_line__website_message_ids +msgid "Website Messages" +msgstr "Messaggi sito web" + +#. module: sale_blanket_order +#: model:ir.model.fields,help:sale_blanket_order.field_sale_blanket_order__website_message_ids +#: model:ir.model.fields,help:sale_blanket_order.field_sale_blanket_order_line__website_message_ids +msgid "Website communication history" +msgstr "Cronologia comunicazioni sito web" + +#. module: sale_blanket_order +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order_wizard_line__wizard_id +msgid "Wizard" +msgstr "Procedura guidata" + +#. module: sale_blanket_order +#. odoo-python +#: code:addons/sale_blanket_order/models/blanket_orders.py:0 +#, python-format +msgid "" +"You can not delete a blanket order with opened sale orders! Try to cancel " +"them before." +msgstr "" +"Non puoi annullare un ordine aperto con ordini di vendita aperti! Prova ad " +"annullarli prima." + +#. module: sale_blanket_order +#. odoo-python +#: code:addons/sale_blanket_order/models/blanket_orders.py:0 +#, python-format +msgid "" +"You can not delete an open blanket or with active sale orders! Try to cancel " +"it before." +msgstr "" +"Non puoi eliminare un ordine aperto o con ordini di vendita attivi! Prova " +"prima ad annullarlo." + +#. module: sale_blanket_order +#. odoo-python +#: code:addons/sale_blanket_order/wizard/create_sale_orders.py:0 +#, python-format +msgid "You can't create a sale order from an expired blanket order!" +msgstr "Non puoi creare un ordine di vendita da un ordine aperto scaduto!" + +#. module: sale_blanket_order +#. odoo-python +#: code:addons/sale_blanket_order/wizard/create_sale_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: sale_blanket_order +#. odoo-python +#: code:addons/sale_blanket_order/wizard/create_sale_orders.py:0 +#, python-format +msgid "You have to select lines from the same company." +msgstr "Bisogna selezionare le righe della stessa azienda." + +#. module: sale_blanket_order +#. odoo-python +#: code:addons/sale_blanket_order/models/blanket_orders.py:0 +#, python-format +msgid "remaining" +msgstr "rimanenti" + +#~ msgid "Analytic" +#~ msgstr "Analitico" + +#~ msgid "Last Modified on" +#~ msgstr "Ultima modifica il" + +#~ msgid "Main Attachment" +#~ msgstr "Allegato principale" + +#~ msgid "Next Activity Calendar Event" +#~ msgstr "Evento calendario attività successiva" diff --git a/sale_blanket_order/i18n/pt.po b/sale_blanket_order/i18n/pt.po new file mode 100644 index 00000000000..23c6e7d34fa --- /dev/null +++ b/sale_blanket_order/i18n/pt.po @@ -0,0 +1,1016 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * sale_blanket_order +# +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 12.0\n" +"Report-Msgid-Bugs-To: \n" +"Last-Translator: Automatically generated\n" +"Language-Team: none\n" +"Language: pt\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: \n" +"Plural-Forms: nplurals=2; plural=n > 1;\n" + +#. module: sale_blanket_order +#. odoo-python +#: code:addons/sale_blanket_order/models/blanket_orders.py:0 +#, python-format +msgid "" +"\n" +" You cannot change the type of a sale order line.\n" +" Instead you should delete the current line and create a " +"new line\n" +" of the proper type.\n" +" " +msgstr "" + +#. module: sale_blanket_order +#: model:ir.actions.report,print_report_name:sale_blanket_order.report_blanket_order +msgid "'Blanket Order - %s' % object.name" +msgstr "" + +#. module: sale_blanket_order +#: model_terms:ir.ui.view,arch_db:sale_blanket_order.report_blanketorder_document +msgid "Blanket Order # " +msgstr "" + +#. module: sale_blanket_order +#: model_terms:ir.ui.view,arch_db:sale_blanket_order.report_blanketorder_document +msgid "Subtotal" +msgstr "" + +#. module: sale_blanket_order +#: model_terms:ir.ui.view,arch_db:sale_blanket_order.report_blanketorder_document +msgid "Currency:" +msgstr "" + +#. module: sale_blanket_order +#: model_terms:ir.ui.view,arch_db:sale_blanket_order.report_blanketorder_document +msgid "Salesperson:" +msgstr "" + +#. module: sale_blanket_order +#: model_terms:ir.ui.view,arch_db:sale_blanket_order.report_blanketorder_document +msgid "Subtotal" +msgstr "" + +#. module: sale_blanket_order +#: model_terms:ir.ui.view,arch_db:sale_blanket_order.report_blanketorder_document +msgid "Total" +msgstr "" + +#. module: sale_blanket_order +#: model_terms:ir.ui.view,arch_db:sale_blanket_order.report_blanketorder_document +msgid "Validity Date:" +msgstr "" + +#. module: sale_blanket_order +#: model_terms:ir.ui.view,arch_db:sale_blanket_order.report_blanketorder_document +msgid "Your Reference:" +msgstr "" + +#. module: sale_blanket_order +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order__message_needaction +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order_line__message_needaction +msgid "Action Needed" +msgstr "" + +#. module: sale_blanket_order +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order__activity_ids +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order_line__activity_ids +msgid "Activities" +msgstr "" + +#. module: sale_blanket_order +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order__activity_exception_decoration +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order_line__activity_exception_decoration +msgid "Activity Exception Decoration" +msgstr "" + +#. module: sale_blanket_order +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order__activity_state +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order_line__activity_state +msgid "Activity State" +msgstr "" + +#. module: sale_blanket_order +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order__activity_type_icon +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order_line__activity_type_icon +msgid "Activity Type Icon" +msgstr "" + +#. module: sale_blanket_order +#: model_terms:ir.ui.view,arch_db:sale_blanket_order.view_blanket_order_form +msgid "Add a note" +msgstr "" + +#. module: sale_blanket_order +#: model_terms:ir.ui.view,arch_db:sale_blanket_order.view_blanket_order_form +msgid "Add a product" +msgstr "" + +#. module: sale_blanket_order +#: model_terms:ir.ui.view,arch_db:sale_blanket_order.view_blanket_order_form +msgid "Add a section" +msgstr "" + +#. module: sale_blanket_order +#: model_terms:ir.ui.view,arch_db:sale_blanket_order.report_blanketorder_document +msgid "Amount" +msgstr "" + +#. module: sale_blanket_order +#. odoo-python +#: code:addons/sale_blanket_order/wizard/create_sale_orders.py:0 +#, python-format +msgid "An order can't be empty" +msgstr "" + +#. module: sale_blanket_order +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order__analytic_account_id +msgid "Analytic Account" +msgstr "" + +#. module: sale_blanket_order +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order_line__analytic_distribution +msgid "Analytic Distribution" +msgstr "" + +#. module: sale_blanket_order +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order_line__analytic_distribution_search +msgid "Analytic Distribution Search" +msgstr "" + +#. module: sale_blanket_order +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order_line__analytic_precision +msgid "Analytic Precision" +msgstr "" + +#. module: sale_blanket_order +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order__message_attachment_count +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order_line__message_attachment_count +msgid "Attachment Count" +msgstr "" + +#. module: sale_blanket_order +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order_wizard_line__blanket_line_id +msgid "Blanket Line" +msgstr "" + +#. module: sale_blanket_order +#: model:ir.actions.report,name:sale_blanket_order.report_blanket_order +#: model:ir.model,name:sale_blanket_order.model_sale_blanket_order +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order_wizard__blanket_order_id +#: model_terms:ir.ui.view,arch_db:sale_blanket_order.view_blanket_order_form +msgid "Blanket Order" +msgstr "" + +#. module: sale_blanket_order +#: model:ir.model,name:sale_blanket_order.model_sale_blanket_order_line +msgid "Blanket Order Line" +msgstr "" + +#. module: sale_blanket_order +#: model:ir.actions.act_window,name:sale_blanket_order.act_open_sale_blanket_order_lines_view_tree +#: model:ir.ui.menu,name:sale_blanket_order.menu_sale_blanket_order_line +msgid "Blanket Order Lines" +msgstr "" + +#. module: sale_blanket_order +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_order_line__blanket_order_line +msgid "Blanket Order line" +msgstr "" + +#. module: sale_blanket_order +#: model:ir.actions.act_window,name:sale_blanket_order.act_open_blanket_order_view +#: model:ir.ui.menu,name:sale_blanket_order.menu_blanket_order_config +#: model_terms:ir.ui.view,arch_db:sale_blanket_order.sale_config_settings_form_view +msgid "Blanket Orders" +msgstr "" + +#. module: sale_blanket_order +#: model:ir.model,name:sale_blanket_order.model_sale_blanket_order_wizard +msgid "Blanket order wizard" +msgstr "" + +#. module: sale_blanket_order +#: model:ir.model,name:sale_blanket_order.model_sale_blanket_order_wizard_line +msgid "Blanket order wizard line" +msgstr "" + +#. module: sale_blanket_order +#. odoo-python +#: code:addons/sale_blanket_order/wizard/create_sale_orders.py:0 +#, python-format +msgid "" +"Can not create Sale Order from Blanket Order lines with different currencies" +msgstr "" + +#. module: sale_blanket_order +#: model_terms:ir.ui.view,arch_db:sale_blanket_order.view_blanket_order_form +#: model_terms:ir.ui.view,arch_db:sale_blanket_order.view_create_sale_order +msgid "Cancel" +msgstr "" + +#. module: sale_blanket_order +#. odoo-python +#: code:addons/sale_blanket_order/models/sale_orders.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: sale_blanket_order +#: model_terms:ir.actions.act_window,help:sale_blanket_order.act_open_blanket_order_view +msgid "" +"Click to create a blanket order that can be converted into a sale order." +msgstr "" + +#. module: sale_blanket_order +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order__company_id +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order_line__company_id +msgid "Company" +msgstr "" + +#. module: sale_blanket_order +#: model:ir.model,name:sale_blanket_order.model_res_config_settings +msgid "Config Settings" +msgstr "" + +#. module: sale_blanket_order +#: model_terms:ir.ui.view,arch_db:sale_blanket_order.view_blanket_order_form +msgid "Confirm" +msgstr "" + +#. module: sale_blanket_order +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order__confirmed +msgid "Confirmed" +msgstr "" + +#. module: sale_blanket_order +#: model:ir.actions.act_window,name:sale_blanket_order.action_create_sale_order +#: model_terms:ir.ui.view,arch_db:sale_blanket_order.view_blanket_order_form +#: model_terms:ir.ui.view,arch_db:sale_blanket_order.view_create_sale_order +msgid "Create Sale Order" +msgstr "" + +#. module: sale_blanket_order +#: model_terms:ir.ui.view,arch_db:sale_blanket_order.view_create_sale_order +msgid "Create and View Order" +msgstr "" + +#. module: sale_blanket_order +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order__create_uid +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order_line__create_uid +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order_wizard__create_uid +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order_wizard_line__create_uid +msgid "Created by" +msgstr "" + +#. module: sale_blanket_order +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order__create_date +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order_line__create_date +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order_wizard__create_date +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order_wizard_line__create_date +msgid "Created on" +msgstr "" + +#. module: sale_blanket_order +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order__currency_id +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order_line__currency_id +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order_wizard_line__currency_id +msgid "Currency" +msgstr "" + +#. module: sale_blanket_order +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order_line__partner_id +msgid "Customer" +msgstr "" + +#. module: sale_blanket_order +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order__client_order_ref +msgid "Customer Reference" +msgstr "" + +#. module: sale_blanket_order +#. odoo-python +#: code:addons/sale_blanket_order/models/blanket_orders.py:0 +#, python-format +msgid "Date Scheduled" +msgstr "" + +#. module: sale_blanket_order +#: model_terms:ir.ui.view,arch_db:sale_blanket_order.view_blanket_order_search +msgid "Delivered Qty" +msgstr "" + +#. module: sale_blanket_order +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order__delivered_uom_qty +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order_line__delivered_uom_qty +msgid "Delivered quantity" +msgstr "" + +#. module: sale_blanket_order +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order_line__name +msgid "Description" +msgstr "" + +#. module: sale_blanket_order +#: model:ir.model.fields,field_description:sale_blanket_order.field_res_config_settings__group_blanket_disable_adding_lines +msgid "Disable adding more lines to SOs" +msgstr "" + +#. module: sale_blanket_order +#: model:res.groups,name:sale_blanket_order.blanket_orders_disable_adding_lines +#: model_terms:ir.ui.view,arch_db:sale_blanket_order.sale_config_settings_form_view +msgid "Disable adding more lines to SOs from Blanket Orders" +msgstr "" + +#. module: sale_blanket_order +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order__display_name +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order_line__display_name +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order_wizard__display_name +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order_wizard_line__display_name +msgid "Display Name" +msgstr "" + +#. module: sale_blanket_order +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order_line__display_type +msgid "Display Type" +msgstr "" + +#. module: sale_blanket_order +#: model:ir.model.fields.selection,name:sale_blanket_order.selection__sale_blanket_order__state__done +msgid "Done" +msgstr "" + +#. module: sale_blanket_order +#: model:ir.model.fields.selection,name:sale_blanket_order.selection__sale_blanket_order__state__draft +msgid "Draft" +msgstr "" + +#. module: sale_blanket_order +#: model:ir.actions.server,name:sale_blanket_order.expired_blanket_orders_cron_ir_actions_server +msgid "Expire Blanket Orders" +msgstr "" + +#. module: sale_blanket_order +#: model:ir.model.fields.selection,name:sale_blanket_order.selection__sale_blanket_order__state__expired +msgid "Expired" +msgstr "" + +#. module: sale_blanket_order +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order__fiscal_position_id +msgid "Fiscal Position" +msgstr "" + +#. module: sale_blanket_order +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order__message_follower_ids +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order_line__message_follower_ids +msgid "Followers" +msgstr "" + +#. module: sale_blanket_order +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order__message_partner_ids +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order_line__message_partner_ids +msgid "Followers (Partners)" +msgstr "" + +#. module: sale_blanket_order +#: model:ir.model.fields,help:sale_blanket_order.field_sale_blanket_order__activity_type_icon +#: model:ir.model.fields,help:sale_blanket_order.field_sale_blanket_order_line__activity_type_icon +msgid "Font awesome icon e.g. fa-tasks" +msgstr "" + +#. module: sale_blanket_order +#: model:ir.model.constraint,message:sale_blanket_order.constraint_sale_blanket_order_line_non_accountable_null_fields +msgid "Forbidden values on non-accountable sale order line" +msgstr "" + +#. module: sale_blanket_order +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order__has_message +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order_line__has_message +msgid "Has Message" +msgstr "" + +#. module: sale_blanket_order +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order__id +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order_line__id +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order_wizard__id +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order_wizard_line__id +msgid "ID" +msgstr "" + +#. module: sale_blanket_order +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order__activity_exception_icon +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order_line__activity_exception_icon +msgid "Icon" +msgstr "" + +#. module: sale_blanket_order +#: model:ir.model.fields,help:sale_blanket_order.field_sale_blanket_order__activity_exception_icon +#: model:ir.model.fields,help:sale_blanket_order.field_sale_blanket_order_line__activity_exception_icon +msgid "Icon to indicate an exception activity." +msgstr "" + +#. module: sale_blanket_order +#: model:ir.model.fields,help:sale_blanket_order.field_sale_blanket_order__message_needaction +#: model:ir.model.fields,help:sale_blanket_order.field_sale_blanket_order_line__message_needaction +msgid "If checked, new messages require your attention." +msgstr "" + +#. module: sale_blanket_order +#: model:ir.model.fields,help:sale_blanket_order.field_sale_blanket_order__message_has_error +#: model:ir.model.fields,help:sale_blanket_order.field_sale_blanket_order_line__message_has_error +msgid "If checked, some messages have a delivery error." +msgstr "" + +#. module: sale_blanket_order +#: model_terms:ir.ui.view,arch_db:sale_blanket_order.view_blanket_order_search +msgid "Invoiced Qty" +msgstr "" + +#. module: sale_blanket_order +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order__invoiced_uom_qty +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order_line__invoiced_uom_qty +msgid "Invoiced quantity" +msgstr "" + +#. module: sale_blanket_order +#: model_terms:ir.ui.view,arch_db:sale_blanket_order.view_blanket_order_form +msgid "Invoicing" +msgstr "" + +#. module: sale_blanket_order +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order__message_is_follower +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order_line__message_is_follower +msgid "Is Follower" +msgstr "" + +#. module: sale_blanket_order +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order__write_uid +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order_line__write_uid +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order_wizard__write_uid +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order_wizard_line__write_uid +msgid "Last Updated by" +msgstr "" + +#. module: sale_blanket_order +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order__write_date +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order_line__write_date +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order_wizard__write_date +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order_wizard_line__write_date +msgid "Last Updated on" +msgstr "" + +#. module: sale_blanket_order +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order_wizard__line_ids +#: model_terms:ir.ui.view,arch_db:sale_blanket_order.view_blanket_order_form +msgid "Lines" +msgstr "" + +#. module: sale_blanket_order +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order__message_has_error +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order_line__message_has_error +msgid "Message Delivery error" +msgstr "" + +#. module: sale_blanket_order +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order__message_ids +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order_line__message_ids +msgid "Messages" +msgstr "" + +#. module: sale_blanket_order +#: model:ir.model.constraint,message:sale_blanket_order.constraint_sale_blanket_order_line_accountable_required_fields +msgid "Missing required fields on accountable sale order line." +msgstr "" + +#. module: sale_blanket_order +#. odoo-python +#: code:addons/sale_blanket_order/models/blanket_orders.py:0 +#, python-format +msgid "Must have some lines" +msgstr "" + +#. module: sale_blanket_order +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order__my_activity_date_deadline +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order_line__my_activity_date_deadline +msgid "My Activity Deadline" +msgstr "" + +#. module: sale_blanket_order +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order__name +msgid "Name" +msgstr "" + +#. module: sale_blanket_order +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order__activity_date_deadline +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order_line__activity_date_deadline +msgid "Next Activity Deadline" +msgstr "" + +#. module: sale_blanket_order +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order__activity_summary +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order_line__activity_summary +msgid "Next Activity Summary" +msgstr "" + +#. module: sale_blanket_order +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order__activity_type_id +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order_line__activity_type_id +msgid "Next Activity Type" +msgstr "" + +#. module: sale_blanket_order +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order__note +#: model:ir.model.fields.selection,name:sale_blanket_order.selection__sale_blanket_order_line__display_type__line_note +msgid "Note" +msgstr "" + +#. module: sale_blanket_order +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order__message_needaction_counter +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order_line__message_needaction_counter +msgid "Number of Actions" +msgstr "" + +#. module: sale_blanket_order +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order__message_has_error_counter +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order_line__message_has_error_counter +msgid "Number of errors" +msgstr "" + +#. module: sale_blanket_order +#: model:ir.model.fields,help:sale_blanket_order.field_sale_blanket_order__message_needaction_counter +#: model:ir.model.fields,help:sale_blanket_order.field_sale_blanket_order_line__message_needaction_counter +msgid "Number of messages requiring action" +msgstr "" + +#. module: sale_blanket_order +#: model:ir.model.fields,help:sale_blanket_order.field_sale_blanket_order__message_has_error_counter +#: model:ir.model.fields,help:sale_blanket_order.field_sale_blanket_order_line__message_has_error_counter +msgid "Number of messages with delivery error" +msgstr "" + +#. module: sale_blanket_order +#: model:ir.model.fields.selection,name:sale_blanket_order.selection__sale_blanket_order__state__open +#: model_terms:ir.ui.view,arch_db:sale_blanket_order.view_blanket_order_search +msgid "Open" +msgstr "" + +#. module: sale_blanket_order +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order_line__order_id +msgid "Order" +msgstr "" + +#. module: sale_blanket_order +#: model_terms:ir.ui.view,arch_db:sale_blanket_order.view_blanket_order_form +msgid "Order Lines" +msgstr "" + +#. module: sale_blanket_order +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order__line_ids +msgid "Order lines" +msgstr "" + +#. module: sale_blanket_order +#: model_terms:ir.ui.view,arch_db:sale_blanket_order.view_blanket_order_search +msgid "Ordered Qty" +msgstr "" + +#. module: sale_blanket_order +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order__ordered_uom_qty +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order_line__ordered_uom_qty +msgid "Ordered quantity" +msgstr "" + +#. module: sale_blanket_order +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_order__blanket_order_id +msgid "Origin blanket order" +msgstr "" + +#. module: sale_blanket_order +#: model_terms:ir.ui.view,arch_db:sale_blanket_order.report_blanketorder_document +#: model_terms:ir.ui.view,arch_db:sale_blanket_order.sale_blanket_order_line_tree +#: model_terms:ir.ui.view,arch_db:sale_blanket_order.view_blanket_order_form +#: model_terms:ir.ui.view,arch_db:sale_blanket_order.view_blanket_order_search +msgid "Original Qty" +msgstr "" + +#. module: sale_blanket_order +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order__original_uom_qty +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order_line__original_uom_qty +msgid "Original quantity" +msgstr "" + +#. module: sale_blanket_order +#: model_terms:ir.ui.view,arch_db:sale_blanket_order.view_blanket_order_form +msgid "Other Information" +msgstr "" + +#. module: sale_blanket_order +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order__partner_id +msgid "Partner" +msgstr "" + +#. module: sale_blanket_order +#. odoo-python +#: code:addons/sale_blanket_order/models/blanket_orders.py:0 +#, python-format +msgid "Partner is mandatory" +msgstr "" + +#. module: sale_blanket_order +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order__payment_term_id +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order_line__payment_term_id +msgid "Payment Terms" +msgstr "" + +#. module: sale_blanket_order +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order_line__price_unit +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order_wizard_line__price_unit +msgid "Price" +msgstr "" + +#. module: sale_blanket_order +#. odoo-python +#: code:addons/sale_blanket_order/models/blanket_orders.py:0 +#, python-format +msgid "Price must be greater than zero" +msgstr "" + +#. module: sale_blanket_order +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order__pricelist_id +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order_line__pricelist_id +msgid "Pricelist" +msgstr "" + +#. module: sale_blanket_order +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order_line__pricelist_item_id +msgid "Pricelist Item" +msgstr "" + +#. module: sale_blanket_order +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order__product_id +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order_line__product_id +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order_wizard_line__product_id +#: model_terms:ir.ui.view,arch_db:sale_blanket_order.report_blanketorder_document +msgid "Product" +msgstr "" + +#. module: sale_blanket_order +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order_wizard__sale_order_id +msgid "Purchase Order" +msgstr "" + +#. module: sale_blanket_order +#. odoo-python +#: code:addons/sale_blanket_order/models/blanket_orders.py:0 +#, python-format +msgid "Quantity must be greater than zero" +msgstr "" + +#. module: sale_blanket_order +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order_wizard_line__qty +msgid "Quantity to Order" +msgstr "" + +#. module: sale_blanket_order +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order__rating_ids +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order_line__rating_ids +msgid "Ratings" +msgstr "" + +#. module: sale_blanket_order +#: model_terms:ir.ui.view,arch_db:sale_blanket_order.view_blanket_order_search +msgid "Remaining Qty" +msgstr "" + +#. module: sale_blanket_order +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order__remaining_uom_qty +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order_line__remaining_uom_qty +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order_wizard_line__remaining_uom_qty +msgid "Remaining quantity" +msgstr "" + +#. module: sale_blanket_order +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order_line__remaining_qty +msgid "Remaining quantity in base UoM" +msgstr "" + +#. module: sale_blanket_order +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order_line__user_id +msgid "Responsible" +msgstr "" + +#. module: sale_blanket_order +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order__activity_user_id +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order_line__activity_user_id +msgid "Responsible User" +msgstr "" + +#. module: sale_blanket_order +#. odoo-python +#: code:addons/sale_blanket_order/wizard/create_sale_orders.py:0 +#, python-format +msgid "Sale Blanket Order %s is not open" +msgstr "" + +#. module: sale_blanket_order +#: model_terms:ir.ui.view,arch_db:sale_blanket_order.sale_blanket_order_line_form +msgid "Sale Blanket Order Line" +msgstr "" + +#. module: sale_blanket_order +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order__line_count +msgid "Sale Blanket Order Line count" +msgstr "" + +#. module: sale_blanket_order +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order__sale_count +msgid "Sale Count" +msgstr "" + +#. module: sale_blanket_order +#: model_terms:ir.ui.view,arch_db:sale_blanket_order.sale_blanket_order_line_form +msgid "Sale Order Lines" +msgstr "" + +#. module: sale_blanket_order +#: model_terms:ir.ui.view,arch_db:sale_blanket_order.view_blanket_order_form +msgid "Sale Orders" +msgstr "" + +#. module: sale_blanket_order +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order_line__sale_lines +msgid "Sale order lines" +msgstr "" + +#. module: sale_blanket_order +#: model_terms:ir.ui.view,arch_db:sale_blanket_order.view_blanket_order_form +msgid "Sales Information" +msgstr "" + +#. module: sale_blanket_order +#: model:ir.model,name:sale_blanket_order.model_sale_order +msgid "Sales Order" +msgstr "" + +#. module: sale_blanket_order +#: model:ir.model,name:sale_blanket_order.model_sale_order_line +msgid "Sales Order Line" +msgstr "" + +#. module: sale_blanket_order +#. odoo-python +#: code:addons/sale_blanket_order/wizard/create_sale_orders.py:0 +#, python-format +msgid "Sales Orders" +msgstr "" + +#. module: sale_blanket_order +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order__team_id +msgid "Sales Team" +msgstr "" + +#. module: sale_blanket_order +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order__user_id +msgid "Salesperson" +msgstr "" + +#. module: sale_blanket_order +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order_line__date_schedule +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order_wizard_line__date_schedule +#: model_terms:ir.ui.view,arch_db:sale_blanket_order.report_blanketorder_document +msgid "Scheduled Date" +msgstr "" + +#. module: sale_blanket_order +#: model_terms:ir.ui.view,arch_db:sale_blanket_order.sale_blanket_order_line_search +msgid "Search Sale Blanket Order Line" +msgstr "" + +#. module: sale_blanket_order +#: model:ir.model.fields.selection,name:sale_blanket_order.selection__sale_blanket_order_line__display_type__line_section +msgid "Section" +msgstr "" + +#. module: sale_blanket_order +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order_line__sequence +msgid "Sequence" +msgstr "" + +#. module: sale_blanket_order +#: model_terms:ir.ui.view,arch_db:sale_blanket_order.view_blanket_order_form +msgid "Setup default terms and conditions in your company settings." +msgstr "" + +#. module: sale_blanket_order +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order__state +msgid "State" +msgstr "" + +#. module: sale_blanket_order +#: model:ir.model.fields,help:sale_blanket_order.field_sale_blanket_order__activity_state +#: model:ir.model.fields,help:sale_blanket_order.field_sale_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: sale_blanket_order +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order_line__price_subtotal +msgid "Subtotal" +msgstr "" + +#. module: sale_blanket_order +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order_line__price_tax +msgid "Tax" +msgstr "" + +#. module: sale_blanket_order +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order__amount_tax +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order_line__taxes_id +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order_wizard_line__taxes_id +#: model_terms:ir.ui.view,arch_db:sale_blanket_order.report_blanketorder_document +msgid "Taxes" +msgstr "" + +#. module: sale_blanket_order +#: model:ir.model.fields,help:sale_blanket_order.field_sale_blanket_order_line__display_type +msgid "Technical field for UX purpose." +msgstr "" + +#. module: sale_blanket_order +#: model_terms:ir.ui.view,arch_db:sale_blanket_order.view_blanket_order_form +msgid "Terms and Conditions" +msgstr "" + +#. module: sale_blanket_order +#. odoo-python +#: code:addons/sale_blanket_order/models/sale_orders.py:0 +#, python-format +msgid "" +"The currency of the blanket order must match with that of the sale order." +msgstr "" + +#. module: sale_blanket_order +#. odoo-python +#: code:addons/sale_blanket_order/models/sale_orders.py:0 +#, python-format +msgid "The customer must be equal to the blanket order lines customer" +msgstr "" + +#. module: sale_blanket_order +#. odoo-python +#: code:addons/sale_blanket_order/models/sale_orders.py:0 +#, python-format +msgid "The product in the blanket order and in the sales order must match" +msgstr "" + +#. module: sale_blanket_order +#. odoo-python +#: code:addons/sale_blanket_order/wizard/create_sale_orders.py:0 +#, python-format +msgid "The sale has already been completed." +msgstr "" + +#. module: sale_blanket_order +#: model_terms:ir.ui.view,arch_db:sale_blanket_order.view_blanket_order_form +msgid "To Draft" +msgstr "" + +#. module: sale_blanket_order +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order__amount_total +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order_line__price_total +msgid "Total" +msgstr "" + +#. module: sale_blanket_order +#: model:ir.model.fields,help:sale_blanket_order.field_sale_blanket_order__activity_exception_decoration +#: model:ir.model.fields,help:sale_blanket_order.field_sale_blanket_order_line__activity_exception_decoration +msgid "Type of the exception activity on record." +msgstr "" + +#. module: sale_blanket_order +#: model_terms:ir.ui.view,arch_db:sale_blanket_order.report_blanketorder_document +msgid "Unit Price" +msgstr "" + +#. module: sale_blanket_order +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order_line__product_uom +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order_wizard_line__product_uom +msgid "Unit of Measure" +msgstr "" + +#. module: sale_blanket_order +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order__amount_untaxed +msgid "Untaxed Amount" +msgstr "" + +#. module: sale_blanket_order +#: model_terms:ir.actions.act_window,help:sale_blanket_order.act_open_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 customer, " +"control\n" +" the products delivered and control the vendor bills." +msgstr "" + +#. module: sale_blanket_order +#: model_terms:ir.ui.view,arch_db:sale_blanket_order.report_blanketorder_document +msgid "VAT:" +msgstr "" + +#. module: sale_blanket_order +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order__validity_date +msgid "Validity Date" +msgstr "" + +#. module: sale_blanket_order +#. odoo-python +#: code:addons/sale_blanket_order/models/blanket_orders.py:0 +#, python-format +msgid "Validity date is mandatory" +msgstr "" + +#. module: sale_blanket_order +#. odoo-python +#: code:addons/sale_blanket_order/models/blanket_orders.py:0 +#, python-format +msgid "Validity date must be in the future" +msgstr "" + +#. module: sale_blanket_order +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order_wizard_line__partner_id +msgid "Vendor" +msgstr "" + +#. module: sale_blanket_order +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order__website_message_ids +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order_line__website_message_ids +msgid "Website Messages" +msgstr "" + +#. module: sale_blanket_order +#: model:ir.model.fields,help:sale_blanket_order.field_sale_blanket_order__website_message_ids +#: model:ir.model.fields,help:sale_blanket_order.field_sale_blanket_order_line__website_message_ids +msgid "Website communication history" +msgstr "" + +#. module: sale_blanket_order +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order_wizard_line__wizard_id +msgid "Wizard" +msgstr "" + +#. module: sale_blanket_order +#. odoo-python +#: code:addons/sale_blanket_order/models/blanket_orders.py:0 +#, python-format +msgid "" +"You can not delete a blanket order with opened sale orders! Try to cancel " +"them before." +msgstr "" + +#. module: sale_blanket_order +#. odoo-python +#: code:addons/sale_blanket_order/models/blanket_orders.py:0 +#, python-format +msgid "" +"You can not delete an open blanket or with active sale orders! Try to cancel " +"it before." +msgstr "" + +#. module: sale_blanket_order +#. odoo-python +#: code:addons/sale_blanket_order/wizard/create_sale_orders.py:0 +#, python-format +msgid "You can't create a sale order from an expired blanket order!" +msgstr "" + +#. module: sale_blanket_order +#. odoo-python +#: code:addons/sale_blanket_order/wizard/create_sale_orders.py:0 +#, python-format +msgid "You can't order more than the remaining quantities" +msgstr "" + +#. module: sale_blanket_order +#. odoo-python +#: code:addons/sale_blanket_order/wizard/create_sale_orders.py:0 +#, python-format +msgid "You have to select lines from the same company." +msgstr "" + +#. module: sale_blanket_order +#. odoo-python +#: code:addons/sale_blanket_order/models/blanket_orders.py:0 +#, python-format +msgid "remaining" +msgstr "" diff --git a/sale_blanket_order/i18n/sale_blanket_order.pot b/sale_blanket_order/i18n/sale_blanket_order.pot new file mode 100644 index 00000000000..e1e1dda6e03 --- /dev/null +++ b/sale_blanket_order/i18n/sale_blanket_order.pot @@ -0,0 +1,1013 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * sale_blanket_order +# +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 17.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: sale_blanket_order +#. odoo-python +#: code:addons/sale_blanket_order/models/blanket_orders.py:0 +#, python-format +msgid "" +"\n" +" You cannot change the type of a sale order line.\n" +" Instead you should delete the current line and create a new line\n" +" of the proper type.\n" +" " +msgstr "" + +#. module: sale_blanket_order +#: model:ir.actions.report,print_report_name:sale_blanket_order.report_blanket_order +msgid "'Blanket Order - %s' % object.name" +msgstr "" + +#. module: sale_blanket_order +#: model_terms:ir.ui.view,arch_db:sale_blanket_order.report_blanketorder_document +msgid "Blanket Order # " +msgstr "" + +#. module: sale_blanket_order +#: model_terms:ir.ui.view,arch_db:sale_blanket_order.report_blanketorder_document +msgid "Subtotal" +msgstr "" + +#. module: sale_blanket_order +#: model_terms:ir.ui.view,arch_db:sale_blanket_order.report_blanketorder_document +msgid "Currency:" +msgstr "" + +#. module: sale_blanket_order +#: model_terms:ir.ui.view,arch_db:sale_blanket_order.report_blanketorder_document +msgid "Salesperson:" +msgstr "" + +#. module: sale_blanket_order +#: model_terms:ir.ui.view,arch_db:sale_blanket_order.report_blanketorder_document +msgid "Subtotal" +msgstr "" + +#. module: sale_blanket_order +#: model_terms:ir.ui.view,arch_db:sale_blanket_order.report_blanketorder_document +msgid "Total" +msgstr "" + +#. module: sale_blanket_order +#: model_terms:ir.ui.view,arch_db:sale_blanket_order.report_blanketorder_document +msgid "Validity Date:" +msgstr "" + +#. module: sale_blanket_order +#: model_terms:ir.ui.view,arch_db:sale_blanket_order.report_blanketorder_document +msgid "Your Reference:" +msgstr "" + +#. module: sale_blanket_order +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order__message_needaction +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order_line__message_needaction +msgid "Action Needed" +msgstr "" + +#. module: sale_blanket_order +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order__activity_ids +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order_line__activity_ids +msgid "Activities" +msgstr "" + +#. module: sale_blanket_order +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order__activity_exception_decoration +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order_line__activity_exception_decoration +msgid "Activity Exception Decoration" +msgstr "" + +#. module: sale_blanket_order +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order__activity_state +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order_line__activity_state +msgid "Activity State" +msgstr "" + +#. module: sale_blanket_order +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order__activity_type_icon +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order_line__activity_type_icon +msgid "Activity Type Icon" +msgstr "" + +#. module: sale_blanket_order +#: model_terms:ir.ui.view,arch_db:sale_blanket_order.view_blanket_order_form +msgid "Add a note" +msgstr "" + +#. module: sale_blanket_order +#: model_terms:ir.ui.view,arch_db:sale_blanket_order.view_blanket_order_form +msgid "Add a product" +msgstr "" + +#. module: sale_blanket_order +#: model_terms:ir.ui.view,arch_db:sale_blanket_order.view_blanket_order_form +msgid "Add a section" +msgstr "" + +#. module: sale_blanket_order +#: model_terms:ir.ui.view,arch_db:sale_blanket_order.report_blanketorder_document +msgid "Amount" +msgstr "" + +#. module: sale_blanket_order +#. odoo-python +#: code:addons/sale_blanket_order/wizard/create_sale_orders.py:0 +#, python-format +msgid "An order can't be empty" +msgstr "" + +#. module: sale_blanket_order +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order__analytic_account_id +msgid "Analytic Account" +msgstr "" + +#. module: sale_blanket_order +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order_line__analytic_distribution +msgid "Analytic Distribution" +msgstr "" + +#. module: sale_blanket_order +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order_line__analytic_distribution_search +msgid "Analytic Distribution Search" +msgstr "" + +#. module: sale_blanket_order +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order_line__analytic_precision +msgid "Analytic Precision" +msgstr "" + +#. module: sale_blanket_order +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order__message_attachment_count +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order_line__message_attachment_count +msgid "Attachment Count" +msgstr "" + +#. module: sale_blanket_order +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order_wizard_line__blanket_line_id +msgid "Blanket Line" +msgstr "" + +#. module: sale_blanket_order +#: model:ir.actions.report,name:sale_blanket_order.report_blanket_order +#: model:ir.model,name:sale_blanket_order.model_sale_blanket_order +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order_wizard__blanket_order_id +#: model_terms:ir.ui.view,arch_db:sale_blanket_order.view_blanket_order_form +msgid "Blanket Order" +msgstr "" + +#. module: sale_blanket_order +#: model:ir.model,name:sale_blanket_order.model_sale_blanket_order_line +msgid "Blanket Order Line" +msgstr "" + +#. module: sale_blanket_order +#: model:ir.actions.act_window,name:sale_blanket_order.act_open_sale_blanket_order_lines_view_tree +#: model:ir.ui.menu,name:sale_blanket_order.menu_sale_blanket_order_line +msgid "Blanket Order Lines" +msgstr "" + +#. module: sale_blanket_order +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_order_line__blanket_order_line +msgid "Blanket Order line" +msgstr "" + +#. module: sale_blanket_order +#: model:ir.actions.act_window,name:sale_blanket_order.act_open_blanket_order_view +#: model:ir.ui.menu,name:sale_blanket_order.menu_blanket_order_config +#: model_terms:ir.ui.view,arch_db:sale_blanket_order.sale_config_settings_form_view +msgid "Blanket Orders" +msgstr "" + +#. module: sale_blanket_order +#: model:ir.model,name:sale_blanket_order.model_sale_blanket_order_wizard +msgid "Blanket order wizard" +msgstr "" + +#. module: sale_blanket_order +#: model:ir.model,name:sale_blanket_order.model_sale_blanket_order_wizard_line +msgid "Blanket order wizard line" +msgstr "" + +#. module: sale_blanket_order +#. odoo-python +#: code:addons/sale_blanket_order/wizard/create_sale_orders.py:0 +#, python-format +msgid "" +"Can not create Sale Order from Blanket Order lines with different currencies" +msgstr "" + +#. module: sale_blanket_order +#: model_terms:ir.ui.view,arch_db:sale_blanket_order.view_blanket_order_form +#: model_terms:ir.ui.view,arch_db:sale_blanket_order.view_create_sale_order +msgid "Cancel" +msgstr "" + +#. module: sale_blanket_order +#. odoo-python +#: code:addons/sale_blanket_order/models/sale_orders.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: sale_blanket_order +#: model_terms:ir.actions.act_window,help:sale_blanket_order.act_open_blanket_order_view +msgid "" +"Click to create a blanket order that can be converted into a sale order." +msgstr "" + +#. module: sale_blanket_order +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order__company_id +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order_line__company_id +msgid "Company" +msgstr "" + +#. module: sale_blanket_order +#: model:ir.model,name:sale_blanket_order.model_res_config_settings +msgid "Config Settings" +msgstr "" + +#. module: sale_blanket_order +#: model_terms:ir.ui.view,arch_db:sale_blanket_order.view_blanket_order_form +msgid "Confirm" +msgstr "" + +#. module: sale_blanket_order +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order__confirmed +msgid "Confirmed" +msgstr "" + +#. module: sale_blanket_order +#: model:ir.actions.act_window,name:sale_blanket_order.action_create_sale_order +#: model_terms:ir.ui.view,arch_db:sale_blanket_order.view_blanket_order_form +#: model_terms:ir.ui.view,arch_db:sale_blanket_order.view_create_sale_order +msgid "Create Sale Order" +msgstr "" + +#. module: sale_blanket_order +#: model_terms:ir.ui.view,arch_db:sale_blanket_order.view_create_sale_order +msgid "Create and View Order" +msgstr "" + +#. module: sale_blanket_order +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order__create_uid +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order_line__create_uid +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order_wizard__create_uid +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order_wizard_line__create_uid +msgid "Created by" +msgstr "" + +#. module: sale_blanket_order +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order__create_date +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order_line__create_date +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order_wizard__create_date +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order_wizard_line__create_date +msgid "Created on" +msgstr "" + +#. module: sale_blanket_order +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order__currency_id +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order_line__currency_id +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order_wizard_line__currency_id +msgid "Currency" +msgstr "" + +#. module: sale_blanket_order +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order_line__partner_id +msgid "Customer" +msgstr "" + +#. module: sale_blanket_order +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order__client_order_ref +msgid "Customer Reference" +msgstr "" + +#. module: sale_blanket_order +#. odoo-python +#: code:addons/sale_blanket_order/models/blanket_orders.py:0 +#, python-format +msgid "Date Scheduled" +msgstr "" + +#. module: sale_blanket_order +#: model_terms:ir.ui.view,arch_db:sale_blanket_order.view_blanket_order_search +msgid "Delivered Qty" +msgstr "" + +#. module: sale_blanket_order +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order__delivered_uom_qty +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order_line__delivered_uom_qty +msgid "Delivered quantity" +msgstr "" + +#. module: sale_blanket_order +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order_line__name +msgid "Description" +msgstr "" + +#. module: sale_blanket_order +#: model:ir.model.fields,field_description:sale_blanket_order.field_res_config_settings__group_blanket_disable_adding_lines +msgid "Disable adding more lines to SOs" +msgstr "" + +#. module: sale_blanket_order +#: model:res.groups,name:sale_blanket_order.blanket_orders_disable_adding_lines +#: model_terms:ir.ui.view,arch_db:sale_blanket_order.sale_config_settings_form_view +msgid "Disable adding more lines to SOs from Blanket Orders" +msgstr "" + +#. module: sale_blanket_order +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order__display_name +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order_line__display_name +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order_wizard__display_name +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order_wizard_line__display_name +msgid "Display Name" +msgstr "" + +#. module: sale_blanket_order +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order_line__display_type +msgid "Display Type" +msgstr "" + +#. module: sale_blanket_order +#: model:ir.model.fields.selection,name:sale_blanket_order.selection__sale_blanket_order__state__done +msgid "Done" +msgstr "" + +#. module: sale_blanket_order +#: model:ir.model.fields.selection,name:sale_blanket_order.selection__sale_blanket_order__state__draft +msgid "Draft" +msgstr "" + +#. module: sale_blanket_order +#: model:ir.actions.server,name:sale_blanket_order.expired_blanket_orders_cron_ir_actions_server +msgid "Expire Blanket Orders" +msgstr "" + +#. module: sale_blanket_order +#: model:ir.model.fields.selection,name:sale_blanket_order.selection__sale_blanket_order__state__expired +msgid "Expired" +msgstr "" + +#. module: sale_blanket_order +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order__fiscal_position_id +msgid "Fiscal Position" +msgstr "" + +#. module: sale_blanket_order +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order__message_follower_ids +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order_line__message_follower_ids +msgid "Followers" +msgstr "" + +#. module: sale_blanket_order +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order__message_partner_ids +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order_line__message_partner_ids +msgid "Followers (Partners)" +msgstr "" + +#. module: sale_blanket_order +#: model:ir.model.fields,help:sale_blanket_order.field_sale_blanket_order__activity_type_icon +#: model:ir.model.fields,help:sale_blanket_order.field_sale_blanket_order_line__activity_type_icon +msgid "Font awesome icon e.g. fa-tasks" +msgstr "" + +#. module: sale_blanket_order +#: model:ir.model.constraint,message:sale_blanket_order.constraint_sale_blanket_order_line_non_accountable_null_fields +msgid "Forbidden values on non-accountable sale order line" +msgstr "" + +#. module: sale_blanket_order +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order__has_message +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order_line__has_message +msgid "Has Message" +msgstr "" + +#. module: sale_blanket_order +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order__id +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order_line__id +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order_wizard__id +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order_wizard_line__id +msgid "ID" +msgstr "" + +#. module: sale_blanket_order +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order__activity_exception_icon +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order_line__activity_exception_icon +msgid "Icon" +msgstr "" + +#. module: sale_blanket_order +#: model:ir.model.fields,help:sale_blanket_order.field_sale_blanket_order__activity_exception_icon +#: model:ir.model.fields,help:sale_blanket_order.field_sale_blanket_order_line__activity_exception_icon +msgid "Icon to indicate an exception activity." +msgstr "" + +#. module: sale_blanket_order +#: model:ir.model.fields,help:sale_blanket_order.field_sale_blanket_order__message_needaction +#: model:ir.model.fields,help:sale_blanket_order.field_sale_blanket_order_line__message_needaction +msgid "If checked, new messages require your attention." +msgstr "" + +#. module: sale_blanket_order +#: model:ir.model.fields,help:sale_blanket_order.field_sale_blanket_order__message_has_error +#: model:ir.model.fields,help:sale_blanket_order.field_sale_blanket_order_line__message_has_error +msgid "If checked, some messages have a delivery error." +msgstr "" + +#. module: sale_blanket_order +#: model_terms:ir.ui.view,arch_db:sale_blanket_order.view_blanket_order_search +msgid "Invoiced Qty" +msgstr "" + +#. module: sale_blanket_order +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order__invoiced_uom_qty +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order_line__invoiced_uom_qty +msgid "Invoiced quantity" +msgstr "" + +#. module: sale_blanket_order +#: model_terms:ir.ui.view,arch_db:sale_blanket_order.view_blanket_order_form +msgid "Invoicing" +msgstr "" + +#. module: sale_blanket_order +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order__message_is_follower +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order_line__message_is_follower +msgid "Is Follower" +msgstr "" + +#. module: sale_blanket_order +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order__write_uid +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order_line__write_uid +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order_wizard__write_uid +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order_wizard_line__write_uid +msgid "Last Updated by" +msgstr "" + +#. module: sale_blanket_order +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order__write_date +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order_line__write_date +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order_wizard__write_date +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order_wizard_line__write_date +msgid "Last Updated on" +msgstr "" + +#. module: sale_blanket_order +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order_wizard__line_ids +#: model_terms:ir.ui.view,arch_db:sale_blanket_order.view_blanket_order_form +msgid "Lines" +msgstr "" + +#. module: sale_blanket_order +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order__message_has_error +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order_line__message_has_error +msgid "Message Delivery error" +msgstr "" + +#. module: sale_blanket_order +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order__message_ids +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order_line__message_ids +msgid "Messages" +msgstr "" + +#. module: sale_blanket_order +#: model:ir.model.constraint,message:sale_blanket_order.constraint_sale_blanket_order_line_accountable_required_fields +msgid "Missing required fields on accountable sale order line." +msgstr "" + +#. module: sale_blanket_order +#. odoo-python +#: code:addons/sale_blanket_order/models/blanket_orders.py:0 +#, python-format +msgid "Must have some lines" +msgstr "" + +#. module: sale_blanket_order +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order__my_activity_date_deadline +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order_line__my_activity_date_deadline +msgid "My Activity Deadline" +msgstr "" + +#. module: sale_blanket_order +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order__name +msgid "Name" +msgstr "" + +#. module: sale_blanket_order +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order__activity_date_deadline +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order_line__activity_date_deadline +msgid "Next Activity Deadline" +msgstr "" + +#. module: sale_blanket_order +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order__activity_summary +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order_line__activity_summary +msgid "Next Activity Summary" +msgstr "" + +#. module: sale_blanket_order +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order__activity_type_id +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order_line__activity_type_id +msgid "Next Activity Type" +msgstr "" + +#. module: sale_blanket_order +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order__note +#: model:ir.model.fields.selection,name:sale_blanket_order.selection__sale_blanket_order_line__display_type__line_note +msgid "Note" +msgstr "" + +#. module: sale_blanket_order +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order__message_needaction_counter +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order_line__message_needaction_counter +msgid "Number of Actions" +msgstr "" + +#. module: sale_blanket_order +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order__message_has_error_counter +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order_line__message_has_error_counter +msgid "Number of errors" +msgstr "" + +#. module: sale_blanket_order +#: model:ir.model.fields,help:sale_blanket_order.field_sale_blanket_order__message_needaction_counter +#: model:ir.model.fields,help:sale_blanket_order.field_sale_blanket_order_line__message_needaction_counter +msgid "Number of messages requiring action" +msgstr "" + +#. module: sale_blanket_order +#: model:ir.model.fields,help:sale_blanket_order.field_sale_blanket_order__message_has_error_counter +#: model:ir.model.fields,help:sale_blanket_order.field_sale_blanket_order_line__message_has_error_counter +msgid "Number of messages with delivery error" +msgstr "" + +#. module: sale_blanket_order +#: model:ir.model.fields.selection,name:sale_blanket_order.selection__sale_blanket_order__state__open +#: model_terms:ir.ui.view,arch_db:sale_blanket_order.view_blanket_order_search +msgid "Open" +msgstr "" + +#. module: sale_blanket_order +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order_line__order_id +msgid "Order" +msgstr "" + +#. module: sale_blanket_order +#: model_terms:ir.ui.view,arch_db:sale_blanket_order.view_blanket_order_form +msgid "Order Lines" +msgstr "" + +#. module: sale_blanket_order +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order__line_ids +msgid "Order lines" +msgstr "" + +#. module: sale_blanket_order +#: model_terms:ir.ui.view,arch_db:sale_blanket_order.view_blanket_order_search +msgid "Ordered Qty" +msgstr "" + +#. module: sale_blanket_order +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order__ordered_uom_qty +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order_line__ordered_uom_qty +msgid "Ordered quantity" +msgstr "" + +#. module: sale_blanket_order +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_order__blanket_order_id +msgid "Origin blanket order" +msgstr "" + +#. module: sale_blanket_order +#: model_terms:ir.ui.view,arch_db:sale_blanket_order.report_blanketorder_document +#: model_terms:ir.ui.view,arch_db:sale_blanket_order.sale_blanket_order_line_tree +#: model_terms:ir.ui.view,arch_db:sale_blanket_order.view_blanket_order_form +#: model_terms:ir.ui.view,arch_db:sale_blanket_order.view_blanket_order_search +msgid "Original Qty" +msgstr "" + +#. module: sale_blanket_order +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order__original_uom_qty +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order_line__original_uom_qty +msgid "Original quantity" +msgstr "" + +#. module: sale_blanket_order +#: model_terms:ir.ui.view,arch_db:sale_blanket_order.view_blanket_order_form +msgid "Other Information" +msgstr "" + +#. module: sale_blanket_order +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order__partner_id +msgid "Partner" +msgstr "" + +#. module: sale_blanket_order +#. odoo-python +#: code:addons/sale_blanket_order/models/blanket_orders.py:0 +#, python-format +msgid "Partner is mandatory" +msgstr "" + +#. module: sale_blanket_order +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order__payment_term_id +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order_line__payment_term_id +msgid "Payment Terms" +msgstr "" + +#. module: sale_blanket_order +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order_line__price_unit +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order_wizard_line__price_unit +msgid "Price" +msgstr "" + +#. module: sale_blanket_order +#. odoo-python +#: code:addons/sale_blanket_order/models/blanket_orders.py:0 +#, python-format +msgid "Price must be greater than zero" +msgstr "" + +#. module: sale_blanket_order +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order__pricelist_id +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order_line__pricelist_id +msgid "Pricelist" +msgstr "" + +#. module: sale_blanket_order +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order_line__pricelist_item_id +msgid "Pricelist Item" +msgstr "" + +#. module: sale_blanket_order +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order__product_id +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order_line__product_id +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order_wizard_line__product_id +#: model_terms:ir.ui.view,arch_db:sale_blanket_order.report_blanketorder_document +msgid "Product" +msgstr "" + +#. module: sale_blanket_order +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order_wizard__sale_order_id +msgid "Purchase Order" +msgstr "" + +#. module: sale_blanket_order +#. odoo-python +#: code:addons/sale_blanket_order/models/blanket_orders.py:0 +#, python-format +msgid "Quantity must be greater than zero" +msgstr "" + +#. module: sale_blanket_order +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order_wizard_line__qty +msgid "Quantity to Order" +msgstr "" + +#. module: sale_blanket_order +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order__rating_ids +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order_line__rating_ids +msgid "Ratings" +msgstr "" + +#. module: sale_blanket_order +#: model_terms:ir.ui.view,arch_db:sale_blanket_order.view_blanket_order_search +msgid "Remaining Qty" +msgstr "" + +#. module: sale_blanket_order +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order__remaining_uom_qty +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order_line__remaining_uom_qty +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order_wizard_line__remaining_uom_qty +msgid "Remaining quantity" +msgstr "" + +#. module: sale_blanket_order +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order_line__remaining_qty +msgid "Remaining quantity in base UoM" +msgstr "" + +#. module: sale_blanket_order +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order_line__user_id +msgid "Responsible" +msgstr "" + +#. module: sale_blanket_order +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order__activity_user_id +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order_line__activity_user_id +msgid "Responsible User" +msgstr "" + +#. module: sale_blanket_order +#. odoo-python +#: code:addons/sale_blanket_order/wizard/create_sale_orders.py:0 +#, python-format +msgid "Sale Blanket Order %s is not open" +msgstr "" + +#. module: sale_blanket_order +#: model_terms:ir.ui.view,arch_db:sale_blanket_order.sale_blanket_order_line_form +msgid "Sale Blanket Order Line" +msgstr "" + +#. module: sale_blanket_order +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order__line_count +msgid "Sale Blanket Order Line count" +msgstr "" + +#. module: sale_blanket_order +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order__sale_count +msgid "Sale Count" +msgstr "" + +#. module: sale_blanket_order +#: model_terms:ir.ui.view,arch_db:sale_blanket_order.sale_blanket_order_line_form +msgid "Sale Order Lines" +msgstr "" + +#. module: sale_blanket_order +#: model_terms:ir.ui.view,arch_db:sale_blanket_order.view_blanket_order_form +msgid "Sale Orders" +msgstr "" + +#. module: sale_blanket_order +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order_line__sale_lines +msgid "Sale order lines" +msgstr "" + +#. module: sale_blanket_order +#: model_terms:ir.ui.view,arch_db:sale_blanket_order.view_blanket_order_form +msgid "Sales Information" +msgstr "" + +#. module: sale_blanket_order +#: model:ir.model,name:sale_blanket_order.model_sale_order +msgid "Sales Order" +msgstr "" + +#. module: sale_blanket_order +#: model:ir.model,name:sale_blanket_order.model_sale_order_line +msgid "Sales Order Line" +msgstr "" + +#. module: sale_blanket_order +#. odoo-python +#: code:addons/sale_blanket_order/wizard/create_sale_orders.py:0 +#, python-format +msgid "Sales Orders" +msgstr "" + +#. module: sale_blanket_order +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order__team_id +msgid "Sales Team" +msgstr "" + +#. module: sale_blanket_order +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order__user_id +msgid "Salesperson" +msgstr "" + +#. module: sale_blanket_order +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order_line__date_schedule +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order_wizard_line__date_schedule +#: model_terms:ir.ui.view,arch_db:sale_blanket_order.report_blanketorder_document +msgid "Scheduled Date" +msgstr "" + +#. module: sale_blanket_order +#: model_terms:ir.ui.view,arch_db:sale_blanket_order.sale_blanket_order_line_search +msgid "Search Sale Blanket Order Line" +msgstr "" + +#. module: sale_blanket_order +#: model:ir.model.fields.selection,name:sale_blanket_order.selection__sale_blanket_order_line__display_type__line_section +msgid "Section" +msgstr "" + +#. module: sale_blanket_order +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order_line__sequence +msgid "Sequence" +msgstr "" + +#. module: sale_blanket_order +#: model_terms:ir.ui.view,arch_db:sale_blanket_order.view_blanket_order_form +msgid "Setup default terms and conditions in your company settings." +msgstr "" + +#. module: sale_blanket_order +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order__state +msgid "State" +msgstr "" + +#. module: sale_blanket_order +#: model:ir.model.fields,help:sale_blanket_order.field_sale_blanket_order__activity_state +#: model:ir.model.fields,help:sale_blanket_order.field_sale_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: sale_blanket_order +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order_line__price_subtotal +msgid "Subtotal" +msgstr "" + +#. module: sale_blanket_order +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order_line__price_tax +msgid "Tax" +msgstr "" + +#. module: sale_blanket_order +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order__amount_tax +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order_line__taxes_id +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order_wizard_line__taxes_id +#: model_terms:ir.ui.view,arch_db:sale_blanket_order.report_blanketorder_document +msgid "Taxes" +msgstr "" + +#. module: sale_blanket_order +#: model:ir.model.fields,help:sale_blanket_order.field_sale_blanket_order_line__display_type +msgid "Technical field for UX purpose." +msgstr "" + +#. module: sale_blanket_order +#: model_terms:ir.ui.view,arch_db:sale_blanket_order.view_blanket_order_form +msgid "Terms and Conditions" +msgstr "" + +#. module: sale_blanket_order +#. odoo-python +#: code:addons/sale_blanket_order/models/sale_orders.py:0 +#, python-format +msgid "" +"The currency of the blanket order must match with that of the sale order." +msgstr "" + +#. module: sale_blanket_order +#. odoo-python +#: code:addons/sale_blanket_order/models/sale_orders.py:0 +#, python-format +msgid "The customer must be equal to the blanket order lines customer" +msgstr "" + +#. module: sale_blanket_order +#. odoo-python +#: code:addons/sale_blanket_order/models/sale_orders.py:0 +#, python-format +msgid "The product in the blanket order and in the sales order must match" +msgstr "" + +#. module: sale_blanket_order +#. odoo-python +#: code:addons/sale_blanket_order/wizard/create_sale_orders.py:0 +#, python-format +msgid "The sale has already been completed." +msgstr "" + +#. module: sale_blanket_order +#: model_terms:ir.ui.view,arch_db:sale_blanket_order.view_blanket_order_form +msgid "To Draft" +msgstr "" + +#. module: sale_blanket_order +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order__amount_total +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order_line__price_total +msgid "Total" +msgstr "" + +#. module: sale_blanket_order +#: model:ir.model.fields,help:sale_blanket_order.field_sale_blanket_order__activity_exception_decoration +#: model:ir.model.fields,help:sale_blanket_order.field_sale_blanket_order_line__activity_exception_decoration +msgid "Type of the exception activity on record." +msgstr "" + +#. module: sale_blanket_order +#: model_terms:ir.ui.view,arch_db:sale_blanket_order.report_blanketorder_document +msgid "Unit Price" +msgstr "" + +#. module: sale_blanket_order +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order_line__product_uom +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order_wizard_line__product_uom +msgid "Unit of Measure" +msgstr "" + +#. module: sale_blanket_order +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order__amount_untaxed +msgid "Untaxed Amount" +msgstr "" + +#. module: sale_blanket_order +#: model_terms:ir.actions.act_window,help:sale_blanket_order.act_open_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 customer, control\n" +" the products delivered and control the vendor bills." +msgstr "" + +#. module: sale_blanket_order +#: model_terms:ir.ui.view,arch_db:sale_blanket_order.report_blanketorder_document +msgid "VAT:" +msgstr "" + +#. module: sale_blanket_order +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order__validity_date +msgid "Validity Date" +msgstr "" + +#. module: sale_blanket_order +#. odoo-python +#: code:addons/sale_blanket_order/models/blanket_orders.py:0 +#, python-format +msgid "Validity date is mandatory" +msgstr "" + +#. module: sale_blanket_order +#. odoo-python +#: code:addons/sale_blanket_order/models/blanket_orders.py:0 +#, python-format +msgid "Validity date must be in the future" +msgstr "" + +#. module: sale_blanket_order +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order_wizard_line__partner_id +msgid "Vendor" +msgstr "" + +#. module: sale_blanket_order +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order__website_message_ids +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order_line__website_message_ids +msgid "Website Messages" +msgstr "" + +#. module: sale_blanket_order +#: model:ir.model.fields,help:sale_blanket_order.field_sale_blanket_order__website_message_ids +#: model:ir.model.fields,help:sale_blanket_order.field_sale_blanket_order_line__website_message_ids +msgid "Website communication history" +msgstr "" + +#. module: sale_blanket_order +#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order_wizard_line__wizard_id +msgid "Wizard" +msgstr "" + +#. module: sale_blanket_order +#. odoo-python +#: code:addons/sale_blanket_order/models/blanket_orders.py:0 +#, python-format +msgid "" +"You can not delete a blanket order with opened sale orders! Try to cancel " +"them before." +msgstr "" + +#. module: sale_blanket_order +#. odoo-python +#: code:addons/sale_blanket_order/models/blanket_orders.py:0 +#, python-format +msgid "" +"You can not delete an open blanket or with active sale orders! Try to cancel" +" it before." +msgstr "" + +#. module: sale_blanket_order +#. odoo-python +#: code:addons/sale_blanket_order/wizard/create_sale_orders.py:0 +#, python-format +msgid "You can't create a sale order from an expired blanket order!" +msgstr "" + +#. module: sale_blanket_order +#. odoo-python +#: code:addons/sale_blanket_order/wizard/create_sale_orders.py:0 +#, python-format +msgid "You can't order more than the remaining quantities" +msgstr "" + +#. module: sale_blanket_order +#. odoo-python +#: code:addons/sale_blanket_order/wizard/create_sale_orders.py:0 +#, python-format +msgid "You have to select lines from the same company." +msgstr "" + +#. module: sale_blanket_order +#. odoo-python +#: code:addons/sale_blanket_order/models/blanket_orders.py:0 +#, python-format +msgid "remaining" +msgstr "" diff --git a/sale_blanket_order/models/__init__.py b/sale_blanket_order/models/__init__.py new file mode 100644 index 00000000000..24f15a33dbd --- /dev/null +++ b/sale_blanket_order/models/__init__.py @@ -0,0 +1,3 @@ +from . import blanket_orders +from . import sale_orders +from . import sale_config_settings diff --git a/sale_blanket_order/models/blanket_orders.py b/sale_blanket_order/models/blanket_orders.py new file mode 100644 index 00000000000..4dbfcdff646 --- /dev/null +++ b/sale_blanket_order/models/blanket_orders.py @@ -0,0 +1,730 @@ +# Copyright 2018 ACSONE SA/NV +# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl). + +from odoo import SUPERUSER_ID, _, api, fields, models +from odoo.exceptions import UserError +from odoo.tools import float_is_zero +from odoo.tools.misc import format_date + + +class BlanketOrder(models.Model): + _name = "sale.blanket.order" + _inherit = ["mail.thread", "mail.activity.mixin"] + _description = "Blanket Order" + _check_company_auto = True + + @api.model + def _default_note(self): + return ( + self.env["ir.config_parameter"] + .sudo() + .get_param("account.use_invoice_terms") + and self.env.company.invoice_terms + or "" + ) + + @api.depends("line_ids.price_total") + def _compute_amount_all(self): + for order in self.filtered("currency_id"): + 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, copy=False) + partner_id = fields.Many2one( + "res.partner", + string="Partner", + ) + line_ids = fields.One2many( + "sale.blanket.order.line", "order_id", string="Order lines", copy=True + ) + line_count = fields.Integer( + string="Sale Blanket Order Line count", + compute="_compute_line_count", + readonly=True, + ) + product_id = fields.Many2one( + "product.product", + related="line_ids.product_id", + string="Product", + ) + pricelist_id = fields.Many2one( + "product.pricelist", + string="Pricelist", + required=True, + ) + currency_id = fields.Many2one("res.currency", related="pricelist_id.currency_id") + payment_term_id = fields.Many2one( + "account.payment.term", + string="Payment Terms", + ) + confirmed = fields.Boolean(copy=False) + state = fields.Selection( + selection=[ + ("draft", "Draft"), + ("open", "Open"), + ("done", "Done"), + ("expired", "Expired"), + ], + compute="_compute_state", + store=True, + copy=False, + ) + validity_date = fields.Date() + client_order_ref = fields.Char( + string="Customer Reference", + copy=False, + ) + note = fields.Text(default=_default_note) + user_id = fields.Many2one( + "res.users", + string="Salesperson", + ) + team_id = fields.Many2one( + "crm.team", + string="Sales Team", + change_default=True, + default=lambda self: self.env["crm.team"]._get_default_team_id(), + ) + company_id = fields.Many2one( + comodel_name="res.company", + required=True, + index=True, + default=lambda self: self.env.company, + ) + sale_count = fields.Integer(compute="_compute_sale_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", + default=0.0, + ) + ordered_uom_qty = fields.Float( + string="Ordered quantity", + compute="_compute_uom_qty", + search="_search_ordered_uom_qty", + default=0.0, + ) + invoiced_uom_qty = fields.Float( + string="Invoiced quantity", + compute="_compute_uom_qty", + search="_search_invoiced_uom_qty", + default=0.0, + ) + remaining_uom_qty = fields.Float( + string="Remaining quantity", + compute="_compute_uom_qty", + search="_search_remaining_uom_qty", + default=0.0, + ) + delivered_uom_qty = fields.Float( + string="Delivered quantity", + compute="_compute_uom_qty", + search="_search_delivered_uom_qty", + default=0.0, + ) + + def _get_sale_orders(self): + return self.mapped("line_ids.sale_lines.order_id") + + @api.depends("line_ids") + def _compute_line_count(self): + self.line_count = len(self.mapped("line_ids")) + + def _compute_sale_count(self): + for blanket_order in self: + blanket_order.sale_count = len(blanket_order._get_sale_orders()) + + @api.depends( + "line_ids.remaining_uom_qty", + "validity_date", + "confirmed", + ) + 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: + order.state = "draft" + elif order.validity_date <= today: + order.state = "expired" + elif float_is_zero( + sum( + order.line_ids.filtered(lambda line: not line.display_type).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.delivered_uom_qty = sum(bo.mapped("line_ids.delivered_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: + - Pricelist + - Payment term + - Fiscal position + """ + if not self.partner_id: + self.payment_term_id = False + self.fiscal_position_id = False + return + + values = { + "pricelist_id": ( + self.partner_id.property_product_pricelist + and self.partner_id.property_product_pricelist.id + or False + ), + "payment_term_id": ( + self.partner_id.property_payment_term_id + and self.partner_id.property_payment_term_id.id + or False + ), + "fiscal_position_id": self.env["account.fiscal.position"] + .with_context(company_id=self.company_id.id) + ._get_fiscal_position(self.partner_id), + } + + if self.partner_id.user_id: + values["user_id"] = self.partner_id.user_id.id + if self.partner_id.user_id.sale_team_id: + values["team_id"] = self.partner_id.user_id.sale_team_id.id + self.update(values) + + def unlink(self): + for order in self: + if order.state not in ("draft", "expired") or order._check_active_orders(): + raise UserError( + _( + "You can not delete an open blanket or " + "with active sale orders! " + "Try to cancel it before." + ) + ) + return super().unlink() + + 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({"state": "draft", "confirmed": False}) + return True + + def action_confirm(self): + self._validate() + for order in self: + sequence_obj = self.env["ir.sequence"] + if order.company_id: + sequence_obj = sequence_obj.with_company(order.company_id.id) + name = sequence_obj.next_by_code("sale.blanket.order") + order.write({"confirmed": True, "name": name}) + return True + + def _check_active_orders(self): + for order in self.filtered("sale_count"): + for so in order._get_sale_orders(): + if so.state not in ("cancel"): + return True + return False + + def action_cancel(self): + for order in self: + if order._check_active_orders(): + raise UserError( + _( + "You can not delete a blanket order with opened " + "sale orders! " + "Try to cancel them before." + ) + ) + order.write({"state": "expired"}) + return True + + def action_view_sale_orders(self): + sale_orders = self._get_sale_orders() + action = self.env["ir.actions.act_window"]._for_xml_id("sale.action_orders") + if len(sale_orders) > 0: + action["domain"] = [("id", "in", sale_orders.ids)] + action["context"] = [("id", "in", sale_orders.ids)] + else: + action = {"type": "ir.actions.act_window_close"} + return action + + def action_view_sale_blanket_order_line(self): + action = self.env["ir.actions.act_window"]._for_xml_id( + "sale_blanket_order.act_open_sale_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.flush_recordset() + + @api.model + def _search_original_uom_qty(self, operator, value): + bo_line_obj = self.env["sale.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["sale.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["sale.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_delivered_uom_qty(self, operator, value): + bo_line_obj = self.env["sale.blanket.order.line"] + res = [] + bo_lines = bo_line_obj.search([("delivered_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["sale.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 = "sale.blanket.order.line" + _description = "Blanket Order Line" + _inherit = ["mail.thread", "mail.activity.mixin", "analytic.mixin"] + + @api.depends( + "original_uom_qty", + "price_unit", + "taxes_id", + "order_id.partner_id", + "product_id", + "currency_id", + ) + def _compute_amount(self): + for line in self: + price = line.price_unit + taxes = line.taxes_id.compute_all( + price, + line.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("Description", tracking=True) + sequence = fields.Integer() + order_id = fields.Many2one("sale.blanket.order", required=True, ondelete="cascade") + product_id = fields.Many2one( + "product.product", + string="Product", + domain=[("sale_ok", "=", True)], + ) + product_uom = fields.Many2one("uom.uom", string="Unit of Measure") + price_unit = fields.Float(string="Price", 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", default=1, digits="Product Unit of Measure" + ) + ordered_uom_qty = fields.Float( + string="Ordered quantity", compute="_compute_quantities", store=True + ) + invoiced_uom_qty = fields.Float( + string="Invoiced quantity", compute="_compute_quantities", store=True + ) + remaining_uom_qty = fields.Float( + string="Remaining quantity", compute="_compute_quantities", store=True + ) + remaining_qty = fields.Float( + string="Remaining quantity in base UoM", + compute="_compute_quantities", + store=True, + ) + delivered_uom_qty = fields.Float( + string="Delivered quantity", compute="_compute_quantities", store=True + ) + sale_lines = fields.One2many( + "sale.order.line", + "blanket_order_line", + string="Sale order lines", + readonly=True, + copy=False, + ) + company_id = fields.Many2one( + related="order_id.company_id", store=True, index=True, precompute=True + ) + currency_id = fields.Many2one("res.currency", related="order_id.currency_id") + partner_id = fields.Many2one(related="order_id.partner_id", string="Customer") + user_id = fields.Many2one(related="order_id.user_id", string="Responsible") + payment_term_id = fields.Many2one( + related="order_id.payment_term_id", string="Payment Terms" + ) + pricelist_id = fields.Many2one(related="order_id.pricelist_id", string="Pricelist") + + 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) + display_type = fields.Selection( + [("line_section", "Section"), ("line_note", "Note")], + default=False, + help="Technical field for UX purpose.", + ) + pricelist_item_id = fields.Many2one( + comodel_name="product.pricelist.item", compute="_compute_pricelist_item_id" + ) + + @api.depends( + "order_id.name", "date_schedule", "remaining_uom_qty", "product_uom.name" + ) + @api.depends_context("from_sale_order") + def _compute_display_name(self): + if self.env.context.get("from_sale_order"): + for record in self: + name = f"[{record.order_id.name}]" + if record.date_schedule: + formatted_date = format_date(record.env, record.date_schedule) + name += " - {}: {}".format(_("Date Scheduled"), formatted_date) + name += " ({}: {} {})".format( + _("remaining"), + record.remaining_uom_qty, + record.product_uom.name, + ) + record.display_name = name + else: + return super()._compute_display_name() + + def _get_real_price_currency(self, product, rule_id, qty, uom, pricelist_id): + """Retrieve the price before applying the pricelist + :param obj product: object of current product record + :param float qty: total quentity of product + :param tuple price_and_rule: tuple(price, suitable_rule) coming + from pricelist computation + :param obj uom: unit of measure of current order line + :param integer pricelist_id: pricelist id of sale order""" + # Copied and adapted from the sale module + PricelistItem = self.env["product.pricelist.item"] + field_name = "lst_price" + currency_id = None + product_currency = None + if rule_id: + pricelist_item = PricelistItem.browse(rule_id) + if pricelist_item.pricelist_id.discount_policy == "without_discount": + while ( + pricelist_item.base == "pricelist" + and pricelist_item.base_pricelist_id + and pricelist_item.base_pricelist_id.discount_policy + == "without_discount" + ): + price, rule_id = pricelist_item.base_pricelist_id.with_context( + uom=uom.id + )._get_product_price_rule(product, qty, uom) + pricelist_item = PricelistItem.browse(rule_id) + + if pricelist_item.base == "standard_price": + field_name = "standard_price" + if pricelist_item.base == "pricelist" and pricelist_item.base_pricelist_id: + field_name = "price" + product = product.with_context( + pricelist=pricelist_item.base_pricelist_id.id + ) + product_currency = pricelist_item.base_pricelist_id.currency_id + currency_id = pricelist_item.pricelist_id.currency_id + + product_currency = ( + product_currency + or (product.company_id and product.company_id.currency_id) + or self.env.company.currency_id + ) + if not currency_id: + currency_id = product_currency + cur_factor = 1.0 + else: + if currency_id.id == product_currency.id: + cur_factor = 1.0 + else: + cur_factor = currency_id._get_conversion_rate( + product_currency, currency_id + ) + + product_uom = product.uom_id.id + if uom and uom.id != product_uom: + # the unit price is in a different uom + uom_factor = uom._compute_price(1.0, product.uom_id) + else: + uom_factor = 1.0 + + return product[field_name] * uom_factor * cur_factor, currency_id.id + + def _get_display_price(self): + # Copied and adapted from the sale module + self.ensure_one() + self.product_id.ensure_one() + + pricelist_price = self.pricelist_item_id._compute_price( + product=self.product_id, + quantity=self.original_uom_qty or 1.0, + uom=self.product_uom, + date=fields.Date.today(), + currency=self.currency_id, + ) + + if not self.pricelist_item_id: + # No pricelist rule found => no discount from pricelist + return pricelist_price + + base_price = self._get_pricelist_price_before_discount() + + # negative discounts (= surcharge) are included in the display price + return max(base_price, pricelist_price) + + def _get_pricelist_price_before_discount(self): + # Copied and adapted from the sale module + self.ensure_one() + self.product_id.ensure_one() + + return self.pricelist_item_id._compute_price_before_discount( + product=self.product_id, + quantity=self.product_uom_qty or 1.0, + uom=self.product_uom, + date=fields.Date.today(), + currency=self.currency_id, + ) + + @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_id.id + if self.order_id.partner_id and float_is_zero( + self.price_unit, precision_digits=precision + ): + self.price_unit = self._get_display_price() + if self.product_id.code: + name = f"[{name}] {self.product_id.code}" + if self.product_id.description_sale: + name += "\n" + self.product_id.description_sale + self.name = name + + fpos = self.order_id.fiscal_position_id + if self.env.uid == SUPERUSER_ID: + company_id = self.env.company.id + self.taxes_id = fpos.map_tax( + self.product_id.taxes_id.filtered( + lambda r: r.company_id.id == company_id + ) + ) + else: + self.taxes_id = fpos.map_tax(self.product_id.taxes_id) + + @api.depends( + "sale_lines.order_id.state", + "sale_lines.blanket_order_line", + "sale_lines.product_uom_qty", + "sale_lines.product_uom", + "sale_lines.qty_delivered", + "sale_lines.qty_invoiced", + "original_uom_qty", + "product_uom", + ) + def _compute_quantities(self): + for line in self: + sale_lines = line.sale_lines + line.ordered_uom_qty = sum( + sl.product_uom._compute_quantity(sl.product_uom_qty, line.product_uom) + for sl in sale_lines + if sl.order_id.state != "cancel" and sl.product_id == line.product_id + ) + line.invoiced_uom_qty = sum( + sl.product_uom._compute_quantity(sl.qty_invoiced, line.product_uom) + for sl in sale_lines + if sl.order_id.state != "cancel" and sl.product_id == line.product_id + ) + line.delivered_uom_qty = sum( + sl.product_uom._compute_quantity(sl.qty_delivered, line.product_uom) + for sl in sale_lines + if sl.order_id.state != "cancel" and sl.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 + ) + + @api.depends("product_id", "product_uom", "original_uom_qty") + def _compute_pricelist_item_id(self): + # Copied and adapted from the sale module + for line in self: + if ( + not line.product_id + or line.display_type + or not line.order_id.pricelist_id + ): + line.pricelist_item_id = False + else: + line.pricelist_item_id = line.order_id.pricelist_id._get_product_rule( + line.product_id, + quantity=line.original_uom_qty or 1.0, + uom=line.product_uom, + date=fields.Date.today(), + ) + + def _validate(self): + try: + for line in self: + assert ( + not line.display_type and line.price_unit > 0.0 + ) or line.display_type, _("Price must be greater than zero") + assert ( + not line.display_type and line.original_uom_qty > 0.0 + ) or line.display_type, _("Quantity must be greater than zero") + except AssertionError as e: + raise UserError(e) from e + + @api.model_create_multi + def create(self, vals_list): + for values in vals_list: + if values.get( + "display_type", self.default_get(["display_type"])["display_type"] + ): + values.update(product_id=False, price_unit=0, product_uom=False) + + return super().create(vals_list) + + _sql_constraints = [ + ( + "accountable_required_fields", + """ + CHECK( + display_type IS NOT NULL OR ( + product_id IS NOT NULL AND product_uom IS NOT NULL + ) + ) + """, + "Missing required fields on accountable sale order line.", + ), + ( + "non_accountable_null_fields", + """ + CHECK( + display_type IS NULL OR ( + product_id IS NULL AND price_unit = 0 AND product_uom IS NULL + ) + ) + """, + "Forbidden values on non-accountable sale order line", + ), + ] + + def write(self, values): + if "display_type" in values and self.filtered( + lambda line: line.display_type != values.get("display_type") + ): + raise UserError( + _( + """ + You cannot change the type of a sale order line. + Instead you should delete the current line and create a new line + of the proper type. + """ + ) + ) + return super().write(values) diff --git a/sale_blanket_order/models/sale_config_settings.py b/sale_blanket_order/models/sale_config_settings.py new file mode 100644 index 00000000000..2c46ca118a5 --- /dev/null +++ b/sale_blanket_order/models/sale_config_settings.py @@ -0,0 +1,13 @@ +# Copyright 2018 ACSONE SA/NV +# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl). + +from odoo import fields, models + + +class SaleConfigSettings(models.TransientModel): + _inherit = "res.config.settings" + + group_blanket_disable_adding_lines = fields.Boolean( + string="Disable adding more lines to SOs", + implied_group="sale_blanket_order.blanket_orders_disable_adding_lines", + ) diff --git a/sale_blanket_order/models/sale_orders.py b/sale_blanket_order/models/sale_orders.py new file mode 100644 index 00000000000..f27a2314810 --- /dev/null +++ b/sale_blanket_order/models/sale_orders.py @@ -0,0 +1,185 @@ +# Copyright 2018 ACSONE SA/NV +# Copyright 2019 Eficent and IT Consulting Services, S.L. +# 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 SaleOrder(models.Model): + _inherit = "sale.order" + + blanket_order_id = fields.Many2one( + "sale.blanket.order", + string="Origin blanket order", + related="order_line.blanket_order_line.order_id", + ) + + @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 action_confirm(self): + res = super().action_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 customer must be equal to the " + "blanket order lines customer" + ) + ) + + +class SaleOrderLine(models.Model): + _inherit = "sale.order.line" + + blanket_order_line = fields.Many2one( + "sale.blanket.order.line", string="Blanket Order line", copy=False + ) + + 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 = date.today() + date_delta = timedelta(days=365) + for line in bo_lines.filtered(lambda bo_line: bo_line.date_schedule): + date_schedule = 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 bo_line: not bo_line.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_uom_qty, self.product_id.uom_id + ) + filters = self._get_eligible_bo_lines_domain(base_qty) + return self.env["sale.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", "order_partner_id") + def onchange_product_id(self): + # If product has changed remove the relation with blanket order line + if self.product_id: + return self.get_assigned_bo_line() + return + + @api.onchange("product_uom", "product_uom_qty") + def product_uom_change(self): + if not self.product_uom or not self.product_id: + self.price_unit = 0.0 + return + if self.order_id.pricelist_id and self.order_id.partner_id: + product = self.product_id.with_context( + lang=self.order_id.partner_id.lang, + partner=self.order_id.partner_id, + quantity=self.product_uom_qty, + date=self.order_id.date_order, + pricelist=self.order_id.pricelist_id.id, + uom=self.product_uom.id, + fiscal_position=self.env.context.get("fiscal_position"), + ) + self.price_unit = product._get_tax_included_unit_price( + self.company_id or self.order_id.company_id, + self.order_id.currency_id, + self.order_id.date_order, + "sale", + fiscal_position=self.order_id.fiscal_position_id, + product_price_unit=self._get_display_price(), + product_currency=self.order_id.currency_id, + ) + if self.product_id and not self.env.context.get("skip_blanket_find", False): + return self.get_assigned_bo_line() + return + + @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.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.tax_id = bol.taxes_id + else: + if not self.tax_id: + self._compute_tax_id() + self.with_context(skip_blanket_find=True).product_uom_change() + + @api.constrains("product_id") + def check_product_id(self): + for line in self: + if ( + line.blanket_order_line + and line.product_id != line.blanket_order_line.product_id + ): + raise ValidationError( + _( + "The product in the blanket order and in the " + "sales order must match" + ) + ) + + @api.constrains("currency_id") + def check_currency(self): + for line in self: + if line.blanket_order_line: + if line.currency_id != line.blanket_order_line.order_id.currency_id: + raise ValidationError( + _( + "The currency of the blanket order must match with " + "that of the sale order." + ) + ) diff --git a/sale_blanket_order/pyproject.toml b/sale_blanket_order/pyproject.toml new file mode 100644 index 00000000000..4231d0cccb3 --- /dev/null +++ b/sale_blanket_order/pyproject.toml @@ -0,0 +1,3 @@ +[build-system] +requires = ["whool"] +build-backend = "whool.buildapi" diff --git a/sale_blanket_order/readme/CONTRIBUTORS.md b/sale_blanket_order/readme/CONTRIBUTORS.md new file mode 100644 index 00000000000..dbca4e3e0f7 --- /dev/null +++ b/sale_blanket_order/readme/CONTRIBUTORS.md @@ -0,0 +1,17 @@ +- André Pereira \<\> () + +- Adrià Gil Sorribes \<\> + () + +- Jordi Ballester Alomar \<\> + +- Alex Comba \<\> () + +- Codeforward (https://www.codeforward.nl/): + + > - Jasper Jumelet \<\> + > - Chris Bergman \<\> + +- [Trobz](https://trobz.com): + + > - Nguyễn Minh Chiến \<\> diff --git a/sale_blanket_order/readme/CREDITS.md b/sale_blanket_order/readme/CREDITS.md new file mode 100644 index 00000000000..291e14c81e2 --- /dev/null +++ b/sale_blanket_order/readme/CREDITS.md @@ -0,0 +1,2 @@ +The migration of this module from 15.0 to 16.0 was financially supported +by Camptocamp diff --git a/sale_blanket_order/readme/DESCRIPTION.md b/sale_blanket_order/readme/DESCRIPTION.md new file mode 100644 index 00000000000..6a611ec3975 --- /dev/null +++ b/sale_blanket_order/readme/DESCRIPTION.md @@ -0,0 +1,5 @@ +A blanket order is a pre-agreement to sell a certain number of +quantities of products at a specific price. From a confirmed blanket +order, the users can create new sale orders at such price, until the +blanket order expires, either due to reaching the validity date or +exhausting all the quantities of products. diff --git a/sale_blanket_order/readme/USAGE.md b/sale_blanket_order/readme/USAGE.md new file mode 100644 index 00000000000..0c923ef4855 --- /dev/null +++ b/sale_blanket_order/readme/USAGE.md @@ -0,0 +1,58 @@ +A new menu in the Sales area is created, allowing users to create new +blanket orders. + +To create a new Sale Blanket Order go to the sale menu in the Sales +section: + +![](../static/description/BO_menu.png) + +Hitting the button create will open the form view in which we can +introduce the following information: + +- Vendor + +- Salesperson + +- Payment Terms + +- Validity date + +- Order lines: + - Product + - Accorded price + - Original, Ordered, Invoiced, Received and Remaining quantities + +- Terms and Conditions of the Blanket Order + +![](../static/description/BO_form.png) + +From the form, once the Blanket Order has been confirmed and its state +is open, the user can create a Sale Order, check the Sale Orders +associated to the Blanket Order and/or see the Blanket Order lines +associated to the BO. + +![](../static/description/BO_actions.png) + +Hitting the button Create Sale Order will open a wizard that will ask +for the amount of each product in the BO lines for which the Sale Order +will be created. + +![](../static/description/PO_from_BO.png) + +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 Sale Orders selecting the lines for which +the PO (or POs if the customers are different) is (are) created. + +![](../static/description/BO_lines.png) + +In the Sale 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 Sale +Order a blanket order line will be suggested depending on the following +factors: + +- Closer Validity date +- Remaining quantity \> Quantity introduced in the Sale Order line + +![](../static/description/PO_BOLine.png) diff --git a/sale_blanket_order/report/report.xml b/sale_blanket_order/report/report.xml new file mode 100644 index 00000000000..b0e622e9668 --- /dev/null +++ b/sale_blanket_order/report/report.xml @@ -0,0 +1,16 @@ + + + + Blanket Order + sale.blanket.order + qweb-pdf + sale_blanket_order.report_blanketorder + sale_blanket_order.report_blanketorder + 'Blanket Order - %s' % object.name + + report + + diff --git a/sale_blanket_order/report/templates.xml b/sale_blanket_order/report/templates.xml new file mode 100644 index 00000000000..f5ca7460573 --- /dev/null +++ b/sale_blanket_order/report/templates.xml @@ -0,0 +1,177 @@ + + + + + diff --git a/sale_blanket_order/security/ir.model.access.csv b/sale_blanket_order/security/ir.model.access.csv new file mode 100644 index 00000000000..60fd558d38f --- /dev/null +++ b/sale_blanket_order/security/ir.model.access.csv @@ -0,0 +1,10 @@ +id,name,model_id:id,group_id:id,perm_read,perm_write,perm_create,perm_unlink +access_sale_blanket_order,sale.order,model_sale_blanket_order,sales_team.group_sale_salesman,1,1,1,0 +access_sale_blanket_order_line,sale.order.line,model_sale_blanket_order_line,sales_team.group_sale_salesman,1,1,1,1 +access_sale_blanket_order_manager,sale.order.manager,model_sale_blanket_order,sales_team.group_sale_manager,1,1,1,1 +access_sale_blanket_order_line_manager,sale.order.line.manager,model_sale_blanket_order_line,sales_team.group_sale_manager,1,1,1,1 +access_sale_blanket_order_accountant,sale.order.accountant,model_sale_blanket_order,account.group_account_user,1,1,0,0 +access_sale_blanket_order_line_accountant,sale.order.line accountant,model_sale_blanket_order_line,account.group_account_user,1,1,0,0 +access_sale_blanket_order_line_user,sale.order.line user,model_sale_blanket_order_line,base.group_user,1,0,0,0 +access_sale_blanket_order_wizard_user,sale.blanket.order.wizard user,model_sale_blanket_order_wizard,base.group_user,1,1,1,1 +access_sale_blanket_order_wizard_line_user,sale.blanket.order.wizard.line user,model_sale_blanket_order_wizard_line,base.group_user,1,1,1,1 diff --git a/sale_blanket_order/security/security.xml b/sale_blanket_order/security/security.xml new file mode 100644 index 00000000000..7a53df6e02d --- /dev/null +++ b/sale_blanket_order/security/security.xml @@ -0,0 +1,23 @@ + + + + Disable adding more lines to SOs from Blanket Orders + + + + Blanket Order multi-company + + + ['|',('company_id','=',False),('company_id', 'in', company_ids)] + + + Blanket Order Line multi-company + + + ['|',('company_id','=',False),('company_id', 'in', company_ids)] + + diff --git a/sale_blanket_order/static/description/BO_actions.png b/sale_blanket_order/static/description/BO_actions.png new file mode 100644 index 00000000000..af727ec2376 Binary files /dev/null and b/sale_blanket_order/static/description/BO_actions.png differ diff --git a/sale_blanket_order/static/description/BO_form.png b/sale_blanket_order/static/description/BO_form.png new file mode 100644 index 00000000000..e2a345969b7 Binary files /dev/null and b/sale_blanket_order/static/description/BO_form.png differ diff --git a/sale_blanket_order/static/description/BO_lines.png b/sale_blanket_order/static/description/BO_lines.png new file mode 100644 index 00000000000..1c474da6a94 Binary files /dev/null and b/sale_blanket_order/static/description/BO_lines.png differ diff --git a/sale_blanket_order/static/description/BO_menu.png b/sale_blanket_order/static/description/BO_menu.png new file mode 100644 index 00000000000..06a2403020d Binary files /dev/null and b/sale_blanket_order/static/description/BO_menu.png differ diff --git a/sale_blanket_order/static/description/PO_BOLine.png b/sale_blanket_order/static/description/PO_BOLine.png new file mode 100644 index 00000000000..314df1d603a Binary files /dev/null and b/sale_blanket_order/static/description/PO_BOLine.png differ diff --git a/sale_blanket_order/static/description/PO_from_BO.png b/sale_blanket_order/static/description/PO_from_BO.png new file mode 100644 index 00000000000..e2467ae91ec Binary files /dev/null and b/sale_blanket_order/static/description/PO_from_BO.png differ diff --git a/sale_blanket_order/static/description/icon.png b/sale_blanket_order/static/description/icon.png new file mode 100644 index 00000000000..3a0328b516c Binary files /dev/null and b/sale_blanket_order/static/description/icon.png differ diff --git a/sale_blanket_order/static/description/index.html b/sale_blanket_order/static/description/index.html new file mode 100644 index 00000000000..d645dddb2b3 --- /dev/null +++ b/sale_blanket_order/static/description/index.html @@ -0,0 +1,504 @@ + + + + + +Sale Blanket Orders + + + +
+

Sale Blanket Orders

+ + +

Beta License: AGPL-3 OCA/sale-workflow Translate me on Weblate Try me on Runboat

+

A blanket order is a pre-agreement to sell a certain number of +quantities of products at a specific price. From a confirmed blanket +order, the users can create new sale orders at such price, until the +blanket order expires, either due to reaching the validity date or +exhausting all the quantities of products.

+

Table of contents

+ +
+

Usage

+

A new menu in the Sales area is created, allowing users to create new +blanket orders.

+

To create a new Sale Blanket Order go to the sale menu in the Sales +section:

+

image1

+

Hitting the button create will open the form view in which we can +introduce the following information:

+
    +
  • Vendor
  • +
  • Salesperson
  • +
  • Payment Terms
  • +
  • Validity date
  • +
  • Order lines:
      +
    • Product
    • +
    • Accorded price
    • +
    • Original, Ordered, Invoiced, Received and Remaining quantities
    • +
    +
  • +
  • Terms and Conditions of the Blanket Order
  • +
+

image2

+

From the form, once the Blanket Order has been confirmed and its state +is open, the user can create a Sale Order, check the Sale Orders +associated to the Blanket Order and/or see the Blanket Order lines +associated to the BO.

+

image3

+

Hitting the button Create Sale Order will open a wizard that will ask +for the amount of each product in the BO lines for which the Sale Order +will be created.

+

image4

+

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 Sale Orders selecting the lines for which +the PO (or POs if the customers are different) is (are) created.

+

image5

+

In the Sale 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 Sale +Order a blanket order line will be suggested depending on the following +factors:

+
    +
  • Closer Validity date
  • +
  • Remaining quantity > Quantity introduced in the Sale Order line
  • +
+

image6

+
+
+

Bug Tracker

+

Bugs are tracked on GitHub 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.

+

Do not contact contributors directly about support or help with technical issues.

+
+
+

Credits

+
+

Authors

+
    +
  • Acsone SA/NV
  • +
+
+
+

Contributors

+ +
+
+

Other credits

+

The migration of this module from 15.0 to 16.0 was financially supported +by Camptocamp

+
+
+

Maintainers

+

This module is maintained by the OCA.

+ +Odoo Community Association + +

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/sale-workflow project on GitHub.

+

You are welcome to contribute. To learn how please visit https://odoo-community.org/page/Contribute.

+
+
+
+ + diff --git a/sale_blanket_order/tests/__init__.py b/sale_blanket_order/tests/__init__.py new file mode 100644 index 00000000000..a857061bd2c --- /dev/null +++ b/sale_blanket_order/tests/__init__.py @@ -0,0 +1,4 @@ +# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl). + +from . import test_blanket_orders +from . import test_sale_order diff --git a/sale_blanket_order/tests/test_blanket_orders.py b/sale_blanket_order/tests/test_blanket_orders.py new file mode 100644 index 00000000000..42220056469 --- /dev/null +++ b/sale_blanket_order/tests/test_blanket_orders.py @@ -0,0 +1,423 @@ +# Copyright (C) 2018 Eficent Business and IT Consulting Services S.L. +# 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 TestSaleBlanketOrders(common.TransactionCase): + @classmethod + def setUpClass(cls): + super().setUpClass() + cls.blanket_order_obj = cls.env["sale.blanket.order"] + cls.blanket_order_line_obj = cls.env["sale.blanket.order.line"] + cls.blanket_order_wiz_obj = cls.env["sale.blanket.order.wizard"] + cls.so_obj = cls.env["sale.order"] + + cls.payment_term = cls.env.ref("account.account_payment_term_immediate") + cls.sale_pricelist = cls.env["product.pricelist"].create( + {"name": "Test Pricelist", "currency_id": cls.env.ref("base.USD").id} + ) + + # UoM + cls.categ_unit = cls.env.ref("uom.product_uom_categ_unit") + cls.uom_dozen = cls.env["uom.uom"].create( + { + "name": "Test-DozenA", + "category_id": cls.categ_unit.id, + "factor_inv": 12, + "uom_type": "bigger", + "rounding": 0.001, + } + ) + + cls.partner = cls.env["res.partner"].create( + { + "name": "TEST CUSTOMER", + "property_product_pricelist": cls.sale_pricelist.id, + } + ) + + cls.product = cls.env["product.product"].create( + { + "name": "Demo", + "categ_id": cls.env.ref("product.product_category_1").id, + "standard_price": 35.0, + "type": "consu", + "uom_id": cls.env.ref("uom.product_uom_unit").id, + "default_code": "PROD_DEL01", + } + ) + cls.product2 = cls.env["product.product"].create( + { + "name": "Demo 2", + "categ_id": cls.env.ref("product.product_category_1").id, + "standard_price": 50.0, + "type": "consu", + "uom_id": cls.env.ref("uom.product_uom_unit").id, + "default_code": "PROD_DEL02", + } + ) + + cls.yesterday = date.today() - timedelta(days=1) + cls.tomorrow = date.today() + timedelta(days=1) + + def test_01_create_blanket_order(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, + "pricelist_id": self.sale_pricelist.id, + "line_ids": [ + ( + 0, + 0, + { + "product_id": self.product.id, + "product_uom": self.product.uom_id.id, + "original_uom_qty": 20.0, + "price_unit": 0.0, # will be updated later + }, + ), + ( + 0, + 0, + { + "name": "My section", + "display_type": "line_section", + }, + ), + ], + } + ) + blanket_order.sudo().onchange_partner_id() + blanket_order.line_ids[0].sudo().onchange_product() + blanket_order.line_ids[0].sudo()._get_display_price() + + self.assertEqual(blanket_order.state, "draft") + + # date in the past + with self.assertRaises(UserError): + blanket_order.sudo().action_confirm() + + blanket_order.validity_date = fields.Date.to_string(self.tomorrow) + blanket_order.sudo().action_confirm() + self.assertEqual(blanket_order.state, "open") + + blanket_order.sudo().action_cancel() + self.assertEqual(blanket_order.state, "expired") + + blanket_order.sudo().set_to_draft() + self.assertEqual(blanket_order.state, "draft") + + blanket_order.sudo().action_confirm() + + def test_02_create_sale_orders_from_blanket_order(self): + """We create a blanket order and create two sale orders""" + blanket_order = self.blanket_order_obj.create( + { + "partner_id": self.partner.id, + "validity_date": fields.Date.to_string(self.tomorrow), + "payment_term_id": self.payment_term.id, + "pricelist_id": self.sale_pricelist.id, + "line_ids": [ + ( + 0, + 0, + { + "product_id": False, + "product_uom": False, + "name": "My section", + "display_type": "line_section", + }, + ), + ( + 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() + blanket_order.sudo().action_confirm() + + wizard1 = self.blanket_order_wiz_obj.with_context( + active_id=blanket_order.id, active_model="sale.blanket.order" + ).create({}) + wizard1.line_ids[0].write({"qty": 10.0}) + wizard1.sudo().create_sale_order() + + wizard2 = self.blanket_order_wiz_obj.with_context( + active_id=blanket_order.id, active_model="sale.blanket.order" + ).create({}) + wizard2.line_ids[0].write({"qty": 10.0}) + wizard2.sudo().create_sale_order() + + self.assertEqual(blanket_order.state, "done") + + self.assertEqual(blanket_order.sale_count, 2) + + view_action = blanket_order.action_view_sale_orders() + domain_ids = view_action["domain"][0][2] + self.assertEqual(len(domain_ids), 2) + + sos = self.so_obj.browse(domain_ids) + for so in sos: + self.assertEqual(so.origin, blanket_order.name) + + def test_03_create_sale_orders_from_blanket_order_line(self): + """We create a blanket order and create two sale orders + from the blanket order lines""" + blanket_order = self.blanket_order_obj.create( + { + "partner_id": self.partner.id, + "validity_date": fields.Date.to_string(self.tomorrow), + "payment_term_id": self.payment_term.id, + "pricelist_id": self.sale_pricelist.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(len(bo_lines), 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_sale_order() + + self.assertEqual(bo_lines[0].remaining_uom_qty, 10.0) + self.assertEqual(bo_lines[1].remaining_uom_qty, 30.0) + + def test_04_create_sale_order_add_blanket_order_line(self): + """We create a blanket order and the separately we create + a sale order and see if blanket order lines have been + correctly assigned""" + blanket_order = self.blanket_order_obj.create( + { + "partner_id": self.partner.id, + "validity_date": fields.Date.to_string(self.tomorrow), + "payment_term_id": self.payment_term.id, + "pricelist_id": self.sale_pricelist.id, + "currency_id": self.sale_pricelist.currency_id.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 + + sale_order = self.so_obj.create( + { + "partner_id": self.partner.id, + "payment_term_id": self.payment_term.id, + "pricelist_id": self.sale_pricelist.id, + "order_line": [ + ( + 0, + 0, + { + "product_id": self.product.id, + "product_uom": self.product.uom_id.id, + "product_uom_qty": 10.0, + "price_unit": 30.0, + }, + ), + ( + 0, + 0, + { + "product_id": self.product2.id, + "product_uom": self.product2.uom_id.id, + "product_uom_qty": 50.0, + "price_unit": 60.0, + }, + ), + ], + } + ) + sale_order.order_line[0].onchange_product_id() + self.assertEqual(bo_lines[0].remaining_uom_qty, 10.0) + + def test_05_create_sale_order_blanket_order_with_different_uom(self): + """We create a blanket order and the separately we create + a sale order with different uom and see if blanket order + lines have been correctly assigned""" + blanket_order = self.blanket_order_obj.create( + { + "partner_id": self.partner.id, + "validity_date": fields.Date.to_string(self.tomorrow), + "payment_term_id": self.payment_term.id, + "pricelist_id": self.sale_pricelist.id, + "line_ids": [ + ( + 0, + 0, + { + "product_id": self.product.id, + "product_uom": self.uom_dozen.id, + "original_uom_qty": 2.0, + "price_unit": 240.0, + }, + ) + ], + } + ) + blanket_order.sudo().onchange_partner_id() + blanket_order.sudo().action_confirm() + + sale_order = self.so_obj.create( + { + "partner_id": self.partner.id, + "payment_term_id": self.payment_term.id, + "pricelist_id": self.sale_pricelist.id, + "order_line": [ + ( + 0, + 0, + { + "product_id": self.product.id, + "product_uom": self.product.uom_id.id, + "product_uom_qty": 12.0, + "price_unit": 30.0, + }, + ) + ], + } + ) + sale_order.order_line[0].onchange_product_id() + sale_order.order_line[0].onchange_blanket_order_line() + self.assertEqual(blanket_order.line_ids[0].remaining_qty, 12.0) + self.assertEqual(sale_order.order_line[0].price_unit, 20.0) + + def test_06_create_sale_orders_from_blanket_order(self): + """We create a blanket order and create three sale orders + where the first two consume the first blanket order line + """ + blanket_order = self.blanket_order_obj.create( + { + "partner_id": self.partner.id, + "validity_date": fields.Date.to_string(self.tomorrow), + "payment_term_id": self.payment_term.id, + "pricelist_id": self.sale_pricelist.id, + "line_ids": [ + ( + 0, + 0, + { + "product_id": self.product.id, + "product_uom": self.product.uom_id.id, + "original_uom_qty": 30.0, + "price_unit": 30.0, + }, + ), + ( + 0, + 0, + { + "product_id": self.product2.id, + "product_uom": self.product2.uom_id.id, + "original_uom_qty": 20.0, + "price_unit": 60.0, + }, + ), + ], + } + ) + blanket_order.sudo().onchange_partner_id() + blanket_order.sudo().action_confirm() + + wizard1 = self.blanket_order_wiz_obj.with_context( + active_id=blanket_order.id, active_model="sale.blanket.order" + ).create({}) + wizard1.line_ids.filtered(lambda line: line.product_id == self.product).write( + {"qty": 10.0} + ) + wizard1.line_ids.filtered(lambda line: line.product_id == self.product2).write( + {"qty": 10.0} + ) + wizard1.sudo().create_sale_order() + + wizard2 = self.blanket_order_wiz_obj.with_context( + active_id=blanket_order.id, active_model="sale.blanket.order" + ).create({}) + wizard2.line_ids.filtered(lambda line: line.product_id == self.product).write( + {"qty": 20.0} + ) + wizard2.line_ids.filtered(lambda line: line.product_id == self.product2).write( + {"qty": 0} + ) + wizard2.sudo().create_sale_order() + + wizard3 = self.blanket_order_wiz_obj.with_context( + active_id=blanket_order.id, active_model="sale.blanket.order" + ).create({}) + wizard3.line_ids.filtered(lambda line: line.product_id == self.product2).write( + {"qty": 10.0} + ) + wizard3.sudo().create_sale_order() + + self.assertEqual(blanket_order.state, "done") + + self.assertEqual(blanket_order.sale_count, 3) + + view_action = blanket_order.action_view_sale_orders() + domain_ids = view_action["domain"][0][2] + self.assertEqual(len(domain_ids), 3) diff --git a/sale_blanket_order/tests/test_sale_order.py b/sale_blanket_order/tests/test_sale_order.py new file mode 100644 index 00000000000..ec0b8a5725e --- /dev/null +++ b/sale_blanket_order/tests/test_sale_order.py @@ -0,0 +1,194 @@ +# Copyright (C) 2018 Eficent Business and IT Consulting Services S.L. +# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html). +from datetime import date, timedelta + +from odoo import fields +from odoo.tests import common + + +class TestSaleOrder(common.TransactionCase): + def setUp(self): + super().setUp() + self.blanket_order_obj = self.env["sale.blanket.order"] + self.blanket_order_line_obj = self.env["sale.blanket.order.line"] + self.sale_order_obj = self.env["sale.order"] + self.sale_order_line_obj = self.env["sale.order.line"] + + self.partner = self.env["res.partner"].create({"name": "TEST CUSTOMER"}) + self.payment_term = self.env.ref("account.account_payment_term_immediate") + self.sale_pricelist = self.env["product.pricelist"].create( + {"name": "Test Pricelist", "currency_id": self.env.ref("base.USD").id} + ) + + self.product = self.env["product.product"].create( + { + "name": "Demo", + "categ_id": self.env.ref("product.product_category_1").id, + "standard_price": 40.0, + "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, + "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) + + 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, + "pricelist_id": self.sale_pricelist.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, + "pricelist_id": self.sale_pricelist.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_sale_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) + + so = self.sale_order_obj.create( + { + "partner_id": self.partner.id, + "order_line": [ + ( + 0, + 0, + { + "name": self.product.name, + "product_id": self.product.id, + "product_uom_qty": 5.0, + "product_uom": self.product.uom_po_id.id, + "price_unit": 10.0, + }, + ) + ], + } + ) + so_line = so.order_line[0] + so_line.onchange_product_id() + self.assertEqual(so_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(so_line.blanket_order_line, bo_line_assigned) + + def test_02_create_sale_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) + + so = self.sale_order_obj.create( + { + "partner_id": self.partner.id, + "order_line": [ + ( + 0, + 0, + { + "name": self.product.name, + "product_id": self.product.id, + "product_uom_qty": 5.0, + "product_uom": self.product.uom_po_id.id, + "price_unit": 10.0, + }, + ) + ], + } + ) + so_line = so.order_line[0] + so_line.onchange_product_id() + self.assertEqual( + so_line._get_eligible_bo_lines(), + bo_lines.filtered(lambda bo_line: bo_line.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(so_line.blanket_order_line, bo_line_assigned) diff --git a/sale_blanket_order/views/sale_blanket_order_line_views.xml b/sale_blanket_order/views/sale_blanket_order_line_views.xml new file mode 100644 index 00000000000..c12770de400 --- /dev/null +++ b/sale_blanket_order/views/sale_blanket_order_line_views.xml @@ -0,0 +1,180 @@ + + + + + + sale.blanket.order.line.list + sale.blanket.order.line + + + + + + + + + + + + + + + + + + + + + sale.blanket.order.line.form + sale.blanket.order.line + + +
+ +

+ +

+ + + + + + + + + + + + + + + + + + +
+
+ + + +
+
+
+
+ + + sale.blanket.order.line.search + sale.blanket.order.line + + + + + + + + + + + + + Blanket Order Lines + ir.actions.act_window + sale.blanket.order.line + list,form + + + + + + +
diff --git a/sale_blanket_order/views/sale_blanket_order_views.xml b/sale_blanket_order/views/sale_blanket_order_views.xml new file mode 100644 index 00000000000..cfd26476430 --- /dev/null +++ b/sale_blanket_order/views/sale_blanket_order_views.xml @@ -0,0 +1,356 @@ + + + + + + sale.blanket.order.list + sale.blanket.order + + + + + + + + + + + + + + sale.blanket.order.form + sale.blanket.order + +
+
+
+ +
+ + +
+
+

+ +

+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + + + + + + + sale.blanket.order.search + sale.blanket.order + + + + + + + + + + + + + + + + + + + + + + Blanket Orders + ir.actions.act_window + sale.blanket.order + list,form + + [] + {} + +

+ Click to create a blanket order that can be converted into a sale order. +

+

+ Use this menu to search within your blanket orders. For each blanket order, + you can track the related discussion with the customer, control + the products delivered and control the vendor bills. +

+
+
+ + + + + diff --git a/sale_blanket_order/views/sale_config_settings.xml b/sale_blanket_order/views/sale_config_settings.xml new file mode 100644 index 00000000000..bcc4570f474 --- /dev/null +++ b/sale_blanket_order/views/sale_config_settings.xml @@ -0,0 +1,23 @@ + + + + + res.config.settings.form (in sale_blanket_order) + res.config.settings + + + + + + + + + + + + diff --git a/sale_blanket_order/views/sale_order_views.xml b/sale_blanket_order/views/sale_order_views.xml new file mode 100644 index 00000000000..405111c9438 --- /dev/null +++ b/sale_blanket_order/views/sale_order_views.xml @@ -0,0 +1,38 @@ + + + + sale.order.from.blanket.form + sale.order + + + + + + + + + + {'from_sale_order': True} + + + + + sale.order.from.blanket.form - disable adding lines + sale.order + + + + + blanket_order_id==False + + + + + diff --git a/sale_blanket_order/wizard/__init__.py b/sale_blanket_order/wizard/__init__.py new file mode 100644 index 00000000000..54c3f74714d --- /dev/null +++ b/sale_blanket_order/wizard/__init__.py @@ -0,0 +1,3 @@ +# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl). + +from . import create_sale_orders diff --git a/sale_blanket_order/wizard/create_sale_orders.py b/sale_blanket_order/wizard/create_sale_orders.py new file mode 100644 index 00000000000..6f9a19228a1 --- /dev/null +++ b/sale_blanket_order/wizard/create_sale_orders.py @@ -0,0 +1,220 @@ +# Copyright 2018 ACSONE SA/NV +# 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 = "sale.blanket.order.wizard" + _description = "Blanket order wizard" + + @api.model + def _default_order(self): + # in case the cron hasn't run + self.env["sale.blanket.order"].expire_orders() + if not self.env.context.get("active_id"): + return False + blanket_order = self.env["sale.blanket.order"].search( + [("id", "=", self.env.context["active_id"])], limit=1 + ) + if blanket_order.state == "expired": + raise UserError( + _("You can't create a sale 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 all( + float_is_zero(line.remaining_uom_qty, precision_digits=precision) + for line in bo_lines + ): + raise UserError(_("The sale has already been completed.")) + + for line in bo_lines: + if line.order_id.state != "open": + raise UserError( + _("Sale 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["sale.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 == "sale.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": bol.id, + "product_id": bol.product_id.id, + "date_schedule": bol.date_schedule, + "remaining_uom_qty": bol.remaining_uom_qty, + "price_unit": bol.price_unit, + "product_uom": bol.product_uom, + "qty": bol.remaining_uom_qty, + "partner_id": bol.partner_id, + }, + ) + for bol in bo_lines.filtered( + lambda bo_line: not bo_line.display_type + and bo_line.remaining_uom_qty != 0.0 + ) + ] + return lines + + blanket_order_id = fields.Many2one( + comodel_name="sale.blanket.order", + readonly=True, + default=lambda self: self._default_order(), + ) + sale_order_id = fields.Many2one( + "sale.order", string="Purchase Order", domain=[("state", "=", "draft")] + ) + line_ids = fields.One2many( + "sale.blanket.order.wizard.line", + "wizard_id", + string="Lines", + default=_default_lines, + ) + + def _prepare_so_line_vals(self, line): + return { + "product_id": line.product_id.id, + "name": line.product_id.name, + "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_uom_qty": line.qty, + "tax_id": [(6, 0, line.taxes_id.ids)], + } + + def _prepare_so_vals( + self, + customer, + user_id, + currency_id, + pricelist_id, + payment_term_id, + order_lines_by_customer, + ): + return { + "partner_id": customer, + "origin": self.blanket_order_id.name, + "user_id": user_id, + "currency_id": currency_id, + "pricelist_id": pricelist_id, + "payment_term_id": payment_term_id, + "order_line": order_lines_by_customer[customer], + } + + def create_sale_order(self): + order_lines_by_customer = defaultdict(list) + currency_id = 0 + pricelist_id = 0 + user_id = 0 + payment_term_id = 0 + for line in self.line_ids.filtered(lambda line: line.qty != 0.0): + if line.qty > line.remaining_uom_qty: + raise UserError(_("You can't order more than the remaining quantities")) + vals = self._prepare_so_line_vals(line) + order_lines_by_customer[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 pricelist_id == 0: + pricelist_id = line.blanket_line_id.pricelist_id.id + elif pricelist_id != line.blanket_line_id.pricelist_id.id: + pricelist_id = False + + if user_id == 0: + user_id = line.blanket_line_id.user_id.id + elif user_id != line.blanket_line_id.user_id.id: + user_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_customer: + raise UserError(_("An order can't be empty")) + + if not currency_id: + raise UserError( + _( + "Can not create Sale Order from Blanket " + "Order lines with different currencies" + ) + ) + + res = [] + for customer in order_lines_by_customer: + order_vals = self._prepare_so_vals( + customer, + user_id, + currency_id, + pricelist_id, + payment_term_id, + order_lines_by_customer, + ) + sale_order = self.env["sale.order"].create(order_vals) + res.append(sale_order.id) + return { + "domain": [("id", "in", res)], + "name": _("Sales Orders"), + "view_type": "form", + "view_mode": "list,form", + "res_model": "sale.order", + "context": {"from_sale_order": True}, + "type": "ir.actions.act_window", + } + + +class BlanketOrderWizardLine(models.TransientModel): + _name = "sale.blanket.order.wizard.line" + _description = "Blanket order wizard line" + + wizard_id = fields.Many2one("sale.blanket.order.wizard") + blanket_line_id = fields.Many2one("sale.blanket.order.line") + product_id = fields.Many2one( + "product.product", related="blanket_line_id.product_id", string="Product" + ) + product_uom = fields.Many2one( + "uom.uom", related="blanket_line_id.product_uom", string="Unit of Measure" + ) + date_schedule = fields.Date(string="Scheduled Date") + remaining_uom_qty = fields.Float(related="blanket_line_id.remaining_uom_qty") + qty = fields.Float(string="Quantity to Order", required=True) + price_unit = fields.Float(related="blanket_line_id.price_unit") + 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" + ) + taxes_id = fields.Many2many("account.tax", related="blanket_line_id.taxes_id") diff --git a/sale_blanket_order/wizard/create_sale_orders.xml b/sale_blanket_order/wizard/create_sale_orders.xml new file mode 100644 index 00000000000..b34143d749b --- /dev/null +++ b/sale_blanket_order/wizard/create_sale_orders.xml @@ -0,0 +1,49 @@ + + + + Create Sale Order + sale.blanket.order.wizard + +
+ + + + + + + + + + + + + + +
+
+
+
+
+ + Create Sale Order + ir.actions.act_window + sale.blanket.order.wizard + form + new + + +