diff --git a/pandoc-3.5-1-amd64.deb b/pandoc-3.5-1-amd64.deb new file mode 100644 index 000000000000..8e708ce7590e Binary files /dev/null and b/pandoc-3.5-1-amd64.deb differ diff --git a/product_pricelist_direct_print/README.rst b/product_pricelist_direct_print/README.rst new file mode 100644 index 000000000000..3f1befa4f0af --- /dev/null +++ b/product_pricelist_direct_print/README.rst @@ -0,0 +1,154 @@ +============================== +Product Pricelist Direct Print +============================== + +.. + !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! + !! This file is generated by oca-gen-addon-readme !! + !! changes will be overwritten. !! + !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! + !! source digest: sha256:e481d8d19b78389c96ca0ec9f8e645a94bd1185a0963546fff7b3dc79d91d754 + !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! + +.. |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%2Fproduct--attribute-lightgray.png?logo=github + :target: https://github.com/OCA/product-attribute/tree/16.0/product_pricelist_direct_print + :alt: OCA/product-attribute +.. |badge4| image:: https://img.shields.io/badge/weblate-Translate%20me-F47D42.png + :target: https://translation.odoo-community.org/projects/product-attribute-16-0/product-attribute-16-0-product_pricelist_direct_print + :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/product-attribute&target_branch=16.0 + :alt: Try me on Runboat + +|badge1| |badge2| |badge3| |badge4| |badge5| + +Print price list from menu option, product templates, products variants or +price lists + +**Note:** + +- Odoo provides a similar feature, but with limited functionality. +- If you want to have Price List exported in XLSX format, install the ``product_pricelist_direct_print_xlsx`` + OCA module present in the same repository. + +**Table of contents** + +.. contents:: + :local: + +Configuration +============= + +To configure this module, you need to: + +#. Go to *Apps* and install *Sales* +#. Go to *Sales > Configuration > Settings* +#. Scroll to *Pricing* +#. Enable 'Pricelists'. + +Users will need *Advanced Pricelists* to access the menus: + +#. Enable developer mode +#. Go to *Settings > Users & Companies > Users* +#. Create or Edit a record +#. Scroll to *Technical Settings* +#. Enable *Advanced Pricelists* + +Usage +===== + +To use this module, you have several options: + +#. Go to *Sales > Products > Print Price List* + +#. Go to *Sales > Products > Products* + * Select products in list view + * Press *Action > Price List* + +#. Go to *Sales > Products > Product Variants* + * Select products in list view + * Press *Action > Price List* + +#. Go to *Sales > Orders > Customers* + * Select customers in list view + * Press *Action > Send customer pricelist by EMail* + +.. figure:: https://raw.githubusercontent.com/OCA/product-attribute/16.0/product_pricelist_direct_print/static/description/wizard_form.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 +~~~~~~~ + +* Tecnativa +* GRAP + +Contributors +~~~~~~~~~~~~ + +* `Tecnativa `_: + + * Carlos Dauden + * David Vidal + * Sergio Teruel + * João Marques + * Carlos Roca + +* `CorporateHub `_: + + * Alexey Pelykh + +* `GRAP `_: + + * Sylvain LE GAL + +* `FactorLibre `_: + + * Juan Carlos Bonilla + +* `Trobz `_: + + * Tris Doan + * Chau Le + +Maintainers +~~~~~~~~~~~ + +This module is maintained by the OCA. + +.. image:: https://odoo-community.org/logo.png + :alt: Odoo Community Association + :target: https://odoo-community.org + +OCA, or the Odoo Community Association, is a nonprofit organization whose +mission is to support the collaborative development of Odoo features and +promote its widespread use. + +.. |maintainer-legalsylvain| image:: https://github.com/legalsylvain.png?size=40px + :target: https://github.com/legalsylvain + :alt: legalsylvain + +Current `maintainer `__: + +|maintainer-legalsylvain| + +This module is part of the `OCA/product-attribute `_ project on GitHub. + +You are welcome to contribute. To learn how please visit https://odoo-community.org/page/Contribute. diff --git a/product_pricelist_direct_print/__init__.py b/product_pricelist_direct_print/__init__.py new file mode 100644 index 000000000000..5cb1c49143f5 --- /dev/null +++ b/product_pricelist_direct_print/__init__.py @@ -0,0 +1 @@ +from . import wizards diff --git a/product_pricelist_direct_print/__manifest__.py b/product_pricelist_direct_print/__manifest__.py new file mode 100644 index 000000000000..9b47302a4173 --- /dev/null +++ b/product_pricelist_direct_print/__manifest__.py @@ -0,0 +1,21 @@ +# Copyright 2017 Tecnativa - Carlos Dauden +# Copyright 2020 Tecnativa - João Marques +# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl.html). +{ + "name": "Product Pricelist Direct Print", + "summary": "Print price list from menu option, product templates, " + "products variants or price lists", + "version": "17.0.1.0.0", + "category": "Product", + "website": "https://github.com/OCA/product-attribute", + "author": "Tecnativa, GRAP, Odoo Community Association (OCA)", + "maintainers": ["legalsylvain"], + "license": "AGPL-3", + "depends": ["sale"], + "data": [ + "security/ir.model.access.csv", + "reports/report_product_pricelist.xml", + "data/mail_template_data.xml", + "wizards/product_pricelist_print_view.xml", + ], +} diff --git a/product_pricelist_direct_print/data/mail_template_data.xml b/product_pricelist_direct_print/data/mail_template_data.xml new file mode 100644 index 000000000000..08fd3ddc1f24 --- /dev/null +++ b/product_pricelist_direct_print/data/mail_template_data.xml @@ -0,0 +1,47 @@ + + + + + + Pricelist - Send by Email + {{ (object.write_uid.email and '"%s" <%s>' % (object.write_uid.name, object.write_uid.email) or '') or "safe" }} + {{ object.pricelist_id.company_id.name or object.write_uid.company_id.name }} Pricelist (Ref {{ object.pricelist_id.name or 'n/a' }}) + {{ object.partner_id and object.partner_id.id or '' }} + + + + {{ object.partner_id and object.partner_id.lang or object.write_uid.partner_id.lang }} + +
+

Dear ,

+

+ The attached file is a PDF document containg the + pricelist. +

+

You can reply to this email if you have any questions.

+

Thank you,

+ +

+ + + +

+
+
+
+
diff --git a/product_pricelist_direct_print/i18n/es.po b/product_pricelist_direct_print/i18n/es.po new file mode 100644 index 000000000000..eed39dd28701 --- /dev/null +++ b/product_pricelist_direct_print/i18n/es.po @@ -0,0 +1,531 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * product_pricelist_direct_print +# +# Translators: +# OCA Transbot , 2017 +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 9.0c\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2023-06-05 09:24+0000\n" +"PO-Revision-Date: 2023-08-29 08:30+0000\n" +"Last-Translator: Ivorra78 \n" +"Language-Team: Spanish (https://www.transifex.com/oca/teams/23907/es/)\n" +"Language: es\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=2; plural=n != 1;\n" +"X-Generator: Weblate 4.17\n" + +#. module: product_pricelist_direct_print +#: model:mail.template,body_html:product_pricelist_direct_print.email_template_edi_pricelist +msgid "" +"
\n" +"

Dear ,

\n" +"

\n" +" The attached file is a PDF document containg the\n" +" pricelist.\n" +"

\n" +"

You can reply to this email if you have any questions.

\n" +"

Thank you,

\n" +"\n" +"

\n" +" \n" +" \n" +" \n" +"

\n" +"
\n" +" " +msgstr "" +"
\n" +"

Estimado/a ,

\n" +"

\n" +" El archivo adjunto es un documento PDF que contiene la\n" +" lista de precios\n" +"

\n" +"

Puede contestar a este correo electrónico si tiene alguna pregunta.\n" +"

Gracias,

\n" +"\n" +"

\n" +" \n" +" \n" +" \n" +"

