mirror of
https://github.com/frappe/erpnext.git
synced 2026-04-12 11:25:09 +00:00
Merge pull request #42969 from lbrandh/project_completion
fix: A project without tasks should be able to complete
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(
|
||||
{
|
||||
"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