34 lines
1.1 KiB
Python
34 lines
1.1 KiB
Python
# Copyright (c) 2023, Frappe Technologies Pvt. Ltd. and Contributors
|
|
# License: MIT. See LICENSE
|
|
|
|
|
|
import frappe
|
|
|
|
from erpnext.accounts.doctype.account_closing_balance.account_closing_balance import (
|
|
make_closing_entries,
|
|
)
|
|
from erpnext.accounts.utils import get_fiscal_year
|
|
|
|
|
|
def execute():
|
|
company_wise_order = {}
|
|
get_opening_entries = True
|
|
for pcv in frappe.db.get_all(
|
|
"Period Closing Voucher",
|
|
fields=["company", "posting_date", "name"],
|
|
filters={"docstatus": 1},
|
|
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]
|
|
gl_entries = pcv_doc.get_gl_entries()
|
|
closing_entries = pcv_doc.get_grouped_gl_entries(get_opening_entries=get_opening_entries)
|
|
make_closing_entries(gl_entries + closing_entries, voucher_name=pcv.name)
|
|
company_wise_order[pcv.company].append(pcv.posting_date)
|
|
get_opening_entries = False
|