\n" +"
\n" +" " + +#. module: product_pricelist_direct_print +#: model_terms:ir.ui.view,arch_db:product_pricelist_direct_print.report_product_pricelist_document +msgid "Special Pricelist" +msgstr "Tarifa especial" + +#. module: product_pricelist_direct_print +#: model_terms:ir.ui.view,arch_db:product_pricelist_direct_print.report_product_pricelist_document +msgid "Cost Price" +msgstr "Precio coste" + +#. module: product_pricelist_direct_print +#: model_terms:ir.ui.view,arch_db:product_pricelist_direct_print.report_product_pricelist_document +msgid "Currency:
" +msgstr "Moneda:
" + +#. module: product_pricelist_direct_print +#: model_terms:ir.ui.view,arch_db:product_pricelist_direct_print.report_product_pricelist_document +msgid "Date:
" +msgstr "Fecha:
" + +#. module: product_pricelist_direct_print +#: model_terms:ir.ui.view,arch_db:product_pricelist_direct_print.report_product_pricelist_document +msgid "Description" +msgstr "Descripción" + +#. module: product_pricelist_direct_print +#: model_terms:ir.ui.view,arch_db:product_pricelist_direct_print.report_product_pricelist_document +msgid "List Price" +msgstr "Precio de tarifa" + +#. module: product_pricelist_direct_print +#: model_terms:ir.ui.view,arch_db:product_pricelist_direct_print.report_product_pricelist_document +msgid "Price List Name:
" +msgstr "Nombre tarifa:
" + +#. module: product_pricelist_direct_print +#: model_terms:ir.ui.view,arch_db:product_pricelist_direct_print.report_product_pricelist_document +msgid "Sale Price" +msgstr "Precio ficha" + +#. module: product_pricelist_direct_print +#: model_terms:ir.ui.view,arch_db:product_pricelist_direct_print.report_product_pricelist_document +msgid "UoM" +msgstr "UDM" + +#. module: product_pricelist_direct_print +#: model_terms:ir.ui.view,arch_db:product_pricelist_direct_print.view_product_pricelist_print +msgid "Cancel" +msgstr "Cancelar" + +#. module: product_pricelist_direct_print +#: model:ir.model.fields,field_description:product_pricelist_direct_print.field_product_pricelist_print__categ_ids +msgid "Categories" +msgstr "Categorías" + +#. module: product_pricelist_direct_print +#: model:ir.model.fields,help:product_pricelist_direct_print.field_product_pricelist_print__show_only_defined_products +msgid "" +"Check this field to print only the products defined in the pricelist. The " +"entries in the list referring to all products will not be displayed." +msgstr "" +"Marca este campo para imprimir los productos definidos en la tarifa. Los " +"elementos de la lista de precios que hacen referencia a todos los productos " +"no se van a tener en cuenta." + +#. module: product_pricelist_direct_print +#: model_terms:ir.ui.view,arch_db:product_pricelist_direct_print.view_product_pricelist_print +msgid "Column Options" +msgstr "Opciones de columna" + +#. module: product_pricelist_direct_print +#: model:ir.model.fields,field_description:product_pricelist_direct_print.field_product_pricelist_print__context_active_model +msgid "Context Active Model" +msgstr "Modelo activo de contexto" + +#. module: product_pricelist_direct_print +#: model:ir.model.fields,field_description:product_pricelist_direct_print.field_product_pricelist_print__create_uid +msgid "Created by" +msgstr "Creado por" + +#. module: product_pricelist_direct_print +#: model:ir.model.fields,field_description:product_pricelist_direct_print.field_product_pricelist_print__create_date +msgid "Created on" +msgstr "Creado en" + +#. module: product_pricelist_direct_print +#: model:ir.model.fields,field_description:product_pricelist_direct_print.field_product_pricelist_print__partner_id +msgid "Customer" +msgstr "Cliente" + +#. module: product_pricelist_direct_print +#: model:ir.model.fields,field_description:product_pricelist_direct_print.field_product_pricelist_print__partner_ids +#: model_terms:ir.ui.view,arch_db:product_pricelist_direct_print.view_product_pricelist_print +msgid "Customers" +msgstr "Clientes" + +#. module: product_pricelist_direct_print +#: model:ir.model.fields,field_description:product_pricelist_direct_print.field_product_pricelist_print__date +msgid "Date" +msgstr "Fecha" + +#. module: product_pricelist_direct_print +#: model:ir.model.fields,field_description:product_pricelist_direct_print.field_product_pricelist_print__display_name +msgid "Display Name" +msgstr "Nombre mostrado" + +#. module: product_pricelist_direct_print +#: model:ir.model.fields,field_description:product_pricelist_direct_print.field_product_pricelist_print__group_field +msgid "Group Field" +msgstr "Campo de grupo" + +#. module: product_pricelist_direct_print +#: model:ir.model.fields,field_description:product_pricelist_direct_print.field_product_pricelist_print__id +msgid "ID" +msgstr "ID (identificación)" + +#. module: product_pricelist_direct_print +#: model:ir.model.fields,help:product_pricelist_direct_print.field_product_pricelist_print__max_categ_level +msgid "" +"If this field is not 0, products are grouped at max level of category tree." +msgstr "" +"Si este campo no es 0, los productos se agrupan en el nivel máximo del árbol " +"de categorías." + +#. module: product_pricelist_direct_print +#: model:ir.model.fields,help:product_pricelist_direct_print.field_product_pricelist_print__last_ordered_products +msgid "" +"If you enter an X number here, then, for each selected customer, the last X " +"ordered products will be obtained for the report." +msgstr "" +"Si introduce un número X aquí, entonces, para cada cliente seleccionado, se " +"tendrán en cuanta los últimos X productos pedidos." + +#. module: product_pricelist_direct_print +#: model:ir.model.fields.selection,name:product_pricelist_direct_print.selection__product_pricelist_print__order_field__default_code +msgid "Internal Reference" +msgstr "Referencia interna" + +#. module: product_pricelist_direct_print +#: model:ir.model.fields,help:product_pricelist_direct_print.field_product_pricelist_print__product_ids +#: model:ir.model.fields,help:product_pricelist_direct_print.field_product_pricelist_print__product_tmpl_ids +msgid "Keep empty for all products" +msgstr "Dejar vacío para mostrar todos los productos" + +#. module: product_pricelist_direct_print +#: model:ir.model.fields,field_description:product_pricelist_direct_print.field_product_pricelist_print__lang +msgid "Language" +msgstr "Idioma" + +#. module: product_pricelist_direct_print +#: model:ir.model.fields,field_description:product_pricelist_direct_print.field_product_pricelist_print____last_update +msgid "Last Modified on" +msgstr "Última modificación en" + +#. module: product_pricelist_direct_print +#: model:ir.model.fields,field_description:product_pricelist_direct_print.field_product_pricelist_print__last_ordered_products +msgid "Last Ordered Products" +msgstr "Últimos productos pedidos" + +#. module: product_pricelist_direct_print +#: model:ir.model.fields,field_description:product_pricelist_direct_print.field_product_pricelist_print__write_uid +msgid "Last Updated by" +msgstr "Última actualización de" + +#. module: product_pricelist_direct_print +#: model:ir.model.fields,field_description:product_pricelist_direct_print.field_product_pricelist_print__write_date +msgid "Last Updated on" +msgstr "Última actualización en" + +#. module: product_pricelist_direct_print +#: model_terms:ir.ui.view,arch_db:product_pricelist_direct_print.view_product_pricelist_print +msgid "Main Settings" +msgstr "Ajustes principales" + +#. module: product_pricelist_direct_print +#: model:ir.model.fields,field_description:product_pricelist_direct_print.field_product_pricelist_print__max_categ_level +msgid "Max category level" +msgstr "Nivel máximo de categoría" + +#. module: product_pricelist_direct_print +#: model:ir.model.fields.selection,name:product_pricelist_direct_print.selection__product_pricelist_print__order_field__name +msgid "Name" +msgstr "Nombre" + +#. module: product_pricelist_direct_print +#: model:ir.model.fields,field_description:product_pricelist_direct_print.field_product_pricelist_print__order_field +msgid "Order" +msgstr "Orden" + +#. module: product_pricelist_direct_print +#: model_terms:ir.ui.view,arch_db:product_pricelist_direct_print.view_product_pricelist_print +msgid "Order Options" +msgstr "Opciones de pedido" + +#. module: product_pricelist_direct_print +#: model:ir.model.fields,field_description:product_pricelist_direct_print.field_product_pricelist_print__partner_count +msgid "Partner Count" +msgstr "Número de partners" + +#. module: product_pricelist_direct_print +#: model:ir.actions.act_window,name:product_pricelist_direct_print.action_item_pricelist_print +#: model:ir.actions.act_window,name:product_pricelist_direct_print.action_product_pricelist_print +#: model:ir.actions.act_window,name:product_pricelist_direct_print.action_product_product_pricelist_print +#: model:ir.actions.act_window,name:product_pricelist_direct_print.action_product_template_pricelist_print +#: model_terms:ir.ui.view,arch_db:product_pricelist_direct_print.report_product_pricelist_document +msgid "Price List" +msgstr "Tarifa" + +#. module: product_pricelist_direct_print +#: model:ir.model.fields,field_description:product_pricelist_direct_print.field_product_pricelist_print__pricelist_id +msgid "Pricelist" +msgstr "Tarifa" + +#. module: product_pricelist_direct_print +#: model:mail.template,name:product_pricelist_direct_print.email_template_edi_pricelist +msgid "Pricelist - Send by Email" +msgstr "Lista de precios - Enviar por email" + +#. module: product_pricelist_direct_print +#: model_terms:ir.ui.view,arch_db:product_pricelist_direct_print.view_product_pricelist_print +msgid "Print" +msgstr "Imprimir" + +#. module: product_pricelist_direct_print +#: model:ir.model.fields,field_description:product_pricelist_direct_print.field_product_pricelist_print__print_child_categories +msgid "Print Child Categories" +msgstr "" + +#. module: product_pricelist_direct_print +#: model:ir.actions.act_window,name:product_pricelist_direct_print.action_pricelist_print +#: model:ir.ui.menu,name:product_pricelist_direct_print.menu_product_pricelist_print +msgid "Print Price List" +msgstr "Imprimir tarifa" + +#. module: product_pricelist_direct_print +#: model_terms:ir.ui.view,arch_db:product_pricelist_direct_print.view_product_pricelist_print +msgid "Product Options" +msgstr "Opciones de producto" + +#. module: product_pricelist_direct_print +#: model:ir.model.fields,field_description:product_pricelist_direct_print.field_product_pricelist_print__product_price +msgid "Product Price" +msgstr "Precio de producto" + +#. module: product_pricelist_direct_print +#: model:ir.actions.report,name:product_pricelist_direct_print.action_report_product_pricelist +msgid "Product Price List" +msgstr "Tarifa de productos" + +#. module: product_pricelist_direct_print +#: model:ir.model,name:product_pricelist_direct_print.model_product_pricelist_print +msgid "Product Pricelist Print" +msgstr "Impresión de tarifas" + +#. module: product_pricelist_direct_print +#: model:ir.model.fields,field_description:product_pricelist_direct_print.field_product_pricelist_print__product_tmpl_ids +msgid "Product Templates" +msgstr "Productos" + +#. module: product_pricelist_direct_print +#: model:ir.model.fields,field_description:product_pricelist_direct_print.field_product_pricelist_print__product_ids +#: model_terms:ir.ui.view,arch_db:product_pricelist_direct_print.view_product_pricelist_print +msgid "Products" +msgstr "Productos" + +#. module: product_pricelist_direct_print +#: model_terms:ir.ui.view,arch_db:product_pricelist_direct_print.view_product_pricelist_print +msgid "Send by email" +msgstr "Enviar por email" + +#. module: product_pricelist_direct_print +#: model:ir.actions.act_window,name:product_pricelist_direct_print.action_partner_pricelist_print +msgid "Send customer pricelist by EMail" +msgstr "Enviar tarifa de cliente por email" + +#. module: product_pricelist_direct_print +#: model:ir.model.fields,field_description:product_pricelist_direct_print.field_product_pricelist_print__show_standard_price +msgid "Show Cost Price" +msgstr "Mostrar precio de coste" + +#. module: product_pricelist_direct_print +#: model:ir.model.fields,field_description:product_pricelist_direct_print.field_product_pricelist_print__show_pricelist_name +msgid "Show Pricelist Name" +msgstr "Mostrar nombre de lista de precios" + +#. module: product_pricelist_direct_print +#: model:ir.model.fields,field_description:product_pricelist_direct_print.field_product_pricelist_print__show_product_uom +msgid "Show Product UoM" +msgstr "Mostrar la UM del producto" + +#. module: product_pricelist_direct_print +#: model:ir.model.fields,field_description:product_pricelist_direct_print.field_product_pricelist_print__show_sale_price +msgid "Show Sale Price" +msgstr "Mostrar precio ficha" + +#. module: product_pricelist_direct_print +#: model:ir.model.fields,field_description:product_pricelist_direct_print.field_product_pricelist_print__show_variants +msgid "Show Variants" +msgstr "Mostrar variantes" + +#. module: product_pricelist_direct_print +#: model:ir.model.fields,field_description:product_pricelist_direct_print.field_product_pricelist_print__show_only_defined_products +msgid "Show the products defined on pricelist" +msgstr "Mostrar los productos definidos en la tarifa" + +#. module: product_pricelist_direct_print +#: model:ir.model.fields,field_description:product_pricelist_direct_print.field_product_pricelist_print__summary +#: model_terms:ir.ui.view,arch_db:product_pricelist_direct_print.view_product_pricelist_print +msgid "Summary" +msgstr "Resumen" + +#. module: product_pricelist_direct_print +#. odoo-python +#: code:addons/product_pricelist_direct_print/wizards/product_pricelist_print.py:0 +#, python-format +msgid "Undefined" +msgstr "Indefinido" + +#. module: product_pricelist_direct_print +#: model:ir.model.fields.selection,name:product_pricelist_direct_print.selection__product_pricelist_print__vat_mode__vat_excl +msgid "Vat Excluded" +msgstr "IVA excluido" + +#. module: product_pricelist_direct_print +#: model:ir.model.fields.selection,name:product_pricelist_direct_print.selection__product_pricelist_print__vat_mode__vat_incl +msgid "Vat Included" +msgstr "IVA incluido" + +#. module: product_pricelist_direct_print +#: model:ir.model.fields,field_description:product_pricelist_direct_print.field_product_pricelist_print__vat_mode +msgid "Vat Mode" +msgstr "Modo de IVA" + +#. module: product_pricelist_direct_print +#. odoo-python +#: code:addons/product_pricelist_direct_print/wizards/product_pricelist_print.py:0 +#, python-format +msgid "You must set price list or any customer or any show price option." +msgstr "Debe seleccionar una tarifa o alguna opción mostrar precio." + +#. module: product_pricelist_direct_print +#: model:mail.template,subject:product_pricelist_direct_print.email_template_edi_pricelist +msgid "" +"{{ object.pricelist_id.company_id.name or object.write_uid.company_id." +"name }} Pricelist (Ref {{ object.pricelist_id.name or 'n/a' }})" +msgstr "" +"{{ object.pricelist_id.company_id.name or object.write_uid.company_id." +"name }} Tarifa (Ref {{ object.pricelist_id.name or 'n/a' }})" + +#. module: product_pricelist_direct_print +#: model:mail.template,report_name:product_pricelist_direct_print.email_template_edi_pricelist +msgid "{{ object.pricelist_id.name }}" +msgstr "{{ object.pricelist_id.name }}" + +#~ msgid "" +#~ "
\n" +#~ "

Dear ,

\n" +#~ "

\n" +#~ " The attached file is a PDF document containg the\n" +#~ " pricelist.\n" +#~ "

\n" +#~ "

You can reply to this email if you have any questions.

\n" +#~ "

Thank you,

\n" +#~ "\n" +#~ "

\n" +#~ " \n" +#~ " \n" +#~ " \n" +#~ "

\n" +#~ "
\n" +#~ " " +#~ msgstr "" +#~ "
\n" +#~ "

Estimado ,

\n" +#~ "

\n" +#~ " El fichero adjunto es un PDF que contiene la tarifa\n" +#~ " pricelist.\n" +#~ "

\n" +#~ "

Puede responder a este correo electrónico si tiene alguna pregunta." +#~ "

\n" +#~ "

Gracias,

\n" +#~ "\n" +#~ "

\n" +#~ " \n" +#~ " \n" +#~ " \n" +#~ "

\n" +#~ "
\n" +#~ " " + +#~ msgid "Abstract model to export as xlsx the product pricelist" +#~ msgstr "Modelo abstracto para exportar los productos de tarifa a xlsx" + +#, fuzzy +#~ msgid "Breakage Per Category" +#~ msgstr "Rotura por categoría" + +#, python-format +#~ msgid "Cost Price" +#~ msgstr "Precio de coste" + +#, python-format +#~ msgid "Currency:" +#~ msgstr "Moneda:" + +#, python-format +#~ msgid "Date:" +#~ msgstr "Fecha:" + +#, python-format +#~ msgid "Description" +#~ msgstr "Descripción" + +#~ msgid "Export" +#~ msgstr "Exportar" + +#~ msgid "Export Options" +#~ msgstr "Opciones de exportación" + +#~ msgid "Filter Options" +#~ msgstr "Opciones de filtrado" + +#~ msgid "Hide Pricelist Name" +#~ msgstr "Ocultar nombre de tarifa" + +#, python-format +#~ msgid "Internal Category" +#~ msgstr "Categoría interna" + +#, python-format +#~ msgid "List Price" +#~ msgstr "Precio de tarifa" + +#, python-format +#~ msgid "PRODUCTS" +#~ msgstr "PRODUCTOS" + +#, python-format +#~ msgid "Price List Name:" +#~ msgstr "Nombre tarifa:" + +#~ msgid "Product Pricelist XLSX" +#~ msgstr "Exportar lista de precios del producto" + +#, python-format +#~ msgid "Sale Price" +#~ msgstr "PVP" + +#~ msgid "Show internal categories" +#~ msgstr "Mostrar categorías internas" + +#, python-format +#~ msgid "Special Pricelist" +#~ msgstr "Tarifa especial" + +#, python-format +#~ msgid "Summary:" +#~ msgstr "Resumen:" + +#~ msgid "Group by parent category" +#~ msgstr "Agrupar por categoría padre" + +#~ msgid "" +#~ "If this field is selected, the different sections will be grouped by the " +#~ "parent category (if it has) instead of the actual category." +#~ msgstr "" +#~ "Si este campo está seleccionado, las secciones van a estar agrupadas por " +#~ "la categoría padre (si tienen) en lugar de la categoría actual." diff --git a/product_pricelist_direct_print/i18n/fr.po b/product_pricelist_direct_print/i18n/fr.po new file mode 100644 index 000000000000..5cd55d875bb4 --- /dev/null +++ b/product_pricelist_direct_print/i18n/fr.po @@ -0,0 +1,392 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * product_pricelist_direct_print +# +# Translators: +# leemannd , 2017 +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 9.0c\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2017-03-09 03:40+0000\n" +"PO-Revision-Date: 2017-03-09 03:40+0000\n" +"Last-Translator: leemannd , 2017\n" +"Language-Team: French (https://www.transifex.com/oca/teams/23907/fr/)\n" +"Language: fr\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: \n" +"Plural-Forms: nplurals=2; plural=(n > 1);\n" + +#. module: product_pricelist_direct_print +#: model:mail.template,body_html:product_pricelist_direct_print.email_template_edi_pricelist +msgid "" +"
\n" +"

Dear ,

\n" +"

\n" +" The attached file is a PDF document containg the\n" +" pricelist.\n" +"

\n" +"

You can reply to this email if you have any questions.

\n" +"

Thank you,

\n" +"\n" +"

\n" +" \n" +" \n" +" \n" +"

