diff --git a/module/programplan/lang/en.php b/module/programplan/lang/en.php index 6c3046d8c7..ab774d4154 100644 --- a/module/programplan/lang/en.php +++ b/module/programplan/lang/en.php @@ -51,6 +51,8 @@ $lang->programplan->exporting = 'Exporting'; $lang->programplan->exportFail = 'Export failed'; $lang->programplan->hideCriticalPath = 'Hide Critical Path'; $lang->programplan->showCriticalPath = 'Show Critical Path'; +$lang->programplan->errorEnd = "Project end date: %s, end date should be <= project end date."; +$lang->programplan->errorBegin = "Project begin date: %s, begin date should be >= project begin date."; $lang->programplan->milestoneList[1] = 'Yes'; $lang->programplan->milestoneList[0] = 'No'; diff --git a/module/programplan/lang/zh-cn.php b/module/programplan/lang/zh-cn.php index 5a0ad7c699..8107a944f5 100644 --- a/module/programplan/lang/zh-cn.php +++ b/module/programplan/lang/zh-cn.php @@ -51,6 +51,8 @@ $lang->programplan->exporting = '导出'; $lang->programplan->exportFail = '导出失败'; $lang->programplan->hideCriticalPath = '隐藏关键路径'; $lang->programplan->showCriticalPath = '显示关键路径'; +$lang->programplan->errorBegin = '阶段的开始时间不能小于所属项目的开始时间%s'; +$lang->programplan->errorEnd = '阶段的结束时间不能大于所属项目的结束时间%s'; $lang->programplan->milestoneList[1] = '是'; $lang->programplan->milestoneList[0] = '否'; diff --git a/module/programplan/model.php b/module/programplan/model.php index 591eff35cf..520ae8d226 100644 --- a/module/programplan/model.php +++ b/module/programplan/model.php @@ -435,6 +435,8 @@ class programplanModel extends model $datas[] = $plan; } + $planProject = $this->loadModel('project')->getByID($projectID); + $totalPercent = 0; $totalDevType = 0; $milestone = 0; @@ -455,6 +457,16 @@ class programplanModel extends model dao::$errors['message'][] = $this->lang->programplan->error->parentDuration; return false; } + if($plan->begin < $planProject->begin) + { + dao::$errors['message'][] = sprintf($this->lang->programplan->errorBegin, $planProject->begin); + return false; + } + if($plan->end != '0000-00-00' and $plan->end > $planProject->end) + { + dao::$errors['message'][] = sprintf($this->lang->programplan->errorEnd, $planProject->end); + return false; + } if($plan->begin == '0000-00-00') $plan->begin = ''; if($plan->end == '0000-00-00') $plan->end = '';