-
-
Notifications
You must be signed in to change notification settings - Fork 366
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
[ADD] account_analytic_tag_distribution: New module
TT44062
- Loading branch information
1 parent
3df0b6c
commit 5ca550b
Showing
20 changed files
with
896 additions
and
1 deletion.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,91 @@ | ||
================================= | ||
Account Analytic Tag Distribution | ||
================================= | ||
|
||
.. !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
!! This file is generated by oca-gen-addon-readme !! | ||
!! changes will be overwritten. !! | ||
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
.. |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--analytic-lightgray.png?logo=github | ||
:target: https://github.com/OCA/account-analytic/tree/16.0/account_analytic_tag_distribution | ||
:alt: OCA/account-analytic | ||
.. |badge4| image:: https://img.shields.io/badge/weblate-Translate%20me-F47D42.png | ||
:target: https://translation.odoo-community.org/projects/account-analytic-16-0/account-analytic-16-0-account_analytic_tag_distribution | ||
:alt: Translate me on Weblate | ||
.. |badge5| image:: https://img.shields.io/badge/runbot-Try%20me-875A7B.png | ||
:target: https://runbot.odoo-community.org/runbot/87/16.0 | ||
:alt: Try me on Runbot | ||
|
||
|badge1| |badge2| |badge3| |badge4| |badge5| | ||
|
||
This module restores the option to define the analytical distribution at the level of analytical labels. | ||
|
||
**Table of contents** | ||
|
||
.. contents:: | ||
:local: | ||
|
||
Usage | ||
===== | ||
|
||
#. In the creation/editing of an analytic label check the box "Analytic Distribution" and define the distribution you need. | ||
#. Define this label in an invoice line. | ||
#. Publish the invoice. | ||
#. The analytical notes will have been created according to the analytical distribution of the defined tags. | ||
|
||
Bug Tracker | ||
=========== | ||
|
||
Bugs are tracked on `GitHub Issues <https://github.com/OCA/account-analytic/issues>`_. | ||
In case of trouble, please check there if your issue has already been reported. | ||
If you spotted it first, help us smashing it by providing a detailed and welcomed | ||
`feedback <https://github.com/OCA/account-analytic/issues/new?body=module:%20account_analytic_tag_distribution%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>`__: | ||
|
||
* Víctor Martínez | ||
|
||
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-victoralmau| image:: https://github.com/victoralmau.png?size=40px | ||
:target: https://github.com/victoralmau | ||
:alt: victoralmau | ||
|
||
Current `maintainer <https://odoo-community.org/page/maintainer-role>`__: | ||
|
||
|maintainer-victoralmau| | ||
|
||
This module is part of the `OCA/account-analytic <https://github.com/OCA/account-analytic/tree/16.0/account_analytic_tag_distribution>`_ project on GitHub. | ||
|
||
You are welcome to contribute. To learn how please visit https://odoo-community.org/page/Contribute. |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1 @@ | ||
from . import models |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,17 @@ | ||
# Copyright 2023 Tecnativa - Víctor Martínez | ||
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html). | ||
{ | ||
"name": "Account Analytic Tag Distribution", | ||
"version": "16.0.1.0.0", | ||
"author": "Tecnativa, Odoo Community Association (OCA)", | ||
"category": "Account", | ||
"website": "https://github.com/OCA/account-analytic", | ||
"depends": ["account_analytic_tag"], | ||
"license": "AGPL-3", | ||
"data": [ | ||
"views/account_analytic_tag_views.xml", | ||
"views/account_move_views.xml", | ||
], | ||
"installable": True, | ||
"maintainers": ["victoralmau"], | ||
} |
46 changes: 46 additions & 0 deletions
46
account_analytic_tag_distribution/i18n/account_analytic_tag_distribution.pot
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,46 @@ | ||
# Translation of Odoo Server. | ||
# This file contains the translation of the following modules: | ||
# * account_analytic_tag_distribution | ||
# | ||
msgid "" | ||
msgstr "" | ||
"Project-Id-Version: Odoo Server 16.0\n" | ||
"Report-Msgid-Bugs-To: \n" | ||
"POT-Creation-Date: 2023-08-24 11:30+0000\n" | ||
"PO-Revision-Date: 2023-08-24 11:30+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_analytic_tag_distribution | ||
#: model:ir.model.fields,field_description:account_analytic_tag_distribution.field_account_analytic_tag__analytic_distribution | ||
msgid "Analytic" | ||
msgstr "" | ||
|
||
#. module: account_analytic_tag_distribution | ||
#: model:ir.model.fields,field_description:account_analytic_tag_distribution.field_account_analytic_tag__active_analytic_distribution | ||
msgid "Analytic Distribution" | ||
msgstr "" | ||
|
||
#. module: account_analytic_tag_distribution | ||
#: model:ir.model.fields,field_description:account_analytic_tag_distribution.field_account_analytic_tag__analytic_distribution_search | ||
msgid "Analytic Distribution Search" | ||
msgstr "" | ||
|
||
#. module: account_analytic_tag_distribution | ||
#: model:ir.model.fields,field_description:account_analytic_tag_distribution.field_account_analytic_tag__analytic_precision | ||
msgid "Analytic Precision" | ||
msgstr "" | ||
|
||
#. module: account_analytic_tag_distribution | ||
#: model:ir.model,name:account_analytic_tag_distribution.model_account_analytic_tag | ||
msgid "Analytic Tags" | ||
msgstr "" | ||
|
||
#. module: account_analytic_tag_distribution | ||
#: model:ir.model,name:account_analytic_tag_distribution.model_account_move | ||
msgid "Journal Entry" | ||
msgstr "" |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,46 @@ | ||
# Translation of Odoo Server. | ||
# This file contains the translation of the following modules: | ||
# * account_analytic_tag_distribution | ||
# | ||
msgid "" | ||
msgstr "" | ||
"Project-Id-Version: Odoo Server 16.0\n" | ||
"Report-Msgid-Bugs-To: \n" | ||
"POT-Creation-Date: 2023-08-24 11:31+0000\n" | ||
"PO-Revision-Date: 2023-08-24 11:31+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_analytic_tag_distribution | ||
#: model:ir.model.fields,field_description:account_analytic_tag_distribution.field_account_analytic_tag__analytic_distribution | ||
msgid "Analytic" | ||
msgstr "Analítico" | ||
|
||
#. module: account_analytic_tag_distribution | ||
#: model:ir.model.fields,field_description:account_analytic_tag_distribution.field_account_analytic_tag__active_analytic_distribution | ||
msgid "Analytic Distribution" | ||
msgstr "Distribución Analítica" | ||
|
||
#. module: account_analytic_tag_distribution | ||
#: model:ir.model.fields,field_description:account_analytic_tag_distribution.field_account_analytic_tag__analytic_distribution_search | ||
msgid "Analytic Distribution Search" | ||
msgstr "Búsqueda de distribución analítica" | ||
|
||
#. module: account_analytic_tag_distribution | ||
#: model:ir.model.fields,field_description:account_analytic_tag_distribution.field_account_analytic_tag__analytic_precision | ||
msgid "Analytic Precision" | ||
msgstr "Precisión analítica" | ||
|
||
#. module: account_analytic_tag_distribution | ||
#: model:ir.model,name:account_analytic_tag_distribution.model_account_analytic_tag | ||
msgid "Analytic Tags" | ||
msgstr "Etiquetas Analíticas" | ||
|
||
#. module: account_analytic_tag_distribution | ||
#: model:ir.model,name:account_analytic_tag_distribution.model_account_move | ||
msgid "Journal Entry" | ||
msgstr "Asiento contable" |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,2 @@ | ||
from . import account_analytic_tag | ||
from . import account_move_line |
20 changes: 20 additions & 0 deletions
20
account_analytic_tag_distribution/models/account_analytic_tag.py
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,20 @@ | ||
# Copyright 2023 Tecnativa - Víctor Martínez | ||
# License LGPL-3.0 or later (http://www.gnu.org/licenses/lgpl). | ||
from odoo import api, fields, models | ||
|
||
|
||
class AccountAnalyticTag(models.Model): | ||
_name = "account.analytic.tag" | ||
_inherit = ["account.analytic.tag", "analytic.mixin"] | ||
|
||
active_analytic_distribution = fields.Boolean(string="Analytic Distribution") | ||
|
||
@api.onchange("active_analytic_distribution") | ||
def _onchange_active_analytic_distribution(self): | ||
if self.active_analytic_distribution: | ||
self.account_analytic_id = False | ||
|
||
def write(self, values): | ||
if values.get("active_analytic_distribution"): | ||
values["account_analytic_id"] = False | ||
return super().write(values) |
34 changes: 34 additions & 0 deletions
34
account_analytic_tag_distribution/models/account_move_line.py
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,34 @@ | ||
# Copyright 2023 Tecnativa - Víctor Martínez | ||
# License LGPL-3.0 or later (http://www.gnu.org/licenses/lgpl). | ||
from odoo import api, models | ||
|
||
|
||
class AccountMoveLine(models.Model): | ||
_inherit = "account.move.line" | ||
|
||
@api.onchange("analytic_tag_ids") | ||
def _onchange_analytic_tag_ids(self): | ||
"""If any tag has a distribution, we will disable the standard analytical | ||
distribution.""" | ||
if any(tag.active_analytic_distribution for tag in self.analytic_tag_ids): | ||
self.analytic_distribution = False | ||
|
||
def _prepare_analytic_lines(self): | ||
"""If any tag has distribution, we will not call super() to avoid conflicts | ||
with standard flow.""" | ||
tags_with_distribution = self.analytic_tag_ids.filtered( | ||
lambda x: x.active_analytic_distribution | ||
) | ||
if not tags_with_distribution: | ||
return super()._prepare_analytic_lines() | ||
analytic_line_vals = [] | ||
for tag in tags_with_distribution: | ||
distribution_on_each_plan = {} | ||
for account_id, distribution in tag.analytic_distribution.items(): | ||
line_values = self._prepare_analytic_distribution_line( | ||
float(distribution), account_id, distribution_on_each_plan | ||
) | ||
line_values.update({"tag_ids": [(6, 0, tag.ids)]}) | ||
if not self.currency_id.is_zero(line_values.get("amount")): | ||
analytic_line_vals.append(line_values) | ||
return analytic_line_vals |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,3 @@ | ||
* `Tecnativa <https://www.tecnativa.com>`__: | ||
|
||
* Víctor Martínez |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1 @@ | ||
This module restores the option to define the analytical distribution at the level of analytical labels. |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,4 @@ | ||
#. In the creation/editing of an analytic label check the box "Analytic Distribution" and define the distribution you need. | ||
#. Define this label in an invoice line. | ||
#. Publish the invoice. | ||
#. The analytical notes will have been created according to the analytical distribution of the defined tags. |
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Oops, something went wrong.