[ADD] account_move_total_by_account_internal_group v15

This commit is contained in:
AaronHForgeFlow
2022-11-09 14:58:58 +01:00
parent 2ae9690959
commit 97d4d1c382
17 changed files with 854 additions and 0 deletions

View File

@@ -0,0 +1,85 @@
============================================
Account Move Total By Account Internal Group
============================================
.. !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!! 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--financial--tools-lightgray.png?logo=github
:target: https://github.com/OCA/account-financial-tools/tree/15.0/account_move_total_by_account_internal_group
:alt: OCA/account-financial-tools
.. |badge4| image:: https://img.shields.io/badge/weblate-Translate%20me-F47D42.png
:target: https://translation.odoo-community.org/projects/account-financial-tools-15-0/account-financial-tools-15-0-account_move_total_by_account_internal_group
:alt: Translate me on Weblate
.. |badge5| image:: https://img.shields.io/badge/runbot-Try%20me-875A7B.png
:target: https://runbot.odoo-community.org/runbot/92/15.0
:alt: Try me on Runbot
|badge1| |badge2| |badge3| |badge4| |badge5|
Displays the total balance by account internal group in the journal entries. This could
be necesssary in some context. For example, when looking at the stock journal entries
we would like to see the total assets, as long as we would like to see the assets
increasing when there is a debit in the inventory account and deceasing when the
inventory is decreased. The standard field amount_total_signed does not serve, as
it shows this as a positive value in this case.
**Table of contents**
.. contents::
:local:
Usage
=====
New hidden columns in journal Entries tree view.
Bug Tracker
===========
Bugs are tracked on `GitHub Issues <https://github.com/OCA/account-financial-tools/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-financial-tools/issues/new?body=module:%20account_move_total_by_account_internal_group%0Aversion:%2015.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
~~~~~~~
* ForgeFlow
Contributors
~~~~~~~~~~~~
* `ForgeFlow <https://opensourceintegrators.com>`:
* Aaron Henriquez <aaron.henriquez@forgeflow.com>
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/account-financial-tools <https://github.com/OCA/account-financial-tools/tree/15.0/account_move_total_by_account_internal_group>`_ project on GitHub.
You are welcome to contribute. To learn how please visit https://odoo-community.org/page/Contribute.

View File

@@ -0,0 +1,2 @@
from . import models
from .hooks import pre_init_hook

View File

@@ -0,0 +1,20 @@
# Copyright 2022 ForgeFlow S.L.
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl).
{
"name": "Account Move Total By Account Internal Group",
"version": "15.0.1.0.0",
"author": "ForgeFlow, Odoo Community Association (OCA)",
"summary": "Adds Totals by Account Internal Group in Journal Entries",
"website": "https://github.com/OCA/account-financial-tools",
"license": "AGPL-3",
"depends": ["account"],
"category": "Accounting",
"data": [
"views/account_move_views.xml",
],
"installable": True,
"maintainer": "AaronHForgeFlow",
"development_status": "Beta",
"pre_init_hook": "pre_init_hook",
}

View File

@@ -0,0 +1,26 @@
# Copyright 2022 ForgeFlow S.L.
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl).
import logging
def pre_init_hook(cr):
"""Precreate account_internal_group and fill with appropriate values to prevent
a MemoryError when the ORM attempts to call its compute method on a large
amount of preexisting moves."""
logger = logging.getLogger(__name__)
logger.info(
"Add account_move_line.account_internal_group column if it does not yet exist"
)
cr.execute(
"ALTER TABLE account_move_line ADD COLUMN IF NOT EXISTS account_internal_group VARCHAR"
)
cr.execute(
""" UPDATE account_move_line aml0 SET account_internal_group = aa.internal_group
FROM account_move_line aml
INNER JOIN account_account aa ON aa.id = aml.account_id
WHERE aml.id = aml0.id
AND aml.account_internal_group IS NULL
"""
)
logger.info("Finished adding account_move_line.account_internal_group column")

View File

@@ -0,0 +1,2 @@
from . import account_move
from . import account_move_line

View File