\n" +"
\n" +" " +msgstr "" + +#. module: product_pricelist_direct_print +#: model_terms:ir.ui.view,arch_db:product_pricelist_direct_print.report_product_pricelist_document +msgid "Special Pricelist" +msgstr "Liste de prix personnalisée" + +#. module: product_pricelist_direct_print +#: model_terms:ir.ui.view,arch_db:product_pricelist_direct_print.report_product_pricelist_document +msgid "Cost Price" +msgstr "Coût" + +#. module: product_pricelist_direct_print +#: model_terms:ir.ui.view,arch_db:product_pricelist_direct_print.report_product_pricelist_document +msgid "Currency:
" +msgstr "Devise:
" + +#. module: product_pricelist_direct_print +#: model_terms:ir.ui.view,arch_db:product_pricelist_direct_print.report_product_pricelist_document +msgid "Date:
" +msgstr "" + +#. module: product_pricelist_direct_print +#: model_terms:ir.ui.view,arch_db:product_pricelist_direct_print.report_product_pricelist_document +msgid "Description" +msgstr "" + +#. module: product_pricelist_direct_print +#: model_terms:ir.ui.view,arch_db:product_pricelist_direct_print.report_product_pricelist_document +msgid "List Price" +msgstr "Liste de prix" + +#. module: product_pricelist_direct_print +#: model_terms:ir.ui.view,arch_db:product_pricelist_direct_print.report_product_pricelist_document +msgid "Price List Name:
" +msgstr "Liste de prix:
" + +#. module: product_pricelist_direct_print +#: model_terms:ir.ui.view,arch_db:product_pricelist_direct_print.report_product_pricelist_document +msgid "Sale Price" +msgstr "Prix de vente" + +#. module: product_pricelist_direct_print +#: model_terms:ir.ui.view,arch_db:product_pricelist_direct_print.report_product_pricelist_document +msgid "UoM" +msgstr "UdM" + +#. module: product_pricelist_direct_print +#: model_terms:ir.ui.view,arch_db:product_pricelist_direct_print.view_product_pricelist_print +msgid "Cancel" +msgstr "Annuler" + +#. module: product_pricelist_direct_print +#: model:ir.model.fields,field_description:product_pricelist_direct_print.field_product_pricelist_print__categ_ids +msgid "Categories" +msgstr "Catégories" + +#. module: product_pricelist_direct_print +#: model:ir.model.fields,help:product_pricelist_direct_print.field_product_pricelist_print__show_only_defined_products +msgid "" +"Check this field to print only the products defined in the pricelist. The " +"entries in the list referring to all products will not be displayed." +msgstr "" + +#. module: product_pricelist_direct_print +#: model_terms:ir.ui.view,arch_db:product_pricelist_direct_print.view_product_pricelist_print +msgid "Column Options" +msgstr "Options de colonne" + +#. module: product_pricelist_direct_print +#: model:ir.model.fields,field_description:product_pricelist_direct_print.field_product_pricelist_print__context_active_model +msgid "Context Active Model" +msgstr "" + +#. module: product_pricelist_direct_print +#: model:ir.model.fields,field_description:product_pricelist_direct_print.field_product_pricelist_print__create_uid +msgid "Created by" +msgstr "Créé par" + +#. module: product_pricelist_direct_print +#: model:ir.model.fields,field_description:product_pricelist_direct_print.field_product_pricelist_print__create_date +msgid "Created on" +msgstr "" + +#. module: product_pricelist_direct_print +#: model:ir.model.fields,field_description:product_pricelist_direct_print.field_product_pricelist_print__partner_id +msgid "Customer" +msgstr "Client" + +#. module: product_pricelist_direct_print +#: model:ir.model.fields,field_description:product_pricelist_direct_print.field_product_pricelist_print__partner_ids +#: model_terms:ir.ui.view,arch_db:product_pricelist_direct_print.view_product_pricelist_print +msgid "Customers" +msgstr "Clients" + +#. module: product_pricelist_direct_print +#: model:ir.model.fields,field_description:product_pricelist_direct_print.field_product_pricelist_print__date +msgid "Date" +msgstr "" + +#. module: product_pricelist_direct_print +#: model:ir.model.fields,field_description:product_pricelist_direct_print.field_product_pricelist_print__display_name +msgid "Display Name" +msgstr "Nom d'affichage" + +#. module: product_pricelist_direct_print +#: model:ir.model.fields,field_description:product_pricelist_direct_print.field_product_pricelist_print__group_field +msgid "Group Field" +msgstr "Regrouper par" + +#. module: product_pricelist_direct_print +#: model:ir.model.fields,field_description:product_pricelist_direct_print.field_product_pricelist_print__id +msgid "ID" +msgstr "" + +#. module: product_pricelist_direct_print +#: model:ir.model.fields,help:product_pricelist_direct_print.field_product_pricelist_print__max_categ_level +msgid "" +"If this field is not 0, products are grouped at max level of category tree." +msgstr "" +"Si ce champs est défini, les articles seront regroupé à un niveau de " +"l'arborescence de catégorie" + +#. module: product_pricelist_direct_print +#: model:ir.model.fields,help:product_pricelist_direct_print.field_product_pricelist_print__last_ordered_products +msgid "" +"If you enter an X number here, then, for each selected customer, the last X " +"ordered products will be obtained for the report." +msgstr "" +"Si vous saisissez une quantité, pour chaque client, les X derniers produits " +"achetés seront affichés sur le rapport" + +#. module: product_pricelist_direct_print +#: model:ir.model.fields.selection,name:product_pricelist_direct_print.selection__product_pricelist_print__order_field__default_code +msgid "Internal Reference" +msgstr "Référence interne" + +#. module: product_pricelist_direct_print +#: model:ir.model.fields,help:product_pricelist_direct_print.field_product_pricelist_print__product_ids +#: model:ir.model.fields,help:product_pricelist_direct_print.field_product_pricelist_print__product_tmpl_ids +msgid "Keep empty for all products" +msgstr "Laisser libre pour afficher tous les articles" + +#. module: product_pricelist_direct_print +#: model:ir.model.fields,field_description:product_pricelist_direct_print.field_product_pricelist_print__lang +msgid "Language" +msgstr "Langue" + +#. module: product_pricelist_direct_print +#: model:ir.model.fields,field_description:product_pricelist_direct_print.field_product_pricelist_print____last_update +msgid "Last Modified on" +msgstr "Dernière modification le" + +#. module: product_pricelist_direct_print +#: model:ir.model.fields,field_description:product_pricelist_direct_print.field_product_pricelist_print__last_ordered_products +msgid "Last Ordered Products" +msgstr "Articles dernièrement commandés" + +#. module: product_pricelist_direct_print +#: model:ir.model.fields,field_description:product_pricelist_direct_print.field_product_pricelist_print__write_uid +msgid "Last Updated by" +msgstr "Dernière modification par" + +#. module: product_pricelist_direct_print +#: model:ir.model.fields,field_description:product_pricelist_direct_print.field_product_pricelist_print__write_date +msgid "Last Updated on" +msgstr "" + +#. module: product_pricelist_direct_print +#: model_terms:ir.ui.view,arch_db:product_pricelist_direct_print.view_product_pricelist_print +msgid "Main Settings" +msgstr "Configuration principale" + +#. module: product_pricelist_direct_print +#: model:ir.model.fields,field_description:product_pricelist_direct_print.field_product_pricelist_print__max_categ_level +msgid "Max category level" +msgstr "Niveau de catégorie maximum" + +#. module: product_pricelist_direct_print +#: model:ir.model.fields.selection,name:product_pricelist_direct_print.selection__product_pricelist_print__order_field__name +msgid "Name" +msgstr "Nom" + +#. module: product_pricelist_direct_print +#: model:ir.model.fields,field_description:product_pricelist_direct_print.field_product_pricelist_print__order_field +msgid "Order" +msgstr "Ordre" + +#. module: product_pricelist_direct_print +#: model_terms:ir.ui.view,arch_db:product_pricelist_direct_print.view_product_pricelist_print +msgid "Order Options" +msgstr "Options d'ordre" + +#. module: product_pricelist_direct_print +#: model:ir.model.fields,field_description:product_pricelist_direct_print.field_product_pricelist_print__partner_count +msgid "Partner Count" +msgstr "Nombre de clients" + +#. module: product_pricelist_direct_print +#: model:ir.actions.act_window,name:product_pricelist_direct_print.action_item_pricelist_print +#: model:ir.actions.act_window,name:product_pricelist_direct_print.action_product_pricelist_print +#: model:ir.actions.act_window,name:product_pricelist_direct_print.action_product_product_pricelist_print +#: model:ir.actions.act_window,name:product_pricelist_direct_print.action_product_template_pricelist_print +#: model_terms:ir.ui.view,arch_db:product_pricelist_direct_print.report_product_pricelist_document +msgid "Price List" +msgstr "Liste de prix" + +#. module: product_pricelist_direct_print +#: model:ir.model.fields,field_description:product_pricelist_direct_print.field_product_pricelist_print__pricelist_id +msgid "Pricelist" +msgstr "Liste de prix" + +#. module: product_pricelist_direct_print +#: model:mail.template,name:product_pricelist_direct_print.email_template_edi_pricelist +msgid "Pricelist - Send by Email" +msgstr "Liste de prix - Envoyer par courriel" + +#. module: product_pricelist_direct_print +#: model_terms:ir.ui.view,arch_db:product_pricelist_direct_print.view_product_pricelist_print +msgid "Print" +msgstr "Imprimer" + +#. module: product_pricelist_direct_print +#: model:ir.model.fields,field_description:product_pricelist_direct_print.field_product_pricelist_print__print_child_categories +msgid "Print Child Categories" +msgstr "" + +#. module: product_pricelist_direct_print +#: model:ir.actions.act_window,name:product_pricelist_direct_print.action_pricelist_print +#: model:ir.ui.menu,name:product_pricelist_direct_print.menu_product_pricelist_print +msgid "Print Price List" +msgstr "Imprimer la liste de prix" + +#. module: product_pricelist_direct_print +#: model_terms:ir.ui.view,arch_db:product_pricelist_direct_print.view_product_pricelist_print +msgid "Product Options" +msgstr "Options sur les articles" + +#. module: product_pricelist_direct_print +#: model:ir.model.fields,field_description:product_pricelist_direct_print.field_product_pricelist_print__product_price +msgid "Product Price" +msgstr "Prix de l'article" + +#. module: product_pricelist_direct_print +#: model:ir.actions.report,name:product_pricelist_direct_print.action_report_product_pricelist +msgid "Product Price List" +msgstr "Liste de prix de l'article" + +#. module: product_pricelist_direct_print +#: model:ir.model,name:product_pricelist_direct_print.model_product_pricelist_print +msgid "Product Pricelist Print" +msgstr "Imprimer la liste de prix" + +#. module: product_pricelist_direct_print +#: model:ir.model.fields,field_description:product_pricelist_direct_print.field_product_pricelist_print__product_tmpl_ids +msgid "Product Templates" +msgstr "Articles" + +#. module: product_pricelist_direct_print +#: model:ir.model.fields,field_description:product_pricelist_direct_print.field_product_pricelist_print__product_ids +#: model_terms:ir.ui.view,arch_db:product_pricelist_direct_print.view_product_pricelist_print +msgid "Products" +msgstr "Articles" + +#. module: product_pricelist_direct_print +#: model_terms:ir.ui.view,arch_db:product_pricelist_direct_print.view_product_pricelist_print +msgid "Send by email" +msgstr "Envoyer par courriel" + +#. module: product_pricelist_direct_print +#: model:ir.actions.act_window,name:product_pricelist_direct_print.action_partner_pricelist_print +msgid "Send customer pricelist by EMail" +msgstr "Envoyer la liste de prix par courriel" + +#. module: product_pricelist_direct_print +#: model:ir.model.fields,field_description:product_pricelist_direct_print.field_product_pricelist_print__show_standard_price +msgid "Show Cost Price" +msgstr "Afficher le coût" + +#. module: product_pricelist_direct_print +#: model:ir.model.fields,field_description:product_pricelist_direct_print.field_product_pricelist_print__show_pricelist_name +msgid "Show Pricelist Name" +msgstr "Afficher le nom de la liste de prix" + +#. module: product_pricelist_direct_print +#: model:ir.model.fields,field_description:product_pricelist_direct_print.field_product_pricelist_print__show_product_uom +msgid "Show Product UoM" +msgstr "Afficher l'unité de mesure" + +#. module: product_pricelist_direct_print +#: model:ir.model.fields,field_description:product_pricelist_direct_print.field_product_pricelist_print__show_sale_price +msgid "Show Sale Price" +msgstr "Afficher le prix de vente normal" + +#. module: product_pricelist_direct_print +#: model:ir.model.fields,field_description:product_pricelist_direct_print.field_product_pricelist_print__show_variants +msgid "Show Variants" +msgstr "Afficher les variantes d'articles" + +#. module: product_pricelist_direct_print +#: model:ir.model.fields,field_description:product_pricelist_direct_print.field_product_pricelist_print__show_only_defined_products +msgid "Show the products defined on pricelist" +msgstr "Afficher les articles définis dans la liste de prix" + +#. module: product_pricelist_direct_print +#: model:ir.model.fields,field_description:product_pricelist_direct_print.field_product_pricelist_print__summary +#: model_terms:ir.ui.view,arch_db:product_pricelist_direct_print.view_product_pricelist_print +msgid "Summary" +msgstr "Résumé" + +#. module: product_pricelist_direct_print +#. odoo-python +#: code:addons/product_pricelist_direct_print/wizards/product_pricelist_print.py:0 +#, python-format +msgid "Undefined" +msgstr "Non défini" + +#. module: product_pricelist_direct_print +#: model:ir.model.fields.selection,name:product_pricelist_direct_print.selection__product_pricelist_print__vat_mode__vat_excl +msgid "Vat Excluded" +msgstr "Hors Taxe" + +#. module: product_pricelist_direct_print +#: model:ir.model.fields.selection,name:product_pricelist_direct_print.selection__product_pricelist_print__vat_mode__vat_incl +msgid "Vat Included" +msgstr "Toutes Taxes Comprises" + +#. module: product_pricelist_direct_print +#: model:ir.model.fields,field_description:product_pricelist_direct_print.field_product_pricelist_print__vat_mode +msgid "Vat Mode" +msgstr "Mode de TVA" + +#. module: product_pricelist_direct_print +#. odoo-python +#: code:addons/product_pricelist_direct_print/wizards/product_pricelist_print.py:0 +#, python-format +msgid "You must set price list or any customer or any show price option." +msgstr "Vous devez définir une tarification, ou définir un client." + +#. module: product_pricelist_direct_print +#: model:mail.template,subject:product_pricelist_direct_print.email_template_edi_pricelist +msgid "" +"{{ object.pricelist_id.company_id.name or object.write_uid.company_id." +"name }} Pricelist (Ref {{ object.pricelist_id.name or 'n/a' }})" +msgstr "" +"{{ object.pricelist_id.company_id.name or object.write_uid.company_id." +"name }} Liste de prix (Réf {{ object.pricelist_id.name or 'n/a' }})" + +#. module: product_pricelist_direct_print +#: model:mail.template,report_name:product_pricelist_direct_print.email_template_edi_pricelist +msgid "{{ object.pricelist_id.name }}" +msgstr "" diff --git a/product_pricelist_direct_print/i18n/it.po b/product_pricelist_direct_print/i18n/it.po new file mode 100644 index 000000000000..60a4465b3b23 --- /dev/null +++ b/product_pricelist_direct_print/i18n/it.po @@ -0,0 +1,412 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * product_pricelist_direct_print +# +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 16.0\n" +"Report-Msgid-Bugs-To: \n" +"PO-Revision-Date: 2024-08-26 10: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: product_pricelist_direct_print +#: model:mail.template,body_html:product_pricelist_direct_print.email_template_edi_pricelist +msgid "" +"
\n" +"

Dear ,

\n" +"

\n" +" The attached file is a PDF document containg the\n" +" pricelist.\n" +"

\n" +"

You can reply to this email if you have any questions.

\n" +"

Thank you,

\n" +"\n" +"

\n" +" \n" +" \n" +" \n" +"

\n" +"
\n" +" " +msgstr "" +"
\n" +"

Spett.le ,

\n" +"

\n" +" il file in allegato è un PDF contenente il listino\n" +" .\n" +"

\n" +"

Potete rispondere a questa email in caso di necessità di ulteriori " +"informazioni.

\n" +"

Grazie,

\n" +"\n" +"

\n" +" \n" +" \n" +" \n" +"

