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;
 }
Пример #2
0
 /**
  * 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);
 }