chore: Add missing validations
This commit is contained in:
parent
00fe3042b2
commit
0aadb680eb
@ -5,12 +5,12 @@
|
|||||||
import frappe
|
import frappe
|
||||||
from frappe import _
|
from frappe import _
|
||||||
from frappe.query_builder.functions import Sum
|
from frappe.query_builder.functions import Sum
|
||||||
from frappe.utils import flt
|
from frappe.utils import add_days, flt
|
||||||
|
|
||||||
from erpnext.accounts.doctype.accounting_dimension.accounting_dimension import (
|
from erpnext.accounts.doctype.accounting_dimension.accounting_dimension import (
|
||||||
get_accounting_dimensions,
|
get_accounting_dimensions,
|
||||||
)
|
)
|
||||||
from erpnext.accounts.utils import get_account_currency
|
from erpnext.accounts.utils import get_account_currency, get_fiscal_year, validate_fiscal_year
|
||||||
from erpnext.controllers.accounts_controller import AccountsController
|
from erpnext.controllers.accounts_controller import AccountsController
|
||||||
|
|
||||||
|
|
||||||
@ -72,8 +72,6 @@ class PeriodClosingVoucher(AccountsController):
|
|||||||
frappe.throw(_("Currency of the Closing Account must be {0}").format(company_currency))
|
frappe.throw(_("Currency of the Closing Account must be {0}").format(company_currency))
|
||||||
|
|
||||||
def validate_posting_date(self):
|
def validate_posting_date(self):
|
||||||
from erpnext.accounts.utils import get_fiscal_year, validate_fiscal_year
|
|
||||||
|
|
||||||
validate_fiscal_year(
|
validate_fiscal_year(
|
||||||
self.posting_date, self.fiscal_year, self.company, label=_("Posting Date"), doc=self
|
self.posting_date, self.fiscal_year, self.company, label=_("Posting Date"), doc=self
|
||||||
)
|
)
|
||||||
@ -82,6 +80,8 @@ class PeriodClosingVoucher(AccountsController):
|
|||||||
self.posting_date, self.fiscal_year, company=self.company
|
self.posting_date, self.fiscal_year, company=self.company
|
||||||
)[1]
|
)[1]
|
||||||
|
|
||||||
|
self.check_if_previous_year_closed()
|
||||||
|
|
||||||
pce = frappe.db.sql(
|
pce = frappe.db.sql(
|
||||||
"""select name from `tabPeriod Closing Voucher`
|
"""select name from `tabPeriod Closing Voucher`
|
||||||
where posting_date > %s and fiscal_year = %s and docstatus = 1 and company = %s""",
|
where posting_date > %s and fiscal_year = %s and docstatus = 1 and company = %s""",
|
||||||
@ -94,6 +94,17 @@ class PeriodClosingVoucher(AccountsController):
|
|||||||
)
|
)
|
||||||
)
|
)
|
||||||
|
|
||||||
|
def check_if_previous_year_closed(self):
|
||||||
|
last_year_closing = add_days(self.year_start_date, -1)
|
||||||
|
|
||||||
|
previous_fiscal_year = get_fiscal_year(last_year_closing, company=self.company, boolean=True)
|
||||||
|
|
||||||
|
if previous_fiscal_year and not frappe.db.exists(
|
||||||
|
"Period Closing Voucher",
|
||||||
|
{"posting_date": ("<=", last_year_closing), "docstatus": 1, "company": self.company},
|
||||||
|
):
|
||||||
|
frappe.throw(_("Previous Year is not closed, please close it first"))
|
||||||
|
|
||||||
def make_gl_entries(self, get_opening_entries=False):
|
def make_gl_entries(self, get_opening_entries=False):
|
||||||
gl_entries = self.get_gl_entries()
|
gl_entries = self.get_gl_entries()
|
||||||
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)
|
||||||
|
@ -486,8 +486,6 @@ def get_accounting_entries(
|
|||||||
gl_entry.account,
|
gl_entry.account,
|
||||||
gl_entry.debit,
|
gl_entry.debit,
|
||||||
gl_entry.credit,
|
gl_entry.credit,
|
||||||
gl_entry.is_opening,
|
|
||||||
gl_entry.fiscal_year,
|
|
||||||
gl_entry.debit_in_account_currency,
|
gl_entry.debit_in_account_currency,
|
||||||
gl_entry.credit_in_account_currency,
|
gl_entry.credit_in_account_currency,
|
||||||
gl_entry.account_currency,
|
gl_entry.account_currency,
|
||||||
@ -498,7 +496,7 @@ def get_accounting_entries(
|
|||||||
query = query.where(gl_entry.account.isin(accounts))
|
query = query.where(gl_entry.account.isin(accounts))
|
||||||
|
|
||||||
if doctype == "GL Entry":
|
if doctype == "GL Entry":
|
||||||
query = query.select(gl_entry.posting_date)
|
query = query.select(gl_entry.posting_date, gl_entry.is_opening, gl_entry.fiscal_year)
|
||||||
query = query.where(gl_entry.is_cancelled == 0)
|
query = query.where(gl_entry.is_cancelled == 0)
|
||||||
query = query.where(gl_entry.posting_date <= to_date)
|
query = query.where(gl_entry.posting_date <= to_date)
|
||||||
else:
|
else:
|
||||||
|
@ -51,13 +51,25 @@ GL_REPOSTING_CHUNK = 100
|
|||||||
|
|
||||||
@frappe.whitelist()
|
@frappe.whitelist()
|
||||||
def get_fiscal_year(
|
def get_fiscal_year(
|
||||||
date=None, fiscal_year=None, label="Date", verbose=1, company=None, as_dict=False
|
date=None, fiscal_year=None, label="Date", verbose=1, company=None, as_dict=False, boolean=False
|
||||||
):
|
):
|
||||||
return get_fiscal_years(date, fiscal_year, label, verbose, company, as_dict=as_dict)[0]
|
fiscal_years = get_fiscal_years(
|
||||||
|
date, fiscal_year, label, verbose, company, as_dict=as_dict, boolean=boolean
|
||||||
|
)
|
||||||
|
if boolean:
|
||||||
|
return fiscal_years
|
||||||
|
else:
|
||||||
|
return fiscal_years[0]
|
||||||
|
|
||||||
|
|
||||||
def get_fiscal_years(
|
def get_fiscal_years(
|
||||||
transaction_date=None, fiscal_year=None, label="Date", verbose=1, company=None, as_dict=False
|
transaction_date=None,
|
||||||
|
fiscal_year=None,
|
||||||
|
label="Date",
|
||||||
|
verbose=1,
|
||||||
|
company=None,
|
||||||
|
as_dict=False,
|
||||||
|
boolean=False,
|
||||||
):
|
):
|
||||||
fiscal_years = frappe.cache().hget("fiscal_years", company) or []
|
fiscal_years = frappe.cache().hget("fiscal_years", company) or []
|
||||||
|
|
||||||
@ -121,8 +133,12 @@ def get_fiscal_years(
|
|||||||
if company:
|
if company:
|
||||||
error_msg = _("""{0} for {1}""").format(error_msg, frappe.bold(company))
|
error_msg = _("""{0} for {1}""").format(error_msg, frappe.bold(company))
|
||||||
|
|
||||||
|
if boolean:
|
||||||
|
return False
|
||||||
|
|
||||||
if verbose == 1:
|
if verbose == 1:
|
||||||
frappe.msgprint(error_msg)
|
frappe.msgprint(error_msg)
|
||||||
|
|
||||||
raise FiscalYearError(error_msg)
|
raise FiscalYearError(error_msg)
|
||||||
|
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user