mirror of
https://github.com/frappe/erpnext.git
synced 2026-08-15 15:38:39 +00:00
Merge pull request #58167 from nishkagosalia/gh-57661
fix: validation for task end date check
This commit is contained in:
@@ -122,19 +122,35 @@ class Task(NestedSet):
|
||||
if not self.project or frappe.in_test:
|
||||
return
|
||||
|
||||
if project_end_date := frappe.db.get_value("Project", self.project, "expected_end_date"):
|
||||
project_end_date = getdate(project_end_date)
|
||||
for fieldname in ("exp_start_date", "exp_end_date", "act_start_date", "act_end_date"):
|
||||
task_date = self.get(fieldname)
|
||||
if task_date and date_diff(project_end_date, getdate(task_date)) < 0:
|
||||
frappe.throw(
|
||||
_("{0}'s {1} cannot be after {2}'s Expected End Date.").format(
|
||||
frappe.bold(frappe.get_desk_link("Task", self.name)),
|
||||
_(self.meta.get_label(fieldname)),
|
||||
frappe.bold(frappe.get_desk_link("Project", self.project)),
|
||||
),
|
||||
frappe.exceptions.InvalidDates,
|
||||
)
|
||||
project_start_date, project_end_date = frappe.db.get_value(
|
||||
"Project", self.project, ["expected_start_date", "expected_end_date"]
|
||||
)
|
||||
|
||||
for fieldname in ("exp_start_date", "exp_end_date", "act_start_date", "act_end_date"):
|
||||
task_date = self.get(fieldname)
|
||||
if not task_date:
|
||||
continue
|
||||
task_date = getdate(task_date)
|
||||
|
||||
if project_end_date and date_diff(getdate(project_end_date), task_date) < 0:
|
||||
frappe.throw(
|
||||
_("{0}'s {1} cannot be after {2}'s Expected End Date.").format(
|
||||
get_link_to_form("Task", self.name),
|
||||
_(self.meta.get_label(fieldname)),
|
||||
get_link_to_form("Project", self.project),
|
||||
),
|
||||
frappe.exceptions.InvalidDates,
|
||||
)
|
||||
|
||||
if project_start_date and date_diff(task_date, getdate(project_start_date)) < 0:
|
||||
frappe.throw(
|
||||
_("{0}'s {1} cannot be before {2}'s Expected Start Date.").format(
|
||||
get_link_to_form("Task", self.name),
|
||||
_(self.meta.get_label(fieldname)),
|
||||
get_link_to_form("Project", self.project),
|
||||
),
|
||||
frappe.exceptions.InvalidDates,
|
||||
)
|
||||
|
||||
def validate_status(self):
|
||||
if self.is_template and self.status != "Template":
|
||||
|
||||
Reference in New Issue
Block a user