Skip to content

Commit

Permalink
fix: Fixed test case and sider issues
Browse files Browse the repository at this point in the history
  • Loading branch information
nabinhait committed Jan 31, 2022
1 parent 3dadfc9 commit 6099af5
Show file tree
Hide file tree
Showing 5 changed files with 31 additions and 27 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,8 @@
import frappe
from frappe import _
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):
pass
Expand Down Expand Up @@ -32,7 +33,7 @@ def validate_total_allocation_percentage(self):
frappe.throw(_("Total percentage against cost centers should be 100"), WrongPercentageAllocation)

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

last_gle_date = frappe.db.get_value("GL Entry",
Expand All @@ -47,7 +48,7 @@ def validate_from_date_based_on_existing_gle(self):
def validate_backdated_allocation(self):
# Check if there are any future existing allocation records against the main cost center
# If exists, warn the user about it

future_allocation = frappe.db.get_value("Cost Center Allocation", filters = {
"main_cost_center": self.main_cost_center,
"valid_from": (">=", self.valid_from),
Expand Down Expand Up @@ -82,7 +83,7 @@ def validate_main_cost_center(self):

def validate_child_cost_centers(self):
# 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')]

for d in self.allocation_percentages:
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -34,11 +34,11 @@ def test_gle_based_on_cost_center_allocation(self):
gle = frappe.qb.DocType("GL Entry")
gl_entries = (
frappe.qb.from_(gle)
.select(gle.cost_center, gle.debit, gle.credit)
.where(gle.voucher_type == 'Journal Entry')
.where(gle.voucher_no == jv.name)
.where(gle.account == 'Sales - _TC')
.orderby(gle.cost_center)
.select(gle.cost_center, gle.debit, gle.credit)
.where(gle.voucher_type == 'Journal Entry')
.where(gle.voucher_no == jv.name)
.where(gle.account == 'Sales - _TC')
.orderby(gle.cost_center)
).run(as_dict=1)

self.assertTrue(gl_entries)
Expand All @@ -57,8 +57,8 @@ def test_main_cost_center_cant_be_child(self):
{
"Sub Cost Center 1 - _TC": 60,
"Main Cost Center 1 - _TC": 40
}
, save=False)
}, save=False
)

self.assertRaises(MainCostCenterCantBeChild, cca.save)

Expand All @@ -75,8 +75,8 @@ def test_invalid_main_cost_center(self):
cca2 = create_cost_center_allocation("_Test Company", "Sub Cost Center 1 - _TC",
{
"Sub Cost Center 2 - _TC": 100
}
, save=False)
}, save=False
)

self.assertRaises(InvalidMainCostCenter, cca2.save)

Expand All @@ -96,8 +96,8 @@ def test_if_child_cost_center_has_any_allocation_record(self):
{
"Main Cost Center 1 - _TC": 60,
"Sub Cost Center 1 - _TC": 40
}
, save=False)
}, save=False
)

self.assertRaises(InvalidChildCostCenter, cca2.save)

Expand All @@ -108,8 +108,8 @@ def test_total_percentage(self):
{
"Sub Cost Center 1 - _TC": 40,
"Sub Cost Center 2 - _TC": 40
}
, save=False)
}, save=False
)
self.assertRaises(WrongPercentageAllocation, cca.save)

def test_valid_from_based_on_existing_gle(self):
Expand All @@ -122,8 +122,8 @@ def test_valid_from_based_on_existing_gle(self):
{
"Sub Cost Center 1 - _TC": 60,
"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)

Expand Down
6 changes: 4 additions & 2 deletions erpnext/accounts/general_ledger.py
Original file line number Diff line number Diff line change
Expand Up @@ -52,6 +52,9 @@ def validate_accounting_period(gl_map):
.format(frappe.bold(accounting_periods[0].name)), ClosedAccountingPeriod)

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)

if merge_entries:
Expand Down Expand Up @@ -86,8 +89,7 @@ def get_cost_center_allocation_data(company, posting_date):
child = frappe.qb.DocType("Cost Center Allocation Percentage")

records = (
frappe.qb.from_(par)
.inner_join(child).on(par.name == child.parent)
frappe.qb.from_(par).inner_join(child).on(par.name == child.parent)
.select(par.main_cost_center, child.cost_center, child.percentage)
.where(par.docstatus == 1)
.where(par.company == company)
Expand Down
7 changes: 4 additions & 3 deletions erpnext/accounts/report/financial_statements.py
Original file line number Diff line number Diff line change
Expand Up @@ -388,13 +388,14 @@ def set_gl_entries_by_account(
})

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`
where company=%(company)s
{additional_conditions}
and posting_date <= %(to_date)s
and is_cancelled = 0
""".format(additional_conditions=additional_conditions), gl_filters, as_dict=True) #nosec
and is_cancelled = 0""".format(
additional_conditions=additional_conditions), gl_filters, as_dict=True
)

if filters and filters.get('presentation_currency'):
convert_to_presentation_currency(gl_entries, get_currency(filters), filters.get('company'))
Expand Down
6 changes: 3 additions & 3 deletions erpnext/patches/v14_0/migrate_cost_center_allocations.py
Original file line number Diff line number Diff line change
Expand Up @@ -35,9 +35,9 @@ def get_existing_cost_center_allocations():

records = (
frappe.qb.from_(par)
.inner_join(child).on(par.name == child.parent)
.select(par.name, child.cost_center, child.percentage_allocation)
.where(par.enable_distributed_cost_center == 1)
.inner_join(child).on(par.name == child.parent)
.select(par.name, child.cost_center, child.percentage_allocation)
.where(par.enable_distributed_cost_center == 1)
).run(as_dict=True)

cc_allocations = frappe._dict()
Expand Down

0 comments on commit 6099af5

Please sign in to comment.