From 57ebbb61b428a609e24abe4013a83d2f87aed98b Mon Sep 17 00:00:00 2001 From: qiyu-xie Date: Thu, 24 Dec 2020 10:19:31 +0800 Subject: [PATCH] * Adjust budget when create program. --- module/program/lang/de.php | 1 + module/program/lang/en.php | 1 + module/program/lang/fr.php | 1 + module/program/lang/vi.php | 1 + module/program/lang/zh-cn.php | 1 + module/program/lang/zh-tw.php | 1 + module/program/model.php | 12 ++++++++++++ 7 files changed, 18 insertions(+) diff --git a/module/program/lang/de.php b/module/program/lang/de.php index 65000e8eee..0201d502a6 100644 --- a/module/program/lang/de.php +++ b/module/program/lang/de.php @@ -197,6 +197,7 @@ $lang->program->unlinkStakeholder = 'Unlink Stakeholder'; $lang->program->importStakeholder = 'Import program'; $lang->program->PGMManageMembers = 'Program Team'; $lang->program->PGMParentBudget = "Parent program budget:%s"; +$lang->program->beyondParentBudget = 'The remaining budget has been exceeded.'; $lang->program->PGMBeginLetterParent = "Parent begin date: %s, begin date should be >= parent begin date."; $lang->program->PGMEndGreaterParent = "Parent end date: %s, end date should be <= parent end date."; $lang->program->PGMBeginGreateChild = "Child earliest begin: %s, parent begin date <= child earliest begin date."; diff --git a/module/program/lang/en.php b/module/program/lang/en.php index 9784092c5f..c2fa5dde62 100644 --- a/module/program/lang/en.php +++ b/module/program/lang/en.php @@ -197,6 +197,7 @@ $lang->program->unlinkStakeholder = 'Unlink Stakeholder'; $lang->program->importStakeholder = 'Import program'; $lang->program->PGMManageMembers = 'Program Team'; $lang->program->PGMParentBudget = "Parent program budget:%s"; +$lang->program->beyondParentBudget = 'The remaining budget has been exceeded.'; $lang->program->PGMBeginLetterParent = "Parent begin date: %s, begin date should be >= parent begin date."; $lang->program->PGMEndGreaterParent = "Parent end date: %s, end date should be <= parent end date."; $lang->program->PGMBeginGreateChild = "Child earliest begin: %s, parent begin date <= child earliest begin date."; diff --git a/module/program/lang/fr.php b/module/program/lang/fr.php index 65000e8eee..0201d502a6 100644 --- a/module/program/lang/fr.php +++ b/module/program/lang/fr.php @@ -197,6 +197,7 @@ $lang->program->unlinkStakeholder = 'Unlink Stakeholder'; $lang->program->importStakeholder = 'Import program'; $lang->program->PGMManageMembers = 'Program Team'; $lang->program->PGMParentBudget = "Parent program budget:%s"; +$lang->program->beyondParentBudget = 'The remaining budget has been exceeded.'; $lang->program->PGMBeginLetterParent = "Parent begin date: %s, begin date should be >= parent begin date."; $lang->program->PGMEndGreaterParent = "Parent end date: %s, end date should be <= parent end date."; $lang->program->PGMBeginGreateChild = "Child earliest begin: %s, parent begin date <= child earliest begin date."; diff --git a/module/program/lang/vi.php b/module/program/lang/vi.php index 65000e8eee..0201d502a6 100644 --- a/module/program/lang/vi.php +++ b/module/program/lang/vi.php @@ -197,6 +197,7 @@ $lang->program->unlinkStakeholder = 'Unlink Stakeholder'; $lang->program->importStakeholder = 'Import program'; $lang->program->PGMManageMembers = 'Program Team'; $lang->program->PGMParentBudget = "Parent program budget:%s"; +$lang->program->beyondParentBudget = 'The remaining budget has been exceeded.'; $lang->program->PGMBeginLetterParent = "Parent begin date: %s, begin date should be >= parent begin date."; $lang->program->PGMEndGreaterParent = "Parent end date: %s, end date should be <= parent end date."; $lang->program->PGMBeginGreateChild = "Child earliest begin: %s, parent begin date <= child earliest begin date."; diff --git a/module/program/lang/zh-cn.php b/module/program/lang/zh-cn.php index 7ac3081275..990188cb9b 100644 --- a/module/program/lang/zh-cn.php +++ b/module/program/lang/zh-cn.php @@ -197,6 +197,7 @@ $lang->program->unlinkStakeholder = '移除干系人'; $lang->program->importStakeholder = '从父项目集导入'; $lang->program->PGMManageMembers = '项目集团队'; $lang->program->PGMParentBudget = "父项目集预算:%s"; +$lang->program->beyondParentBudget = '已超出剩余预算'; $lang->program->PGMBeginLetterParent = "父项目集的开始日期:%s,开始日期不能小于父项目集的开始日期"; $lang->program->PGMEndGreaterParent = "父项目集的完成日期:%s,完成日期不能大于父项目集的完成日期"; $lang->program->PGMBeginGreateChild = "子项目集的最小开始日期:%s,父项目集的开始日期不能大于子项目集的最小开始日期"; diff --git a/module/program/lang/zh-tw.php b/module/program/lang/zh-tw.php index 95bba62aae..c598cf31cb 100644 --- a/module/program/lang/zh-tw.php +++ b/module/program/lang/zh-tw.php @@ -200,6 +200,7 @@ $lang->program->unlinkStakeholder = '移除干係人'; $lang->program->importStakeholder = '從父項目集導入'; $lang->program->PGMManageMembers = '項目集團隊'; $lang->program->PGMParentBudget = "父項目集預算:%s"; +$lang->program->beyondParentBudget = '已超出剩餘預算'; $lang->program->PGMBeginLetterParent = "父項目集的開始日期:%s,開始日期不能小於父項目集的開始日期"; $lang->program->PGMEndGreaterParent = "父項目集的完成日期:%s,完成日期不能大於父項目集的完成日期"; $lang->program->PGMBeginGreateChild = "子項目集的最小開始日期:%s,父項目集的開始日期不能大於子項目集的最小開始日期"; diff --git a/module/program/model.php b/module/program/model.php index f6556906bf..409f1429a2 100644 --- a/module/program/model.php +++ b/module/program/model.php @@ -143,6 +143,18 @@ class programModel extends model /* When parent set end then child program cannot set longTime. */ if(empty($program->end) and $this->post->delta == 999 and $parentProgram->end != '0000-00-00') dao::$errors['end'] = sprintf($this->lang->program->PGMEndGreaterParent, $parentProgram->end); + /* The budget of a child program cannot beyond the remaining budget of the parent program. */ + if(isset($program->budget) and $parentProgram->budget != 0) + { + $childGrade = $parentProgram->grade + 1; + $childSumBudget = $this->dao->select("sum(budget) as sumBudget")->from(TABLE_PROJECT) + ->where('path')->like("%{$program->parent}%") + ->andWhere('grade')->eq($childGrade) + ->fetch('sumBudget'); + + if($program->budget > $parentProgram->budget - $childSumBudget) dao::$errors['budget'] = $this->lang->program->beyondParentBudget; + } + if(dao::isError()) return false; } }