diff --git a/product_pricelist_simulation/README.rst b/product_pricelist_simulation/README.rst new file mode 100644 index 00000000000..5e2934d9300 --- /dev/null +++ b/product_pricelist_simulation/README.rst @@ -0,0 +1,121 @@ +============================ +Product Pricelist Simulation +============================ + +.. + !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! + !! This file is generated by oca-gen-addon-readme !! + !! changes will be overwritten. !! + !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! + !! source digest: sha256:c7b64ebb49f8fb0a04005ab8cafa53a3d93fdf6d9c7d53cb50b295bbf9c23043 + !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! + +.. |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/18.0/product_pricelist_simulation + :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-18-0/product-attribute-18-0-product_pricelist_simulation + :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=18.0 + :alt: Try me on Runboat + +|badge1| |badge2| |badge3| |badge4| |badge5| + +This module extends the product pricelists feature to allow show price +for all pricelists from a product form view. + +**Table of contents** + +.. contents:: + :local: + +Usage +===== + +To use this module, you need to: + +1. Go to product form view. +2. Click *See Price per Pricelist* button. +3. A new dialog will appear showing the prices for the current date and + quantity=1 for the current product. +4. You can modify the date to see the prices on that date (if you have + pricelists with specific intervals of time), or for other quantity + (if you have pricelists depending on the number). +5. If you have clicked from a product with variants, you will see by + default the prices for all the existing variants on each shown + pricelist, but you can select a specific variant in the field + "Product Variant" to filter out the rest of the variants except the + selected one. + +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 +------- + +* GRAP +* Tecnativa + +Contributors +------------ + +- Sylvain LE GAL +- `Tecnativa `__: +- `FactorLibre `__ + + - Sergio Teruel + - Ernesto Tejeda + - Pedro M. Baeza + - Hugo Córdoba + +- Khoi (Kien Kim) + +Other credits +------------- + +The migration of this module from 17.0 to 18.0 was financially supported +by: + +- Camptocamp. + +Maintainers +----------- + +This module is maintained by the OCA. + +.. image:: https://odoo-community.org/logo.png + :alt: Odoo Community Association + :target: https://odoo-community.org + +OCA, or the Odoo Community Association, is a nonprofit organization whose +mission is to support the collaborative development of Odoo features and +promote its widespread use. + +.. |maintainer-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_simulation/__init__.py b/product_pricelist_simulation/__init__.py new file mode 100644 index 00000000000..aee8895e7a3 --- /dev/null +++ b/product_pricelist_simulation/__init__.py @@ -0,0 +1,2 @@ +from . import models +from . import wizards diff --git a/product_pricelist_simulation/__manifest__.py b/product_pricelist_simulation/__manifest__.py new file mode 100644 index 00000000000..7ace3f1bbaf --- /dev/null +++ b/product_pricelist_simulation/__manifest__.py @@ -0,0 +1,22 @@ +# Copyright 2017 Tecnativa - Sergio Teruel +# License AGPL-3.0 or later (http://www.gnu.org/licenses/lgpl). + +{ + "name": "Product Pricelist Simulation", + "summary": "Simulate the product price for all pricelists", + "version": "18.0.1.0.0", + "category": "Product", + "website": "https://github.com/OCA/product-attribute", + "author": "GRAP, Tecnativa, Odoo Community Association (OCA)", + "maintainers": ["legalsylvain"], + "license": "AGPL-3", + "application": False, + "installable": True, + "depends": ["product"], + "data": [ + "security/ir.model.access.csv", + "wizards/wizard_preview_pricelist_views.xml", + "views/product_views.xml", + "views/pricelist_views.xml", + ], +} diff --git a/product_pricelist_simulation/i18n/es.po b/product_pricelist_simulation/i18n/es.po new file mode 100644 index 00000000000..70c476be564 --- /dev/null +++ b/product_pricelist_simulation/i18n/es.po @@ -0,0 +1,141 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * product_pricelist_simulation +# +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 9.0c\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2022-07-13 20:23+0000\n" +"PO-Revision-Date: 2023-11-04 11:38+0000\n" +"Last-Translator: Ivorra78 \n" +"Language-Team: \n" +"Language: es\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=2; plural=n != 1;\n" +"X-Generator: Weblate 4.17\n" + +#. module: product_pricelist_simulation +#: model_terms:ir.ui.view,arch_db:product_pricelist_simulation.view_pricelist_simulation_view_form +msgid "Close" +msgstr "Cerrar" + +#. module: product_pricelist_simulation +#: model:ir.model.fields,field_description:product_pricelist_simulation.field_wizard_preview_pricelist__create_uid +#: model:ir.model.fields,field_description:product_pricelist_simulation.field_wizard_preview_pricelist_line__create_uid +msgid "Created by" +msgstr "Creado por" + +#. module: product_pricelist_simulation +#: model:ir.model.fields,field_description:product_pricelist_simulation.field_wizard_preview_pricelist__create_date +#: model:ir.model.fields,field_description:product_pricelist_simulation.field_wizard_preview_pricelist_line__create_date +msgid "Created on" +msgstr "Creado el" + +#. module: product_pricelist_simulation +#: model:ir.model.fields,field_description:product_pricelist_simulation.field_wizard_preview_pricelist_line__currency_id +msgid "Currency" +msgstr "Moneda" + +#. module: product_pricelist_simulation +#: model:ir.model.fields,field_description:product_pricelist_simulation.field_wizard_preview_pricelist__price_date +msgid "Date" +msgstr "Fecha" + +#. module: product_pricelist_simulation +#: model:ir.model.fields,field_description:product_pricelist_simulation.field_wizard_preview_pricelist__display_name +#: model:ir.model.fields,field_description:product_pricelist_simulation.field_wizard_preview_pricelist_line__display_name +msgid "Display Name" +msgstr "Nombre mostrado" + +#. module: product_pricelist_simulation +#: model:ir.model.fields,field_description:product_pricelist_simulation.field_wizard_preview_pricelist__id +#: model:ir.model.fields,field_description:product_pricelist_simulation.field_wizard_preview_pricelist_line__id +msgid "ID" +msgstr "ID" + +#. module: product_pricelist_simulation +#: model:ir.model.fields,field_description:product_pricelist_simulation.field_wizard_preview_pricelist__write_uid +#: model:ir.model.fields,field_description:product_pricelist_simulation.field_wizard_preview_pricelist_line__write_uid +msgid "Last Updated by" +msgstr "Últ. actualización por" + +#. module: product_pricelist_simulation +#: model:ir.model.fields,field_description:product_pricelist_simulation.field_wizard_preview_pricelist__write_date +#: model:ir.model.fields,field_description:product_pricelist_simulation.field_wizard_preview_pricelist_line__write_date +msgid "Last Updated on" +msgstr "Últ. actualización el" + +#. module: product_pricelist_simulation +#: model:ir.model,name:product_pricelist_simulation.model_product_pricelist +#: model:ir.model.fields,field_description:product_pricelist_simulation.field_wizard_preview_pricelist_line__pricelist_id +msgid "Pricelist" +msgstr "Tarifa" + +#. module: product_pricelist_simulation +#: model:ir.model.fields,field_description:product_pricelist_simulation.field_wizard_preview_pricelist__template_id +msgid "Product Template" +msgstr "Plantilla de producto" + +#. module: product_pricelist_simulation +#: model:ir.model.fields,field_description:product_pricelist_simulation.field_wizard_preview_pricelist__product_id +#: model:ir.model.fields,field_description:product_pricelist_simulation.field_wizard_preview_pricelist_line__product_id +msgid "Product Variant" +msgstr "Variante de producto" + +#. module: product_pricelist_simulation +#: model:ir.model.fields,field_description:product_pricelist_simulation.field_wizard_preview_pricelist__product_qty +msgid "Quantity" +msgstr "Cantidad" + +#. module: product_pricelist_simulation +#: model:ir.actions.act_window,name:product_pricelist_simulation.pricelist_simulation_action +#: model_terms:ir.ui.view,arch_db:product_pricelist_simulation.product_template_form_view_pricelist_simulation +msgid "See Price per Pricelist" +msgstr "Ver precio por tarifa" + +#. module: product_pricelist_simulation +#: model:ir.model.fields,field_description:product_pricelist_simulation.field_product_pricelist__show_in_simulation +msgid "Show In Simulation" +msgstr "Mostrar En Simulación" + +#. module: product_pricelist_simulation +#: model:ir.model.fields,field_description:product_pricelist_simulation.field_wizard_preview_pricelist_line__simulation_id +msgid "Simulation" +msgstr "Simulación" + +#. module: product_pricelist_simulation +#: model:ir.model.fields,field_description:product_pricelist_simulation.field_wizard_preview_pricelist__line_ids +msgid "Simulation Lines" +msgstr "Líneas de simulación" + +#. module: product_pricelist_simulation +#: model:ir.model.fields,field_description:product_pricelist_simulation.field_wizard_preview_pricelist_line__price +msgid "Unit Price" +msgstr "Precio Unitario" + +#. module: product_pricelist_simulation +#: model:ir.model.fields,field_description:product_pricelist_simulation.field_wizard_preview_pricelist__variant_count +msgid "Variants Count" +msgstr "Variantes" + +#. module: product_pricelist_simulation +#: model:ir.model,name:product_pricelist_simulation.model_wizard_preview_pricelist +msgid "wizard - Preview Pricelist" +msgstr "asistente - Vista previa de la lista de precios" + +#. module: product_pricelist_simulation +#: model:ir.model,name:product_pricelist_simulation.model_wizard_preview_pricelist_line +msgid "wizard - Preview Pricelist Line" +msgstr "asistente - Vista previa de línea de lista de precios" + +#~ msgid "Last Modified on" +#~ msgstr "Últ. modificación en" + +#~ msgid "Price" +#~ msgstr "Precio" + +#~ msgid "Show in simulation" +#~ msgstr "Mostrar en simulación" diff --git a/product_pricelist_simulation/i18n/it.po b/product_pricelist_simulation/i18n/it.po new file mode 100644 index 00000000000..66643c718fe --- /dev/null +++ b/product_pricelist_simulation/i18n/it.po @@ -0,0 +1,137 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * product_pricelist_simulation +# +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 16.0\n" +"Report-Msgid-Bugs-To: \n" +"PO-Revision-Date: 2023-10-30 15:41+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 4.17\n" + +#. module: product_pricelist_simulation +#: model_terms:ir.ui.view,arch_db:product_pricelist_simulation.view_pricelist_simulation_view_form +msgid "Close" +msgstr "Chiudi" + +#. module: product_pricelist_simulation +#: model:ir.model.fields,field_description:product_pricelist_simulation.field_wizard_preview_pricelist__create_uid +#: model:ir.model.fields,field_description:product_pricelist_simulation.field_wizard_preview_pricelist_line__create_uid +msgid "Created by" +msgstr "Creato da" + +#. module: product_pricelist_simulation +#: model:ir.model.fields,field_description:product_pricelist_simulation.field_wizard_preview_pricelist__create_date +#: model:ir.model.fields,field_description:product_pricelist_simulation.field_wizard_preview_pricelist_line__create_date +msgid "Created on" +msgstr "Creato il" + +#. module: product_pricelist_simulation +#: model:ir.model.fields,field_description:product_pricelist_simulation.field_wizard_preview_pricelist_line__currency_id +msgid "Currency" +msgstr "Valuta" + +#. module: product_pricelist_simulation +#: model:ir.model.fields,field_description:product_pricelist_simulation.field_wizard_preview_pricelist__price_date +msgid "Date" +msgstr "Data" + +#. module: product_pricelist_simulation +#: model:ir.model.fields,field_description:product_pricelist_simulation.field_wizard_preview_pricelist__display_name +#: model:ir.model.fields,field_description:product_pricelist_simulation.field_wizard_preview_pricelist_line__display_name +msgid "Display Name" +msgstr "Nome visualizzato" + +#. module: product_pricelist_simulation +#: model:ir.model.fields,field_description:product_pricelist_simulation.field_wizard_preview_pricelist__id +#: model:ir.model.fields,field_description:product_pricelist_simulation.field_wizard_preview_pricelist_line__id +msgid "ID" +msgstr "ID" + +#. module: product_pricelist_simulation +#: model:ir.model.fields,field_description:product_pricelist_simulation.field_wizard_preview_pricelist__write_uid +#: model:ir.model.fields,field_description:product_pricelist_simulation.field_wizard_preview_pricelist_line__write_uid +msgid "Last Updated by" +msgstr "Ultimo aggiornamento di" + +#. module: product_pricelist_simulation +#: model:ir.model.fields,field_description:product_pricelist_simulation.field_wizard_preview_pricelist__write_date +#: model:ir.model.fields,field_description:product_pricelist_simulation.field_wizard_preview_pricelist_line__write_date +msgid "Last Updated on" +msgstr "Ultimo aggiornamento il" + +#. module: product_pricelist_simulation +#: model:ir.model,name:product_pricelist_simulation.model_product_pricelist +#: model:ir.model.fields,field_description:product_pricelist_simulation.field_wizard_preview_pricelist_line__pricelist_id +msgid "Pricelist" +msgstr "Listino prezzi" + +#. module: product_pricelist_simulation +#: model:ir.model.fields,field_description:product_pricelist_simulation.field_wizard_preview_pricelist__template_id +msgid "Product Template" +msgstr "Modello prodotto" + +#. module: product_pricelist_simulation +#: model:ir.model.fields,field_description:product_pricelist_simulation.field_wizard_preview_pricelist__product_id +#: model:ir.model.fields,field_description:product_pricelist_simulation.field_wizard_preview_pricelist_line__product_id +msgid "Product Variant" +msgstr "Variante prodotto" + +#. module: product_pricelist_simulation +#: model:ir.model.fields,field_description:product_pricelist_simulation.field_wizard_preview_pricelist__product_qty +msgid "Quantity" +msgstr "Quantità" + +#. module: product_pricelist_simulation +#: model:ir.actions.act_window,name:product_pricelist_simulation.pricelist_simulation_action +#: model_terms:ir.ui.view,arch_db:product_pricelist_simulation.product_template_form_view_pricelist_simulation +msgid "See Price per Pricelist" +msgstr "Vedi prezzo per listino" + +#. module: product_pricelist_simulation +#: model:ir.model.fields,field_description:product_pricelist_simulation.field_product_pricelist__show_in_simulation +msgid "Show In Simulation" +msgstr "Visualizza nella simulazione" + +#. module: product_pricelist_simulation +#: model:ir.model.fields,field_description:product_pricelist_simulation.field_wizard_preview_pricelist_line__simulation_id +msgid "Simulation" +msgstr "Simulazione" + +#. module: product_pricelist_simulation +#: model:ir.model.fields,field_description:product_pricelist_simulation.field_wizard_preview_pricelist__line_ids +msgid "Simulation Lines" +msgstr "Righe simulazione" + +#. module: product_pricelist_simulation +#: model:ir.model.fields,field_description:product_pricelist_simulation.field_wizard_preview_pricelist_line__price +msgid "Unit Price" +msgstr "Prezzo unitario" + +#. module: product_pricelist_simulation +#: model:ir.model.fields,field_description:product_pricelist_simulation.field_wizard_preview_pricelist__variant_count +msgid "Variants Count" +msgstr "Conteggio varianti" + +#. module: product_pricelist_simulation +#: model:ir.model,name:product_pricelist_simulation.model_wizard_preview_pricelist +msgid "wizard - Preview Pricelist" +msgstr "procedura quidata - anteprima listino" + +#. module: product_pricelist_simulation +#: model:ir.model,name:product_pricelist_simulation.model_wizard_preview_pricelist_line +msgid "wizard - Preview Pricelist Line" +msgstr "procedura quidata - riga anteprima listino" + +#~ msgid "Last Modified on" +#~ msgstr "Ultima modifica il" + +#~ msgid "Price" +#~ msgstr "Prezzo" diff --git a/product_pricelist_simulation/i18n/product_pricelist_simulation.pot b/product_pricelist_simulation/i18n/product_pricelist_simulation.pot new file mode 100644 index 00000000000..dd5fc2fca2d --- /dev/null +++ b/product_pricelist_simulation/i18n/product_pricelist_simulation.pot @@ -0,0 +1,128 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * product_pricelist_simulation +# +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 17.0\n" +"Report-Msgid-Bugs-To: \n" +"Last-Translator: \n" +"Language-Team: \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: \n" +"Plural-Forms: \n" + +#. module: product_pricelist_simulation +#: model_terms:ir.ui.view,arch_db:product_pricelist_simulation.view_pricelist_simulation_view_form +msgid "Close" +msgstr "" + +#. module: product_pricelist_simulation +#: model:ir.model.fields,field_description:product_pricelist_simulation.field_wizard_preview_pricelist__create_uid +#: model:ir.model.fields,field_description:product_pricelist_simulation.field_wizard_preview_pricelist_line__create_uid +msgid "Created by" +msgstr "" + +#. module: product_pricelist_simulation +#: model:ir.model.fields,field_description:product_pricelist_simulation.field_wizard_preview_pricelist__create_date +#: model:ir.model.fields,field_description:product_pricelist_simulation.field_wizard_preview_pricelist_line__create_date +msgid "Created on" +msgstr "" + +#. module: product_pricelist_simulation +#: model:ir.model.fields,field_description:product_pricelist_simulation.field_wizard_preview_pricelist_line__currency_id +msgid "Currency" +msgstr "" + +#. module: product_pricelist_simulation +#: model:ir.model.fields,field_description:product_pricelist_simulation.field_wizard_preview_pricelist__price_date +msgid "Date" +msgstr "" + +#. module: product_pricelist_simulation +#: model:ir.model.fields,field_description:product_pricelist_simulation.field_wizard_preview_pricelist__display_name +#: model:ir.model.fields,field_description:product_pricelist_simulation.field_wizard_preview_pricelist_line__display_name +msgid "Display Name" +msgstr "" + +#. module: product_pricelist_simulation +#: model:ir.model.fields,field_description:product_pricelist_simulation.field_wizard_preview_pricelist__id +#: model:ir.model.fields,field_description:product_pricelist_simulation.field_wizard_preview_pricelist_line__id +msgid "ID" +msgstr "" + +#. module: product_pricelist_simulation +#: model:ir.model.fields,field_description:product_pricelist_simulation.field_wizard_preview_pricelist__write_uid +#: model:ir.model.fields,field_description:product_pricelist_simulation.field_wizard_preview_pricelist_line__write_uid +msgid "Last Updated by" +msgstr "" + +#. module: product_pricelist_simulation +#: model:ir.model.fields,field_description:product_pricelist_simulation.field_wizard_preview_pricelist__write_date +#: model:ir.model.fields,field_description:product_pricelist_simulation.field_wizard_preview_pricelist_line__write_date +msgid "Last Updated on" +msgstr "" + +#. module: product_pricelist_simulation +#: model:ir.model,name:product_pricelist_simulation.model_product_pricelist +#: model:ir.model.fields,field_description:product_pricelist_simulation.field_wizard_preview_pricelist_line__pricelist_id +msgid "Pricelist" +msgstr "" + +#. module: product_pricelist_simulation +#: model:ir.model.fields,field_description:product_pricelist_simulation.field_wizard_preview_pricelist__template_id +msgid "Product Template" +msgstr "" + +#. module: product_pricelist_simulation +#: model:ir.model.fields,field_description:product_pricelist_simulation.field_wizard_preview_pricelist__product_id +#: model:ir.model.fields,field_description:product_pricelist_simulation.field_wizard_preview_pricelist_line__product_id +msgid "Product Variant" +msgstr "" + +#. module: product_pricelist_simulation +#: model:ir.model.fields,field_description:product_pricelist_simulation.field_wizard_preview_pricelist__product_qty +msgid "Quantity" +msgstr "" + +#. module: product_pricelist_simulation +#: model:ir.actions.act_window,name:product_pricelist_simulation.pricelist_simulation_action +#: model_terms:ir.ui.view,arch_db:product_pricelist_simulation.product_template_form_view_pricelist_simulation +msgid "See Price per Pricelist" +msgstr "" + +#. module: product_pricelist_simulation +#: model:ir.model.fields,field_description:product_pricelist_simulation.field_product_pricelist__show_in_simulation +msgid "Show In Simulation" +msgstr "" + +#. module: product_pricelist_simulation +#: model:ir.model.fields,field_description:product_pricelist_simulation.field_wizard_preview_pricelist_line__simulation_id +msgid "Simulation" +msgstr "" + +#. module: product_pricelist_simulation +#: model:ir.model.fields,field_description:product_pricelist_simulation.field_wizard_preview_pricelist__line_ids +msgid "Simulation Lines" +msgstr "" + +#. module: product_pricelist_simulation +#: model:ir.model.fields,field_description:product_pricelist_simulation.field_wizard_preview_pricelist_line__price +msgid "Unit Price" +msgstr "" + +#. module: product_pricelist_simulation +#: model:ir.model.fields,field_description:product_pricelist_simulation.field_wizard_preview_pricelist__variant_count +msgid "Variants Count" +msgstr "" + +#. module: product_pricelist_simulation +#: model:ir.model,name:product_pricelist_simulation.model_wizard_preview_pricelist +msgid "wizard - Preview Pricelist" +msgstr "" + +#. module: product_pricelist_simulation +#: model:ir.model,name:product_pricelist_simulation.model_wizard_preview_pricelist_line +msgid "wizard - Preview Pricelist Line" +msgstr "" diff --git a/product_pricelist_simulation/i18n/pt_BR.po b/product_pricelist_simulation/i18n/pt_BR.po new file mode 100644 index 00000000000..49419c2117a --- /dev/null +++ b/product_pricelist_simulation/i18n/pt_BR.po @@ -0,0 +1,137 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * product_pricelist_simulation +# +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 16.0\n" +"Report-Msgid-Bugs-To: \n" +"PO-Revision-Date: 2023-10-31 12:16+0000\n" +"Last-Translator: Adriano Prado \n" +"Language-Team: none\n" +"Language: pt_BR\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: \n" +"Plural-Forms: nplurals=2; plural=n > 1;\n" +"X-Generator: Weblate 4.17\n" + +#. module: product_pricelist_simulation +#: model_terms:ir.ui.view,arch_db:product_pricelist_simulation.view_pricelist_simulation_view_form +msgid "Close" +msgstr "Fechar" + +#. module: product_pricelist_simulation +#: model:ir.model.fields,field_description:product_pricelist_simulation.field_wizard_preview_pricelist__create_uid +#: model:ir.model.fields,field_description:product_pricelist_simulation.field_wizard_preview_pricelist_line__create_uid +msgid "Created by" +msgstr "Criado por" + +#. module: product_pricelist_simulation +#: model:ir.model.fields,field_description:product_pricelist_simulation.field_wizard_preview_pricelist__create_date +#: model:ir.model.fields,field_description:product_pricelist_simulation.field_wizard_preview_pricelist_line__create_date +msgid "Created on" +msgstr "Criado em" + +#. module: product_pricelist_simulation +#: model:ir.model.fields,field_description:product_pricelist_simulation.field_wizard_preview_pricelist_line__currency_id +msgid "Currency" +msgstr "Moeda" + +#. module: product_pricelist_simulation +#: model:ir.model.fields,field_description:product_pricelist_simulation.field_wizard_preview_pricelist__price_date +msgid "Date" +msgstr "Data" + +#. module: product_pricelist_simulation +#: model:ir.model.fields,field_description:product_pricelist_simulation.field_wizard_preview_pricelist__display_name +#: model:ir.model.fields,field_description:product_pricelist_simulation.field_wizard_preview_pricelist_line__display_name +msgid "Display Name" +msgstr "Nome Exibição" + +#. module: product_pricelist_simulation +#: model:ir.model.fields,field_description:product_pricelist_simulation.field_wizard_preview_pricelist__id +#: model:ir.model.fields,field_description:product_pricelist_simulation.field_wizard_preview_pricelist_line__id +msgid "ID" +msgstr "ID" + +#. module: product_pricelist_simulation +#: model:ir.model.fields,field_description:product_pricelist_simulation.field_wizard_preview_pricelist__write_uid +#: model:ir.model.fields,field_description:product_pricelist_simulation.field_wizard_preview_pricelist_line__write_uid +msgid "Last Updated by" +msgstr "Última Atualização por" + +#. module: product_pricelist_simulation +#: model:ir.model.fields,field_description:product_pricelist_simulation.field_wizard_preview_pricelist__write_date +#: model:ir.model.fields,field_description:product_pricelist_simulation.field_wizard_preview_pricelist_line__write_date +msgid "Last Updated on" +msgstr "Última Atualização em" + +#. module: product_pricelist_simulation +#: model:ir.model,name:product_pricelist_simulation.model_product_pricelist +#: model:ir.model.fields,field_description:product_pricelist_simulation.field_wizard_preview_pricelist_line__pricelist_id +msgid "Pricelist" +msgstr "Lista de Preço" + +#. module: product_pricelist_simulation +#: model:ir.model.fields,field_description:product_pricelist_simulation.field_wizard_preview_pricelist__template_id +msgid "Product Template" +msgstr "Modelo Produto" + +#. module: product_pricelist_simulation +#: model:ir.model.fields,field_description:product_pricelist_simulation.field_wizard_preview_pricelist__product_id +#: model:ir.model.fields,field_description:product_pricelist_simulation.field_wizard_preview_pricelist_line__product_id +msgid "Product Variant" +msgstr "Variantes de Produto" + +#. module: product_pricelist_simulation +#: model:ir.model.fields,field_description:product_pricelist_simulation.field_wizard_preview_pricelist__product_qty +msgid "Quantity" +msgstr "Quantidade" + +#. module: product_pricelist_simulation +#: model:ir.actions.act_window,name:product_pricelist_simulation.pricelist_simulation_action +#: model_terms:ir.ui.view,arch_db:product_pricelist_simulation.product_template_form_view_pricelist_simulation +msgid "See Price per Pricelist" +msgstr "Consulte Preço por Lista de Preços" + +#. module: product_pricelist_simulation +#: model:ir.model.fields,field_description:product_pricelist_simulation.field_product_pricelist__show_in_simulation +msgid "Show In Simulation" +msgstr "Mostrar na Simulação" + +#. module: product_pricelist_simulation +#: model:ir.model.fields,field_description:product_pricelist_simulation.field_wizard_preview_pricelist_line__simulation_id +msgid "Simulation" +msgstr "Simulação" + +#. module: product_pricelist_simulation +#: model:ir.model.fields,field_description:product_pricelist_simulation.field_wizard_preview_pricelist__line_ids +msgid "Simulation Lines" +msgstr "Linhas de Simulação" + +#. module: product_pricelist_simulation +#: model:ir.model.fields,field_description:product_pricelist_simulation.field_wizard_preview_pricelist_line__price +msgid "Unit Price" +msgstr "Preço Unitário" + +#. module: product_pricelist_simulation +#: model:ir.model.fields,field_description:product_pricelist_simulation.field_wizard_preview_pricelist__variant_count +msgid "Variants Count" +msgstr "Contagem de Variantes" + +#. module: product_pricelist_simulation +#: model:ir.model,name:product_pricelist_simulation.model_wizard_preview_pricelist +msgid "wizard - Preview Pricelist" +msgstr "Assistente - Visualizar Lista de Preços" + +#. module: product_pricelist_simulation +#: model:ir.model,name:product_pricelist_simulation.model_wizard_preview_pricelist_line +msgid "wizard - Preview Pricelist Line" +msgstr "Assistente - Visualizar Linha da Lista de Preços" + +#~ msgid "Last Modified on" +#~ msgstr "Última Modificação em" + +#~ msgid "Price" +#~ msgstr "Preço" diff --git a/product_pricelist_simulation/i18n/tr.po b/product_pricelist_simulation/i18n/tr.po new file mode 100644 index 00000000000..218a9cf4141 --- /dev/null +++ b/product_pricelist_simulation/i18n/tr.po @@ -0,0 +1,134 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * product_pricelist_simulation +# +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_simulation +#: model_terms:ir.ui.view,arch_db:product_pricelist_simulation.view_pricelist_simulation_view_form +msgid "Close" +msgstr "Kapat" + +#. module: product_pricelist_simulation +#: model:ir.model.fields,field_description:product_pricelist_simulation.field_wizard_preview_pricelist__create_uid +#: model:ir.model.fields,field_description:product_pricelist_simulation.field_wizard_preview_pricelist_line__create_uid +msgid "Created by" +msgstr "Oluşturan" + +#. module: product_pricelist_simulation +#: model:ir.model.fields,field_description:product_pricelist_simulation.field_wizard_preview_pricelist__create_date +#: model:ir.model.fields,field_description:product_pricelist_simulation.field_wizard_preview_pricelist_line__create_date +msgid "Created on" +msgstr "Oluşturulma" + +#. module: product_pricelist_simulation +#: model:ir.model.fields,field_description:product_pricelist_simulation.field_wizard_preview_pricelist_line__currency_id +msgid "Currency" +msgstr "Para Birimi" + +#. module: product_pricelist_simulation +#: model:ir.model.fields,field_description:product_pricelist_simulation.field_wizard_preview_pricelist__price_date +msgid "Date" +msgstr "Tarih" + +#. module: product_pricelist_simulation +#: model:ir.model.fields,field_description:product_pricelist_simulation.field_wizard_preview_pricelist__display_name +#: model:ir.model.fields,field_description:product_pricelist_simulation.field_wizard_preview_pricelist_line__display_name +msgid "Display Name" +msgstr "Görünen Ad" + +#. module: product_pricelist_simulation +#: model:ir.model.fields,field_description:product_pricelist_simulation.field_wizard_preview_pricelist__id +#: model:ir.model.fields,field_description:product_pricelist_simulation.field_wizard_preview_pricelist_line__id +msgid "ID" +msgstr "ID" + +#. module: product_pricelist_simulation +#: model:ir.model.fields,field_description:product_pricelist_simulation.field_wizard_preview_pricelist__write_uid +#: model:ir.model.fields,field_description:product_pricelist_simulation.field_wizard_preview_pricelist_line__write_uid +msgid "Last Updated by" +msgstr "Son Güncelleyen" + +#. module: product_pricelist_simulation +#: model:ir.model.fields,field_description:product_pricelist_simulation.field_wizard_preview_pricelist__write_date +#: model:ir.model.fields,field_description:product_pricelist_simulation.field_wizard_preview_pricelist_line__write_date +msgid "Last Updated on" +msgstr "Son Güncelleme" + +#. module: product_pricelist_simulation +#: model:ir.model,name:product_pricelist_simulation.model_product_pricelist +#: model:ir.model.fields,field_description:product_pricelist_simulation.field_wizard_preview_pricelist_line__pricelist_id +msgid "Pricelist" +msgstr "Fiyat Listesi" + +#. module: product_pricelist_simulation +#: model:ir.model.fields,field_description:product_pricelist_simulation.field_wizard_preview_pricelist__template_id +msgid "Product Template" +msgstr "Ürün" + +#. module: product_pricelist_simulation +#: model:ir.model.fields,field_description:product_pricelist_simulation.field_wizard_preview_pricelist__product_id +#: model:ir.model.fields,field_description:product_pricelist_simulation.field_wizard_preview_pricelist_line__product_id +msgid "Product Variant" +msgstr "Ürün Varyantı" + +#. module: product_pricelist_simulation +#: model:ir.model.fields,field_description:product_pricelist_simulation.field_wizard_preview_pricelist__product_qty +msgid "Quantity" +msgstr "Adet" + +#. module: product_pricelist_simulation +#: model:ir.actions.act_window,name:product_pricelist_simulation.pricelist_simulation_action +#: model_terms:ir.ui.view,arch_db:product_pricelist_simulation.product_template_form_view_pricelist_simulation +msgid "See Price per Pricelist" +msgstr "Fiyat Listelerinde Gör" + +#. module: product_pricelist_simulation +#: model:ir.model.fields,field_description:product_pricelist_simulation.field_product_pricelist__show_in_simulation +msgid "Show In Simulation" +msgstr "Simülasyonda Göster" + +#. module: product_pricelist_simulation +#: model:ir.model.fields,field_description:product_pricelist_simulation.field_wizard_preview_pricelist_line__simulation_id +msgid "Simulation" +msgstr "Simülasyon" + +#. module: product_pricelist_simulation +#: model:ir.model.fields,field_description:product_pricelist_simulation.field_wizard_preview_pricelist__line_ids +msgid "Simulation Lines" +msgstr "Simülasyon Satırları" + +#. module: product_pricelist_simulation +#: model:ir.model.fields,field_description:product_pricelist_simulation.field_wizard_preview_pricelist_line__price +msgid "Unit Price" +msgstr "Birim Fiyat" + +#. module: product_pricelist_simulation +#: model:ir.model.fields,field_description:product_pricelist_simulation.field_wizard_preview_pricelist__variant_count +msgid "Variants Count" +msgstr "Varyant Sayısı" + +#. module: product_pricelist_simulation +#: model:ir.model,name:product_pricelist_simulation.model_wizard_preview_pricelist +msgid "wizard - Preview Pricelist" +msgstr "Fiyat Listesini İncele" + +#. module: product_pricelist_simulation +#: model:ir.model,name:product_pricelist_simulation.model_wizard_preview_pricelist_line +msgid "wizard - Preview Pricelist Line" +msgstr "Fiyat Listesi Satırlarını İncele" + +#~ msgid "Last Modified on" +#~ msgstr "Son Değiştirilme" diff --git a/product_pricelist_simulation/models/__init__.py b/product_pricelist_simulation/models/__init__.py new file mode 100644 index 00000000000..8d87393746b --- /dev/null +++ b/product_pricelist_simulation/models/__init__.py @@ -0,0 +1,4 @@ +# Copyright 2017 Tecnativa - Sergio Teruel +# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl). + +from . import pricelist diff --git a/product_pricelist_simulation/models/pricelist.py b/product_pricelist_simulation/models/pricelist.py new file mode 100644 index 00000000000..3c3caa28089 --- /dev/null +++ b/product_pricelist_simulation/models/pricelist.py @@ -0,0 +1,10 @@ +# Copyright 2022 Tecnativa - Ernesto Tejeda +# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl). + +from odoo import fields, models + + +class ProductPricelist(models.Model): + _inherit = "product.pricelist" + + show_in_simulation = fields.Boolean(default=True) diff --git a/product_pricelist_simulation/pyproject.toml b/product_pricelist_simulation/pyproject.toml new file mode 100644 index 00000000000..4231d0cccb3 --- /dev/null +++ b/product_pricelist_simulation/pyproject.toml @@ -0,0 +1,3 @@ +[build-system] +requires = ["whool"] +build-backend = "whool.buildapi" diff --git a/product_pricelist_simulation/readme/CONTRIBUTORS.md b/product_pricelist_simulation/readme/CONTRIBUTORS.md new file mode 100644 index 00000000000..901590b9b62 --- /dev/null +++ b/product_pricelist_simulation/readme/CONTRIBUTORS.md @@ -0,0 +1,8 @@ +- Sylvain LE GAL \<\> +- [Tecnativa](https://www.tecnativa.com): +- [FactorLibre](https://www.factorlibre.com) + - Sergio Teruel + - Ernesto Tejeda + - Pedro M. Baeza + - Hugo Córdoba +- Khoi (Kien Kim) \<\> diff --git a/product_pricelist_simulation/readme/CREDITS.md b/product_pricelist_simulation/readme/CREDITS.md new file mode 100644 index 00000000000..80354b7d282 --- /dev/null +++ b/product_pricelist_simulation/readme/CREDITS.md @@ -0,0 +1,3 @@ +The migration of this module from 17.0 to 18.0 was financially supported by: + +- Camptocamp. diff --git a/product_pricelist_simulation/readme/DESCRIPTION.md b/product_pricelist_simulation/readme/DESCRIPTION.md new file mode 100644 index 00000000000..8282a8d2f70 --- /dev/null +++ b/product_pricelist_simulation/readme/DESCRIPTION.md @@ -0,0 +1,2 @@ +This module extends the product pricelists feature to allow show price +for all pricelists from a product form view. diff --git a/product_pricelist_simulation/readme/USAGE.md b/product_pricelist_simulation/readme/USAGE.md new file mode 100644 index 00000000000..71eed814b55 --- /dev/null +++ b/product_pricelist_simulation/readme/USAGE.md @@ -0,0 +1,14 @@ +To use this module, you need to: + +1. Go to product form view. +2. Click *See Price per Pricelist* button. +3. A new dialog will appear showing the prices for the current date and + quantity=1 for the current product. +4. You can modify the date to see the prices on that date (if you have + pricelists with specific intervals of time), or for other quantity + (if you have pricelists depending on the number). +5. If you have clicked from a product with variants, you will see by + default the prices for all the existing variants on each shown + pricelist, but you can select a specific variant in the field + "Product Variant" to filter out the rest of the variants except the + selected one. diff --git a/product_pricelist_simulation/security/ir.model.access.csv b/product_pricelist_simulation/security/ir.model.access.csv new file mode 100644 index 00000000000..2d4ab81e0fd --- /dev/null +++ b/product_pricelist_simulation/security/ir.model.access.csv @@ -0,0 +1,3 @@ +"id","name","model_id:id","group_id:id","perm_read","perm_write","perm_create","perm_unlink" +"access_wizard_preview_pricelist","access.wizard.preview.pricelist","model_wizard_preview_pricelist","base.group_system",1,1,1,0 +"access_wizard_preview_pricelist_line","access.wizard.preview.pricelist.line","model_wizard_preview_pricelist_line","base.group_system",1,1,1,0 diff --git a/product_pricelist_simulation/static/description/icon.png b/product_pricelist_simulation/static/description/icon.png new file mode 100644 index 00000000000..3a0328b516c Binary files /dev/null and b/product_pricelist_simulation/static/description/icon.png differ diff --git a/product_pricelist_simulation/static/description/index.html b/product_pricelist_simulation/static/description/index.html new file mode 100644 index 00000000000..502bb35112b --- /dev/null +++ b/product_pricelist_simulation/static/description/index.html @@ -0,0 +1,464 @@ + + + + + +Product Pricelist Simulation + + + +
+

