コード例 #1
0
 protected function display()
 {
     if (Tools::isConnectedUser()) {
         // only teamMembers & observers can access this page
         if (0 == $this->teamid || $this->session_user->isTeamCustomer($this->teamid)) {
             $this->smartyHelper->assign('accessDenied', TRUE);
         } else {
             // dates
             $weekDates = Tools::week_dates(date('W'), date('Y'));
             $startdate = Tools::getSecurePOSTStringValue("startdate", Tools::formatDate("%Y-%m-%d", $weekDates[1]));
             $this->smartyHelper->assign('startDate', $startdate);
             $enddate = Tools::getSecurePOSTStringValue("enddate", Tools::formatDate("%Y-%m-%d", $weekDates[5]));
             $this->smartyHelper->assign('endDate', $enddate);
             $isDetailed = Tools::getSecurePOSTIntValue('withJobDetails', 0);
             $this->smartyHelper->assign('isJobDetails', $isDetailed);
             $isExtTasksPrj = Tools::getSecurePOSTIntValue('withExtTasksPrj', 0);
             $this->smartyHelper->assign('isExtTasksPrj', $isExtTasksPrj);
             $isSideTasksPrj = Tools::getSecurePOSTIntValue('withSideTasksPrj', 1);
             $this->smartyHelper->assign('isSideTasksPrj', $isSideTasksPrj);
             if ('computeProjectActivityReport' == $_POST['action']) {
                 $startTimestamp = Tools::date2timestamp($startdate);
                 $endTimestamp = Tools::date2timestamp($enddate);
                 $endTimestamp = mktime(23, 59, 59, date('m', $endTimestamp), date('d', $endTimestamp), date('Y', $endTimestamp));
                 $timeTracking = new TimeTracking($startTimestamp, $endTimestamp, $this->teamid);
                 $this->smartyHelper->assign('projectActivityReport', $this->getProjectActivityReport($timeTracking->getProjectTracks(true), $this->teamid, $isDetailed));
                 // WorkingDaysPerProjectPerUser
                 $data = $timeTracking->getWorkingDaysPerProjectPerUser($isExtTasksPrj, true, $isSideTasksPrj);
                 foreach ($data as $smartyKey => $smartyVariable) {
                     $this->smartyHelper->assign($smartyKey, $smartyVariable);
                 }
                 $data = $this->getWorkingDaysPerProjectPerUser($startTimestamp, $endTimestamp, $isExtTasksPrj, $isSideTasksPrj);
                 foreach ($data as $smartyKey => $smartyVariable) {
                     $this->smartyHelper->assign($smartyKey, $smartyVariable);
                 }
             }
         }
     }
 }
コード例 #2
0
ファイル: export_csv_weekly.php プロジェクト: fg-ok/codev
 /**
  * creates for each project a table with the following fields:
  * TaskName | RAF | <Jobs>
  * @param TimeTracking $timeTracking
  * @param string $myFile
  * @return string
  */
 private function exportProjectActivityToCSV(TimeTracking $timeTracking, $myFile)
 {
     $sepChar = ';';
     $team = TeamCache::getInstance()->getTeam($timeTracking->getTeamid());
     if (!is_dir(Constants::$codevOutputDir . DIRECTORY_SEPARATOR . 'reports')) {
         mkdir(Constants::$codevOutputDir . DIRECTORY_SEPARATOR . 'reports', 0755);
     }
     $fh = fopen($myFile, 'w');
     // $projectTracks[projectid][bugid][jobid] = duration
     $projectTracks = $timeTracking->getProjectTracks();
     foreach ($projectTracks as $projectId => $bugList) {
         // write table header
         $project = ProjectCache::getInstance()->getProject($projectId);
         $stringData = $project->getName() . "\n";
         $stringData .= T_("Task") . $sepChar;
         $stringData .= T_("BL") . $sepChar;
         $jobList = $project->getJobList($team->getProjectType($projectId));
         foreach ($jobList as $jobName) {
             $stringData .= $jobName . $sepChar;
         }
         $stringData .= "\n";
         // write table content (by bugid)
         foreach ($bugList as $bugid => $jobs) {
             $issue = IssueCache::getInstance()->getIssue($bugid);
             // remove sepChar from summary text
             $formatedSummary = str_replace($sepChar, " ", $issue->getSummary());
             $stringData .= "{$bugid} / " . $issue->getTcId() . " : " . $formatedSummary . $sepChar;
             $stringData .= $issue->getBacklog() . $sepChar;
             foreach ($jobList as $jobId => $jobName) {
                 $stringData .= $jobs[$jobId] . $sepChar;
             }
             $stringData .= "\n";
         }
         $stringData .= "\n";
         fwrite($fh, $stringData);
     }
     fclose($fh);
     return $myFile;
 }
