fix: Fixed test case and sider issues

This commit is contained in:
Nabin Hait 2022-01-31 17:24:50 +05:30
parent 3dadfc9048
commit 6099af5d00
5 changed files with 31 additions and 27 deletions

View File

@ -4,7 +4,8 @@
import frappe import frappe
from frappe import _ from frappe import _
from frappe.model.document import Document from frappe.model.document import Document
from frappe.utils import getdate, format_date, add_days from frappe.utils import add_days, format_date, getdate
class MainCostCenterCantBeChild(frappe.ValidationError): class MainCostCenterCantBeChild(frappe.ValidationError):
pass pass
@ -32,7 +33,7 @@ class CostCenterAllocation(Document):
frappe.throw(_("Total percentage against cost centers should be 100"), WrongPercentageAllocation) frappe.throw(_("Total percentage against cost centers should be 100"), WrongPercentageAllocation)
def validate_from_date_based_on_existing_gle(self): def validate_from_date_based_on_existing_gle(self):
# Check if GLE exists against the main cost center # Check if GLE exists against the main cost center
# If exists ensure from date is set after posting date of last GLE # If exists ensure from date is set after posting date of last GLE
last_gle_date = frappe.db.get_value("GL Entry", last_gle_date = frappe.db.get_value("GL Entry",
@ -47,7 +48,7 @@ class CostCenterAllocation(Document):
def validate_backdated_allocation(self): def validate_backdated_allocation(self):
# Check if there are any future existing allocation records against the main cost center # Check if there are any future existing allocation records against the main cost center
# If exists, warn the user about it # If exists, warn the user about it
future_allocation = frappe.db.get_value("Cost Center Allocation", filters = { future_allocation = frappe.db.get_value("Cost Center Allocation", filters = {
"main_cost_center": self.main_cost_center, "main_cost_center": self.main_cost_center,
"valid_from": (">=", self.valid_from), "valid_from": (">=", self.valid_from),
@ -82,7 +83,7 @@ class CostCenterAllocation(Document):
def validate_child_cost_centers(self): def validate_child_cost_centers(self):
# Check if child cost center is used as main cost center in any existing allocation # Check if child cost center is used as main cost center in any existing allocation
main_cost_centers = [d.main_cost_center for d in main_cost_centers = [d.main_cost_center for d in
frappe.get_all("Cost Center Allocation", {'docstatus': 1}, 'main_cost_center')] frappe.get_all("Cost Center Allocation", {'docstatus': 1}, 'main_cost_center')]
for d in self.allocation_percentages: for d in self.allocation_percentages:

View File

@ -34,11 +34,11 @@ class TestCostCenterAllocation(unittest.TestCase):
gle = frappe.qb.DocType("GL Entry") gle = frappe.qb.DocType("GL Entry")
gl_entries = ( gl_entries = (
frappe.qb.from_(gle) frappe.qb.from_(gle)
.select(gle.cost_center, gle.debit, gle.credit) .select(gle.cost_center, gle.debit, gle.credit)
.where(gle.voucher_type == 'Journal Entry') .where(gle.voucher_type == 'Journal Entry')
.where(gle.voucher_no == jv.name) .where(gle.voucher_no == jv.name)
.where(gle.account == 'Sales - _TC') .where(gle.account == 'Sales - _TC')
.orderby(gle.cost_center) .orderby(gle.cost_center)
).run(as_dict=1) ).run(as_dict=1)
self.assertTrue(gl_entries) self.assertTrue(gl_entries)
@ -57,8 +57,8 @@ class TestCostCenterAllocation(unittest.TestCase):
{ {
"Sub Cost Center 1 - _TC": 60, "Sub Cost Center 1 - _TC": 60,
"Main Cost Center 1 - _TC": 40 "Main Cost Center 1 - _TC": 40
} }, save=False
, save=False) )
self.assertRaises(MainCostCenterCantBeChild, cca.save) self.assertRaises(MainCostCenterCantBeChild, cca.save)
@ -75,8 +75,8 @@ class TestCostCenterAllocation(unittest.TestCase):
cca2 = create_cost_center_allocation("_Test Company", "Sub Cost Center 1 - _TC", cca2 = create_cost_center_allocation("_Test Company", "Sub Cost Center 1 - _TC",
{ {
"Sub Cost Center 2 - _TC": 100 "Sub Cost Center 2 - _TC": 100
} }, save=False
, save=False) )
self.assertRaises(InvalidMainCostCenter, cca2.save) self.assertRaises(InvalidMainCostCenter, cca2.save)
@ -96,8 +96,8 @@ class TestCostCenterAllocation(unittest.TestCase):
{ {
"Main Cost Center 1 - _TC": 60, "Main Cost Center 1 - _TC": 60,
"Sub Cost Center 1 - _TC": 40 "Sub Cost Center 1 - _TC": 40
} }, save=False
, save=False) )
self.assertRaises(InvalidChildCostCenter, cca2.save) self.assertRaises(InvalidChildCostCenter, cca2.save)
@ -108,8 +108,8 @@ class TestCostCenterAllocation(unittest.TestCase):
{ {
"Sub Cost Center 1 - _TC": 40, "Sub Cost Center 1 - _TC": 40,
"Sub Cost Center 2 - _TC": 40 "Sub Cost Center 2 - _TC": 40
} }, save=False
, save=False) )
self.assertRaises(WrongPercentageAllocation, cca.save) self.assertRaises(WrongPercentageAllocation, cca.save)
def test_valid_from_based_on_existing_gle(self): def test_valid_from_based_on_existing_gle(self):
@ -122,8 +122,8 @@ class TestCostCenterAllocation(unittest.TestCase):
{ {
"Sub Cost Center 1 - _TC": 60, "Sub Cost Center 1 - _TC": 60,
"Sub Cost Center 2 - _TC": 40 "Sub Cost Center 2 - _TC": 40
} }, valid_from=add_days(today(), -1), save=False
, valid_from=add_days(today(), -1), save=False) )
self.assertRaises(InvalidDateError, cca.save) self.assertRaises(InvalidDateError, cca.save)

