diff --git a/module/productplan/model.php b/module/productplan/model.php index 2a73256dac..1f05807b2d 100644 --- a/module/productplan/model.php +++ b/module/productplan/model.php @@ -531,22 +531,21 @@ class productplanModel extends model ->get(); $parentPlan = $this->getByID($plan->parent); - + $futureTime = $this->config->productplan->future; if($plan->parent > 0) { - if($parentPlan->begin !== $this->config->productplan->future) + if($parentPlan->begin !== $futureTime) { if($plan->begin < $parentPlan->begin) dao::$errors['begin'] = sprintf($this->lang->productplan->beginLetterParent, $parentPlan->begin); } - if($parentPlan->end !== $this->config->productplan->future) + if($parentPlan->end !== $futureTime) { - if($plan->end !== $this->config->productplan->future and $plan->end > $parentPlan->end) dao::$errors['end'] = sprintf($this->lang->productplan->endGreaterParent, $parentPlan->end); + if($plan->end !== $futureTime and $plan->end > $parentPlan->end) dao::$errors['end'] = sprintf($this->lang->productplan->endGreaterParent, $parentPlan->end); } } - elseif($oldPlan->parent == -1 and $plan->begin != $this->config->productplan->future) + elseif($oldPlan->parent == -1 and ($plan->begin != $futureTime or $plan->end != $futureTime)) { - $plan->parent = -1; $childPlans = $this->getChildren($planID); $minBegin = $plan->begin; $maxEnd = $plan->end; @@ -556,8 +555,8 @@ class productplanModel extends model if($childPlan->begin < $minBegin) $minBegin = $childPlan->begin; if($childPlan->end > $maxEnd) $maxEnd = $childPlan->end; } - if($minBegin < $plan->begin and $minBegin != $this->config->productplan->future) dao::$errors['begin'] = sprintf($this->lang->productplan->beginGreaterChildTip, $oldPlan->title, $plan->begin, $minBegin); - if($maxEnd > $plan->end and $maxEnd != $this->config->productplan->future) dao::$errors['end'] = sprintf($this->lang->productplan->endLetterChildTip, $oldPlan->title, $plan->end, $maxEnd); + if($minBegin < $plan->begin and $minBegin != $futureTime) dao::$errors['begin'] = sprintf($this->lang->productplan->beginGreaterChildTip, $oldPlan->title, $plan->begin, $minBegin); + if($maxEnd > $plan->end and $maxEnd != $futureTime) dao::$errors['end'] = sprintf($this->lang->productplan->endLetterChildTip, $oldPlan->title, $plan->end, $maxEnd); } if(dao::isError()) return false; diff --git a/module/productplan/view/edit.html.php b/module/productplan/view/edit.html.php index 1e045bdebd..2deed208bc 100644 --- a/module/productplan/view/edit.html.php +++ b/module/productplan/view/edit.html.php @@ -41,10 +41,14 @@