mirror of
https://github.com/frappe/erpnext.git
synced 2026-03-18 06:22:12 +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", "")
|
frappe.db.set_value("Sales Order", {"project": self.name}, "project", "")
|
||||||
|
|
||||||
def update_percent_complete(self):
|
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.percent_complete_method == "Manual":
|
||||||
if self.status == "Completed":
|
if self.status == "Completed":
|
||||||
self.percent_complete = 100
|
self.percent_complete = 100
|
||||||
|
|||||||
@@ -199,6 +199,34 @@ class TestProject(FrappeTestCase):
|
|||||||
if not pt.is_group:
|
if not pt.is_group:
|
||||||
self.assertIsNotNone(pt.parent_task)
|
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):
|
def get_project(name, template):
|
||||||
project = frappe.get_doc(
|
project = frappe.get_doc(
|
||||||
|
|||||||
Reference in New Issue
Block a user