fix: Account balance patch and query fixes (#36117)
This commit is contained in:
parent
b5f6a1cc20
commit
b4bd978791
@ -159,6 +159,8 @@ def get_rootwise_opening_balances(filters, report_type):
|
||||
accounting_dimensions,
|
||||
period_closing_voucher=last_period_closing_voucher[0].name,
|
||||
)
|
||||
|
||||
# Report getting generate from the mid of a fiscal year
|
||||
if getdate(last_period_closing_voucher[0].posting_date) < getdate(
|
||||
add_days(filters.from_date, -1)
|
||||
):
|
||||
@ -220,7 +222,10 @@ def get_opening_balance(
|
||||
if start_date:
|
||||
opening_balance = opening_balance.where(closing_balance.posting_date >= start_date)
|
||||
opening_balance = opening_balance.where(closing_balance.is_opening == "No")
|
||||
opening_balance = opening_balance.where(closing_balance.posting_date < filters.from_date)
|
||||
else:
|
||||
opening_balance = opening_balance.where(
|
||||
(closing_balance.posting_date < filters.from_date) | (closing_balance.is_opening == "Yes")
|
||||
)
|
||||
|
||||
if (
|
||||
not filters.show_unclosed_fy_pl_balances
|
||||
|
@ -317,7 +317,7 @@ erpnext.patches.v13_0.update_docs_link
|
||||
erpnext.patches.v15_0.update_asset_value_for_manual_depr_entries
|
||||
erpnext.patches.v15_0.update_gpa_and_ndb_for_assdeprsch
|
||||
erpnext.patches.v14_0.create_accounting_dimensions_for_closing_balance
|
||||
erpnext.patches.v14_0.update_closing_balances #17-05-2023
|
||||
erpnext.patches.v14_0.update_closing_balances #14-07-2023
|
||||
execute:frappe.db.set_single_value("Accounts Settings", "merge_similar_account_heads", 0)
|
||||
# below migration patches should always run last
|
||||
erpnext.patches.v14_0.migrate_gl_to_payment_ledger
|
||||
|
@ -13,59 +13,62 @@ from erpnext.accounts.utils import get_fiscal_year
|
||||
def execute():
|
||||
frappe.db.truncate("Account Closing Balance")
|
||||
|
||||
i = 0
|
||||
company_wise_order = {}
|
||||
for pcv in frappe.db.get_all(
|
||||
"Period Closing Voucher",
|
||||
fields=["company", "posting_date", "name"],
|
||||
filters={"docstatus": 1},
|
||||
order_by="posting_date",
|
||||
):
|
||||
for company in frappe.get_all("Company", pluck="name"):
|
||||
i = 0
|
||||
company_wise_order = {}
|
||||
for pcv in frappe.db.get_all(
|
||||
"Period Closing Voucher",
|
||||
fields=["company", "posting_date", "name"],
|
||||
filters={"docstatus": 1, "company": company},
|
||||
order_by="posting_date",
|
||||
):
|
||||
|
||||
company_wise_order.setdefault(pcv.company, [])
|
||||
if pcv.posting_date not in company_wise_order[pcv.company]:
|
||||
pcv_doc = frappe.get_doc("Period Closing Voucher", pcv.name)
|
||||
pcv_doc.year_start_date = get_fiscal_year(
|
||||
pcv.posting_date, pcv.fiscal_year, company=pcv.company
|
||||
)[1]
|
||||
company_wise_order.setdefault(pcv.company, [])
|
||||
if pcv.posting_date not in company_wise_order[pcv.company]:
|
||||
pcv_doc = frappe.get_doc("Period Closing Voucher", pcv.name)
|
||||
pcv_doc.year_start_date = get_fiscal_year(
|
||||
pcv.posting_date, pcv.fiscal_year, company=pcv.company
|
||||
)[1]
|
||||
|
||||
# get gl entries against pcv
|
||||
gl_entries = frappe.db.get_all(
|
||||
"GL Entry", filters={"voucher_no": pcv.name, "is_cancelled": 0}, fields=["*"]
|
||||
)
|
||||
for entry in gl_entries:
|
||||
entry["is_period_closing_voucher_entry"] = 1
|
||||
entry["closing_date"] = pcv_doc.posting_date
|
||||
entry["period_closing_voucher"] = pcv_doc.name
|
||||
|
||||
# get all gl entries for the year
|
||||
closing_entries = frappe.db.get_all(
|
||||
"GL Entry",
|
||||
filters={
|
||||
"is_cancelled": 0,
|
||||
"voucher_no": ["!=", pcv.name],
|
||||
"posting_date": ["between", [pcv_doc.year_start_date, pcv.posting_date]],
|
||||
"is_opening": "No",
|
||||
},
|
||||
fields=["*"],
|
||||
)
|
||||
|
||||
if i == 0:
|
||||
# add opening entries only for the first pcv
|
||||
closing_entries += frappe.db.get_all(
|
||||
"GL Entry",
|
||||
filters={"is_cancelled": 0, "is_opening": "Yes"},
|
||||
fields=["*"],
|
||||
# get gl entries against pcv
|
||||
gl_entries = frappe.db.get_all(
|
||||
"GL Entry", filters={"voucher_no": pcv.name, "is_cancelled": 0}, fields=["*"]
|
||||
)
|
||||
for entry in gl_entries:
|
||||
entry["is_period_closing_voucher_entry"] = 1
|
||||
entry["closing_date"] = pcv_doc.posting_date
|
||||
entry["period_closing_voucher"] = pcv_doc.name
|
||||
|
||||
for entry in closing_entries:
|
||||
entry["closing_date"] = pcv_doc.posting_date
|
||||
entry["period_closing_voucher"] = pcv_doc.name
|
||||
closing_entries = []
|
||||
|
||||
entries = gl_entries + closing_entries
|
||||
if entries:
|
||||
make_closing_entries(entries, voucher_name=pcv.name)
|
||||
if pcv.posting_date not in company_wise_order[pcv.company]:
|
||||
# get all gl entries for the year
|
||||
closing_entries = frappe.db.get_all(
|
||||
"GL Entry",
|
||||
filters={
|
||||
"is_cancelled": 0,
|
||||
"voucher_no": ["!=", pcv.name],
|
||||
"posting_date": ["between", [pcv_doc.year_start_date, pcv.posting_date]],
|
||||
"is_opening": "No",
|
||||
},
|
||||
fields=["*"],
|
||||
)
|
||||
|
||||
company_wise_order[pcv.company].append(pcv.posting_date)
|
||||
if i == 0:
|
||||
# add opening entries only for the first pcv
|
||||
closing_entries += frappe.db.get_all(
|
||||
"GL Entry",
|
||||
filters={"is_cancelled": 0, "is_opening": "Yes"},
|
||||
fields=["*"],
|
||||
)
|
||||
|
||||
i += 1
|
||||
for entry in closing_entries:
|
||||
entry["closing_date"] = pcv_doc.posting_date
|
||||
entry["period_closing_voucher"] = pcv_doc.name
|
||||
|
||||
entries = gl_entries + closing_entries
|
||||
|
||||
if entries:
|
||||
make_closing_entries(entries, voucher_name=pcv.name)
|
||||
i += 1
|
||||
company_wise_order[pcv.company].append(pcv.posting_date)
|
||||
|
Loading…
x
Reference in New Issue
Block a user