View File

@ -52,6 +52,9 @@ def validate_accounting_period(gl_map):
.format(frappe.bold(accounting_periods[0].name)), ClosedAccountingPeriod) .format(frappe.bold(accounting_periods[0].name)), ClosedAccountingPeriod)
def process_gl_map(gl_map, merge_entries=True, precision=None): def process_gl_map(gl_map, merge_entries=True, precision=None):
if not gl_map:
return []
gl_map = distribute_gl_based_on_cost_center_allocation(gl_map, precision) gl_map = distribute_gl_based_on_cost_center_allocation(gl_map, precision)
if merge_entries: if merge_entries:
@ -86,8 +89,7 @@ def get_cost_center_allocation_data(company, posting_date):
child = frappe.qb.DocType("Cost Center Allocation Percentage") child = frappe.qb.DocType("Cost Center Allocation Percentage")
records = ( records = (
frappe.qb.from_(par) frappe.qb.from_(par).inner_join(child).on(par.name == child.parent)
.inner_join(child).on(par.name == child.parent)
.select(par.main_cost_center, child.cost_center, child.percentage) .select(par.main_cost_center, child.cost_center, child.percentage)
.where(par.docstatus == 1) .where(par.docstatus == 1)
.where(par.company == company) .where(par.company == company)

View File

@ -388,13 +388,14 @@ def set_gl_entries_by_account(
}) })
gl_entries = frappe.db.sql(""" gl_entries = frappe.db.sql("""
select posting_date, account, debit, credit, is_opening, fiscal_year, select posting_date, account, debit, credit, is_opening, fiscal_year,
debit_in_account_currency, credit_in_account_currency, account_currency from `tabGL Entry` debit_in_account_currency, credit_in_account_currency, account_currency from `tabGL Entry`
where company=%(company)s where company=%(company)s
{additional_conditions} {additional_conditions}
and posting_date <= %(to_date)s and posting_date <= %(to_date)s
and is_cancelled = 0 and is_cancelled = 0""".format(
""".format(additional_conditions=additional_conditions), gl_filters, as_dict=True) #nosec additional_conditions=additional_conditions), gl_filters, as_dict=True
)
if filters and filters.get('presentation_currency'): if filters and filters.get('presentation_currency'):
convert_to_presentation_currency(gl_entries, get_currency(filters), filters.get('company')) convert_to_presentation_currency(gl_entries, get_currency(filters), filters.get('company'))

View File

@ -35,9 +35,9 @@ def get_existing_cost_center_allocations():
records = ( records = (
frappe.qb.from_(par) frappe.qb.from_(par)
.inner_join(child).on(par.name == child.parent) .inner_join(child).on(par.name == child.parent)
.select(par.name, child.cost_center, child.percentage_allocation) .select(par.name, child.cost_center, child.percentage_allocation)
.where(par.enable_distributed_cost_center == 1) .where(par.enable_distributed_cost_center == 1)
).run(as_dict=True) ).run(as_dict=True)
cc_allocations = frappe._dict() cc_allocations = frappe._dict()