Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[16.0][MIG] account_invoice_validation_queued #1694

Open
wants to merge 24 commits into
base: 16.0
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
24 commits
Select commit Hold shift + click to select a range
748f663
[ADD] account_invoice_validation_queued: Enqueue account invoice vali…
pedrobaeza Aug 29, 2019
577d5f5
[IMP] *_queued: Remove `cancel` method + use same user
pedrobaeza Sep 9, 2019
c5e004d
[MIG] account_invoice_validation_queued: Migration to 12.0
pedrobaeza Nov 14, 2019
4a2b930
[IMP] : black, isort, prettier
pedrobaeza Apr 21, 2020
dfd5760
[MIG] account_invoice_validation_queued: Migration to 13.0
Apr 21, 2020
891d3d2
[UPD] Update account_invoice_validation_queued.pot
oca-travis May 4, 2020
99c69ba
Update translation files
oca-transbot May 13, 2020
742ac17
Update translation files
oca-transbot Aug 16, 2020
d820342
[IMP] account_invoice_validation_queued: Avoid m2m table collapse
pedrobaeza Sep 7, 2020
a73df54
[FIX] account_invoice_validation_queued: Proper SQL column
pedrobaeza Sep 9, 2020
6befc02
Translated using Weblate (Spanish)
anasuarez1 Mar 10, 2021
3f34d15
[14.0][MIG] account_invoice_validation_queued
iwkse Jan 25, 2022
026d355
[UPD] Update account_invoice_validation_queued.pot
oca-travis Jan 25, 2022
d023c13
[UPD] README.rst
OCA-git-bot Jan 25, 2022
32215a0
Added translation using Weblate (Catalan)
extrememicro Feb 3, 2022
f23e0d1
[IMP] account_invoice_validation_queued: black, isort, prettier
BT-jcolmeiro Aug 5, 2022
53f9a3b
[15.0][MIG] account_invoice_validation_queued: Migration to 15.0
BT-jcolmeiro Aug 5, 2022
d7d4468
[UPD] Update account_invoice_validation_queued.pot
Feb 7, 2023
1865b97
[UPD] README.rst
OCA-git-bot Feb 7, 2023
6c04e9e
Update translation files
weblate Feb 7, 2023
26d9607
[UPD] README.rst
OCA-git-bot Sep 3, 2023
30f6d8f
Translated using Weblate (Spanish)
Ivorra78 Oct 3, 2023
5d8670b
[IMP] account_invoice_validation_queued: pre-commit stuff
Saran440 Mar 28, 2024
fe70d72
[MIG] account_invoice_validation_queued: Migration to 16.0
Saran440 Mar 28, 2024
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Jump to
Jump to file
Failed to load files.
Diff view
Diff view
135 changes: 135 additions & 0 deletions account_invoice_validation_queued/README.rst
Original file line number Diff line number Diff line change
@@ -0,0 +1,135 @@
==================================
Enqueue account invoice validation
==================================

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

.. |badge1| image:: https://img.shields.io/badge/maturity-Production%2FStable-green.png
:target: https://odoo-community.org/page/development-status
:alt: Production/Stable
.. |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%2Faccount--invoicing-lightgray.png?logo=github
:target: https://github.com/OCA/account-invoicing/tree/16.0/account_invoice_validation_queued
:alt: OCA/account-invoicing
.. |badge4| image:: https://img.shields.io/badge/weblate-Translate%20me-F47D42.png
:target: https://translation.odoo-community.org/projects/account-invoicing-16-0/account-invoicing-16-0-account_invoice_validation_queued
: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/account-invoicing&target_branch=16.0
:alt: Try me on Runboat

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

This module allows to enqueue in several jobs the account validation process
to be executed in paralell on background, which is normally done serially and
on foreground.

Each invoice creates a job for performing the validation, but you will only be
able to enqueue invoices for the same date.

**Table of contents**

.. contents::
:local:

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

