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
 |