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][ADD] account cutoff accrual on order #271

Merged
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
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
16 changes: 14 additions & 2 deletions .github/workflows/test.yml
Original file line number Diff line number Diff line change
Expand Up @@ -36,10 +36,22 @@ jobs:
matrix:
include:
- container: ghcr.io/oca/oca-ci/py3.10-odoo16.0:latest
name: test with Odoo
makepot: "true"
exclude: "account_cutoff_picking"
name: test with Odoo w/o account_cutoff_picking
- container: ghcr.io/oca/oca-ci/py3.10-ocb16.0:latest
name: test with OCB
exclude: "account_cutoff_picking"
name: test with OCB w/o account_cutoff_picking
- container: ghcr.io/oca/oca-ci/py3.10-odoo16.0:latest
makepot: "true"
include: "account_cutoff_base,purchase_stock,sale_stock,account_cutoff_picking"
name: test with Odoo w/ account_cutoff_picking
- container: ghcr.io/oca/oca-ci/py3.10-ocb16.0:latest
include: "account_cutoff_base,purchase_stock,sale_stock,account_cutoff_picking"
name: test with OCB w/ account_cutoff_picking
env:
INCLUDE: "${{ matrix.include }}"
EXCLUDE: "${{ matrix.exclude }}"
services:
postgres:
image: postgres:12.0
Expand Down
121 changes: 121 additions & 0 deletions account_cutoff_accrual_order_base/README.rst
Original file line number Diff line number Diff line change
@@ -0,0 +1,121 @@
==================================
Account Cut-off Accrual Order Base
==================================

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

.. |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%2Faccount--closing-lightgray.png?logo=github
:target: https://github.com/OCA/account-closing/tree/16.0/account_cutoff_accrual_order_base
:alt: OCA/account-closing
.. |badge4| image:: https://img.shields.io/badge/weblate-Translate%20me-F47D42.png
:target: https://translation.odoo-community.org/projects/account-closing-16-0/account-closing-16-0-account_cutoff_accrual_order_base
: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-closing&target_branch=16.0
:alt: Try me on Runboat

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

This module extends the functionality of account_cutoff_base
to allow the computation of expense and revenue cutoffs on orders.

The accrual is computed by comparing on the order, the quantity
delivered/received and the quantity invoiced. In case, some deliveries or
invoices have occurred after the cutoff date, those quantities can be affected
and are recomputed. This allows to quickly generate a cutoff snapshot by
processing few lines.

You can configure to disable the generation of cutoff entries on orders.
For instance, if you know you will never receive the missing invoiced goods,
you can disable cutoff entries on a purchase order.

Once the cutoff lines have been generated but the accounting entries are not yet
created, you are still able to create or modify invoices before the accounting
butoff date. The cutoff lines will be adapted automatically to reflect the new
situation.

Once the cutoff accounting entries are generated you cannot create or modify
invoices before the accounting cutoff date.
Nevertheless, you can still reset to draft a supplier invoice but you won't be
able to modify any amount. You are then supposed to re-validate the invoice.

Warning: This module is replacing account_cutoff_picking and is incompatible with it.

**Table of contents**

.. contents::
:local:

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

To configure this module, you need to:

#. Go to the accounting settings to select the journals and accounts used for
the cutoff.
#. Analytic accounting needs to be enable in Accounting - Settings.
#. If you want to also accrue the taxes, you need in Accounting - Taxes, for
each type of taxes an accrued tax account.

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

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

* BCIM
* Akretion

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

* Alexis de Lattre (Akretion) <[email protected]>
* Jacques-Etienne Baudoux (BCIM) <[email protected]>
* Thierry Ducrest <[email protected]>

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

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

|maintainer-jbaudoux|

This module is part of the `OCA/account-closing <https://github.com/OCA/account-closing/tree/16.0/account_cutoff_accrual_order_base>`_ 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_cutoff_accrual_order_base/__init__.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
# Copyright 2018 Jacques-Etienne Baudoux (BCIM) <[email protected]>
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html).

from . import models
21 changes: 21 additions & 0 deletions account_cutoff_accrual_order_base/__manifest__.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
# Copyright 2018 Jacques-Etienne Baudoux (BCIM) <[email protected]>
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl)


