Example #1
0
 public function actionImportHoles()
 {
     set_time_limit(0);
     $holes = BHoles::model()->findAll();
     $count = 0;
     foreach ($holes as $hole) {
         //if (1){
         if ($hole->picturenames && isset($hole->picturenames['medium']['fresh']) && count($hole->picturenames['medium']['fresh']) > 0) {
             $model = new Holes('import');
             $model->attributes = $hole->attributes;
             $model->ID = $hole->ID;
             $type = HoleTypes::model()->find('alias = "' . $hole->TYPE . '"');
             $model->TYPE_ID = $type->id;
             if ($model->ADR_SUBJECTRF) {
                 $gibdd = GibddHeads::model()->find('is_regional=1 AND subject_id=' . $model->ADR_SUBJECTRF);
                 if ($gibdd) {
                     $model->gibdd_id = $gibdd->id;
                 } else {
                     $model->gibdd_id = 0;
                 }
             } else {
                 $model->gibdd_id = 0;
             }
             //if ($model->errors) print_r ($model->errors);
             if ($model->STATE == "inprogress") {
                 if (!$model->DATE_SENT) {
                     $model->DATE_SENT = $model->DATE_CREATED;
                 }
                 //echo date('d.m.Y', $model->DATE_SENT).'<br/>';
             }
             if ($model->save()) {
                 //if (0){
                 $count++;
                 foreach ($hole->picturenames['medium']['fresh'] as $i => $src) {
                     $picture = new HolePictures();
                     $picture->type = 'fresh';
                     $picture->filename = $src;
                     $picture->hole_id = $hole->ID;
                     $picture->user_id = $model->USER_ID;
                     $picture->ordering = $i;
                     $picture->save();
                 }
                 foreach ($hole->picturenames['medium']['fixed'] as $i => $src) {
                     $picture = new HolePictures();
                     $picture->type = 'fixed';
                     $picture->filename = $src;
                     $picture->hole_id = $hole->ID;
                     $picture->user_id = $model->USER_ID;
                     $picture->ordering = $i;
                     $picture->save();
                 }
                 if ($model->STATE == "fixed") {
                     $fixmodel = new HoleFixeds();
                     $fixmodel->user_id = $model->USER_ID;
                     $fixmodel->hole_id = $model->ID;
                     $fixmodel->date_fix = $model->DATE_STATUS;
                     $fixmodel->comment = $model->COMMENT2;
                     $fixmodel->save();
                 }
                 if ($model->STATE != "fresh") {
                     if (!$model->DATE_SENT) {
                         $model->DATE_SENT = $model->DATE_CREATED;
                     }
                     $request = new HoleRequests();
                     $request->hole_id = $model->ID;
                     $request->user_id = $model->USER_ID;
                     $request->gibdd_id = $model->gibdd_id;
                     $request->date_sent = $model->DATE_SENT;
                     $request->type = 'gibdd';
                     $request->save();
                     if ($model->GIBDD_REPLY_RECEIVED) {
                         $answer = new HoleAnswers('import');
                         //$answer->attributes=Array('uppload_files'=>Array(123,456));
                         $answer->isimport = true;
                         $answer->request_id = $request->id;
                         $answer->date = $model->DATE_STATUS;
                         $answer->comment = $model->COMMENT_GIBDD_REPLY;
                         if ($answer->save()) {
                             $dir = $_SERVER['DOCUMENT_ROOT'] . $answer->filesFolder;
                             if (!is_dir($_SERVER['DOCUMENT_ROOT'] . '/upload/st1234/answers/')) {
                                 mkdir($_SERVER['DOCUMENT_ROOT'] . '/upload/st1234/answers/');
                             }
                             if (!is_dir($_SERVER['DOCUMENT_ROOT'] . '/upload/st1234/answers/' . $answer->request->hole->ID)) {
                                 mkdir($_SERVER['DOCUMENT_ROOT'] . '/upload/st1234/answers/' . $answer->request->hole->ID);
                             }
                             if (!is_dir($dir)) {
                                 mkdir($dir);
                             }
                             if (!is_dir($dir . '/thumbs')) {
                                 mkdir($dir . '/thumbs');
                             }
                             foreach ($hole->picturenames['medium']['gibddreply'] as $i => $src) {
                                 $pict = new HoleAnswerFiles();
                                 $pict->file_name = $src;
                                 $pict->file_type = 'image';
                                 $pict->answer_id = $answer->id;
                                 copy($_SERVER['DOCUMENT_ROOT'] . '/upload/st1234/original/' . $answer->request->hole->ID . '/' . $src, $dir . '/' . $src);
                                 //unlink ($_SERVER['DOCUMENT_ROOT'].'/upload/st1234/original/'.$src);
                                 copy($_SERVER['DOCUMENT_ROOT'] . '/upload/st1234/medium/' . $answer->request->hole->ID . '/' . $src, $dir . '/thumbs/' . $src);
                                 //unlink ($_SERVER['DOCUMENT_ROOT'].'/upload/st1234/medium/'.$src);
                                 $pict->save();
                             }
                         } else {
                             print_r($answer->errors);
                             die;
                         }
                     }
                 }
             }
         }
     }
     echo "Добавлено {$count} ям.";
 }