\n" +"
\n" +" " + +#. module: product_pricelist_direct_print +#: model_terms:ir.ui.view,arch_db:product_pricelist_direct_print.report_product_pricelist_document +msgid "Special Pricelist" +msgstr "Listino speciale" + +#. module: product_pricelist_direct_print +#: model_terms:ir.ui.view,arch_db:product_pricelist_direct_print.report_product_pricelist_document +msgid "Cost Price" +msgstr "Prezzo di costo" + +#. module: product_pricelist_direct_print +#: model_terms:ir.ui.view,arch_db:product_pricelist_direct_print.report_product_pricelist_document +msgid "Currency:
" +msgstr "Valuta:
" + +#. module: product_pricelist_direct_print +#: model_terms:ir.ui.view,arch_db:product_pricelist_direct_print.report_product_pricelist_document +msgid "Date:
" +msgstr "Data:
" + +#. module: product_pricelist_direct_print +#: model_terms:ir.ui.view,arch_db:product_pricelist_direct_print.report_product_pricelist_document +msgid "Description" +msgstr "Descrizione" + +#. module: product_pricelist_direct_print +#: model_terms:ir.ui.view,arch_db:product_pricelist_direct_print.report_product_pricelist_document +msgid "List Price" +msgstr "Prezzo di listino" + +#. module: product_pricelist_direct_print +#: model_terms:ir.ui.view,arch_db:product_pricelist_direct_print.report_product_pricelist_document +msgid "Price List Name:
" +msgstr "Nome listino:
" + +#. module: product_pricelist_direct_print +#: model_terms:ir.ui.view,arch_db:product_pricelist_direct_print.report_product_pricelist_document +msgid "Sale Price" +msgstr "Prezzo di vendita" + +#. module: product_pricelist_direct_print +#: model_terms:ir.ui.view,arch_db:product_pricelist_direct_print.report_product_pricelist_document +msgid "UoM" +msgstr "U.M." + +#. module: product_pricelist_direct_print +#: model_terms:ir.ui.view,arch_db:product_pricelist_direct_print.view_product_pricelist_print +msgid "Cancel" +msgstr "Annulla" + +#. module: product_pricelist_direct_print +#: model:ir.model.fields,field_description:product_pricelist_direct_print.field_product_pricelist_print__categ_ids +msgid "Categories" +msgstr "Categorie" + +#. module: product_pricelist_direct_print +#: model:ir.model.fields,help:product_pricelist_direct_print.field_product_pricelist_print__show_only_defined_products +msgid "" +"Check this field to print only the products defined in the pricelist. The " +"entries in the list referring to all products will not be displayed." +msgstr "" +"Selezionare questa opzione se si vuole stampare solo i prodotti specificati " +"nel listino. Le righe relative a tutti i prodotti non verranno visualizzate." + +#. module: product_pricelist_direct_print +#: model_terms:ir.ui.view,arch_db:product_pricelist_direct_print.view_product_pricelist_print +msgid "Column Options" +msgstr "Opzioni colonna" + +#. module: product_pricelist_direct_print +#: model:ir.model.fields,field_description:product_pricelist_direct_print.field_product_pricelist_print__context_active_model +msgid "Context Active Model" +msgstr "Contesto modello attivo" + +#. module: product_pricelist_direct_print +#: model:ir.model.fields,field_description:product_pricelist_direct_print.field_product_pricelist_print__create_uid +msgid "Created by" +msgstr "Creato da" + +#. module: product_pricelist_direct_print +#: model:ir.model.fields,field_description:product_pricelist_direct_print.field_product_pricelist_print__create_date +msgid "Created on" +msgstr "Creato il" + +#. module: product_pricelist_direct_print +#: model:ir.model.fields,field_description:product_pricelist_direct_print.field_product_pricelist_print__partner_id +msgid "Customer" +msgstr "Cliente" + +#. module: product_pricelist_direct_print +#: model:ir.model.fields,field_description:product_pricelist_direct_print.field_product_pricelist_print__partner_ids +#: model_terms:ir.ui.view,arch_db:product_pricelist_direct_print.view_product_pricelist_print +msgid "Customers" +msgstr "Clienti" + +#. module: product_pricelist_direct_print +#: model:ir.model.fields,field_description:product_pricelist_direct_print.field_product_pricelist_print__date +msgid "Date" +msgstr "Data" + +#. module: product_pricelist_direct_print +#: model:ir.model.fields,field_description:product_pricelist_direct_print.field_product_pricelist_print__display_name +msgid "Display Name" +msgstr "Nome visualizzato" + +#. module: product_pricelist_direct_print +#: model:ir.model.fields,field_description:product_pricelist_direct_print.field_product_pricelist_print__group_field +msgid "Group Field" +msgstr "Campo gruppo" + +#. module: product_pricelist_direct_print +#: model:ir.model.fields,field_description:product_pricelist_direct_print.field_product_pricelist_print__id +msgid "ID" +msgstr "ID" + +#. module: product_pricelist_direct_print +#: model:ir.model.fields,help:product_pricelist_direct_print.field_product_pricelist_print__max_categ_level +msgid "" +"If this field is not 0, products are grouped at max level of category tree." +msgstr "" +"Se questo campo non è 0, i prodotti vengono raggruppati per il livello più " +"alto dell'albero delle categorie." + +#. module: product_pricelist_direct_print +#: model:ir.model.fields,help:product_pricelist_direct_print.field_product_pricelist_print__last_ordered_products +msgid "" +"If you enter an X number here, then, for each selected customer, the last X " +"ordered products will be obtained for the report." +msgstr "" +"Se viene inserito un numero X in questo punto, per ogni cliente selezionato, " +"gli ultimi X prodotti ordinati verranno usati per il resoconto." + +#. module: product_pricelist_direct_print +#: model:ir.model.fields.selection,name:product_pricelist_direct_print.selection__product_pricelist_print__order_field__default_code +msgid "Internal Reference" +msgstr "Riferimento interno" + +#. module: product_pricelist_direct_print +#: model:ir.model.fields,help:product_pricelist_direct_print.field_product_pricelist_print__product_ids +#: model:ir.model.fields,help:product_pricelist_direct_print.field_product_pricelist_print__product_tmpl_ids +msgid "Keep empty for all products" +msgstr "Lasciare vuoto per tutti i prodotti" + +#. module: product_pricelist_direct_print +#: model:ir.model.fields,field_description:product_pricelist_direct_print.field_product_pricelist_print__lang +msgid "Language" +msgstr "Lingua" + +#. module: product_pricelist_direct_print +#: model:ir.model.fields,field_description:product_pricelist_direct_print.field_product_pricelist_print____last_update +msgid "Last Modified on" +msgstr "Ultima modifica il" + +#. module: product_pricelist_direct_print +#: model:ir.model.fields,field_description:product_pricelist_direct_print.field_product_pricelist_print__last_ordered_products +msgid "Last Ordered Products" +msgstr "Ultimi prodotti ordinati" + +#. module: product_pricelist_direct_print +#: model:ir.model.fields,field_description:product_pricelist_direct_print.field_product_pricelist_print__write_uid +msgid "Last Updated by" +msgstr "Ultimo aggiornamento di" + +#. module: product_pricelist_direct_print +#: model:ir.model.fields,field_description:product_pricelist_direct_print.field_product_pricelist_print__write_date +msgid "Last Updated on" +msgstr "Ultimo aggiornamento il" + +#. module: product_pricelist_direct_print +#: model_terms:ir.ui.view,arch_db:product_pricelist_direct_print.view_product_pricelist_print +msgid "Main Settings" +msgstr "Impostazioni principali" + +#. module: product_pricelist_direct_print +#: model:ir.model.fields,field_description:product_pricelist_direct_print.field_product_pricelist_print__max_categ_level +msgid "Max category level" +msgstr "Livello massimo categoria" + +#. module: product_pricelist_direct_print +#: model:ir.model.fields.selection,name:product_pricelist_direct_print.selection__product_pricelist_print__order_field__name +msgid "Name" +msgstr "Nome" + +#. module: product_pricelist_direct_print +#: model:ir.model.fields,field_description:product_pricelist_direct_print.field_product_pricelist_print__order_field +msgid "Order" +msgstr "Ordine" + +#. module: product_pricelist_direct_print +#: model_terms:ir.ui.view,arch_db:product_pricelist_direct_print.view_product_pricelist_print +msgid "Order Options" +msgstr "Opzioni ordinamento" + +#. module: product_pricelist_direct_print +#: model:ir.model.fields,field_description:product_pricelist_direct_print.field_product_pricelist_print__partner_count +msgid "Partner Count" +msgstr "Conteggio partner" + +#. module: product_pricelist_direct_print +#: model:ir.actions.act_window,name:product_pricelist_direct_print.action_item_pricelist_print +#: model:ir.actions.act_window,name:product_pricelist_direct_print.action_product_pricelist_print +#: model:ir.actions.act_window,name:product_pricelist_direct_print.action_product_product_pricelist_print +#: model:ir.actions.act_window,name:product_pricelist_direct_print.action_product_template_pricelist_print +#: model_terms:ir.ui.view,arch_db:product_pricelist_direct_print.report_product_pricelist_document +msgid "Price List" +msgstr "Listino prezzi" + +#. module: product_pricelist_direct_print +#: model:ir.model.fields,field_description:product_pricelist_direct_print.field_product_pricelist_print__pricelist_id +msgid "Pricelist" +msgstr "Listino" + +#. module: product_pricelist_direct_print +#: model:mail.template,name:product_pricelist_direct_print.email_template_edi_pricelist +msgid "Pricelist - Send by Email" +msgstr "Listino - Invia tramite e-mail" + +#. module: product_pricelist_direct_print +#: model_terms:ir.ui.view,arch_db:product_pricelist_direct_print.view_product_pricelist_print +msgid "Print" +msgstr "Stampa" + +#. module: product_pricelist_direct_print +#: model:ir.model.fields,field_description:product_pricelist_direct_print.field_product_pricelist_print__print_child_categories +msgid "Print Child Categories" +msgstr "Stampa categorie figlie" + +#. module: product_pricelist_direct_print +#: model:ir.actions.act_window,name:product_pricelist_direct_print.action_pricelist_print +#: model:ir.ui.menu,name:product_pricelist_direct_print.menu_product_pricelist_print +msgid "Print Price List" +msgstr "Stampa listino prezzi" + +#. module: product_pricelist_direct_print +#: model_terms:ir.ui.view,arch_db:product_pricelist_direct_print.view_product_pricelist_print +msgid "Product Options" +msgstr "Opzioni prodotto" + +#. module: product_pricelist_direct_print +#: model:ir.model.fields,field_description:product_pricelist_direct_print.field_product_pricelist_print__product_price +msgid "Product Price" +msgstr "Prezzo prodotto" + +#. module: product_pricelist_direct_print +#: model:ir.actions.report,name:product_pricelist_direct_print.action_report_product_pricelist +msgid "Product Price List" +msgstr "Listino prezzi prodotto" + +#. module: product_pricelist_direct_print +#: model:ir.model,name:product_pricelist_direct_print.model_product_pricelist_print +msgid "Product Pricelist Print" +msgstr "Stampa listino prezzi prodotto" + +#. module: product_pricelist_direct_print +#: model:ir.model.fields,field_description:product_pricelist_direct_print.field_product_pricelist_print__product_tmpl_ids +msgid "Product Templates" +msgstr "Modelli prodotto" + +#. module: product_pricelist_direct_print +#: model:ir.model.fields,field_description:product_pricelist_direct_print.field_product_pricelist_print__product_ids +#: model_terms:ir.ui.view,arch_db:product_pricelist_direct_print.view_product_pricelist_print +msgid "Products" +msgstr "Prodotti" + +#. module: product_pricelist_direct_print +#: model_terms:ir.ui.view,arch_db:product_pricelist_direct_print.view_product_pricelist_print +msgid "Send by email" +msgstr "Invia per e-mail" + +#. module: product_pricelist_direct_print +#: model:ir.actions.act_window,name:product_pricelist_direct_print.action_partner_pricelist_print +msgid "Send customer pricelist by EMail" +msgstr "Invia listino prezzi cliente via e-mail" + +#. module: product_pricelist_direct_print +#: model:ir.model.fields,field_description:product_pricelist_direct_print.field_product_pricelist_print__show_standard_price +msgid "Show Cost Price" +msgstr "Mostra prezzo di costo" + +#. module: product_pricelist_direct_print +#: model:ir.model.fields,field_description:product_pricelist_direct_print.field_product_pricelist_print__show_pricelist_name +msgid "Show Pricelist Name" +msgstr "Mostra nome listino" + +#. module: product_pricelist_direct_print +#: model:ir.model.fields,field_description:product_pricelist_direct_print.field_product_pricelist_print__show_product_uom +msgid "Show Product UoM" +msgstr "Mostra unità di misura" + +#. module: product_pricelist_direct_print +#: model:ir.model.fields,field_description:product_pricelist_direct_print.field_product_pricelist_print__show_sale_price +msgid "Show Sale Price" +msgstr "Mostra prezzo di vendita" + +#. module: product_pricelist_direct_print +#: model:ir.model.fields,field_description:product_pricelist_direct_print.field_product_pricelist_print__show_variants +msgid "Show Variants" +msgstr "Mostra varianti" + +#. module: product_pricelist_direct_print +#: model:ir.model.fields,field_description:product_pricelist_direct_print.field_product_pricelist_print__show_only_defined_products +msgid "Show the products defined on pricelist" +msgstr "Mostra i prodotti definiti nel listino prezzi" + +#. module: product_pricelist_direct_print +#: model:ir.model.fields,field_description:product_pricelist_direct_print.field_product_pricelist_print__summary +#: model_terms:ir.ui.view,arch_db:product_pricelist_direct_print.view_product_pricelist_print +msgid "Summary" +msgstr "Riepilogo" + +#. module: product_pricelist_direct_print +#. odoo-python +#: code:addons/product_pricelist_direct_print/wizards/product_pricelist_print.py:0 +#, python-format +msgid "Undefined" +msgstr "Non definito" + +#. module: product_pricelist_direct_print +#: model:ir.model.fields.selection,name:product_pricelist_direct_print.selection__product_pricelist_print__vat_mode__vat_excl +msgid "Vat Excluded" +msgstr "IVA esclusa" + +#. module: product_pricelist_direct_print +#: model:ir.model.fields.selection,name:product_pricelist_direct_print.selection__product_pricelist_print__vat_mode__vat_incl +msgid "Vat Included" +msgstr "IVA inclusa" + +#. module: product_pricelist_direct_print +#: model:ir.model.fields,field_description:product_pricelist_direct_print.field_product_pricelist_print__vat_mode +msgid "Vat Mode" +msgstr "Modalità IVA" + +#. module: product_pricelist_direct_print +#. odoo-python +#: code:addons/product_pricelist_direct_print/wizards/product_pricelist_print.py:0 +#, python-format +msgid "You must set price list or any customer or any show price option." +msgstr "" +"È necessario impostare il listino o un cliente o una opzione visulizzazione " +"prezzo." + +#. module: product_pricelist_direct_print +#: model:mail.template,subject:product_pricelist_direct_print.email_template_edi_pricelist +msgid "" +"{{ object.pricelist_id.company_id.name or object.write_uid.company_id." +"name }} Pricelist (Ref {{ object.pricelist_id.name or 'n/a' }})" +msgstr "" +"{{ object.pricelist_id.company_id.name or object.write_uid.company_id." +"name }} Listino (Rif. {{ object.pricelist_id.name or 'n/d' }})" + +#. module: product_pricelist_direct_print +#: model:mail.template,report_name:product_pricelist_direct_print.email_template_edi_pricelist +msgid "{{ object.pricelist_id.name }}" +msgstr "{{ object.pricelist_id.name }}" diff --git a/product_pricelist_direct_print/i18n/product_pricelist_direct_print.pot b/product_pricelist_direct_print/i18n/product_pricelist_direct_print.pot new file mode 100644 index 000000000000..180535cfab45 --- /dev/null +++ b/product_pricelist_direct_print/i18n/product_pricelist_direct_print.pot @@ -0,0 +1,380 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * product_pricelist_direct_print +# +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 16.0\n" +"Report-Msgid-Bugs-To: \n" +"Last-Translator: \n" +"Language-Team: \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: \n" +"Plural-Forms: \n" + +#. module: product_pricelist_direct_print +#: model:mail.template,body_html:product_pricelist_direct_print.email_template_edi_pricelist +msgid "" +"
\n" +"