@@ -0,0 +1,75 @@
# Copyright 2022 ForgeFlow S.L.
# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl.html).
from odoo import fields, models
class AccountMove(models.Model):
_inherit = "account.move"
amount_total_signed_account_internal_group_equity = fields.Monetary(
compute="_compute_amount_total_signed_account_internal_group"
)
amount_total_signed_account_internal_group_asset = fields.Monetary(
compute="_compute_amount_total_signed_account_internal_group"
)
amount_total_signed_account_internal_group_liability = fields.Monetary(
compute="_compute_amount_total_signed_account_internal_group"
)
amount_total_signed_account_internal_group_income = fields.Monetary(
compute="_compute_amount_total_signed_account_internal_group"
)
amount_total_signed_account_internal_group_expense = fields.Monetary(
compute="_compute_amount_total_signed_account_internal_group"
)
amount_total_signed_account_internal_group_off_balance = fields.Monetary(
compute="_compute_amount_total_signed_account_internal_group"
)
def _compute_amount_total_signed_account_internal_group(self):
for move in self:
domain = [("move_id", "=", move.id)]
aml_groups = self.env["account.move.line"].read_group(
domain=domain,
fields=["balance", "account_internal_group"],
groupby=["account_internal_group"],
lazy=False,
)
move.amount_total_signed_account_internal_group_asset = sum(
ag["balance"]
for ag in [
g for g in aml_groups if g["account_internal_group"] == "asset"
]
)
move.amount_total_signed_account_internal_group_equity = sum(
ag["balance"]
for ag in [
g for g in aml_groups if g["account_internal_group"] == "equity"
]
)
move.amount_total_signed_account_internal_group_liability = sum(
ag["balance"]
for ag in [
g for g in aml_groups if g["account_internal_group"] == "liability"
]
)
move.amount_total_signed_account_internal_group_income = sum(
ag["balance"]
for ag in [
g for g in aml_groups if g["account_internal_group"] == "income"
]
)
move.amount_total_signed_account_internal_group_expense = sum(
ag["balance"]
for ag in [
g for g in aml_groups if g["account_internal_group"] == "expense"
]
)
move.amount_total_signed_account_internal_group_off_balance = sum(
ag["balance"]
for ag in [
g
for g in aml_groups
if g["account_internal_group"] == "off_balance"
]
)

View File

@@ -0,0 +1,16 @@
# Copyright 2022 ForgeFlow S.L.
# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl.html).
from odoo import fields, models
class AccountMoveLine(models.Model):
_inherit = "account.move.line"
# Making standard field stored in order to do the calculations faster
account_internal_group = fields.Selection(
related="account_id.user_type_id.internal_group",
string="Internal Group",
readonly=True,
store=True,
)

View File

@@ -0,0 +1,3 @@
* `ForgeFlow <https://opensourceintegrators.com>`:
* Aaron Henriquez <aaron.henriquez@forgeflow.com>

View File

@@ -0,0 +1,6 @@
Displays the total balance by account internal group in the journal entries. This could
be necesssary in some context. For example, when looking at the stock journal entries
we would like to see the total assets, as long as we would like to see the assets
increasing when there is a debit in the inventory account and deceasing when the
inventory is decreased. The standard field amount_total_signed does not serve, as
it shows this as a positive value in this case.

View File

@@ -0,0 +1 @@
New hidden columns in journal Entries tree view.

Binary file not shown.

After

Width:  |  Height:  |  Size: 9.2 KiB

View File