{
"name": "Account Cut-off Accrual Order Base",
"version": "16.0.1.0.0",
"category": "Accounting & Finance",
"license": "AGPL-3",
"summary": "Accrued Order Base",
"author": "BCIM, Akretion, Odoo Community Association (OCA)",
"maintainers": ["jbaudoux"],
"website": "https://github.com/OCA/account-closing",
"depends": ["account_cutoff_base"],
"data": [
"views/account_cutoff_view.xml",
"views/account_cutoff_line_view.xml",
],
"installable": True,
"application": False,
}
175 changes: 175 additions & 0 deletions account_cutoff_accrual_order_base/i18n/fr.po
Original file line number Diff line number Diff line change
@@ -0,0 +1,175 @@
# Translation of Odoo Server.
# This file contains the translation of the following modules:
# * account_cutoff_accrual_order_base
#
msgid ""
msgstr ""
"Project-Id-Version: Odoo Server 16.0+e\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2023-10-26 11:53+0000\n"
"PO-Revision-Date: 2023-10-26 11:53+0000\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_cutoff_accrual_order_base
#: model_terms:ir.ui.view,arch_db:account_cutoff_accrual_order_base.account_cutoff_form
msgid "<span> on </span>"
msgstr "<span> sur </span>"

#. module: account_cutoff_accrual_order_base
#: model:ir.model,name:account_cutoff_accrual_order_base.model_account_cutoff
msgid "Account Cut-off"
msgstr "Provision"

#. module: account_cutoff_accrual_order_base
#: model:ir.model,name:account_cutoff_accrual_order_base.model_account_cutoff_line
msgid "Account Cut-off Line"
msgstr "Ligne de provision"

#. module: account_cutoff_accrual_order_base
#: model:ir.model.fields,field_description:account_cutoff_accrual_order_base.field_account_cutoff_line__amount
msgid "Amount"
msgstr "Montant"

#. module: account_cutoff_accrual_order_base
#: model:ir.model.fields,help:account_cutoff_accrual_order_base.field_account_cutoff_line__amount
msgid "Amount that is used as base to compute the Cut-off Amount."
msgstr "Montant qui est utilisé comme base pour calculer le montant de la provision"

#. module: account_cutoff_accrual_order_base
#: model:ir.model,name:account_cutoff_accrual_order_base.model_res_company
msgid "Companies"
msgstr "Sociétés"

#. module: account_cutoff_accrual_order_base
#: model:ir.model,name:account_cutoff_accrual_order_base.model_res_config_settings
msgid "Config Settings"
msgstr "Paramètres de configuration"

#. module: account_cutoff_accrual_order_base
#: model:ir.model.fields,field_description:account_cutoff_accrual_order_base.field_account_cutoff_line__cutoff_amount
msgid "Cut-off Amount"
msgstr "Montant de la provision"

#. module: account_cutoff_accrual_order_base
#: model:ir.model.fields,help:account_cutoff_accrual_order_base.field_account_cutoff_line__cutoff_amount
msgid "Cut-off Amount without taxes in the Company Currency."
msgstr "Montant de provision hors taxes dans la devise de la société."

#. module: account_cutoff_accrual_order_base
#: model:ir.model,name:account_cutoff_accrual_order_base.model_order_line_cutoff_accrual_mixin
msgid "Cutoff Accrual Order Line Mixin"
msgstr ""

#. module: account_cutoff_accrual_order_base
#: model:ir.model.fields,field_description:account_cutoff_accrual_order_base.field_res_company__cutoff_exclude_locked_orders
#: model:ir.model.fields,field_description:account_cutoff_accrual_order_base.field_res_config_settings__cutoff_exclude_locked_orders
msgid "Cutoff Exclude Locked Orders"
msgstr "Provision Exclure les commandes verrouillées"

#. module: account_cutoff_accrual_order_base
#: model:ir.model.fields,help:account_cutoff_accrual_order_base.field_res_company__cutoff_exclude_locked_orders
#: model:ir.model.fields,help:account_cutoff_accrual_order_base.field_res_config_settings__cutoff_exclude_locked_orders
msgid "Do not generate cut-off entries for orders that are locked"
msgstr "Ne pas générer d'écriture de provision pour les commande verrouillées"

#. module: account_cutoff_accrual_order_base
#. odoo-python
#: code:addons/account_cutoff_accrual_order_base/models/order_line_mixin.py:0
#, python-format
msgid "Error: Missing '%(label)s' on tax '%(name)s'."
msgstr "Errur: '%(label)s' manquant sur la taxe '%(name)s'."