コード例 #3
0
ファイル: export_csv_monthly.php プロジェクト: fg-ok/codev
 /**
  * creates for each project a table with the following fields:
  * id | TC | startDate | endDate | status | total elapsed | elapsed + Backlog | elapsed in period | Backlog
  * TOTAL
  * @param TimeTracking $timeTracking
  * @param string $myFile
  * @return string
  */
 public static function exportProjectMonthlyActivityToCSV(TimeTracking $timeTracking, $myFile)
 {
     $sepChar = ';';
     $fh = fopen($myFile, 'w');
     // returns : $projectTracks[projectid][bugid][jobid] = duration
     $projectTracks = $timeTracking->getProjectTracks();
     foreach ($projectTracks as $projectId => $bugList) {
         $totalEffortEstim = 0;
         $totalElapsed = 0;
         $totalBacklog = 0;
         $totalElapsedPeriod = 0;
         // write table header
         $project = ProjectCache::getInstance()->getProject($projectId);
         $stringData = $project->getName() . "\n";
         // WARNING i18n: HTML translation like french accents (eacute;) add an unwanted column sepChar (;)
         $stringData .= "ID" . $sepChar;
         $stringData .= "Task" . $sepChar;
         $stringData .= "Ext.ID" . $sepChar;
         $stringData .= "Start date" . $sepChar;
         $stringData .= "End date" . $sepChar;
         $stringData .= "Status" . $sepChar;
         $stringData .= "Total EffortEstim" . $sepChar;
         $stringData .= "Total elapsed" . $sepChar;
         $stringData .= "elapsed + Backlog" . $sepChar;
         $stringData .= "elapsed in period" . $sepChar;
         $stringData .= "BL" . $sepChar;
         $stringData .= "\n";
         // write table content (by bugid)
         foreach ($bugList as $bugid => $jobs) {
             $issue = IssueCache::getInstance()->getIssue($bugid);
             // remove sepChar from summary text
             $formatedSummary = str_replace($sepChar, " ", $issue->getSummary());
             $stringData .= $bugid . $sepChar;
             $stringData .= $formatedSummary . $sepChar;
             $stringData .= $issue->getTcId() . $sepChar;
             $stringData .= date("d/m/Y", $issue->startDate()) . $sepChar;
             $stringData .= date("d/m/Y", $issue->endDate()) . $sepChar;
             $stringData .= $issue->getCurrentStatusName() . $sepChar;
             $stringData .= $issue->getEffortEstim() + $issue->getEffortAdd() . $sepChar;
             $stringData .= $issue->getElapsed() . $sepChar;
             $stringData .= $issue->getElapsed() + $issue->getBacklog() . $sepChar;
             // sum all job durations
             $elapsedInPeriod = 0;
             foreach ($jobs as $jobId => $duration) {
                 $elapsedInPeriod += $duration;
             }
             $stringData .= $elapsedInPeriod . $sepChar;
             $stringData .= $issue->getBacklog() . $sepChar;
             $stringData .= "\n";
             $totalEffortEstim += $issue->getEffortEstim() + $issue->getEffortAdd();
             $totalElapsed += $issue->getElapsed();
             $totalBacklog += $issue->getBacklog();
             $totalElapsedPeriod += $elapsedInPeriod;
         }
         // total per project
         $stringData .= "TOTAL" . $sepChar . $sepChar . $sepChar . $sepChar . $sepChar . $sepChar;
         $stringData .= $totalEffortEstim . $sepChar;
         $stringData .= $totalElapsed . $sepChar;
         $stringData .= $totalElapsed + $totalBacklog . $sepChar;
         $stringData .= $totalElapsedPeriod . $sepChar;
         $stringData .= $totalBacklog . $sepChar;
         $stringData .= "\n";
         $stringData .= "\n";
         fwrite($fh, $stringData);
     }
     fclose($fh);
     return $myFile;
 }