Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
29 commits
Select commit Hold shift + click to select a range
bd713cf
[12.0][ADD] hr_expense_tier_validation
ps-tubtim Oct 8, 2019
5af49d6
[UPD] Update hr_expense_tier_validation.pot
oca-travis Oct 25, 2019
03dfebc
[IMP] hr_expense_tier_validation: black, isort
Saran440 Mar 31, 2020
9152946
[13.0][MIG] hr_expense_tier_validation
Saran440 Mar 31, 2020
548ce64
[UPD] Update hr_expense_tier_validation.pot
oca-travis Mar 31, 2020
5bea130
[14.0][MIG] hr_expense_tier_validation
aphon61bank Feb 8, 2021
eb7b213
[UPD] Update hr_expense_tier_validation.pot
oca-travis Apr 30, 2021
7f36324
[FIX] tier validated state submit
Saran440 Aug 20, 2021
65a77d5
[UPD] Update hr_expense_tier_validation.pot
oca-travis Nov 12, 2021
f2582c0
[UPD] Update hr_expense_tier_validation.pot
oca-travis Apr 28, 2022
d4c2e93
[14.0][FIX] hr_expense_tier_validation: disallow editable expense fro…
ps-tubtim Jun 8, 2022
919bd89
[IMP] hr_expense_tier_validation: before this PR, after the reviewer …
ppakpahan Apr 24, 2022
11e0298
[15.0][MIG] hr_expense_tier_validation
Saran440 Feb 23, 2023
efaf579
Added translation using Weblate (Italian)
mymage Jun 30, 2023
7263da2
Translated using Weblate (Italian)
mymage Jul 3, 2023
38003d0
[MIG] hr_expense_tier_validation: Migration to 16.0
AnutToc Oct 26, 2023
b3440bc
Translated using Weblate (Italian)
mymage Nov 23, 2023
a069ad7
Translated using Weblate (Italian)
mymage Dec 14, 2023
419a7d3
Translated using Weblate (Italian)
mymage Dec 22, 2023
24ac0da
Translated using Weblate (Italian)
mymage Dec 22, 2023
f650efd
Translated using Weblate (Italian)
mymage Feb 14, 2024
819bd86
[IMP] hr_expense_tier_validation: pre-commit auto fixes
WorrapongOngsakul Mar 13, 2024
a52160e
[MIG] hr_expense_tier_validation: Migration to 17.0
WorrapongOngsakul Mar 14, 2024
a1ab129
[FIX] hr_expense_tier_validation: Fix + improve tests
victoralmau Nov 27, 2024
c109eb1
[MIG] hr_expense_tier_validation: Migration to 18.0
Saran440 Feb 26, 2025
1f2aac1
Added translation using Weblate (Turkish)
bo-eska Jan 2, 2026
7917aab
Translated using Weblate (Turkish)
bo-eska Jan 2, 2026
9c68afe
[IMP] hr_expense_tier_validation: pre-commit auto fixes
dnplkndll Jun 3, 2026
5463183
[MIG] hr_expense_tier_validation: Migration to 19.0
dnplkndll Jun 2, 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
124 changes: 124 additions & 0 deletions hr_expense_tier_validation/README.rst
Original file line number Diff line number Diff line change
@@ -0,0 +1,124 @@
.. image:: https://odoo-community.org/readme-banner-image
:target: https://odoo-community.org/get-involved?utm_source=readme
:alt: Odoo Community Association

=======================
Expense Tier Validation
=======================

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

.. |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/hr_expense_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-hr_expense_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 Expense Reports to support a
tier validation process.

**Table of contents**

.. contents::
:local:

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

To configure tier validation for HR expenses:

1. Go to *Settings > Technical > Tier Validations > Tier Definition*
2. Create the desired approval tiers for the hr.expense model.

To define exceptions for expense approvals:

