예제 #1
0
파일: Claim.php 프로젝트: DarkAiR/test
 public function __construct($data)
 {
     foreach ($data as $k => $v) {
         switch (strtolower($k)) {
             case 'currstatus':
                 $this->{$k} = new ClaimStatus($v);
                 break;
             case 'service':
                 $this->{$k} = new Service($v);
                 break;
             default:
                 $this->{$k} = $v;
                 break;
         }
     }
     if (is_array($this->persons)) {
         $this->personsData = RlddConnect::findPersonsByIds($this->persons);
     }
 }
예제 #2
0
 /**
  * Логин
  * @return JSON
  *      {FIELD_NAME:error,...}      ошибки по полям
  *      {error, errmsg}             внутренняя ошибка (error-текст для отображения, errmsg-внутренний текст)
  *      {result:ID, msg}            id персоны и текст сообщения
  */
 public function actionLogin()
 {
     if (!Yii::app()->request->isAjaxRequest) {
         throw new CHttpException(404);
     }
     $login = Yii::app()->request->getPost('login', '');
     $password = Yii::app()->request->getPost('password', '');
     $email = Yii::app()->request->getPost('email', '');
     // Обязательные параметры
     $errors = array();
     if (empty($login)) {
         $errors['login'] = Yii::t('rlddError', 'Не задан логин');
     }
     if (!empty($errors)) {
         header('HTTP/1.1 400 Params error');
         echo json_encode($errors);
         Yii::app()->end();
     }
     // Создаем пользователя
     $params = array('login' => $login);
     if (!empty($password)) {
         $params['password'] = $password;
     }
     if (!empty($email)) {
         $params['email'] = $email;
     }
     $res = RlddConnect::getPerson($params);
     if (isset($res['errmsg'])) {
         // Пользователь не найден
         if (strpos(strtolower($res['errmsg']), RlddConnect::ERROR_PERSON_NOT_FOUND) !== false) {
             header('HTTP/1.1 400 User error');
             echo json_encode(array('error' => Yii::t('rlddError', 'Пользователь не найден'), 'errmsg' => $res['errmsg']));
             Yii::app()->end();
         }
         // Несколько пользователей под одним логином
         if (strpos(strtolower($res['errmsg']), RlddConnect::ERROR_PERSON_DUPLICATE) !== false) {
             header('HTTP/1.1 400 User error');
             echo json_encode(array('error' => Yii::t('rlddError', 'Не хватает данных для входа. Попробуйте заполнить остальные поля.'), 'errmsg' => $res['errmsg']));
             Yii::app()->end();
         }
     }
     echo json_encode(array('personId' => $res['result'], 'msg' => ''));
     Yii::app()->end();
 }
예제 #3
0
 /**
  * Получить заявки пользователя
  */
 public function actionClaims()
 {
     $page = Yii::app()->request->getQuery('page', 1);
     $size = 200;
     $personId = Yii::app()->session['personId'];
     if (!$personId) {
         Yii::app()->request->redirect(CHtml::normalizeUrl(array('/rldd/rldd/index')));
     }
     $res = RlddConnect::findClaimsByPersons(array($personId), $page - 1, $size);
     $criteria = new CDbCriteria();
     $criteria->offset = $page * $size;
     $criteria->limit = $size;
     $pages = new CPagination($res['page']['totalElements']);
     $pages->pageSize = $size;
     $pages->applyLimit($criteria);
     $pages->currentPage = $page - 1;
     $this->render('/claims', array('claims' => $res['claims'], 'pages' => $pages));
 }