From cd25d0b0d91f04ddcfd21783ee4a7668163c2665 Mon Sep 17 00:00:00 2001 From: andre Date: Wed, 30 Aug 2023 10:51:00 +0100 Subject: [PATCH 01/18] [16.0][MIG] commission_formula --- commission_formula_oca/README.rst | 58 + commission_formula_oca/__init__.py | 5 + commission_formula_oca/__manifest__.py | 22 + .../demo/commission_demo.xml | 26 + commission_formula_oca/i18n/ca.po | 123 + .../i18n/commission_formula.pot | 96 + commission_formula_oca/i18n/de.po | 140 + commission_formula_oca/i18n/el_GR.po | 102 + commission_formula_oca/i18n/es.po | 115 + commission_formula_oca/i18n/es_AR.po | 126 + commission_formula_oca/i18n/fi.po | 101 + commission_formula_oca/i18n/fr.po | 101 + commission_formula_oca/i18n/it.po | 140 + commission_formula_oca/i18n/pt.po | 113 + commission_formula_oca/i18n/pt_BR.po | 142 + commission_formula_oca/i18n/pt_PT.po | 102 + commission_formula_oca/i18n/ru.po | 103 + .../i18n/sale_commission_formula.pot | 114 + commission_formula_oca/i18n/sl.po | 124 + commission_formula_oca/i18n/tr.po | 101 + commission_formula_oca/i18n/tr_TR.po | 102 + commission_formula_oca/i18n/zh_CN.po | 136 + commission_formula_oca/models/__init__.py | 6 + commission_formula_oca/models/commission.py | 19 + .../models/commission_mixin.py | 34 + .../readme/CONTRIBUTORS.rst | 6 + commission_formula_oca/readme/DESCRIPTION.rst | 2 + commission_formula_oca/readme/USAGE.rst | 3 + .../static/description/icon.png | Bin 0 -> 20036 bytes .../static/description/icon.svg | 3225 +++++++++++++++++ .../static/description/index.html | 421 +++ .../static/src/css/commission_formula.css | 12 + .../views/commission_view.xml | 84 + 33 files changed, 6004 insertions(+) create mode 100644 commission_formula_oca/README.rst create mode 100644 commission_formula_oca/__init__.py create mode 100644 commission_formula_oca/__manifest__.py create mode 100644 commission_formula_oca/demo/commission_demo.xml create mode 100644 commission_formula_oca/i18n/ca.po create mode 100644 commission_formula_oca/i18n/commission_formula.pot create mode 100644 commission_formula_oca/i18n/de.po create mode 100644 commission_formula_oca/i18n/el_GR.po create mode 100644 commission_formula_oca/i18n/es.po create mode 100644 commission_formula_oca/i18n/es_AR.po create mode 100644 commission_formula_oca/i18n/fi.po create mode 100644 commission_formula_oca/i18n/fr.po create mode 100644 commission_formula_oca/i18n/it.po create mode 100644 commission_formula_oca/i18n/pt.po create mode 100644 commission_formula_oca/i18n/pt_BR.po create mode 100644 commission_formula_oca/i18n/pt_PT.po create mode 100644 commission_formula_oca/i18n/ru.po create mode 100644 commission_formula_oca/i18n/sale_commission_formula.pot create mode 100644 commission_formula_oca/i18n/sl.po create mode 100644 commission_formula_oca/i18n/tr.po create mode 100644 commission_formula_oca/i18n/tr_TR.po create mode 100644 commission_formula_oca/i18n/zh_CN.po create mode 100644 commission_formula_oca/models/__init__.py create mode 100644 commission_formula_oca/models/commission.py create mode 100644 commission_formula_oca/models/commission_mixin.py create mode 100644 commission_formula_oca/readme/CONTRIBUTORS.rst create mode 100644 commission_formula_oca/readme/DESCRIPTION.rst create mode 100644 commission_formula_oca/readme/USAGE.rst create mode 100644 commission_formula_oca/static/description/icon.png create mode 100644 commission_formula_oca/static/description/icon.svg create mode 100644 commission_formula_oca/static/description/index.html create mode 100644 commission_formula_oca/static/src/css/commission_formula.css create mode 100644 commission_formula_oca/views/commission_view.xml diff --git a/commission_formula_oca/README.rst b/commission_formula_oca/README.rst new file mode 100644 index 000000000..f7948ef2f --- /dev/null +++ b/commission_formula_oca/README.rst @@ -0,0 +1,58 @@ +================== +Commission Formula +================== + +.. !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! + !! This file is generated by oca-gen-addon-readme !! + !! changes will be overwritten. !! + !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! + +.. |badge_devstat| image:: https://img.shields.io/badge/maturity-beta-brightgreen.png + :target: https://odoo-community.org/page/development-status + :alt: Beta + +.. |badge_license| image:: https://img.shields.io/badge/license-AGPL--3-blue.png + :alt: AGPL-3 + +|badge_devstat| |badge_license| + +This module extends commission to introduce the use of formulas to +compute the agent commissions. + +**Table of contents** + +.. contents:: + :local: + +Usage +===== + +To use this module, you need to: + +* Go to Commission > Configuration > Commission Types, and create a commission with type formula + +Credits +======= + +Authors +~~~~~~~ + +* Abstract + +Contributors +~~~~~~~~~~~~ + +* Davide Corio +* Nicola Malcontenti +* Duc, Dao Dong (https://komit-consulting.com) +* `NextERP Romania `_: + + * Fekete Mihai + +Maintainers +~~~~~~~~~~~ + +This module is maintained by Exo Software. + +Contact the maintainer through their official support channels in case you find +any issues with this module. diff --git a/commission_formula_oca/__init__.py b/commission_formula_oca/__init__.py new file mode 100644 index 000000000..37698c83c --- /dev/null +++ b/commission_formula_oca/__init__.py @@ -0,0 +1,5 @@ +# Copyright 2016 Nicola Malcontenti - Agile Business Group +# Copyright 2016 Davide Corio - Abstract +# License AGPL-3 - See https://www.gnu.org/licenses/agpl-3.0.html + +from . import models diff --git a/commission_formula_oca/__manifest__.py b/commission_formula_oca/__manifest__.py new file mode 100644 index 000000000..162751993 --- /dev/null +++ b/commission_formula_oca/__manifest__.py @@ -0,0 +1,22 @@ +# Copyright 2016 Nicola Malcontenti - Agile Business Group +# Copyright 2016 Davide Corio - Abstract +# Copyright 2021 Tecnativa - Pedro M. Baeza +# License AGPL-3 - See https://www.gnu.org/licenses/agpl-3.0.html +{ + "name": "Commission Formula", + "version": "16.0.1.0.0", + "category": "Commission", + "license": "AGPL-3", + "summary": "Commissions computed by formulas", + "author": "Abstract,Odoo Community Association (OCA)", + "website": "https://github.com/OCA/commission", + "depends": ["commission", "account"], + "data": ["views/commission_view.xml"], + "demo": ["demo/commission_demo.xml"], + "assets": { + "web.assets_backend": [ + "commission_formula/static/src/css/commission_formula.css", + ], + }, + "installable": True, +} diff --git a/commission_formula_oca/demo/commission_demo.xml b/commission_formula_oca/demo/commission_demo.xml new file mode 100644 index 000000000..2009170c1 --- /dev/null +++ b/commission_formula_oca/demo/commission_demo.xml @@ -0,0 +1,26 @@ + + + + + 5% + 10% extra + formula + True + if line._name == 'sale.order.line': + partial = (line.price_subtotal / 100)*5 + result = partial + (partial / 100)*10 +if line._name == 'account.move.line': + partial = (line.price_subtotal / 100)*5 + result = partial + (partial / 100)*10 + + + + + Agent 1 + True + True + 1 + 0 + + + + diff --git a/commission_formula_oca/i18n/ca.po b/commission_formula_oca/i18n/ca.po new file mode 100644 index 000000000..a3f01467c --- /dev/null +++ b/commission_formula_oca/i18n/ca.po @@ -0,0 +1,123 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * sale_commission_formula +# +# Translators: +# OCA Transbot , 2017 +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 11.0\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2017-12-14 15:14+0000\n" +"PO-Revision-Date: 2017-12-14 15:14+0000\n" +"Last-Translator: OCA Transbot , 2017\n" +"Language-Team: Catalan (https://www.transifex.com/oca/teams/23907/ca/)\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" + +#. module: commission_formula +#: model_terms:ir.ui.view,arch_db:commission_formula.commission_form +msgid "" +"\n" +" Use 'line' to access all the line fields.\n" +" As field names may vary, you should differentiate the\n" +" formulas for sale.order.line and account.move.line.\n" +" You can, for instance, use line._name == 'sale.order.line'\n" +" or line._name == 'account.move.line'.\n" +"\n" +" Use 'result' to return the commission amount.\n" +" " +msgstr "" + +#. module: commission_formula +#: model_terms:ir.ui.view,arch_db:commission_formula.commission_form +#, fuzzy +msgid "Account Move Line common fields" +msgstr "Camps comuns de la factura" + +#. module: commission_formula +#: model:ir.model,name:commission_formula.model_commission +#, fuzzy +msgid "Commission" +msgstr "Comissió de les vendes" + +#. module: commission_formula +#: model_terms:ir.ui.view,arch_db:commission_formula.commission_form +msgid "Discount (%)" +msgstr "Descompte (%)" + +#. module: commission_formula +#: model_terms:ir.ui.view,arch_db:commission_formula.commission_form +msgid "Field" +msgstr "Camp" + +#. module: commission_formula +#: model:ir.model.fields,field_description:commission_formula.field_commission__formula +#: model:ir.model.fields.selection,name:commission_formula.selection__commission__commission_type__formula +msgid "Formula" +msgstr "Fórmula" + +#. module: commission_formula +#: model_terms:ir.ui.view,arch_db:commission_formula.commission_form +msgid "Instructions" +msgstr "Instruccions" + +#. module: commission_formula +#: model_terms:ir.ui.view,arch_db:commission_formula.commission_form +msgid "Label" +msgstr "Etiqueta" + +#. module: commission_formula +#: model:ir.model,name:commission_formula.model_commission_line_mixin +msgid "" +"Mixin model for having commission agent lines in any object inheriting from " +"this one" +msgstr "" + +#. module: commission_formula +#: model_terms:ir.ui.view,arch_db:commission_formula.commission_form +msgid "Quantity" +msgstr "Quantitat" + +#. module: commission_formula +#: model_terms:ir.ui.view,arch_db:commission_formula.commission_form +msgid "Sale Oder Line common fields" +msgstr "Camps comuns de la línia de comanda de venda" + +#. module: commission_formula +#: model_terms:ir.ui.view,arch_db:commission_formula.commission_form +msgid "Subtotal" +msgstr "Subtotal" + +#. module: commission_formula +#: model:ir.model.fields,field_description:commission_formula.field_commission__commission_type +msgid "Type" +msgstr "" + +#. module: commission_formula +#: model_terms:ir.ui.view,arch_db:commission_formula.commission_form +msgid "Unit Price" +msgstr "Preu unitari" + +#~ msgid "discount" +#~ msgstr "Descompte" + +#~ msgid "price_subtotal" +#~ msgstr "price_subtotal" + +#~ msgid "price_unit" +#~ msgstr "price_unit" + +#~ msgid "product_uom_qty" +#~ msgstr "product_uom_qty" + +#~ msgid "quantity" +#~ msgstr "quantitat" + +#, fuzzy +#~| msgid "Instructions" +#~ msgid "By sections" +#~ msgstr "Instruccions" diff --git a/commission_formula_oca/i18n/commission_formula.pot b/commission_formula_oca/i18n/commission_formula.pot new file mode 100644 index 000000000..b00578477 --- /dev/null +++ b/commission_formula_oca/i18n/commission_formula.pot @@ -0,0 +1,96 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * commission_formula +# +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 15.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: commission_formula +#: model_terms:ir.ui.view,arch_db:commission_formula.commission_form +msgid "" +"\n" +" Use 'line' to access all the line fields.\n" +" As field names may vary, you should differentiate the\n" +" formulas for sale.order.line and account.move.line.\n" +" You can, for instance, use line._name == 'sale.order.line'\n" +" or line._name == 'account.move.line'.\n" +"\n" +" Use 'result' to return the commission amount.\n" +" " +msgstr "" + +#. module: commission_formula +#: model_terms:ir.ui.view,arch_db:commission_formula.commission_form +msgid "Account Move Line common fields" +msgstr "" + +#. module: commission_formula +#: model:ir.model,name:commission_formula.model_commission +msgid "Commission" +msgstr "" + +#. module: commission_formula +#: model_terms:ir.ui.view,arch_db:commission_formula.commission_form +msgid "Discount (%)" +msgstr "" + +#. module: commission_formula +#: model_terms:ir.ui.view,arch_db:commission_formula.commission_form +msgid "Field" +msgstr "" + +#. module: commission_formula +#: model:ir.model.fields,field_description:commission_formula.field_commission__formula +#: model:ir.model.fields.selection,name:commission_formula.selection__commission__commission_type__formula +msgid "Formula" +msgstr "" + +#. module: commission_formula +#: model_terms:ir.ui.view,arch_db:commission_formula.commission_form +msgid "Instructions" +msgstr "" + +#. module: commission_formula +#: model_terms:ir.ui.view,arch_db:commission_formula.commission_form +msgid "Label" +msgstr "" + +#. module: commission_formula +#: model:ir.model,name:commission_formula.model_commission_line_mixin +msgid "" +"Mixin model for having commission agent lines in any object inheriting from " +"this one" +msgstr "" + +#. module: commission_formula +#: model_terms:ir.ui.view,arch_db:commission_formula.commission_form +msgid "Quantity" +msgstr "" + +#. module: commission_formula +#: model_terms:ir.ui.view,arch_db:commission_formula.commission_form +msgid "Sale Oder Line common fields" +msgstr "" + +#. module: commission_formula +#: model_terms:ir.ui.view,arch_db:commission_formula.commission_form +msgid "Subtotal" +msgstr "" + +#. module: commission_formula +#: model:ir.model.fields,field_description:commission_formula.field_commission__commission_type +msgid "Type" +msgstr "" + +#. module: commission_formula +#: model_terms:ir.ui.view,arch_db:commission_formula.commission_form +msgid "Unit Price" +msgstr "" diff --git a/commission_formula_oca/i18n/de.po b/commission_formula_oca/i18n/de.po new file mode 100644 index 000000000..9acd7880e --- /dev/null +++ b/commission_formula_oca/i18n/de.po @@ -0,0 +1,140 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * sale_commission_formula +# +# Translators: +# OCA Transbot , 2017 +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 11.0\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2017-12-14 15:14+0000\n" +"PO-Revision-Date: 2018-10-05 18:25+0000\n" +"Last-Translator: Rudolf Schnapka \n" +"Language-Team: German (https://www.transifex.com/oca/teams/23907/de/)\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: commission_formula +#: model_terms:ir.ui.view,arch_db:commission_formula.commission_form +#, fuzzy +msgid "" +"\n" +" Use 'line' to access all the line fields.\n" +" As field names may vary, you should differentiate the\n" +" formulas for sale.order.line and account.move.line.\n" +" You can, for instance, use line._name == 'sale.order.line'\n" +" or line._name == 'account.move.line'.\n" +"\n" +" Use 'result' to return the commission amount.\n" +" " +msgstr "" +"\n" +" 'line' für Zugriff auf alle Positions-Felder verwenden.\n" +" Da Feldnamen abweichen können, sollten Sie Formeln\n" +" für sale.order.line und account.invoice.line unterscheiden.\n" +" Sie können z.B. line._name == 'sale.order.line'\n" +" oder line._name == 'account.invoice.line' verwenden.\n" +"\n" +" Nutzen Sie 'result' um den Provisionsbetrag zurück zu geben.\n" +" " + +#. module: commission_formula +#: model_terms:ir.ui.view,arch_db:commission_formula.commission_form +#, fuzzy +msgid "Account Move Line common fields" +msgstr "Allgemeine Felder der Kontenabrechnungsposition" + +#. module: commission_formula +#: model:ir.model,name:commission_formula.model_commission +#, fuzzy +msgid "Commission" +msgstr "Provision im Verkauf" + +#. module: commission_formula +#: model_terms:ir.ui.view,arch_db:commission_formula.commission_form +msgid "Discount (%)" +msgstr "Rabatt (%)" + +#. module: commission_formula +#: model_terms:ir.ui.view,arch_db:commission_formula.commission_form +msgid "Field" +msgstr "Feld" + +#. module: commission_formula +#: model:ir.model.fields,field_description:commission_formula.field_commission__formula +#: model:ir.model.fields.selection,name:commission_formula.selection__commission__commission_type__formula +msgid "Formula" +msgstr "Formel" + +#. module: commission_formula +#: model_terms:ir.ui.view,arch_db:commission_formula.commission_form +msgid "Instructions" +msgstr "Anleitungen" + +#. module: commission_formula +#: model_terms:ir.ui.view,arch_db:commission_formula.commission_form +msgid "Label" +msgstr "Kennzeichnung" + +#. module: commission_formula +#: model:ir.model,name:commission_formula.model_commission_line_mixin +msgid "" +"Mixin model for having commission agent lines in any object inheriting from " +"this one" +msgstr "" + +#. module: commission_formula +#: model_terms:ir.ui.view,arch_db:commission_formula.commission_form +msgid "Quantity" +msgstr "Menge" + +#. module: commission_formula +#: model_terms:ir.ui.view,arch_db:commission_formula.commission_form +msgid "Sale Oder Line common fields" +msgstr "Allg. Felder der Verkaufsauftragsposition" + +#. module: commission_formula +#: model_terms:ir.ui.view,arch_db:commission_formula.commission_form +msgid "Subtotal" +msgstr "Zwischensumme" + +#. module: commission_formula +#: model:ir.model.fields,field_description:commission_formula.field_commission__commission_type +msgid "Type" +msgstr "" + +#. module: commission_formula +#: model_terms:ir.ui.view,arch_db:commission_formula.commission_form +msgid "Unit Price" +msgstr "Einzelpreis" + +#~ msgid "discount" +#~ msgstr "discount" + +#~ msgid "price_subtotal" +#~ msgstr "price_subtotal" + +#~ msgid "price_unit" +#~ msgstr "price_unit" + +#~ msgid "product_uom_qty" +#~ msgstr "product_uom_qty" + +#~ msgid "quantity" +#~ msgstr "quantity" + +#, fuzzy +#~| msgid "Instructions" +#~ msgid "By sections" +#~ msgstr "Anleitungen" + +#~ msgid "account.invoice.line.agent" +#~ msgstr "account.invoice.line.agent" + +#~ msgid "sale.order.line.agent" +#~ msgstr "sale.order.line.agent" diff --git a/commission_formula_oca/i18n/el_GR.po b/commission_formula_oca/i18n/el_GR.po new file mode 100644 index 000000000..aedf41519 --- /dev/null +++ b/commission_formula_oca/i18n/el_GR.po @@ -0,0 +1,102 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * sale_commission_formula +# +# Translators: +# OCA Transbot , 2017 +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 11.0\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2017-12-14 15:14+0000\n" +"PO-Revision-Date: 2017-12-14 15:14+0000\n" +"Last-Translator: OCA Transbot , 2017\n" +"Language-Team: Greek (Greece) (https://www.transifex.com/oca/teams/23907/" +"el_GR/)\n" +"Language: el_GR\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: commission_formula +#: model_terms:ir.ui.view,arch_db:commission_formula.commission_form +msgid "" +"\n" +" Use 'line' to access all the line fields.\n" +" As field names may vary, you should differentiate the\n" +" formulas for sale.order.line and account.move.line.\n" +" You can, for instance, use line._name == 'sale.order.line'\n" +" or line._name == 'account.move.line'.\n" +"\n" +" Use 'result' to return the commission amount.\n" +" " +msgstr "" + +#. module: commission_formula +#: model_terms:ir.ui.view,arch_db:commission_formula.commission_form +msgid "Account Move Line common fields" +msgstr "" + +#. module: commission_formula +#: model:ir.model,name:commission_formula.model_commission +msgid "Commission" +msgstr "" + +#. module: commission_formula +#: model_terms:ir.ui.view,arch_db:commission_formula.commission_form +msgid "Discount (%)" +msgstr "Έκπτωση (%)" + +#. module: commission_formula +#: model_terms:ir.ui.view,arch_db:commission_formula.commission_form +msgid "Field" +msgstr "" + +#. module: commission_formula +#: model:ir.model.fields,field_description:commission_formula.field_commission__formula +#: model:ir.model.fields.selection,name:commission_formula.selection__commission__commission_type__formula +msgid "Formula" +msgstr "" + +#. module: commission_formula +#: model_terms:ir.ui.view,arch_db:commission_formula.commission_form +msgid "Instructions" +msgstr "" + +#. module: commission_formula +#: model_terms:ir.ui.view,arch_db:commission_formula.commission_form +msgid "Label" +msgstr "" + +#. module: commission_formula +#: model:ir.model,name:commission_formula.model_commission_line_mixin +msgid "" +"Mixin model for having commission agent lines in any object inheriting from " +"this one" +msgstr "" + +#. module: commission_formula +#: model_terms:ir.ui.view,arch_db:commission_formula.commission_form +msgid "Quantity" +msgstr "" + +#. module: commission_formula +#: model_terms:ir.ui.view,arch_db:commission_formula.commission_form +msgid "Sale Oder Line common fields" +msgstr "" + +#. module: commission_formula +#: model_terms:ir.ui.view,arch_db:commission_formula.commission_form +msgid "Subtotal" +msgstr "" + +#. module: commission_formula +#: model:ir.model.fields,field_description:commission_formula.field_commission__commission_type +msgid "Type" +msgstr "" + +#. module: commission_formula +#: model_terms:ir.ui.view,arch_db:commission_formula.commission_form +msgid "Unit Price" +msgstr "" diff --git a/commission_formula_oca/i18n/es.po b/commission_formula_oca/i18n/es.po new file mode 100644 index 000000000..4295648e3 --- /dev/null +++ b/commission_formula_oca/i18n/es.po @@ -0,0 +1,115 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * sale_commission_formula +# +# Translators: +# OCA Transbot , 2017 +# Luis M. Ontalba , 2017 +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 11.0\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2021-02-04 17:16+0000\n" +"PO-Revision-Date: 2021-03-17 15:45+0000\n" +"Last-Translator: Ana Suárez \n" +"Language-Team: Spanish (https://www.transifex.com/oca/teams/23907/es/)\n" +"Language: es\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=2; plural=n != 1;\n" +"X-Generator: Weblate 4.3.2\n" + +#. module: commission_formula +#: model_terms:ir.ui.view,arch_db:commission_formula.commission_form +msgid "" +"\n" +" Use 'line' to access all the line fields.\n" +" As field names may vary, you should differentiate the\n" +" formulas for sale.order.line and account.move.line.\n" +" You can, for instance, use line._name == 'sale.order.line'\n" +" or line._name == 'account.move.line'.\n" +"\n" +" Use 'result' to return the commission amount.\n" +" " +msgstr "" +"\n" +" Utilice 'line' para acceder a todos los campos de la línea.\n" +" Puesto que los nombres de los campos pueden variar, debería diferenciar\n" +" las fórmulas para sale.order.line y para account.invoice.line.\n" +" Puede, por ejemplo, usar line._name == 'sale.order.line'\n" +" ó line._name == 'account.invoice.line'.\n" +"\n" +" Utilice 'result' para obtener el importe de la comisión.\n" +" " + +#. module: commission_formula +#: model_terms:ir.ui.view,arch_db:commission_formula.commission_form +msgid "Account Move Line common fields" +msgstr "Campos comunes de las líneas de factura" + +#. module: commission_formula +#: model:ir.model,name:commission_formula.model_commission +#, fuzzy +msgid "Commission" +msgstr "Comisión en ventas" + +#. module: commission_formula +#: model_terms:ir.ui.view,arch_db:commission_formula.commission_form +msgid "Discount (%)" +msgstr "Descuento (%)" + +#. module: commission_formula +#: model_terms:ir.ui.view,arch_db:commission_formula.commission_form +msgid "Field" +msgstr "Campo" + +#. module: commission_formula +#: model:ir.model.fields,field_description:commission_formula.field_commission__formula +#: model:ir.model.fields.selection,name:commission_formula.selection__commission__commission_type__formula +msgid "Formula" +msgstr "Fórmula" + +#. module: commission_formula +#: model_terms:ir.ui.view,arch_db:commission_formula.commission_form +msgid "Instructions" +msgstr "Instrucciones" + +#. module: commission_formula +#: model_terms:ir.ui.view,arch_db:commission_formula.commission_form +msgid "Label" +msgstr "Etiqueta" + +#. module: commission_formula +#: model:ir.model,name:commission_formula.model_commission_line_mixin +msgid "" +"Mixin model for having commission agent lines in any object inheriting from " +"this one" +msgstr "" +"Modelo mixin para tener líneas de agente de comisiones en cualquier objeto " +"heredando de éste" + +#. module: commission_formula +#: model_terms:ir.ui.view,arch_db:commission_formula.commission_form +msgid "Quantity" +msgstr "Cantidad" + +#. module: commission_formula +#: model_terms:ir.ui.view,arch_db:commission_formula.commission_form +msgid "Sale Oder Line common fields" +msgstr "Campos comunes de las líneas de ordenes de venta" + +#. module: commission_formula +#: model_terms:ir.ui.view,arch_db:commission_formula.commission_form +msgid "Subtotal" +msgstr "Subtotal" + +#. module: commission_formula +#: model:ir.model.fields,field_description:commission_formula.field_commission__commission_type +msgid "Type" +msgstr "Tipo" + +#. module: commission_formula +#: model_terms:ir.ui.view,arch_db:commission_formula.commission_form +msgid "Unit Price" +msgstr "Precio Unitario" diff --git a/commission_formula_oca/i18n/es_AR.po b/commission_formula_oca/i18n/es_AR.po new file mode 100644 index 000000000..23542dcaa --- /dev/null +++ b/commission_formula_oca/i18n/es_AR.po @@ -0,0 +1,126 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * sale_commission_formula +# +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: commission_formula +#: model_terms:ir.ui.view,arch_db:commission_formula.commission_form +msgid "" +"\n" +" Use 'line' to access all the line fields.\n" +" As field names may vary, you should differentiate the\n" +" formulas for sale.order.line and account.move.line.\n" +" You can, for instance, use line._name == 'sale.order.line'\n" +" or line._name == 'account.move.line'.\n" +"\n" +" Use 'result' to return the commission amount.\n" +" " +msgstr "" +"\n" +" Utilice 'line' para acceder a todos los campos de línea.\n" +" Como los nombres de los campos pueden variar, debe diferenciar los\n" +" fórmulas para sale.order.line y account.move.line.\n" +" Puede, por ejemplo, utilizar line._name == 'sale.order.line'\n" +" o line._name == 'account.move.line'.\n" +"\n" +" Utilice 'resultado' para devolver el monto de la comisión.\n" +" " + +#. module: commission_formula +#: model_terms:ir.ui.view,arch_db:commission_formula.commission_form +msgid "Account Move Line common fields" +msgstr "Campos comunes de la Línea de Movimiento de Cuenta" + +#. module: commission_formula +#: model:ir.model,name:commission_formula.model_commission +#, fuzzy +msgid "Commission" +msgstr "Comisión en ventas" + +#. module: commission_formula +#: model_terms:ir.ui.view,arch_db:commission_formula.commission_form +msgid "Discount (%)" +msgstr "Descuento (%)" + +#. module: commission_formula +#: model_terms:ir.ui.view,arch_db:commission_formula.commission_form +msgid "Field" +msgstr "Campo" + +#. module: commission_formula +#: model:ir.model.fields,field_description:commission_formula.field_commission__formula +#: model:ir.model.fields.selection,name:commission_formula.selection__commission__commission_type__formula +msgid "Formula" +msgstr "Fórmula" + +#. module: commission_formula +#: model_terms:ir.ui.view,arch_db:commission_formula.commission_form +msgid "Instructions" +msgstr "Instrucciones" + +#. module: commission_formula +#: model_terms:ir.ui.view,arch_db:commission_formula.commission_form +msgid "Label" +msgstr "Etiqueta" + +#. module: commission_formula +#: model:ir.model,name:commission_formula.model_commission_line_mixin +msgid "" +"Mixin model for having commission agent lines in any object inheriting from " +"this one" +msgstr "" +"Modelo mixin para tener líneas de agente de comisiones en cualquier objeto " +"heredando de éste" + +#. module: commission_formula +#: model_terms:ir.ui.view,arch_db:commission_formula.commission_form +msgid "Quantity" +msgstr "Cantidad" + +#. module: commission_formula +#: model_terms:ir.ui.view,arch_db:commission_formula.commission_form +msgid "Sale Oder Line common fields" +msgstr "Campos comunes de la Línea de Orden de Venta" + +#. module: commission_formula +#: model_terms:ir.ui.view,arch_db:commission_formula.commission_form +msgid "Subtotal" +msgstr "Subtotal" + +#. module: commission_formula +#: model:ir.model.fields,field_description:commission_formula.field_commission__commission_type +msgid "Type" +msgstr "Tipo" + +#. module: commission_formula +#: model_terms:ir.ui.view,arch_db:commission_formula.commission_form +msgid "Unit Price" +msgstr "Precio Unitario" + +#~ msgid "discount" +#~ msgstr "discount" + +#~ msgid "price_subtotal" +#~ msgstr "price_subtotal" + +#~ msgid "price_unit" +#~ msgstr "price_unit" + +#~ msgid "product_uom_qty" +#~ msgstr "product_uom_qty" + +#~ msgid "quantity" +#~ msgstr "quantity" diff --git a/commission_formula_oca/i18n/fi.po b/commission_formula_oca/i18n/fi.po new file mode 100644 index 000000000..c287d2f2d --- /dev/null +++ b/commission_formula_oca/i18n/fi.po @@ -0,0 +1,101 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * sale_commission_formula +# +# Translators: +# OCA Transbot , 2017 +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 11.0\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2017-12-14 15:14+0000\n" +"PO-Revision-Date: 2017-12-14 15:14+0000\n" +"Last-Translator: OCA Transbot , 2017\n" +"Language-Team: Finnish (https://www.transifex.com/oca/teams/23907/fi/)\n" +"Language: fi\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: commission_formula +#: model_terms:ir.ui.view,arch_db:commission_formula.commission_form +msgid "" +"\n" +" Use 'line' to access all the line fields.\n" +" As field names may vary, you should differentiate the\n" +" formulas for sale.order.line and account.move.line.\n" +" You can, for instance, use line._name == 'sale.order.line'\n" +" or line._name == 'account.move.line'.\n" +"\n" +" Use 'result' to return the commission amount.\n" +" " +msgstr "" + +#. module: commission_formula +#: model_terms:ir.ui.view,arch_db:commission_formula.commission_form +msgid "Account Move Line common fields" +msgstr "" + +#. module: commission_formula +#: model:ir.model,name:commission_formula.model_commission +msgid "Commission" +msgstr "" + +#. module: commission_formula +#: model_terms:ir.ui.view,arch_db:commission_formula.commission_form +msgid "Discount (%)" +msgstr "Alennus-%" + +#. module: commission_formula +#: model_terms:ir.ui.view,arch_db:commission_formula.commission_form +msgid "Field" +msgstr "" + +#. module: commission_formula +#: model:ir.model.fields,field_description:commission_formula.field_commission__formula +#: model:ir.model.fields.selection,name:commission_formula.selection__commission__commission_type__formula +msgid "Formula" +msgstr "" + +#. module: commission_formula +#: model_terms:ir.ui.view,arch_db:commission_formula.commission_form +msgid "Instructions" +msgstr "" + +#. module: commission_formula +#: model_terms:ir.ui.view,arch_db:commission_formula.commission_form +msgid "Label" +msgstr "" + +#. module: commission_formula +#: model:ir.model,name:commission_formula.model_commission_line_mixin +msgid "" +"Mixin model for having commission agent lines in any object inheriting from " +"this one" +msgstr "" + +#. module: commission_formula +#: model_terms:ir.ui.view,arch_db:commission_formula.commission_form +msgid "Quantity" +msgstr "Määrä" + +#. module: commission_formula +#: model_terms:ir.ui.view,arch_db:commission_formula.commission_form +msgid "Sale Oder Line common fields" +msgstr "" + +#. module: commission_formula +#: model_terms:ir.ui.view,arch_db:commission_formula.commission_form +msgid "Subtotal" +msgstr "" + +#. module: commission_formula +#: model:ir.model.fields,field_description:commission_formula.field_commission__commission_type +msgid "Type" +msgstr "" + +#. module: commission_formula +#: model_terms:ir.ui.view,arch_db:commission_formula.commission_form +msgid "Unit Price" +msgstr "" diff --git a/commission_formula_oca/i18n/fr.po b/commission_formula_oca/i18n/fr.po new file mode 100644 index 000000000..ed052aeb0 --- /dev/null +++ b/commission_formula_oca/i18n/fr.po @@ -0,0 +1,101 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * sale_commission_formula +# +# Translators: +# OCA Transbot , 2017 +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 11.0\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2017-12-14 15:14+0000\n" +"PO-Revision-Date: 2017-12-14 15:14+0000\n" +"Last-Translator: OCA Transbot , 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: commission_formula +#: model_terms:ir.ui.view,arch_db:commission_formula.commission_form +msgid "" +"\n" +" Use 'line' to access all the line fields.\n" +" As field names may vary, you should differentiate the\n" +" formulas for sale.order.line and account.move.line.\n" +" You can, for instance, use line._name == 'sale.order.line'\n" +" or line._name == 'account.move.line'.\n" +"\n" +" Use 'result' to return the commission amount.\n" +" " +msgstr "" + +#. module: commission_formula +#: model_terms:ir.ui.view,arch_db:commission_formula.commission_form +msgid "Account Move Line common fields" +msgstr "" + +#. module: commission_formula +#: model:ir.model,name:commission_formula.model_commission +msgid "Commission" +msgstr "" + +#. module: commission_formula +#: model_terms:ir.ui.view,arch_db:commission_formula.commission_form +msgid "Discount (%)" +msgstr "Remise (%)" + +#. module: commission_formula +#: model_terms:ir.ui.view,arch_db:commission_formula.commission_form +msgid "Field" +msgstr "Champ" + +#. module: commission_formula +#: model:ir.model.fields,field_description:commission_formula.field_commission__formula +#: model:ir.model.fields.selection,name:commission_formula.selection__commission__commission_type__formula +msgid "Formula" +msgstr "" + +#. module: commission_formula +#: model_terms:ir.ui.view,arch_db:commission_formula.commission_form +msgid "Instructions" +msgstr "" + +#. module: commission_formula +#: model_terms:ir.ui.view,arch_db:commission_formula.commission_form +msgid "Label" +msgstr "" + +#. module: commission_formula +#: model:ir.model,name:commission_formula.model_commission_line_mixin +msgid "" +"Mixin model for having commission agent lines in any object inheriting from " +"this one" +msgstr "" + +#. module: commission_formula +#: model_terms:ir.ui.view,arch_db:commission_formula.commission_form +msgid "Quantity" +msgstr "Quantité" + +#. module: commission_formula +#: model_terms:ir.ui.view,arch_db:commission_formula.commission_form +msgid "Sale Oder Line common fields" +msgstr "" + +#. module: commission_formula +#: model_terms:ir.ui.view,arch_db:commission_formula.commission_form +msgid "Subtotal" +msgstr "Sous-total" + +#. module: commission_formula +#: model:ir.model.fields,field_description:commission_formula.field_commission__commission_type +msgid "Type" +msgstr "" + +#. module: commission_formula +#: model_terms:ir.ui.view,arch_db:commission_formula.commission_form +msgid "Unit Price" +msgstr "Prix Unitaire" diff --git a/commission_formula_oca/i18n/it.po b/commission_formula_oca/i18n/it.po new file mode 100644 index 000000000..4a4fb7552 --- /dev/null +++ b/commission_formula_oca/i18n/it.po @@ -0,0 +1,140 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * sale_commission_formula +# +# Translators: +# OCA Transbot , 2017 +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 11.0\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2017-12-14 15:14+0000\n" +"PO-Revision-Date: 2022-12-28 20:46+0000\n" +"Last-Translator: mymage \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.14.1\n" + +#. module: commission_formula +#: model_terms:ir.ui.view,arch_db:commission_formula.commission_form +msgid "" +"\n" +" Use 'line' to access all the line fields.\n" +" As field names may vary, you should differentiate the\n" +" formulas for sale.order.line and account.move.line.\n" +" You can, for instance, use line._name == 'sale.order.line'\n" +" or line._name == 'account.move.line'.\n" +"\n" +" Use 'result' to return the commission amount.\n" +" " +msgstr "" +"\n" +" Utilizzare 'line' per accedere a tutti i campi della riga.\n" +" Dato che i nomi dei campi possono variare, è necessario differenziare\n" +" le formule per sale.order.line e account.move.line.\n" +" È possibile, ad esempio, usare line._name == 'sale.order.line'\n" +" oppure line._name == 'account.move.line'.\n" +"\n" +" Utilizzare 'result' per restituire l'importo della provvigione.\n" +" " + +#. module: commission_formula +#: model_terms:ir.ui.view,arch_db:commission_formula.commission_form +msgid "Account Move Line common fields" +msgstr "Campi comuni righe movimenti contabili" + +#. module: commission_formula +#: model:ir.model,name:commission_formula.model_commission +msgid "Commission" +msgstr "Provvigione vendite" + +#. module: commission_formula +#: model_terms:ir.ui.view,arch_db:commission_formula.commission_form +msgid "Discount (%)" +msgstr "Sconto (%)" + +#. module: commission_formula +#: model_terms:ir.ui.view,arch_db:commission_formula.commission_form +msgid "Field" +msgstr "Campo" + +#. module: commission_formula +#: model:ir.model.fields,field_description:commission_formula.field_commission__formula +#: model:ir.model.fields.selection,name:commission_formula.selection__commission__commission_type__formula +msgid "Formula" +msgstr "Formula" + +#. module: commission_formula +#: model_terms:ir.ui.view,arch_db:commission_formula.commission_form +msgid "Instructions" +msgstr "Istruzioni" + +#. module: commission_formula +#: model_terms:ir.ui.view,arch_db:commission_formula.commission_form +msgid "Label" +msgstr "Etichetta" + +#. module: commission_formula +#: model:ir.model,name:commission_formula.model_commission_line_mixin +msgid "" +"Mixin model for having commission agent lines in any object inheriting from " +"this one" +msgstr "" +"Modello mixin per avere righe di provvigione agente in qualsiasi oggetto che " +"erediti dall'attuale" + +#. module: commission_formula +#: model_terms:ir.ui.view,arch_db:commission_formula.commission_form +msgid "Quantity" +msgstr "Quantità" + +#. module: commission_formula +#: model_terms:ir.ui.view,arch_db:commission_formula.commission_form +msgid "Sale Oder Line common fields" +msgstr "Campi comuni righe ordini di vendita" + +#. module: commission_formula +#: model_terms:ir.ui.view,arch_db:commission_formula.commission_form +msgid "Subtotal" +msgstr "Subtotale" + +#. module: commission_formula +#: model:ir.model.fields,field_description:commission_formula.field_commission__commission_type +msgid "Type" +msgstr "Tipo" + +#. module: commission_formula +#: model_terms:ir.ui.view,arch_db:commission_formula.commission_form +msgid "Unit Price" +msgstr "Prezzo unitario" + +#~ msgid "discount" +#~ msgstr "sconto" + +#~ msgid "price_subtotal" +#~ msgstr "price_subtotal" + +#~ msgid "price_unit" +#~ msgstr "price_unit" + +#~ msgid "product_uom_qty" +#~ msgstr "product_uom_qty" + +#~ msgid "quantity" +#~ msgstr "quantità" + +#~ msgid "By sections" +#~ msgstr "Per sezioni" + +#~ msgid "Fixed percentage" +#~ msgstr "Percentuale fissa" + +#~ msgid "account.invoice.line.agent" +#~ msgstr "account.invoice.line.agent" + +#~ msgid "sale.order.line.agent" +#~ msgstr "sale.order.line.agent" diff --git a/commission_formula_oca/i18n/pt.po b/commission_formula_oca/i18n/pt.po new file mode 100644 index 000000000..81abae3f0 --- /dev/null +++ b/commission_formula_oca/i18n/pt.po @@ -0,0 +1,113 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * sale_commission_formula +# +# Translators: +# OCA Transbot , 2017 +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 11.0\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2017-12-14 15:14+0000\n" +"PO-Revision-Date: 2019-10-16 13:32+0000\n" +"Last-Translator: Pedro Castro Silva \n" +"Language-Team: Portuguese (https://www.transifex.com/oca/teams/23907/pt/)\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: commission_formula +#: model_terms:ir.ui.view,arch_db:commission_formula.commission_form +msgid "" +"\n" +" Use 'line' to access all the line fields.\n" +" As field names may vary, you should differentiate the\n" +" formulas for sale.order.line and account.move.line.\n" +" You can, for instance, use line._name == 'sale.order.line'\n" +" or line._name == 'account.move.line'.\n" +"\n" +" Use 'result' to return the commission amount.\n" +" " +msgstr "" + +#. module: commission_formula +#: model_terms:ir.ui.view,arch_db:commission_formula.commission_form +#, fuzzy +msgid "Account Move Line common fields" +msgstr "Campos comuns da Linha de Fatura" + +#. module: commission_formula +#: model:ir.model,name:commission_formula.model_commission +#, fuzzy +msgid "Commission" +msgstr "Comissões nas vendas" + +#. module: commission_formula +#: model_terms:ir.ui.view,arch_db:commission_formula.commission_form +msgid "Discount (%)" +msgstr "Desconto (%)" + +#. module: commission_formula +#: model_terms:ir.ui.view,arch_db:commission_formula.commission_form +msgid "Field" +msgstr "Campo" + +#. module: commission_formula +#: model:ir.model.fields,field_description:commission_formula.field_commission__formula +#: model:ir.model.fields.selection,name:commission_formula.selection__commission__commission_type__formula +msgid "Formula" +msgstr "Fórmula" + +#. module: commission_formula +#: model_terms:ir.ui.view,arch_db:commission_formula.commission_form +msgid "Instructions" +msgstr "Instruções" + +#. module: commission_formula +#: model_terms:ir.ui.view,arch_db:commission_formula.commission_form +msgid "Label" +msgstr "Etiqueta" + +#. module: commission_formula +#: model:ir.model,name:commission_formula.model_commission_line_mixin +msgid "" +"Mixin model for having commission agent lines in any object inheriting from " +"this one" +msgstr "" + +#. module: commission_formula +#: model_terms:ir.ui.view,arch_db:commission_formula.commission_form +msgid "Quantity" +msgstr "Quantidade" + +#. module: commission_formula +#: model_terms:ir.ui.view,arch_db:commission_formula.commission_form +msgid "Sale Oder Line common fields" +msgstr "" + +#. module: commission_formula +#: model_terms:ir.ui.view,arch_db:commission_formula.commission_form +msgid "Subtotal" +msgstr "" + +#. module: commission_formula +#: model:ir.model.fields,field_description:commission_formula.field_commission__commission_type +msgid "Type" +msgstr "Tipo" + +#. module: commission_formula +#: model_terms:ir.ui.view,arch_db:commission_formula.commission_form +msgid "Unit Price" +msgstr "Preço Unitário" + +#~ msgid "discount" +#~ msgstr "desconto" + +#~ msgid "By sections" +#~ msgstr "Por secções" + +#~ msgid "Fixed percentage" +#~ msgstr "Percentagem fixa" diff --git a/commission_formula_oca/i18n/pt_BR.po b/commission_formula_oca/i18n/pt_BR.po new file mode 100644 index 000000000..d4a0382c9 --- /dev/null +++ b/commission_formula_oca/i18n/pt_BR.po @@ -0,0 +1,142 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * sale_commission_formula +# +# Translators: +# OCA Transbot , 2017 +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 11.0\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2017-12-14 15:14+0000\n" +"PO-Revision-Date: 2022-02-01 19:33+0000\n" +"Last-Translator: Rodrigo Macedo \n" +"Language-Team: Portuguese (Brazil) (https://www.transifex.com/oca/" +"teams/23907/pt_BR/)\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: commission_formula +#: model_terms:ir.ui.view,arch_db:commission_formula.commission_form +msgid "" +"\n" +" Use 'line' to access all the line fields.\n" +" As field names may vary, you should differentiate the\n" +" formulas for sale.order.line and account.move.line.\n" +" You can, for instance, use line._name == 'sale.order.line'\n" +" or line._name == 'account.move.line'.\n" +"\n" +" Use 'result' to return the commission amount.\n" +" " +msgstr "" +"\n" +" Use 'linha' para acessar todos os campos de linha.\n" +" Como os nomes de campo podem variar, você deve diferenciar o\n" +" fórmulas para sale.order.line e account.move.line.\n" +" Você pode, por exemplo, usar line._name == 'sale.order.line'\n" +" ou line._name == 'account.move.line'.\n" +"\n" +" Use 'resultado' para devolver o valor da comissão.\n" +" " + +#. module: commission_formula +#: model_terms:ir.ui.view,arch_db:commission_formula.commission_form +msgid "Account Move Line common fields" +msgstr "Campos comuns da linha de movimentação de conta" + +#. module: commission_formula +#: model:ir.model,name:commission_formula.model_commission +#, fuzzy +msgid "Commission" +msgstr "Comissões em Vendas" + +#. module: commission_formula +#: model_terms:ir.ui.view,arch_db:commission_formula.commission_form +msgid "Discount (%)" +msgstr "Desconto (%)" + +#. module: commission_formula +#: model_terms:ir.ui.view,arch_db:commission_formula.commission_form +msgid "Field" +msgstr "Campo" + +#. module: commission_formula +#: model:ir.model.fields,field_description:commission_formula.field_commission__formula +#: model:ir.model.fields.selection,name:commission_formula.selection__commission__commission_type__formula +msgid "Formula" +msgstr "Fórmula" + +#. module: commission_formula +#: model_terms:ir.ui.view,arch_db:commission_formula.commission_form +msgid "Instructions" +msgstr "Instruções" + +#. module: commission_formula +#: model_terms:ir.ui.view,arch_db:commission_formula.commission_form +msgid "Label" +msgstr "Rótulo" + +#. module: commission_formula +#: model:ir.model,name:commission_formula.model_commission_line_mixin +msgid "" +"Mixin model for having commission agent lines in any object inheriting from " +"this one" +msgstr "" +"Modelo de mixim para ter linhas de agente de comissão em qualquer objeto " +"herdando deste" + +#. module: commission_formula +#: model_terms:ir.ui.view,arch_db:commission_formula.commission_form +msgid "Quantity" +msgstr "Quantidade" + +#. module: commission_formula +#: model_terms:ir.ui.view,arch_db:commission_formula.commission_form +msgid "Sale Oder Line common fields" +msgstr "Campos comuns da Linha Order de Venda" + +#. module: commission_formula +#: model_terms:ir.ui.view,arch_db:commission_formula.commission_form +msgid "Subtotal" +msgstr "Subtotal" + +#. module: commission_formula +#: model:ir.model.fields,field_description:commission_formula.field_commission__commission_type +msgid "Type" +msgstr "Tipo" + +#. module: commission_formula +#: model_terms:ir.ui.view,arch_db:commission_formula.commission_form +msgid "Unit Price" +msgstr "Preço Unitário" + +#~ msgid "discount" +#~ msgstr "desconto" + +#~ msgid "price_subtotal" +#~ msgstr "price_subtotal" + +#~ msgid "price_unit" +#~ msgstr "price_unit" + +#~ msgid "product_uom_qty" +#~ msgstr "product_uom_qty" + +#~ msgid "quantity" +#~ msgstr "quantidade" + +#~ msgid "By sections" +#~ msgstr "Por Seções" + +#~ msgid "Fixed percentage" +#~ msgstr "Percentual fixo" + +#~ msgid "account.invoice.line.agent" +#~ msgstr "account.invoice.line.agent" + +#~ msgid "sale.order.line.agent" +#~ msgstr "sale.order.line.agent" diff --git a/commission_formula_oca/i18n/pt_PT.po b/commission_formula_oca/i18n/pt_PT.po new file mode 100644 index 000000000..94cdb1c5e --- /dev/null +++ b/commission_formula_oca/i18n/pt_PT.po @@ -0,0 +1,102 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * sale_commission_formula +# +# Translators: +# OCA Transbot , 2017 +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 11.0\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2017-12-14 15:14+0000\n" +"PO-Revision-Date: 2017-12-14 15:14+0000\n" +"Last-Translator: OCA Transbot , 2017\n" +"Language-Team: Portuguese (Portugal) (https://www.transifex.com/oca/" +"teams/23907/pt_PT/)\n" +"Language: pt_PT\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: \n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#. module: commission_formula +#: model_terms:ir.ui.view,arch_db:commission_formula.commission_form +msgid "" +"\n" +" Use 'line' to access all the line fields.\n" +" As field names may vary, you should differentiate the\n" +" formulas for sale.order.line and account.move.line.\n" +" You can, for instance, use line._name == 'sale.order.line'\n" +" or line._name == 'account.move.line'.\n" +"\n" +" Use 'result' to return the commission amount.\n" +" " +msgstr "" + +#. module: commission_formula +#: model_terms:ir.ui.view,arch_db:commission_formula.commission_form +msgid "Account Move Line common fields" +msgstr "" + +#. module: commission_formula +#: model:ir.model,name:commission_formula.model_commission +msgid "Commission" +msgstr "" + +#. module: commission_formula +#: model_terms:ir.ui.view,arch_db:commission_formula.commission_form +msgid "Discount (%)" +msgstr "Desconto (%)" + +#. module: commission_formula +#: model_terms:ir.ui.view,arch_db:commission_formula.commission_form +msgid "Field" +msgstr "" + +#. module: commission_formula +#: model:ir.model.fields,field_description:commission_formula.field_commission__formula +#: model:ir.model.fields.selection,name:commission_formula.selection__commission__commission_type__formula +msgid "Formula" +msgstr "" + +#. module: commission_formula +#: model_terms:ir.ui.view,arch_db:commission_formula.commission_form +msgid "Instructions" +msgstr "" + +#. module: commission_formula +#: model_terms:ir.ui.view,arch_db:commission_formula.commission_form +msgid "Label" +msgstr "" + +#. module: commission_formula +#: model:ir.model,name:commission_formula.model_commission_line_mixin +msgid "" +"Mixin model for having commission agent lines in any object inheriting from " +"this one" +msgstr "" + +#. module: commission_formula +#: model_terms:ir.ui.view,arch_db:commission_formula.commission_form +msgid "Quantity" +msgstr "" + +#. module: commission_formula +#: model_terms:ir.ui.view,arch_db:commission_formula.commission_form +msgid "Sale Oder Line common fields" +msgstr "" + +#. module: commission_formula +#: model_terms:ir.ui.view,arch_db:commission_formula.commission_form +msgid "Subtotal" +msgstr "" + +#. module: commission_formula +#: model:ir.model.fields,field_description:commission_formula.field_commission__commission_type +msgid "Type" +msgstr "" + +#. module: commission_formula +#: model_terms:ir.ui.view,arch_db:commission_formula.commission_form +msgid "Unit Price" +msgstr "" diff --git a/commission_formula_oca/i18n/ru.po b/commission_formula_oca/i18n/ru.po new file mode 100644 index 000000000..49b61715f --- /dev/null +++ b/commission_formula_oca/i18n/ru.po @@ -0,0 +1,103 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * sale_commission_formula +# +# Translators: +# OCA Transbot , 2017 +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 11.0\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2017-12-14 15:14+0000\n" +"PO-Revision-Date: 2017-12-14 15:14+0000\n" +"Last-Translator: OCA Transbot , 2017\n" +"Language-Team: Russian (https://www.transifex.com/oca/teams/23907/ru/)\n" +"Language: ru\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: \n" +"Plural-Forms: nplurals=4; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n" +"%10<=4 && (n%100<12 || n%100>14) ? 1 : n%10==0 || (n%10>=5 && n%10<=9) || (n" +"%100>=11 && n%100<=14)? 2 : 3);\n" + +#. module: commission_formula +#: model_terms:ir.ui.view,arch_db:commission_formula.commission_form +msgid "" +"\n" +" Use 'line' to access all the line fields.\n" +" As field names may vary, you should differentiate the\n" +" formulas for sale.order.line and account.move.line.\n" +" You can, for instance, use line._name == 'sale.order.line'\n" +" or line._name == 'account.move.line'.\n" +"\n" +" Use 'result' to return the commission amount.\n" +" " +msgstr "" + +#. module: commission_formula +#: model_terms:ir.ui.view,arch_db:commission_formula.commission_form +msgid "Account Move Line common fields" +msgstr "" + +#. module: commission_formula +#: model:ir.model,name:commission_formula.model_commission +msgid "Commission" +msgstr "" + +#. module: commission_formula +#: model_terms:ir.ui.view,arch_db:commission_formula.commission_form +msgid "Discount (%)" +msgstr "" + +#. module: commission_formula +#: model_terms:ir.ui.view,arch_db:commission_formula.commission_form +msgid "Field" +msgstr "Поле" + +#. module: commission_formula +#: model:ir.model.fields,field_description:commission_formula.field_commission__formula +#: model:ir.model.fields.selection,name:commission_formula.selection__commission__commission_type__formula +msgid "Formula" +msgstr "" + +#. module: commission_formula +#: model_terms:ir.ui.view,arch_db:commission_formula.commission_form +msgid "Instructions" +msgstr "" + +#. module: commission_formula +#: model_terms:ir.ui.view,arch_db:commission_formula.commission_form +msgid "Label" +msgstr "" + +#. module: commission_formula +#: model:ir.model,name:commission_formula.model_commission_line_mixin +msgid "" +"Mixin model for having commission agent lines in any object inheriting from " +"this one" +msgstr "" + +#. module: commission_formula +#: model_terms:ir.ui.view,arch_db:commission_formula.commission_form +msgid "Quantity" +msgstr "" + +#. module: commission_formula +#: model_terms:ir.ui.view,arch_db:commission_formula.commission_form +msgid "Sale Oder Line common fields" +msgstr "" + +#. module: commission_formula +#: model_terms:ir.ui.view,arch_db:commission_formula.commission_form +msgid "Subtotal" +msgstr "" + +#. module: commission_formula +#: model:ir.model.fields,field_description:commission_formula.field_commission__commission_type +msgid "Type" +msgstr "" + +#. module: commission_formula +#: model_terms:ir.ui.view,arch_db:commission_formula.commission_form +msgid "Unit Price" +msgstr "" diff --git a/commission_formula_oca/i18n/sale_commission_formula.pot b/commission_formula_oca/i18n/sale_commission_formula.pot new file mode 100644 index 000000000..79b858a86 --- /dev/null +++ b/commission_formula_oca/i18n/sale_commission_formula.pot @@ -0,0 +1,114 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * sale_commission_formula +# +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 14.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_formula +#: model_terms:ir.ui.view,arch_db:sale_commission_formula.sale_commission_form +msgid "" +"\n" +" Use 'line' to access all the line fields.\n" +" As field names may vary, you should differentiate the\n" +" formulas for sale.order.line and account.move.line.\n" +" You can, for instance, use line._name == 'sale.order.line'\n" +" or line._name == 'account.move.line'.\n" +"\n" +" Use 'result' to return the commission amount.\n" +" " +msgstr "" + +#. module: sale_commission_formula +#: model_terms:ir.ui.view,arch_db:sale_commission_formula.sale_commission_form +msgid "Account Move Line common fields" +msgstr "" + +#. module: sale_commission_formula +#: model:ir.model,name:sale_commission_formula.model_sale_commission +msgid "Commission in sales" +msgstr "" + +#. module: sale_commission_formula +#: model_terms:ir.ui.view,arch_db:sale_commission_formula.sale_commission_form +msgid "Discount (%)" +msgstr "" + +#. module: sale_commission_formula +#: model:ir.model.fields,field_description:sale_commission_formula.field_sale_commission__display_name +#: model:ir.model.fields,field_description:sale_commission_formula.field_sale_commission_line_mixin__display_name +msgid "Display Name" +msgstr "" + +#. module: sale_commission_formula +#: model_terms:ir.ui.view,arch_db:sale_commission_formula.sale_commission_form +msgid "Field" +msgstr "" + +#. module: sale_commission_formula +#: model:ir.model.fields,field_description:sale_commission_formula.field_sale_commission__formula +#: model:ir.model.fields.selection,name:sale_commission_formula.selection__sale_commission__commission_type__formula +msgid "Formula" +msgstr "" + +#. module: sale_commission_formula +#: model:ir.model.fields,field_description:sale_commission_formula.field_sale_commission__id +#: model:ir.model.fields,field_description:sale_commission_formula.field_sale_commission_line_mixin__id +msgid "ID" +msgstr "" + +#. module: sale_commission_formula +#: model_terms:ir.ui.view,arch_db:sale_commission_formula.sale_commission_form +msgid "Instructions" +msgstr "" + +#. module: sale_commission_formula +#: model_terms:ir.ui.view,arch_db:sale_commission_formula.sale_commission_form +msgid "Label" +msgstr "" + +#. module: sale_commission_formula +#: model:ir.model.fields,field_description:sale_commission_formula.field_sale_commission____last_update +#: model:ir.model.fields,field_description:sale_commission_formula.field_sale_commission_line_mixin____last_update +msgid "Last Modified on" +msgstr "" + +#. module: sale_commission_formula +#: model:ir.model,name:sale_commission_formula.model_sale_commission_line_mixin +msgid "" +"Mixin model for having commission agent lines in any object inheriting from " +"this one" +msgstr "" + +#. module: sale_commission_formula +#: model_terms:ir.ui.view,arch_db:sale_commission_formula.sale_commission_form +msgid "Quantity" +msgstr "" + +#. module: sale_commission_formula +#: model_terms:ir.ui.view,arch_db:sale_commission_formula.sale_commission_form +msgid "Sale Oder Line common fields" +msgstr "" + +#. module: sale_commission_formula +#: model_terms:ir.ui.view,arch_db:sale_commission_formula.sale_commission_form +msgid "Subtotal" +msgstr "" + +#. module: sale_commission_formula +#: model:ir.model.fields,field_description:sale_commission_formula.field_sale_commission__commission_type +msgid "Type" +msgstr "" + +#. module: sale_commission_formula +#: model_terms:ir.ui.view,arch_db:sale_commission_formula.sale_commission_form +msgid "Unit Price" +msgstr "" diff --git a/commission_formula_oca/i18n/sl.po b/commission_formula_oca/i18n/sl.po new file mode 100644 index 000000000..e13f904df --- /dev/null +++ b/commission_formula_oca/i18n/sl.po @@ -0,0 +1,124 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * sale_commission_formula +# +# Translators: +# OCA Transbot , 2017 +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 11.0\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2017-12-14 15:14+0000\n" +"PO-Revision-Date: 2017-12-14 15:14+0000\n" +"Last-Translator: OCA Transbot , 2017\n" +"Language-Team: Slovenian (https://www.transifex.com/oca/teams/23907/sl/)\n" +"Language: sl\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: \n" +"Plural-Forms: nplurals=4; plural=(n%100==1 ? 0 : n%100==2 ? 1 : n%100==3 || n" +"%100==4 ? 2 : 3);\n" + +#. module: commission_formula +#: model_terms:ir.ui.view,arch_db:commission_formula.commission_form +msgid "" +"\n" +" Use 'line' to access all the line fields.\n" +" As field names may vary, you should differentiate the\n" +" formulas for sale.order.line and account.move.line.\n" +" You can, for instance, use line._name == 'sale.order.line'\n" +" or line._name == 'account.move.line'.\n" +"\n" +" Use 'result' to return the commission amount.\n" +" " +msgstr "" + +#. module: commission_formula +#: model_terms:ir.ui.view,arch_db:commission_formula.commission_form +#, fuzzy +msgid "Account Move Line common fields" +msgstr "Pogosta polja postavk računa" + +#. module: commission_formula +#: model:ir.model,name:commission_formula.model_commission +#, fuzzy +msgid "Commission" +msgstr "Provizije pri prodaji" + +#. module: commission_formula +#: model_terms:ir.ui.view,arch_db:commission_formula.commission_form +msgid "Discount (%)" +msgstr "Popust (%)" + +#. module: commission_formula +#: model_terms:ir.ui.view,arch_db:commission_formula.commission_form +msgid "Field" +msgstr "Polje" + +#. module: commission_formula +#: model:ir.model.fields,field_description:commission_formula.field_commission__formula +#: model:ir.model.fields.selection,name:commission_formula.selection__commission__commission_type__formula +msgid "Formula" +msgstr "Formula" + +#. module: commission_formula +#: model_terms:ir.ui.view,arch_db:commission_formula.commission_form +msgid "Instructions" +msgstr "Navodila" + +#. module: commission_formula +#: model_terms:ir.ui.view,arch_db:commission_formula.commission_form +msgid "Label" +msgstr "Oznaka" + +#. module: commission_formula +#: model:ir.model,name:commission_formula.model_commission_line_mixin +msgid "" +"Mixin model for having commission agent lines in any object inheriting from " +"this one" +msgstr "" + +#. module: commission_formula +#: model_terms:ir.ui.view,arch_db:commission_formula.commission_form +msgid "Quantity" +msgstr "Količina" + +#. module: commission_formula +#: model_terms:ir.ui.view,arch_db:commission_formula.commission_form +msgid "Sale Oder Line common fields" +msgstr "Pogosta polja postavk prodajnega naloga" + +#. module: commission_formula +#: model_terms:ir.ui.view,arch_db:commission_formula.commission_form +msgid "Subtotal" +msgstr "Vmesni seštevek" + +#. module: commission_formula +#: model:ir.model.fields,field_description:commission_formula.field_commission__commission_type +msgid "Type" +msgstr "" + +#. module: commission_formula +#: model_terms:ir.ui.view,arch_db:commission_formula.commission_form +msgid "Unit Price" +msgstr "Cena enote" + +#~ msgid "discount" +#~ msgstr "discount" + +#~ msgid "price_subtotal" +#~ msgstr "price_subtotal" + +#~ msgid "price_unit" +#~ msgstr "price_unit" + +#~ msgid "product_uom_qty" +#~ msgstr "product_uom_qty" + +#~ msgid "quantity" +#~ msgstr "quantity" + +#, fuzzy +#~| msgid "Instructions" +#~ msgid "By sections" +#~ msgstr "Navodila" diff --git a/commission_formula_oca/i18n/tr.po b/commission_formula_oca/i18n/tr.po new file mode 100644 index 000000000..4af5314f5 --- /dev/null +++ b/commission_formula_oca/i18n/tr.po @@ -0,0 +1,101 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * sale_commission_formula +# +# Translators: +# OCA Transbot , 2017 +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 11.0\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2017-12-14 15:14+0000\n" +"PO-Revision-Date: 2017-12-14 15:14+0000\n" +"Last-Translator: OCA Transbot , 2017\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: commission_formula +#: model_terms:ir.ui.view,arch_db:commission_formula.commission_form +msgid "" +"\n" +" Use 'line' to access all the line fields.\n" +" As field names may vary, you should differentiate the\n" +" formulas for sale.order.line and account.move.line.\n" +" You can, for instance, use line._name == 'sale.order.line'\n" +" or line._name == 'account.move.line'.\n" +"\n" +" Use 'result' to return the commission amount.\n" +" " +msgstr "" + +#. module: commission_formula +#: model_terms:ir.ui.view,arch_db:commission_formula.commission_form +msgid "Account Move Line common fields" +msgstr "" + +#. module: commission_formula +#: model:ir.model,name:commission_formula.model_commission +msgid "Commission" +msgstr "" + +#. module: commission_formula +#: model_terms:ir.ui.view,arch_db:commission_formula.commission_form +msgid "Discount (%)" +msgstr "" + +#. module: commission_formula +#: model_terms:ir.ui.view,arch_db:commission_formula.commission_form +msgid "Field" +msgstr "Alan" + +#. module: commission_formula +#: model:ir.model.fields,field_description:commission_formula.field_commission__formula +#: model:ir.model.fields.selection,name:commission_formula.selection__commission__commission_type__formula +msgid "Formula" +msgstr "" + +#. module: commission_formula +#: model_terms:ir.ui.view,arch_db:commission_formula.commission_form +msgid "Instructions" +msgstr "" + +#. module: commission_formula +#: model_terms:ir.ui.view,arch_db:commission_formula.commission_form +msgid "Label" +msgstr "Etiket" + +#. module: commission_formula +#: model:ir.model,name:commission_formula.model_commission_line_mixin +msgid "" +"Mixin model for having commission agent lines in any object inheriting from " +"this one" +msgstr "" + +#. module: commission_formula +#: model_terms:ir.ui.view,arch_db:commission_formula.commission_form +msgid "Quantity" +msgstr "" + +#. module: commission_formula +#: model_terms:ir.ui.view,arch_db:commission_formula.commission_form +msgid "Sale Oder Line common fields" +msgstr "" + +#. module: commission_formula +#: model_terms:ir.ui.view,arch_db:commission_formula.commission_form +msgid "Subtotal" +msgstr "" + +#. module: commission_formula +#: model:ir.model.fields,field_description:commission_formula.field_commission__commission_type +msgid "Type" +msgstr "" + +#. module: commission_formula +#: model_terms:ir.ui.view,arch_db:commission_formula.commission_form +msgid "Unit Price" +msgstr "Birim Fiyatı" diff --git a/commission_formula_oca/i18n/tr_TR.po b/commission_formula_oca/i18n/tr_TR.po new file mode 100644 index 000000000..53cee5a39 --- /dev/null +++ b/commission_formula_oca/i18n/tr_TR.po @@ -0,0 +1,102 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * sale_commission_formula +# +# Translators: +# OCA Transbot , 2017 +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 11.0\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2017-12-14 15:14+0000\n" +"PO-Revision-Date: 2017-12-14 15:14+0000\n" +"Last-Translator: OCA Transbot , 2017\n" +"Language-Team: Turkish (Turkey) (https://www.transifex.com/oca/teams/23907/" +"tr_TR/)\n" +"Language: tr_TR\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" + +#. module: commission_formula +#: model_terms:ir.ui.view,arch_db:commission_formula.commission_form +msgid "" +"\n" +" Use 'line' to access all the line fields.\n" +" As field names may vary, you should differentiate the\n" +" formulas for sale.order.line and account.move.line.\n" +" You can, for instance, use line._name == 'sale.order.line'\n" +" or line._name == 'account.move.line'.\n" +"\n" +" Use 'result' to return the commission amount.\n" +" " +msgstr "" + +#. module: commission_formula +#: model_terms:ir.ui.view,arch_db:commission_formula.commission_form +msgid "Account Move Line common fields" +msgstr "" + +#. module: commission_formula +#: model:ir.model,name:commission_formula.model_commission +msgid "Commission" +msgstr "" + +#. module: commission_formula +#: model_terms:ir.ui.view,arch_db:commission_formula.commission_form +msgid "Discount (%)" +msgstr "İndirim (%)" + +#. module: commission_formula +#: model_terms:ir.ui.view,arch_db:commission_formula.commission_form +msgid "Field" +msgstr "" + +#. module: commission_formula +#: model:ir.model.fields,field_description:commission_formula.field_commission__formula +#: model:ir.model.fields.selection,name:commission_formula.selection__commission__commission_type__formula +msgid "Formula" +msgstr "" + +#. module: commission_formula +#: model_terms:ir.ui.view,arch_db:commission_formula.commission_form +msgid "Instructions" +msgstr "" + +#. module: commission_formula +#: model_terms:ir.ui.view,arch_db:commission_formula.commission_form +msgid "Label" +msgstr "" + +#. module: commission_formula +#: model:ir.model,name:commission_formula.model_commission_line_mixin +msgid "" +"Mixin model for having commission agent lines in any object inheriting from " +"this one" +msgstr "" + +#. module: commission_formula +#: model_terms:ir.ui.view,arch_db:commission_formula.commission_form +msgid "Quantity" +msgstr "Miktar" + +#. module: commission_formula +#: model_terms:ir.ui.view,arch_db:commission_formula.commission_form +msgid "Sale Oder Line common fields" +msgstr "" + +#. module: commission_formula +#: model_terms:ir.ui.view,arch_db:commission_formula.commission_form +msgid "Subtotal" +msgstr "" + +#. module: commission_formula +#: model:ir.model.fields,field_description:commission_formula.field_commission__commission_type +msgid "Type" +msgstr "" + +#. module: commission_formula +#: model_terms:ir.ui.view,arch_db:commission_formula.commission_form +msgid "Unit Price" +msgstr "Birim fiyat" diff --git a/commission_formula_oca/i18n/zh_CN.po b/commission_formula_oca/i18n/zh_CN.po new file mode 100644 index 000000000..e72c09b9a --- /dev/null +++ b/commission_formula_oca/i18n/zh_CN.po @@ -0,0 +1,136 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * sale_commission_formula +# +# Translators: +# OCA Transbot , 2017 +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 11.0\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2017-12-14 15:14+0000\n" +"PO-Revision-Date: 2019-09-18 17:02+0000\n" +"Last-Translator: 黎伟杰 <674416404@qq.com>\n" +"Language-Team: Chinese (China) (https://www.transifex.com/oca/teams/23907/" +"zh_CN/)\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: commission_formula +#: model_terms:ir.ui.view,arch_db:commission_formula.commission_form +#, fuzzy +msgid "" +"\n" +" Use 'line' to access all the line fields.\n" +" As field names may vary, you should differentiate the\n" +" formulas for sale.order.line and account.move.line.\n" +" You can, for instance, use line._name == 'sale.order.line'\n" +" or line._name == 'account.move.line'.\n" +"\n" +" Use 'result' to return the commission amount.\n" +" " +msgstr "" +"\n" +" 使用“line”访问所有行字段。\n" +" 由于字段名称可能会有所不同,您应区分\n" +" sale.order.line and account.invoice.line。\n" +" 例如,您可以使用 line._name == 'sale.order.line'\n" +" or line._name == 'account.invoice.line'。\n" +"\n" +" 使用'result'返回佣金金额。\n" +" " + +#. module: commission_formula +#: model_terms:ir.ui.view,arch_db:commission_formula.commission_form +#, fuzzy +msgid "Account Move Line common fields" +msgstr "帐户发票行常用字段" + +#. module: commission_formula +#: model:ir.model,name:commission_formula.model_commission +#, fuzzy +msgid "Commission" +msgstr "销售佣金" + +#. module: commission_formula +#: model_terms:ir.ui.view,arch_db:commission_formula.commission_form +msgid "Discount (%)" +msgstr "折扣(%)" + +#. module: commission_formula +#: model_terms:ir.ui.view,arch_db:commission_formula.commission_form +msgid "Field" +msgstr "字段" + +#. module: commission_formula +#: model:ir.model.fields,field_description:commission_formula.field_commission__formula +#: model:ir.model.fields.selection,name:commission_formula.selection__commission__commission_type__formula +msgid "Formula" +msgstr "公式" + +#. module: commission_formula +#: model_terms:ir.ui.view,arch_db:commission_formula.commission_form +msgid "Instructions" +msgstr "说明" + +#. module: commission_formula +#: model_terms:ir.ui.view,arch_db:commission_formula.commission_form +msgid "Label" +msgstr "标签" + +#. module: commission_formula +#: model:ir.model,name:commission_formula.model_commission_line_mixin +msgid "" +"Mixin model for having commission agent lines in any object inheriting from " +"this one" +msgstr "Mixin模型,用于在从此继承的任何对象中具有佣金代理行" + +#. module: commission_formula +#: model_terms:ir.ui.view,arch_db:commission_formula.commission_form +msgid "Quantity" +msgstr "数量" + +#. module: commission_formula +#: model_terms:ir.ui.view,arch_db:commission_formula.commission_form +msgid "Sale Oder Line common fields" +msgstr "销售订单行公用字段" + +#. module: commission_formula +#: model_terms:ir.ui.view,arch_db:commission_formula.commission_form +msgid "Subtotal" +msgstr "小计" + +#. module: commission_formula +#: model:ir.model.fields,field_description:commission_formula.field_commission__commission_type +msgid "Type" +msgstr "类型" + +#. module: commission_formula +#: model_terms:ir.ui.view,arch_db:commission_formula.commission_form +msgid "Unit Price" +msgstr "单价" + +#~ msgid "discount" +#~ msgstr "discount" + +#~ msgid "price_subtotal" +#~ msgstr "price_subtotal" + +#~ msgid "price_unit" +#~ msgstr "price_unit" + +#~ msgid "product_uom_qty" +#~ msgstr "product_uom_qty" + +#~ msgid "quantity" +#~ msgstr "quantity" + +#~ msgid "By sections" +#~ msgstr "按阶梯" + +#~ msgid "Fixed percentage" +#~ msgstr "固定百分比" diff --git a/commission_formula_oca/models/__init__.py b/commission_formula_oca/models/__init__.py new file mode 100644 index 000000000..0f3d712c0 --- /dev/null +++ b/commission_formula_oca/models/__init__.py @@ -0,0 +1,6 @@ +# Copyright 2016 Nicola Malcontenti - Agile Business Group +# Copyright 2016 Davide Corio - Abstract +# License AGPL-3 - See https://www.gnu.org/licenses/agpl-3.0.html + +from . import commission +from . import commission_mixin diff --git a/commission_formula_oca/models/commission.py b/commission_formula_oca/models/commission.py new file mode 100644 index 000000000..01d6c5b48 --- /dev/null +++ b/commission_formula_oca/models/commission.py @@ -0,0 +1,19 @@ +# Copyright 2016 Nicola Malcontenti - Agile Business Group +# Copyright 2016 Davide Corio - Abstract +# License AGPL-3 - See https://www.gnu.org/licenses/agpl-3.0.html + +from odoo import fields, models + + +class Commission(models.Model): + _inherit = "commission" + + commission_type = fields.Selection( + selection_add=[("formula", "Formula")], ondelete={"formula": "set default"} + ) + formula = fields.Text( + default="if line._name == 'sale.order.line':\n" + " result = 0\n" + "if line._name == 'account.move.line':\n" + " result = 0\n", + ) diff --git a/commission_formula_oca/models/commission_mixin.py b/commission_formula_oca/models/commission_mixin.py new file mode 100644 index 000000000..95f12bdcc --- /dev/null +++ b/commission_formula_oca/models/commission_mixin.py @@ -0,0 +1,34 @@ +# Copyright 2016 Nicola Malcontenti - Agile Business Group +# Copyright 2016 Davide Corio - Abstract +# Copyright 2018 Tecnativa - Pedro M. Baeza +# License AGPL-3 - See https://www.gnu.org/licenses/agpl-3.0.html + +from odoo import api, models +from odoo.tools.safe_eval import safe_eval + + +class CommissionLineMixin(models.AbstractModel): + _inherit = "commission.line.mixin" + + @api.model + def _get_formula_input_dict(self): + return { + "line": self.object_id, + "self": self, + } + + def _get_commission_amount(self, commission, subtotal, product, quantity): + """Get the commission amount for the data given. To be called by + compute methods of children models. + """ + self.ensure_one() + if ( + not product.commission_free + and commission + and commission.commission_type == "formula" + ): + formula = commission.formula + results = self._get_formula_input_dict() + safe_eval(formula, results, mode="exec", nocopy=True) + return float(results["result"]) + return super()._get_commission_amount(commission, subtotal, product, quantity) diff --git a/commission_formula_oca/readme/CONTRIBUTORS.rst b/commission_formula_oca/readme/CONTRIBUTORS.rst new file mode 100644 index 000000000..186905f1d --- /dev/null +++ b/commission_formula_oca/readme/CONTRIBUTORS.rst @@ -0,0 +1,6 @@ +* Davide Corio +* Nicola Malcontenti +* Duc, Dao Dong (https://komit-consulting.com) +* `NextERP Romania `_: + + * Fekete Mihai diff --git a/commission_formula_oca/readme/DESCRIPTION.rst b/commission_formula_oca/readme/DESCRIPTION.rst new file mode 100644 index 000000000..804df1178 --- /dev/null +++ b/commission_formula_oca/readme/DESCRIPTION.rst @@ -0,0 +1,2 @@ +This module extends commission to introduce the use of formulas to +compute the agent commissions. diff --git a/commission_formula_oca/readme/USAGE.rst b/commission_formula_oca/readme/USAGE.rst new file mode 100644 index 000000000..3d31dc19f --- /dev/null +++ b/commission_formula_oca/readme/USAGE.rst @@ -0,0 +1,3 @@ +To use this module, you need to: + +* Go to Commission > Configuration > Commission Types, and create a commission with type formula diff --git a/commission_formula_oca/static/description/icon.png b/commission_formula_oca/static/description/icon.png new file mode 100644 index 0000000000000000000000000000000000000000..32ba8951e90d87dc8c60f40a7fb84fbc88076654 GIT binary patch literal 20036 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 literal 0 HcmV?d00001 diff --git a/commission_formula_oca/static/description/icon.svg b/commission_formula_oca/static/description/icon.svg new file mode 100644 index 000000000..321ef28c4 --- /dev/null +++ b/commission_formula_oca/static/description/icon.svg @@ -0,0 +1,3225 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 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/commission_formula_oca/static/description/index.html b/commission_formula_oca/static/description/index.html new file mode 100644 index 000000000..7cb934068 --- /dev/null +++ b/commission_formula_oca/static/description/index.html @@ -0,0 +1,421 @@ + + + + + + +Commission Formula + + + +
+