This module depends on *queue_job* module that is hosted on
https://github.com/OCA/queue.

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

#. Jobs are enqueued in the channel ``root.account_invoice_validation_queued``,
so you must adjust your
`Odoo configuration <https://github.com/OCA/queue/tree/16.0/queue_job#configuration>`_
according this.
#. If you want to see queued jobs, you need "Job Queue / Job Queue Manager"
permission in your user.
#. Configure your invoice/refund sequences as "Standard" instead of "No gap",
or you'll have concurrent updates problems.

Usage
=====

#. Go to *Invoicing > Customers > Invoices* or
*Invoicing > Vendors > Bills*.
#. Mark at least one check on the left part of one draft invoice in the
list view.
#. Click on *Action > Post entries*.
#. On the dialog popup that appears, click on "Enqueue Validation".
#. If any of the invoices is already enqueued, there will be a message saying
so and avoiding to perform the process.
#. Once enqueued, and having the "Job Queue Manager" permission, you can go to
the invoice, and see the tab "Validation Jobs". A list with all the jobs
related to that invoice can be found there.

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

* Allow to enqueue for validating invoices of different date.
* There's a chance that if you perform several enqueues of invoice validations
from different dates, the order of the validated invoices, and thus, the
number given for it, will result disordered.

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

Bugs are tracked on `GitHub Issues <https://github.com/OCA/account-invoicing/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/account-invoicing/issues/new?body=module:%20account_invoice_validation_queued%0Aversion:%2016.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
~~~~~~~

* Tecnativa

Contributors
~~~~~~~~~~~~

* `Tecnativa <https://www.tecnativa.com>`__:

* Pedro M. Baeza
* Manuel Calero

* 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-pedrobaeza| image:: https://github.com/pedrobaeza.png?size=40px
:target: https://github.com/pedrobaeza
:alt: pedrobaeza

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

|maintainer-pedrobaeza|

This module is part of the `OCA/account-invoicing <https://github.com/OCA/account-invoicing/tree/16.0/account_invoice_validation_queued>`_ 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 account_invoice_validation_queued/__init__.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl).

from . import models
from . import wizards
22 changes: 22 additions & 0 deletions account_invoice_validation_queued/__manifest__.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
# Copyright 2019-2020 Tecnativa - Pedro M. Baeza
# Copyright 2020 Tecnativa - Manuel Calero
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl).

{
"name": "Enqueue account invoice validation",
"version": "16.0.1.0.0",
"category": "Accounting",
"license": "AGPL-3",
"author": "Tecnativa, Odoo Community Association (OCA)",
"website": "https://github.com/OCA/account-invoicing",
"depends": ["account", "queue_job"],
"data": [
"data/queue_job.xml",
"views/queue_job_views.xml",
"views/account_invoice_views.xml",
"wizards/validate_account_move_view.xml",
],
"installable": True,
"development_status": "Production/Stable",
"maintainers": ["pedrobaeza"],
}
15 changes: 15 additions & 0 deletions account_invoice_validation_queued/data/queue_job.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
<?xml version="1.0" encoding="utf-8" ?>
<odoo>
<!-- Queue Job Channel -->
<record id="invoice_open_job" model="queue.job.channel">
<field name="name">Invoice Open Job</field>
<field name="parent_id" ref="queue_job.channel_root" />
</record>

<!-- Queue Job Function -->
<record id="job_function_generate_invoice_open_job" model="queue.job.function">
<field name="model_id" ref="account.model_account_move" />
<field name="method">action_invoice_open_job</field>
<field name="channel_id" ref="invoice_open_job" />
</record>
</odoo>
Original file line number Diff line number Diff line change
@@ -0,0 +1,53 @@
# Translation of Odoo Server.
# This file contains the translation of the following modules:
# * account_invoice_validation_queued
#
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: account_invoice_validation_queued
#: model_terms:ir.ui.view,arch_db:account_invoice_validation_queued.view_queue_job_account_invoice_validation
msgid "Cancel"
msgstr ""

