Merge branch 'sprint/master_zhouxudong_24417' into 'master'

Sprint/master zhouxudong 24417

See merge request easycorp/zentaopms!4237
This commit is contained in:
王怡栋
2022-06-30 01:28:55 +00:00
11 changed files with 144 additions and 82 deletions
+19 -6
View File
@@ -1094,10 +1094,10 @@ class projectModel extends model
if($program)
{
/* Child project begin cannot less than parent. */
if(!empty($project->name) and $project->begin < $program->begin) dao::$errors['begin'] = sprintf($this->lang->project->beginGreateChild, $project->name, $program->name, $program->begin);
if(!empty($project->name) and $project->begin < $program->begin) dao::$errors['begin'] = sprintf($this->lang->project->beginGreateChild, $program->begin);
/* When parent set end then child project end cannot greater than parent. */
if(!empty($project->name) and $$program->end != '0000-00-00' and $project->end > $program->end) dao::$errors['end'] = sprintf($this->lang->project->endLetterChild, $project->name, $program->name, $program->end);
if(!empty($project->name) and $$program->end != '0000-00-00' and $project->end > $program->end) dao::$errors['end'] = sprintf($this->lang->project->endLetterChild, $program->end);
if(dao::isError()) return false;
}
@@ -1358,10 +1358,10 @@ class projectModel extends model
if($program)
{
/* Child project begin cannot less than parent. */
if(!empty($project->name) and $project->begin < $program->begin) dao::$errors['begin'] = sprintf($this->lang->project->beginGreateChild, $project->name, $program->name, $program->begin);
if(!empty($project->name) and $project->begin < $program->begin) dao::$errors['begin'] = sprintf($this->lang->project->beginGreateChild, $program->begin);
/* When parent set end then child project end cannot greater than parent. */
if(!empty($project->name) and $program->end != '0000-00-00' and $project->end > $program->end) dao::$errors['end'] = sprintf($this->lang->project->endLetterChild, $project->name, $program->name, $program->end);
if(!empty($project->name) and $program->end != '0000-00-00' and $project->end > $program->end) dao::$errors['end'] = sprintf($this->lang->project->endLetterChild, $program->end);
if(dao::isError()) return false;
}
@@ -1375,6 +1375,19 @@ class projectModel extends model
}
}
$executionsCount = $this->dao->select('COUNT(*) as count')->from(TABLE_PROJECT)
->where('project')->eq($project->id)
->andWhere('deleted')->eq('0')
->fetchAll();
if(!empty($executionsCount))
{
$minExecutionBegin = $this->dao->select('begin as minBegin')->from(TABLE_PROJECT)->where('project')->eq($project->id)->andWhere('deleted')->eq('0')->orderBy('begin_asc')->fetch();
$maxExecutionEnd = $this->dao->select('end as maxEnd')->from(TABLE_PROJECT)->where('project')->eq($project->id)->andWhere('deleted')->eq('0')->orderBy('end_desc')->fetch();
if($minExecutionBegin and $project->begin > $minExecutionBegin->minBegin) dao::$errors['begin'] = sprintf($this->lang->project->begigLetterExecution, $minExecutionBegin->minBegin);
if($maxExecutionEnd and $project->end < $maxExecutionEnd->maxEnd) dao::$errors['end'] = sprintf($this->lang->project->endGreateExecution, $maxExecutionEnd->maxEnd);
if(dao::isError()) return false;
}
/* Judge products not empty. */
$linkedProductsCount = 0;
foreach($_POST['products'] as $product)
@@ -1529,14 +1542,14 @@ class projectModel extends model
/* Child project begin cannot less than parent. */
if(!empty($projects[$projectID]->name) and $projects[$projectID]->begin < $parentProject->begin)
{
dao::$errors['begin'] = sprintf($this->lang->project->beginGreateChild, $projects[$projectID]->name, $parentProject->name, $parentProject->begin);
dao::$errors['begin'] = sprintf($this->lang->project->beginGreateChild, $parentProject->begin);
return false;
}
/* When parent set end then child project end cannot greater than parent. */
if(!empty($projects[$projectID]->name) and $parentProject->end != '0000-00-00' and $projects[$projectID]->end > $parentProject->end)
{
dao::$errors['end'] = sprintf($this->lang->project->endLetterChild, $projects[$projectID]->name, $parentProject->name, $parentProject->end);
dao::$errors['end'] = sprintf($this->lang->project->endLetterChild, $parentProject->end);
return false;
}
}