<?php class Courses_ApprovalActionDepartmentRouterModel extends Requests_ApprovalActionModel { public static function find($id) { $db = Zend_Registry::get('db'); $select = new Zend_Db_Select($db); $select->from(array('a' => 'creqApprovalActions')); $select->join(array('d' => 'creqApprovalActionsDepartmentRouter'), 'a.approvalActionId = d.approvalActionId'); if (Unl_Util::isArray($id)) { $select->where('a.approvalActionId IN(?)', $id); } else { $select->where('a.approvalActionId = ?', $id); } $records = $db->query($select)->fetchAll(); $objects = new Unl_Model_Collection(__CLASS__); foreach ($records as $record) { $object = Unl_Model_Registry::getInstance()->getOrAdd(new self($record)); $objectId = $object->getId(); $objects[$objectId] = $object; } if (Unl_Util::isArray($objects)) { return $objects; } else { return array_pop($objects); } } public function consider($requests) { $requestParentCourses = Courses_CourseModel::findParentOfRequest($requests); $requestCurrentCourses = Courses_CourseModel::findLatestOfRequest($requests); foreach ($requests as $request) { $course = $requestParentCourses[$request->getId()]; if (!$course) { $course = $requestCurrentCourses[$request->getId()]; } $department = $course->getDepartment(); $request->setState($department); } Requests_RequestModel::save($requests); Requests_ApprovalChainModel::advance($requests); return $requests; } public function userMadeDecisions($requests, $requestDecisions) { // Don't do anything here, this is an automated action. } }