diff --git a/product_supplierinfo_revision/README.rst b/product_supplierinfo_revision/README.rst new file mode 100644 index 00000000000..159d5122649 --- /dev/null +++ b/product_supplierinfo_revision/README.rst @@ -0,0 +1,113 @@ +.. image:: https://odoo-community.org/readme-banner-image + :target: https://odoo-community.org/get-involved?utm_source=readme + :alt: Odoo Community Association + +============================= +Product Supplierinfo Revision +============================= + +.. + !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! + !! This file is generated by oca-gen-addon-readme !! + !! changes will be overwritten. !! + !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! + !! source digest: sha256:4d6f209e77b88f844cac8a645dbb8f12d55ba8c16ac50908ad65a20e6d518b8c + !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! + +.. |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/license-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/19.0/product_supplierinfo_revision + :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-19-0/product-attribute-19-0-product_supplierinfo_revision + :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=19.0 + :alt: Try me on Runboat + +|badge1| |badge2| |badge3| |badge4| |badge5| + +This module allows create revisions of supplier info prices. + +**Table of contents** + +.. contents:: + :local: + +Usage +===== + +To use this module: + +1. If you are a purchase manager, and you have checked "Advanced + Pricelists" in the technical settings of your user, go to *Purchases + > Configuration > Vendor Pricelists* and select one or more supplier + pricelist. +2. Click on Action button and execute the wizard **Duplicate Supplier + Info**. +3. Enter date start from which new price will be valid. You can enter + date end and percent to increase old supplier pricelist. +4. By clicking on Apply button, a new supplier pricelist will be created + with a price increased accordingly to the percent entered. Old + supplier pricelist will have a date end from which pricelist will be + out of date. +5. You can check supplier pricelists as well as variation percent in the + product form, by clicking on *Purchase* tab. + +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 + +Contributors +------------ + +- Ruchir Shukla +- Dipen Shah +- Tony Galmiche +- Tecnativa (https://www.tecnativa.com) + + - Carlos Dauden + - Vicent Cubells + - João Marques + +Other credits +------------- + +The migration of this module from 18.0 to 19.0 was financially supported +by PLEDRA NETCOM S.R.L + +Maintainers +----------- + +This module is maintained by the OCA. + +.. image:: https://odoo-community.org/logo.png + :alt: Odoo Community Association + :target: https://odoo-community.org + +OCA, or the Odoo Community Association, is a nonprofit organization whose +mission is to support the collaborative development of Odoo features and +promote its widespread use. + +This module is part of the `OCA/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_supplierinfo_revision/__init__.py b/product_supplierinfo_revision/__init__.py new file mode 100644 index 00000000000..aee8895e7a3 --- /dev/null +++ b/product_supplierinfo_revision/__init__.py @@ -0,0 +1,2 @@ +from . import models +from . import wizards diff --git a/product_supplierinfo_revision/__manifest__.py b/product_supplierinfo_revision/__manifest__.py new file mode 100644 index 00000000000..932ec2fbe04 --- /dev/null +++ b/product_supplierinfo_revision/__manifest__.py @@ -0,0 +1,19 @@ +# Copyright 2017 Tecnativa - Carlos Dauden +# Copyright 2018 Tecnativa - Vicent Cubells +# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl). + +{ + "name": "Product Supplierinfo Revision", + "version": "19.0.1.0.0", + "category": "Product", + "website": "https://github.com/OCA/product-attribute", + "author": "Tecnativa, Odoo Community Association (OCA)", + "license": "AGPL-3", + "installable": True, + "depends": ["product"], + "data": [ + "security/ir.model.access.csv", + "views/product_supplierinfo_view.xml", + "wizards/supplierinfo_duplicate_wizard_view.xml", + ], +} diff --git a/product_supplierinfo_revision/i18n/ca.po b/product_supplierinfo_revision/i18n/ca.po new file mode 100644 index 00000000000..391eaf8c6a3 --- /dev/null +++ b/product_supplierinfo_revision/i18n/ca.po @@ -0,0 +1,132 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * product_supplierinfo_revision +# +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 13.0\n" +"Report-Msgid-Bugs-To: \n" +"PO-Revision-Date: 2021-02-25 15:45+0000\n" +"Last-Translator: claudiagn \n" +"Language-Team: none\n" +"Language: ca\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: \n" +"Plural-Forms: nplurals=2; plural=n != 1;\n" +"X-Generator: Weblate 4.3.2\n" + +#. module: product_supplierinfo_revision +#: model_terms:ir.ui.view,arch_db:product_supplierinfo_revision.supplierinfo_duplicate_wizard_view +msgid "Apply" +msgstr "Aplicar" + +#. module: product_supplierinfo_revision +#: model_terms:ir.ui.view,arch_db:product_supplierinfo_revision.supplierinfo_duplicate_wizard_view +msgid "Cancel" +msgstr "Cancelar" + +#. module: product_supplierinfo_revision +#: model:ir.model.fields,field_description:product_supplierinfo_revision.field_product_supplierinfo_duplicate_wizard__create_uid +msgid "Created by" +msgstr "Creat per" + +#. module: product_supplierinfo_revision +#: model:ir.model.fields,field_description:product_supplierinfo_revision.field_product_supplierinfo_duplicate_wizard__create_date +msgid "Created on" +msgstr "Creat el" + +#. module: product_supplierinfo_revision +#: model:ir.model.fields,field_description:product_supplierinfo_revision.field_product_supplierinfo_duplicate_wizard__date_end +msgid "Date End" +msgstr "Data final" + +#. module: product_supplierinfo_revision +#: model:ir.model.fields,field_description:product_supplierinfo_revision.field_product_supplierinfo_duplicate_wizard__date_start +msgid "Date Start" +msgstr "Data d'inici" + +#. module: product_supplierinfo_revision +#: model:ir.model.fields,field_description:product_supplierinfo_revision.field_product_supplierinfo_duplicate_wizard__display_name +msgid "Display Name" +msgstr "Nom visible" + +#. module: product_supplierinfo_revision +#: model:ir.actions.act_window,name:product_supplierinfo_revision.supplierinfo_duplicate_wizard_action +msgid "Duplicate Supplier Info" +msgstr "Informació del proveïdor duplicada" + +#. module: product_supplierinfo_revision +#: model:ir.model.fields,field_description:product_supplierinfo_revision.field_product_supplierinfo_duplicate_wizard__id +msgid "ID" +msgstr "ID" + +#. module: product_supplierinfo_revision +#: model:ir.model.fields,field_description:product_supplierinfo_revision.field_product_supplierinfo_duplicate_wizard__write_uid +msgid "Last Updated by" +msgstr "Darrera actualització per" + +#. module: product_supplierinfo_revision +#: model:ir.model.fields,field_description:product_supplierinfo_revision.field_product_supplierinfo_duplicate_wizard__write_date +msgid "Last Updated on" +msgstr "Darrera actualització el" + +#. module: product_supplierinfo_revision +#: model:ir.model.fields,field_description:product_supplierinfo_revision.field_product_customerinfo__previous_price +#: model:ir.model.fields,field_description:product_supplierinfo_revision.field_product_supplierinfo__previous_price +msgid "Previous Price" +msgstr "Preu anterior" + +#. module: product_supplierinfo_revision +#: model:ir.model.fields,field_description:product_supplierinfo_revision.field_product_customerinfo__previous_info_id +#: model:ir.model.fields,field_description:product_supplierinfo_revision.field_product_supplierinfo__previous_info_id +msgid "Previous info" +msgstr "Informació anterior" + +#. module: product_supplierinfo_revision +#: model:ir.model,name:product_supplierinfo_revision.model_product_supplierinfo_duplicate_wizard +msgid "Product Supplier Duplicate Wizard" +msgstr "Assistent per a duplicats de proveïdors de productes" + +#. module: product_supplierinfo_revision +#: model:ir.model.fields,help:product_supplierinfo_revision.field_product_customerinfo__previous_info_id +#: model:ir.model.fields,help:product_supplierinfo_revision.field_product_supplierinfo__previous_info_id +msgid "Relation with previous info when duplicate line" +msgstr "Assistent per a duplicats de proveïdors de productes" + +#. module: product_supplierinfo_revision +#: model_terms:ir.ui.view,arch_db:product_supplierinfo_revision.supplierinfo_duplicate_wizard_view +msgid "" +"Set new start date and variation percent to duplicate.\n" +" This process set start date previous day as end date of\n" +" origin record.\n" +"
\n" +"
" +msgstr "" +"Definiu la nova data d'inici i el percentatge de variació per duplicar.\n" +" Aquest procés estableix la data d'inici del dia anterior " +"com a data de finalització de\n" +" registre d’origen.\n" +"
\n" +"
" + +#. module: product_supplierinfo_revision +#: model:ir.model,name:product_supplierinfo_revision.model_product_supplierinfo +msgid "Supplier Pricelist" +msgstr "Llista de preus del proveïdor" + +#. module: product_supplierinfo_revision +#: model:ir.model.fields,help:product_supplierinfo_revision.field_product_customerinfo__previous_price +#: model:ir.model.fields,help:product_supplierinfo_revision.field_product_supplierinfo__previous_price +msgid "The price to purchase a product" +msgstr "El preu per comprar un producte" + +#. module: product_supplierinfo_revision +#: model:ir.model.fields,field_description:product_supplierinfo_revision.field_product_customerinfo__variation_percent +#: model:ir.model.fields,field_description:product_supplierinfo_revision.field_product_supplierinfo__variation_percent +#: model:ir.model.fields,field_description:product_supplierinfo_revision.field_product_supplierinfo_duplicate_wizard__variation_percent +msgid "Variation %" +msgstr "Variació %" + +#~ msgid "Last Modified on" +#~ msgstr "Darrera modificació el" diff --git a/product_supplierinfo_revision/i18n/es.po b/product_supplierinfo_revision/i18n/es.po new file mode 100644 index 00000000000..6c222aa7677 --- /dev/null +++ b/product_supplierinfo_revision/i18n/es.po @@ -0,0 +1,135 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * product_supplierinfo_revision +# +# Translators: +# OCA Transbot , 2017 +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 13.0c\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2017-11-03 15:37+0000\n" +"PO-Revision-Date: 2022-01-12 20:39+0000\n" +"Last-Translator: Carlos Dauden \n" +"Language-Team: Spanish (https://www.transifex.com/oca/teams/23907/es/)\n" +"Language: es\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: \n" +"Plural-Forms: nplurals=2; plural=n != 1;\n" +"X-Generator: Weblate 4.3.2\n" + +#. module: product_supplierinfo_revision +#: model_terms:ir.ui.view,arch_db:product_supplierinfo_revision.supplierinfo_duplicate_wizard_view +msgid "Apply" +msgstr "Aplicar" + +#. module: product_supplierinfo_revision +#: model_terms:ir.ui.view,arch_db:product_supplierinfo_revision.supplierinfo_duplicate_wizard_view +msgid "Cancel" +msgstr "Cancelar" + +#. module: product_supplierinfo_revision +#: model:ir.model.fields,field_description:product_supplierinfo_revision.field_product_supplierinfo_duplicate_wizard__create_uid +msgid "Created by" +msgstr "Creado por" + +#. module: product_supplierinfo_revision +#: model:ir.model.fields,field_description:product_supplierinfo_revision.field_product_supplierinfo_duplicate_wizard__create_date +msgid "Created on" +msgstr "Creado en" + +#. module: product_supplierinfo_revision +#: model:ir.model.fields,field_description:product_supplierinfo_revision.field_product_supplierinfo_duplicate_wizard__date_end +msgid "Date End" +msgstr "Fecha final" + +#. module: product_supplierinfo_revision +#: model:ir.model.fields,field_description:product_supplierinfo_revision.field_product_supplierinfo_duplicate_wizard__date_start +msgid "Date Start" +msgstr "Fecha inicio" + +#. module: product_supplierinfo_revision +#: model:ir.model.fields,field_description:product_supplierinfo_revision.field_product_supplierinfo_duplicate_wizard__display_name +msgid "Display Name" +msgstr "Nombre mostrado" + +#. module: product_supplierinfo_revision +#: model:ir.actions.act_window,name:product_supplierinfo_revision.supplierinfo_duplicate_wizard_action +msgid "Duplicate Supplier Info" +msgstr "Crear revisión de precio" + +#. module: product_supplierinfo_revision +#: model:ir.model.fields,field_description:product_supplierinfo_revision.field_product_supplierinfo_duplicate_wizard__id +msgid "ID" +msgstr "ID (identificación)" + +#. module: product_supplierinfo_revision +#: model:ir.model.fields,field_description:product_supplierinfo_revision.field_product_supplierinfo_duplicate_wizard__write_uid +msgid "Last Updated by" +msgstr "Última actualización de" + +#. module: product_supplierinfo_revision +#: model:ir.model.fields,field_description:product_supplierinfo_revision.field_product_supplierinfo_duplicate_wizard__write_date +msgid "Last Updated on" +msgstr "Última actualización en" + +#. module: product_supplierinfo_revision +#: model:ir.model.fields,field_description:product_supplierinfo_revision.field_product_customerinfo__previous_price +#: model:ir.model.fields,field_description:product_supplierinfo_revision.field_product_supplierinfo__previous_price +msgid "Previous Price" +msgstr "Precio anterior" + +#. module: product_supplierinfo_revision +#: model:ir.model.fields,field_description:product_supplierinfo_revision.field_product_customerinfo__previous_info_id +#: model:ir.model.fields,field_description:product_supplierinfo_revision.field_product_supplierinfo__previous_info_id +msgid "Previous info" +msgstr "Información anterior" + +#. module: product_supplierinfo_revision +#: model:ir.model,name:product_supplierinfo_revision.model_product_supplierinfo_duplicate_wizard +msgid "Product Supplier Duplicate Wizard" +msgstr "Asistente para duplicados de proveedores de productos" + +#. module: product_supplierinfo_revision +#: model:ir.model.fields,help:product_supplierinfo_revision.field_product_customerinfo__previous_info_id +#: model:ir.model.fields,help:product_supplierinfo_revision.field_product_supplierinfo__previous_info_id +msgid "Relation with previous info when duplicate line" +msgstr "Relación con la información anterior cuando se duplica la línea" + +#. module: product_supplierinfo_revision +#: model_terms:ir.ui.view,arch_db:product_supplierinfo_revision.supplierinfo_duplicate_wizard_view +msgid "" +"Set new start date and variation percent to duplicate.\n" +" This process set start date previous day as end date of\n" +" origin record.\n" +"
\n" +"
" +msgstr "" +"Establece nueva fecha de inicio y porcentaje de variación para duplicar.\n" +" Este proceso establecerá como fecha final el día previo " +"a la fecha final en\n" +" el registro original.\n" +"
\n" +"
" + +#. module: product_supplierinfo_revision +#: model:ir.model,name:product_supplierinfo_revision.model_product_supplierinfo +msgid "Supplier Pricelist" +msgstr "Tarifa de proveedor" + +#. module: product_supplierinfo_revision +#: model:ir.model.fields,help:product_supplierinfo_revision.field_product_customerinfo__previous_price +#: model:ir.model.fields,help:product_supplierinfo_revision.field_product_supplierinfo__previous_price +msgid "The price to purchase a product" +msgstr "El precio al que se compra un producto" + +#. module: product_supplierinfo_revision +#: model:ir.model.fields,field_description:product_supplierinfo_revision.field_product_customerinfo__variation_percent +#: model:ir.model.fields,field_description:product_supplierinfo_revision.field_product_supplierinfo__variation_percent +#: model:ir.model.fields,field_description:product_supplierinfo_revision.field_product_supplierinfo_duplicate_wizard__variation_percent +msgid "Variation %" +msgstr "Variación %" + +#~ msgid "Last Modified on" +#~ msgstr "Última modificación en" diff --git a/product_supplierinfo_revision/i18n/fr.po b/product_supplierinfo_revision/i18n/fr.po new file mode 100644 index 00000000000..85c49d09885 --- /dev/null +++ b/product_supplierinfo_revision/i18n/fr.po @@ -0,0 +1,128 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * product_supplierinfo_revision +# +# Translators: +# leemannd , 2017 +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 13.0c\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2017-11-03 15:37+0000\n" +"PO-Revision-Date: 2017-11-03 15:37+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_supplierinfo_revision +#: model_terms:ir.ui.view,arch_db:product_supplierinfo_revision.supplierinfo_duplicate_wizard_view +msgid "Apply" +msgstr "" + +#. module: product_supplierinfo_revision +#: model_terms:ir.ui.view,arch_db:product_supplierinfo_revision.supplierinfo_duplicate_wizard_view +msgid "Cancel" +msgstr "" + +#. module: product_supplierinfo_revision +#: model:ir.model.fields,field_description:product_supplierinfo_revision.field_product_supplierinfo_duplicate_wizard__create_uid +msgid "Created by" +msgstr "Créé par" + +#. module: product_supplierinfo_revision +#: model:ir.model.fields,field_description:product_supplierinfo_revision.field_product_supplierinfo_duplicate_wizard__create_date +msgid "Created on" +msgstr "" + +#. module: product_supplierinfo_revision +#: model:ir.model.fields,field_description:product_supplierinfo_revision.field_product_supplierinfo_duplicate_wizard__date_end +msgid "Date End" +msgstr "" + +#. module: product_supplierinfo_revision +#: model:ir.model.fields,field_description:product_supplierinfo_revision.field_product_supplierinfo_duplicate_wizard__date_start +msgid "Date Start" +msgstr "" + +#. module: product_supplierinfo_revision +#: model:ir.model.fields,field_description:product_supplierinfo_revision.field_product_supplierinfo_duplicate_wizard__display_name +msgid "Display Name" +msgstr "Nom d'affichage" + +#. module: product_supplierinfo_revision +#: model:ir.actions.act_window,name:product_supplierinfo_revision.supplierinfo_duplicate_wizard_action +msgid "Duplicate Supplier Info" +msgstr "" + +#. module: product_supplierinfo_revision +#: model:ir.model.fields,field_description:product_supplierinfo_revision.field_product_supplierinfo_duplicate_wizard__id +msgid "ID" +msgstr "" + +#. module: product_supplierinfo_revision +#: model:ir.model.fields,field_description:product_supplierinfo_revision.field_product_supplierinfo_duplicate_wizard__write_uid +msgid "Last Updated by" +msgstr "Dernière modification par" + +#. module: product_supplierinfo_revision +#: model:ir.model.fields,field_description:product_supplierinfo_revision.field_product_supplierinfo_duplicate_wizard__write_date +msgid "Last Updated on" +msgstr "" + +#. module: product_supplierinfo_revision +#: model:ir.model.fields,field_description:product_supplierinfo_revision.field_product_customerinfo__previous_price +#: model:ir.model.fields,field_description:product_supplierinfo_revision.field_product_supplierinfo__previous_price +msgid "Previous Price" +msgstr "" + +#. module: product_supplierinfo_revision +#: model:ir.model.fields,field_description:product_supplierinfo_revision.field_product_customerinfo__previous_info_id +#: model:ir.model.fields,field_description:product_supplierinfo_revision.field_product_supplierinfo__previous_info_id +msgid "Previous info" +msgstr "" + +#. module: product_supplierinfo_revision +#: model:ir.model,name:product_supplierinfo_revision.model_product_supplierinfo_duplicate_wizard +msgid "Product Supplier Duplicate Wizard" +msgstr "" + +#. module: product_supplierinfo_revision +#: model:ir.model.fields,help:product_supplierinfo_revision.field_product_customerinfo__previous_info_id +#: model:ir.model.fields,help:product_supplierinfo_revision.field_product_supplierinfo__previous_info_id +msgid "Relation with previous info when duplicate line" +msgstr "" + +#. module: product_supplierinfo_revision +#: model_terms:ir.ui.view,arch_db:product_supplierinfo_revision.supplierinfo_duplicate_wizard_view +msgid "" +"Set new start date and variation percent to duplicate.\n" +" This process set start date previous day as end date of\n" +" origin record.\n" +"
\n" +"
" +msgstr "" + +#. module: product_supplierinfo_revision +#: model:ir.model,name:product_supplierinfo_revision.model_product_supplierinfo +msgid "Supplier Pricelist" +msgstr "" + +#. module: product_supplierinfo_revision +#: model:ir.model.fields,help:product_supplierinfo_revision.field_product_customerinfo__previous_price +#: model:ir.model.fields,help:product_supplierinfo_revision.field_product_supplierinfo__previous_price +msgid "The price to purchase a product" +msgstr "" + +#. module: product_supplierinfo_revision +#: model:ir.model.fields,field_description:product_supplierinfo_revision.field_product_customerinfo__variation_percent +#: model:ir.model.fields,field_description:product_supplierinfo_revision.field_product_supplierinfo__variation_percent +#: model:ir.model.fields,field_description:product_supplierinfo_revision.field_product_supplierinfo_duplicate_wizard__variation_percent +msgid "Variation %" +msgstr "" + +#~ msgid "Last Modified on" +#~ msgstr "Dernière modification le" diff --git a/product_supplierinfo_revision/i18n/it.po b/product_supplierinfo_revision/i18n/it.po new file mode 100644 index 00000000000..fb35fa9c904 --- /dev/null +++ b/product_supplierinfo_revision/i18n/it.po @@ -0,0 +1,132 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * product_supplierinfo_revision +# +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 16.0\n" +"Report-Msgid-Bugs-To: \n" +"PO-Revision-Date: 2023-10-29 15:40+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_supplierinfo_revision +#: model_terms:ir.ui.view,arch_db:product_supplierinfo_revision.supplierinfo_duplicate_wizard_view +msgid "Apply" +msgstr "Applica" + +#. module: product_supplierinfo_revision +#: model_terms:ir.ui.view,arch_db:product_supplierinfo_revision.supplierinfo_duplicate_wizard_view +msgid "Cancel" +msgstr "Annulla" + +#. module: product_supplierinfo_revision +#: model:ir.model.fields,field_description:product_supplierinfo_revision.field_product_supplierinfo_duplicate_wizard__create_uid +msgid "Created by" +msgstr "Creato da" + +#. module: product_supplierinfo_revision +#: model:ir.model.fields,field_description:product_supplierinfo_revision.field_product_supplierinfo_duplicate_wizard__create_date +msgid "Created on" +msgstr "Creato il" + +#. module: product_supplierinfo_revision +#: model:ir.model.fields,field_description:product_supplierinfo_revision.field_product_supplierinfo_duplicate_wizard__date_end +msgid "Date End" +msgstr "Data fine" + +#. module: product_supplierinfo_revision +#: model:ir.model.fields,field_description:product_supplierinfo_revision.field_product_supplierinfo_duplicate_wizard__date_start +msgid "Date Start" +msgstr "Data inizio" + +#. module: product_supplierinfo_revision +#: model:ir.model.fields,field_description:product_supplierinfo_revision.field_product_supplierinfo_duplicate_wizard__display_name +msgid "Display Name" +msgstr "Nome visualizzato" + +#. module: product_supplierinfo_revision +#: model:ir.actions.act_window,name:product_supplierinfo_revision.supplierinfo_duplicate_wizard_action +msgid "Duplicate Supplier Info" +msgstr "Duplica informazioni fornitore" + +#. module: product_supplierinfo_revision +#: model:ir.model.fields,field_description:product_supplierinfo_revision.field_product_supplierinfo_duplicate_wizard__id +msgid "ID" +msgstr "ID" + +#. module: product_supplierinfo_revision +#: model:ir.model.fields,field_description:product_supplierinfo_revision.field_product_supplierinfo_duplicate_wizard__write_uid +msgid "Last Updated by" +msgstr "Ultimo aggiornamento di" + +#. module: product_supplierinfo_revision +#: model:ir.model.fields,field_description:product_supplierinfo_revision.field_product_supplierinfo_duplicate_wizard__write_date +msgid "Last Updated on" +msgstr "Ultimo aggiornamento il" + +#. module: product_supplierinfo_revision +#: model:ir.model.fields,field_description:product_supplierinfo_revision.field_product_customerinfo__previous_price +#: model:ir.model.fields,field_description:product_supplierinfo_revision.field_product_supplierinfo__previous_price +msgid "Previous Price" +msgstr "Prezzo precedente" + +#. module: product_supplierinfo_revision +#: model:ir.model.fields,field_description:product_supplierinfo_revision.field_product_customerinfo__previous_info_id +#: model:ir.model.fields,field_description:product_supplierinfo_revision.field_product_supplierinfo__previous_info_id +msgid "Previous info" +msgstr "Informazioni precedenti" + +#. module: product_supplierinfo_revision +#: model:ir.model,name:product_supplierinfo_revision.model_product_supplierinfo_duplicate_wizard +msgid "Product Supplier Duplicate Wizard" +msgstr "Procedura guidata duplicazione fornitore prodotto" + +#. module: product_supplierinfo_revision +#: model:ir.model.fields,help:product_supplierinfo_revision.field_product_customerinfo__previous_info_id +#: model:ir.model.fields,help:product_supplierinfo_revision.field_product_supplierinfo__previous_info_id +msgid "Relation with previous info when duplicate line" +msgstr "Relazione con le informazioni precedenti quando si duplica la riga" + +#. module: product_supplierinfo_revision +#: model_terms:ir.ui.view,arch_db:product_supplierinfo_revision.supplierinfo_duplicate_wizard_view +msgid "" +"Set new start date and variation percent to duplicate.\n" +" This process set start date previous day as end date of\n" +" origin record.\n" +"
\n" +"
" +msgstr "" +"Imposta nuova data inizio e percentuale variazione da duplicare.\n" +" Questo processo imposta il giorno precedente la data " +"inizio come data fine del \n" +" record origine.\n" +"
\n" +"
" + +#. module: product_supplierinfo_revision +#: model:ir.model,name:product_supplierinfo_revision.model_product_supplierinfo +msgid "Supplier Pricelist" +msgstr "Listino prezzi fornitore" + +#. module: product_supplierinfo_revision +#: model:ir.model.fields,help:product_supplierinfo_revision.field_product_customerinfo__previous_price +#: model:ir.model.fields,help:product_supplierinfo_revision.field_product_supplierinfo__previous_price +msgid "The price to purchase a product" +msgstr "Prezzo di acquisto di un prodotto" + +#. module: product_supplierinfo_revision +#: model:ir.model.fields,field_description:product_supplierinfo_revision.field_product_customerinfo__variation_percent +#: model:ir.model.fields,field_description:product_supplierinfo_revision.field_product_supplierinfo__variation_percent +#: model:ir.model.fields,field_description:product_supplierinfo_revision.field_product_supplierinfo_duplicate_wizard__variation_percent +msgid "Variation %" +msgstr "Variazione %" + +#~ msgid "Last Modified on" +#~ msgstr "Ultima modifica il" diff --git a/product_supplierinfo_revision/i18n/product_supplierinfo_revision.pot b/product_supplierinfo_revision/i18n/product_supplierinfo_revision.pot new file mode 100644 index 00000000000..e2deb60f423 --- /dev/null +++ b/product_supplierinfo_revision/i18n/product_supplierinfo_revision.pot @@ -0,0 +1,120 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * product_supplierinfo_revision +# +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 18.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_supplierinfo_revision +#: model_terms:ir.ui.view,arch_db:product_supplierinfo_revision.supplierinfo_duplicate_wizard_view +msgid "Apply" +msgstr "" + +#. module: product_supplierinfo_revision +#: model_terms:ir.ui.view,arch_db:product_supplierinfo_revision.supplierinfo_duplicate_wizard_view +msgid "Cancel" +msgstr "" + +#. module: product_supplierinfo_revision +#: model:ir.model.fields,field_description:product_supplierinfo_revision.field_product_supplierinfo_duplicate_wizard__create_uid +msgid "Created by" +msgstr "" + +#. module: product_supplierinfo_revision +#: model:ir.model.fields,field_description:product_supplierinfo_revision.field_product_supplierinfo_duplicate_wizard__create_date +msgid "Created on" +msgstr "" + +#. module: product_supplierinfo_revision +#: model:ir.model.fields,field_description:product_supplierinfo_revision.field_product_supplierinfo_duplicate_wizard__date_end +msgid "Date End" +msgstr "" + +#. module: product_supplierinfo_revision +#: model:ir.model.fields,field_description:product_supplierinfo_revision.field_product_supplierinfo_duplicate_wizard__date_start +msgid "Date Start" +msgstr "" + +#. module: product_supplierinfo_revision +#: model:ir.model.fields,field_description:product_supplierinfo_revision.field_product_supplierinfo_duplicate_wizard__display_name +msgid "Display Name" +msgstr "" + +#. module: product_supplierinfo_revision +#: model:ir.actions.act_window,name:product_supplierinfo_revision.supplierinfo_duplicate_wizard_action +msgid "Duplicate Supplier Info" +msgstr "" + +#. module: product_supplierinfo_revision +#: model:ir.model.fields,field_description:product_supplierinfo_revision.field_product_supplierinfo_duplicate_wizard__id +msgid "ID" +msgstr "" + +#. module: product_supplierinfo_revision +#: model:ir.model.fields,field_description:product_supplierinfo_revision.field_product_supplierinfo_duplicate_wizard__write_uid +msgid "Last Updated by" +msgstr "" + +#. module: product_supplierinfo_revision +#: model:ir.model.fields,field_description:product_supplierinfo_revision.field_product_supplierinfo_duplicate_wizard__write_date +msgid "Last Updated on" +msgstr "" + +#. module: product_supplierinfo_revision +#: model:ir.model.fields,field_description:product_supplierinfo_revision.field_product_customerinfo__previous_price +#: model:ir.model.fields,field_description:product_supplierinfo_revision.field_product_supplierinfo__previous_price +msgid "Previous Price" +msgstr "" + +#. module: product_supplierinfo_revision +#: model:ir.model.fields,field_description:product_supplierinfo_revision.field_product_customerinfo__previous_info_id +#: model:ir.model.fields,field_description:product_supplierinfo_revision.field_product_supplierinfo__previous_info_id +msgid "Previous info" +msgstr "" + +#. module: product_supplierinfo_revision +#: model:ir.model,name:product_supplierinfo_revision.model_product_supplierinfo_duplicate_wizard +msgid "Product Supplier Duplicate Wizard" +msgstr "" + +#. module: product_supplierinfo_revision +#: model:ir.model.fields,help:product_supplierinfo_revision.field_product_customerinfo__previous_info_id +#: model:ir.model.fields,help:product_supplierinfo_revision.field_product_supplierinfo__previous_info_id +msgid "Relation with previous info when duplicate line" +msgstr "" + +#. module: product_supplierinfo_revision +#: model_terms:ir.ui.view,arch_db:product_supplierinfo_revision.supplierinfo_duplicate_wizard_view +msgid "" +"Set new start date and variation percent to duplicate.\n" +" This process set start date previous day as end date of\n" +" origin record.\n" +"
\n" +"
" +msgstr "" + +#. module: product_supplierinfo_revision +#: model:ir.model,name:product_supplierinfo_revision.model_product_supplierinfo +msgid "Supplier Pricelist" +msgstr "" + +#. module: product_supplierinfo_revision +#: model:ir.model.fields,help:product_supplierinfo_revision.field_product_customerinfo__previous_price +#: model:ir.model.fields,help:product_supplierinfo_revision.field_product_supplierinfo__previous_price +msgid "The price to purchase a product" +msgstr "" + +#. module: product_supplierinfo_revision +#: model:ir.model.fields,field_description:product_supplierinfo_revision.field_product_customerinfo__variation_percent +#: model:ir.model.fields,field_description:product_supplierinfo_revision.field_product_supplierinfo__variation_percent +#: model:ir.model.fields,field_description:product_supplierinfo_revision.field_product_supplierinfo_duplicate_wizard__variation_percent +msgid "Variation %" +msgstr "" diff --git a/product_supplierinfo_revision/models/__init__.py b/product_supplierinfo_revision/models/__init__.py new file mode 100644 index 00000000000..6619bd58f5f --- /dev/null +++ b/product_supplierinfo_revision/models/__init__.py @@ -0,0 +1 @@ +from . import product_supplierinfo diff --git a/product_supplierinfo_revision/models/product_supplierinfo.py b/product_supplierinfo_revision/models/product_supplierinfo.py new file mode 100644 index 00000000000..05464f7bcda --- /dev/null +++ b/product_supplierinfo_revision/models/product_supplierinfo.py @@ -0,0 +1,32 @@ +# Copyright 2017 Tecnativa - Carlos Dauden +# Copyright 2020 Tecnativa - João Marques +# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl). + +from odoo import api, fields, models + + +class ProductSupplierinfo(models.Model): + _inherit = "product.supplierinfo" + + previous_info_id = fields.Many2one( + comodel_name="product.supplierinfo", + string="Previous info", + help="Relation with previous info when duplicate line", + ) + previous_price = fields.Float( + related="previous_info_id.price", string="Previous Price" + ) + variation_percent = fields.Float( + compute="_compute_variation_percent", + store=True, + digits="Product Price", + string="Variation %", + ) + + @api.depends("price", "previous_info_id.price") + def _compute_variation_percent(self): + for line in self: + if not (line.price and line.previous_price): + line.variation_percent = 0.0 + else: + line.variation_percent = (line.price / line.previous_price - 1) * 100 diff --git a/product_supplierinfo_revision/pyproject.toml b/product_supplierinfo_revision/pyproject.toml new file mode 100644 index 00000000000..4231d0cccb3 --- /dev/null +++ b/product_supplierinfo_revision/pyproject.toml @@ -0,0 +1,3 @@ +[build-system] +requires = ["whool"] +build-backend = "whool.buildapi" diff --git a/product_supplierinfo_revision/readme/CONTRIBUTORS.md b/product_supplierinfo_revision/readme/CONTRIBUTORS.md new file mode 100644 index 00000000000..7a4c8145c52 --- /dev/null +++ b/product_supplierinfo_revision/readme/CONTRIBUTORS.md @@ -0,0 +1,7 @@ +- Ruchir Shukla \<\> +- Dipen Shah \<\> +- Tony Galmiche \<\> +- Tecnativa () + - Carlos Dauden + - Vicent Cubells + - João Marques diff --git a/product_supplierinfo_revision/readme/CREDITS.md b/product_supplierinfo_revision/readme/CREDITS.md new file mode 100644 index 00000000000..d1fe200da03 --- /dev/null +++ b/product_supplierinfo_revision/readme/CREDITS.md @@ -0,0 +1 @@ +The migration of this module from 18.0 to 19.0 was financially supported by PLEDRA NETCOM S.R.L diff --git a/product_supplierinfo_revision/readme/DESCRIPTION.md b/product_supplierinfo_revision/readme/DESCRIPTION.md new file mode 100644 index 00000000000..acd88590508 --- /dev/null +++ b/product_supplierinfo_revision/readme/DESCRIPTION.md @@ -0,0 +1 @@ +This module allows create revisions of supplier info prices. diff --git a/product_supplierinfo_revision/readme/USAGE.md b/product_supplierinfo_revision/readme/USAGE.md new file mode 100644 index 00000000000..e8491830521 --- /dev/null +++ b/product_supplierinfo_revision/readme/USAGE.md @@ -0,0 +1,16 @@ +To use this module: + +1. If you are a purchase manager, and you have checked "Advanced + Pricelists" in the technical settings of your user, go to *Purchases + \> Configuration \> Vendor Pricelists* and select one or more + supplier pricelist. +2. Click on Action button and execute the wizard **Duplicate Supplier + Info**. +3. Enter date start from which new price will be valid. You can enter + date end and percent to increase old supplier pricelist. +4. By clicking on Apply button, a new supplier pricelist will be + created with a price increased accordingly to the percent entered. + Old supplier pricelist will have a date end from which pricelist + will be out of date. +5. You can check supplier pricelists as well as variation percent in + the product form, by clicking on *Purchase* tab. diff --git a/product_supplierinfo_revision/security/ir.model.access.csv b/product_supplierinfo_revision/security/ir.model.access.csv new file mode 100644 index 00000000000..161ad53c71d --- /dev/null +++ b/product_supplierinfo_revision/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_product_supplierinfo_duplicate_wizard","access_product_supplierinfo_duplicate_wizard","model_product_supplierinfo_duplicate_wizard","base.group_user",1,1,1,1 diff --git a/product_supplierinfo_revision/static/description/icon.png b/product_supplierinfo_revision/static/description/icon.png new file mode 100644 index 00000000000..3a0328b516c Binary files /dev/null and b/product_supplierinfo_revision/static/description/icon.png differ diff --git a/product_supplierinfo_revision/static/description/index.html b/product_supplierinfo_revision/static/description/index.html new file mode 100644 index 00000000000..7655fd0cfa9 --- /dev/null +++ b/product_supplierinfo_revision/static/description/index.html @@ -0,0 +1,464 @@ + + + + + +README.rst + + + +
+ + + +Odoo Community Association + +
+

