public function actionGetInfo($id) { $wfStates = WorkflowStates::model()->findByPk(new MongoID($id)); Yii::import('site.common.components.hotelBooker.*'); //Yii::import('hotelBooker.models.*'); //Yii::import('hotelBooker.*'); Yii::import('site.common.modules.hotel.models.*'); $modelObject = SWLogActiveRecord::model($wfStates->className)->findByPk($wfStates->objectId); //VarDumper::dump($modelObject); $desc = ''; $stages = array(); $lastStageName = ''; $lastStageId = 0; foreach ($wfStates->transitions as $i => $transition) { if ($transition['type'] == 'before') { if (count($stages) == 0) { $stages[] = array('stageName' => $transition['stateFrom'], 'requestIds' => array()); } $n = count($stages); if (isset($transition['requestIds'])) { if (count($transition['requestIds']) > 0) { $stages[$n - 1]['requestIds'] = $transition['requestIds']; foreach ($stages[$n - 1]['requestIds'] as $j => $reqId) { $requestModel = EMongoDocument::model($reqId['class'])->findByAttributes(array($reqId['keyName'] => $reqId['key'])); $stages[$n - 1]['requestIds'][$j]['methodName'] = $requestModel->methodName; $stages[$n - 1]['requestIds'][$j]['description'] = $requestModel->requestDescription; } } } $stages[] = array('stageName' => $transition['stateTo'], 'requestIds' => array(), 'time' => $transition['time']); } elseif ($transition['type'] == 'afterSave') { if (count($stages) == 0) { $stages[] = array('stageName' => $transition['state'], 'requestIds' => $transition['requestIds']); } $n = count($stages); if (isset($transition['requestIds'])) { if (count($transition['requestIds']) > 0) { $stages[$n - 1]['requestIds'] = $transition['requestIds']; foreach ($stages[$n - 1]['requestIds'] as $j => $reqId) { $requestModel = EMongoDocument::model($reqId['class'])->findByAttributes(array($reqId['keyName'] => $reqId['key'])); $stages[$n - 1]['requestIds'][$j]['methodName'] = $requestModel->methodName; $stages[$n - 1]['requestIds'][$j]['description'] = $requestModel->requestDescription; } } } //$stages[] = array('stageName'=>$transition['stateTo'],'requestIds'=>array(),'time'=>$transition['time']); } } //VarDumper::dump($stages); $retArr = array('stages' => $stages, 'class' => $wfStates->className, 'objectId' => $wfStates->objectId); /*$widget = new CTextHighlighter(); $widget->language = 'xml'; $retArr['methodName'] = $model->methodName; $retArr['requestXml'] = $widget->highlight($model->requestXml); $retArr['responseXml'] = $widget->highlight($model->responseXml); $retArr['timestamp'] = date("Y-m-d H:i:s",$model->timestamp); $retArr['executionTime'] = Yii::app()->format->formatNumber($model->executionTime); $retArr['errorDescription'] = $model->errorDescription;*/ //$retArr['responseXml'] = $model->responseXml; //echo $model->requestXml); echo json_encode($retArr); die; }
/** * Returns the static model of the specified AR class. * @param string $className active record class name. * @return FlightBooker the static model class */ public static function model($className = __CLASS__) { return parent::model($className); }