public function actionCheckstreets() { if (Yii::$app->request->isAjax) { $city_AOGUID = Yii::$app->request->post('city_AOGUID'); if (!empty($city_AOGUID)) { echo Fias::Checkstreets($city_AOGUID); } } }
public function actionUpdate($id, $patienttype) { $dopparams = ['dopparams' => []]; $model = $this->findModel($id); $modelloaded = $model->load(Yii::$app->request->post()); $GlaukuchetIsNew = false; // Адрес $Fias = new Fias(); // отправлена форма if (isset($_POST['Fias']['AOGUID']) && Yii::$app->user->can('GlaukOperatorPermission')) { // город не заполнен if (empty($_POST['Fias']['AOGUID'])) { $model->id_fias = NULL; $model->patient_dom = NULL; $model->patient_korp = NULL; $model->patient_kvartira = NULL; } else { // город заполнен (Если улица есть, иначе Если улицы нет) $Fias->AOGUID = $_POST['Fias']['AOGUID']; // Если есть улицы $model->id_fias = Fias::Checkstreets($_POST['Fias']['AOGUID']) > 0 ? $_POST['Patient']['id_fias'] : Fias::findOne($_POST['Fias']['AOGUID'])->AOGUID; $model->scenario = 'streetrequired'; // Адрес обязателен } } elseif (!empty($model->id_fias)) { // просто загрузка страницы, если адрес заполнен $address = Fias::findOne($model->id_fias); // Если адрес Улица, иначе Если адрес поселок без улиц $Fias = $address->AOLEVEL == 7 ? Fias::findOne($address->PARENTGUID) : $address; } if ($patienttype === 'glauk' && Yii::$app->user->can('GlaukUserPermission')) { $dopparams['dopparams']['DisableElements'] = !Yii::$app->user->can('GlaukOperatorPermission'); $Glaukuchet = Glaukuchet::findOne(['id_patient' => $model->primaryKey]); if (empty($Glaukuchet)) { $Glaukuchet = new Glaukuchet(); $Glaukuchet->id_patient = $model->primaryKey; $GlaukuchetIsNew = true; } $dopparams['dopparams']['Glaukuchet'] = $Glaukuchet; if (!$Glaukuchet->isNewRecord && Yii::$app->user->can('GlaukOperatorPermission')) { $Glprep = new Glprep(); $Glprep->load(Yii::$app->request->get(), 'Glprep'); $Glprep->id_glaukuchet = $Glaukuchet->primaryKey; if ($Glprep->validate()) { $Glprep->save(false); } } $searchModelglprep = new GlprepSearch(); $dataProviderglprep = $searchModelglprep->search(Yii::$app->request->queryParams); $dopparams['dopparams']['Glprep'] = $Glprep; $dopparams['dopparams']['searchModelglprep'] = $searchModelglprep; $dopparams['dopparams']['dataProviderglprep'] = $dataProviderglprep; } $Fias->scenario = 'citychooserequired'; // Адрес обязателен if (Yii::$app->user->can('GlaukOperatorPermission')) { $transaction = Yii::$app->db->beginTransaction(); try { if ($patienttype === 'glauk' && $modelloaded && $Glaukuchet->load(Yii::$app->request->post()) && Model::validateMultiple([$model, $Glaukuchet, $Fias])) { $model->save(false); $Glaukuchet->save(false); $transaction->commit(); if ($GlaukuchetIsNew) { return $this->render('update', array_merge(['model' => $model, 'Fias' => $Fias, 'patienttype' => $patienttype], $dopparams)); } else { return $this->redirect(Proc::GetPreviousURLBreadcrumbsFromSession()); } } else { // Откатываем транзакцию $transaction->rollBack(); return $this->render('update', array_merge(['model' => $model, 'Fias' => $Fias, 'patienttype' => $patienttype], $dopparams)); } } catch (Exception $e) { $transaction->rollBack(); throw new Exception($e->getMessage()); } } elseif (Yii::$app->user->can('GlaukUserPermission')) { return $this->render('update', array_merge(['model' => $model, 'Fias' => $Fias, 'patienttype' => $patienttype], $dopparams)); } }