Dear ,

\n" +"

\n" +" The attached file is a PDF document containg the\n" +" pricelist.\n" +"

\n" +"

You can reply to this email if you have any questions.

\n" +"

Thank you,

\n" +"\n" +"

\n" +" \n" +" \n" +" \n" +"

\n" +"
\n" +" " +msgstr "" + +#. module: product_pricelist_direct_print +#: model_terms:ir.ui.view,arch_db:product_pricelist_direct_print.report_product_pricelist_document +msgid "Special Pricelist" +msgstr "" + +#. module: product_pricelist_direct_print +#: model_terms:ir.ui.view,arch_db:product_pricelist_direct_print.report_product_pricelist_document +msgid "Cost Price" +msgstr "" + +#. module: product_pricelist_direct_print +#: model_terms:ir.ui.view,arch_db:product_pricelist_direct_print.report_product_pricelist_document +msgid "Currency:
" +msgstr "" + +#. module: product_pricelist_direct_print +#: model_terms:ir.ui.view,arch_db:product_pricelist_direct_print.report_product_pricelist_document +msgid "Date:
" +msgstr "" + +#. module: product_pricelist_direct_print +#: model_terms:ir.ui.view,arch_db:product_pricelist_direct_print.report_product_pricelist_document +msgid "Description" +msgstr "" + +#. module: product_pricelist_direct_print +#: model_terms:ir.ui.view,arch_db:product_pricelist_direct_print.report_product_pricelist_document +msgid "List Price" +msgstr "" + +#. module: product_pricelist_direct_print +#: model_terms:ir.ui.view,arch_db:product_pricelist_direct_print.report_product_pricelist_document +msgid "Price List Name:
" +msgstr "" + +#. module: product_pricelist_direct_print +#: model_terms:ir.ui.view,arch_db:product_pricelist_direct_print.report_product_pricelist_document +msgid "Sale Price" +msgstr "" + +#. module: product_pricelist_direct_print +#: model_terms:ir.ui.view,arch_db:product_pricelist_direct_print.report_product_pricelist_document +msgid "UoM" +msgstr "" + +#. module: product_pricelist_direct_print +#: model_terms:ir.ui.view,arch_db:product_pricelist_direct_print.view_product_pricelist_print +msgid "Cancel" +msgstr "" + +#. module: product_pricelist_direct_print +#: model:ir.model.fields,field_description:product_pricelist_direct_print.field_product_pricelist_print__categ_ids +msgid "Categories" +msgstr "" + +#. module: product_pricelist_direct_print +#: model:ir.model.fields,help:product_pricelist_direct_print.field_product_pricelist_print__show_only_defined_products +msgid "" +"Check this field to print only the products defined in the pricelist. The " +"entries in the list referring to all products will not be displayed." +msgstr "" + +#. module: product_pricelist_direct_print +#: model_terms:ir.ui.view,arch_db:product_pricelist_direct_print.view_product_pricelist_print +msgid "Column Options" +msgstr "" + +#. module: product_pricelist_direct_print +#: model:ir.model.fields,field_description:product_pricelist_direct_print.field_product_pricelist_print__context_active_model +msgid "Context Active Model" +msgstr "" + +#. module: product_pricelist_direct_print +#: model:ir.model.fields,field_description:product_pricelist_direct_print.field_product_pricelist_print__create_uid +msgid "Created by" +msgstr "" + +#. module: product_pricelist_direct_print +#: model:ir.model.fields,field_description:product_pricelist_direct_print.field_product_pricelist_print__create_date +msgid "Created on" +msgstr "" + +#. module: product_pricelist_direct_print +#: model:ir.model.fields,field_description:product_pricelist_direct_print.field_product_pricelist_print__partner_id +msgid "Customer" +msgstr "" + +#. module: product_pricelist_direct_print +#: model:ir.model.fields,field_description:product_pricelist_direct_print.field_product_pricelist_print__partner_ids +#: model_terms:ir.ui.view,arch_db:product_pricelist_direct_print.view_product_pricelist_print +msgid "Customers" +msgstr "" + +#. module: product_pricelist_direct_print +#: model:ir.model.fields,field_description:product_pricelist_direct_print.field_product_pricelist_print__date +msgid "Date" +msgstr "" + +#. module: product_pricelist_direct_print +#: model:ir.model.fields,field_description:product_pricelist_direct_print.field_product_pricelist_print__display_name +msgid "Display Name" +msgstr "" + +#. module: product_pricelist_direct_print +#: model:ir.model.fields,field_description:product_pricelist_direct_print.field_product_pricelist_print__group_field +msgid "Group Field" +msgstr "" + +#. module: product_pricelist_direct_print +#: model:ir.model.fields,field_description:product_pricelist_direct_print.field_product_pricelist_print__id +msgid "ID" +msgstr "" + +#. module: product_pricelist_direct_print +#: model:ir.model.fields,help:product_pricelist_direct_print.field_product_pricelist_print__max_categ_level +msgid "" +"If this field is not 0, products are grouped at max level of category tree." +msgstr "" + +#. module: product_pricelist_direct_print +#: model:ir.model.fields,help:product_pricelist_direct_print.field_product_pricelist_print__last_ordered_products +msgid "" +"If you enter an X number here, then, for each selected customer, the last X " +"ordered products will be obtained for the report." +msgstr "" + +#. module: product_pricelist_direct_print +#: model:ir.model.fields.selection,name:product_pricelist_direct_print.selection__product_pricelist_print__order_field__default_code +msgid "Internal Reference" +msgstr "" + +#. module: product_pricelist_direct_print +#: model:ir.model.fields,help:product_pricelist_direct_print.field_product_pricelist_print__product_ids +#: model:ir.model.fields,help:product_pricelist_direct_print.field_product_pricelist_print__product_tmpl_ids +msgid "Keep empty for all products" +msgstr "" + +#. module: product_pricelist_direct_print +#: model:ir.model.fields,field_description:product_pricelist_direct_print.field_product_pricelist_print__lang +msgid "Language" +msgstr "" + +#. module: product_pricelist_direct_print +#: model:ir.model.fields,field_description:product_pricelist_direct_print.field_product_pricelist_print____last_update +msgid "Last Modified on" +msgstr "" + +#. module: product_pricelist_direct_print +#: model:ir.model.fields,field_description:product_pricelist_direct_print.field_product_pricelist_print__last_ordered_products +msgid "Last Ordered Products" +msgstr "" + +#. module: product_pricelist_direct_print +#: model:ir.model.fields,field_description:product_pricelist_direct_print.field_product_pricelist_print__write_uid +msgid "Last Updated by" +msgstr "" + +#. module: product_pricelist_direct_print +#: model:ir.model.fields,field_description:product_pricelist_direct_print.field_product_pricelist_print__write_date +msgid "Last Updated on" +msgstr "" + +#. module: product_pricelist_direct_print +#: model_terms:ir.ui.view,arch_db:product_pricelist_direct_print.view_product_pricelist_print +msgid "Main Settings" +msgstr "" + +#. module: product_pricelist_direct_print +#: model:ir.model.fields,field_description:product_pricelist_direct_print.field_product_pricelist_print__max_categ_level +msgid "Max category level" +msgstr "" + +#. module: product_pricelist_direct_print +#: model:ir.model.fields.selection,name:product_pricelist_direct_print.selection__product_pricelist_print__order_field__name +msgid "Name" +msgstr "" + +#. module: product_pricelist_direct_print +#: model:ir.model.fields,field_description:product_pricelist_direct_print.field_product_pricelist_print__order_field +msgid "Order" +msgstr "" + +#. module: product_pricelist_direct_print +#: model_terms:ir.ui.view,arch_db:product_pricelist_direct_print.view_product_pricelist_print +msgid "Order Options" +msgstr "" + +#. module: product_pricelist_direct_print +#: model:ir.model.fields,field_description:product_pricelist_direct_print.field_product_pricelist_print__partner_count +msgid "Partner Count" +msgstr "" + +#. module: product_pricelist_direct_print +#: model:ir.actions.act_window,name:product_pricelist_direct_print.action_item_pricelist_print +#: model:ir.actions.act_window,name:product_pricelist_direct_print.action_product_pricelist_print +#: model:ir.actions.act_window,name:product_pricelist_direct_print.action_product_product_pricelist_print +#: model:ir.actions.act_window,name:product_pricelist_direct_print.action_product_template_pricelist_print +#: model_terms:ir.ui.view,arch_db:product_pricelist_direct_print.report_product_pricelist_document +msgid "Price List" +msgstr "" + +#. module: product_pricelist_direct_print +#: model:ir.model.fields,field_description:product_pricelist_direct_print.field_product_pricelist_print__pricelist_id +msgid "Pricelist" +msgstr "" + +#. module: product_pricelist_direct_print +#: model:mail.template,name:product_pricelist_direct_print.email_template_edi_pricelist +msgid "Pricelist - Send by Email" +msgstr "" + +#. module: product_pricelist_direct_print +#: model_terms:ir.ui.view,arch_db:product_pricelist_direct_print.view_product_pricelist_print +msgid "Print" +msgstr "" + +#. module: product_pricelist_direct_print +#: model:ir.model.fields,field_description:product_pricelist_direct_print.field_product_pricelist_print__print_child_categories +msgid "Print Child Categories" +msgstr "" + +#. module: product_pricelist_direct_print +#: model:ir.actions.act_window,name:product_pricelist_direct_print.action_pricelist_print +#: model:ir.ui.menu,name:product_pricelist_direct_print.menu_product_pricelist_print +msgid "Print Price List" +msgstr "" + +#. module: product_pricelist_direct_print +#: model_terms:ir.ui.view,arch_db:product_pricelist_direct_print.view_product_pricelist_print +msgid "Product Options" +msgstr "" + +#. module: product_pricelist_direct_print +#: model:ir.model.fields,field_description:product_pricelist_direct_print.field_product_pricelist_print__product_price +msgid "Product Price" +msgstr "" + +#. module: product_pricelist_direct_print +#: model:ir.actions.report,name:product_pricelist_direct_print.action_report_product_pricelist +msgid "Product Price List" +msgstr "" + +#. module: product_pricelist_direct_print +#: model:ir.model,name:product_pricelist_direct_print.model_product_pricelist_print +msgid "Product Pricelist Print" +msgstr "" + +#. module: product_pricelist_direct_print +#: model:ir.model.fields,field_description:product_pricelist_direct_print.field_product_pricelist_print__product_tmpl_ids +msgid "Product Templates" +msgstr "" + +#. module: product_pricelist_direct_print +#: model:ir.model.fields,field_description:product_pricelist_direct_print.field_product_pricelist_print__product_ids +#: model_terms:ir.ui.view,arch_db:product_pricelist_direct_print.view_product_pricelist_print +msgid "Products" +msgstr "" + +#. module: product_pricelist_direct_print +#: model_terms:ir.ui.view,arch_db:product_pricelist_direct_print.view_product_pricelist_print +msgid "Send by email" +msgstr "" + +#. module: product_pricelist_direct_print +#: model:ir.actions.act_window,name:product_pricelist_direct_print.action_partner_pricelist_print +msgid "Send customer pricelist by EMail" +msgstr "" + +#. module: product_pricelist_direct_print +#: model:ir.model.fields,field_description:product_pricelist_direct_print.field_product_pricelist_print__show_standard_price +msgid "Show Cost Price" +msgstr "" + +#. module: product_pricelist_direct_print +#: model:ir.model.fields,field_description:product_pricelist_direct_print.field_product_pricelist_print__show_pricelist_name +msgid "Show Pricelist Name" +msgstr "" + +#. module: product_pricelist_direct_print +#: model:ir.model.fields,field_description:product_pricelist_direct_print.field_product_pricelist_print__show_product_uom +msgid "Show Product UoM" +msgstr "" + +#. module: product_pricelist_direct_print +#: model:ir.model.fields,field_description:product_pricelist_direct_print.field_product_pricelist_print__show_sale_price +msgid "Show Sale Price" +msgstr "" + +#. module: product_pricelist_direct_print +#: model:ir.model.fields,field_description:product_pricelist_direct_print.field_product_pricelist_print__show_variants +msgid "Show Variants" +msgstr "" + +#. module: product_pricelist_direct_print +#: model:ir.model.fields,field_description:product_pricelist_direct_print.field_product_pricelist_print__show_only_defined_products +msgid "Show the products defined on pricelist" +msgstr "" + +#. module: product_pricelist_direct_print +#: model:ir.model.fields,field_description:product_pricelist_direct_print.field_product_pricelist_print__summary +#: model_terms:ir.ui.view,arch_db:product_pricelist_direct_print.view_product_pricelist_print +msgid "Summary" +msgstr "" + +#. module: product_pricelist_direct_print +#. odoo-python +#: code:addons/product_pricelist_direct_print/wizards/product_pricelist_print.py:0 +#, python-format +msgid "Undefined" +msgstr "" + +#. module: product_pricelist_direct_print +#: model:ir.model.fields.selection,name:product_pricelist_direct_print.selection__product_pricelist_print__vat_mode__vat_excl +msgid "Vat Excluded" +msgstr "" + +#. module: product_pricelist_direct_print +#: model:ir.model.fields.selection,name:product_pricelist_direct_print.selection__product_pricelist_print__vat_mode__vat_incl +msgid "Vat Included" +msgstr "" + +#. module: product_pricelist_direct_print +#: model:ir.model.fields,field_description:product_pricelist_direct_print.field_product_pricelist_print__vat_mode +msgid "Vat Mode" +msgstr "" + +#. module: product_pricelist_direct_print +#. odoo-python +#: code:addons/product_pricelist_direct_print/wizards/product_pricelist_print.py:0 +#, python-format +msgid "You must set price list or any customer or any show price option." +msgstr "" + +#. module: product_pricelist_direct_print +#: model:mail.template,subject:product_pricelist_direct_print.email_template_edi_pricelist +msgid "" +"{{ object.pricelist_id.company_id.name or object.write_uid.company_id.name " +"}} Pricelist (Ref {{ object.pricelist_id.name or 'n/a' }})" +msgstr "" + +#. module: product_pricelist_direct_print +#: model:mail.template,report_name:product_pricelist_direct_print.email_template_edi_pricelist +msgid "{{ object.pricelist_id.name }}" +msgstr "" diff --git a/product_pricelist_direct_print/i18n/tr.po b/product_pricelist_direct_print/i18n/tr.po new file mode 100644 index 000000000000..d95e77fe3f00 --- /dev/null +++ b/product_pricelist_direct_print/i18n/tr.po @@ -0,0 +1,410 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * product_pricelist_direct_print +# +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 16.0\n" +"Report-Msgid-Bugs-To: \n" +"PO-Revision-Date: 2024-03-11 08:37+0000\n" +"Last-Translator: Ömer KÜLAK \n" +"Language-Team: none\n" +"Language: tr\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: \n" +"Plural-Forms: nplurals=2; plural=n != 1;\n" +"X-Generator: Weblate 4.17\n" + +#. module: product_pricelist_direct_print +#: model:mail.template,body_html:product_pricelist_direct_print.email_template_edi_pricelist +msgid "" +"
\n" +"

