Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
48 commits
Select commit Hold shift + click to select a range
5d6eff3
[ADD] 12.0 Sale Tier Validation module added
osi-mgosai Dec 13, 2019
dbc032a
updated version 11 to 12
mgosai Dec 17, 2019
5fc7db1
Added dependency as requested
mgosai Jan 20, 2020
3956251
Removed dependency and added to oca-dependencies.txt
mgosai Jan 20, 2020
38cc80b
[UPD] Update sale_tier_validation.pot
oca-travis Mar 10, 2020
f8e20f8
Update translation files
oca-transbot Mar 11, 2020
b6ce4cd
[IMP] sale_tier_validation: black, isort
sergio-teruel May 25, 2020
34aec4d
[MIG] sale_tier_validation: Migration to v13.0
sergio-teruel May 25, 2020
d221c31
Update translation files
oca-transbot Jun 2, 2020
0668467
Translated using Weblate (Chinese (Simplified))
liweijie0812 Jul 8, 2020
89139e1
Translated using Weblate (Spanish)
danimv5 Jul 27, 2020
0c9fdd5
[14.0][MIG] sale_tier_validation
aphon61bank Feb 10, 2021
1b83913
Update translation files
oca-transbot Nov 11, 2021
17c2c38
Added translation using Weblate (Swedish)
simonstromb Nov 24, 2021
fa84a98
[MIG] sale_tier_validation: Migration to 15.0
JasminSForgeFlow Dec 22, 2021
6cd5a2c
Update translation files
oca-transbot May 9, 2022
16f8d65
[IMP] sale_tier_validation: Make tests more resilient
sergio-teruel Jun 20, 2022
887b2cd
[IMP] sale_tier_validation: Add subtypes to allow subscriptions by cr…
CarlosRoca13 Jul 7, 2022
848a22d
[IMP] sale_tier_validation: Make subtypes internal
sergio-teruel Sep 29, 2022
b115686
Update translation files
oca-transbot Sep 30, 2022
c037ef0
Added translation using Weblate (Spanish (Mexico))
alan196 Nov 4, 2022
767ad67
[MIG] sale_tier_validation: Migration to 16.0
bizzappdev Dec 6, 2022
85e8261
Added translation using Weblate (Turkish)
tate11 Mar 30, 2023
598afaf
[15.0][FIX] Sales order states in tier validation
BT-cserra Jun 6, 2023
8d127f0
[IMP] sale_tier_validation: Add in ROADMAP sent validation problem
BT-cserra Jul 4, 2023
5a38cea
Translated using Weblate (Spanish)
Ivorra78 Jul 25, 2023
7f6b36b
Convert sale_tier_validation readme fragments to markdown
sbidoul Sep 12, 2023
021650d
Update translation files
weblate Oct 28, 2023
8e78c61
Translated using Weblate (Spanish)
Ivorra78 Nov 8, 2023
daff96f
Added translation using Weblate (Italian)
mymage Dec 7, 2023
79f5777
[IMP] sale_tier_validation: pre-commit auto fixes
celm1990 Dec 28, 2023
cec198f
[MIG] sale_tier_validation: Migration to 17.0
celm1990 Dec 28, 2023
b5fbd8e
Update translation files
weblate Feb 16, 2024
f59f6e9
Translated using Weblate (Spanish)
Ivorra78 Feb 16, 2024
6a9023f
Translated using Weblate (Italian)
mymage Feb 19, 2024
d525f0c
Translated using Weblate (Swedish)
jakobkrabbe Jun 12, 2024
be8fa97
[IMP] sale_tier_validation: add the option for blocking sale order print
AungKoKoLin1997 Aug 8, 2024
75672f5
[IMP] sale_tier_validation: pre-commit auto fixes
carlos-lopez-tecnativa Feb 26, 2025
98cde06
[MIG] sale_tier_validation: Migration to version 18.0
carlos-lopez-tecnativa Feb 26, 2025
ebce922
[UPD] Update sale_tier_validation.pot
Mar 5, 2025
1ee1300
[BOT] post-merge updates
OCA-git-bot Mar 5, 2025
55a3476
Added translation using Weblate (Portuguese)
marcelsavegnago Jun 17, 2025
04409db
Added translation using Weblate (Dutch)
bosd Nov 20, 2025
c51b5e9
Translated using Weblate (Dutch)
bosd Nov 20, 2025
8223fa0
Added translation using Weblate (Japanese)
Ryoko04 Nov 26, 2025
feb966b
Translated using Weblate (Japanese)
Ryoko04 Nov 26, 2025
d269d71
[IMP] sale_tier_validation: pre-commit auto fixes
alan196 Feb 10, 2026
2b9fa20
[MIG] sale_tier_validation: Migration to 19.0
alan196 Feb 10, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
134 changes: 134 additions & 0 deletions sale_tier_validation/README.rst
Original file line number Diff line number Diff line change
@@ -0,0 +1,134 @@
.. image:: https://odoo-community.org/readme-banner-image
:target: https://odoo-community.org/get-involved?utm_source=readme
:alt: Odoo Community Association

