public function actionCreate() { $model = new TrMat(); $Mattraffic = new Mattraffic(); $mattraffic_number_max = NULL; // Если форма отправлена на сервер, получаем выбранную материальную ценность $id_mattraffic = isset(Yii::$app->request->post('TrMat')['id_mattraffic']) ? Yii::$app->request->post('TrMat')['id_mattraffic'] : ''; $transaction = Yii::$app->db->beginTransaction(); try { // Если форма отправлена на сервер, то создать запись перемещения мат цен-ти в mattraffic if (!empty($id_mattraffic)) { $Mattrafficcurrent = Mattraffic::findOne($id_mattraffic); $Mattraffic->attributes = $Mattrafficcurrent->attributes; $Mattraffic->mattraffic_date = date('Y-m-d'); $Mattraffic->mattraffic_number = isset(Yii::$app->request->post('Mattraffic')['mattraffic_number']) ? Yii::$app->request->post('Mattraffic')['mattraffic_number'] : NULL; $Mattraffic->mattraffic_tip = 4; if (isset($Mattraffic->scenarios()['trafficmat'])) { $Mattraffic->scenario = 'trafficmat'; } if ($Mattraffic->validate()) { $Mattraffic->save(false); $model->load(Yii::$app->request->post()); $model->id_mattraffic = $Mattraffic->mattraffic_id; } //Акт установки уже создан и берется из URL параметра $model->id_installakt = (string) filter_input(INPUT_GET, 'idinstallakt'); } // Сохраняем модель с отправленными данными и сохраненным mattraffic if (!$Mattraffic->isNewRecord && $model->save()) { $transaction->commit(); return $this->redirect(Proc::GetPreviousURLBreadcrumbsFromSession()); } else { /* // Очистить ошибку id_mattraffic, если есть ошибка по mattraffic_number (Превышено допустимое кол-во для перемещения матер. цен-ти) if (isset($Mattraffic->errors['mattraffic_number'])) $model->clearErrors('id_mattraffic'); */ $transaction->rollBack(); return $this->render('create', ['model' => $model, 'Mattraffic' => $Mattraffic, 'mattraffic_number_max' => $mattraffic_number_max]); } } catch (Exception $e) { $transaction->rollBack(); throw new Exception($e->getMessage()); } }