Merge pull request #57223 from aerele/project_validation

fix(projects): include on hold status in project filters and reports
This commit is contained in:
Mihir Kandoi
2026-07-17 20:46:11 +05:30
committed by GitHub
5 changed files with 27 additions and 2 deletions

View File

@@ -411,7 +411,7 @@ def get_project_name(
if filters.get("company"):
qb_filter_and_conditions.append(proj.company == filters.get("company"))
qb_filter_and_conditions.append(proj.status.notin(["Completed", "Cancelled"]))
qb_filter_and_conditions.append(proj.status.notin(["Completed", "Cancelled", "On hold"]))
q = qb.from_(proj)

View File

@@ -332,6 +332,23 @@ class TestProject(ERPNextTestSuite):
self.assertEqual(project.percent_complete, 100)
self.assertEqual(project.status, "Cancelled")
def test_on_hold_project_keeps_status(self):
project, tasks = self._project_with_tasks("Task Completion", 4)
# an On hold project is not auto-flipped to Completed even at 100%
project.status = "On hold"
for task in tasks:
frappe.db.set_value("Task", task, "status", "Completed")
project.update_percent_complete()
self.assertEqual(project.percent_complete, 100)
self.assertEqual(project.status, "On hold")
# nor auto-flipped back to Open when below 100%
frappe.db.set_value("Task", tasks[0], "status", "Open")
project.update_percent_complete()
self.assertEqual(project.percent_complete, 75)
self.assertEqual(project.status, "On hold")
def test_percent_complete_by_task_progress(self):
project, tasks = self._project_with_tasks("Task Progress", 2)

View File

@@ -14,6 +14,12 @@ frappe.ui.form.on("Task", {
};
},
onload: function (frm) {
frm.set_query("project", function () {
return {
query: "erpnext.controllers.queries.get_project_name",
};
});
frm.set_query("task", "depends_on", function () {
let filters = {
name: ["!=", frm.doc.name],

View File

@@ -30,6 +30,7 @@ frappe.ui.form.on("Timesheet", {
return {
filters: {
company: frm.doc.company,
status: "Open",
},
};
};
@@ -122,6 +123,7 @@ frappe.ui.form.on("Timesheet", {
return {
filters: {
customer: doc.customer,
status: "Open",
},
};
});

View File

@@ -22,7 +22,7 @@ frappe.query_reports["Project Summary"] = {
fieldname: "status",
label: __("Status"),
fieldtype: "Select",
options: "\nOpen\nCompleted\nCancelled",
options: "\nOpen\nOn hold\nCompleted\nCancelled",
default: "Open",
},
{