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

[15.0][IMP] account_financial_report: Add Amount cur. to General Ledger totals if the account has not set currency #1236

Open
wants to merge 1 commit into
base: 15.0
Choose a base branch
from
Open
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
35 changes: 35 additions & 0 deletions account_financial_report/report/general_ledger.py
Original file line number Diff line number Diff line change
Expand Up @@ -852,6 +852,41 @@
account[grouped_by] = False
del account["list_grouped"]
general_ledger = sorted(general_ledger, key=lambda k: k["code"])
# Set the fin_bal_currency_id value if the account does not have it set
# and there are move lines in a currency different from that of
# the company (USD for example).
for gl_item in general_ledger:
fin_bal_currency_ids = []
fin_bal_currency_id = gl_item["currency_id"]
if not gl_item["currency_id"] and "move_lines" in gl_item:
gl_item["fin_bal"]["bal_curr"] = 0
for ml in gl_item["move_lines"]:
ml_currency_id = (
ml["currency_id"][0] if ml["currency_id"] else False
)
if ml_currency_id and ml_currency_id != company.currency_id.id:
gl_item["fin_bal"]["bal_curr"] += ml["bal_curr"]

Check warning on line 868 in account_financial_report/report/general_ledger.py

View check run for this annotation

Codecov / codecov/patch

account_financial_report/report/general_ledger.py#L868

Added line #L868 was not covered by tests
if ml_currency_id not in fin_bal_currency_ids:
fin_bal_currency_ids.append(ml_currency_id)

Check warning on line 870 in account_financial_report/report/general_ledger.py

View check run for this annotation

Codecov / codecov/patch

account_financial_report/report/general_ledger.py#L870

Added line #L870 was not covered by tests
elif not gl_item["currency_id"] and "list_grouped" in gl_item:
fin_bal_currency_ids = []
for lg_item in gl_item["list_grouped"]:
lg_item["fin_bal"]["bal_curr"] = lg_item["init_bal"]["bal_curr"]
for ml in lg_item["move_lines"]:
ml_currency_id = (
ml["currency_id"][0] if ml["currency_id"] else False
)
if ml_currency_id and ml_currency_id != company.currency_id.id:
lg_item["fin_bal"]["bal_curr"] += ml["bal_curr"]

Check warning on line 880 in account_financial_report/report/general_ledger.py

View check run for this annotation

Codecov / codecov/patch

account_financial_report/report/general_ledger.py#L880

Added line #L880 was not covered by tests
if ml_currency_id not in fin_bal_currency_ids:
fin_bal_currency_ids.append(ml_currency_id)

Check warning on line 882 in account_financial_report/report/general_ledger.py

View check run for this annotation

Codecov / codecov/patch

account_financial_report/report/general_ledger.py#L882

Added line #L882 was not covered by tests
# If there is only 1 currency, we set that one as fin_bal_currency_id
# The use of different move lines with different currencies (EUR + GBP)
# will be excluded. We use a different field to avoid showing the initial
# balance and/or distorting data.
if not gl_item["currency_id"] and len(fin_bal_currency_ids) == 1:
fin_bal_currency_id = fin_bal_currency_ids[0]

Check warning on line 888 in account_financial_report/report/general_ledger.py

View check run for this annotation

Codecov / codecov/patch

account_financial_report/report/general_ledger.py#L888

Added line #L888 was not covered by tests
gl_item["fin_bal_currency_id"] = fin_bal_currency_id
return {
"doc_ids": [wizard_id],
"doc_model": "general.ledger.report.wizard",
Expand Down
5 changes: 3 additions & 2 deletions account_financial_report/report/general_ledger_xlsx.py
Original file line number Diff line number Diff line change
Expand Up @@ -347,10 +347,11 @@ def _generate_report_content(self, workbook, report, data, report_data):
"final_balance": account["fin_bal"]["balance"],
}
)
if foreign_currency and account["currency_id"]:
if foreign_currency and account["fin_bal_currency_id"]:
account.update(
{
"final_bal_curr": account["fin_bal"]["bal_curr"],
"final_bal_curr": total_bal_curr,
"currency_id": account["fin_bal_currency_id"],
}
)
self.write_ending_balance_from_dict(account, report_data)
Expand Down
4 changes: 2 additions & 2 deletions account_financial_report/report/templates/general_ledger.xml
Original file line number Diff line number Diff line change
Expand Up @@ -696,10 +696,10 @@
/>
<t t-set="misc_grouped_domain" t-value="[]" t-else="" />
<t t-if="foreign_currency">
<t t-if="account['currency_id']">
<t t-if="account['fin_bal_currency_id']">
<t
t-set="account_currency"
t-value="currency_model.browse(account['currency_id'])"
t-value="currency_model.browse(account['fin_bal_currency_id'])"
/>
<div class="act_as_cell amount" style="width: 3.63%;">
<t t-if="type == 'account_type'">
Expand Down
Loading