Select Git revision
ApprovalActionSubjectRouterModel.php
ApprovalActionSubjectRouterModel.php 2.40 KiB
<?php
class Courses_ApprovalActionSubjectRouterModel extends Requests_ApprovalActionModel
{
protected $_subjects = array();
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' => 'creqApprovalActionsSubjectRouter'), '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()];
}
$subject = $course->getSubject();
$request->setState($subject);
}
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.
}
public function getResultStatusStrings()
{
if (count($this->_subjects) == 0) {
$db = Zend_Registry::get('db');
$select = new Zend_Db_Select($db);
$select->from(array('s' => 'creqSubjects'));
$records = $select->query()->fetchAll();
$subjects = array();
foreach ($records as $record) {
$subjects[$record['name']] = $record['name'];
}
$this->_subjects = $subjects;
}
return $this->_subjects;
}
}