From b878528be2dfcf0cbd7e36b155973600081aed68 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=99=88=E6=B6=9B?= Date: Wed, 26 Oct 2022 02:32:51 +0000 Subject: [PATCH 1/2] Resolve feedback #785 --- module/weekly/control.php | 27 ++++++++------------- module/weekly/lang/de.php | 2 ++ module/weekly/lang/en.php | 2 ++ module/weekly/lang/fr.php | 2 ++ module/weekly/lang/zh-cn.php | 2 ++ module/weekly/model.php | 40 +++++++++++++++++++++++++++++++ module/weekly/view/index.html.php | 9 +++++++ 7 files changed, 67 insertions(+), 17 deletions(-) diff --git a/module/weekly/control.php b/module/weekly/control.php index 1222aaf804..c8273c0ea8 100755 --- a/module/weekly/control.php +++ b/module/weekly/control.php @@ -33,6 +33,11 @@ class weekly extends control */ public function commonAction($projectID = 0) { + if(common::hasPriv('weekly', 'exportweeklyreport')) + { + $this->lang->TRActions = "
" . html::a($this->createLink('weekly', 'exportweeklyreport', 'module=' . $this->app->getModuleName() . '&projectID=' . $projectID), $this->lang->export, '', "class='btn btn-primary' data-width='30%' id='exportreport' data-group='project'") . 'loadModel('project')->setMenu($projectID); } @@ -52,24 +57,12 @@ class weekly extends control $this->weekly->save($projectID, $date); + /* Get report data from module and assign data to view object. */ + $data = $this->weekly->getReportData($projectID, $date); + foreach($data as $key => $val) $this->view->$key = $val; + $this->view->title = $this->lang->weekly->common; - - $PVEV = $this->weekly->getPVEV($projectID, $date); - $this->view->pv = $PVEV['PV']; - $this->view->ev = $PVEV['EV']; - $this->view->ac = $this->weekly->getAC($projectID, $date); - $this->view->sv = $this->weekly->getSV($this->view->ev, $this->view->pv); - $this->view->cv = $this->weekly->getCV($this->view->ev, $this->view->ac); - - $this->view->project = $this->loadModel('project')->getByID($projectID); - $this->view->weekSN = $this->weekly->getWeekSN($this->view->project->begin, $date); - $this->view->monday = $this->weekly->getThisMonday($date); - $this->view->lastDay = $this->weekly->getLastDay($date); - $this->view->staff = $this->weekly->getStaff($projectID, $date); - $this->view->finished = $this->weekly->getFinished($projectID, $date); - $this->view->postponed = $this->weekly->getPostponed($projectID, $date); - $this->view->nextWeek = $this->weekly->getTasksOfNextWeek($projectID, $date); - $this->view->workload = $this->weekly->getWorkloadByType($projectID, $date); + $this->view->date = $date; $this->lang->modulePageNav = $this->weekly->getPageNav($this->view->project, $date); $this->display(); diff --git a/module/weekly/lang/de.php b/module/weekly/lang/de.php index c34bd92dc5..6b6129bd97 100644 --- a/module/weekly/lang/de.php +++ b/module/weekly/lang/de.php @@ -39,3 +39,5 @@ $lang->weekly->sv = 'Schedule Variance(SV%)'; $lang->weekly->cv = 'Cost Variance(CV%)'; $lang->weekly->totalCount = 'Total : %u tasks'; + +$lang->weekly->exportWeeklyReport = 'Export Weekly Report'; diff --git a/module/weekly/lang/en.php b/module/weekly/lang/en.php index cd0a4ff031..91905404dd 100644 --- a/module/weekly/lang/en.php +++ b/module/weekly/lang/en.php @@ -39,3 +39,5 @@ $lang->weekly->sv = 'Schedule Variance(SV%)'; $lang->weekly->cv = 'Cost Variance(CV%)'; $lang->weekly->totalCount = 'Total : %u tasks'; + +$lang->weekly->exportWeeklyReport = 'Export Weekly Report'; diff --git a/module/weekly/lang/fr.php b/module/weekly/lang/fr.php index c34bd92dc5..6b6129bd97 100644 --- a/module/weekly/lang/fr.php +++ b/module/weekly/lang/fr.php @@ -39,3 +39,5 @@ $lang->weekly->sv = 'Schedule Variance(SV%)'; $lang->weekly->cv = 'Cost Variance(CV%)'; $lang->weekly->totalCount = 'Total : %u tasks'; + +$lang->weekly->exportWeeklyReport = 'Export Weekly Report'; diff --git a/module/weekly/lang/zh-cn.php b/module/weekly/lang/zh-cn.php index 53364d712c..977709456e 100644 --- a/module/weekly/lang/zh-cn.php +++ b/module/weekly/lang/zh-cn.php @@ -39,3 +39,5 @@ $lang->weekly->sv = '进度偏差率(SV%)'; $lang->weekly->cv = '成本偏差率(CV%)'; $lang->weekly->totalCount = '总计 : %u 个任务'; + +$lang->weekly->exportWeeklyReport = '周报导出'; diff --git a/module/weekly/model.php b/module/weekly/model.php index 44f683f754..37ae0681b8 100755 --- a/module/weekly/model.php +++ b/module/weekly/model.php @@ -531,4 +531,44 @@ class weeklyModel extends model return ''; } + + /** + * Get report data. + * + * @param int $projectID + * @param string $date + * @param bool $loadMaster + * @access public + * @return stdclass + */ + public function getReportData($projectID = 0, $date = '', $loadMaster = false) + { + $data = new stdclass(); + + $PVEV = $this->getPVEV($projectID, $date); + $data->pv = $PVEV['PV']; + $data->ev = $PVEV['EV']; + $data->ac = $this->getAC($projectID, $date); + $data->sv = $this->getSV($data->ev, $data->pv); + $data->cv = $this->getCV($data->ev, $data->ac); + + $data->project = $this->loadModel('project')->getByID($projectID); + $data->weekSN = $this->getWeekSN($data->project->begin, $date); + $data->monday = $this->getThisMonday($date); + $data->lastDay = $this->getLastDay($date); + $data->staff = $this->getStaff($projectID, $date); + $data->finished = $this->getFinished($projectID, $date); + $data->postponed = $this->getPostponed($projectID, $date); + $data->nextWeek = $this->getTasksOfNextWeek($projectID, $date); + $data->workload = $this->getWorkloadByType($projectID, $date); + $data->progress = $this->getTips('progress', $data->sv); + + if($loadMaster) + { + $data->users = $this->loadModel('user')->getPairs('noletter'); + $data->master = zget($data->users, $data->project->PM, ''); + } + + return $data; + } } diff --git a/module/weekly/view/index.html.php b/module/weekly/view/index.html.php index b85d497baa..68aa48590e 100644 --- a/module/weekly/view/index.html.php +++ b/module/weekly/view/index.html.php @@ -10,6 +10,15 @@ */ ?> + + + +