* [bug#66973] Fix the bug of edit programplan.
This commit is contained in:
@@ -11,7 +11,7 @@ $config->programplan->form->create['order'] = array('label' => '',
|
||||
$config->programplan->form->create['name'] = array('label' => $lang->nameAB, 'type' => 'string', 'control' => 'text', 'required' => true, 'default' => '', 'base' => true, 'filter' => 'trim');
|
||||
$config->programplan->form->create['code'] = array('label' => $lang->code, 'type' => 'string', 'control' => 'text', 'required' => false, 'default' => '', 'filter' => 'trim');
|
||||
$config->programplan->form->create['PM'] = array('label' => $lang->programplan->PMAB, 'type' => 'string', 'control' => 'picker', 'required' => false, 'default' => '', 'options' => '');
|
||||
if(!empty($config->setPercent)) $config->programplan->form->create['percent'] = array('label' => $lang->programplan->percent, 'type' => 'float', 'control' => 'text', 'required' => false, 'default' => 0);
|
||||
if(!empty($config->setPercent)) $config->programplan->form->create['percent'] = array('label' => $lang->programplan->percent, 'type' => 'string', 'control' => 'text', 'required' => false, 'default' => '');
|
||||
$config->programplan->form->create['attribute'] = array('label' => $lang->programplan->attribute, 'type' => 'string', 'control' => 'picker', 'required' => false, 'default' => 0, 'options' => $lang->stage->typeList);
|
||||
$config->programplan->form->create['type'] = array('label' => $lang->execution->method, 'type' => 'string', 'control' => 'picker', 'required' => true, 'default' => 'stage', 'options' => $lang->execution->typeList);
|
||||
$config->programplan->form->create['point'] = array('label' => $lang->programplan->point, 'type' => 'array', 'control' => 'picker', 'required' => false, 'default' => '', 'options' => array(''), 'multiple' => true);
|
||||
@@ -33,7 +33,7 @@ $config->programplan->form->edit['parent'] = array('required' => false, 'type
|
||||
$config->programplan->form->edit['name'] = array('required' => true, 'type' => 'string', 'default' => '');
|
||||
$config->programplan->form->edit['code'] = array('required' => false, 'type' => 'string', 'default' => '');
|
||||
$config->programplan->form->edit['PM'] = array('required' => false, 'type' => 'string', 'default' => '');
|
||||
$config->programplan->form->edit['percent'] = array('required' => false, 'type' => 'float', 'default' => 0);
|
||||
$config->programplan->form->edit['percent'] = array('required' => false, 'type' => 'string', 'default' => '');
|
||||
$config->programplan->form->edit['attribute'] = array('required' => false, 'type' => 'string', 'default' => '');
|
||||
$config->programplan->form->edit['acl'] = array('required' => false, 'type' => 'string', 'default' => '');
|
||||
$config->programplan->form->edit['begin'] = array('required' => true, 'type' => 'string', 'default' => null);
|
||||
|
||||
@@ -135,7 +135,7 @@ $lang->programplan->ganttCustom['delay'] = 'Delay';
|
||||
$lang->programplan->ganttCustom['delayDays'] = 'Delay days';
|
||||
|
||||
$lang->programplan->error = new stdclass();
|
||||
$lang->programplan->error->percentNumber = '"Workload %" must be digits.';
|
||||
$lang->programplan->error->percentNumber = '"Workload %" must be non-negative';
|
||||
$lang->programplan->error->planFinishSmall = 'The "End" date must be > the "Begin" date.';
|
||||
$lang->programplan->error->percentOver = 'The sum of "Workload %" cannot exceed 100% of one stage.';
|
||||
$lang->programplan->error->createdTask = 'The task has been decomposed. Sub phases cannot be added.';
|
||||
|
||||
@@ -135,7 +135,7 @@ $lang->programplan->ganttCustom['delay'] = 'Delay';
|
||||
$lang->programplan->ganttCustom['delayDays'] = 'Delay days';
|
||||
|
||||
$lang->programplan->error = new stdclass();
|
||||
$lang->programplan->error->percentNumber = '"Workload %" must be digits.';
|
||||
$lang->programplan->error->percentNumber = '"Workload %" must be non-negative';
|
||||
$lang->programplan->error->planFinishSmall = 'The "End" date must be > the "Begin" date.';
|
||||
$lang->programplan->error->percentOver = 'The sum of "Workload %" cannot exceed 100% of one stage.';
|
||||
$lang->programplan->error->createdTask = 'The task is decomposed. Sub stages cannot be added.';
|
||||
|
||||
@@ -135,7 +135,7 @@ $lang->programplan->ganttCustom['delay'] = 'Delay';
|
||||
$lang->programplan->ganttCustom['delayDays'] = 'Delay days';
|
||||
|
||||
$lang->programplan->error = new stdclass();
|
||||
$lang->programplan->error->percentNumber = '"Workload %" must be digits.';
|
||||
$lang->programplan->error->percentNumber = '"Workload %" must be non-negative';
|
||||
$lang->programplan->error->planFinishSmall = 'The "End" date must be > the "Begin" date.';
|
||||
$lang->programplan->error->percentOver = 'The sum of "Workload %" cannot exceed 100% of one stage.';
|
||||
$lang->programplan->error->createdTask = 'The task has been decomposed. Sub phases cannot be added.';
|
||||
|
||||
@@ -135,7 +135,7 @@ $lang->programplan->ganttCustom['delay'] = '是否延期';
|
||||
$lang->programplan->ganttCustom['delayDays'] = '延期天数';
|
||||
|
||||
$lang->programplan->error = new stdclass();
|
||||
$lang->programplan->error->percentNumber = '"工作量占比"必须为数字';
|
||||
$lang->programplan->error->percentNumber = '"工作量占比"必须为非负数';
|
||||
$lang->programplan->error->planFinishSmall = '"计划完成时间"必须大于"计划开始时间"';
|
||||
$lang->programplan->error->percentOver = '相同父阶段的子阶段工作量占比之和不超过100%';
|
||||
$lang->programplan->error->createdTask = '已分解任务,不可添加子阶段';
|
||||
|
||||
@@ -81,6 +81,7 @@ class programplanZen extends programplan
|
||||
$prevLevel = 0;
|
||||
foreach($plans as $rowID => $plan)
|
||||
{
|
||||
|
||||
if(empty($parentID) and empty($oldPlans)) $plan->id = '';
|
||||
$plan->days = isset($plan->enabled) && $plan->enabled == 'on' ? $this->programplan->calcDaysForStage($plan->begin, $plan->end) : 0;
|
||||
$plan->project = $projectID;
|
||||
@@ -112,8 +113,10 @@ class programplanZen extends programplan
|
||||
if(!empty($this->config->setCode) && empty($plan->code) && strpos(",{$this->config->execution->create->requiredFields},", ',code,') !== false) dao::$errors["code[{$rowID}]"] = sprintf($this->lang->error->notempty, $plan->type == 'stage' ? $this->lang->execution->code : $this->lang->code);
|
||||
}
|
||||
|
||||
if(!is_numeric($plan->percent) || $plan->percent < 0) dao::$errors["percent[$rowID]"] = $this->lang->programplan->error->percentNumber;
|
||||
|
||||
$customKey = 'create' . ucfirst($project->model) . 'Fields';
|
||||
if(strpos(",{$this->config->programplan->custom->$customKey},", ',percent,') !== false && isset($plan->percent))
|
||||
if(strpos(",{$this->config->programplan->custom->$customKey},", ',percent,') !== false && isset($plan->percent) && !dao::isError())
|
||||
{
|
||||
if($plan->level == 0)
|
||||
{
|
||||
@@ -145,7 +148,6 @@ class programplanZen extends programplan
|
||||
|
||||
$lastLevels[$plan->level] = $plan;
|
||||
if($plan->level > 0) $this->checkLegallyDate($plan, $project, zget($lastLevels, $plan->level - 1, null), $rowID);
|
||||
if($plan->percent < 0) dao::$errors["percent[$rowID]"] = sprintf($this->lang->error->float, $this->lang->programplan->percent);
|
||||
}
|
||||
|
||||
foreach($totalPercent as $group => $percent)
|
||||
@@ -220,6 +222,8 @@ class programplanZen extends programplan
|
||||
if(dao::isError()) return false;
|
||||
}
|
||||
|
||||
if(!is_numeric($plan->percent) || $plan->percent < 0) dao::$errors['percent'] = $this->lang->programplan->error->percentNumber;
|
||||
|
||||
if($projectID) $this->loadModel('execution')->checkBeginAndEndDate($projectID, $plan->begin, $plan->end, $plan->parent);
|
||||
if(dao::isError()) return false;
|
||||
|
||||
|
||||
Reference in New Issue
Block a user