Commission Formula

+ + +

Beta AGPL-3

+

This module extends commission to introduce the use of formulas to +compute the agent commissions.

+

Table of contents

+ +
+

Usage

+

To use this module, you need to:

+
    +
  • Go to Commission > Configuration > Commission Types, and create a commission with type formula
  • +
+
+
+

Credits

+
+

Authors

+
    +
  • Abstract
  • +
+
+ +
+

Maintainers

+

This module is maintained by Exo Software.

+

Contact the maintainer through their official support channels in case you find +any issues with this module.

+
+
+
+ + diff --git a/commission_formula_oca/static/src/css/commission_formula.css b/commission_formula_oca/static/src/css/commission_formula.css new file mode 100644 index 000000000..5513285b2 --- /dev/null +++ b/commission_formula_oca/static/src/css/commission_formula.css @@ -0,0 +1,12 @@ +.fields-table { + margin-top: 20px; + margin-bottom: 20px; +} +.fields-table * td { + width: 200px; +} +.instructions { + white-space: pre-wrap; + margin-top: 10px; + margin-bottom: 10px; +} diff --git a/commission_formula_oca/views/commission_view.xml b/commission_formula_oca/views/commission_view.xml new file mode 100644 index 000000000..0030048f8 --- /dev/null +++ b/commission_formula_oca/views/commission_view.xml @@ -0,0 +1,84 @@ + + + + commission.form.inherit + commission + + + + + + + + + +