Dear ,

\n" +"

\n" +" The attached file is a PDF document containg the\n" +" pricelist.\n" +"

\n" +"

You can reply to this email if you have any questions.

\n" +"

Thank you,

\n" +"\n" +"

\n" +" \n" +" \n" +" \n" +"

\n" +"
\n" +" " +msgstr "" +"
\n" +"

Sayın ,

\n" +"

\n" +" Ekli dosya, aşağıdakileri içeren bir PDF belgesidir:\n" +" fiyat listesi.\n" +"

\n" +"

Herhangi bir sorunuz varsa bu emaili cevaplayabilirsiniz.

\n" +"

Teşekkürler,

\n" +"\n" +"

\n" +" \n" +" \n" +" \n" +"

\n" +"
\n" +" " + +#. module: product_pricelist_direct_print +#: model_terms:ir.ui.view,arch_db:product_pricelist_direct_print.report_product_pricelist_document +msgid "Special Pricelist" +msgstr "Özel Fiyat Listesi" + +#. module: product_pricelist_direct_print +#: model_terms:ir.ui.view,arch_db:product_pricelist_direct_print.report_product_pricelist_document +msgid "Cost Price" +msgstr "Maliyet" + +#. module: product_pricelist_direct_print +#: model_terms:ir.ui.view,arch_db:product_pricelist_direct_print.report_product_pricelist_document +msgid "Currency:
" +msgstr "Para Birimi:
" + +#. module: product_pricelist_direct_print +#: model_terms:ir.ui.view,arch_db:product_pricelist_direct_print.report_product_pricelist_document +msgid "Date:
" +msgstr "Tarih:
" + +#. module: product_pricelist_direct_print +#: model_terms:ir.ui.view,arch_db:product_pricelist_direct_print.report_product_pricelist_document +msgid "Description" +msgstr "Açıklama" + +#. module: product_pricelist_direct_print +#: model_terms:ir.ui.view,arch_db:product_pricelist_direct_print.report_product_pricelist_document +msgid "List Price" +msgstr "Liste Fiyatı" + +#. module: product_pricelist_direct_print +#: model_terms:ir.ui.view,arch_db:product_pricelist_direct_print.report_product_pricelist_document +msgid "Price List Name:
" +msgstr "Fiyat Listesi Adı:
" + +#. module: product_pricelist_direct_print +#: model_terms:ir.ui.view,arch_db:product_pricelist_direct_print.report_product_pricelist_document +msgid "Sale Price" +msgstr "Satış Fiyatı" + +#. module: product_pricelist_direct_print +#: model_terms:ir.ui.view,arch_db:product_pricelist_direct_print.report_product_pricelist_document +msgid "UoM" +msgstr "Birim" + +#. module: product_pricelist_direct_print +#: model_terms:ir.ui.view,arch_db:product_pricelist_direct_print.view_product_pricelist_print +msgid "Cancel" +msgstr "İptal" + +#. module: product_pricelist_direct_print +#: model:ir.model.fields,field_description:product_pricelist_direct_print.field_product_pricelist_print__categ_ids +msgid "Categories" +msgstr "Kategoriler" + +#. module: product_pricelist_direct_print +#: model:ir.model.fields,help:product_pricelist_direct_print.field_product_pricelist_print__show_only_defined_products +msgid "" +"Check this field to print only the products defined in the pricelist. The " +"entries in the list referring to all products will not be displayed." +msgstr "" +"Yalnızca fiyat listesinde tanımlanan ürünleri yazdırmak için bu alanı " +"işaretleyin. Listedeki tüm ürünlere ilişkin girişler görüntülenmez." + +#. module: product_pricelist_direct_print +#: model_terms:ir.ui.view,arch_db:product_pricelist_direct_print.view_product_pricelist_print +msgid "Column Options" +msgstr "Sütun Seçenekleri" + +#. module: product_pricelist_direct_print +#: model:ir.model.fields,field_description:product_pricelist_direct_print.field_product_pricelist_print__context_active_model +msgid "Context Active Model" +msgstr "Context Aktif Model" + +#. module: product_pricelist_direct_print +#: model:ir.model.fields,field_description:product_pricelist_direct_print.field_product_pricelist_print__create_uid +msgid "Created by" +msgstr "Oluşturan" + +#. module: product_pricelist_direct_print +#: model:ir.model.fields,field_description:product_pricelist_direct_print.field_product_pricelist_print__create_date +msgid "Created on" +msgstr "Oluşturulma" + +#. module: product_pricelist_direct_print +#: model:ir.model.fields,field_description:product_pricelist_direct_print.field_product_pricelist_print__partner_id +msgid "Customer" +msgstr "Müşteri" + +#. module: product_pricelist_direct_print +#: model:ir.model.fields,field_description:product_pricelist_direct_print.field_product_pricelist_print__partner_ids +#: model_terms:ir.ui.view,arch_db:product_pricelist_direct_print.view_product_pricelist_print +msgid "Customers" +msgstr "Müşteriler" + +#. module: product_pricelist_direct_print +#: model:ir.model.fields,field_description:product_pricelist_direct_print.field_product_pricelist_print__date +msgid "Date" +msgstr "Tarih" + +#. module: product_pricelist_direct_print +#: model:ir.model.fields,field_description:product_pricelist_direct_print.field_product_pricelist_print__display_name +msgid "Display Name" +msgstr "Görünen Adı" + +#. module: product_pricelist_direct_print +#: model:ir.model.fields,field_description:product_pricelist_direct_print.field_product_pricelist_print__group_field +msgid "Group Field" +msgstr "Alana Göre Grupla" + +#. module: product_pricelist_direct_print +#: model:ir.model.fields,field_description:product_pricelist_direct_print.field_product_pricelist_print__id +msgid "ID" +msgstr "ID" + +#. module: product_pricelist_direct_print +#: model:ir.model.fields,help:product_pricelist_direct_print.field_product_pricelist_print__max_categ_level +msgid "" +"If this field is not 0, products are grouped at max level of category tree." +msgstr "" +"Bu alan 0 değilse ürünler kategori ağacının maksimum seviyesinde gruplanır." + +#. module: product_pricelist_direct_print +#: model:ir.model.fields,help:product_pricelist_direct_print.field_product_pricelist_print__last_ordered_products +msgid "" +"If you enter an X number here, then, for each selected customer, the last X " +"ordered products will be obtained for the report." +msgstr "" +"Her seçilen müşteri için, buraya gireceğiniz adet kadar sipariş edilen son " +"ürün rapor için baz alınacak." + +#. module: product_pricelist_direct_print +#: model:ir.model.fields.selection,name:product_pricelist_direct_print.selection__product_pricelist_print__order_field__default_code +msgid "Internal Reference" +msgstr "İç Referans" + +#. module: product_pricelist_direct_print +#: model:ir.model.fields,help:product_pricelist_direct_print.field_product_pricelist_print__product_ids +#: model:ir.model.fields,help:product_pricelist_direct_print.field_product_pricelist_print__product_tmpl_ids +msgid "Keep empty for all products" +msgstr "Bütün ürünler için boş bırak" + +#. module: product_pricelist_direct_print +#: model:ir.model.fields,field_description:product_pricelist_direct_print.field_product_pricelist_print__lang +msgid "Language" +msgstr "Dil" + +#. module: product_pricelist_direct_print +#: model:ir.model.fields,field_description:product_pricelist_direct_print.field_product_pricelist_print____last_update +msgid "Last Modified on" +msgstr "Son Değiştirilme" + +#. module: product_pricelist_direct_print +#: model:ir.model.fields,field_description:product_pricelist_direct_print.field_product_pricelist_print__last_ordered_products +msgid "Last Ordered Products" +msgstr "Son Sipariş Edilenler" + +#. module: product_pricelist_direct_print +#: model:ir.model.fields,field_description:product_pricelist_direct_print.field_product_pricelist_print__write_uid +msgid "Last Updated by" +msgstr "Son Güncelleyen" + +#. module: product_pricelist_direct_print +#: model:ir.model.fields,field_description:product_pricelist_direct_print.field_product_pricelist_print__write_date +msgid "Last Updated on" +msgstr "Son Güncelleme" + +#. module: product_pricelist_direct_print +#: model_terms:ir.ui.view,arch_db:product_pricelist_direct_print.view_product_pricelist_print +msgid "Main Settings" +msgstr "Genel Ayarlar" + +#. module: product_pricelist_direct_print +#: model:ir.model.fields,field_description:product_pricelist_direct_print.field_product_pricelist_print__max_categ_level +msgid "Max category level" +msgstr "Max Kategori Seviyesi" + +#. module: product_pricelist_direct_print +#: model:ir.model.fields.selection,name:product_pricelist_direct_print.selection__product_pricelist_print__order_field__name +msgid "Name" +msgstr "Adı" + +#. module: product_pricelist_direct_print +#: model:ir.model.fields,field_description:product_pricelist_direct_print.field_product_pricelist_print__order_field +msgid "Order" +msgstr "Sıralama" + +#. module: product_pricelist_direct_print +#: model_terms:ir.ui.view,arch_db:product_pricelist_direct_print.view_product_pricelist_print +msgid "Order Options" +msgstr "Sıralama Seçenekleri" + +#. module: product_pricelist_direct_print +#: model:ir.model.fields,field_description:product_pricelist_direct_print.field_product_pricelist_print__partner_count +msgid "Partner Count" +msgstr "İş Ortağı Adedi" + +#. module: product_pricelist_direct_print +#: model:ir.actions.act_window,name:product_pricelist_direct_print.action_item_pricelist_print +#: model:ir.actions.act_window,name:product_pricelist_direct_print.action_product_pricelist_print +#: model:ir.actions.act_window,name:product_pricelist_direct_print.action_product_product_pricelist_print +#: model:ir.actions.act_window,name:product_pricelist_direct_print.action_product_template_pricelist_print +#: model_terms:ir.ui.view,arch_db:product_pricelist_direct_print.report_product_pricelist_document +msgid "Price List" +msgstr "Fiyat Listesi" + +#. module: product_pricelist_direct_print +#: model:ir.model.fields,field_description:product_pricelist_direct_print.field_product_pricelist_print__pricelist_id +msgid "Pricelist" +msgstr "Fiyat Listesi" + +#. module: product_pricelist_direct_print +#: model:mail.template,name:product_pricelist_direct_print.email_template_edi_pricelist +msgid "Pricelist - Send by Email" +msgstr "Fiyat Listesi - E-Mail ile Gönder" + +#. module: product_pricelist_direct_print +#: model_terms:ir.ui.view,arch_db:product_pricelist_direct_print.view_product_pricelist_print +msgid "Print" +msgstr "Yazdır" + +#. module: product_pricelist_direct_print +#: model:ir.model.fields,field_description:product_pricelist_direct_print.field_product_pricelist_print__print_child_categories +msgid "Print Child Categories" +msgstr "" + +#. module: product_pricelist_direct_print +#: model:ir.actions.act_window,name:product_pricelist_direct_print.action_pricelist_print +#: model:ir.ui.menu,name:product_pricelist_direct_print.menu_product_pricelist_print +msgid "Print Price List" +msgstr "Fiyat Listesini Yazdır" + +#. module: product_pricelist_direct_print +#: model_terms:ir.ui.view,arch_db:product_pricelist_direct_print.view_product_pricelist_print +msgid "Product Options" +msgstr "Ürün Seçenekleri" + +#. module: product_pricelist_direct_print +#: model:ir.model.fields,field_description:product_pricelist_direct_print.field_product_pricelist_print__product_price +msgid "Product Price" +msgstr "Ürün Fiyatı" + +#. module: product_pricelist_direct_print +#: model:ir.actions.report,name:product_pricelist_direct_print.action_report_product_pricelist +msgid "Product Price List" +msgstr "Ürün Fiyat Listesi" + +#. module: product_pricelist_direct_print +#: model:ir.model,name:product_pricelist_direct_print.model_product_pricelist_print +msgid "Product Pricelist Print" +msgstr "Ürün Fiyat Listesini Yazdır" + +#. module: product_pricelist_direct_print +#: model:ir.model.fields,field_description:product_pricelist_direct_print.field_product_pricelist_print__product_tmpl_ids +msgid "Product Templates" +msgstr "Ürün" + +#. module: product_pricelist_direct_print +#: model:ir.model.fields,field_description:product_pricelist_direct_print.field_product_pricelist_print__product_ids +#: model_terms:ir.ui.view,arch_db:product_pricelist_direct_print.view_product_pricelist_print +msgid "Products" +msgstr "Ürünler" + +#. module: product_pricelist_direct_print +#: model_terms:ir.ui.view,arch_db:product_pricelist_direct_print.view_product_pricelist_print +msgid "Send by email" +msgstr "E-Mail ile Gönder" + +#. module: product_pricelist_direct_print +#: model:ir.actions.act_window,name:product_pricelist_direct_print.action_partner_pricelist_print +msgid "Send customer pricelist by EMail" +msgstr "Müşteri fiyat listesini e-mail ile gönder" + +#. module: product_pricelist_direct_print +#: model:ir.model.fields,field_description:product_pricelist_direct_print.field_product_pricelist_print__show_standard_price +msgid "Show Cost Price" +msgstr "Maliyeti Göster" + +#. module: product_pricelist_direct_print +#: model:ir.model.fields,field_description:product_pricelist_direct_print.field_product_pricelist_print__show_pricelist_name +msgid "Show Pricelist Name" +msgstr "Liste Adını Göster" + +#. module: product_pricelist_direct_print +#: model:ir.model.fields,field_description:product_pricelist_direct_print.field_product_pricelist_print__show_product_uom +msgid "Show Product UoM" +msgstr "Ürün Birimini Göster" + +#. module: product_pricelist_direct_print +#: model:ir.model.fields,field_description:product_pricelist_direct_print.field_product_pricelist_print__show_sale_price +msgid "Show Sale Price" +msgstr "Satış Fiyatını Göster" + +#. module: product_pricelist_direct_print +#: model:ir.model.fields,field_description:product_pricelist_direct_print.field_product_pricelist_print__show_variants +msgid "Show Variants" +msgstr "Varyantları Göster" + +#. module: product_pricelist_direct_print +#: model:ir.model.fields,field_description:product_pricelist_direct_print.field_product_pricelist_print__show_only_defined_products +msgid "Show the products defined on pricelist" +msgstr "Yalnızca Listedekiler" + +#. module: product_pricelist_direct_print +#: model:ir.model.fields,field_description:product_pricelist_direct_print.field_product_pricelist_print__summary +#: model_terms:ir.ui.view,arch_db:product_pricelist_direct_print.view_product_pricelist_print +msgid "Summary" +msgstr "Özet" + +#. module: product_pricelist_direct_print +#. odoo-python +#: code:addons/product_pricelist_direct_print/wizards/product_pricelist_print.py:0 +#, python-format +msgid "Undefined" +msgstr "Tanımsız" + +#. module: product_pricelist_direct_print +#: model:ir.model.fields.selection,name:product_pricelist_direct_print.selection__product_pricelist_print__vat_mode__vat_excl +msgid "Vat Excluded" +msgstr "Vergi Hariç" + +#. module: product_pricelist_direct_print +#: model:ir.model.fields.selection,name:product_pricelist_direct_print.selection__product_pricelist_print__vat_mode__vat_incl +msgid "Vat Included" +msgstr "Vergi Dahil" + +#. module: product_pricelist_direct_print +#: model:ir.model.fields,field_description:product_pricelist_direct_print.field_product_pricelist_print__vat_mode +msgid "Vat Mode" +msgstr "Vergi Modu" + +#. module: product_pricelist_direct_print +#. odoo-python +#: code:addons/product_pricelist_direct_print/wizards/product_pricelist_print.py:0 +#, python-format +msgid "You must set price list or any customer or any show price option." +msgstr "" +"Fiyat listesi, müşteri veya fiyatı göster seçeneğinden birini ayarlamanız " +"gerekiyor." + +#. module: product_pricelist_direct_print +#: model:mail.template,subject:product_pricelist_direct_print.email_template_edi_pricelist +msgid "" +"{{ object.pricelist_id.company_id.name or object.write_uid.company_id." +"name }} Pricelist (Ref {{ object.pricelist_id.name or 'n/a' }})" +msgstr "" +"{{ object.pricelist_id.company_id.name or object.write_uid.company_id." +"name }} Fiyat Listesi (Referans {{ object.pricelist_id.name or 'n/a' }})" + +#. module: product_pricelist_direct_print +#: model:mail.template,report_name:product_pricelist_direct_print.email_template_edi_pricelist +msgid "{{ object.pricelist_id.name }}" +msgstr "{{ object.pricelist_id.name }}" diff --git a/product_pricelist_direct_print/pyproject.toml b/product_pricelist_direct_print/pyproject.toml new file mode 100644 index 000000000000..4231d0cccb3d --- /dev/null +++ b/product_pricelist_direct_print/pyproject.toml @@ -0,0 +1,3 @@ +[build-system] +requires = ["whool"] +build-backend = "whool.buildapi" diff --git a/product_pricelist_direct_print/readme/CONFIGURE.rst b/product_pricelist_direct_print/readme/CONFIGURE.rst new file mode 100644 index 000000000000..2672192d6d1a --- /dev/null +++ b/product_pricelist_direct_print/readme/CONFIGURE.rst @@ -0,0 +1,14 @@ +To configure this module, you need to: + +#. Go to *Apps* and install *Sales* +#. Go to *Sales > Configuration > Settings* +#. Scroll to *Pricing* +#. Enable 'Pricelists'. + +Users will need *Advanced Pricelists* to access the menus: + +#. Enable developer mode +#. Go to *Settings > Users & Companies > Users* +#. Create or Edit a record +#. Scroll to *Technical Settings* +#. Enable *Advanced Pricelists* diff --git a/product_pricelist_direct_print/readme/CONTRIBUTORS.rst b/product_pricelist_direct_print/readme/CONTRIBUTORS.rst new file mode 100644 index 000000000000..434a1ed0df8f --- /dev/null +++ b/product_pricelist_direct_print/readme/CONTRIBUTORS.rst @@ -0,0 +1,28 @@ +* `Tecnativa `_: + + * Carlos Dauden + * David Vidal + * Sergio Teruel + * João Marques + * Carlos Roca + +* `CorporateHub `_: + + * Alexey Pelykh + +* `GRAP `_: + + * Sylvain LE GAL + +* `FactorLibre `_: + + * Juan Carlos Bonilla + +* `Trobz `_: + + * Tris Doan + * Chau Le + +* `Apik `_: + + * Thomas Herbin diff --git a/product_pricelist_direct_print/readme/DESCRIPTION.rst b/product_pricelist_direct_print/readme/DESCRIPTION.rst new file mode 100644 index 000000000000..ee9f5a7ffc2f --- /dev/null +++ b/product_pricelist_direct_print/readme/DESCRIPTION.rst @@ -0,0 +1,8 @@ +Print price list from menu option, product templates, products variants or +price lists + +**Note:** + +- Odoo provides a similar feature, but with limited functionality. +- If you want to have Price List exported in XLSX format, install the ``product_pricelist_direct_print_xlsx`` + OCA module present in the same repository. diff --git a/product_pricelist_direct_print/readme/USAGE.rst b/product_pricelist_direct_print/readme/USAGE.rst new file mode 100644 index 000000000000..f4ed8606f66b --- /dev/null +++ b/product_pricelist_direct_print/readme/USAGE.rst @@ -0,0 +1,17 @@ +To use this module, you have several options: + +#. Go to *Sales > Products > Print Price List* + +#. Go to *Sales > Products > Products* + * Select products in list view + * Press *Action > Price List* + +#. Go to *Sales > Products > Product Variants* + * Select products in list view + * Press *Action > Price List* + +#. Go to *Sales > Orders > Customers* + * Select customers in list view + * Press *Action > Send customer pricelist by EMail* + +.. figure:: ../static/description/wizard_form.png diff --git a/product_pricelist_direct_print/reports/report_product_pricelist.xml b/product_pricelist_direct_print/reports/report_product_pricelist.xml new file mode 100644 index 000000000000..19cd5feabfc6 --- /dev/null +++ b/product_pricelist_direct_print/reports/report_product_pricelist.xml @@ -0,0 +1,122 @@ + + + + + + + product.pricelist.print + Product Price List + qweb-pdf + product_pricelist_direct_print.report_product_pricelist + product_pricelist_direct_print.report_product_pricelist + + diff --git a/product_pricelist_direct_print/security/ir.model.access.csv b/product_pricelist_direct_print/security/ir.model.access.csv new file mode 100644 index 000000000000..cd2afaca2913 --- /dev/null +++ b/product_pricelist_direct_print/security/ir.model.access.csv @@ -0,0 +1,2 @@ +id,name,model_id:id,group_id:id,perm_read,perm_write,perm_create,perm_unlink +access_wiz_product_pricelist_print_user,access_wiz_product_pricelist_print_user,model_product_pricelist_print,base.group_user,1,1,1,1 diff --git a/product_pricelist_direct_print/static/description/icon.png b/product_pricelist_direct_print/static/description/icon.png new file mode 100644 index 000000000000..3a0328b516c4 Binary files /dev/null and b/product_pricelist_direct_print/static/description/icon.png differ diff --git a/product_pricelist_direct_print/static/description/index.html b/product_pricelist_direct_print/static/description/index.html new file mode 100644 index 000000000000..99dd513a9259 --- /dev/null +++ b/product_pricelist_direct_print/static/description/index.html @@ -0,0 +1,514 @@ + + + + + +Product Pricelist Direct Print + + + +
+