Example #2
0
 public function actionSetstate($id, $type)
 {
     $user = $this->auth();
     $model = $this->loadModel($id);
     $tags = array();
     switch ($type) {
         case 'getupdatemethods':
             $tags[] = CHtml::tag('state', array('id' => $model->STATE), false, false);
             foreach ($this->updateMethods[$model->STATE] as $method) {
                 $tags[] = CHtml::tag('method', array('name' => $method), false, true);
             }
             $tags[] = CHtml::closeTag('state');
             break;
         case 'setinprogress':
             if ($model->makeRequest('gibdd')) {
                 $tags[] = CHtml::tag('callresult', array('result' => 1), 'ok', true);
             } else {
                 $this->error('UNAPPROPRIATE_METHOD');
             }
             break;
         case 'revoke':
             if ($model->updateRevoke()) {
                 $tags[] = CHtml::tag('callresult', array('result' => 1), 'ok', true);
             } else {
                 $this->error('UNAPPROPRIATE_METHOD');
             }
             break;
         case 'setreplied':
             $model->scenario = 'gibdd_reply';
             if ($model->STATE != 'inprogress' && $model->STATE != 'achtung' && !$model->request_gibdd) {
                 $this->error('UNAPPROPRIATE_METHOD');
             }
             $answer = new HoleAnswers();
             $answer->request_id = $model->request_gibdd->id;
             $answer->date = time();
             $answer->comment = Yii::app()->request->getParam('comment');
             if ($answer->save()) {
                 if ($model->STATE == "inprogress" || $model->STATE == "achtung") {
                     $model->STATE = 'gibddre';
                 }
                 $model->GIBDD_REPLY_RECEIVED = 1;
                 if (!$model->DATE_STATUS) {
                     $model->DATE_STATUS = time();
                 }
                 if ($model->update()) {
                     $tags[] = CHtml::tag('callresult', array('result' => 1), 'ok', true);
                 }
             } else {
                 $this->error('CANNOT_UPDATE_DEFECT');
             }
             break;
         case 'setfixed':
             if (!$model->isUserHole && $user->level < 50) {
                 if ($model->STATE == 'fixed' || !$model->request_gibdd || !$model->request_gibdd->answers) {
                     $this->error('UNAPPROPRIATE_METHOD');
                 }
             } elseif ($model->STATE == 'fixed') {
                 $this->error('UNAPPROPRIATE_METHOD');
             }
             $model->scenario = 'fix';
             $model->STATE = 'fixed';
             $model->COMMENT2 = Yii::app()->request->getParam('comment');
             $model->DATE_STATUS = time();
             if ($model->save() && $model->savePictures()) {
                 $tags[] = CHtml::tag('callresult', array('result' => 1), 'ok', true);
             } else {
                 $this->error('CANNOT_UPDATE_DEFECT');
             }
             break;
         case 'defix':
             if ($model->STATE != 'fixed') {
                 $this->error('UNAPPROPRIATE_METHOD');
             }
             if ($model->isUserHole || $user->level >= 50) {
                 if ($model->updateSetinprogress()) {
                     $tags[] = CHtml::tag('callresult', array('result' => 1), 'ok', true);
                 } else {
                     $this->error('UNAPPROPRIATE_METHOD');
                 }
             } else {
                 $this->error('UNAPPROPRIATE_METHOD');
             }
             break;
         case 'toprosecutor':
             if ($model->makeRequest('prosecutor')) {
                 $tags[] = CHtml::tag('callresult', array('result' => 1), 'ok', true);
             } else {
                 $this->error('UNAPPROPRIATE_METHOD');
             }
             break;
         case 'revokep':
             if ($model->updateRevoke()) {
                 $tags[] = CHtml::tag('callresult', array('result' => 1), 'ok', true);
             } else {
                 $this->error('UNAPPROPRIATE_METHOD');
             }
             break;
         case 'delete':
             if ($model->isUserHole && $model->delete()) {
                 $tags[] = CHtml::tag('callresult', array('result' => 1), 'ok', true);
             } else {
                 $this->error('UNAPPROPRIATE_METHOD');
             }
             break;
         case 'getgibddhead':
             if ($model->gibdd) {
                 $tags[] = CHtml::tag('gibddhead', array('subjectid' => $model->gibdd->subject->id, 'id' => $model->gibdd->id), false, false);
                 $tags[] = CHtml::tag('nominative', array('post' => $model->gibdd->post, 'gibdd' => $model->gibdd->gibdd_name), CHtml::encode($model->gibdd->fio), true);
                 $tags[] = CHtml::tag('dative', array('post' => $model->gibdd->post_dative), CHtml::encode($model->gibdd->fio_dative), true);
                 $tags[] = CHtml::closeTag('gibddhead');
             } else {
                 $this->error('UNAPPROPRIATE_METHOD');
             }
             break;
         case 'pdf_gibdd':
             $attribs = array('to_name' => Yii::app()->request->getParam('to'), 'from' => Yii::app()->request->getParam('from'), 'postaddress' => Yii::app()->request->getParam('postaddress'), 'address' => Yii::app()->request->getParam('holeaddress') ? Yii::app()->request->getParam('holeaddress') : $model->ADDRESS, 'comment' => Yii::app()->request->getParam('comment'), 'signature' => Yii::app()->request->getParam('signature'), 'pdf' => true);
             $this->makepdf($attribs, $model);
             Yii::app()->end();
             $tags[] = CHtml::tag('callresult', array('result' => 1), 'ok', true);
             break;
         case 'pdf_prosecutor':
             $attribs = array('form_type' => 'prosecutor', 'to' => Yii::app()->request->getParam('to'), 'from' => Yii::app()->request->getParam('from'), 'postaddress' => Yii::app()->request->getParam('postaddress'), 'address' => Yii::app()->request->getParam('holeaddress') ? Yii::app()->request->getParam('holeaddress') : $model->ADDRESS, 'comment' => Yii::app()->request->getParam('comment'), 'signature' => Yii::app()->request->getParam('signature'), 'application_data' => $model->request_gibdd ? date('d.m.Y', $model->request_gibdd->date_sent) : '', 'pdf' => true);
             $this->makepdf($attribs, $model);
             Yii::app()->end();
             break;
         default:
             $this->error('UNAPPROPRIATE_METHOD');
             break;
     }
     $this->renderXml($tags);
 }
