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} ям."; }
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); }
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)); }
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' => '')); }
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')); }