1. Go to *Settings > Technical > System Parameters*
2. Search for "hr_expense.tier_exceptions" in the system parameters.
3. Add the necessary fields that should be excluded from tier
validation.

Usage
=====

To use this module, you need to:

1. Create a Expense Report 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 *Approve*.

Additional features:

- You can filter the Expense Reports requesting your review through the
filter *Needs my Review*.
- User with rights to confirm the Expense Report (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.

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:%20hr_expense_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
-------

* Ecosoft

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

- Pimolnat Suntian <pimolnats@ecosoft.co.th>
- Saran Lim. <saranl@ecosoft.co.th>

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.

.. |maintainer-ps-tubtim| image:: https://github.com/ps-tubtim.png?size=40px
:target: https://github.com/ps-tubtim
:alt: ps-tubtim

Current `maintainer <https://odoo-community.org/page/maintainer-role>`__:

|maintainer-ps-tubtim|

This module is part of the `OCA/tier-validation <https://github.com/OCA/tier-validation/tree/19.0/hr_expense_tier_validation>`_ project on GitHub.

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

from . import models
15 changes: 15 additions & 0 deletions hr_expense_tier_validation/__manifest__.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
# Copyright 2019 Ecosoft Co., Ltd. (http://ecosoft.co.th)
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl).

{
"name": "Expense Tier Validation",
"version": "19.0.1.0.0",
"category": "Human Resources",
"author": "Ecosoft, Odoo Community Association (OCA)",
"license": "AGPL-3",
"website": "https://github.com/OCA/tier-validation",
"depends": ["hr_expense", "base_tier_validation"],
"data": ["data/ir_config_parameter.xml", "views/hr_expense_views.xml"],
"installable": True,
"maintainers": ["ps-tubtim"],
}
7 changes: 7 additions & 0 deletions hr_expense_tier_validation/data/ir_config_parameter.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
<?xml version="1.0" encoding="utf-8" ?>
<odoo noupdate="1">
<record id="parameter_expense_validation_exceptions" model="ir.config_parameter">
<field name="key">hr_expense.tier_exceptions</field>
<field name="value">["message_follower_ids", "access_token"]</field>
</record>
</odoo>
121 changes: 121 additions & 0 deletions hr_expense_tier_validation/i18n/hr_expense_tier_validation.pot
Original file line number Diff line number Diff line change
@@ -0,0 +1,121 @@
# Translation of Odoo Server.
# This file contains the translation of the following modules:
# * hr_expense_tier_validation
#
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: hr_expense_tier_validation
#: model:ir.model.fields,field_description:hr_expense_tier_validation.field_hr_expense_sheet__can_review
msgid "Can Review"
msgstr ""

#. module: hr_expense_tier_validation
#: model:ir.model,name:hr_expense_tier_validation.model_hr_expense
msgid "Expense"
msgstr ""

#. module: hr_expense_tier_validation
#: model:ir.model,name:hr_expense_tier_validation.model_hr_expense_sheet
msgid "Expense Report"
msgstr ""

#. module: hr_expense_tier_validation
#: model_terms:ir.ui.view,arch_db:hr_expense_tier_validation.hr_expense_sheet_view_search
msgid "Expense report validated and ready to be approved"
msgstr ""

#. module: hr_expense_tier_validation
#: model:ir.model.fields,field_description:hr_expense_tier_validation.field_hr_expense_sheet__has_comment
msgid "Has Comment"
msgstr ""

#. module: hr_expense_tier_validation
#: model:ir.model.fields,field_description:hr_expense_tier_validation.field_hr_expense_sheet__hide_reviews
msgid "Hide Reviews"
msgstr ""

#. module: hr_expense_tier_validation
#: model:ir.model.fields,help:hr_expense_tier_validation.field_hr_expense_sheet__has_comment
msgid "If set, Allow the reviewer to leave a comment on the review."
msgstr ""