====================
Sale Tier Validation
====================

..
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!! This file is generated by oca-gen-addon-readme !!
!! changes will be overwritten. !!
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!! source digest: sha256:aba5f37fe753f4cec1e2037e6f9d028159460287adfd9d7c691cdd67f1eb6ec7
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

.. |badge1| image:: https://img.shields.io/badge/maturity-Beta-yellow.png
:target: https://odoo-community.org/page/development-status
:alt: Beta
.. |badge2| image:: https://img.shields.io/badge/license-AGPL--3-blue.png
:target: http://www.gnu.org/licenses/agpl-3.0-standalone.html
:alt: License: AGPL-3
.. |badge3| image:: https://img.shields.io/badge/github-OCA%2Ftier--validation-lightgray.png?logo=github
:target: https://github.com/OCA/tier-validation/tree/19.0/sale_tier_validation
:alt: OCA/tier-validation
.. |badge4| image:: https://img.shields.io/badge/weblate-Translate%20me-F47D42.png
:target: https://translation.odoo-community.org/projects/tier-validation-19-0/tier-validation-19-0-sale_tier_validation
: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/tier-validation&target_branch=19.0
:alt: Try me on Runboat

|badge1| |badge2| |badge3| |badge4| |badge5|

This module extends the functionality of Sale Orders to support a tier
validation process.

**Table of contents**

.. contents::
:local:

Installation
============

This module depends on ``base_tier_validation``. You can find it at
`OCA/server-ux <https://github.com/OCA/server-ux>`__

Configuration
=============

To configure this module, you need to:

1. Go to *Settings > Technical > Tier Validations > Tier Definition*.
2. Create as many tiers as you want for Sale Order model.

If necessary, update the "Block Printing of Unvalidated Quotations"
under *Sales > Configuration > Settings* to block the printing of
quotation when the order has yet to be validated (disabled by default).

Usage
=====

To use this module, you need to:

1. Create a Sale Order triggering at least one "Tier Definition".
2. Click on *Request Validation* button.
3. Under the tab *Reviews* have a look to pending reviews and their
statuses.
4. Once all reviews are validated click on *Confirm Order*.

Additional features:

- You can filter the SOs requesting your review through the filter
*Needs my Review*.
- User with rights to confirm the SO (validate all tiers that would be
generated) can directly do the operation, this is, there is no need
for her/him to request a validation.

Known issues / Roadmap
======================

- The sales order, when moved to the state sent, will still send the
email even if the validation is not approved by the corresponding
tier. Code to consider this particular case is not developed.

Bug Tracker
===========

Bugs are tracked on `GitHub Issues <https://github.com/OCA/tier-validation/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/tier-validation/issues/new?body=module:%20sale_tier_validation%0Aversion:%2019.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
-------

* Open Source Integrators

Contributors
------------

- Mayank Gosai <mgosai@opensourceintegrators.com>
- `Tecnativa <https://www.tecnativa.com>`__:

- Sergio Teruel
- Carlos Lopez

- Tharathip Chaweewongphan <tharathipc@ecosoft.co.th>
- `Quartile <https://www.quartile.co>`__:

- Aung Ko Ko Lin

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/tier-validation <https://github.com/OCA/tier-validation/tree/19.0/sale_tier_validation>`_ project on GitHub.

You are welcome to contribute. To learn how please visit https://odoo-community.org/page/Contribute.
4 changes: 4 additions & 0 deletions sale_tier_validation/__init__.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl).