#. module: account_invoice_validation_queued
#: model_terms:ir.ui.view,arch_db:account_invoice_validation_queued.validate_account_move_view
msgid "Enqueue Validation"
msgstr ""

#. module: account_invoice_validation_queued
#: model:ir.model,name:account_invoice_validation_queued.model_account_move
msgid "Journal Entry"
msgstr ""

#. module: account_invoice_validation_queued
#: model_terms:ir.ui.view,arch_db:account_invoice_validation_queued.view_queue_job_account_invoice_validation
msgid "Requeue"
msgstr ""

#. module: account_invoice_validation_queued
#: model:ir.model,name:account_invoice_validation_queued.model_validate_account_move
msgid "Validate Account Move"
msgstr ""

#. module: account_invoice_validation_queued
#: model:ir.model.fields,field_description:account_invoice_validation_queued.field_account_bank_statement_line__validation_job_ids
#: model:ir.model.fields,field_description:account_invoice_validation_queued.field_account_move__validation_job_ids
#: model:ir.model.fields,field_description:account_invoice_validation_queued.field_account_payment__validation_job_ids
#: model_terms:ir.ui.view,arch_db:account_invoice_validation_queued.view_move_form
msgid "Validation Jobs"
msgstr ""

#. module: account_invoice_validation_queued
#: code:addons/account_invoice_validation_queued/wizards/validate_account_move.py:0
#, python-format
msgid "You can't enqueue invoices with different dates."
msgstr ""
54 changes: 54 additions & 0 deletions account_invoice_validation_queued/i18n/ca.po
Original file line number Diff line number Diff line change
@@ -0,0 +1,54 @@
# Translation of Odoo Server.
# This file contains the translation of the following modules:
# * account_invoice_validation_queued
#
msgid ""
msgstr ""
"Project-Id-Version: Odoo Server 14.0\n"
"Report-Msgid-Bugs-To: \n"
"Last-Translator: Automatically generated\n"
"Language-Team: none\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: account_invoice_validation_queued
#: model_terms:ir.ui.view,arch_db:account_invoice_validation_queued.view_queue_job_account_invoice_validation
msgid "Cancel"
msgstr ""

#. module: account_invoice_validation_queued
#: model_terms:ir.ui.view,arch_db:account_invoice_validation_queued.validate_account_move_view
msgid "Enqueue Validation"
msgstr ""

#. module: account_invoice_validation_queued
#: model:ir.model,name:account_invoice_validation_queued.model_account_move
msgid "Journal Entry"
msgstr ""

#. module: account_invoice_validation_queued
#: model_terms:ir.ui.view,arch_db:account_invoice_validation_queued.view_queue_job_account_invoice_validation
msgid "Requeue"
msgstr ""

#. module: account_invoice_validation_queued
#: model:ir.model,name:account_invoice_validation_queued.model_validate_account_move
msgid "Validate Account Move"
msgstr ""

#. module: account_invoice_validation_queued
#: model:ir.model.fields,field_description:account_invoice_validation_queued.field_account_bank_statement_line__validation_job_ids
#: model:ir.model.fields,field_description:account_invoice_validation_queued.field_account_move__validation_job_ids
#: model:ir.model.fields,field_description:account_invoice_validation_queued.field_account_payment__validation_job_ids
#: model_terms:ir.ui.view,arch_db:account_invoice_validation_queued.view_move_form
msgid "Validation Jobs"
msgstr ""