Instructions

+ + Use 'line' to access all the line fields. + As field names may vary, you should differentiate the + formulas for sale.order.line and account.move.line. + You can, for instance, use line._name == 'sale.order.line' + or line._name == 'account.move.line'. + + Use 'result' to return the commission amount. + +

Sale Oder Line common fields

+ + + + + + + + + + + + + + + + + + + + + + + +
FieldLabel
discountDiscount (%)
price_subtotalSubtotal
price_unitUnit Price
product_uom_qtyQuantity
+

Account Move Line common fields

+ + + + + + + + + + + + + + + + + + + + + + + +
FieldLabel
discountDiscount (%)
price_subtotalSubtotal
price_unitUnit Price
quantityQuantity
+
+
+
+ +
+
+
From 002dc85d102f28c7e977631c07076096e2cd2652 Mon Sep 17 00:00:00 2001 From: andre Date: Tue, 17 Oct 2023 12:44:57 +0100 Subject: [PATCH 02/18] [16.0][IMP] added widget ace to formula field --- commission_formula_oca/README.rst | 51 +++++++++++++++---- .../i18n/commission_formula.pot | 2 +- .../static/description/index.html | 51 ++++++++++++------- .../views/commission_view.xml | 1 + 4 files changed, 76 insertions(+), 29 deletions(-) diff --git a/commission_formula_oca/README.rst b/commission_formula_oca/README.rst index f7948ef2f..549be93d3 100644 --- a/commission_formula_oca/README.rst +++ b/commission_formula_oca/README.rst @@ -2,19 +2,31 @@ Commission Formula ================== -.. !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! +.. + !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! !! This file is generated by oca-gen-addon-readme !! !! changes will be overwritten. !! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! + !! source digest: sha256:e38e634a16c01a3fb18e7fd4c6ae4422af4b58a7e95a223e2c294c101d8dece4 + !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! -.. |badge_devstat| image:: https://img.shields.io/badge/maturity-beta-brightgreen.png +.. |badge1| image:: https://img.shields.io/badge/maturity-Beta-yellow.png :target: https://odoo-community.org/page/development-status :alt: Beta - -.. |badge_license| image:: https://img.shields.io/badge/license-AGPL--3-blue.png - :alt: AGPL-3 - -|badge_devstat| |badge_license| +.. |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/16.0/commission_formula + :alt: OCA/commission +.. |badge4| image:: https://img.shields.io/badge/weblate-Translate%20me-F47D42.png + :target: https://translation.odoo-community.org/projects/commission-16-0/commission-16-0-commission_formula + :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=16.0 + :alt: Try me on Runboat + +|badge1| |badge2| |badge3| |badge4| |badge5| This module extends commission to introduce the use of formulas to compute the agent commissions. @@ -31,6 +43,16 @@ To use this module, you need to: * Go to Commission > Configuration > Commission Types, and create a commission with type formula +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 ======= @@ -52,7 +74,16 @@ Contributors Maintainers ~~~~~~~~~~~ -This module is maintained by Exo Software. +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. -Contact the maintainer through their official support channels in case you find -any issues with this module. +You are welcome to contribute. To learn how please visit https://odoo-community.org/page/Contribute. diff --git a/commission_formula_oca/i18n/commission_formula.pot b/commission_formula_oca/i18n/commission_formula.pot index b00578477..fc34297e2 100644 --- a/commission_formula_oca/i18n/commission_formula.pot +++ b/commission_formula_oca/i18n/commission_formula.pot @@ -4,7 +4,7 @@ # msgid "" msgstr "" -"Project-Id-Version: Odoo Server 15.0\n" +"Project-Id-Version: Odoo Server 16.0\n" "Report-Msgid-Bugs-To: \n" "Last-Translator: \n" "Language-Team: \n" diff --git a/commission_formula_oca/static/description/index.html b/commission_formula_oca/static/description/index.html index 7cb934068..3496ccd6a 100644 --- a/commission_formula_oca/static/description/index.html +++ b/commission_formula_oca/static/description/index.html @@ -1,20 +1,20 @@ - + - + Commission Formula -
-