Product Supplierinfo Revision

+ +

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

+

This module allows create revisions of supplier info prices.

+

Table of contents

+ +
+

Usage

+

To use this module:

+
    +
  1. If you are a purchase manager, and you have checked “Advanced +Pricelists” in the technical settings of your user, go to Purchases +> Configuration > Vendor Pricelists and select one or more supplier +pricelist.
  2. +
  3. Click on Action button and execute the wizard Duplicate Supplier +Info.
  4. +
  5. Enter date start from which new price will be valid. You can enter +date end and percent to increase old supplier pricelist.
  6. +
  7. By clicking on Apply button, a new supplier pricelist will be created +with a price increased accordingly to the percent entered. Old +supplier pricelist will have a date end from which pricelist will be +out of date.
  8. +
  9. You can check supplier pricelists as well as variation percent in the +product form, by clicking on Purchase tab.
  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

+
    +
  • Tecnativa
  • +
+
+
+

Contributors

+ +
+
+

Other credits

+

The migration of this module from 18.0 to 19.0 was financially supported +by PLEDRA NETCOM S.R.L

+
+
+

Maintainers

+

This module is maintained by the OCA.

+ +Odoo Community Association + +

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

+

This module is part of the OCA/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_supplierinfo_revision/tests/__init__.py b/product_supplierinfo_revision/tests/__init__.py new file mode 100644 index 00000000000..6df1c2c4904 --- /dev/null +++ b/product_supplierinfo_revision/tests/__init__.py @@ -0,0 +1,4 @@ +# Copyright 2016 Sergio Teruel +# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl). + +from . import test_product_supplierinfo_revision diff --git a/product_supplierinfo_revision/tests/test_product_supplierinfo_revision.py b/product_supplierinfo_revision/tests/test_product_supplierinfo_revision.py new file mode 100644 index 00000000000..d317c1f8e46 --- /dev/null +++ b/product_supplierinfo_revision/tests/test_product_supplierinfo_revision.py @@ -0,0 +1,54 @@ +# Copyright 2016 Tecnativa - Sergio Teruel +# Copyright 2018 Tecnativa - Vicent Cubells +# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl). + +from datetime import datetime + +from dateutil.relativedelta import relativedelta + +from odoo.tests import common, tagged + + +@tagged("post_install", "-at_install") +class TestProductSupplierinfoRevision(common.TransactionCase): + @classmethod + def setUpClass(cls): + super().setUpClass() + cls.vendor = cls.env["res.partner"].create({"name": "Suplier test"}) + cls.today = datetime.today() + cls.product_template = cls.env["product.template"].create( + { + "name": "Test Product", + "standard_price": 50.0, + } + ) + cls.supplierinfo = cls.env["product.supplierinfo"].create( + { + "partner_id": cls.vendor.id, + "price": 100.0, + "product_tmpl_id": cls.product_template.id, + } + ) + + def test_product_supplierinfo_revision(self): + # run wizard + wizard = self.env["product.supplierinfo.duplicate.wizard"].create( + { + "date_start": self.today + relativedelta(days=1), + "variation_percent": 25.0, + } + ) + result = wizard.with_context(active_ids=self.supplierinfo.ids).action_apply() + self.assertEqual(result["res_model"], "product.supplierinfo") + new_supplierinfo = self.env["product.supplierinfo"].browse( + result["domain"][0][2][0] + ) + self.assertEqual( + self.supplierinfo.date_end.strftime("%Y-%m-%d"), + self.today.strftime("%Y-%m-%d"), + ) + self.assertEqual( + new_supplierinfo.date_start.strftime("%Y-%m-%d"), + (self.today + relativedelta(days=1)).strftime("%Y-%m-%d"), + ) + self.assertAlmostEqual(new_supplierinfo.price, 125.0) diff --git a/product_supplierinfo_revision/views/product_supplierinfo_view.xml b/product_supplierinfo_revision/views/product_supplierinfo_view.xml new file mode 100644 index 00000000000..16697a8b4ce --- /dev/null +++ b/product_supplierinfo_revision/views/product_supplierinfo_view.xml @@ -0,0 +1,13 @@ + + + + product.supplierinfo.list.view.variation + product.supplierinfo + + + + + + + + diff --git a/product_supplierinfo_revision/wizards/__init__.py b/product_supplierinfo_revision/wizards/__init__.py new file mode 100644 index 00000000000..454aa097075 --- /dev/null +++ b/product_supplierinfo_revision/wizards/__init__.py @@ -0,0 +1 @@ +from . import supplierinfo_duplicate_wizard diff --git a/product_supplierinfo_revision/wizards/supplierinfo_duplicate_wizard.py b/product_supplierinfo_revision/wizards/supplierinfo_duplicate_wizard.py new file mode 100644 index 00000000000..dd52f1d9d24 --- /dev/null +++ b/product_supplierinfo_revision/wizards/supplierinfo_duplicate_wizard.py @@ -0,0 +1,44 @@ +# Copyright 2017 Tecnativa - Carlos Dauden +# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl). + +from dateutil.relativedelta import relativedelta + +from odoo import fields, models + + +class ProductSupplierInfoDuplicateWizard(models.TransientModel): + _name = "product.supplierinfo.duplicate.wizard" + _description = "Product Supplier Duplicate Wizard" + + date_start = fields.Date(required=True) + date_end = fields.Date() + variation_percent = fields.Float( + digits="Product Price", + string="Variation %", + ) + + def action_apply(self): + Supplierinfo = self.env["product.supplierinfo"] + new_ids = list() + for item in Supplierinfo.browse(self.env.context.get("active_ids")): + new_ids.append( + item.copy( + { + "date_start": self.date_start, + "date_end": self.date_end, + "previous_info_id": item.id, + "price": item.price * (1.0 + self.variation_percent / 100.0), + } + ).id + ) + item.date_end = fields.Date.from_string(self.date_start) - relativedelta( + days=1 + ) + action = self.env["ir.actions.actions"]._for_xml_id( + "product.product_supplierinfo_type_action" + ) + if len(new_ids) > 0: + action["domain"] = [("id", "in", new_ids)] + else: # pragma: no cover + action = {"type": "ir.actions.act_window_close"} + return action diff --git a/product_supplierinfo_revision/wizards/supplierinfo_duplicate_wizard_view.xml b/product_supplierinfo_revision/wizards/supplierinfo_duplicate_wizard_view.xml new file mode 100644 index 00000000000..0a8b3664d53 --- /dev/null +++ b/product_supplierinfo_revision/wizards/supplierinfo_duplicate_wizard_view.xml @@ -0,0 +1,41 @@ + + + + Supplierinfo Duplicate + product.supplierinfo.duplicate.wizard + +
+
+ Set new start date and variation percent to duplicate. + This process set start date previous day as end date of + origin record. +
+
+
+ + + + + + + +
+
+
+
+
+ + Duplicate Supplier Info + + form + product.supplierinfo.duplicate.wizard + new + +