Product Pricelist Direct Print

+ + +

Beta License: AGPL-3 OCA/product-attribute Translate me on Weblate Try me on Runboat

+

Print price list from menu option, product templates, products variants or +price lists

+

Note:

+
    +
  • Odoo provides a similar feature, but with limited functionality.
  • +
  • If you want to have Price List exported in XLSX format, install the product_pricelist_direct_print_xlsx +OCA module present in the same repository.
  • +
+

Table of contents

+ +
+

Configuration

+

To configure this module, you need to:

+
    +
  1. Go to Apps and install Sales
  2. +
  3. Go to Sales > Configuration > Settings
  4. +
  5. Scroll to Pricing
  6. +
  7. Enable ‘Pricelists’.
  8. +
+

Users will need Advanced Pricelists to access the menus:

+
    +
  1. Enable developer mode
  2. +
  3. Go to Settings > Users & Companies > Users
  4. +
  5. Create or Edit a record
  6. +
  7. Scroll to Technical Settings
  8. +
  9. Enable Advanced Pricelists
  10. +
+
+
+

Usage

+

To use this module, you have several options:

+
    +
  1. Go to Sales > Products > Print Price List
  2. +
  3. +
    Go to Sales > Products > Products
    +
      +
    • Select products in list view
    • +
    • Press Action > Price List
    • +
    +
    +
    +
  4. +
  5. +
    Go to Sales > Products > Product Variants
    +
      +
    • Select products in list view
    • +
    • Press Action > Price List
    • +
    +
    +
    +
  6. +
  7. +
    Go to Sales > Orders > Customers
    +
      +
    • Select customers in list view
    • +
    • Press Action > Send customer pricelist by EMail
    • +
    +
    +
    +
  8. +
+
+https://raw.githubusercontent.com/OCA/product-attribute/16.0/product_pricelist_direct_print/static/description/wizard_form.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

+
    +
  • Tecnativa
  • +
  • GRAP
  • +
+
+
+

Contributors

+ +
+
+

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.

+

Current maintainer:

+

legalsylvain

+

This module is part of the OCA/product-attribute project on GitHub.

+

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