#. module: hr_expense_tier_validation
#: model_terms:ir.ui.view,arch_db:hr_expense_tier_validation.hr_expense_sheet_view_search
msgid "My Expense report to review"
msgstr ""

#. module: hr_expense_tier_validation
#: model:ir.model.fields,field_description:hr_expense_tier_validation.field_hr_expense_sheet__need_validation
msgid "Need Validation"
msgstr ""

#. module: hr_expense_tier_validation
#: model_terms:ir.ui.view,arch_db:hr_expense_tier_validation.hr_expense_sheet_view_search
msgid "Needs my Review"
msgstr ""

#. module: hr_expense_tier_validation
#: model:ir.model.fields,field_description:hr_expense_tier_validation.field_hr_expense_sheet__next_review
msgid "Next Review"
msgstr ""

#. module: hr_expense_tier_validation
#: model:ir.model.fields,field_description:hr_expense_tier_validation.field_hr_expense_sheet__rejected
msgid "Rejected"
msgstr ""

#. module: hr_expense_tier_validation
#: model:ir.model.fields,field_description:hr_expense_tier_validation.field_hr_expense_sheet__rejected_message
msgid "Rejected Message"
msgstr ""

#. module: hr_expense_tier_validation
#: model:ir.model.fields,field_description:hr_expense_tier_validation.field_hr_expense_sheet__reviewer_ids
msgid "Reviewers"
msgstr ""

#. module: hr_expense_tier_validation
#. odoo-python
#: code:addons/hr_expense_tier_validation/models/hr_expense.py:0
msgid "The expense report is under validation."
msgstr ""

#. module: hr_expense_tier_validation
#: model:ir.model,name:hr_expense_tier_validation.model_tier_definition
msgid "Tier Definition"
msgstr ""

#. module: hr_expense_tier_validation
#: model:ir.model.fields,field_description:hr_expense_tier_validation.field_hr_expense_sheet__to_validate_message
msgid "To Validate Message"
msgstr ""

#. module: hr_expense_tier_validation
#: model:ir.model.fields,field_description:hr_expense_tier_validation.field_hr_expense_sheet__validated
#: model_terms:ir.ui.view,arch_db:hr_expense_tier_validation.hr_expense_sheet_view_search
msgid "Validated"
msgstr ""

#. module: hr_expense_tier_validation
#: model:ir.model.fields,field_description:hr_expense_tier_validation.field_hr_expense_sheet__validated_message
msgid "Validated Message"
msgstr ""

#. module: hr_expense_tier_validation
#: model:ir.model.fields,field_description:hr_expense_tier_validation.field_hr_expense_sheet__validation_status
msgid "Validation Status"
msgstr ""

#. module: hr_expense_tier_validation
#: model:ir.model.fields,field_description:hr_expense_tier_validation.field_hr_expense_sheet__review_ids
msgid "Validations"
msgstr ""
115 changes: 115 additions & 0 deletions hr_expense_tier_validation/i18n/it.po
Original file line number Diff line number Diff line change
@@ -0,0 +1,115 @@
# Translation of Odoo Server.
# This file contains the translation of the following modules:
# * hr_expense_tier_validation
#
msgid ""
msgstr ""
"Project-Id-Version: Odoo Server 15.0\n"
"Report-Msgid-Bugs-To: \n"
"PO-Revision-Date: 2024-02-14 16:40+0000\n"
"Last-Translator: mymage <stefano.consolaro@mymage.it>\n"
"Language-Team: none\n"
"Language: it\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: \n"
"Plural-Forms: nplurals=2; plural=n != 1;\n"
"X-Generator: Weblate 4.17\n"

#. module: hr_expense_tier_validation
#: model:ir.model.fields,field_description:hr_expense_tier_validation.field_hr_expense_sheet__can_review
msgid "Can Review"
msgstr "Può revisionare"

#. module: hr_expense_tier_validation
#: model:ir.model,name:hr_expense_tier_validation.model_hr_expense
msgid "Expense"
msgstr "Spesa"

