mirror of
https://github.com/frappe/erpnext.git
synced 2026-03-17 22:12:12 +00:00
fix: run gl_entries and closing voucher processes in same function
(cherry picked from commit af4daa5b0f)
This commit is contained in:
@@ -60,7 +60,7 @@ class PeriodClosingVoucher(AccountsController):
|
|||||||
)
|
)
|
||||||
if gle_count > 5000:
|
if gle_count > 5000:
|
||||||
frappe.enqueue(
|
frappe.enqueue(
|
||||||
make_reverse_gl_entries,
|
process_cancellation,
|
||||||
voucher_type="Period Closing Voucher",
|
voucher_type="Period Closing Voucher",
|
||||||
voucher_no=self.name,
|
voucher_no=self.name,
|
||||||
queue="long",
|
queue="long",
|
||||||
@@ -71,9 +71,7 @@ class PeriodClosingVoucher(AccountsController):
|
|||||||
alert=True,
|
alert=True,
|
||||||
)
|
)
|
||||||
else:
|
else:
|
||||||
make_reverse_gl_entries(voucher_type="Period Closing Voucher", voucher_no=self.name)
|
process_cancellation(voucher_type="Period Closing Voucher", voucher_no=self.name)
|
||||||
|
|
||||||
self.delete_closing_entries()
|
|
||||||
|
|
||||||
def validate_future_closing_vouchers(self):
|
def validate_future_closing_vouchers(self):
|
||||||
if frappe.db.exists(
|
if frappe.db.exists(
|
||||||
@@ -86,12 +84,6 @@ class PeriodClosingVoucher(AccountsController):
|
|||||||
)
|
)
|
||||||
)
|
)
|
||||||
|
|
||||||
def delete_closing_entries(self):
|
|
||||||
closing_balance = frappe.qb.DocType("Account Closing Balance")
|
|
||||||
frappe.qb.from_(closing_balance).delete().where(
|
|
||||||
closing_balance.period_closing_voucher == self.name
|
|
||||||
).run()
|
|
||||||
|
|
||||||
def validate_account_head(self):
|
def validate_account_head(self):
|
||||||
closing_account_type = frappe.get_cached_value("Account", self.closing_account_head, "root_type")
|
closing_account_type = frappe.get_cached_value("Account", self.closing_account_head, "root_type")
|
||||||
|
|
||||||
@@ -166,14 +158,7 @@ class PeriodClosingVoucher(AccountsController):
|
|||||||
closing_entries = self.get_grouped_gl_entries(get_opening_entries=get_opening_entries)
|
closing_entries = self.get_grouped_gl_entries(get_opening_entries=get_opening_entries)
|
||||||
if len(gl_entries + closing_entries) > 3000:
|
if len(gl_entries + closing_entries) > 3000:
|
||||||
frappe.enqueue(
|
frappe.enqueue(
|
||||||
process_gl_entries,
|
process_gl_and_closing_entries,
|
||||||
gl_entries=gl_entries,
|
|
||||||
voucher_name=self.name,
|
|
||||||
timeout=3000,
|
|
||||||
)
|
|
||||||
|
|
||||||
frappe.enqueue(
|
|
||||||
process_closing_entries,
|
|
||||||
gl_entries=gl_entries,
|
gl_entries=gl_entries,
|
||||||
closing_entries=closing_entries,
|
closing_entries=closing_entries,
|
||||||
voucher_name=self.name,
|
voucher_name=self.name,
|
||||||
@@ -187,8 +172,9 @@ class PeriodClosingVoucher(AccountsController):
|
|||||||
alert=True,
|
alert=True,
|
||||||
)
|
)
|
||||||
else:
|
else:
|
||||||
process_gl_entries(gl_entries, self.name)
|
process_gl_and_closing_entries(
|
||||||
process_closing_entries(gl_entries, closing_entries, self.name, self.company, self.posting_date)
|
gl_entries, closing_entries, self.name, self.company, self.posting_date
|
||||||
|
)
|
||||||
|
|
||||||
def get_grouped_gl_entries(self, get_opening_entries=False):
|
def get_grouped_gl_entries(self, get_opening_entries=False):
|
||||||
closing_entries = []
|
closing_entries = []
|
||||||
@@ -374,12 +360,16 @@ class PeriodClosingVoucher(AccountsController):
|
|||||||
return query.run(as_dict=1)
|
return query.run(as_dict=1)
|
||||||
|
|
||||||
|
|
||||||
def process_gl_entries(gl_entries, voucher_name):
|
def process_gl_and_closing_entries(gl_entries, closing_entries, voucher_name, company, closing_date):
|
||||||
|
from erpnext.accounts.doctype.account_closing_balance.account_closing_balance import (
|
||||||
|
make_closing_entries,
|
||||||
|
)
|
||||||
from erpnext.accounts.general_ledger import make_gl_entries
|
from erpnext.accounts.general_ledger import make_gl_entries
|
||||||
|
|
||||||
try:
|
try:
|
||||||
if gl_entries:
|
if gl_entries:
|
||||||
make_gl_entries(gl_entries, merge_entries=False)
|
make_gl_entries(gl_entries, merge_entries=False)
|
||||||
|
make_closing_entries(gl_entries + closing_entries, voucher_name, company, closing_date)
|
||||||
frappe.db.set_value("Period Closing Voucher", voucher_name, "gle_processing_status", "Completed")
|
frappe.db.set_value("Period Closing Voucher", voucher_name, "gle_processing_status", "Completed")
|
||||||
except Exception as e:
|
except Exception as e:
|
||||||
frappe.db.rollback()
|
frappe.db.rollback()
|
||||||
@@ -387,25 +377,21 @@ def process_gl_entries(gl_entries, voucher_name):
|
|||||||
frappe.db.set_value("Period Closing Voucher", voucher_name, "gle_processing_status", "Failed")
|
frappe.db.set_value("Period Closing Voucher", voucher_name, "gle_processing_status", "Failed")
|
||||||
|
|
||||||
|
|
||||||
def process_closing_entries(gl_entries, closing_entries, voucher_name, company, closing_date):
|
def process_cancellation(voucher_type, voucher_no):
|
||||||
from erpnext.accounts.doctype.account_closing_balance.account_closing_balance import (
|
|
||||||
make_closing_entries,
|
|
||||||
)
|
|
||||||
|
|
||||||
try:
|
|
||||||
make_closing_entries(gl_entries + closing_entries, voucher_name, company, closing_date)
|
|
||||||
except Exception as e:
|
|
||||||
frappe.db.rollback()
|
|
||||||
frappe.log_error(e)
|
|
||||||
|
|
||||||
|
|
||||||
def make_reverse_gl_entries(voucher_type, voucher_no):
|
|
||||||
from erpnext.accounts.general_ledger import make_reverse_gl_entries
|
from erpnext.accounts.general_ledger import make_reverse_gl_entries
|
||||||
|
|
||||||
try:
|
try:
|
||||||
make_reverse_gl_entries(voucher_type=voucher_type, voucher_no=voucher_no)
|
make_reverse_gl_entries(voucher_type=voucher_type, voucher_no=voucher_no)
|
||||||
|
delete_closing_entries(voucher_no)
|
||||||
frappe.db.set_value("Period Closing Voucher", voucher_no, "gle_processing_status", "Completed")
|
frappe.db.set_value("Period Closing Voucher", voucher_no, "gle_processing_status", "Completed")
|
||||||
except Exception as e:
|
except Exception as e:
|
||||||
frappe.db.rollback()
|
frappe.db.rollback()
|
||||||
frappe.log_error(e)
|
frappe.log_error(e)
|
||||||
frappe.db.set_value("Period Closing Voucher", voucher_no, "gle_processing_status", "Failed")
|
frappe.db.set_value("Period Closing Voucher", voucher_no, "gle_processing_status", "Failed")
|
||||||
|
|
||||||
|
|
||||||
|
def delete_closing_entries(voucher_no):
|
||||||
|
closing_balance = frappe.qb.DocType("Account Closing Balance")
|
||||||
|
frappe.qb.from_(closing_balance).delete().where(
|
||||||
|
closing_balance.period_closing_voucher == voucher_no
|
||||||
|
).run()
|
||||||
|
|||||||
Reference in New Issue
Block a user