mirror of
https://github.com/frappe/erpnext.git
synced 2026-02-18 17:15:04 +00:00
fix: A project without tasks should be able to complete
(cherry picked from commit 268962c25f)
This commit is contained in:
@@ -213,6 +213,13 @@ class Project(Document):
|
||||
frappe.db.set_value("Sales Order", {"project": self.name}, "project", "")
|
||||
|
||||
def update_percent_complete(self):
|
||||
if self.status == "Completed":
|
||||
if (
|
||||
len(frappe.get_all("Task", dict(project=self.name))) == 0
|
||||
): # A project without tasks should be able to complete
|
||||
self.percent_complete_method = "Manual"
|
||||
self.percent_complete = 100
|
||||
|
||||
if self.percent_complete_method == "Manual":
|
||||
if self.status == "Completed":
|
||||
self.percent_complete = 100
|
||||
|
||||
@@ -199,6 +199,34 @@ class TestProject(FrappeTestCase):
|
||||
if not pt.is_group:
|
||||
self.assertIsNotNone(pt.parent_task)
|
||||
|
||||
def test_project_having_no_tasks_complete(self):
|
||||
project_name = "Test Project - No Tasks Completion"
|
||||
frappe.db.sql(""" delete from tabTask where project = %s """, project_name)
|
||||
frappe.delete_doc("Project", project_name)
|
||||
|
||||
project = frappe.get_doc(
|
||||
dict(
|
||||
doctype="Project",
|
||||
project_name=project_name,
|
||||
status="Open",
|
||||
expected_start_date=nowdate(),
|
||||
company="_Test Company",
|
||||
)
|
||||
).insert()
|
||||
|
||||
tasks = frappe.get_all(
|
||||
"Task",
|
||||
["subject", "exp_end_date", "depends_on_tasks", "name", "parent_task"],
|
||||
dict(project=project.name),
|
||||
order_by="creation asc",
|
||||
)
|
||||
|
||||
self.assertEqual(project.status, "Open")
|
||||
self.assertEqual(len(tasks), 0)
|
||||
project.status = "Completed"
|
||||
project.save()
|
||||
self.assertEqual(project.status, "Completed")
|
||||
|
||||
|
||||
def get_project(name, template):
|
||||
project = frappe.get_doc(
|
||||
|
||||
Reference in New Issue
Block a user