mirror of
https://github.com/frappe/erpnext.git
synced 2026-05-27 08:54:45 +00:00
fix: Installation failed due to global variable (#23114)
This commit is contained in:
@@ -378,7 +378,7 @@ def set_gl_entries_by_account(from_date, to_date, root_lft, root_rgt, filters, g
|
|||||||
if filters and filters.get('presentation_currency') != d.default_currency:
|
if filters and filters.get('presentation_currency') != d.default_currency:
|
||||||
currency_info['company'] = d.name
|
currency_info['company'] = d.name
|
||||||
currency_info['company_currency'] = d.default_currency
|
currency_info['company_currency'] = d.default_currency
|
||||||
convert_to_presentation_currency(gl_entries, currency_info)
|
convert_to_presentation_currency(gl_entries, currency_info, filters.get('company'))
|
||||||
|
|
||||||
for entry in gl_entries:
|
for entry in gl_entries:
|
||||||
key = entry.account_number or entry.account_name
|
key = entry.account_number or entry.account_name
|
||||||
|
|||||||
@@ -423,7 +423,7 @@ def set_gl_entries_by_account(
|
|||||||
distributed_cost_center_query=distributed_cost_center_query), gl_filters, as_dict=True) #nosec
|
distributed_cost_center_query=distributed_cost_center_query), gl_filters, as_dict=True) #nosec
|
||||||
|
|
||||||
if filters and filters.get('presentation_currency'):
|
if filters and filters.get('presentation_currency'):
|
||||||
convert_to_presentation_currency(gl_entries, get_currency(filters))
|
convert_to_presentation_currency(gl_entries, get_currency(filters), filters.get('company'))
|
||||||
|
|
||||||
for entry in gl_entries:
|
for entry in gl_entries:
|
||||||
gl_entries_by_account.setdefault(entry.account, []).append(entry)
|
gl_entries_by_account.setdefault(entry.account, []).append(entry)
|
||||||
|
|||||||
@@ -180,7 +180,7 @@ def get_gl_entries(filters):
|
|||||||
filters, as_dict=1)
|
filters, as_dict=1)
|
||||||
|
|
||||||
if filters.get('presentation_currency'):
|
if filters.get('presentation_currency'):
|
||||||
return convert_to_presentation_currency(gl_entries, currency_map)
|
return convert_to_presentation_currency(gl_entries, currency_map, filters.get('company'))
|
||||||
else:
|
else:
|
||||||
return gl_entries
|
return gl_entries
|
||||||
|
|
||||||
|
|||||||
@@ -6,10 +6,6 @@ from erpnext.accounts.doctype.fiscal_year.fiscal_year import get_from_and_to_dat
|
|||||||
from frappe.utils import cint, get_datetime_str, formatdate, flt
|
from frappe.utils import cint, get_datetime_str, formatdate, flt
|
||||||
|
|
||||||
__exchange_rates = {}
|
__exchange_rates = {}
|
||||||
P_OR_L_ACCOUNTS = list(
|
|
||||||
sum(frappe.get_list('Account', fields=['name'], or_filters=[{'root_type': 'Income'}, {'root_type': 'Expense'}], as_list=True), ())
|
|
||||||
)
|
|
||||||
|
|
||||||
|
|
||||||
def get_currency(filters):
|
def get_currency(filters):
|
||||||
"""
|
"""
|
||||||
@@ -73,18 +69,7 @@ def get_rate_as_at(date, from_currency, to_currency):
|
|||||||
|
|
||||||
return rate
|
return rate
|
||||||
|
|
||||||
|
def convert_to_presentation_currency(gl_entries, currency_info, company):
|
||||||
def is_p_or_l_account(account_name):
|
|
||||||
"""
|
|
||||||
Check if the given `account name` is an `Account` with `root_type` of either 'Income'
|
|
||||||
or 'Expense'.
|
|
||||||
:param account_name:
|
|
||||||
:return: Boolean
|
|
||||||
"""
|
|
||||||
return account_name in P_OR_L_ACCOUNTS
|
|
||||||
|
|
||||||
|
|
||||||
def convert_to_presentation_currency(gl_entries, currency_info):
|
|
||||||
"""
|
"""
|
||||||
Take a list of GL Entries and change the 'debit' and 'credit' values to currencies
|
Take a list of GL Entries and change the 'debit' and 'credit' values to currencies
|
||||||
in `currency_info`.
|
in `currency_info`.
|
||||||
@@ -96,6 +81,9 @@ def convert_to_presentation_currency(gl_entries, currency_info):
|
|||||||
presentation_currency = currency_info['presentation_currency']
|
presentation_currency = currency_info['presentation_currency']
|
||||||
company_currency = currency_info['company_currency']
|
company_currency = currency_info['company_currency']
|
||||||
|
|
||||||
|
pl_accounts = [d.name for d in frappe.get_list('Account',
|
||||||
|
filters={'report_type': 'Profit and Loss', 'company': company})]
|
||||||
|
|
||||||
for entry in gl_entries:
|
for entry in gl_entries:
|
||||||
account = entry['account']
|
account = entry['account']
|
||||||
debit = flt(entry['debit'])
|
debit = flt(entry['debit'])
|
||||||
@@ -107,7 +95,7 @@ def convert_to_presentation_currency(gl_entries, currency_info):
|
|||||||
if account_currency != presentation_currency:
|
if account_currency != presentation_currency:
|
||||||
value = debit or credit
|
value = debit or credit
|
||||||
|
|
||||||
date = currency_info['report_date'] if not is_p_or_l_account(account) else entry['posting_date']
|
date = entry['posting_date'] if account in pl_accounts else currency_info['report_date']
|
||||||
converted_value = convert(value, presentation_currency, company_currency, date)
|
converted_value = convert(value, presentation_currency, company_currency, date)
|
||||||
|
|
||||||
if entry.get('debit'):
|
if entry.get('debit'):
|
||||||
|
|||||||
Reference in New Issue
Block a user