from . import models
from . import reports
20 changes: 20 additions & 0 deletions sale_tier_validation/__manifest__.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
# Copyright 2019 Open Source Integrators
# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl).
{
"name": "Sale Tier Validation",
"summary": "Extends the functionality of Sale Orders to "
"support a tier validation process.",
"version": "19.0.1.0.0",
"category": "Sale",
"website": "https://github.com/OCA/tier-validation",
"author": "Open Source Integrators, Odoo Community Association (OCA)",
"license": "AGPL-3",
"application": False,
"installable": True,
"depends": ["sale", "base_tier_validation"],
"data": [
"data/mail_data.xml",
"views/sale_order_view.xml",
"views/res_config_settings_views.xml",
],
}
77 changes: 77 additions & 0 deletions sale_tier_validation/data/mail_data.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,77 @@
<?xml version="1.0" encoding="utf-8" ?>
<odoo noupdate="1">
<!-- Sale order -->
<record
id="sale_order_tier_validation_requested"
model="mail.message.subtype"
forcecreate="1"
>
<field name="name">Tier Validation Requested</field>
<field name="res_model">sale.order</field>
<field name="internal">True</field>
</record>
<record
id="sale_order_tier_validation_accepted"
model="mail.message.subtype"
forcecreate="1"
>
<field name="name">Tier Validation Accepted Notification</field>
<field name="res_model">sale.order</field>
<field name="internal">True</field>
</record>
<record
id="sale_order_tier_validation_rejected"
model="mail.message.subtype"
forcecreate="1"
>
<field name="name">Tier Validation Rejected Notification</field>
<field name="res_model">sale.order</field>
<field name="internal">True</field>
</record>
<!-- CRM Team -->
<record
id="crm_team_tier_validation_requested"
model="mail.message.subtype"
forcecreate="1"
>
<field name="name">Tier Validation Requested</field>
<field name="res_model">crm.team</field>
<field name="default" eval="True" />
<field name="internal">True</field>
<field
name="parent_id"
ref="sale_tier_validation.sale_order_tier_validation_requested"
/>
<field name="relation_field">team_id</field>
</record>
<record
id="crm_team_tier_validation_accepted"
model="mail.message.subtype"
forcecreate="1"
>
<field name="name">Tier Validation Accepted Notification</field>
<field name="res_model">crm.team</field>
<field name="default" eval="True" />
<field name="internal">True</field>
<field
name="parent_id"
ref="sale_tier_validation.sale_order_tier_validation_accepted"
/>
<field name="relation_field">team_id</field>
</record>
<record
id="crm_team_tier_validation_rejected"
model="mail.message.subtype"
forcecreate="1"
>
<field name="name">Tier Validation Rejected Notification</field>
<field name="res_model">crm.team</field>
<field name="default" eval="True" />
<field
name="parent_id"
ref="sale_tier_validation.sale_order_tier_validation_rejected"
/>
<field name="internal">True</field>
<field name="relation_field">team_id</field>
</record>
</odoo>
160 changes: 160 additions & 0 deletions sale_tier_validation/i18n/es.po
Original file line number Diff line number Diff line change
@@ -0,0 +1,160 @@
# Translation of Odoo Server.
# This file contains the translation of the following modules:
# * sale_tier_validation
#
msgid ""
msgstr ""
"Project-Id-Version: Odoo Server 12.0\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2022-07-07 11:28+0000\n"
"PO-Revision-Date: 2024-02-16 21:36+0000\n"
"Last-Translator: Ivorra78 <informatica@totmaterial.es>\n"
"Language-Team: none\n"
"Language: es\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=n != 1;\n"
"X-Generator: Weblate 4.17\n"
"SO-Revision-Date: 2019-05-08 12:03+0000\n"

#. module: sale_tier_validation
#: model:ir.model.fields,field_description:sale_tier_validation.field_sale_order__can_review
msgid "Can Review"
msgstr "Puede Revisar"

#. module: sale_tier_validation
#: model:ir.model.fields,field_description:sale_tier_validation.field_sale_order__has_comment
msgid "Has Comment"
msgstr "Tiene Comentario"

#. module: sale_tier_validation
#: model:ir.model.fields,field_description:sale_tier_validation.field_sale_order__hide_reviews
msgid "Hide Reviews"
msgstr "Ocultar Reseñas"

#. module: sale_tier_validation
#: model:ir.model.fields,help:sale_tier_validation.field_sale_order__has_comment
msgid "If set, Allow the reviewer to leave a comment on the review."
msgstr ""
"Si se establece, permite al revisor dejar un comentario sobre la reseña."

#. module: sale_tier_validation
#: model_terms:ir.ui.view,arch_db:sale_tier_validation.view_sale_order_filter
msgid "My Sales to review"
msgstr "Mis ventas a revisar"

#. module: sale_tier_validation
#: model:ir.model.fields,field_description:sale_tier_validation.field_sale_order__need_validation
msgid "Need Validation"
msgstr "Necesita validación"