#. module: hr_expense_tier_validation
#: model:ir.model,name:hr_expense_tier_validation.model_hr_expense_sheet
msgid "Expense Report"
msgstr "Nota spese"

#. module: hr_expense_tier_validation
#: model_terms:ir.ui.view,arch_db:hr_expense_tier_validation.hr_expense_sheet_view_search
msgid "Expense report validated and ready to be approved"
msgstr "Nota spese validata e pronta ad essere approvata"

#. module: hr_expense_tier_validation
#: model:ir.model.fields,field_description:hr_expense_tier_validation.field_hr_expense_sheet__has_comment
msgid "Has Comment"
msgstr "Ha commenti"

#. module: hr_expense_tier_validation
#: model_terms:ir.ui.view,arch_db:hr_expense_tier_validation.hr_expense_sheet_view_search
msgid "My Expense report to review"
msgstr "La mia nota spese da revisionare"

#. module: hr_expense_tier_validation
#: model:ir.model.fields,field_description:hr_expense_tier_validation.field_hr_expense_sheet__need_validation
msgid "Need Validation"
msgstr "Richiede conferma"

#. module: hr_expense_tier_validation
#: model_terms:ir.ui.view,arch_db:hr_expense_tier_validation.hr_expense_sheet_view_search
msgid "Needs my Review"
msgstr "Richiede la mia revisione"

#. module: hr_expense_tier_validation
#: model:ir.model.fields,field_description:hr_expense_tier_validation.field_hr_expense_sheet__next_review
msgid "Next Review"
msgstr "Prossima revisione"

#. module: hr_expense_tier_validation
#: model:ir.model.fields,field_description:hr_expense_tier_validation.field_hr_expense_sheet__rejected
msgid "Rejected"
msgstr "Rifiutato"

#. module: hr_expense_tier_validation
#: model:ir.model.fields,field_description:hr_expense_tier_validation.field_hr_expense_sheet__rejected_message
msgid "Rejected Message"
msgstr "Messaggio di rifiuto"

#. module: hr_expense_tier_validation
#: model:ir.model.fields,field_description:hr_expense_tier_validation.field_hr_expense_sheet__reviewer_ids
msgid "Reviewers"
msgstr "Revisori"

#. module: hr_expense_tier_validation
#. odoo-python
#: code:addons/hr_expense_tier_validation/models/hr_expense.py:0
#, python-format
msgid "The expense report is under validation."
msgstr "La nota spese è in validazione."

#. module: hr_expense_tier_validation
#: model:ir.model,name:hr_expense_tier_validation.model_tier_definition
msgid "Tier Definition"
msgstr "Definizione livello"

#. module: hr_expense_tier_validation
#: model:ir.model.fields,field_description:hr_expense_tier_validation.field_hr_expense_sheet__to_validate_message
msgid "To Validate Message"
msgstr "Messaggio per 'Da validare'"

#. module: hr_expense_tier_validation
#: model:ir.model.fields,field_description:hr_expense_tier_validation.field_hr_expense_sheet__validated
#: model_terms:ir.ui.view,arch_db:hr_expense_tier_validation.hr_expense_sheet_view_search
msgid "Validated"
msgstr "Approvata"

#. module: hr_expense_tier_validation
#: model:ir.model.fields,field_description:hr_expense_tier_validation.field_hr_expense_sheet__validated_message
msgid "Validated Message"
msgstr "Messaggio per 'Validato'"

#. module: hr_expense_tier_validation
#: model:ir.model.fields,field_description:hr_expense_tier_validation.field_hr_expense_sheet__validation_status
msgid "Validation Status"
msgstr "Stato validazione"

#. module: hr_expense_tier_validation
#: model:ir.model.fields,field_description:hr_expense_tier_validation.field_hr_expense_sheet__review_ids
msgid "Validations"
msgstr "Validazioni"
Loading
Loading