fix: task validation error when adding tasks to projects (#19919)
* fix: task validation error when adding tasks to projects
When adding a task to a project, if the project didn't have an Expected End Date the validation would fail.
This is because passing a None value to getdate() returns today's date, rather than being optional as expected.
* update task.py
diff --git a/erpnext/projects/doctype/task/task.py b/erpnext/projects/doctype/task/task.py
index 7083d69..45f2681 100755
--- a/erpnext/projects/doctype/task/task.py
+++ b/erpnext/projects/doctype/task/task.py
@@ -47,11 +47,11 @@
if not self.project or frappe.flags.in_test:
return
- expected_end_date = getdate(frappe.db.get_value("Project", self.project, "expected_end_date"))
+ expected_end_date = frappe.db.get_value("Project", self.project, "expected_end_date")
if expected_end_date:
- validate_project_dates(expected_end_date, self, "exp_start_date", "exp_end_date", "Expected")
- validate_project_dates(expected_end_date, self, "act_start_date", "act_end_date", "Actual")
+ validate_project_dates(getdate(expected_end_date), self, "exp_start_date", "exp_end_date", "Expected")
+ validate_project_dates(getdate(expected_end_date), self, "act_start_date", "act_end_date", "Actual")
def validate_status(self):
if self.status!=self.get_db_value("status") and self.status == "Completed":
@@ -278,4 +278,4 @@
frappe.throw(_("Task's {0} Start Date cannot be after Project's End Date.").format(actual_or_expected_date))
if task.get(task_end) and date_diff(project_end_date, getdate(task.get(task_end))) < 0:
- frappe.throw(_("Task's {0} End Date cannot be after Project's End Date.").format(actual_or_expected_date))
\ No newline at end of file
+ frappe.throw(_("Task's {0} End Date cannot be after Project's End Date.").format(actual_or_expected_date))