@@ -0,0 +1,432 @@
<?xml version="1.0" encoding="utf-8" ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta name="generator" content="Docutils 0.15.1: http://docutils.sourceforge.net/" />
<title>Account Move Total By Account Internal Group</title>
<style type="text/css">
/*
:Author: David Goodger (goodger@python.org)
:Id: $Id: html4css1.css 7952 2016-07-26 18:15:59Z milde $
:Copyright: This stylesheet has been placed in the public domain.
Default cascading style sheet for the HTML output of Docutils.
See http://docutils.sf.net/docs/howto/html-stylesheets.html for how to
customize this style sheet.
*/
/* used to remove borders from tables and images */
.borderless, table.borderless td, table.borderless th {
border: 0 }
table.borderless td, table.borderless th {
/* Override padding for "table.docutils td" with "! important".
The right padding separates the table cells. */
padding: 0 0.5em 0 0 ! important }
.first {
/* Override more specific margin styles with "! important". */
margin-top: 0 ! important }
.last, .with-subtitle {
margin-bottom: 0 ! important }
.hidden {
display: none }
.subscript {
vertical-align: sub;
font-size: smaller }
.superscript {
vertical-align: super;
font-size: smaller }
a.toc-backref {
text-decoration: none ;
color: black }
blockquote.epigraph {
margin: 2em 5em ; }
dl.docutils dd {
margin-bottom: 0.5em }
object[type="image/svg+xml"], object[type="application/x-shockwave-flash"] {
overflow: hidden;
}
/* Uncomment (and remove this text!) to get bold-faced definition list terms
dl.docutils dt {
font-weight: bold }
*/
div.abstract {
margin: 2em 5em }
div.abstract p.topic-title {
font-weight: bold ;
text-align: center }
div.admonition, div.attention, div.caution, div.danger, div.error,
div.hint, div.important, div.note, div.tip, div.warning {
margin: 2em ;
border: medium outset ;
padding: 1em }
div.admonition p.admonition-title, div.hint p.admonition-title,
div.important p.admonition-title, div.note p.admonition-title,
div.tip p.admonition-title {
font-weight: bold ;
font-family: sans-serif }
div.attention p.admonition-title, div.caution p.admonition-title,
div.danger p.admonition-title, div.error p.admonition-title,
div.warning p.admonition-title, .code .error {
color: red ;
font-weight: bold ;
font-family: sans-serif }
/* Uncomment (and remove this text!) to get reduced vertical space in
compound paragraphs.
div.compound .compound-first, div.compound .compound-middle {
margin-bottom: 0.5em }
div.compound .compound-last, div.compound .compound-middle {
margin-top: 0.5em }
*/
div.dedication {
margin: 2em 5em ;
text-align: center ;
font-style: italic }
div.dedication p.topic-title {
font-weight: bold ;
font-style: normal }
div.figure {
margin-left: 2em ;
margin-right: 2em }
div.footer, div.header {
clear: both;
font-size: smaller }
div.line-block {
display: block ;
margin-top: 1em ;
margin-bottom: 1em }
div.line-block div.line-block {
margin-top: 0 ;
margin-bottom: 0 ;
margin-left: 1.5em }
div.sidebar {
margin: 0 0 0.5em 1em ;
border: medium outset ;
padding: 1em ;
background-color: #ffffee ;
width: 40% ;
float: right ;
clear: right }
div.sidebar p.rubric {
font-family: sans-serif ;
font-size: medium }
div.system-messages {
margin: 5em }
div.system-messages h1 {
color: red }
div.system-message {
border: medium outset ;
padding: 1em }
div.system-message p.system-message-title {
color: red ;
font-weight: bold }
div.topic {
margin: 2em }
h1.section-subtitle, h2.section-subtitle, h3.section-subtitle,
h4.section-subtitle, h5.section-subtitle, h6.section-subtitle {
margin-top: 0.4em }
h1.title {
text-align: center }
h2.subtitle {
text-align: center }
hr.docutils {
width: 75% }
img.align-left, .figure.align-left, object.align-left, table.align-left {
clear: left ;
float: left ;
margin-right: 1em }
img.align-right, .figure.align-right, object.align-right, table.align-right {
clear: right ;
float: right ;
margin-left: 1em }
img.align-center, .figure.align-center, object.align-center {
display: block;
margin-left: auto;
margin-right: auto;
}
table.align-center {
margin-left: auto;
margin-right: auto;
}
.align-left {
text-align: left }
.align-center {
clear: both ;
text-align: center }
.align-right {
text-align: right }
/* reset inner alignment in figures */
div.align-right {
text-align: inherit }
/* div.align-center * { */
/* text-align: left } */
.align-top {
vertical-align: top }
.align-middle {
vertical-align: middle }
.align-bottom {
vertical-align: bottom }
ol.simple, ul.simple {
margin-bottom: 1em }
ol.arabic {
list-style: decimal }
ol.loweralpha {
list-style: lower-alpha }
ol.upperalpha {
list-style: upper-alpha }
ol.lowerroman {
list-style: lower-roman }
ol.upperroman {
list-style: upper-roman }
p.attribution {
text-align: right ;
margin-left: 50% }
p.caption {
font-style: italic }
p.credits {
font-style: italic ;
font-size: smaller }
p.label {
white-space: nowrap }
p.rubric {
font-weight: bold ;
font-size: larger ;
color: maroon ;
text-align: center }
p.sidebar-title {
font-family: sans-serif ;
font-weight: bold ;
font-size: larger }
p.sidebar-subtitle {
font-family: sans-serif ;
font-weight: bold }
p.topic-title {
font-weight: bold }
pre.address {
margin-bottom: 0 ;
margin-top: 0 ;
font: inherit }
pre.literal-block, pre.doctest-block, pre.math, pre.code {
margin-left: 2em ;
margin-right: 2em }
pre.code .ln { color: grey; } /* line numbers */
pre.code, code { background-color: #eeeeee }
pre.code .comment, code .comment { color: #5C6576 }
pre.code .keyword, code .keyword { color: #3B0D06; font-weight: bold }
pre.code .literal.string, code .literal.string { color: #0C5404 }
pre.code .name.builtin, code .name.builtin { color: #352B84 }
pre.code .deleted, code .deleted { background-color: #DEB0A1}
pre.code .inserted, code .inserted { background-color: #A3D289}
span.classifier {
font-family: sans-serif ;
font-style: oblique }
span.classifier-delimiter {
font-family: sans-serif ;
font-weight: bold }
span.interpreted {
font-family: sans-serif }
span.option {
white-space: nowrap }
span.pre {
white-space: pre }
span.problematic {
color: red }
span.section-subtitle {
/* font-size relative to parent (h1..h6 element) */
font-size: 80% }
table.citation {
border-left: solid 1px gray;
margin-left: 1px }
table.docinfo {
margin: 2em 4em }
table.docutils {
margin-top: 0.5em ;
margin-bottom: 0.5em }
table.footnote {
border-left: solid 1px black;
margin-left: 1px }
table.docutils td, table.docutils th,
table.docinfo td, table.docinfo th {
padding-left: 0.5em ;
padding-right: 0.5em ;
vertical-align: top }
table.docutils th.field-name, table.docinfo th.docinfo-name {
font-weight: bold ;
text-align: left ;
white-space: nowrap ;
padding-left: 0 }
/* "booktabs" style (no vertical lines) */
table.docutils.booktabs {
border: 0px;
border-top: 2px solid;
border-bottom: 2px solid;
border-collapse: collapse;
}
table.docutils.booktabs * {
border: 0px;
}
table.docutils.booktabs th {
border-bottom: thin solid;
text-align: left;
}
h1 tt.docutils, h2 tt.docutils, h3 tt.docutils,
h4 tt.docutils, h5 tt.docutils, h6 tt.docutils {
font-size: 100% }
ul.auto-toc {
list-style-type: none }
</style>
</head>
<body>
<div class="document" id="account-move-total-by-account-internal-group">
<h1 class="title">Account Move Total By Account Internal Group</h1>
<!-- !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!! This file is generated by oca-gen-addon-readme !!
!! changes will be overwritten. !!
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! -->
<p><a class="reference external" href="https://odoo-community.org/page/development-status"><img alt="Beta" src="https://img.shields.io/badge/maturity-Beta-yellow.png" /></a> <a class="reference external" href="http://www.gnu.org/licenses/agpl-3.0-standalone.html"><img alt="License: AGPL-3" src="https://img.shields.io/badge/licence-AGPL--3-blue.png" /></a> <a class="reference external" href="https://github.com/OCA/account-financial-tools/tree/15.0/account_move_total_by_account_internal_group"><img alt="OCA/account-financial-tools" src="https://img.shields.io/badge/github-OCA%2Faccount--financial--tools-lightgray.png?logo=github" /></a> <a class="reference external" href="https://translation.odoo-community.org/projects/account-financial-tools-15-0/account-financial-tools-15-0-account_move_total_by_account_internal_group"><img alt="Translate me on Weblate" src="https://img.shields.io/badge/weblate-Translate%20me-F47D42.png" /></a> <a class="reference external" href="https://runbot.odoo-community.org/runbot/92/15.0"><img alt="Try me on Runbot" src="https://img.shields.io/badge/runbot-Try%20me-875A7B.png" /></a></p>
<p>Displays the total balance by account internal group in the journal entries. This could
be necesssary in some context. For example, when looking at the stock journal entries
we would like to see the total assets, as long as we would like to see the assets
increasing when there is a debit in the inventory account and deceasing when the
inventory is decreased. The standard field amount_total_signed does not serve, as
it shows this as a positive value in this case.</p>
<p><strong>Table of contents</strong></p>
<div class="contents local topic" id="contents">
<ul class="simple">
<li><a class="reference internal" href="#usage" id="id1">Usage</a></li>
<li><a class="reference internal" href="#bug-tracker" id="id2">Bug Tracker</a></li>
<li><a class="reference internal" href="#credits" id="id3">Credits</a><ul>
<li><a class="reference internal" href="#authors" id="id4">Authors</a></li>
<li><a class="reference internal" href="#contributors" id="id5">Contributors</a></li>
<li><a class="reference internal" href="#maintainers" id="id6">Maintainers</a></li>
</ul>
</li>
</ul>
</div>
<div class="section" id="usage">
<h1><a class="toc-backref" href="#id1">Usage</a></h1>
<p>New hidden columns in journal Entries tree view.</p>
</div>
<div class="section" id="bug-tracker">
<h1><a class="toc-backref" href="#id2">Bug Tracker</a></h1>
<p>Bugs are tracked on <a class="reference external" href="https://github.com/OCA/account-financial-tools/issues">GitHub Issues</a>.
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
<a class="reference external" href="https://github.com/OCA/account-financial-tools/issues/new?body=module:%20account_move_total_by_account_internal_group%0Aversion:%2015.0%0A%0A**Steps%20to%20reproduce**%0A-%20...%0A%0A**Current%20behavior**%0A%0A**Expected%20behavior**">feedback</a>.</p>
<p>Do not contact contributors directly about support or help with technical issues.</p>
</div>
<div class="section" id="credits">
<h1><a class="toc-backref" href="#id3">Credits</a></h1>
<div class="section" id="authors">
<h2><a class="toc-backref" href="#id4">Authors</a></h2>
<ul class="simple">
<li>ForgeFlow</li>
</ul>
</div>
<div class="section" id="contributors">
<h2><a class="toc-backref" href="#id5">Contributors</a></h2>
<ul class="simple">
<li><cite>ForgeFlow &lt;https://opensourceintegrators.com&gt;</cite>:<ul>
<li>Aaron Henriquez &lt;<a class="reference external" href="mailto:aaron.henriquez&#64;forgeflow.com">aaron.henriquez&#64;forgeflow.com</a>&gt;</li>
</ul>
</li>
</ul>
</div>
<div class="section" id="maintainers">
<h2><a class="toc-backref" href="#id6">Maintainers</a></h2>
<p>This module is maintained by the OCA.</p>
<a class="reference external image-reference" href="https://odoo-community.org"><img alt="Odoo Community Association" src="https://odoo-community.org/logo.png" /></a>
<p>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.</p>
<p>This module is part of the <a class="reference external" href="https://github.com/OCA/account-financial-tools/tree/15.0/account_move_total_by_account_internal_group">OCA/account-financial-tools</a> project on GitHub.</p>
<p>You are welcome to contribute. To learn how please visit <a class="reference external" href="https://odoo-community.org/page/Contribute">https://odoo-community.org/page/Contribute</a>.</p>
</div>
</div>
</div>
</body>
</html>

View File

@@ -0,0 +1,3 @@
# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl.html).
from . import test_account_move_totals_by_account_internal_group

View File

@@ -0,0 +1,123 @@
# Copyright 2022 ForgeFlow S.L.
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl).
from odoo.tests.common import TransactionCase
class TestAccountMoveTotalsByAccountType(TransactionCase):
@classmethod
def setUpClass(cls):
super(TestAccountMoveTotalsByAccountType, cls).setUpClass()
cls.account_model = cls.env["account.account"]
cls.acc_type_model = cls.env["account.account.type"]
cls.company = cls.env.ref("base.main_company")
# Create account for Goods Received Not Invoiced
acc_type = cls._create_account_type(cls, "liability", "other")
name = "Goods Received Not Invoiced"
code = "grni"
cls.account_grni = cls._create_account(cls, acc_type, name, code, cls.company)
# Create account for Cost of Goods Sold
acc_type = cls._create_account_type(cls, "expense", "other")
name = "Cost of Goods Sold"
code = "cogs"
cls.account_cogs = cls._create_account(cls, acc_type, name, code, cls.company)
# Create account for Inventory
acc_type = cls._create_account_type(cls, "asset", "other")
name = "Inventory"
code = "inventory"
cls.account_inventory = cls._create_account(
cls, acc_type, name, code, cls.company
)
# Create Income account
# Create account for Inventory
acc_type = cls._create_account_type(cls, "income", "other")
name = "Income"
code = "income"
cls.account_income = cls._create_account(cls, acc_type, name, code, cls.company)
cls.journal = cls.env["account.journal"].search(
[("company_id", "=", cls.env.user.company_id.id)], limit=1
)
cls.partner = cls.env.ref("base.res_partner_12")
def _create_account_move(self, dr_account, cr_account):
move_vals = {
"journal_id": self.journal.id,
"date": "1900-01-01",
"line_ids": [
(
0,
0,
{
"debit": 100.0,
"credit": 0.0,
"account_id": dr_account.id,
"partner_id": self.partner.id,
},
),
(
0,
0,
{
"debit": 0.0,
"credit": 100.0,
"account_id": cr_account.id,
"partner_id": self.partner.id,
},
),
],
}
return self.env["account.move"].create(move_vals)
def _create_account_type(self, name, a_type):
acc_type = self.acc_type_model.create(
{"name": name, "type": a_type, "internal_group": name}
)
return acc_type
def _create_account(self, acc_type, name, code, company):
"""Create an account."""
account = self.account_model.create(
{
"name": name,
"code": code,
"user_type_id": acc_type.id,
"company_id": company.id,
"reconcile": True,
}
)
return account
def test_01_account_internal_group_balance(self):
"""Create JE with different account types and check the amount total
by internal group
"""
account_move = self._create_account_move(
self.account_inventory, self.account_grni
)
self.assertEqual(
account_move.amount_total_signed_account_internal_group_asset,
100,
"Wrong asset",
)
self.assertEqual(
account_move.amount_total_signed_account_internal_group_liability,
-100,
"Wrong liability",
)
self.assertEqual(
account_move.amount_total_signed_account_internal_group_expense,
0,
"Wrong expense",
)
account_move = self._create_account_move(self.account_cogs, self.account_income)
self.assertEqual(
account_move.amount_total_signed_account_internal_group_expense,
100,
"Wrong Expense",
)
self.assertEqual(
account_move.amount_total_signed_account_internal_group_income,
-100,
"Wrong Income",
)

View File

@@ -0,0 +1,53 @@
<odoo>
<record id="view_account_move_user_type_tree" model="ir.ui.view">
<field name="name">account.move.user.type.tree</field>
<field name="model">account.move</field>
<field name="inherit_id" ref="account.view_move_tree" />
<field name="arch" type="xml">
<field name="state" position="after">
<field
name="amount_total_signed_account_internal_group_asset"
sum="Total Signed Asset"
string="Total Asset"
decoration-bf="1"
optional="hide"
/>
<field
name="amount_total_signed_account_internal_group_equity"
sum="Total Signed Equity"
string="Total Equity"
decoration-bf="1"
optional="hide"
/>
<field
name="amount_total_signed_account_internal_group_liability"
sum="Total Signed Liability"
string="Total Liability"
decoration-bf="1"
optional="hide"
/>
<field
name="amount_total_signed_account_internal_group_income"
sum="Total Signed Income"
string="Total Income"
decoration-bf="1"
optional="hide"
/>
<field
name="amount_total_signed_account_internal_group_expense"
sum="Total Signed Expense"
string="Total Expense"
decoration-bf="1"
optional="hide"
/>
<field
name="amount_total_signed_account_internal_group_off_balance"
sum="Total Signed Off Balance"
string="Total Off Balance"
decoration-bf="1"
optional="hide"
/>
</field>
</field>
</record>
</odoo>

View File

@@ -0,0 +1 @@
../../../../account_move_total_by_account_internal_group

View File

@@ -0,0 +1,6 @@
import setuptools
setuptools.setup(
setup_requires=['setuptools-odoo'],
odoo_addon=True,
)