Skip to content
Snippets Groups Projects
Select Git revision
  • a4408212a8fdea6d3d68e5c41cb2b3288c4cdfe7
  • master default
  • disable-new-requests
  • fix-bulletin-view-missing-notes-error
  • add-missing-queue-managers
  • projects-task-53
  • projects-task-51
  • projects-task-43
  • projects-task-24
  • projects-task-31
  • projects-task-32
  • projects-task-8
  • project-setup-docs
  • projects-task-28
  • projects-task-27
  • projects-task-9
  • projects-task-7
  • mass-update-course-codes-in-sections
  • wdn-four
  • learning-outcomes
  • additional-bulletin-pages
  • svn-redesign
  • svn-popups
  • svn-trunk
  • svn-performance
  • svn-tim
26 results

ReportsController.php

Blame
  • ReportsController.php 7.96 KiB
    <?php
    
    class Iace_ReportsController extends Creq_Controller_Action
    {
    	
    	public function indexAction()
    	{
    		//
    	}
    	
    	public function weeklyAction()
    	{
    		$filters = array();
    		$validators = array(
                'year'  => 'Digits',
                'month' => 'Digits',
                'day'   => 'Digits',
                'sort'  => 'Alpha'
    		);
            $in = new Zend_Filter_Input($filters, $validators, $this->_getAllParams());
            if ($in->isValid()) {
            	$endDate = new Zend_Date();
            	$endDate->setYear($in->year);
            	$endDate->setMonth($in->month);
                $endDate->setDay($in->day);
                $endDate->setHour(0);
                $endDate->setMinute(0);
                $endDate->setSecond(0);
                $endDate->addDay(1);
                $startDate = clone $endDate;
                $startDate->subDay(7);
            } else {
            	$endDate = new Zend_Date(0);
            	$startDate = $startDate;
            }
    		
    		$db = Zend_Registry::get('db');
    		$select = new Zend_Db_Select($db);
    		$select->from(array('h' => 'creqApprovalHistories'), array('time'));
    		$select->join(array('r' => 'creqRequests'), 'h.request = r.requestId', array('r.requestId'));
    		$select->where('h.approvalActionName = ?', 'Make Official');
            $select->where('r.type IN (?)', array(6, 7, 8, 9, 10, 12));
            $select->where('h.time >= ?', $startDate->getTimestamp());
            $select->where('h.time < ?', $endDate->getTimestamp());
    		
    		$data = $select->query()->fetchAll();
    		$requestIds = array();
    		$finalizeTimes = array();
    		foreach ($data as $row) {
    			$requestIds[] = $row['requestId'];
    			$finalizeTimes[$row['requestId']] = $row['time'];
    		}
    		
    		$requests = Requests_RequestModel::find($requestIds);
    		$courses = Courses_CourseModel::findLatestOfRequest($requests);
    		
            $courseIds = array();
            foreach ($courses as $course) {
                $courseIds[] = $course->getCourseId();
            }
            $currentCourses = Courses_CourseModel::findByCourseId($courseIds);
    		
    		$courses->orderBy('getCourseCode');
    		
    		$data = new Unl_Model_Collection('Unl_Model_Array');
            foreach ($courses as $requestId => $course) {
                $request = $requests[$requestId];
                $finalizeTime = $finalizeTimes[$request->getId()];
                $title = $course->getTitle();
                if ($course->getCrosslistingsText()) {