From 2f6d22555096b519796b5a60f3cb1640e70535c2 Mon Sep 17 00:00:00 2001 From: xieqiyu Date: Wed, 10 Aug 2022 13:54:38 +0800 Subject: [PATCH 1/2] * Code for task#62851. --- module/program/js/common.js | 4 ++-- module/project/js/common.js | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/module/program/js/common.js b/module/program/js/common.js index 64ea25edc4..fcaaba2189 100644 --- a/module/program/js/common.js +++ b/module/program/js/common.js @@ -410,11 +410,11 @@ function outOfDateTip() return; } - if(programBegin < parentBegin && programEnd <= parentEnd) + if(programBegin < parentBegin && programEnd <= parentEnd && programEnd >= parentBegin) { dateTip = "" + beginLetterParent + data.selectedProgramBegin + ""; } - else if(programBegin >= parentBegin && programEnd > parentEnd) + else if(programEnd > parentEnd && programBegin >= parentBegin && programBegin <= parentEnd) { dateTip = "" + endGreaterParent + data.selectedProgramEnd + ""; } diff --git a/module/project/js/common.js b/module/project/js/common.js index c163c3bb2d..516b3b23bb 100644 --- a/module/project/js/common.js +++ b/module/project/js/common.js @@ -388,11 +388,11 @@ function outOfDateTip() if(projectBegin >= parentBegin && projectEnd <= parentEnd) return; var dateTip = ""; - if(projectBegin < parentBegin && projectEnd <= parentEnd) + if(projectBegin < parentBegin && projectEnd <= parentEnd && projectEnd >= parentBegin) { dateTip = "" + beginLetterParent + data.selectedProgramBegin + ""; } - else if(projectBegin >= parentBegin && projectEnd > parentEnd) + else if(projectEnd > parentEnd && projectBegin >= parentBegin && projectBegin <= parentEnd) { dateTip = "" + endGreaterParent + data.selectedProgramEnd + ""; } From bd18594c80f5eab9bcd751ad0d58b7209ad6cc63 Mon Sep 17 00:00:00 2001 From: xieqiyu Date: Wed, 10 Aug 2022 15:09:57 +0800 Subject: [PATCH 2/2] * Code for task#63579. --- module/program/js/common.js | 7 ++++--- module/project/control.php | 37 +++++++++++++++++-------------------- module/project/js/common.js | 10 +++------- module/project/js/edit.js | 5 +++-- 4 files changed, 27 insertions(+), 32 deletions(-) diff --git a/module/program/js/common.js b/module/program/js/common.js index fcaaba2189..ea1e9fe0f1 100644 --- a/module/program/js/common.js +++ b/module/program/js/common.js @@ -346,13 +346,14 @@ function compareChildDate() $.get(createLink('project', 'ajaxGetObjectInfo', 'objectType=program&objectID=' + programID + '&selectedProgramID=' + selectedProgramID), function(data) { - var dateTip = ''; - var childInfo = JSON.parse(data); + var childInfo = JSON.parse(data); + if(childInfo.maxChildEnd == '' || childInfo.minChildBegin == '') return; + var childBegin = new Date(childInfo.minChildBegin); var childEnd = new Date(childInfo.maxChildEnd); - if(programBegin <= childBegin && programEnd >= childEnd) return; + var dateTip = ''; if(programBegin > childBegin && programEnd >= childEnd) { dateTip = "" + beginGreateChild + childInfo.minChildBegin + ""; diff --git a/module/project/control.php b/module/project/control.php index f05a9aca52..641150a795 100644 --- a/module/project/control.php +++ b/module/project/control.php @@ -230,19 +230,17 @@ class project extends control */ public function ajaxGetObjectInfo($objectType, $objectID, $selectedProgramID) { - $data = array(); - $minChildBegin = ''; - $maxChildEnd = ''; + if($selectedProgramID) + { + $selectedProgram = $this->loadModel('program')->getByID($selectedProgramID); + if($selectedProgram->budget) $availableBudget = $this->program->getBudgetLeft($selectedProgram); + } + if(!empty($objectID)) { - $object = $objectType == 'project' ? $this->project->getByID($objectID) : $this->loadModel('program')->getByID($objectID); - $selectedProgram = $this->loadModel('program')->getByID($selectedProgramID); + $object = $objectType == 'project' ? $this->project->getByID($objectID) : $this->loadModel('program')->getByID($objectID); - if($selectedProgram->budget) - { - $budgetLeft = $this->program->getBudgetLeft($selectedProgram); - $availableBudget = $object->parent == $selectedProgramID ? $budgetLeft + $object->budget : $budgetLeft; - } + if(isset($availableBudget)) $availableBudget = $object->parent == $selectedProgramID ? $availableBudget + $object->budget : $availableBudget; if($objectType == 'program') { @@ -250,19 +248,18 @@ class project extends control $maxChildEnd = $this->dao->select('end as maxEnd')->from(TABLE_PROGRAM)->where('id')->ne($objectID)->andWhere('deleted')->eq(0)->andWhere('path')->like("%,{$objectID},%")->andWhere('end')->ne('0000-00-00')->orderBy('end_desc')->fetch('maxEnd'); } } - else - { - $selectedProgram = $this->loadModel('program')->getByID($selectedProgramID); - if($selectedProgram->budget) $availableBudget = $this->program->getBudgetLeft($selectedProgram); - } - $data = array('selectedProgramBegin' => $selectedProgram->begin, 'selectedProgramEnd' => $selectedProgram->end, 'budgetUnit' => $selectedProgram->budgetUnit); - if(isset($availableBudget)) $data['availableBudget'] = $availableBudget; - if($objectType == 'program') + $data = array(); + if(isset($selectedProgram)) { - $data['minChildBegin'] = $minChildBegin; - $data['maxChildEnd'] = $maxChildEnd; + $data['selectedProgramBegin'] = $selectedProgram->begin; + $data['selectedProgramEnd'] = $selectedProgram->end; + $data['budgetUnit'] = $selectedProgram->budgetUnit; } + if(isset($availableBudget)) $data['availableBudget'] = $availableBudget; + if(isset($minChildBegin)) $data['minChildBegin'] = $minChildBegin; + if(isset($maxChildEnd)) $data['maxChildEnd'] = $maxChildEnd; + echo json_encode($data); } diff --git a/module/project/js/common.js b/module/project/js/common.js index 516b3b23bb..e421cc6971 100644 --- a/module/project/js/common.js +++ b/module/project/js/common.js @@ -340,7 +340,7 @@ function budgetOverrunTips() $.get(createLink('project', 'ajaxGetObjectInfo', 'objectType=project&objectID=' + projectID + "&selectedProgramID=" + selectedProgramID), function(data) { var data = JSON.parse(data); - if(data.availableBudget == 'undefined') return; + if(typeof(data.availableBudget) == 'undefined') return; var tip = ""; if(budget != 0 && budget !== null && budget > data.availableBudget) tip = "" + budgetOverrun + currencySymbol[data.budgetUnit] + data.availableBudget.toFixed(2) + "" @@ -364,17 +364,14 @@ function outOfDateTip() { var end = $('#end').val(); var begin = $('#begin').val(); + if($('#dateTip').length > 0) $('#dateTip').remove(); if(end == longTime) end = LONG_TIME; if(end.length > 0 && begin.length > 0) { var selectedProgramID = $('#parent').val(); - if(selectedProgramID == 0) - { - if($('#dateTip').length > 0) $('#dateTip').remove(); - return; - } + if(selectedProgramID == 0) return; if(typeof(projectID) == 'undefined') projectID = 0; $.get(createLink('project', 'ajaxGetObjectInfo', 'objectType=project&objectID=' + projectID + '&selectedProgramID=' + selectedProgramID), function(data) @@ -401,7 +398,6 @@ function outOfDateTip() dateTip = "" + dateExceedParent + data.selectedProgramBegin + "~" + data.selectedProgramEnd + ""; } - if($('#dateTip').length > 0) $('#dateTip').remove(); $('#dateBox').after(dateTip); }); } diff --git a/module/project/js/edit.js b/module/project/js/edit.js index 41c2fc9d1a..20ea121d62 100644 --- a/module/project/js/edit.js +++ b/module/project/js/edit.js @@ -4,8 +4,6 @@ $(function() { var programID = $(this).val(); setAclList(programID); - budgetOverrunTips(); - outOfDateTip(); /* Determine whether the project can change the project set. */ link = createLink('project', 'ajaxCheckProduct', 'programID=' + programID + '&projectID=' + projectID); @@ -59,6 +57,9 @@ $(function() if(!changed) $("#parent").val(oldParent).trigger("chosen:updated"); oldParent = $('#parent').val(); + + budgetOverrunTips(); + outOfDateTip(); }); });