Commission Formula

+
+ + +Odoo Community Association + +
+

Commission Formula OCA

-

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

+

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

This module extends commission to introduce the use of formulas to compute the agent commissions.

Table of contents

@@ -385,7 +391,7 @@

Commission Formula

-

Usage

+

Usage

To use this module, you need to:

  • Go to Commission > Configuration > Commission Types, and create a @@ -393,23 +399,23 @@

    Usage

-

Bug Tracker

+

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.

+feedback.

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

-

Credits

+

Credits

-

Authors

+

Authors

  • Abstract
-

Contributors

+

Contributors

-

Maintainers

+

Maintainers

This module is maintained by the OCA.

-Odoo Community Association + +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.

+

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/commission_formula_oca/static/src/css/commission_formula.css b/commission_formula_oca/static/src/css/commission_formula_oca.css similarity index 100% rename from commission_formula_oca/static/src/css/commission_formula.css rename to commission_formula_oca/static/src/css/commission_formula_oca.css diff --git a/commission_formula_oca/views/commission_view.xml b/commission_formula_oca/views/commission_view.xml index 6844ccb37..b4220d7bb 100644 --- a/commission_formula_oca/views/commission_view.xml +++ b/commission_formula_oca/views/commission_view.xml @@ -3,7 +3,7 @@ commission.form.inherit commission - + From d4ccc081480620ed5eb85ff5ffc6d2f814592867 Mon Sep 17 00:00:00 2001 From: Mohamed Essam Salem Date: Sun, 17 May 2026 11:31:56 +0000 Subject: [PATCH 17/18] Added translation using Weblate (Arabic) --- commission_formula_oca/i18n/ar.po | 106 ++++++++++++++++++++++++++++++ 1 file changed, 106 insertions(+) create mode 100644 commission_formula_oca/i18n/ar.po diff --git a/commission_formula_oca/i18n/ar.po b/commission_formula_oca/i18n/ar.po new file mode 100644 index 000000000..1d8c68e18 --- /dev/null +++ b/commission_formula_oca/i18n/ar.po @@ -0,0 +1,106 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * commission_formula_oca +# +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 18.0\n" +"Report-Msgid-Bugs-To: \n" +"Last-Translator: Automatically generated\n" +"Language-Team: none\n" +"Language: ar\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: \n" +"Plural-Forms: nplurals=6; plural=n==0 ? 0 : n==1 ? 1 : n==2 ? 2 : n%100>=3 " +"&& n%100<=10 ? 3 : n%100>=11 ? 4 : 5;\n" + +#. module: commission_formula_oca +#: model_terms:ir.ui.view,arch_db:commission_formula_oca.commission_form +msgid "" +"\n" +" Use 'line' to access all the line fields.\n" +" As field names may vary, you should differentiate the\n" +" formulas for sale.order.line and account.move.line.\n" +" You can, for instance, use line._name == 'sale.order.line'\n" +" or line._name == 'account.move.line'.\n" +"\n" +" Use 'result' to return the commission amount.\n" +" " +msgstr "" + +#. module: commission_formula_oca +#: model_terms:ir.ui.view,arch_db:commission_formula_oca.commission_form +msgid "Account Move Line common fields" +msgstr "" + +#. module: commission_formula_oca +#: model:ir.model,name:commission_formula_oca.model_commission +msgid "Commission" +msgstr "" + +#. module: commission_formula_oca +#: model_terms:ir.ui.view,arch_db:commission_formula_oca.commission_form +msgid "Discount (%)" +msgstr "" + +#. module: commission_formula_oca +#: model_terms:ir.ui.view,arch_db:commission_formula_oca.commission_form +msgid "Field" +msgstr "" + +#. module: commission_formula_oca +#: model:ir.model.fields,field_description:commission_formula_oca.field_commission__formula +#: model:ir.model.fields.selection,name:commission_formula_oca.selection__commission__commission_type__formula +msgid "Formula" +msgstr "" + +#. module: commission_formula_oca +#: model_terms:ir.ui.view,arch_db:commission_formula_oca.commission_form +msgid "Instructions" +msgstr "" + +#. module: commission_formula_oca +#: model_terms:ir.ui.view,arch_db:commission_formula_oca.commission_form +msgid "Label" +msgstr "" + +#. module: commission_formula_oca +#: model:ir.model,name:commission_formula_oca.model_commission_line_mixin +msgid "" +"Mixin model for having commission agent lines in any object inheriting from " +"this one" +msgstr "" + +#. module: commission_formula_oca +#: model_terms:ir.ui.view,arch_db:commission_formula_oca.commission_form +msgid "Quantity" +msgstr "" + +#. module: commission_formula_oca +#: model_terms:ir.ui.view,arch_db:commission_formula_oca.commission_form +msgid "Sale Oder Line common fields" +msgstr "" + +#. module: commission_formula_oca +#: model:ir.model.fields,help:commission_formula_oca.field_commission__commission_type +msgid "" +"Select the percentage type of the commission:\n" +"* 'Fixed percentage': all commissions are computed with a fixed percentage. You can fill the percentage in the field \"Fixed percentage\".\n" +"* 'By sections': percentage varies depending amount intervals. You can fill intervals and percentages in the section \"Rate definition\"." +msgstr "" + +#. module: commission_formula_oca +#: model_terms:ir.ui.view,arch_db:commission_formula_oca.commission_form +msgid "Subtotal" +msgstr "" + +#. module: commission_formula_oca +#: model:ir.model.fields,field_description:commission_formula_oca.field_commission__commission_type +msgid "Type" +msgstr "" + +#. module: commission_formula_oca +#: model_terms:ir.ui.view,arch_db:commission_formula_oca.commission_form +msgid "Unit Price" +msgstr "" From 1b43093209057a72b700646961195764626602f6 Mon Sep 17 00:00:00 2001 From: Juan Carlos Date: Mon, 15 Jun 2026 23:17:01 +0200 Subject: [PATCH 18/18] [MIG] commission_formula_oca: Migration to 19.0 --- commission_formula_oca/README.rst | 10 ++-- commission_formula_oca/__manifest__.py | 4 +- .../models/commission_mixin.py | 2 +- .../static/description/index.html | 6 +-- commission_formula_oca/tests/__init__.py | 4 ++ .../tests/test_commission_formula.py | 51 +++++++++++++++++++ 6 files changed, 66 insertions(+), 11 deletions(-) create mode 100644 commission_formula_oca/tests/__init__.py create mode 100644 commission_formula_oca/tests/test_commission_formula.py diff --git a/commission_formula_oca/README.rst b/commission_formula_oca/README.rst index 51249f7f1..fe004bfef 100644 --- a/commission_formula_oca/README.rst +++ b/commission_formula_oca/README.rst @@ -21,13 +21,13 @@ Commission Formula OCA :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/18.0/commission_formula_oca + :target: https://github.com/OCA/commission/tree/19.0/commission_formula_oca :alt: OCA/commission .. |badge4| image:: https://img.shields.io/badge/weblate-Translate%20me-F47D42.png - :target: https://translation.odoo-community.org/projects/commission-18-0/commission-18-0-commission_formula_oca + :target: https://translation.odoo-community.org/projects/commission-19-0/commission-19-0-commission_formula_oca :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=18.0 + :target: https://runboat.odoo-community.org/builds?repo=OCA/commission&target_branch=19.0 :alt: Try me on Runboat |badge1| |badge2| |badge3| |badge4| |badge5| @@ -54,7 +54,7 @@ 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 `_. +`feedback `_. Do not contact contributors directly about support or help with technical issues. @@ -94,6 +94,6 @@ 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. +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/commission_formula_oca/__manifest__.py b/commission_formula_oca/__manifest__.py index 36144bf5f..0284bc4b3 100644 --- a/commission_formula_oca/__manifest__.py +++ b/commission_formula_oca/__manifest__.py @@ -4,13 +4,13 @@ # License AGPL-3 - See https://www.gnu.org/licenses/agpl-3.0.html { "name": "Commission Formula OCA", - "version": "18.0.1.0.0", + "version": "19.0.1.0.0", "category": "Commission", "license": "AGPL-3", "summary": "Commissions computed by formulas", "author": "Abstract,Odoo Community Association (OCA)", "website": "https://github.com/OCA/commission", - "depends": ["commission_oca", "account"], + "depends": ["account_commission_oca"], "data": ["views/commission_view.xml"], "demo": ["demo/commission_demo.xml"], "assets": { diff --git a/commission_formula_oca/models/commission_mixin.py b/commission_formula_oca/models/commission_mixin.py index 95f12bdcc..406149d0c 100644 --- a/commission_formula_oca/models/commission_mixin.py +++ b/commission_formula_oca/models/commission_mixin.py @@ -29,6 +29,6 @@ def _get_commission_amount(self, commission, subtotal, product, quantity): ): formula = commission.formula results = self._get_formula_input_dict() - safe_eval(formula, results, mode="exec", nocopy=True) + safe_eval(formula, results, mode="exec") return float(results["result"]) return super()._get_commission_amount(commission, subtotal, product, quantity) diff --git a/commission_formula_oca/static/description/index.html b/commission_formula_oca/static/description/index.html index 5620b4d53..926bace53 100644 --- a/commission_formula_oca/static/description/index.html +++ b/commission_formula_oca/static/description/index.html @@ -374,7 +374,7 @@