#. module: account_invoice_validation_queued
#: code:addons/account_invoice_validation_queued/wizards/validate_account_move.py:0
#, python-format
msgid "You can't enqueue invoices with different dates."
msgstr ""
79 changes: 79 additions & 0 deletions account_invoice_validation_queued/i18n/es.po
Original file line number Diff line number Diff line change
@@ -0,0 +1,79 @@
# Translation of Odoo Server.
# This file contains the translation of the following modules:
# * account_invoice_validation_queued
#
msgid ""
msgstr ""
"Project-Id-Version: Odoo Server 13.0\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2019-08-29 23:11+0000\n"
"PO-Revision-Date: 2023-10-09 07:44+0000\n"
"Last-Translator: Ivorra78 <informatica@totmaterial.es>\n"
"Language-Team: \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: account_invoice_validation_queued
#: model_terms:ir.ui.view,arch_db:account_invoice_validation_queued.view_queue_job_account_invoice_validation
msgid "Cancel"
msgstr "Cancelar"

#. module: account_invoice_validation_queued
#: model_terms:ir.ui.view,arch_db:account_invoice_validation_queued.validate_account_move_view
msgid "Enqueue Validation"
msgstr "Encolar validación"

#. module: account_invoice_validation_queued
#: model:ir.model,name:account_invoice_validation_queued.model_account_move
msgid "Journal Entry"
msgstr "Entrada diaria"

#. module: account_invoice_validation_queued
#: model_terms:ir.ui.view,arch_db:account_invoice_validation_queued.view_queue_job_account_invoice_validation
msgid "Requeue"
msgstr "Volver a poner en cola"

#. module: account_invoice_validation_queued
#: model:ir.model,name:account_invoice_validation_queued.model_validate_account_move
msgid "Validate Account Move"
msgstr "Validar movimientos contables"

#. module: account_invoice_validation_queued
#: model:ir.model.fields,field_description:account_invoice_validation_queued.field_account_bank_statement_line__validation_job_ids
#: model:ir.model.fields,field_description:account_invoice_validation_queued.field_account_move__validation_job_ids
#: model:ir.model.fields,field_description:account_invoice_validation_queued.field_account_payment__validation_job_ids
#: model_terms:ir.ui.view,arch_db:account_invoice_validation_queued.view_move_form
msgid "Validation Jobs"
msgstr "Trabajos de validación"

#. module: account_invoice_validation_queued
#: code:addons/account_invoice_validation_queued/wizards/validate_account_move.py:0
#, python-format
msgid "You can't enqueue invoices with different dates."
msgstr "No puede encolar facturas de diferentes fechas."

#~ msgid "Journal Entries"
#~ msgstr "Asientos contables"

#~ msgid "Confirm the selected invoices"
#~ msgstr "Confirmar las facturas seleccionadas"

#~ msgid "Invoice"
#~ msgstr "Factura"

#~ msgid ""
#~ "There's already an enqueued job for validating the invoice #%s. Please "
#~ "wait until it's finished or remove it from the selection."
#~ msgstr ""
#~ "Ya hay un trabajo encolado para validar la factura #%s. Por favor espere "
#~ "hasta que haya finalizado o elimine la factura de la selección."

#~ msgid "Queue Job"
#~ msgstr "Trabajo en cola"

#~ msgid "Quotation"
#~ msgstr "Presupuesto"
3 changes: 3 additions & 0 deletions account_invoice_validation_queued/models/__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 account_move
24 changes: 24 additions & 0 deletions account_invoice_validation_queued/models/account_move.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
# Copyright 2019-2020 Tecnativa - Pedro M. Baeza
# Copyright 2020 Tecnativa - Manuel Calero
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl).

from odoo import fields, models


class AccountMove(models.Model):
_inherit = "account.move"

validation_job_ids = fields.Many2many(
comodel_name="queue.job",
column1="invoice_id",
column2="job_id",
string="Validation Jobs",
relation="account_move_validation_job_rel",
copy=False,
)

def action_invoice_open_job(self):
self.ensure_one()
if self.state not in {"draft", "sent"}:
return

Check warning on line 23 in account_invoice_validation_queued/models/account_move.py

View check run for this annotation

Codecov / codecov/patch

account_invoice_validation_queued/models/account_move.py#L23

Added line #L23 was not covered by tests
self._post()