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,
|
accounting_dimensions,
|
||||||
period_closing_voucher=last_period_closing_voucher[0].name,
|
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(
|
if getdate(last_period_closing_voucher[0].posting_date) < getdate(
|
||||||
add_days(filters.from_date, -1)
|
add_days(filters.from_date, -1)
|
||||||
):
|
):
|
||||||
@ -220,7 +222,10 @@ def get_opening_balance(
|
|||||||
if start_date:
|
if start_date:
|
||||||
opening_balance = opening_balance.where(closing_balance.posting_date >= 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.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 (
|
if (
|
||||||
not filters.show_unclosed_fy_pl_balances
|
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_asset_value_for_manual_depr_entries
|
||||||
erpnext.patches.v15_0.update_gpa_and_ndb_for_assdeprsch
|
erpnext.patches.v15_0.update_gpa_and_ndb_for_assdeprsch
|
||||||
erpnext.patches.v14_0.create_accounting_dimensions_for_closing_balance
|
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)
|
execute:frappe.db.set_single_value("Accounts Settings", "merge_similar_account_heads", 0)
|
||||||
# below migration patches should always run last
|
# below migration patches should always run last
|
||||||
erpnext.patches.v14_0.migrate_gl_to_payment_ledger
|
erpnext.patches.v14_0.migrate_gl_to_payment_ledger
|
||||||
|
@ -13,59 +13,62 @@ from erpnext.accounts.utils import get_fiscal_year
|
|||||||
def execute():
|
def execute():
|
||||||
frappe.db.truncate("Account Closing Balance")
|
frappe.db.truncate("Account Closing Balance")
|
||||||
|
|
||||||
i = 0
|
for company in frappe.get_all("Company", pluck="name"):
|
||||||
company_wise_order = {}
|
i = 0
|
||||||
for pcv in frappe.db.get_all(
|
company_wise_order = {}
|
||||||
"Period Closing Voucher",
|
for pcv in frappe.db.get_all(
|
||||||
fields=["company", "posting_date", "name"],
|
"Period Closing Voucher",
|
||||||
filters={"docstatus": 1},
|
fields=["company", "posting_date", "name"],
|
||||||
order_by="posting_date",
|
filters={"docstatus": 1, "company": company},
|
||||||
):
|
order_by="posting_date",
|
||||||
|
):
|
||||||
|
|
||||||
company_wise_order.setdefault(pcv.company, [])
|
company_wise_order.setdefault(pcv.company, [])
|
||||||
if pcv.posting_date not in company_wise_order[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 = frappe.get_doc("Period Closing Voucher", pcv.name)
|
||||||
pcv_doc.year_start_date = get_fiscal_year(
|
pcv_doc.year_start_date = get_fiscal_year(
|
||||||
pcv.posting_date, pcv.fiscal_year, company=pcv.company
|
pcv.posting_date, pcv.fiscal_year, company=pcv.company
|
||||||
)[1]
|
)[1]
|
||||||
|
|
||||||
# get gl entries against pcv
|
# get gl entries against pcv
|
||||||
gl_entries = frappe.db.get_all(
|
gl_entries = frappe.db.get_all(
|
||||||
"GL Entry", filters={"voucher_no": pcv.name, "is_cancelled": 0}, fields=["*"]
|
"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=["*"],
|
|
||||||
)
|
)
|
||||||
|
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:
|
closing_entries = []
|
||||||
entry["closing_date"] = pcv_doc.posting_date
|
|
||||||
entry["period_closing_voucher"] = pcv_doc.name
|
|
||||||
|
|
||||||
entries = gl_entries + closing_entries
|
if pcv.posting_date not in company_wise_order[pcv.company]:
|
||||||
if entries:
|
# get all gl entries for the year
|
||||||
make_closing_entries(entries, voucher_name=pcv.name)
|
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