diff --git a/README.md b/README.md index 2e9601740..31637e157 100644 --- a/README.md +++ b/README.md @@ -26,6 +26,7 @@ addon | version | maintainers | summary [commission_formula](commission_formula/) | 17.0.1.0.0 | | Commissions computed by formulas [hr_commission](hr_commission/) | 17.0.1.0.0 | | HR commissions [sale_commission](sale_commission/) | 17.0.1.0.0 | [![pedrobaeza](https://github.com/pedrobaeza.png?size=30px)](https://github.com/pedrobaeza) | Sales commissions +[sale_commission_pricelist](sale_commission_pricelist/) | 17.0.1.0.0 | | Sales commissions by pricelist [sale_commission_salesman](sale_commission_salesman/) | 17.0.1.0.1 | | Sales commissions from salesman [//]: # (end addons) diff --git a/sale_commission_pricelist/README.rst b/sale_commission_pricelist/README.rst new file mode 100644 index 000000000..b2756266e --- /dev/null +++ b/sale_commission_pricelist/README.rst @@ -0,0 +1,106 @@ +============================== +Sales commissions by pricelist +============================== + +.. + !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! + !! This file is generated by oca-gen-addon-readme !! + !! changes will be overwritten. !! + !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! + !! source digest: sha256:f82c68b4342d5e5a6309c07da784ed2ff004bae90c9a9a9d157f9786d0a2caf8 + !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! + +.. |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%2Fcommission-lightgray.png?logo=github + :target: https://github.com/OCA/commission/tree/17.0/sale_commission_pricelist + :alt: OCA/commission +.. |badge4| image:: https://img.shields.io/badge/weblate-Translate%20me-F47D42.png + :target: https://translation.odoo-community.org/projects/commission-17-0/commission-17-0-sale_commission_pricelist + :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/commission&target_branch=17.0 + :alt: Try me on Runboat + +|badge1| |badge2| |badge3| |badge4| |badge5| + +This module extends the functionality of sale_commission to allow you +set a commission to pricelist item. + +The commission is applied when the pricelist rule is applied, that is +after changing product or quantity of sale order line. + +**Table of contents** + +.. contents:: + :local: + +Usage +===== + +To use this module, you need to: + +1. Go to Sales -> Configuration -> Settings -> Pricing -> Sale Price, + activate: "Multiple Sales Prices per Product" and select *Prices + computed from formulas (discounts, margins, roundings)* +2. Go to Sales -> Products -> Pricelists and edit an existing one or + create a new one +3. In the pricelist -> add a new item or open a new one +4. You will find the field commission in the pricelist item + +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 +* ArcheTI + +Contributors +------------ + +- `Tecnativa `__: + + - Carlos Dauden + - Ernesto Tejeda + +- Lorenzo Battistini +- `NextERP Romania `__: + + - Fekete Mihai + +- `ArcheTI `__: + + - Cécile Jallais + +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/commission `_ project on GitHub. + +You are welcome to contribute. To learn how please visit https://odoo-community.org/page/Contribute. diff --git a/sale_commission_pricelist/__init__.py b/sale_commission_pricelist/__init__.py new file mode 100644 index 000000000..0650744f6 --- /dev/null +++ b/sale_commission_pricelist/__init__.py @@ -0,0 +1 @@ +from . import models diff --git a/sale_commission_pricelist/__manifest__.py b/sale_commission_pricelist/__manifest__.py new file mode 100644 index 000000000..15974d591 --- /dev/null +++ b/sale_commission_pricelist/__manifest__.py @@ -0,0 +1,14 @@ +# Copyright 2018 Carlos Dauden - Tecnativa +# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl). + +{ + "name": "Sales commissions by pricelist", + "version": "17.0.1.0.0", + "author": "Tecnativa, " "Odoo Community Association (OCA), " "ArcheTI", + "category": "Sales Management", + "website": "https://github.com/OCA/commission", + "license": "AGPL-3", + "depends": ["sale_commission"], + "data": ["views/product_pricelist_view.xml"], + "installable": True, +} diff --git a/sale_commission_pricelist/i18n/de.po b/sale_commission_pricelist/i18n/de.po new file mode 100644 index 000000000..080a98723 --- /dev/null +++ b/sale_commission_pricelist/i18n/de.po @@ -0,0 +1,51 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * sale_commission_pricelist +# +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 11.0\n" +"Report-Msgid-Bugs-To: \n" +"PO-Revision-Date: 2018-09-21 11:29+0000\n" +"Last-Translator: Rudolf Schnapka \n" +"Language-Team: none\n" +"Language: de\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: \n" +"Plural-Forms: nplurals=2; plural=n != 1;\n" +"X-Generator: Weblate 3.1.1\n" + +#. module: sale_commission_pricelist +#: model:ir.model.fields,field_description:sale_commission_pricelist.field_product_pricelist_item__commission_id +msgid "Commission" +msgstr "Provision" + +#. module: sale_commission_pricelist +#: model:ir.model.fields,field_description:sale_commission_pricelist.field_product_pricelist_item__display_name +#: model:ir.model.fields,field_description:sale_commission_pricelist.field_sale_order_line__display_name +msgid "Display Name" +msgstr "" + +#. module: sale_commission_pricelist +#: model:ir.model.fields,field_description:sale_commission_pricelist.field_product_pricelist_item__id +#: model:ir.model.fields,field_description:sale_commission_pricelist.field_sale_order_line__id +msgid "ID" +msgstr "" + +#. module: sale_commission_pricelist +#: model:ir.model.fields,field_description:sale_commission_pricelist.field_product_pricelist_item____last_update +#: model:ir.model.fields,field_description:sale_commission_pricelist.field_sale_order_line____last_update +msgid "Last Modified on" +msgstr "" + +#. module: sale_commission_pricelist +#: model:ir.model,name:sale_commission_pricelist.model_product_pricelist_item +#, fuzzy +msgid "Pricelist Rule" +msgstr "Preislistenposition" + +#. module: sale_commission_pricelist +#: model:ir.model,name:sale_commission_pricelist.model_sale_order_line +msgid "Sales Order Line" +msgstr "Verkaufsauftragsposition" diff --git a/sale_commission_pricelist/i18n/es.po b/sale_commission_pricelist/i18n/es.po new file mode 100644 index 000000000..7d98293fb --- /dev/null +++ b/sale_commission_pricelist/i18n/es.po @@ -0,0 +1,53 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * sale_commission_pricelist +# +# Translators: +# OCA Transbot , 2018 +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 10.0\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2018-05-02 02:42+0000\n" +"PO-Revision-Date: 2023-12-13 11:29+0000\n" +"Last-Translator: Ivorra78 \n" +"Language-Team: Spanish (https://www.transifex.com/oca/teams/23907/es/)\n" +"Language: es\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: \n" +"Plural-Forms: nplurals=2; plural=n != 1;\n" +"X-Generator: Weblate 4.17\n" + +#. module: sale_commission_pricelist +#: model:ir.model.fields,field_description:sale_commission_pricelist.field_product_pricelist_item__commission_id +msgid "Commission" +msgstr "Comisión" + +#. module: sale_commission_pricelist +#: model:ir.model.fields,field_description:sale_commission_pricelist.field_product_pricelist_item__display_name +#: model:ir.model.fields,field_description:sale_commission_pricelist.field_sale_order_line__display_name +msgid "Display Name" +msgstr "Mostrar Nombre" + +#. module: sale_commission_pricelist +#: model:ir.model.fields,field_description:sale_commission_pricelist.field_product_pricelist_item__id +#: model:ir.model.fields,field_description:sale_commission_pricelist.field_sale_order_line__id +msgid "ID" +msgstr "ID" + +#. module: sale_commission_pricelist +#: model:ir.model.fields,field_description:sale_commission_pricelist.field_product_pricelist_item____last_update +#: model:ir.model.fields,field_description:sale_commission_pricelist.field_sale_order_line____last_update +msgid "Last Modified on" +msgstr "Última Modificación el" + +#. module: sale_commission_pricelist +#: model:ir.model,name:sale_commission_pricelist.model_product_pricelist_item +msgid "Pricelist Rule" +msgstr "Elemento de la Tarifa" + +#. module: sale_commission_pricelist +#: model:ir.model,name:sale_commission_pricelist.model_sale_order_line +msgid "Sales Order Line" +msgstr "Línea de pedido de venta" diff --git a/sale_commission_pricelist/i18n/es_AR.po b/sale_commission_pricelist/i18n/es_AR.po new file mode 100644 index 000000000..ac70e4add --- /dev/null +++ b/sale_commission_pricelist/i18n/es_AR.po @@ -0,0 +1,50 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * sale_commission_pricelist +# +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 13.0\n" +"Report-Msgid-Bugs-To: \n" +"PO-Revision-Date: 2020-09-13 00:00+0000\n" +"Last-Translator: Ignacio Buioli \n" +"Language-Team: none\n" +"Language: es_AR\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: \n" +"Plural-Forms: nplurals=2; plural=n != 1;\n" +"X-Generator: Weblate 3.10\n" + +#. module: sale_commission_pricelist +#: model:ir.model.fields,field_description:sale_commission_pricelist.field_product_pricelist_item__commission_id +msgid "Commission" +msgstr "Comisión" + +#. module: sale_commission_pricelist +#: model:ir.model.fields,field_description:sale_commission_pricelist.field_product_pricelist_item__display_name +#: model:ir.model.fields,field_description:sale_commission_pricelist.field_sale_order_line__display_name +msgid "Display Name" +msgstr "" + +#. module: sale_commission_pricelist +#: model:ir.model.fields,field_description:sale_commission_pricelist.field_product_pricelist_item__id +#: model:ir.model.fields,field_description:sale_commission_pricelist.field_sale_order_line__id +msgid "ID" +msgstr "" + +#. module: sale_commission_pricelist +#: model:ir.model.fields,field_description:sale_commission_pricelist.field_product_pricelist_item____last_update +#: model:ir.model.fields,field_description:sale_commission_pricelist.field_sale_order_line____last_update +msgid "Last Modified on" +msgstr "" + +#. module: sale_commission_pricelist +#: model:ir.model,name:sale_commission_pricelist.model_product_pricelist_item +msgid "Pricelist Rule" +msgstr "Regla de Lista de Precios" + +#. module: sale_commission_pricelist +#: model:ir.model,name:sale_commission_pricelist.model_sale_order_line +msgid "Sales Order Line" +msgstr "Línea de Orden de Ventas" diff --git a/sale_commission_pricelist/i18n/fr.po b/sale_commission_pricelist/i18n/fr.po new file mode 100644 index 000000000..54d2ba428 --- /dev/null +++ b/sale_commission_pricelist/i18n/fr.po @@ -0,0 +1,52 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * sale_commission_pricelist +# +# Translators: +# Lixon Jean-Yves , 2018 +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 10.0\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2018-05-02 02:42+0000\n" +"PO-Revision-Date: 2018-05-02 02:42+0000\n" +"Last-Translator: Lixon Jean-Yves , 2018\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: sale_commission_pricelist +#: model:ir.model.fields,field_description:sale_commission_pricelist.field_product_pricelist_item__commission_id +msgid "Commission" +msgstr "Commission" + +#. module: sale_commission_pricelist +#: model:ir.model.fields,field_description:sale_commission_pricelist.field_product_pricelist_item__display_name +#: model:ir.model.fields,field_description:sale_commission_pricelist.field_sale_order_line__display_name +msgid "Display Name" +msgstr "" + +#. module: sale_commission_pricelist +#: model:ir.model.fields,field_description:sale_commission_pricelist.field_product_pricelist_item__id +#: model:ir.model.fields,field_description:sale_commission_pricelist.field_sale_order_line__id +msgid "ID" +msgstr "" + +#. module: sale_commission_pricelist +#: model:ir.model.fields,field_description:sale_commission_pricelist.field_product_pricelist_item____last_update +#: model:ir.model.fields,field_description:sale_commission_pricelist.field_sale_order_line____last_update +msgid "Last Modified on" +msgstr "" + +#. module: sale_commission_pricelist +#: model:ir.model,name:sale_commission_pricelist.model_product_pricelist_item +msgid "Pricelist Rule" +msgstr "" + +#. module: sale_commission_pricelist +#: model:ir.model,name:sale_commission_pricelist.model_sale_order_line +msgid "Sales Order Line" +msgstr "" diff --git a/sale_commission_pricelist/i18n/it.po b/sale_commission_pricelist/i18n/it.po new file mode 100644 index 000000000..95805cb39 --- /dev/null +++ b/sale_commission_pricelist/i18n/it.po @@ -0,0 +1,53 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * sale_commission_pricelist +# +# Translators: +# Lorenzo Battistini , 2018 +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 10.0\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2018-05-05 02:07+0000\n" +"PO-Revision-Date: 2023-10-13 12:36+0000\n" +"Last-Translator: Francesco Foresti \n" +"Language-Team: Italian (https://www.transifex.com/oca/teams/23907/it/)\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: sale_commission_pricelist +#: model:ir.model.fields,field_description:sale_commission_pricelist.field_product_pricelist_item__commission_id +msgid "Commission" +msgstr "Provvigione" + +#. module: sale_commission_pricelist +#: model:ir.model.fields,field_description:sale_commission_pricelist.field_product_pricelist_item__display_name +#: model:ir.model.fields,field_description:sale_commission_pricelist.field_sale_order_line__display_name +msgid "Display Name" +msgstr "Nome visualizzato" + +#. module: sale_commission_pricelist +#: model:ir.model.fields,field_description:sale_commission_pricelist.field_product_pricelist_item__id +#: model:ir.model.fields,field_description:sale_commission_pricelist.field_sale_order_line__id +msgid "ID" +msgstr "ID" + +#. module: sale_commission_pricelist +#: model:ir.model.fields,field_description:sale_commission_pricelist.field_product_pricelist_item____last_update +#: model:ir.model.fields,field_description:sale_commission_pricelist.field_sale_order_line____last_update +msgid "Last Modified on" +msgstr "Ultima modifica il" + +#. module: sale_commission_pricelist +#: model:ir.model,name:sale_commission_pricelist.model_product_pricelist_item +msgid "Pricelist Rule" +msgstr "Regola listino prezzi" + +#. module: sale_commission_pricelist +#: model:ir.model,name:sale_commission_pricelist.model_sale_order_line +msgid "Sales Order Line" +msgstr "Riga ordine di vendita" diff --git a/sale_commission_pricelist/i18n/pt.po b/sale_commission_pricelist/i18n/pt.po new file mode 100644 index 000000000..5c626003d --- /dev/null +++ b/sale_commission_pricelist/i18n/pt.po @@ -0,0 +1,51 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * sale_commission_pricelist +# +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 12.0\n" +"Report-Msgid-Bugs-To: \n" +"PO-Revision-Date: 2019-10-16 13:32+0000\n" +"Last-Translator: Pedro Castro Silva \n" +"Language-Team: none\n" +"Language: pt\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: \n" +"Plural-Forms: nplurals=2; plural=n > 1;\n" +"X-Generator: Weblate 3.8\n" + +#. module: sale_commission_pricelist +#: model:ir.model.fields,field_description:sale_commission_pricelist.field_product_pricelist_item__commission_id +msgid "Commission" +msgstr "Comissão" + +#. module: sale_commission_pricelist +#: model:ir.model.fields,field_description:sale_commission_pricelist.field_product_pricelist_item__display_name +#: model:ir.model.fields,field_description:sale_commission_pricelist.field_sale_order_line__display_name +msgid "Display Name" +msgstr "" + +#. module: sale_commission_pricelist +#: model:ir.model.fields,field_description:sale_commission_pricelist.field_product_pricelist_item__id +#: model:ir.model.fields,field_description:sale_commission_pricelist.field_sale_order_line__id +msgid "ID" +msgstr "" + +#. module: sale_commission_pricelist +#: model:ir.model.fields,field_description:sale_commission_pricelist.field_product_pricelist_item____last_update +#: model:ir.model.fields,field_description:sale_commission_pricelist.field_sale_order_line____last_update +msgid "Last Modified on" +msgstr "" + +#. module: sale_commission_pricelist +#: model:ir.model,name:sale_commission_pricelist.model_product_pricelist_item +#, fuzzy +msgid "Pricelist Rule" +msgstr "Item da Lista de Preços" + +#. module: sale_commission_pricelist +#: model:ir.model,name:sale_commission_pricelist.model_sale_order_line +msgid "Sales Order Line" +msgstr "Linha de Encomenda de Venda" diff --git a/sale_commission_pricelist/i18n/pt_BR.po b/sale_commission_pricelist/i18n/pt_BR.po new file mode 100644 index 000000000..40094dabd --- /dev/null +++ b/sale_commission_pricelist/i18n/pt_BR.po @@ -0,0 +1,50 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * sale_commission_pricelist +# +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 12.0\n" +"Report-Msgid-Bugs-To: \n" +"PO-Revision-Date: 2022-02-01 19:33+0000\n" +"Last-Translator: Rodrigo Macedo \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.3.2\n" + +#. module: sale_commission_pricelist +#: model:ir.model.fields,field_description:sale_commission_pricelist.field_product_pricelist_item__commission_id +msgid "Commission" +msgstr "Comissão" + +#. module: sale_commission_pricelist +#: model:ir.model.fields,field_description:sale_commission_pricelist.field_product_pricelist_item__display_name +#: model:ir.model.fields,field_description:sale_commission_pricelist.field_sale_order_line__display_name +msgid "Display Name" +msgstr "" + +#. module: sale_commission_pricelist +#: model:ir.model.fields,field_description:sale_commission_pricelist.field_product_pricelist_item__id +#: model:ir.model.fields,field_description:sale_commission_pricelist.field_sale_order_line__id +msgid "ID" +msgstr "" + +#. module: sale_commission_pricelist +#: model:ir.model.fields,field_description:sale_commission_pricelist.field_product_pricelist_item____last_update +#: model:ir.model.fields,field_description:sale_commission_pricelist.field_sale_order_line____last_update +msgid "Last Modified on" +msgstr "" + +#. module: sale_commission_pricelist +#: model:ir.model,name:sale_commission_pricelist.model_product_pricelist_item +msgid "Pricelist Rule" +msgstr "Regra de Lista de Preço" + +#. module: sale_commission_pricelist +#: model:ir.model,name:sale_commission_pricelist.model_sale_order_line +msgid "Sales Order Line" +msgstr "Linha de Pedidos de Venda" diff --git a/sale_commission_pricelist/i18n/sale_commission_pricelist.pot b/sale_commission_pricelist/i18n/sale_commission_pricelist.pot new file mode 100644 index 000000000..36c8a3673 --- /dev/null +++ b/sale_commission_pricelist/i18n/sale_commission_pricelist.pot @@ -0,0 +1,34 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * sale_commission_pricelist +# +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 17.0\n" +"Report-Msgid-Bugs-To: \n" +"Last-Translator: \n" +"Language-Team: \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: \n" +"Plural-Forms: \n" + +#. module: sale_commission_pricelist +#: model:ir.model,name:sale_commission_pricelist.model_sale_order_line_agent +msgid "Agent detail of commission line in order lines" +msgstr "" + +#. module: sale_commission_pricelist +#: model:ir.model.fields,field_description:sale_commission_pricelist.field_product_pricelist_item__commission_id +msgid "Commission" +msgstr "" + +#. module: sale_commission_pricelist +#: model:ir.model,name:sale_commission_pricelist.model_product_pricelist_item +msgid "Pricelist Rule" +msgstr "" + +#. module: sale_commission_pricelist +#: model:ir.model,name:sale_commission_pricelist.model_sale_order_line +msgid "Sales Order Line" +msgstr "" diff --git a/sale_commission_pricelist/i18n/tr.po b/sale_commission_pricelist/i18n/tr.po new file mode 100644 index 000000000..a55545fd9 --- /dev/null +++ b/sale_commission_pricelist/i18n/tr.po @@ -0,0 +1,52 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * sale_commission_pricelist +# +# Translators: +# Ediz Duman , 2018 +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 10.0\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2018-05-05 02:07+0000\n" +"PO-Revision-Date: 2018-05-05 02:07+0000\n" +"Last-Translator: Ediz Duman , 2018\n" +"Language-Team: Turkish (https://www.transifex.com/oca/teams/23907/tr/)\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" + +#. module: sale_commission_pricelist +#: model:ir.model.fields,field_description:sale_commission_pricelist.field_product_pricelist_item__commission_id +msgid "Commission" +msgstr "Komisyon" + +#. module: sale_commission_pricelist +#: model:ir.model.fields,field_description:sale_commission_pricelist.field_product_pricelist_item__display_name +#: model:ir.model.fields,field_description:sale_commission_pricelist.field_sale_order_line__display_name +msgid "Display Name" +msgstr "" + +#. module: sale_commission_pricelist +#: model:ir.model.fields,field_description:sale_commission_pricelist.field_product_pricelist_item__id +#: model:ir.model.fields,field_description:sale_commission_pricelist.field_sale_order_line__id +msgid "ID" +msgstr "" + +#. module: sale_commission_pricelist +#: model:ir.model.fields,field_description:sale_commission_pricelist.field_product_pricelist_item____last_update +#: model:ir.model.fields,field_description:sale_commission_pricelist.field_sale_order_line____last_update +msgid "Last Modified on" +msgstr "" + +#. module: sale_commission_pricelist +#: model:ir.model,name:sale_commission_pricelist.model_product_pricelist_item +msgid "Pricelist Rule" +msgstr "" + +#. module: sale_commission_pricelist +#: model:ir.model,name:sale_commission_pricelist.model_sale_order_line +msgid "Sales Order Line" +msgstr "Satış Sipariş Satırı" diff --git a/sale_commission_pricelist/i18n/zh_CN.po b/sale_commission_pricelist/i18n/zh_CN.po new file mode 100644 index 000000000..e0ffbae05 --- /dev/null +++ b/sale_commission_pricelist/i18n/zh_CN.po @@ -0,0 +1,51 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * sale_commission_pricelist +# +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 12.0\n" +"Report-Msgid-Bugs-To: \n" +"PO-Revision-Date: 2019-09-18 17:02+0000\n" +"Last-Translator: 黎伟杰 <674416404@qq.com>\n" +"Language-Team: none\n" +"Language: zh_CN\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: \n" +"Plural-Forms: nplurals=1; plural=0;\n" +"X-Generator: Weblate 3.8\n" + +#. module: sale_commission_pricelist +#: model:ir.model.fields,field_description:sale_commission_pricelist.field_product_pricelist_item__commission_id +msgid "Commission" +msgstr "佣金" + +#. module: sale_commission_pricelist +#: model:ir.model.fields,field_description:sale_commission_pricelist.field_product_pricelist_item__display_name +#: model:ir.model.fields,field_description:sale_commission_pricelist.field_sale_order_line__display_name +msgid "Display Name" +msgstr "" + +#. module: sale_commission_pricelist +#: model:ir.model.fields,field_description:sale_commission_pricelist.field_product_pricelist_item__id +#: model:ir.model.fields,field_description:sale_commission_pricelist.field_sale_order_line__id +msgid "ID" +msgstr "" + +#. module: sale_commission_pricelist +#: model:ir.model.fields,field_description:sale_commission_pricelist.field_product_pricelist_item____last_update +#: model:ir.model.fields,field_description:sale_commission_pricelist.field_sale_order_line____last_update +msgid "Last Modified on" +msgstr "" + +#. module: sale_commission_pricelist +#: model:ir.model,name:sale_commission_pricelist.model_product_pricelist_item +#, fuzzy +msgid "Pricelist Rule" +msgstr "价格表明细" + +#. module: sale_commission_pricelist +#: model:ir.model,name:sale_commission_pricelist.model_sale_order_line +msgid "Sales Order Line" +msgstr "销售订单行" diff --git a/sale_commission_pricelist/models/__init__.py b/sale_commission_pricelist/models/__init__.py new file mode 100644 index 000000000..2eda26861 --- /dev/null +++ b/sale_commission_pricelist/models/__init__.py @@ -0,0 +1,3 @@ +from . import product_pricelist +from . import sale_order_line_agent +from . import sale_order_line diff --git a/sale_commission_pricelist/models/product_pricelist.py b/sale_commission_pricelist/models/product_pricelist.py new file mode 100644 index 000000000..223bbc748 --- /dev/null +++ b/sale_commission_pricelist/models/product_pricelist.py @@ -0,0 +1,12 @@ +# Copyright 2018 Carlos Dauden - Tecnativa +# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl). + +from odoo import fields, models + + +class ProductPricelistItem(models.Model): + _inherit = "product.pricelist.item" + + commission_id = fields.Many2one( + comodel_name="commission", string="Commission", ondelete="restrict" + ) diff --git a/sale_commission_pricelist/models/sale_order_line.py b/sale_commission_pricelist/models/sale_order_line.py new file mode 100644 index 000000000..1d08536b3 --- /dev/null +++ b/sale_commission_pricelist/models/sale_order_line.py @@ -0,0 +1,30 @@ +# Copyright 2018 Tecnativa - Carlos Dauden +# Copyright 2018 Tecnativa - Pedro M. Baeza +# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl). + +from odoo import models + + +class SaleOrderLine(models.Model): + _inherit = "sale.order.line" + + def _get_commission_from_pricelist(self): + self.ensure_one() + if not self.product_id or not self.order_id.pricelist_id: + return False # pragma: no cover + rule_id = self.order_id.pricelist_id._get_product_price_rule( + product=self.product_id, + quantity=self.product_uom_qty or 1.0, + date=self.order_id.date_order, + uom_id=self.product_uom.id, + )[1] + rule = self.env["product.pricelist.item"].browse(rule_id) + return rule.commission_id + + def _prepare_agent_vals(self, agent): + self.ensure_one() + res = super()._prepare_agent_vals(agent) + commission = self._get_commission_from_pricelist() + if commission: + res["commission_id"] = commission.id + return res diff --git a/sale_commission_pricelist/models/sale_order_line_agent.py b/sale_commission_pricelist/models/sale_order_line_agent.py new file mode 100644 index 000000000..27b7c0c9e --- /dev/null +++ b/sale_commission_pricelist/models/sale_order_line_agent.py @@ -0,0 +1,13 @@ +from odoo import api, models + + +class SaleOrderLineAgent(models.Model): + _inherit = "sale.order.line.agent" + + @api.depends("object_id.order_id.pricelist_id") + def _compute_commission_id(self): + res = super()._compute_commission_id() + for record in self: + commission = record.object_id._get_commission_from_pricelist() + record.commission_id = commission or record.agent_id.commission_id + return res diff --git a/sale_commission_pricelist/pyproject.toml b/sale_commission_pricelist/pyproject.toml new file mode 100644 index 000000000..4231d0ccc --- /dev/null +++ b/sale_commission_pricelist/pyproject.toml @@ -0,0 +1,3 @@ +[build-system] +requires = ["whool"] +build-backend = "whool.buildapi" diff --git a/sale_commission_pricelist/readme/CONTRIBUTORS.md b/sale_commission_pricelist/readme/CONTRIBUTORS.md new file mode 100644 index 000000000..7bfc9dd60 --- /dev/null +++ b/sale_commission_pricelist/readme/CONTRIBUTORS.md @@ -0,0 +1,8 @@ +- [Tecnativa](https://www.tecnativa.com): + - Carlos Dauden + - Ernesto Tejeda +- Lorenzo Battistini \ +- [NextERP Romania](https://www.nexterp.ro): + - Fekete Mihai \ +- [ArcheTI](https://www.archeti.com): + - Cécile Jallais \ diff --git a/sale_commission_pricelist/readme/DESCRIPTION.md b/sale_commission_pricelist/readme/DESCRIPTION.md new file mode 100644 index 000000000..7ee1e13ba --- /dev/null +++ b/sale_commission_pricelist/readme/DESCRIPTION.md @@ -0,0 +1,5 @@ +This module extends the functionality of sale_commission to allow you +set a commission to pricelist item. + +The commission is applied when the pricelist rule is applied, that is +after changing product or quantity of sale order line. diff --git a/sale_commission_pricelist/readme/USAGE.md b/sale_commission_pricelist/readme/USAGE.md new file mode 100644 index 000000000..cdd6cac77 --- /dev/null +++ b/sale_commission_pricelist/readme/USAGE.md @@ -0,0 +1,9 @@ +To use this module, you need to: + +1. Go to Sales -\> Configuration -\> Settings -\> Pricing -\> Sale + Price, activate: "Multiple Sales Prices per Product" and select + *Prices computed from formulas (discounts, margins, roundings)* +2. Go to Sales -\> Products -\> Pricelists and edit an existing one or + create a new one +3. In the pricelist -\> add a new item or open a new one +4. You will find the field commission in the pricelist item diff --git a/sale_commission_pricelist/static/description/icon.png b/sale_commission_pricelist/static/description/icon.png new file mode 100644 index 000000000..ccf94f5cc Binary files /dev/null and b/sale_commission_pricelist/static/description/icon.png differ diff --git a/sale_commission_pricelist/static/description/icon.svg b/sale_commission_pricelist/static/description/icon.svg new file mode 100644 index 000000000..1434358a2 --- /dev/null +++ b/sale_commission_pricelist/static/description/icon.svg @@ -0,0 +1,2842 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + $ + + + + + image/svg+xml + + + + + Openclipart + + + Pile of Golden Coins + 2010-04-09T03:27:45 + A pile of hypothetical golden coins, drawn in Inkscape. + https://openclipart.org/detail/43969/pile-of-golden-coins-by-j_alves + + + J_Alves + + + + + coin + currency + gold + money + thaler + + + + + + + + + + + diff --git a/sale_commission_pricelist/static/description/index.html b/sale_commission_pricelist/static/description/index.html new file mode 100644 index 000000000..6e6372180 --- /dev/null +++ b/sale_commission_pricelist/static/description/index.html @@ -0,0 +1,454 @@ + + + + + +Sales commissions by pricelist + + + +
+

Sales commissions by pricelist

+ + +

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

+

This module extends the functionality of sale_commission to allow you +set a commission to pricelist item.

+

The commission is applied when the pricelist rule is applied, that is +after changing product or quantity of sale order line.

+

Table of contents

+ +
+

Usage

+

To use this module, you need to:

+
    +
  1. Go to Sales -> Configuration -> Settings -> Pricing -> Sale Price, +activate: “Multiple Sales Prices per Product” and select Prices +computed from formulas (discounts, margins, roundings)
  2. +
  3. Go to Sales -> Products -> Pricelists and edit an existing one or +create a new one
  4. +
  5. In the pricelist -> add a new item or open a new one
  6. +
  7. You will find the field commission in the pricelist item
  8. +
+
+
+

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
  • +
  • ArcheTI
  • +
+
+
+

Contributors

+ +
+
+

Maintainers

+

This module is maintained by the OCA.

+ +Odoo Community Association + +

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

+

This module is part of the OCA/commission project on GitHub.

+

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

+
+
+
+ + diff --git a/sale_commission_pricelist/tests/__init__.py b/sale_commission_pricelist/tests/__init__.py new file mode 100644 index 000000000..becfa3bfe --- /dev/null +++ b/sale_commission_pricelist/tests/__init__.py @@ -0,0 +1 @@ +from . import test_sale_commission_pricelist diff --git a/sale_commission_pricelist/tests/test_sale_commission_pricelist.py b/sale_commission_pricelist/tests/test_sale_commission_pricelist.py new file mode 100644 index 000000000..a9378c3fa --- /dev/null +++ b/sale_commission_pricelist/tests/test_sale_commission_pricelist.py @@ -0,0 +1,110 @@ +# Copyright 2018 Carlos Dauden - Tecnativa +# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl). + +from odoo.tests.common import Form + +from odoo.addons.account_commission.tests.test_account_commission import ( + TestAccountCommission, +) + + +class TestSaleCommissionPricelist(TestAccountCommission): + @classmethod + def setUpClass(cls): + super().setUpClass() + cls.pricelist = cls.env["product.pricelist"].create( + { + "name": "Test commission pricelist", + "item_ids": [ + ( + 0, + 0, + { + "name": "20% discount and commission on Test " "product 2", + "applied_on": "0_product_variant", + "product_id": cls.product.id, + "compute_price": "formula", + "base": "list_price", + "price_discount": 20, + "commission_id": cls.commission_section_paid.id, + }, + ), + ( + 0, + 0, + { + "name": "10% Discount and commission", + "compute_price": "percentage", + "base": "list_price", + "percent_price": 10, + "applied_on": "3_global", + "commission_id": cls.commission_section_invoice.id, + }, + ), + ], + } + ) + cls.product2 = cls.env["product.product"].create( + { + "name": "Test product2 for commissions", + "list_price": 5, + } + ) + + def _create_sale_order(self): + agent = self.env.ref("commission.res_partner_pritesh_sale_agent") + self.partner.agent_ids = [(6, 0, agent.ids)] + order_form = Form(self.env["sale.order"]) + order_form.partner_id = self.partner + order_form.pricelist_id = self.pricelist + with order_form.order_line.new() as line_form: + line_form.product_id = self.product + + with order_form.order_line.new() as line_form: + line_form.product_id = self.product2 + + order = order_form.save() + + return order + + def test_sale_commission_pricelist(self): + sale_order = self._create_sale_order() + self.assertEqual( + sale_order.order_line[0].agent_ids[:1].commission_id, + self.commission_section_paid, + ) + self.assertEqual( + sale_order.order_line[1].agent_ids[:1].commission_id, + self.commission_section_invoice, + ) + + def test_prepare_agents_vals(self): + commission_3 = self.env["commission"].create( + {"name": "3% commission", "fix_qty": 3.0} + ) + pricelist_3 = self.env["product.pricelist"].create( + { + "name": "Test commission pricelist 3", + "item_ids": [ + ( + 0, + 0, + { + "name": "30% discount and commission on Test " "product 2", + "applied_on": "0_product_variant", + "product_id": self.product2.id, + "compute_price": "formula", + "base": "list_price", + "price_discount": 30, + "commission_id": commission_3.id, + }, + ), + ], + } + ) + # Nothing changes + sale_order = self._create_sale_order() + sale_order.pricelist_id = pricelist_3 + self.assertEqual( + sale_order.order_line[1].agent_ids[:1].commission_id, commission_3 + ) diff --git a/sale_commission_pricelist/views/product_pricelist_view.xml b/sale_commission_pricelist/views/product_pricelist_view.xml new file mode 100644 index 000000000..ade1c2f70 --- /dev/null +++ b/sale_commission_pricelist/views/product_pricelist_view.xml @@ -0,0 +1,34 @@ + + + + + product.pricelist.item + + + + + + + + + + product.pricelist.item + + + + + + + + + + product.pricelist + + + + + + + + diff --git a/setup/_metapackage/pyproject.toml b/setup/_metapackage/pyproject.toml index 24b3b56d1..dc80b3be3 100644 --- a/setup/_metapackage/pyproject.toml +++ b/setup/_metapackage/pyproject.toml @@ -1,12 +1,13 @@ [project] name = "odoo-addons-oca-commission" -version = "17.0.20240710.0" +version = "17.0.20250303.0" dependencies = [ "odoo-addon-account_commission>=17.0dev,<17.1dev", "odoo-addon-commission>=17.0dev,<17.1dev", "odoo-addon-commission_formula>=17.0dev,<17.1dev", "odoo-addon-hr_commission>=17.0dev,<17.1dev", "odoo-addon-sale_commission>=17.0dev,<17.1dev", + "odoo-addon-sale_commission_pricelist>=17.0dev,<17.1dev", "odoo-addon-sale_commission_salesman>=17.0dev,<17.1dev", ] classifiers=[