#. module: account_cutoff_accrual_order_base
#. odoo-python
#: code:addons/account_cutoff_accrual_order_base/models/account_cutoff.py:0
#, python-format
msgid ""
"Error: Missing {map_type} account on product '{product}' or on related "
"product category."
msgstr ""
"Erreur: {map_type} compte manquant sur le produit '{product}' ou sur "
"la catégorie de product liée."

#. module: account_cutoff_accrual_order_base
#: model_terms:ir.ui.view,arch_db:account_cutoff_accrual_order_base.res_config_settings_view_form
msgid "Exclude Locked Orders"
msgstr "Exclure les commandes verrouillées"

#. module: account_cutoff_accrual_order_base
#: model:ir.model.fields,field_description:account_cutoff_accrual_order_base.field_account_cutoff_line__invoice_line_ids
#: model_terms:ir.ui.view,arch_db:account_cutoff_accrual_order_base.account_cutoff_line_form
msgid "Invoice Lines"
msgstr "Lignes de facture"

#. module: account_cutoff_accrual_order_base
#: model:ir.model.fields,field_description:account_cutoff_accrual_order_base.field_account_cutoff_line__invoiced_qty
msgid "Invoiced Quantity"
msgstr "Quantité facturée"

#. module: account_cutoff_accrual_order_base
#: model:ir.model,name:account_cutoff_accrual_order_base.model_account_move
msgid "Journal Entry"
msgstr "Pièce comptable"

#. module: account_cutoff_accrual_order_base
#: model:ir.model.fields,field_description:account_cutoff_accrual_order_base.field_account_cutoff__order_line_model
#: model:ir.model.fields,field_description:account_cutoff_accrual_order_base.field_account_cutoff_line__order_line_model
msgid "Order Line Model"
msgstr ""

#. module: account_cutoff_accrual_order_base
#: model:ir.model.fields,field_description:account_cutoff_accrual_order_base.field_account_cutoff_line__product_id
msgid "Product"
msgstr "Produit"

#. module: account_cutoff_accrual_order_base
#: model:ir.model.fields,field_description:account_cutoff_accrual_order_base.field_account_cutoff_line__quantity
msgid "Quantity"
msgstr "Quantité"

#. module: account_cutoff_accrual_order_base
#: model:ir.model.fields,field_description:account_cutoff_accrual_order_base.field_account_cutoff_line__received_qty
msgid "Received Quantity"
msgstr "Quantité reçue"

#. module: account_cutoff_accrual_order_base
#. odoo-python
#: code:addons/account_cutoff_accrual_order_base/models/order_line_mixin.py:0
#, python-format
msgid "Wrong cutoff type %s"
msgstr "Mauvais type de cutoff %s"

#. module: account_cutoff_accrual_order_base
#. odoo-python
#: code:addons/account_cutoff_accrual_order_base/models/account_move.py:0
#, python-format
msgid ""
"You cannot validate an invoice for an accounting date that generates an entry in a closed cut-off (i.e. for which an accounting entry has already been created).\n"
" - Cut-off: {cutoff}\n"
" - Product: {product}\n"
msgstr ""
"Vous ne pouvez pas valider une facture à une date comptable qui génère une ligne dans une provision fermée (càd pour laquelle l'écriture comptable de provision a déjà été créée).\n"
" - Provision: {cutoff}\n"
" - Produit: {product}\n"

#. module: account_cutoff_accrual_order_base
#. odoo-python
#: code:addons/account_cutoff_accrual_order_base/models/account_move.py:0
#, python-format
msgid ""
"You cannot validate an invoice for an accounting date that modifies a closed cutoff (i.e. for which an accounting entry has already been created).\n"
" - Cut-off: {cutoff}\n"
" - Product: {product}\n"
" - Previous invoiced quantity: {prev_inv_qty}\n"
" - New invoiced quantity: {new_inv_qty}"
msgstr ""
"Vous ne pouvez pas valider une facture à une date comptable qui modifie une provision fermée (càd pour laquelle l'écriture comptable de provision a déjà été créée).\n"
" - Provision: {cutoff}\n"
" - Produit: {product}\n"
" - Précédente quantité facturée: {prev_inv_qty}\n"
" - Nouvelle quantité facturée: {new_inv_qty}"
7 changes: 7 additions & 0 deletions account_cutoff_accrual_order_base/models/__init__.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
# Copyright 2018 Jacques-Etienne Baudoux (BCIM) <[email protected]>
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html).

from . import account_cutoff
from . import account_cutoff_line
from . import order_line_mixin
from . import account_move
Loading
Loading