+
+
+
+ + diff --git a/product_pricelist_direct_print/static/description/wizard_form.png b/product_pricelist_direct_print/static/description/wizard_form.png new file mode 100644 index 000000000000..c3bdaac10622 Binary files /dev/null and b/product_pricelist_direct_print/static/description/wizard_form.png differ diff --git a/product_pricelist_direct_print/tests/__init__.py b/product_pricelist_direct_print/tests/__init__.py new file mode 100644 index 000000000000..166ea44087e3 --- /dev/null +++ b/product_pricelist_direct_print/tests/__init__.py @@ -0,0 +1,3 @@ +# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl.html). + +from . import test_product_pricelist_direct_print diff --git a/product_pricelist_direct_print/tests/test_product_pricelist_direct_print.py b/product_pricelist_direct_print/tests/test_product_pricelist_direct_print.py new file mode 100644 index 000000000000..f32c98ba979c --- /dev/null +++ b/product_pricelist_direct_print/tests/test_product_pricelist_direct_print.py @@ -0,0 +1,214 @@ +# Copyright 2017 Carlos Dauden +# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl.html). + +from odoo.exceptions import ValidationError +from odoo.tests.common import TransactionCase, tagged + +from odoo.addons.base.tests.common import DISABLED_MAIL_CONTEXT + + +@tagged("post_install", "-at_install") +class TestProductPricelistDirectPrint(TransactionCase): + @classmethod + def setUpClass(cls): + super(TestProductPricelistDirectPrint, cls).setUpClass() + cls.env = cls.env(context=dict(cls.env.context, **DISABLED_MAIL_CONTEXT)) + # Set report layout to void to wizard selection layout crashes the test + report_layout = cls.env.ref("web.report_layout_standard") + main_company = cls.env.ref("base.main_company") + main_company.external_report_layout_id = report_layout.view_id.id + + cls.pricelist = cls.env["product.pricelist"].create( + { + "name": "Pricelist for test", + "item_ids": [ + ( + 0, + 0, + { + "applied_on": "3_global", + "percent_price": 5.00, + "compute_price": "percentage", + }, + ) + ], + } + ) + cls.category = cls.env["product.category"].create({"name": "Test category"}) + cls.category_child = cls.env["product.category"].create( + {"name": "Test category child", "parent_id": cls.category.id} + ) + cls.product = cls.env["product.product"].create( + { + "name": "Product for test", + "categ_id": cls.category.id, + "default_code": "TESTPROD01", + } + ) + cls.partner = cls.env["res.partner"].create( + { + "name": "Partner for test", + "property_product_pricelist": cls.pricelist.id, + "email": "test@test.com", + } + ) + cls.wiz_obj = cls.env["product.pricelist.print"] + + def test_defaults(self): + wiz = self.wiz_obj.new() + res = wiz.with_context( + active_model="product.pricelist", active_id=self.pricelist.id + ).default_get([]) + self.assertEqual(res["pricelist_id"], self.pricelist.id) + res = wiz.with_context( + active_model="product.pricelist.item", + active_ids=self.pricelist.item_ids.ids, + ).default_get([]) + self.assertEqual(res["pricelist_id"], self.pricelist.id) + res = wiz.with_context( + active_model="res.partner", + active_id=self.partner.id, + active_ids=[self.partner.id], + ).default_get([]) + self.assertEqual( + res["pricelist_id"], self.partner.property_product_pricelist.id + ) + res = wiz.with_context( + active_model="product.template", active_ids=self.product.product_tmpl_id.ids + ).default_get([]) + self.assertEqual( + res["product_tmpl_ids"][0][2], self.product.product_tmpl_id.ids + ) + res = wiz.with_context( + active_model="product.product", active_ids=self.product.ids + ).default_get([]) + self.assertEqual(res["product_ids"][0][2], self.product.ids) + self.assertTrue(res["show_variants"]) + with self.assertRaises(ValidationError): + wiz.print_report() + wiz.show_sale_price = True + res = wiz.print_report() + self.assertIn("report_name", res) + + def test_action_pricelist_send_multiple_partner(self): + partner_2 = self.env["res.partner"].create( + { + "name": "Partner for test 2", + "property_product_pricelist": self.pricelist.id, + "email": "test2@test.com", + } + ) + wiz = self.wiz_obj.with_context( + active_model="res.partner", active_ids=[self.partner.id, partner_2.id] + ).create({}) + wiz.action_pricelist_send() + + def test_last_ordered_products(self): + SaleOrder = self.env["sale.order"] + product2 = self.env["product.product"].create( + { + "name": "Product2 for test", + "categ_id": self.category.id, + "default_code": "TESTPROD02", + } + ) + so = self.env["sale.order"].new( + { + "partner_id": self.partner.id, + "order_line": [ + ( + 0, + 0, + { + "name": self.product.name, + "product_id": self.product.id, + "product_uom_qty": 10.0, + "product_uom": self.product.uom_id.id, + "price_unit": 1000.00, + }, + ), + ( + 0, + 0, + { + "name": product2.name, + "product_id": product2.id, + "product_uom_qty": 10.0, + "product_uom": product2.uom_id.id, + "price_unit": 300.00, + }, + ), + ], + } + ) + sale_order = SaleOrder.create(so._convert_to_write(so._cache)) + sale_order.action_confirm() + + wiz = self.wiz_obj.with_context( + active_model="res.partner", active_ids=self.partner.ids + ).create({"last_ordered_products": 2}) + products = wiz.get_last_ordered_products_to_print() + self.assertEqual(len(products), 2) + + wiz = self.wiz_obj.with_context( + active_model="res.partner", active_ids=self.partner.ids + ).create({"last_ordered_products": 1}) + products = wiz.get_last_ordered_products_to_print() + self.assertEqual(len(products), 1) + + def test_show_only_defined_products(self): + self.pricelist.item_ids.write( + {"applied_on": "0_product_variant", "product_id": self.product.id} + ) + wiz = self.wiz_obj.with_context( + active_model="product.pricelist", + active_id=self.pricelist.id, + ).create({}) + wiz.show_only_defined_products = True + wiz.show_variants = True + products = wiz.get_products_to_print() + self.assertIn(products, self.pricelist.item_ids.mapped("product_id")) + self.pricelist.item_ids.write( + {"applied_on": "2_product_category", "categ_id": self.category.id} + ) + wiz.show_only_defined_products = True + wiz.show_variants = True + products = wiz.get_products_to_print() + self.assertIn(self.product, products) + + def test_parent_categories(self): + product_category_child = self.env["product.template"].create( + { + "name": "Product for test 2", + "categ_id": self.category_child.id, + "default_code": "TESTPROD02", + } + ) + self.pricelist.item_ids.write( + {"applied_on": "2_product_category", "categ_id": self.category_child.id} + ) + wiz = self.wiz_obj.with_context( + active_model="product.pricelist", + active_id=self.pricelist.id, + ).create({}) + wiz.max_categ_level = 1 + groups = wiz.get_groups_to_print() + product_ids = False + for group in groups: + if group["group_name"] == "Test category": + product_ids = group["products"] + self.assertTrue(product_ids) + self.assertIn(product_category_child.id, product_ids.ids) + + def test_report(self): + wiz = self.wiz_obj.with_context( + active_model="product.pricelist", + active_id=self.pricelist.id, + ).create({}) + # Print PDF + report_pdf = self.env.ref( + "product_pricelist_direct_print.action_report_product_pricelist" + )._render_qweb_pdf( + "product_pricelist_direct_print.report_product_pricelist", wiz.ids + ) + self.assertGreaterEqual(len(report_pdf[0]), 1) diff --git a/product_pricelist_direct_print/wizards/__init__.py b/product_pricelist_direct_print/wizards/__init__.py new file mode 100644 index 000000000000..dfc9a481f010 --- /dev/null +++ b/product_pricelist_direct_print/wizards/__init__.py @@ -0,0 +1 @@ +from . import product_pricelist_print diff --git a/product_pricelist_direct_print/wizards/product_pricelist_print.py b/product_pricelist_direct_print/wizards/product_pricelist_print.py new file mode 100644 index 000000000000..6822ee659283 --- /dev/null +++ b/product_pricelist_direct_print/wizards/product_pricelist_print.py @@ -0,0 +1,391 @@ +# Copyright 2017 Tecnativa - Carlos Dauden +# Copyright 2018 Tecnativa - David Vidal +# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl.html). + +from collections import defaultdict + +from odoo import _, api, fields, models +from odoo.exceptions import ValidationError +from odoo.osv import expression + + +@api.model +def _lang_get(self): + return self.env["res.lang"].get_installed() + + +class ProductPricelistPrint(models.TransientModel): + _name = "product.pricelist.print" + _inherit = ["mail.thread", "mail.activity.mixin"] + _description = "Product Pricelist Print" + + context_active_model = fields.Char( + store=False, compute="_compute_context_active_model" + ) + pricelist_id = fields.Many2one(comodel_name="product.pricelist", string="Pricelist") + partner_id = fields.Many2one(comodel_name="res.partner", string="Customer") + partner_ids = fields.Many2many(comodel_name="res.partner", string="Customers") + categ_ids = fields.Many2many(comodel_name="product.category", string="Categories") + show_only_defined_products = fields.Boolean( + string="Show the products defined on pricelist", + help="Check this field to print only the products defined in the pricelist. " + "The entries in the list referring to all products will not be displayed.", + ) + show_variants = fields.Boolean() + product_tmpl_ids = fields.Many2many( + comodel_name="product.template", + string="Product Templates", + help="Keep empty for all products", + ) + product_ids = fields.Many2many( + comodel_name="product.product", + string="Products", + help="Keep empty for all products", + ) + vat_mode = fields.Selection( + selection=[ + ("vat_excl", "Vat Excluded"), + ("vat_incl", "Vat Included"), + ] + ) + show_product_uom = fields.Boolean(string="Show Product UoM") + show_standard_price = fields.Boolean(string="Show Cost Price") + show_sale_price = fields.Boolean() + show_pricelist_name = fields.Boolean(default=True) + order_field = fields.Selection( + [("name", "Name"), ("default_code", "Internal Reference")], string="Order" + ) + group_field = fields.Selection( + selection=lambda x: x._selection_group_field(), + default="categ_id", + required=True, + ) + partner_count = fields.Integer(compute="_compute_partner_count") + date = fields.Datetime(required=True, default=fields.Datetime.now) + last_ordered_products = fields.Integer( + help="If you enter an X number here, then, for each selected customer," + " the last X ordered products will be obtained for the report." + ) + summary = fields.Text() + print_child_categories = fields.Boolean() + max_categ_level = fields.Integer( + string="Max category level", + help="If this field is not 0, products are grouped at max level " + "of category tree.", + ) + lang = fields.Selection( + _lang_get, string="Language", default=lambda self: self.env.user.lang + ) + + product_price = fields.Float(compute="_compute_product_price") + + @api.onchange("categ_ids") + def _onchange_categ_ids(self): + self.print_child_categories = len(self.categ_ids) > 0 + + @api.depends_context("product") + def _compute_product_price(self): + product = self.env.context["product"] + price = self.get_pricelist_to_print()._get_product_price( + product, 1, date=self.date + ) + if self.vat_mode == "vat_excl": + self.product_price = product.taxes_id.compute_all(price)["total_excluded"] + elif self.vat_mode == "vat_incl": + self.product_price = product.taxes_id.compute_all(price)["total_included"] + else: + self.product_price = price + + @api.depends("partner_ids") + def _compute_partner_count(self): + for record in self: + self.partner_count = len(record.partner_ids) + + @api.onchange("partner_ids") + def _onchange_partner_ids(self): + if not self.partner_count: + self.last_ordered_products = False + + @api.model + def default_get(self, fields): + res = super().default_get(fields) + if self.env.context.get("active_model") == "product.template": + res["product_tmpl_ids"] = [(6, 0, self.env.context.get("active_ids", []))] + elif self.env.context.get("active_model") == "product.product": + res["show_variants"] = True + res["product_ids"] = [(6, 0, self.env.context.get("active_ids", []))] + elif self.env.context.get("active_model") == "product.pricelist": + res["pricelist_id"] = self.env.context.get("active_id", False) + elif self.env.context.get("active_model") == "res.partner": + active_ids = self.env.context.get("active_ids", []) + res["partner_ids"] = [(6, 0, active_ids)] + if len(active_ids) == 1: + partner = self.env["res.partner"].browse(active_ids[0]) + res["pricelist_id"] = partner.property_product_pricelist.id + elif self.env.context.get("active_model") == "product.pricelist.item": + active_ids = self.env.context.get("active_ids", []) + items = self.env["product.pricelist.item"].browse(active_ids) + # Set pricelist if all the items belong to the same one + if len(items.mapped("pricelist_id")) == 1: + res["pricelist_id"] = items[0].pricelist_id.id + product_items = items.filtered( + lambda x: x.applied_on == "0_product_variant" + ) + template_items = items.filtered(lambda x: x.applied_on == "1_product") + category_items = items.filtered( + lambda x: x.applied_on == "2_product_category" + ) + # Convert all pricelist items to their affected variants + if product_items: + res["show_variants"] = True + product_ids = product_items.mapped("product_id") + product_ids |= template_items.mapped( + "product_tmpl_id.product_variant_ids" + ) + product_ids |= product_ids.search( + [ + ("sale_ok", "=", True), + ("categ_id", "in", category_items.mapped("categ_id").ids), + ] + ) + res["product_ids"] = [(6, 0, product_ids.ids)] + # Convert all pricelist items to their affected templates + if template_items and not product_items: + product_tmpl_ids = template_items.mapped("product_tmpl_id") + product_tmpl_ids |= product_tmpl_ids.search( + [ + ("sale_ok", "=", True), + ("categ_id", "in", category_items.mapped("categ_id").ids), + ] + ) + res["product_tmpl_ids"] = [(6, 0, product_tmpl_ids.ids)] + # Only category items, we just set the categories + if category_items and not product_items and not template_items: + res["categ_ids"] = [(6, 0, category_items.mapped("categ_id").ids)] + return res + + def _selection_group_field(self): + fields = ( + self.env["ir.model.fields"] + .sudo() + .search( + [ + ("model", "=", "product.product"), + ("ttype", "=", "many2one"), + ] + ) + ) + return sorted( + [(field.name, field.display_name) for field in fields], key=lambda f: f[1] + ) + + def print_report(self): + if not ( + self.pricelist_id + or self.partner_count + or self.show_standard_price + or self.show_sale_price + ): + raise ValidationError( + _( + "You must set price list or any customer " + "or any show price option." + ) + ) + return self.env.ref( + "product_pricelist_direct_print." "action_report_product_pricelist" + ).report_action(self) + + def action_pricelist_send(self): + self.ensure_one() + if self.partner_count > 1: + self.send_batch() + return + if self.partner_count == 1: + partner = self.partner_ids[0] + self.write( + { + "partner_id": partner.id, + "pricelist_id": partner.property_product_pricelist.id, + } + ) + return self.message_composer_action() + + def message_composer_action(self): + self.ensure_one() + + template_id = self.env.ref( + "product_pricelist_direct_print.email_template_edi_pricelist" + ).id + compose_form_id = self.env.ref("mail.email_compose_message_wizard_form").id + ctx = { + "default_composition_mode": "comment", + "default_res_ids": self.ids, + "default_model": "product.pricelist.print", + "default_use_template": bool(template_id), + "default_template_id": template_id, + } + return { + "type": "ir.actions.act_window", + "view_mode": "form", + "res_model": "mail.compose.message", + "view_id": compose_form_id, + "target": "new", + "context": ctx, + } + + def send_batch(self): + self.ensure_one() + for partner in self.partner_ids.filtered(lambda x: not x.parent_id): + self.write( + { + "partner_id": partner.id, + "pricelist_id": partner.property_product_pricelist.id, + } + ) + self.force_pricelist_send() + + def force_pricelist_send(self): + template_id = self.env.ref( + "product_pricelist_direct_print.email_template_edi_pricelist" + ).id + composer = ( + self.env["mail.compose.message"] + .with_context( + default_composition_mode="mass_mail", + default_notify=True, + default_res_ids=self.ids, + default_model="product.pricelist.print", + default_template_id=template_id, + active_ids=self.ids, + ) + .create({}) + ) + composer.action_send_mail() + + @api.model + def _get_sale_order_domain(self, partner): + return [ + ("state", "not in", ["draft", "sent", "cancel"]), + ("partner_id", "child_of", partner.id), + ] + + def get_last_ordered_products_to_print(self): + self.ensure_one() + partner = self.partner_id + if not partner and self.partner_count == 1: + partner = self.partner_ids[0] + orders = self.env["sale.order"].search( + self._get_sale_order_domain(partner), order="date_order desc" + ) + orders = orders.sorted(key=lambda r: r.date_order, reverse=True) + products = orders.mapped("order_line").mapped("product_id") + return products[: self.last_ordered_products] + + def get_pricelist_to_print(self): + self.ensure_one() + pricelist = self.pricelist_id + if not pricelist and self.partner_count == 1: + pricelist = self.partner_ids[0].property_product_pricelist + return pricelist + + def _compute_context_active_model(self): + self.context_active_model = self.env.context.get("active_model") + + def get_products_domain(self): + domain = [("sale_ok", "=", True)] + if self.show_only_defined_products: + aux_domain = [] + items_dic = {"categ_ids": [], "product_ids": [], "variant_ids": []} + for item in self.pricelist_id.item_ids: + if item.applied_on == "0_product_variant": + items_dic["variant_ids"].append(item.product_id.id) + if item.applied_on == "1_product": + items_dic["product_ids"].append(item.product_tmpl_id.id) + if item.applied_on == "2_product_category" and item.categ_id.parent_id: + items_dic["categ_ids"].append(item.categ_id.id) + if items_dic["categ_ids"]: + aux_domain = expression.OR( + [aux_domain, [("categ_id", "in", items_dic["categ_ids"])]] + ) + if items_dic["product_ids"]: + if self.show_variants: + aux_domain = expression.OR( + [ + aux_domain, + [("product_tmpl_id", "in", items_dic["product_ids"])], + ] + ) + else: + aux_domain = expression.OR( + [aux_domain, [("id", "in", items_dic["product_ids"])]] + ) + if items_dic["variant_ids"]: + if self.show_variants: + aux_domain = expression.OR( + [aux_domain, [("id", "in", items_dic["variant_ids"])]] + ) + else: + aux_domain = expression.OR( + [ + aux_domain, + [("product_variant_ids", "in", items_dic["variant_ids"])], + ] + ) + domain = expression.AND([domain, aux_domain]) + if self.print_child_categories: + domain = expression.AND( + [domain, [("categ_id", "child_of", self.categ_ids.ids)]] + ) + elif self.categ_ids: + domain = expression.AND([domain, [("categ_id", "in", self.categ_ids.ids)]]) + return domain + + def get_products_to_print(self): + self.ensure_one() + if self.last_ordered_products: + products = self.get_last_ordered_products_to_print() + else: + if self.show_variants: + products = self.product_ids or self.product_tmpl_ids.mapped( + "product_variant_ids" + ) + else: + products = self.product_tmpl_ids + if not products: + products = products.search(self.get_products_domain()) + return products + + def get_group_key(self, product): + group_field = getattr(product, self.group_field) + complete_name = getattr(group_field, "complete_name", group_field.name) or _( + "Undefined" + ) + if not self.max_categ_level: + return complete_name + return " / ".join(complete_name.split(" / ")[: self.max_categ_level]) + + def get_sorted_products(self, products): + if self.order_field: + # Using "or ''" to avoid issues with None type + return products.sorted(lambda x: getattr(x, self.order_field) or "") + return products + + def get_groups_to_print(self): + self.ensure_one() + products = self.get_products_to_print() + if not products: + return [] + group_dict = defaultdict(lambda: products.browse()) + for product in products: + key = self.get_group_key(product) + group_dict[key] |= product + group_list = [] + for key in sorted(group_dict.keys()): + group_list.append( + { + "group_name": key, + "products": self.get_sorted_products(group_dict[key]), + } + ) + return group_list diff --git a/product_pricelist_direct_print/wizards/product_pricelist_print_view.xml b/product_pricelist_direct_print/wizards/product_pricelist_print_view.xml new file mode 100644 index 000000000000..8875fb4642e7 --- /dev/null +++ b/product_pricelist_direct_print/wizards/product_pricelist_print_view.xml @@ -0,0 +1,164 @@ + + + + + Product pricelist print + product.pricelist.print + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+
+
+
+ + Price List + product.pricelist.print + + + form + new + + + Price List + product.pricelist.print + + + form + new + + + Price List + product.pricelist.print + + + form + new + + + Send customer pricelist by EMail + product.pricelist.print + + + form + new + + + Print Price List + product.pricelist.print + + form + new + + + Price List + product.pricelist.print + + + form + new + + +