Commission Formula OCA

!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! !! source digest: sha256:a9e63a8cf3e0058bb5db7b36d09cc4ff0b59f7b332eba9b9253689fa2b0b06d0 !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! --> -

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

+

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

This module extends commission to introduce the use of formulas to compute the agent commissions.

Table of contents

@@ -403,7 +403,7 @@

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.

+feedback.

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

@@ -440,7 +440,7 @@

Maintainers

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.

+

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/commission_formula_oca/tests/__init__.py b/commission_formula_oca/tests/__init__.py new file mode 100644 index 000000000..ee6fa79ac --- /dev/null +++ b/commission_formula_oca/tests/__init__.py @@ -0,0 +1,4 @@ +# Copyright 2026 Zhintek - Juan C. Bonilla +# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl). + +from . import test_commission_formula diff --git a/commission_formula_oca/tests/test_commission_formula.py b/commission_formula_oca/tests/test_commission_formula.py new file mode 100644 index 000000000..2e752558a --- /dev/null +++ b/commission_formula_oca/tests/test_commission_formula.py @@ -0,0 +1,51 @@ +# Copyright 2026 Zhintek - Juan C. Bonilla +# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl). + +from odoo.tests import tagged + +from odoo.addons.account_commission_oca.tests.test_account_commission import ( + TestAccountCommission, +) + + +@tagged("post_install", "-at_install") +class TestCommissionFormula(TestAccountCommission): + @classmethod + def setUpClass(cls): + super().setUpClass() + cls.commission_formula = cls.commission_model.create( + { + "name": "Formula commission for tests", + "commission_type": "formula", + "formula": ( + "result = 0\n" + "if self.object_id == line:\n" + " result = line.price_subtotal * 0.05\n" + ), + } + ) + + def test_get_commission_amount_uses_formula_context(self): + invoice = self._create_invoice(self.agent_monthly, self.commission_formula) + line_agent = invoice.invoice_line_ids.agent_ids + + line_agent._compute_amount() + + expected = self.product.list_price * 0.05 + self.assertAlmostEqual(line_agent.amount, expected) + + def test_get_commission_amount_skips_formula_for_commission_free_product(self): + self.product.commission_free = True + commission = self.commission_model.create( + { + "name": "Formula commission skipped for free products", + "commission_type": "formula", + "formula": "result = 100.0", + } + ) + invoice = self._create_invoice(self.agent_monthly, commission) + line_agent = invoice.invoice_line_ids.agent_ids + + line_agent._compute_amount() + + self.assertAlmostEqual(line_agent.amount, 0.0)