mirror of
https://github.com/frappe/erpnext.git
synced 2026-06-01 19:29:10 +00:00
test: cumulative actions for budget
This commit is contained in:
@@ -380,6 +380,44 @@ class TestBudget(ERPNextTestSuite):
|
|||||||
|
|
||||||
self.assertRaises(BudgetError, jv.submit)
|
self.assertRaises(BudgetError, jv.submit)
|
||||||
|
|
||||||
|
def test_action_for_cumulative_limit(self):
|
||||||
|
set_total_expense_zero(nowdate(), "cost_center")
|
||||||
|
|
||||||
|
budget = make_budget(budget_against="Cost Center", applicable_on_cumulative_expense=True)
|
||||||
|
|
||||||
|
accumulated_limit = get_accumulated_monthly_budget(
|
||||||
|
budget.monthly_distribution, nowdate(), budget.fiscal_year, budget.accounts[0].budget_amount
|
||||||
|
)
|
||||||
|
|
||||||
|
jv = make_journal_entry(
|
||||||
|
"_Test Account Cost for Goods Sold - _TC",
|
||||||
|
"_Test Bank - _TC",
|
||||||
|
accumulated_limit - 1,
|
||||||
|
"_Test Cost Center - _TC",
|
||||||
|
posting_date=nowdate(),
|
||||||
|
)
|
||||||
|
jv.submit()
|
||||||
|
|
||||||
|
frappe.db.set_value(
|
||||||
|
"Budget", budget.name, "action_if_accumulated_monthly_exceeded_on_cumulative_expense", "Stop"
|
||||||
|
)
|
||||||
|
po = create_purchase_order(
|
||||||
|
transaction_date=nowdate(), qty=1, rate=accumulated_limit + 1, do_not_submit=True
|
||||||
|
)
|
||||||
|
po.set_missing_values()
|
||||||
|
|
||||||
|
self.assertRaises(BudgetError, po.submit)
|
||||||
|
|
||||||
|
frappe.db.set_value(
|
||||||
|
"Budget", budget.name, "action_if_accumulated_monthly_exceeded_on_cumulative_expense", "Ignore"
|
||||||
|
)
|
||||||
|
po.submit()
|
||||||
|
|
||||||
|
budget.load_from_db()
|
||||||
|
budget.cancel()
|
||||||
|
po.cancel()
|
||||||
|
jv.cancel()
|
||||||
|
|
||||||
|
|
||||||
def set_total_expense_zero(posting_date, budget_against_field=None, budget_against_CC=None):
|
def set_total_expense_zero(posting_date, budget_against_field=None, budget_against_CC=None):
|
||||||
if budget_against_field == "project":
|
if budget_against_field == "project":
|
||||||
|
|||||||
Reference in New Issue
Block a user