Initial commit: Odoo 18.0-20251222 extra-addons
Some checks failed
pre-commit / pre-commit (push) Has been cancelled
tests / Detect unreleased dependencies (push) Has been cancelled
tests / test with OCB (push) Has been cancelled
tests / test with Odoo (push) Has been cancelled

This commit is contained in:
tocmo0nlord
2026-03-13 20:43:25 +00:00
parent 36e847a7df
commit adbe430761
9472 changed files with 1265727 additions and 0 deletions

View File

@@ -0,0 +1,121 @@
===================================
Price recalculation in sales orders
===================================
..
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!! This file is generated by oca-gen-addon-readme !!
!! changes will be overwritten. !!
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!! source digest: sha256:2e230fc1d703cdf20f1a9b373ca05ceb2f599b79204b0dfd03b836b424cc077c
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
.. |badge1| image:: https://img.shields.io/badge/maturity-Beta-yellow.png
:target: https://odoo-community.org/page/development-status
:alt: Beta
.. |badge2| image:: https://img.shields.io/badge/licence-AGPL--3-blue.png
:target: http://www.gnu.org/licenses/agpl-3.0-standalone.html
:alt: License: AGPL-3
.. |badge3| image:: https://img.shields.io/badge/github-OCA%2Fsale--workflow-lightgray.png?logo=github
:target: https://github.com/OCA/sale-workflow/tree/18.0/sale_order_price_recalculation
:alt: OCA/sale-workflow
.. |badge4| image:: https://img.shields.io/badge/weblate-Translate%20me-F47D42.png
:target: https://translation.odoo-community.org/projects/sale-workflow-18-0/sale-workflow-18-0-sale_order_price_recalculation
: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/sale-workflow&target_branch=18.0
:alt: Try me on Runboat
|badge1| |badge2| |badge3| |badge4| |badge5|
This module adds 2 buttons on sale orders (below sale order lines) that:
- Recalculates the prices of the order lines that contain a product in
them.
- Reset product descriptions from current product information.
It is launched manually as a button to get the user to decide if they
want to recalculate prices when the pricelist is changed or, after
duplicating a sale order, wether to update sales information or not.
**Table of contents**
.. contents::
:local:
Installation
============
You need to install sale_management module for accessing the needed
menus.
Usage
=====
Inside a sale order, you can click on "Recalculate prices" to launch a
recalculation of all the prices of the lines, losing previous custom
prices.
The second "Reset descriptions" will get descriptions from products,
losing custom descriptions.
|Sale order price recalculation|
.. |Sale order price recalculation| image:: https://raw.githubusercontent.com/sale_order_price_recalculation/static/description/sale_order_price_recalculation.drawio.png
Known issues / Roadmap
======================
- In a sale order with lot of lines, the recalculation may slow down,
because sale general data (amount untaxed, amount taxed...) are
recalculated for each line.
Bug Tracker
===========
Bugs are tracked on `GitHub Issues <https://github.com/OCA/sale-workflow/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 <https://github.com/OCA/sale-workflow/issues/new?body=module:%20sale_order_price_recalculation%0Aversion:%2018.0%0A%0A**Steps%20to%20reproduce**%0A-%20...%0A%0A**Current%20behavior**%0A%0A**Expected%20behavior**>`_.
Do not contact contributors directly about support or help with technical issues.
Credits
=======
Authors
-------
* AvanzOSC
* Grupo Vermon
* Tecnativa
Contributors
------------
- Carlos Sánchez Cifuentes <csanchez@grupovermon.com>
- Pedro M. Baeza <pedro.baeza@tecnativa.com>
- Oihane Crucelaegui <oihanecrucelaegi@avanzosc.es>
- Pierre Verkest <pverkest@anybox.fr>
- Vicent Cubells <vicent.cubells@tecnativa.com>
- David Vidal <david.vidal@tecnativa.com>
- Duc, Dao Dong <duc.dd@komit-consulting.com>
(https://komit-consulting.com)
- Raf Ven <raf.ven@dynapps.be>
Maintainers
-----------
This module is maintained by the OCA.
.. image:: https://odoo-community.org/logo.png
:alt: Odoo Community Association
:target: https://odoo-community.org
OCA, or the Odoo Community Association, is a nonprofit organization whose
mission is to support the collaborative development of Odoo features and
promote its widespread use.
This module is part of the `OCA/sale-workflow <https://github.com/OCA/sale-workflow/tree/18.0/sale_order_price_recalculation>`_ project on GitHub.
You are welcome to contribute. To learn how please visit https://odoo-community.org/page/Contribute.

View File

@@ -0,0 +1 @@
from . import models

View File

@@ -0,0 +1,23 @@
# Copyright 2014 Carlos Sánchez Cifuentes <csanchez@grupovermon.com>
# Copyright 2015-2020 Tecnativa - Pedro M. Baeza
# Copyright 2015 Oihane Crucelaegui <oihanecrucelaegi@avanzosc.es>
# Copyright 2016 Vicent Cubells <vicent.cubells@tecnativa.com>
# Copyright 2017 David Vidal <david.vidal@tecnativa.com>
# Copyright 2018 Duc Dao Dong <duc.dd@komit-consulting.com>
# License AGPL-3 - See http://www.gnu.org/licenses/agpl-3.0.html
{
"name": "Price recalculation in sales orders",
"summary": "Recalculate prices / Reset descriptions on sale order lines",
"version": "18.0.1.0.0",
"category": "Sales Management",
"website": "https://github.com/OCA/sale-workflow",
"author": "AvanzOSC,"
"Grupo Vermon,"
"Tecnativa,"
"Odoo Community Association (OCA)",
"license": "AGPL-3",
"application": False,
"installable": True,
"depends": ["sale"],
"data": ["views/sale_order_view.xml"],
}

View File

@@ -0,0 +1,39 @@
# Translation of Odoo Server.
# This file contains the translation of the following modules:
# * sale_order_price_recalculation
#
# Translators:
# OCA Transbot <transbot@odoo-community.org>, 2017
msgid ""
msgstr ""
"Project-Id-Version: Odoo Server 9.0c\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2017-04-25 02:52+0000\n"
"PO-Revision-Date: 2017-04-25 02:52+0000\n"
"Last-Translator: OCA Transbot <transbot@odoo-community.org>, 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: sale_order_price_recalculation
#: model_terms:ir.ui.view,arch_db:sale_order_price_recalculation.view_order_form
msgid "Recalculate prices"
msgstr ""
#. module: sale_order_price_recalculation
#: model_terms:ir.ui.view,arch_db:sale_order_price_recalculation.view_order_form
msgid "Reset descriptions"
msgstr ""
#. module: sale_order_price_recalculation
#: model:ir.model,name:sale_order_price_recalculation.model_sale_order
msgid "Sales Order"
msgstr ""
#, fuzzy
#~| msgid "Sales Order"
#~ msgid "Sale Order"
#~ msgstr "Comandes de venda"

View File

@@ -0,0 +1,38 @@
# Translation of Odoo Server.
# This file contains the translation of the following modules:
# * sale_order_price_recalculation
#
# Translators:
msgid ""
msgstr ""
"Project-Id-Version: sale-workflow (8.0)\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2015-09-09 12:27+0000\n"
"PO-Revision-Date: 2019-07-15 16:43+0000\n"
"Last-Translator: Maria Sparenberg <maria.sparenberg@gmx.net>\n"
"Language-Team: German (http://www.transifex.com/oca/OCA-sale-workflow-8-0/"
"language/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.7.1\n"
#. module: sale_order_price_recalculation
#: model_terms:ir.ui.view,arch_db:sale_order_price_recalculation.view_order_form
msgid "Recalculate prices"
msgstr "Preise neu berechnen"
#. module: sale_order_price_recalculation
#: model_terms:ir.ui.view,arch_db:sale_order_price_recalculation.view_order_form
msgid "Reset descriptions"
msgstr "Beschreibung zurücksetzen"
#. module: sale_order_price_recalculation
#: model:ir.model,name:sale_order_price_recalculation.model_sale_order
msgid "Sales Order"
msgstr ""
#~ msgid "Sale Order"
#~ msgstr "Verkaufsauftrag"

View File

@@ -0,0 +1,40 @@
# Translation of Odoo Server.
# This file contains the translation of the following modules:
# * sale_order_price_recalculation
#
# Translators:
# Kostas Goutoudis <goutoudis@gmail.com>, 2017
msgid ""
msgstr ""
"Project-Id-Version: Odoo Server 9.0c\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2017-04-25 02:52+0000\n"
"PO-Revision-Date: 2017-04-25 02:52+0000\n"
"Last-Translator: Kostas Goutoudis <goutoudis@gmail.com>, 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: sale_order_price_recalculation
#: model_terms:ir.ui.view,arch_db:sale_order_price_recalculation.view_order_form
msgid "Recalculate prices"
msgstr ""
#. module: sale_order_price_recalculation
#: model_terms:ir.ui.view,arch_db:sale_order_price_recalculation.view_order_form
msgid "Reset descriptions"
msgstr ""
#. module: sale_order_price_recalculation
#: model:ir.model,name:sale_order_price_recalculation.model_sale_order
msgid "Sales Order"
msgstr ""
#, fuzzy
#~| msgid "Sales Order"
#~ msgid "Sale Order"
#~ msgstr "Εντολή Πώλησης"

View File

@@ -0,0 +1,38 @@
# Translation of Odoo Server.
# This file contains the translation of the following modules:
# * sale_order_price_recalculation
#
# Translators:
msgid ""
msgstr ""
"Project-Id-Version: sale-workflow (8.0)\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2015-09-09 12:27+0000\n"
"PO-Revision-Date: 2023-12-18 20:10+0000\n"
"Last-Translator: Ivorra78 <informatica@totmaterial.es>\n"
"Language-Team: Spanish (http://www.transifex.com/oca/OCA-sale-workflow-8-0/"
"language/es/)\n"
"Language: es\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: \n"
"Plural-Forms: nplurals=2; plural=n != 1;\n"
"X-Generator: Weblate 4.17\n"
#. module: sale_order_price_recalculation
#: model_terms:ir.ui.view,arch_db:sale_order_price_recalculation.view_order_form
msgid "Recalculate prices"
msgstr "Recalcular precios"
#. module: sale_order_price_recalculation
#: model_terms:ir.ui.view,arch_db:sale_order_price_recalculation.view_order_form
msgid "Reset descriptions"
msgstr "Restablecer descripciones"
#. module: sale_order_price_recalculation
#: model:ir.model,name:sale_order_price_recalculation.model_sale_order
msgid "Sales Order"
msgstr "Orden de Venta"
#~ msgid "Sale Order"
#~ msgstr "Pedido de venta"

View File

@@ -0,0 +1,40 @@
# Translation of Odoo Server.
# This file contains the translation of the following modules:
# * sale_order_price_recalculation
#
# Translators:
# OCA Transbot <transbot@odoo-community.org>, 2017
msgid ""
msgstr ""
"Project-Id-Version: Odoo Server 9.0c\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2017-04-25 02:52+0000\n"
"PO-Revision-Date: 2017-04-25 02:52+0000\n"
"Last-Translator: OCA Transbot <transbot@odoo-community.org>, 2017\n"
"Language-Team: Spanish (Spain) (https://www.transifex.com/oca/teams/23907/"
"es_ES/)\n"
"Language: es_ES\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: \n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
#. module: sale_order_price_recalculation
#: model_terms:ir.ui.view,arch_db:sale_order_price_recalculation.view_order_form
msgid "Recalculate prices"
msgstr "Recalcular precios"
#. module: sale_order_price_recalculation
#: model_terms:ir.ui.view,arch_db:sale_order_price_recalculation.view_order_form
msgid "Reset descriptions"
msgstr "Restablecer descripciones"
#. module: sale_order_price_recalculation
#: model:ir.model,name:sale_order_price_recalculation.model_sale_order
msgid "Sales Order"
msgstr ""
#, fuzzy
#~| msgid "Sales Order"
#~ msgid "Sale Order"
#~ msgstr "Pedido de venta"

View File

@@ -0,0 +1,40 @@
# Translation of Odoo Server.
# This file contains the translation of the following modules:
# * sale_order_price_recalculation
#
# Translators:
# OCA Transbot <transbot@odoo-community.org>, 2017
msgid ""
msgstr ""
"Project-Id-Version: Odoo Server 9.0c\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2017-04-25 02:52+0000\n"
"PO-Revision-Date: 2017-04-25 02:52+0000\n"
"Last-Translator: OCA Transbot <transbot@odoo-community.org>, 2017\n"
"Language-Team: Spanish (Venezuela) (https://www.transifex.com/oca/"
"teams/23907/es_VE/)\n"
"Language: es_VE\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: \n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
#. module: sale_order_price_recalculation
#: model_terms:ir.ui.view,arch_db:sale_order_price_recalculation.view_order_form
msgid "Recalculate prices"
msgstr ""
#. module: sale_order_price_recalculation
#: model_terms:ir.ui.view,arch_db:sale_order_price_recalculation.view_order_form
msgid "Reset descriptions"
msgstr ""
#. module: sale_order_price_recalculation
#: model:ir.model,name:sale_order_price_recalculation.model_sale_order
msgid "Sales Order"
msgstr ""
#, fuzzy
#~| msgid "Sales Order"
#~ msgid "Sale Order"
#~ msgstr "Pedidos de venta"

View File

@@ -0,0 +1,39 @@
# Translation of Odoo Server.
# This file contains the translation of the following modules:
# * sale_order_price_recalculation
#
# Translators:
msgid ""
msgstr ""
"Project-Id-Version: sale-workflow (8.0)\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2015-09-09 12:27+0000\n"
"PO-Revision-Date: 2015-09-03 07:09+0000\n"
"Last-Translator: <>\n"
"Language-Team: Finnish (http://www.transifex.com/oca/OCA-sale-workflow-8-0/"
"language/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: sale_order_price_recalculation
#: model_terms:ir.ui.view,arch_db:sale_order_price_recalculation.view_order_form
msgid "Recalculate prices"
msgstr ""
#. module: sale_order_price_recalculation
#: model_terms:ir.ui.view,arch_db:sale_order_price_recalculation.view_order_form
msgid "Reset descriptions"
msgstr ""
#. module: sale_order_price_recalculation
#: model:ir.model,name:sale_order_price_recalculation.model_sale_order
msgid "Sales Order"
msgstr ""
#, fuzzy
#~| msgid "Sales Order"
#~ msgid "Sale Order"
#~ msgstr "Myyntitilaus"

View File

@@ -0,0 +1,39 @@
# Translation of Odoo Server.
# This file contains the translation of the following modules:
# * sale_order_price_recalculation
#
# Translators:
msgid ""
msgstr ""
"Project-Id-Version: sale-workflow (8.0)\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2015-09-09 12:27+0000\n"
"PO-Revision-Date: 2015-09-03 07:09+0000\n"
"Last-Translator: <>\n"
"Language-Team: French (http://www.transifex.com/oca/OCA-sale-workflow-8-0/"
"language/fr/)\n"
"Language: fr\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: \n"
"Plural-Forms: nplurals=2; plural=(n > 1);\n"
#. module: sale_order_price_recalculation
#: model_terms:ir.ui.view,arch_db:sale_order_price_recalculation.view_order_form
msgid "Recalculate prices"
msgstr ""
#. module: sale_order_price_recalculation
#: model_terms:ir.ui.view,arch_db:sale_order_price_recalculation.view_order_form
msgid "Reset descriptions"
msgstr ""
#. module: sale_order_price_recalculation
#: model:ir.model,name:sale_order_price_recalculation.model_sale_order
msgid "Sales Order"
msgstr ""
#, fuzzy
#~| msgid "Sales Order"
#~ msgid "Sale Order"
#~ msgstr "Bon de commande"

View File

@@ -0,0 +1,40 @@
# Translation of Odoo Server.
# This file contains the translation of the following modules:
# * sale_order_price_recalculation
#
# Translators:
msgid ""
msgstr ""
"Project-Id-Version: sale-workflow (8.0)\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2016-11-22 23:35+0000\n"
"PO-Revision-Date: 2015-09-03 07:09+0000\n"
"Last-Translator: <>\n"
"Language-Team: Croatian (http://www.transifex.com/oca/OCA-sale-workflow-8-0/"
"language/hr/)\n"
"Language: hr\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: \n"
"Plural-Forms: nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && n"
"%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n"
#. module: sale_order_price_recalculation
#: model_terms:ir.ui.view,arch_db:sale_order_price_recalculation.view_order_form
msgid "Recalculate prices"
msgstr ""
#. module: sale_order_price_recalculation
#: model_terms:ir.ui.view,arch_db:sale_order_price_recalculation.view_order_form
msgid "Reset descriptions"
msgstr ""
#. module: sale_order_price_recalculation
#: model:ir.model,name:sale_order_price_recalculation.model_sale_order
msgid "Sales Order"
msgstr ""
#, fuzzy
#~| msgid "Sales Order"
#~ msgid "Sale Order"
#~ msgstr "Prodajni nalog"

View File

@@ -0,0 +1,41 @@
# Translation of Odoo Server.
# This file contains the translation of the following modules:
# * sale_order_price_recalculation
#
# Translators:
# Bole <bole@dajmi5.com>, 2017
msgid ""
msgstr ""
"Project-Id-Version: Odoo Server 9.0c\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2017-04-25 02:52+0000\n"
"PO-Revision-Date: 2017-04-25 02:52+0000\n"
"Last-Translator: Bole <bole@dajmi5.com>, 2017\n"
"Language-Team: Croatian (Croatia) (https://www.transifex.com/oca/teams/23907/"
"hr_HR/)\n"
"Language: hr_HR\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: \n"
"Plural-Forms: nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && n"
"%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n"
#. module: sale_order_price_recalculation
#: model_terms:ir.ui.view,arch_db:sale_order_price_recalculation.view_order_form
msgid "Recalculate prices"
msgstr ""
#. module: sale_order_price_recalculation
#: model_terms:ir.ui.view,arch_db:sale_order_price_recalculation.view_order_form
msgid "Reset descriptions"
msgstr ""
#. module: sale_order_price_recalculation
#: model:ir.model,name:sale_order_price_recalculation.model_sale_order
msgid "Sales Order"
msgstr ""
#, fuzzy
#~| msgid "Sales Order"
#~ msgid "Sale Order"
#~ msgstr "Prodjani nalog"

View File

@@ -0,0 +1,39 @@
# Translation of Odoo Server.
# This file contains the translation of the following modules:
# * sale_order_price_recalculation
#
# Translators:
# OCA Transbot <transbot@odoo-community.org>, 2017
msgid ""
msgstr ""
"Project-Id-Version: Odoo Server 9.0c\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2017-04-25 02:52+0000\n"
"PO-Revision-Date: 2017-04-25 02:52+0000\n"
"Last-Translator: OCA Transbot <transbot@odoo-community.org>, 2017\n"
"Language-Team: Hungarian (https://www.transifex.com/oca/teams/23907/hu/)\n"
"Language: hu\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: \n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
#. module: sale_order_price_recalculation
#: model_terms:ir.ui.view,arch_db:sale_order_price_recalculation.view_order_form
msgid "Recalculate prices"
msgstr ""
#. module: sale_order_price_recalculation
#: model_terms:ir.ui.view,arch_db:sale_order_price_recalculation.view_order_form
msgid "Reset descriptions"
msgstr ""
#. module: sale_order_price_recalculation
#: model:ir.model,name:sale_order_price_recalculation.model_sale_order
msgid "Sales Order"
msgstr ""
#, fuzzy
#~| msgid "Sales Order"
#~ msgid "Sale Order"
#~ msgstr "Vevői megrendelés"

View File

@@ -0,0 +1,38 @@
# Translation of Odoo Server.
# This file contains the translation of the following modules:
# * sale_order_price_recalculation
#
# Translators:
# OCA Transbot <transbot@odoo-community.org>, 2017
msgid ""
msgstr ""
"Project-Id-Version: Odoo Server 9.0c\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2017-04-25 02:52+0000\n"
"PO-Revision-Date: 2023-12-15 15:36+0000\n"
"Last-Translator: mymage <stefano.consolaro@mymage.it>\n"
"Language-Team: Italian (https://www.transifex.com/oca/teams/23907/it/)\n"
"Language: it\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: \n"
"Plural-Forms: nplurals=2; plural=n != 1;\n"
"X-Generator: Weblate 4.17\n"
#. module: sale_order_price_recalculation
#: model_terms:ir.ui.view,arch_db:sale_order_price_recalculation.view_order_form
msgid "Recalculate prices"
msgstr "Ricalcola prezzi"
#. module: sale_order_price_recalculation
#: model_terms:ir.ui.view,arch_db:sale_order_price_recalculation.view_order_form
msgid "Reset descriptions"
msgstr "Resetta descrizioni"
#. module: sale_order_price_recalculation
#: model:ir.model,name:sale_order_price_recalculation.model_sale_order
msgid "Sales Order"
msgstr "Ordine di vendita"
#~ msgid "Sale Order"
#~ msgstr "Ordine di vendita"

View File

@@ -0,0 +1,39 @@
# Translation of Odoo Server.
# This file contains the translation of the following modules:
# * sale_order_price_recalculation
#
# Translators:
msgid ""
msgstr ""
"Project-Id-Version: sale-workflow (8.0)\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2015-10-23 08:14+0000\n"
"PO-Revision-Date: 2015-09-03 07:09+0000\n"
"Last-Translator: <>\n"
"Language-Team: Dutch (http://www.transifex.com/oca/OCA-sale-workflow-8-0/"
"language/nl/)\n"
"Language: nl\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: \n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
#. module: sale_order_price_recalculation
#: model_terms:ir.ui.view,arch_db:sale_order_price_recalculation.view_order_form
msgid "Recalculate prices"
msgstr ""
#. module: sale_order_price_recalculation
#: model_terms:ir.ui.view,arch_db:sale_order_price_recalculation.view_order_form
msgid "Reset descriptions"
msgstr ""
#. module: sale_order_price_recalculation
#: model:ir.model,name:sale_order_price_recalculation.model_sale_order
msgid "Sales Order"
msgstr ""
#, fuzzy
#~| msgid "Sales Order"
#~ msgid "Sale Order"
#~ msgstr "Verkooporder"

View File

@@ -0,0 +1,40 @@
# Translation of Odoo Server.
# This file contains the translation of the following modules:
# * sale_order_price_recalculation
#
# Translators:
# Peter Hageman <hageman.p@gmail.com>, 2017
msgid ""
msgstr ""
"Project-Id-Version: Odoo Server 10.0\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2017-08-10 02:45+0000\n"
"PO-Revision-Date: 2017-08-10 02:45+0000\n"
"Last-Translator: Peter Hageman <hageman.p@gmail.com>, 2017\n"
"Language-Team: Dutch (Netherlands) (https://www.transifex.com/oca/"
"teams/23907/nl_NL/)\n"
"Language: nl_NL\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: \n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
#. module: sale_order_price_recalculation
#: model_terms:ir.ui.view,arch_db:sale_order_price_recalculation.view_order_form
msgid "Recalculate prices"
msgstr ""
#. module: sale_order_price_recalculation
#: model_terms:ir.ui.view,arch_db:sale_order_price_recalculation.view_order_form
msgid "Reset descriptions"
msgstr ""
#. module: sale_order_price_recalculation
#: model:ir.model,name:sale_order_price_recalculation.model_sale_order
msgid "Sales Order"
msgstr ""
#, fuzzy
#~| msgid "Sales Order"
#~ msgid "Sale Order"
#~ msgstr "Verkooporder"

View File

@@ -0,0 +1,39 @@
# Translation of Odoo Server.
# This file contains the translation of the following modules:
# * sale_order_price_recalculation
#
# Translators:
# Daniel Reis <dreis.pt@gmail.com>, 2017
msgid ""
msgstr ""
"Project-Id-Version: Odoo Server 9.0c\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2017-04-25 02:52+0000\n"
"PO-Revision-Date: 2017-04-25 02:52+0000\n"
"Last-Translator: Daniel Reis <dreis.pt@gmail.com>, 2017\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"
#. module: sale_order_price_recalculation
#: model_terms:ir.ui.view,arch_db:sale_order_price_recalculation.view_order_form
msgid "Recalculate prices"
msgstr ""
#. module: sale_order_price_recalculation
#: model_terms:ir.ui.view,arch_db:sale_order_price_recalculation.view_order_form
msgid "Reset descriptions"
msgstr ""
#. module: sale_order_price_recalculation
#: model:ir.model,name:sale_order_price_recalculation.model_sale_order
msgid "Sales Order"
msgstr ""
#, fuzzy
#~| msgid "Sales Order"
#~ msgid "Sale Order"
#~ msgstr "Ordem de Venda"

View File

@@ -0,0 +1,39 @@
# Translation of Odoo Server.
# This file contains the translation of the following modules:
# * sale_order_price_recalculation
#
# Translators:
# OCA Transbot <transbot@odoo-community.org>, 2017
msgid ""
msgstr ""
"Project-Id-Version: Odoo Server 9.0c\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2017-04-25 02:52+0000\n"
"PO-Revision-Date: 2023-12-28 23:43+0000\n"
"Last-Translator: Adriano Prado <adrianojprado@gmail.com>\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.17\n"
#. module: sale_order_price_recalculation
#: model_terms:ir.ui.view,arch_db:sale_order_price_recalculation.view_order_form
msgid "Recalculate prices"
msgstr "Recalcular preços"
#. module: sale_order_price_recalculation
#: model_terms:ir.ui.view,arch_db:sale_order_price_recalculation.view_order_form
msgid "Reset descriptions"
msgstr "Redefinir descrições"
#. module: sale_order_price_recalculation
#: model:ir.model,name:sale_order_price_recalculation.model_sale_order
msgid "Sales Order"
msgstr "Pedidos de Venda"
#~ msgid "Sale Order"
#~ msgstr "Ordem de Venda"

View File

@@ -0,0 +1,40 @@
# Translation of Odoo Server.
# This file contains the translation of the following modules:
# * sale_order_price_recalculation
#
# Translators:
# Dorin Hongu <dhongu@gmail.com>, 2017
msgid ""
msgstr ""
"Project-Id-Version: Odoo Server 9.0c\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2017-04-25 02:52+0000\n"
"PO-Revision-Date: 2017-04-25 02:52+0000\n"
"Last-Translator: Dorin Hongu <dhongu@gmail.com>, 2017\n"
"Language-Team: Romanian (https://www.transifex.com/oca/teams/23907/ro/)\n"
"Language: ro\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: \n"
"Plural-Forms: nplurals=3; plural=(n==1?0:(((n%100>19)||((n%100==0)&&(n!=0)))?"
"2:1));\n"
#. module: sale_order_price_recalculation
#: model_terms:ir.ui.view,arch_db:sale_order_price_recalculation.view_order_form
msgid "Recalculate prices"
msgstr ""
#. module: sale_order_price_recalculation
#: model_terms:ir.ui.view,arch_db:sale_order_price_recalculation.view_order_form
msgid "Reset descriptions"
msgstr ""
#. module: sale_order_price_recalculation
#: model:ir.model,name:sale_order_price_recalculation.model_sale_order
msgid "Sales Order"
msgstr ""
#, fuzzy
#~| msgid "Sales Order"
#~ msgid "Sale Order"
#~ msgstr "Comandă vânzare"

View File

@@ -0,0 +1,29 @@
# Translation of Odoo Server.
# This file contains the translation of the following modules:
# * sale_order_price_recalculation
#
msgid ""
msgstr ""
"Project-Id-Version: Odoo Server 18.0\n"
"Report-Msgid-Bugs-To: \n"
"Last-Translator: \n"
"Language-Team: \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: \n"
"Plural-Forms: \n"
#. module: sale_order_price_recalculation
#: model_terms:ir.ui.view,arch_db:sale_order_price_recalculation.view_order_form
msgid "Recalculate prices"
msgstr ""
#. module: sale_order_price_recalculation
#: model_terms:ir.ui.view,arch_db:sale_order_price_recalculation.view_order_form
msgid "Reset descriptions"
msgstr ""
#. module: sale_order_price_recalculation
#: model:ir.model,name:sale_order_price_recalculation.model_sale_order
msgid "Sales Order"
msgstr ""

View File

@@ -0,0 +1,42 @@
# Translation of Odoo Server.
# This file contains the translation of the following modules:
# * sale_order_price_recalculation
#
# Translators:
# Matjaž Mozetič <m.mozetic@matmoz.si>, 2015
msgid ""
msgstr ""
"Project-Id-Version: sale-workflow (8.0)\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2015-09-09 12:27+0000\n"
"PO-Revision-Date: 2015-09-07 14:31+0000\n"
"Last-Translator: Matjaž Mozetič <m.mozetic@matmoz.si>\n"
"Language-Team: Slovenian (http://www.transifex.com/oca/OCA-sale-workflow-8-0/"
"language/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: sale_order_price_recalculation
#: model_terms:ir.ui.view,arch_db:sale_order_price_recalculation.view_order_form
#, fuzzy
msgid "Recalculate prices"
msgstr "(Preračun cen)"
#. module: sale_order_price_recalculation
#: model_terms:ir.ui.view,arch_db:sale_order_price_recalculation.view_order_form
msgid "Reset descriptions"
msgstr ""
#. module: sale_order_price_recalculation
#: model:ir.model,name:sale_order_price_recalculation.model_sale_order
msgid "Sales Order"
msgstr ""
#, fuzzy
#~| msgid "Sales Order"
#~ msgid "Sale Order"
#~ msgstr "Prodajni nalog"

View File

@@ -0,0 +1,39 @@
# Translation of Odoo Server.
# This file contains the translation of the following modules:
# * sale_order_price_recalculation
#
# Translators:
msgid ""
msgstr ""
"Project-Id-Version: sale-workflow (8.0)\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2015-12-05 23:35+0000\n"
"PO-Revision-Date: 2015-09-03 07:09+0000\n"
"Last-Translator: <>\n"
"Language-Team: Turkish (http://www.transifex.com/oca/OCA-sale-workflow-8-0/"
"language/tr/)\n"
"Language: tr\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: \n"
"Plural-Forms: nplurals=2; plural=(n > 1);\n"
#. module: sale_order_price_recalculation
#: model_terms:ir.ui.view,arch_db:sale_order_price_recalculation.view_order_form
msgid "Recalculate prices"
msgstr ""
#. module: sale_order_price_recalculation
#: model_terms:ir.ui.view,arch_db:sale_order_price_recalculation.view_order_form
msgid "Reset descriptions"
msgstr ""
#. module: sale_order_price_recalculation
#: model:ir.model,name:sale_order_price_recalculation.model_sale_order
msgid "Sales Order"
msgstr ""
#, fuzzy
#~| msgid "Sales Order"
#~ msgid "Sale Order"
#~ msgstr "Sipariş Emri"

View File

@@ -0,0 +1,41 @@
# Translation of Odoo Server.
# This file contains the translation of the following modules:
# * sale_order_price_recalculation
#
# Translators:
# Ozge Altinisik <ozge@altinkaya.com.tr>, 2017
# OCA Transbot <transbot@odoo-community.org>, 2017
msgid ""
msgstr ""
"Project-Id-Version: Odoo Server 9.0c\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2017-04-25 02:52+0000\n"
"PO-Revision-Date: 2017-04-25 02:52+0000\n"
"Last-Translator: OCA Transbot <transbot@odoo-community.org>, 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: sale_order_price_recalculation
#: model_terms:ir.ui.view,arch_db:sale_order_price_recalculation.view_order_form
msgid "Recalculate prices"
msgstr "Fiyatları yeniden hesapla"
#. module: sale_order_price_recalculation
#: model_terms:ir.ui.view,arch_db:sale_order_price_recalculation.view_order_form
msgid "Reset descriptions"
msgstr "Açıklamaları yeniden ayarla"
#. module: sale_order_price_recalculation
#: model:ir.model,name:sale_order_price_recalculation.model_sale_order
msgid "Sales Order"
msgstr ""
#, fuzzy
#~| msgid "Sales Order"
#~ msgid "Sale Order"
#~ msgstr "Satış emri"

View File

@@ -0,0 +1,40 @@
# Translation of Odoo Server.
# This file contains the translation of the following modules:
# * sale_order_price_recalculation
#
# Translators:
# OCA Transbot <transbot@odoo-community.org>, 2017
msgid ""
msgstr ""
"Project-Id-Version: Odoo Server 9.0c\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2017-04-25 02:52+0000\n"
"PO-Revision-Date: 2017-04-25 02:52+0000\n"
"Last-Translator: OCA Transbot <transbot@odoo-community.org>, 2017\n"
"Language-Team: Vietnamese (Viet Nam) (https://www.transifex.com/oca/"
"teams/23907/vi_VN/)\n"
"Language: vi_VN\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: sale_order_price_recalculation
#: model_terms:ir.ui.view,arch_db:sale_order_price_recalculation.view_order_form
msgid "Recalculate prices"
msgstr ""
#. module: sale_order_price_recalculation
#: model_terms:ir.ui.view,arch_db:sale_order_price_recalculation.view_order_form
msgid "Reset descriptions"
msgstr ""
#. module: sale_order_price_recalculation
#: model:ir.model,name:sale_order_price_recalculation.model_sale_order
msgid "Sales Order"
msgstr ""
#, fuzzy
#~| msgid "Sales Order"
#~ msgid "Sale Order"
#~ msgstr "Đơn hàng Bán"

View File

@@ -0,0 +1,38 @@
# Translation of Odoo Server.
# This file contains the translation of the following modules:
# * sale_order_price_recalculation
#
# Translators:
msgid ""
msgstr ""
"Project-Id-Version: sale-workflow (8.0)\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2015-09-09 12:27+0000\n"
"PO-Revision-Date: 2019-09-01 11:23+0000\n"
"Last-Translator: 黎伟杰 <674416404@qq.com>\n"
"Language-Team: Chinese (China) (http://www.transifex.com/oca/OCA-sale-"
"workflow-8-0/language/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: sale_order_price_recalculation
#: model_terms:ir.ui.view,arch_db:sale_order_price_recalculation.view_order_form
msgid "Recalculate prices"
msgstr "重新计算价格"
#. module: sale_order_price_recalculation
#: model_terms:ir.ui.view,arch_db:sale_order_price_recalculation.view_order_form
msgid "Reset descriptions"
msgstr "重置说明"
#. module: sale_order_price_recalculation
#: model:ir.model,name:sale_order_price_recalculation.model_sale_order
msgid "Sales Order"
msgstr ""
#~ msgid "Sale Order"
#~ msgstr "销售订单"

View File

@@ -0,0 +1,2 @@
# License AGPL-3 - See http://www.gnu.org/licenses/agpl-3.0.html
from . import sale_order

View File

@@ -0,0 +1,17 @@
# Copyright 2014 Carlos Sánchez Cifuentes <csanchez@grupovermon.com>
# Copyright 2015-2020 Tecnativa - Pedro M. Baeza
# Copyright 2015 Oihane Crucelaegui <oihanecrucelaegi@avanzosc.es>
# Copyright 2016 Vicent Cubells <vicent.cubells@tecnativa.com>
# Copyright 2017 David Vidal <david.vidal@tecnativa.com>
# Copyright 2023 glueckkanja AG - CRogos
# License AGPL-3 - See http://www.gnu.org/licenses/agpl-3.0.html
from odoo import models
class SaleOrder(models.Model):
_inherit = "sale.order"
def action_update_names(self):
lines = self.mapped("order_line")
lines._compute_name()
return True

View File

@@ -0,0 +1,3 @@
[build-system]
requires = ["whool"]
build-backend = "whool.buildapi"

View File

@@ -0,0 +1,9 @@
- Carlos Sánchez Cifuentes \<<csanchez@grupovermon.com>\>
- Pedro M. Baeza \<<pedro.baeza@tecnativa.com>\>
- Oihane Crucelaegui \<<oihanecrucelaegi@avanzosc.es>\>
- Pierre Verkest \<<pverkest@anybox.fr>\>
- Vicent Cubells \<<vicent.cubells@tecnativa.com>\>
- David Vidal \<<david.vidal@tecnativa.com>\>
- Duc, Dao Dong \<<duc.dd@komit-consulting.com>\>
(<https://komit-consulting.com>)
- Raf Ven \<<raf.ven@dynapps.be>\>

View File

@@ -0,0 +1,9 @@
This module adds 2 buttons on sale orders (below sale order lines) that:
- Recalculates the prices of the order lines that contain a product in
them.
- Reset product descriptions from current product information.
It is launched manually as a button to get the user to decide if they
want to recalculate prices when the pricelist is changed or, after
duplicating a sale order, wether to update sales information or not.

View File

@@ -0,0 +1,2 @@
You need to install sale_management module for accessing the needed
menus.

View File

@@ -0,0 +1,3 @@
- In a sale order with lot of lines, the recalculation may slow down,
because sale general data (amount untaxed, amount taxed...) are
recalculated for each line.

View File

@@ -0,0 +1,8 @@
Inside a sale order, you can click on "Recalculate prices" to launch a
recalculation of all the prices of the lines, losing previous custom
prices.
The second "Reset descriptions" will get descriptions from products,
losing custom descriptions.
![Sale order price recalculation](/sale_order_price_recalculation/static/description/sale_order_price_recalculation.drawio.png)

Binary file not shown.

After

Width:  |  Height:  |  Size: 9.2 KiB

View File

@@ -0,0 +1,466 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta name="generator" content="Docutils: https://docutils.sourceforge.io/" />
<title>Price recalculation in sales orders</title>
<style type="text/css">
/*
:Author: David Goodger (goodger@python.org)
:Id: $Id: html4css1.css 9511 2024-01-13 09:50:07Z milde $
:Copyright: This stylesheet has been placed in the public domain.
Default cascading style sheet for the HTML output of Docutils.
Despite the name, some widely supported CSS2 features are used.
See https://docutils.sourceforge.io/docs/howto/html-stylesheets.html for how to
customize this style sheet.
*/
/* used to remove borders from tables and images */
.borderless, table.borderless td, table.borderless th {
border: 0 }
table.borderless td, table.borderless th {
/* Override padding for "table.docutils td" with "! important".
The right padding separates the table cells. */
padding: 0 0.5em 0 0 ! important }
.first {
/* Override more specific margin styles with "! important". */
margin-top: 0 ! important }
.last, .with-subtitle {
margin-bottom: 0 ! important }
.hidden {
display: none }
.subscript {
vertical-align: sub;
font-size: smaller }
.superscript {
vertical-align: super;
font-size: smaller }
a.toc-backref {
text-decoration: none ;
color: black }
blockquote.epigraph {
margin: 2em 5em ; }
dl.docutils dd {
margin-bottom: 0.5em }
object[type="image/svg+xml"], object[type="application/x-shockwave-flash"] {
overflow: hidden;
}
/* Uncomment (and remove this text!) to get bold-faced definition list terms
dl.docutils dt {
font-weight: bold }
*/
div.abstract {
margin: 2em 5em }
div.abstract p.topic-title {
font-weight: bold ;
text-align: center }
div.admonition, div.attention, div.caution, div.danger, div.error,
div.hint, div.important, div.note, div.tip, div.warning {
margin: 2em ;
border: medium outset ;
padding: 1em }
div.admonition p.admonition-title, div.hint p.admonition-title,
div.important p.admonition-title, div.note p.admonition-title,
div.tip p.admonition-title {
font-weight: bold ;
font-family: sans-serif }
div.attention p.admonition-title, div.caution p.admonition-title,
div.danger p.admonition-title, div.error p.admonition-title,
div.warning p.admonition-title, .code .error {
color: red ;
font-weight: bold ;
font-family: sans-serif }
/* Uncomment (and remove this text!) to get reduced vertical space in
compound paragraphs.
div.compound .compound-first, div.compound .compound-middle {
margin-bottom: 0.5em }
div.compound .compound-last, div.compound .compound-middle {
margin-top: 0.5em }
*/
div.dedication {
margin: 2em 5em ;
text-align: center ;
font-style: italic }
div.dedication p.topic-title {
font-weight: bold ;
font-style: normal }
div.figure {
margin-left: 2em ;
margin-right: 2em }
div.footer, div.header {
clear: both;
font-size: smaller }
div.line-block {
display: block ;
margin-top: 1em ;
margin-bottom: 1em }
div.line-block div.line-block {
margin-top: 0 ;
margin-bottom: 0 ;
margin-left: 1.5em }
div.sidebar {
margin: 0 0 0.5em 1em ;
border: medium outset ;
padding: 1em ;
background-color: #ffffee ;
width: 40% ;
float: right ;
clear: right }
div.sidebar p.rubric {
font-family: sans-serif ;
font-size: medium }
div.system-messages {
margin: 5em }
div.system-messages h1 {
color: red }
div.system-message {
border: medium outset ;
padding: 1em }
div.system-message p.system-message-title {
color: red ;
font-weight: bold }
div.topic {
margin: 2em }
h1.section-subtitle, h2.section-subtitle, h3.section-subtitle,
h4.section-subtitle, h5.section-subtitle, h6.section-subtitle {
margin-top: 0.4em }
h1.title {
text-align: center }
h2.subtitle {
text-align: center }
hr.docutils {
width: 75% }
img.align-left, .figure.align-left, object.align-left, table.align-left {
clear: left ;
float: left ;
margin-right: 1em }
img.align-right, .figure.align-right, object.align-right, table.align-right {
clear: right ;
float: right ;
margin-left: 1em }
img.align-center, .figure.align-center, object.align-center {
display: block;
margin-left: auto;
margin-right: auto;
}
table.align-center {
margin-left: auto;
margin-right: auto;
}
.align-left {
text-align: left }
.align-center {
clear: both ;
text-align: center }
.align-right {
text-align: right }
/* reset inner alignment in figures */
div.align-right {
text-align: inherit }
/* div.align-center * { */
/* text-align: left } */
.align-top {
vertical-align: top }
.align-middle {
vertical-align: middle }
.align-bottom {
vertical-align: bottom }
ol.simple, ul.simple {
margin-bottom: 1em }
ol.arabic {
list-style: decimal }
ol.loweralpha {
list-style: lower-alpha }
ol.upperalpha {
list-style: upper-alpha }
ol.lowerroman {
list-style: lower-roman }
ol.upperroman {
list-style: upper-roman }
p.attribution {
text-align: right ;
margin-left: 50% }
p.caption {
font-style: italic }
p.credits {
font-style: italic ;
font-size: smaller }
p.label {
white-space: nowrap }
p.rubric {
font-weight: bold ;
font-size: larger ;
color: maroon ;
text-align: center }
p.sidebar-title {
font-family: sans-serif ;
font-weight: bold ;
font-size: larger }
p.sidebar-subtitle {
font-family: sans-serif ;
font-weight: bold }
p.topic-title {
font-weight: bold }
pre.address {
margin-bottom: 0 ;
margin-top: 0 ;
font: inherit }
pre.literal-block, pre.doctest-block, pre.math, pre.code {
margin-left: 2em ;
margin-right: 2em }
pre.code .ln { color: gray; } /* line numbers */
pre.code, code { background-color: #eeeeee }
pre.code .comment, code .comment { color: #5C6576 }
pre.code .keyword, code .keyword { color: #3B0D06; font-weight: bold }
pre.code .literal.string, code .literal.string { color: #0C5404 }
pre.code .name.builtin, code .name.builtin { color: #352B84 }
pre.code .deleted, code .deleted { background-color: #DEB0A1}
pre.code .inserted, code .inserted { background-color: #A3D289}
span.classifier {
font-family: sans-serif ;
font-style: oblique }
span.classifier-delimiter {
font-family: sans-serif ;
font-weight: bold }
span.interpreted {
font-family: sans-serif }
span.option {
white-space: nowrap }
span.pre {
white-space: pre }
span.problematic, pre.problematic {
color: red }
span.section-subtitle {
/* font-size relative to parent (h1..h6 element) */
font-size: 80% }
table.citation {
border-left: solid 1px gray;
margin-left: 1px }
table.docinfo {
margin: 2em 4em }
table.docutils {
margin-top: 0.5em ;
margin-bottom: 0.5em }
table.footnote {
border-left: solid 1px black;
margin-left: 1px }
table.docutils td, table.docutils th,
table.docinfo td, table.docinfo th {
padding-left: 0.5em ;
padding-right: 0.5em ;
vertical-align: top }
table.docutils th.field-name, table.docinfo th.docinfo-name {
font-weight: bold ;
text-align: left ;
white-space: nowrap ;
padding-left: 0 }
/* "booktabs" style (no vertical lines) */
table.docutils.booktabs {
border: 0px;
border-top: 2px solid;
border-bottom: 2px solid;
border-collapse: collapse;
}
table.docutils.booktabs * {
border: 0px;
}
table.docutils.booktabs th {
border-bottom: thin solid;
text-align: left;
}
h1 tt.docutils, h2 tt.docutils, h3 tt.docutils,
h4 tt.docutils, h5 tt.docutils, h6 tt.docutils {
font-size: 100% }
ul.auto-toc {
list-style-type: none }
</style>
</head>
<body>
<div class="document" id="price-recalculation-in-sales-orders">
<h1 class="title">Price recalculation in sales orders</h1>
<!-- !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!! This file is generated by oca-gen-addon-readme !!
!! changes will be overwritten. !!
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!! source digest: sha256:2e230fc1d703cdf20f1a9b373ca05ceb2f599b79204b0dfd03b836b424cc077c
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! -->
<p><a class="reference external image-reference" href="https://odoo-community.org/page/development-status"><img alt="Beta" src="https://img.shields.io/badge/maturity-Beta-yellow.png" /></a> <a class="reference external image-reference" href="http://www.gnu.org/licenses/agpl-3.0-standalone.html"><img alt="License: AGPL-3" src="https://img.shields.io/badge/licence-AGPL--3-blue.png" /></a> <a class="reference external image-reference" href="https://github.com/OCA/sale-workflow/tree/18.0/sale_order_price_recalculation"><img alt="OCA/sale-workflow" src="https://img.shields.io/badge/github-OCA%2Fsale--workflow-lightgray.png?logo=github" /></a> <a class="reference external image-reference" href="https://translation.odoo-community.org/projects/sale-workflow-18-0/sale-workflow-18-0-sale_order_price_recalculation"><img alt="Translate me on Weblate" src="https://img.shields.io/badge/weblate-Translate%20me-F47D42.png" /></a> <a class="reference external image-reference" href="https://runboat.odoo-community.org/builds?repo=OCA/sale-workflow&amp;target_branch=18.0"><img alt="Try me on Runboat" src="https://img.shields.io/badge/runboat-Try%20me-875A7B.png" /></a></p>
<p>This module adds 2 buttons on sale orders (below sale order lines) that:</p>
<ul class="simple">
<li>Recalculates the prices of the order lines that contain a product in
them.</li>
<li>Reset product descriptions from current product information.</li>
</ul>
<p>It is launched manually as a button to get the user to decide if they
want to recalculate prices when the pricelist is changed or, after
duplicating a sale order, wether to update sales information or not.</p>
<p><strong>Table of contents</strong></p>
<div class="contents local topic" id="contents">
<ul class="simple">
<li><a class="reference internal" href="#installation" id="toc-entry-1">Installation</a></li>
<li><a class="reference internal" href="#usage" id="toc-entry-2">Usage</a></li>
<li><a class="reference internal" href="#known-issues-roadmap" id="toc-entry-3">Known issues / Roadmap</a></li>
<li><a class="reference internal" href="#bug-tracker" id="toc-entry-4">Bug Tracker</a></li>
<li><a class="reference internal" href="#credits" id="toc-entry-5">Credits</a><ul>
<li><a class="reference internal" href="#authors" id="toc-entry-6">Authors</a></li>
<li><a class="reference internal" href="#contributors" id="toc-entry-7">Contributors</a></li>
<li><a class="reference internal" href="#maintainers" id="toc-entry-8">Maintainers</a></li>
</ul>
</li>
</ul>
</div>
<div class="section" id="installation">
<h1><a class="toc-backref" href="#toc-entry-1">Installation</a></h1>
<p>You need to install sale_management module for accessing the needed
menus.</p>
</div>
<div class="section" id="usage">
<h1><a class="toc-backref" href="#toc-entry-2">Usage</a></h1>
<p>Inside a sale order, you can click on “Recalculate prices” to launch a
recalculation of all the prices of the lines, losing previous custom
prices.</p>
<p>The second “Reset descriptions” will get descriptions from products,
losing custom descriptions.</p>
<p><img alt="Sale order price recalculation" src="https://raw.githubusercontent.com/sale_order_price_recalculation/static/description/sale_order_price_recalculation.drawio.png" /></p>
</div>
<div class="section" id="known-issues-roadmap">
<h1><a class="toc-backref" href="#toc-entry-3">Known issues / Roadmap</a></h1>
<ul class="simple">
<li>In a sale order with lot of lines, the recalculation may slow down,
because sale general data (amount untaxed, amount taxed…) are
recalculated for each line.</li>
</ul>
</div>
<div class="section" id="bug-tracker">
<h1><a class="toc-backref" href="#toc-entry-4">Bug Tracker</a></h1>
<p>Bugs are tracked on <a class="reference external" href="https://github.com/OCA/sale-workflow/issues">GitHub Issues</a>.
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
<a class="reference external" href="https://github.com/OCA/sale-workflow/issues/new?body=module:%20sale_order_price_recalculation%0Aversion:%2018.0%0A%0A**Steps%20to%20reproduce**%0A-%20...%0A%0A**Current%20behavior**%0A%0A**Expected%20behavior**">feedback</a>.</p>
<p>Do not contact contributors directly about support or help with technical issues.</p>
</div>
<div class="section" id="credits">
<h1><a class="toc-backref" href="#toc-entry-5">Credits</a></h1>
<div class="section" id="authors">
<h2><a class="toc-backref" href="#toc-entry-6">Authors</a></h2>
<ul class="simple">
<li>AvanzOSC</li>
<li>Grupo Vermon</li>
<li>Tecnativa</li>
</ul>
</div>
<div class="section" id="contributors">
<h2><a class="toc-backref" href="#toc-entry-7">Contributors</a></h2>
<ul class="simple">
<li>Carlos Sánchez Cifuentes &lt;<a class="reference external" href="mailto:csanchez&#64;grupovermon.com">csanchez&#64;grupovermon.com</a>&gt;</li>
<li>Pedro M. Baeza &lt;<a class="reference external" href="mailto:pedro.baeza&#64;tecnativa.com">pedro.baeza&#64;tecnativa.com</a>&gt;</li>
<li>Oihane Crucelaegui &lt;<a class="reference external" href="mailto:oihanecrucelaegi&#64;avanzosc.es">oihanecrucelaegi&#64;avanzosc.es</a>&gt;</li>
<li>Pierre Verkest &lt;<a class="reference external" href="mailto:pverkest&#64;anybox.fr">pverkest&#64;anybox.fr</a>&gt;</li>
<li>Vicent Cubells &lt;<a class="reference external" href="mailto:vicent.cubells&#64;tecnativa.com">vicent.cubells&#64;tecnativa.com</a>&gt;</li>
<li>David Vidal &lt;<a class="reference external" href="mailto:david.vidal&#64;tecnativa.com">david.vidal&#64;tecnativa.com</a>&gt;</li>
<li>Duc, Dao Dong &lt;<a class="reference external" href="mailto:duc.dd&#64;komit-consulting.com">duc.dd&#64;komit-consulting.com</a>&gt;
(<a class="reference external" href="https://komit-consulting.com">https://komit-consulting.com</a>)</li>
<li>Raf Ven &lt;<a class="reference external" href="mailto:raf.ven&#64;dynapps.be">raf.ven&#64;dynapps.be</a>&gt;</li>
</ul>
</div>
<div class="section" id="maintainers">
<h2><a class="toc-backref" href="#toc-entry-8">Maintainers</a></h2>
<p>This module is maintained by the OCA.</p>
<a class="reference external image-reference" href="https://odoo-community.org">
<img alt="Odoo Community Association" src="https://odoo-community.org/logo.png" />
</a>
<p>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.</p>
<p>This module is part of the <a class="reference external" href="https://github.com/OCA/sale-workflow/tree/18.0/sale_order_price_recalculation">OCA/sale-workflow</a> project on GitHub.</p>
<p>You are welcome to contribute. To learn how please visit <a class="reference external" href="https://odoo-community.org/page/Contribute">https://odoo-community.org/page/Contribute</a>.</p>
</div>
</div>
</div>
</body>
</html>

Binary file not shown.

After

Width:  |  Height:  |  Size: 556 KiB

View File

@@ -0,0 +1,2 @@
# License AGPL-3 - See http://www.gnu.org/licenses/agpl-3.0.html
from . import test_sale_order_price_recalculation

View File

@@ -0,0 +1,67 @@
# Copyright 2015 Pedro M. Baeza <pedro.baeza@serviciosbaeza.com>
# Copyright 2016 Vicent Cubells <vicent.cubells@tecnativa.com>
# Copyright 2017 David Vidal <david.vidal@tecnativa.com>
# Copyright 2018 Duc Dao Dong <duc.dd@komit-consulting.com>
# License AGPL-3 - See http://www.gnu.org/licenses/agpl-3.0.html
from odoo.tests import common
class TestSaleOrderPriceRecalculation(common.TransactionCase):
def setUp(self):
super().setUp()
# Enable group_discount_per_so_line for admin user
group = self.env.ref("sale.group_discount_per_so_line")
group.users = [(4, self.env.user.id)]
self.partner = self.env["res.partner"].create({"name": "Test partner"})
uom_id = self.env.ref("uom.product_uom_kgm")
self.product = self.env["product.product"].create(
{
"name": "Jacket - Color: Black - Size: XL",
"uom_id": uom_id.id,
"uom_po_id": uom_id.id,
}
)
self.pricelist = self.env["product.pricelist"].create(
{
"name": "Test pricelist",
"item_ids": [
(
0,
0,
{
"applied_on": "3_global",
"compute_price": "formula",
"base": "list_price",
},
),
],
}
)
self.sale_order = self.env["sale.order"].create(
{
"partner_id": self.partner.id,
"partner_invoice_id": self.partner.id,
"partner_shipping_id": self.partner.id,
"pricelist_id": self.pricelist.id,
}
)
line_vals = {
"product_id": self.product.id,
"product_template_id": self.product.product_tmpl_id.id,
"name": self.product.name,
"product_uom_qty": 1.0,
"product_uom": self.product.uom_id.id,
"price_unit": self.product.lst_price,
"order_id": self.sale_order.id,
}
self.sale_order_line = self.env["sale.order.line"].create(line_vals)
def test_name_recalculation(self):
self.sale_order_line.price_unit = 150.0
initial_price = self.sale_order_line.price_unit
self.assertEqual(self.sale_order_line.name, self.product.name)
self.sale_order_line.name = "Custom Jacket"
self.sale_order.action_update_names()
self.assertNotEqual("Custom Jacket", self.sale_order_line.name)
# Check the price wasn't reset
self.assertEqual(initial_price, self.sale_order_line.price_unit)

View File

@@ -0,0 +1,28 @@
<?xml version="1.0" encoding="utf-8" ?>
<odoo>
<record id="view_order_form" model="ir.ui.view">
<field name="name">sale.order.form - Add recompute buttons</field>
<field name="model">sale.order</field>
<field name="inherit_id" ref="sale.view_order_form" />
<field name="arch" type="xml">
<field name="state" position="before">
<button
name="action_update_prices"
class="ml-2 btn btn-default"
string="Recalculate prices"
Help="Apply the current pricelist"
type="object"
invisible="state not in ('draft', 'sent')"
/>
<button
name="action_update_names"
class="ml-2 btn btn-default"
string="Reset descriptions"
Help="Erase custom descriptions of all lines"
type="object"
invisible="state not in ('draft', 'sent')"
/>
</field>
</field>
</record>
</odoo>