Merge branch 'sprint/master_zhouxudong_24417' into 'master'
Sprint/master zhouxudong 24417 See merge request easycorp/zentaopms!4237
This commit is contained in:
@@ -47,6 +47,7 @@ $lang->program->realDuration = 'RealDuration';
|
||||
$lang->program->openedVersion = 'OpenedVersion';
|
||||
$lang->program->lastEditedBy = 'LastEditedBy';
|
||||
$lang->program->lastEditedDate = 'LastEditedDate';
|
||||
$lang->program->childProgram = 'Child Program';
|
||||
|
||||
/* Actions. */
|
||||
$lang->program->common = 'Program';
|
||||
@@ -99,10 +100,10 @@ $lang->program->noProgram = 'No program.';
|
||||
$lang->program->showClosed = 'Closed programs.';
|
||||
$lang->program->tips = 'If a parent program is selected, the products under the parent program can be associated. If no program is selected for the project, a product with the same name as the project is created and associated with the project by default.';
|
||||
$lang->program->confirmBatchUnlink = "Do you want to batch unlink these stakeholders?";
|
||||
$lang->program->beginLetterParent = 'The start date of the program "%s" should be ≥ the start date of the parent program "%s": %s.';
|
||||
$lang->program->endGreaterParent = 'The finish date of the program "%s" should be ≤ the finish date of the parent program "%s": %s.';
|
||||
$lang->program->beginGreateChild = 'The start date of the parent program "%s" should be ≤the minimum start time of the subprogram "%s": %s.';
|
||||
$lang->program->endLetterChild = 'The finish time of the parent program "%s" should be ≥ the maximum finish time of the subprogram "%s": %s.';
|
||||
$lang->program->beginLetterParent = 'The start date of the program should be ≥ the start date of the parent program: %s.';
|
||||
$lang->program->endGreaterParent = 'The finish date of the program should be ≤ the finish date of the parent program: %s.';
|
||||
$lang->program->beginGreateChild = 'The start date of the parent program should be ≤the minimum start time of the %s: %s.';
|
||||
$lang->program->endLetterChild = 'The finish time of the parent program should be ≥ the maximum finish time of the %s: %s.';
|
||||
$lang->program->closeErrorMessage = 'There are subprograms or projects that are not closed';
|
||||
$lang->program->hasChildren = 'It has child programs or projects. You cannot delete it.';
|
||||
$lang->program->hasProduct = 'It has products. You cannot delete it.';
|
||||
|
||||
@@ -47,6 +47,7 @@ $lang->program->realDuration = 'RealDuration';
|
||||
$lang->program->openedVersion = 'OpenedVersion';
|
||||
$lang->program->lastEditedBy = 'LastEditedBy';
|
||||
$lang->program->lastEditedDate = 'LastEditedDate';
|
||||
$lang->program->childProgram = 'Child Program';
|
||||
|
||||
/* Actions. */
|
||||
$lang->program->common = 'Program';
|
||||
@@ -99,10 +100,10 @@ $lang->program->noProgram = 'No program.';
|
||||
$lang->program->showClosed = 'Closed';
|
||||
$lang->program->tips = 'If a parent program is selected, the products under the parent program can be associated. If no program is selected for the project, a product with the same name as the project is created and associated with the project by default.';
|
||||
$lang->program->confirmBatchUnlink = "Do you want to batch unlink these stakeholders?";
|
||||
$lang->program->beginLetterParent = 'The start date of the program "%s" should be ≥ the start date of the parent program "%s": %s.';
|
||||
$lang->program->endGreaterParent = 'The finish date of the program "%s" should be ≤ the finish date of the parent program "%s": %s.';
|
||||
$lang->program->beginGreateChild = 'The start date of the parent program "%s" should be ≤the minimum start time of the subprogram "%s": %s.';
|
||||
$lang->program->endLetterChild = 'The finish time of the parent program "%s" should be ≥ the maximum finish time of the subprogram "%s": %s.';
|
||||
$lang->program->beginLetterParent = 'The start date of the program should be ≥ the start date of the parent program: %s.';
|
||||
$lang->program->endGreaterParent = 'The finish date of the program should be ≤ the finish date of the parent program: %s.';
|
||||
$lang->program->beginGreateChild = 'The start date of the parent program should be ≤the minimum start time of the %s: %s.';
|
||||
$lang->program->endLetterChild = 'The finish time of the parent program should be ≥ the maximum finish time of the %s: %s.';
|
||||
$lang->program->closeErrorMessage = 'There are subprograms or projects that are not closed';
|
||||
$lang->program->hasChildren = 'The program has a child program or the project exists and can not be deleted.';
|
||||
$lang->program->hasProduct = 'The program has products exist and can not be deleted.';
|
||||
|
||||
@@ -47,6 +47,7 @@ $lang->program->realDuration = 'RealDuration';
|
||||
$lang->program->openedVersion = 'OpenedVersion';
|
||||
$lang->program->lastEditedBy = 'LastEditedBy';
|
||||
$lang->program->lastEditedDate = 'LastEditedDate';
|
||||
$lang->program->childProgram = 'sous-programme';
|
||||
|
||||
/* Actions. */
|
||||
$lang->program->common = 'Program';
|
||||
@@ -99,10 +100,10 @@ $lang->program->noProgram = 'No program.';
|
||||
$lang->program->showClosed = 'Closed programs.';
|
||||
$lang->program->tips = 'If a parent program is selected, the products under the parent program can be associated. If no program is selected for the project, a product with the same name as the project is created and associated with the project by default.';
|
||||
$lang->program->confirmBatchUnlink = "Do you want to batch unlink these stakeholders?";
|
||||
$lang->program->beginLetterParent = 'La date de début du programme "%s" doit être ≥ à la date de début du programme parent "%s" : %s.';
|
||||
$lang->program->endGreaterParent = 'La date de fin du programme "%s" doit être ≤ à la date de fin du programme parent "%s" : %s.';
|
||||
$lang->program->beginGreateChild = 'La date de début du programme parent "%s" doit être ≤ à la date de début minimum du sous-programme "%s" : %s.';
|
||||
$lang->program->endLetterChild = 'Le temps de fin du programme parent "%s" doit être ≥ au temps de fin maximum du sous-programme "%s" : %s.';
|
||||
$lang->program->beginLetterParent = 'La date de début du programme doit être ≥ à la date de début du programme parent: %s.';
|
||||
$lang->program->endGreaterParent = 'La date de fin du programme doit être ≤ à la date de fin du programme parent: %s.';
|
||||
$lang->program->beginGreateChild = 'La date de début du programme parent doit être ≤ à la date de début minimum du %s: %s.';
|
||||
$lang->program->endLetterChild = 'Le temps de fin du programme parent doit être ≥ au temps de fin maximum du %s: %s.';
|
||||
$lang->program->closeErrorMessage = 'There are subprograms or projects that are not closed';
|
||||
$lang->program->hasChildren = 'It has child programs or projects. You cannot delete it.';
|
||||
$lang->program->hasProduct = 'It has products. You cannot delete it.';
|
||||
|
||||
@@ -47,6 +47,7 @@ $lang->program->realDuration = '实际周期天数';
|
||||
$lang->program->openedVersion = '创建版本';
|
||||
$lang->program->lastEditedBy = '最后编辑人';
|
||||
$lang->program->lastEditedDate = '最后编辑日期';
|
||||
$lang->program->childProgram = '子项目集';
|
||||
|
||||
/* Actions. */
|
||||
$lang->program->common = '项目集';
|
||||
@@ -99,10 +100,10 @@ $lang->program->noProgram = '暂时没有项目集';
|
||||
$lang->program->showClosed = '显示已关闭';
|
||||
$lang->program->tips = '选择了父项目集,则可关联该父项目集下的产品。如果项目未选择任何项目集,则系统会默认创建一个和该项目同名的产品并关联该项目。';
|
||||
$lang->program->confirmBatchUnlink = "您确定要批量移除这些干系人吗?";
|
||||
$lang->program->beginLetterParent = '项目集“%s”开始日期应大于等于父项目集“%s”的开始日期:%s。';
|
||||
$lang->program->endGreaterParent = '项目集“%s”完成日期应小于等于父项目集“%s”的完成日期:%s。';
|
||||
$lang->program->beginGreateChild = '父项目集“%s”的开始日期应小于等于子项目集“%s”的最小开始时间:%s。';
|
||||
$lang->program->endLetterChild = '父项目集“%s”的完成时间应大于等于子项目集“%s”的最大完成时间:%s。';
|
||||
$lang->program->beginLetterParent = '项目集开始日期应大于等于父项目集的开始日期:%s。';
|
||||
$lang->program->endGreaterParent = '项目集完成日期应小于等于父项目集的完成日期:%s。';
|
||||
$lang->program->beginGreateChild = '父项目集的开始日期应小于等于%s的最小开始时间:%s。';
|
||||
$lang->program->endLetterChild = '父项目集的完成时间应大于等于%s的最大完成时间:%s。';
|
||||
$lang->program->closeErrorMessage = '存在子项目集或项目为未关闭状态';
|
||||
$lang->program->hasChildren = '该项目集有子项目集或项目存在,不能删除。';
|
||||
$lang->program->hasProduct = '该项目集有产品存在,不能删除。';
|
||||
|
||||
+13
-10
@@ -709,13 +709,13 @@ class programModel extends model
|
||||
if($parentProgram)
|
||||
{
|
||||
/* Child program begin cannot less than parent. */
|
||||
if(!empty($program->name) and $program->begin < $parentProgram->begin) dao::$errors['begin'] = sprintf($this->lang->program->beginLetterParent, $program->name, $parentProgram->name, $parentProgram->begin);
|
||||
if(!empty($program->name) and $program->begin < $parentProgram->begin) dao::$errors['begin'] = sprintf($this->lang->program->beginLetterParent, $parentProgram->begin);
|
||||
|
||||
/* When parent set end then child program end cannot greater than parent. */
|
||||
if(!empty($program->name) and$parentProgram->end != '0000-00-00' and $program->end > $parentProgram->end) dao::$errors['end'] = sprintf($this->lang->program->endGreaterParent, $program->name, $parentProgram->name, $parentProgram->end);
|
||||
if(!empty($program->name) and$parentProgram->end != '0000-00-00' and $program->end > $parentProgram->end) dao::$errors['end'] = sprintf($this->lang->program->endGreaterParent, $parentProgram->end);
|
||||
|
||||
/* When parent set end then child program cannot set longTime. */
|
||||
if(!empty($program->name) and empty($program->end) and $this->post->delta == 999 and $parentProgram->end != '0000-00-00') dao::$errors['end'] = sprintf($this->lang->program->endGreaterParent, $program->name, $parentProgram->name, $parentProgram->end);
|
||||
if(!empty($program->name) and empty($program->end) and $this->post->delta == 999 and $parentProgram->end != '0000-00-00') dao::$errors['end'] = sprintf($this->lang->program->endGreaterParent, $parentProgram->end);
|
||||
|
||||
/* The budget of a child program cannot beyond the remaining budget of the parent program. */
|
||||
$program->budgetUnit = $parentProgram->budgetUnit;
|
||||
@@ -772,6 +772,7 @@ class programModel extends model
|
||||
*/
|
||||
public function update($programID)
|
||||
{
|
||||
$this->app->loadLang('project');
|
||||
$programID = (int)$programID;
|
||||
$oldProgram = $this->dao->findById($programID)->from(TABLE_PROGRAM)->fetch();
|
||||
|
||||
@@ -799,11 +800,13 @@ class programModel extends model
|
||||
|
||||
if($children > 0)
|
||||
{
|
||||
$minChildBegin = $this->dao->select('name, min(begin) as minBegin')->from(TABLE_PROGRAM)->where('id')->ne($programID)->andWhere('deleted')->eq(0)->andWhere('path')->like("%,{$programID},%")->fetch();
|
||||
$maxChildEnd = $this->dao->select('name, max(end) as maxEnd')->from(TABLE_PROGRAM)->where('id')->ne($programID)->andWhere('deleted')->eq(0)->andWhere('path')->like("%,{$programID},%")->andWhere('end')->ne('0000-00-00')->fetch();
|
||||
$minChildBegin = $this->dao->select('type, begin as minBegin')->from(TABLE_PROGRAM)->where('id')->ne($programID)->andWhere('deleted')->eq(0)->andWhere('path')->like("%,{$programID},%")->orderBy('begin_asc')->fetch();
|
||||
$maxChildEnd = $this->dao->select('type, end as maxEnd')->from(TABLE_PROGRAM)->where('id')->ne($programID)->andWhere('deleted')->eq(0)->andWhere('path')->like("%,{$programID},%")->andWhere('end')->ne('0000-00-00')->orderBy('end_desc')->fetch();
|
||||
|
||||
if($minChildBegin and $program->begin > $minChildBegin) dao::$errors['begin'] = sprintf($this->lang->program->beginGreateChild, $program->name, $minChildBegin->name, $minChildBegin->minBegin);
|
||||
if($maxChildEnd and $program->end < $maxChildEnd and $this->post->delta != 999) dao::$errors['end'] = sprintf($this->lang->program->endLetterChild, $program->name, $maxChildEnd->name, $maxChildEnd->maxEnd);
|
||||
$minChildType = ($minChildBegin->type == 'project') ? $this->lang->project->common : $this->lang->program->childProgram;
|
||||
$maxChildType = ($maxChildEnd->type == 'project') ? $this->lang->project->common : $this->lang->program->childProgram;
|
||||
if($minChildBegin and $program->begin > $minChildBegin->minBegin) dao::$errors['begin'] = sprintf($this->lang->program->beginGreateChild, $minChildType, $minChildBegin->minBegin);
|
||||
if($maxChildEnd and $program->end < $maxChildEnd->maxEnd and $this->post->delta != 999) dao::$errors['end'] = sprintf($this->lang->program->endLetterChild, $maxChildType, $maxChildEnd->maxEnd);
|
||||
if(dao::isError()) return false;
|
||||
}
|
||||
|
||||
@@ -818,9 +821,9 @@ class programModel extends model
|
||||
$parentProgram = $this->dao->select('*')->from(TABLE_PROGRAM)->where('id')->eq($program->parent)->fetch();
|
||||
if($parentProgram)
|
||||
{
|
||||
if(!empty($program->name) and $program->begin < $parentProgram->begin) dao::$errors['begin'] = sprintf($this->lang->program->beginLetterParent, $program->name, $parentProgram->name, $parentProgram->begin);
|
||||
if(!empty($program->name) and $parentProgram->end != '0000-00-00' and $program->end > $parentProgram->end) dao::$errors['end'] = sprintf($this->lang->program->endGreaterParent, $program->name, $parentProgram->name, $parentProgram->end);
|
||||
if(!empty($program->name) and empty($program->end) and $this->post->delta == 999 and $parentProgram->end != '0000-00-00') dao::$errors['end'] = sprintf($this->lang->program->endGreaterParent, $program->name, $parentProgram->name, $parentProgram->end);
|
||||
if(!empty($program->name) and $program->begin < $parentProgram->begin) dao::$errors['begin'] = sprintf($this->lang->program->beginLetterParent, $parentProgram->begin);
|
||||
if(!empty($program->name) and $parentProgram->end != '0000-00-00' and $program->end > $parentProgram->end) dao::$errors['end'] = sprintf($this->lang->program->endGreaterParent, $parentProgram->end);
|
||||
if(!empty($program->name) and empty($program->end) and $this->post->delta == 999 and $parentProgram->end != '0000-00-00') dao::$errors['end'] = sprintf($this->lang->program->endGreaterParent, $parentProgram->end);
|
||||
}
|
||||
|
||||
/* The budget of a child program cannot beyond the remaining budget of the parent program. */
|
||||
|
||||
Reference in New Issue
Block a user