#. module: sale_tier_validation
#: model_terms:ir.ui.view,arch_db:sale_tier_validation.view_sale_order_filter
msgid "Needs my Review"
msgstr "Necesita mi Revisión"

#. module: sale_tier_validation
#: model:ir.model.fields,field_description:sale_tier_validation.field_sale_order__next_review
msgid "Next Review"
msgstr "Siguiente revisión"

#. module: sale_tier_validation
#: model:ir.model.fields,field_description:sale_tier_validation.field_sale_order__rejected
msgid "Rejected"
msgstr "Rechazado/a"

#. module: sale_tier_validation
#: model:ir.model.fields,field_description:sale_tier_validation.field_sale_order__rejected_message
msgid "Rejected Message"
msgstr "Mensaje rechazado"

#. module: sale_tier_validation
#: model:ir.model.fields,field_description:sale_tier_validation.field_sale_order__reviewer_ids
msgid "Reviewers"
msgstr "Revisores"

#. module: sale_tier_validation
#: model_terms:ir.ui.view,arch_db:sale_tier_validation.view_sale_order_filter
msgid "SOs validated and ready to be confirmed"
msgstr "SOs validadas y preparadas para ser confirmadas"

#. module: sale_tier_validation
#: model:ir.model,name:sale_tier_validation.model_sale_order
msgid "Sales Order"
msgstr "Pedidos"

#. module: sale_tier_validation
#: model:ir.model,name:sale_tier_validation.model_tier_definition
msgid "Tier Definition"
msgstr "Definición de nivel"

#. module: sale_tier_validation
#: model:mail.message.subtype,name:sale_tier_validation.crm_team_tier_validation_accepted
#: model:mail.message.subtype,name:sale_tier_validation.sale_order_tier_validation_accepted
msgid "Tier Validation Accepted Notification"
msgstr "Validación de nivel aceptada"

#. module: sale_tier_validation
#: model:mail.message.subtype,name:sale_tier_validation.crm_team_tier_validation_rejected
#: model:mail.message.subtype,name:sale_tier_validation.sale_order_tier_validation_rejected
msgid "Tier Validation Rejected Notification"
msgstr "Validación de nivel rechazada"

#. module: sale_tier_validation
#: model:mail.message.subtype,name:sale_tier_validation.crm_team_tier_validation_requested
#: model:mail.message.subtype,name:sale_tier_validation.sale_order_tier_validation_requested
msgid "Tier Validation Requested"
msgstr "Validación de nivel solicitada"

#. module: sale_tier_validation
#: model:ir.model.fields,field_description:sale_tier_validation.field_sale_order__to_validate_message
msgid "To Validate Message"
msgstr "Para validar el mensaje"

#. module: sale_tier_validation
#: model:ir.model.fields,field_description:sale_tier_validation.field_sale_order__validated
#: model_terms:ir.ui.view,arch_db:sale_tier_validation.view_sale_order_filter
msgid "Validated"
msgstr "Validada"

#. module: sale_tier_validation
#: model:ir.model.fields,field_description:sale_tier_validation.field_sale_order__validated_message
msgid "Validated Message"
msgstr "Mensaje validado"

#. module: sale_tier_validation
#: model:ir.model.fields,field_description:sale_tier_validation.field_sale_order__validation_status
msgid "Validation Status"
msgstr "Estado de la Validación"

#. module: sale_tier_validation
#: model:ir.model.fields,field_description:sale_tier_validation.field_sale_order__review_ids
msgid "Validations"
msgstr "Validaciones"

#~ msgid ""
#~ "<i class=\"fa fa-info-circle\"/>This SO needs to be\n"
#~ " validated."
#~ msgstr ""
#~ "<i class=\"fa fa-info-circle\"/>Esta SO debe ser\n"
#~ " validada."

#~ msgid "<i class=\"fa fa-thumbs-down\"/> Operation has been <b>rejected</b>."
#~ msgstr ""
#~ "<i class=\"fa fa-thumbs-down\"/>La operación ha sido <b>rechazada</b>."

#~ msgid "<i class=\"fa fa-thumbs-up\"/> Operation has been <b>validated</b>!"
#~ msgstr "<i class=\"fa fa-thumbs-up\"/>La operación ha sido <b>validada</b>!"

#~ msgid "Reject"
#~ msgstr "Rechazar"

#~ msgid "Request Validation"
#~ msgstr "Solicitar Validación"

#~ msgid "Restart Validation"
#~ msgstr "Reiniciar Validación"

#~ msgid "Validate"
#~ msgstr "Validar"
Loading
Loading