Example #3
0
 public function actionReply($id = null)
 {
     $this->pageTitle = Yii::t('titles', 'HOLES_COMMENT');
     $this->layout = '//layouts/header_user';
     $hole = $this->loadModel($id);
     if (isset($_POST['answerdate'])) {
         $answer = new HoleAnswers();
         $answer->date = strtotime($_POST['answerdate']);
         $answer->comment = $_POST['comment'];
         $requests = $hole->requests_user;
         //			if(count($requests)>0){
         //				$req=$requests[count($requests)-1];
         //				$answer->request_id=$req->id;
         $answer->request_id = $_POST['req_id'];
         //			}else{return false;}
         if ($answer->save()) {
             $this->redirect(array('view', 'id' => $hole->ID));
         }
     }
     $this->render('reply', array('hole' => $hole));
 }
Example #4
0
 public function actionGibddreply($id = null, $holes = null)
 {
     $this->layout = '//layouts/header_user';
     $count = 0;
     $firstAnswermodel = array();
     $models = array();
     if (!$holes) {
         $model = $this->loadModel($id);
         $model->scenario = 'gibdd_reply';
         if (!$model->request_gibdd) {
             throw new CHttpException(403, 'Доступ запрещен.');
         }
         $models[] = $model;
     } else {
         $models = Holes::model()->findAllByPk(explode(',', $holes));
     }
     foreach ($models as $i => $model) {
         if (!$model->request_gibdd) {
             unset($models[$i]);
             continue;
         }
         $answer = new HoleAnswers();
         if (isset($_GET['answer']) && $_GET['answer']) {
             $answer = HoleAnswers::model()->findByPk((int) $_GET['answer']);
         }
         $answer->request_id = $model->request_gibdd->id;
         if (isset($_POST['HoleAnswers'])) {
             $answer->attributes = $_POST['HoleAnswers'];
             //if (isset($_POST['HoleAnswers']['results'])) $answer->results=$_POST['HoleAnswers']['results'];
             $answer->request_id = $model->request_gibdd->id;
             if (!$answer->date) {
                 $answer->date = time();
             }
             if ($firstAnswermodel) {
                 $answer->firstAnswermodel = $firstAnswermodel;
             }
             if ($answer->save()) {
                 if ($model->STATE == "inprogress" || $model->STATE == "achtung") {
                     $model->STATE = 'gibddre';
                 }
                 $model->GIBDD_REPLY_RECEIVED = 1;
                 $model->DATE_STATUS = time();
                 if ($model->update()) {
                     if ($count == 0) {
                         $firstAnswermodel = $answer;
                     }
                     $count++;
                     $links[] = CHtml::link($model->ADDRESS, array('view', 'id' => $model->ID));
                     if (!$holes) {
                         $this->redirect(array('view', 'id' => $model->ID));
                     }
                 }
             }
         } else {
             if (!$answer->isNewRecord) {
                 $answer->results = CHtml::listData($answer->results, 'id', 'id');
             }
         }
     }
     if ($holes && $count) {
         if ($count) {
             Yii::app()->user->setFlash('user', 'Успешная загрузка ответа ГИБДД на ямы: <br/>' . implode('<br/>', $links) . '<br/><br/><br/>');
         } else {
             Yii::app()->user->setFlash('user', 'Произошла ошибка! Ни одного ответа не загружено');
         }
         $this->redirect(array('personal'));
     }
     // Uncomment the following line if AJAX validation is needed
     // $this->performAjaxValidation($model);
     $cs = Yii::app()->getClientScript();
     $cs->registerCssFile('/css/add_form.css');
     $cs->registerScriptFile('http://api-maps.yandex.ru/1.1/index.xml?key=' . $this->mapkey);
     $this->flushUploadDir();
     $this->render('gibddreply', array('models' => $models, 'answer' => $answer, 'jsplacemarks' => ''));
 }
Example #5
0
 public function getAllAnswers()
 {
     return HoleAnswers::model()->with('request')->findAll(array('condition' => 'request.hole_id=' . $this->ID . ' AND request.id=t.request_id', 'order' => 't.date ASC'));
 }