Product Pricelist Simulation

+ + +

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

+

This module extends the product pricelists feature to allow show price +for all pricelists from a product form view.

+

Table of contents

+ +
+

Usage

+

To use this module, you need to:

+
    +
  1. Go to product form view.
  2. +
  3. Click See Price per Pricelist button.
  4. +
  5. A new dialog will appear showing the prices for the current date and +quantity=1 for the current product.
  6. +
  7. You can modify the date to see the prices on that date (if you have +pricelists with specific intervals of time), or for other quantity +(if you have pricelists depending on the number).
  8. +
  9. If you have clicked from a product with variants, you will see by +default the prices for all the existing variants on each shown +pricelist, but you can select a specific variant in the field +“Product Variant” to filter out the rest of the variants except the +selected one.
  10. +
+
+
+

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

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

Contributors

+ +
+
+

Other credits

+

The migration of this module from 17.0 to 18.0 was financially supported +by:

+
    +
  • Camptocamp.
  • +
+
+
+

Maintainers

+

This module is maintained by the OCA.

+ +Odoo Community Association + +

OCA, or the Odoo Community Association, is a nonprofit organization whose +mission is to support the collaborative development of Odoo features and +promote its widespread use.

+

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_simulation/tests/__init__.py b/product_pricelist_simulation/tests/__init__.py new file mode 100644 index 00000000000..fdbc5f6c059 --- /dev/null +++ b/product_pricelist_simulation/tests/__init__.py @@ -0,0 +1,4 @@ +# Copyright 2017 Sergio Teruel +# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl). + +from . import test_product_pricelist_simulation diff --git a/product_pricelist_simulation/tests/test_product_pricelist_simulation.py b/product_pricelist_simulation/tests/test_product_pricelist_simulation.py new file mode 100644 index 00000000000..b74bd3cf911 --- /dev/null +++ b/product_pricelist_simulation/tests/test_product_pricelist_simulation.py @@ -0,0 +1,109 @@ +# Copyright 2017 Tecnativa - Sergio Teruel +# Copyright 2022 Tecnativa - Ernesto Tejeda +# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl). + +from odoo.tests import Form, common + + +class TestProductPricelistSimulation(common.TransactionCase): + @classmethod + def setUpClass(cls): + super().setUpClass() + cls.template_1 = cls.env["product.template"].create( + {"name": "Template 1", "list_price": 100.00} + ) + attr = cls.env["product.attribute"].create({"name": "Attr"}) + attr_value_1 = cls.env["product.attribute.value"].create( + {"name": "Value 1", "attribute_id": attr.id}, + ) + attr_value_2 = cls.env["product.attribute.value"].create( + {"name": "Value 2", "attribute_id": attr.id}, + ) + cls.template_2 = cls.env["product.template"].create( + { + "name": "Template 2", + "list_price": 1000.00, + "attribute_line_ids": [ + ( + 0, + 0, + { + "attribute_id": attr.id, + "value_ids": [(6, 0, [attr_value_1.id, attr_value_2.id])], + }, + ) + ], + } + ) + # uncheck 'show_in_simulation' in existing pricelist (just in case) + cls.env["product.pricelist"].search([]).show_in_simulation = False + cls.pricelist_1 = cls.env["product.pricelist"].create( + { + "name": "Pricelist 1", + "currency_id": cls.env.company.currency_id.id, + "item_ids": [ + ( + 0, + 0, + { + "applied_on": "3_global", + "compute_price": "fixed", + "fixed_price": 80.00, + }, + ) + ], + } + ) + cls.pricelist_2 = cls.env["product.pricelist"].create( + { + "name": "Pricelist 2", + "currency_id": cls.env.company.currency_id.id, + "item_ids": [ + ( + 0, + 0, + { + "applied_on": "3_global", + "compute_price": "percentage", + "percent_price": 50.00, + }, + ) + ], + } + ) + cls.pricelist_3 = cls.env["product.pricelist"].create( + { + "name": "Pricelist3", + "currency_id": cls.env.company.currency_id.id, + "show_in_simulation": False, + } + ) + + def test_pricelist_simulation_product_template(self): + # # Template 1 + wizard_form = Form( + self.env["wizard.preview.pricelist"].with_context( + active_model="product.template", active_id=self.template_1.id + ) + ) + self.assertAlmostEqual(wizard_form.line_ids._records[0]["price"], 80.0) + self.assertAlmostEqual(wizard_form.line_ids._records[1]["price"], 50.0) + # # Template 2 + wizard_form = Form( + self.env["wizard.preview.pricelist"].with_context( + active_model="product.template", + active_id=self.template_2.id, + ), + ) + prices = [r["price"] for r in wizard_form.line_ids._records] + self.assertEqual(prices, [80.0, 500.0, 80.0, 500.0]) + + def test_pricelist_simulation_product_variant(self): + wizard_form = Form( + self.env["wizard.preview.pricelist"].with_context( + active_model="product.product", + active_id=self.template_1.product_variant_ids.id, + ), + ) + self.assertAlmostEqual(wizard_form.line_ids._records[0]["price"], 80.0) + self.assertAlmostEqual(wizard_form.line_ids._records[1]["price"], 50.0) diff --git a/product_pricelist_simulation/views/pricelist_views.xml b/product_pricelist_simulation/views/pricelist_views.xml new file mode 100644 index 00000000000..e3917a1b7c1 --- /dev/null +++ b/product_pricelist_simulation/views/pricelist_views.xml @@ -0,0 +1,12 @@ + + + + product.pricelist + + + + + + + + diff --git a/product_pricelist_simulation/views/product_views.xml b/product_pricelist_simulation/views/product_views.xml new file mode 100644 index 00000000000..8e2fdefab10 --- /dev/null +++ b/product_pricelist_simulation/views/product_views.xml @@ -0,0 +1,18 @@ + + + + + product.template + + + +