/** * Updates an existing Cals model. * If update is successful, the browser will be redirected to the 'view' page. * @param integer $id * @return mixed */ public function actionUpdate($id) { $model = $this->findModel($id); $modelsCalitems = $model->calitem; if ($model->load(Yii::$app->request->post()) && $model->save()) { $oldIDs = ArrayHelper::map($modelsCalitems, 'id', 'id'); $modelsCalitems = Model::createMultiple(Calitems::classname(), $modelsCalitems); Model::loadMultiple($modelsCalitems, Yii::$app->request->post()); $deletedIDs = array_diff($oldIDs, array_filter(ArrayHelper::map($modelsCalitems, 'id', 'id'))); $valid = $model->validate(); $valid = Model::validateMultiple($modelsCalitems) && $valid; if ($valid) { $transaction = \Yii::$app->db->beginTransaction(); try { if ($flag = $model->save(false)) { if (!empty($deletedIDs)) { Calitems::deleteAll(['id' => $deletedIDs]); } foreach ($modelsCalitems as $modelCalitems) { $modelCalitems->cal_id = $model->id; if (!($flag = $modelCalitems->save(false))) { $transaction->rollBack(); break; } } } if ($flag) { $transaction->commit(); return $this->redirect(['view', 'id' => $model->id]); } } catch (Exception $e) { $transaction->rollBack(); } } } else { return $this->render('update', ['model' => $model, 'modelsCalitems' => empty($modelsCalitems) ? [new Calitems()] : $modelsCalitems]); } }
public function actionUpdateD($id) { $modelTransaksi = $this->findModel($id); $modelsTransaksiItem = $modelTransaksi->addresses; if ($modelTransaksi->load(Yii::$app->request->post())) { $oldIDs = ArrayHelper::map($modelsTransaksiItem, 'id', 'id'); $modelsTransaksiItem = Model::createMultiple(TransaksiItem::classname(), $modelsTransaksiItem); Model::loadMultiple($modelsTransaksiItem, Yii::$app->request->post()); $deletedIDs = array_diff($oldIDs, array_filter(ArrayHelper::map($modelsTransaksiItem, 'id', 'id'))); // ajax validation if (Yii::$app->request->isAjax) { Yii::$app->response->format = Response::FORMAT_JSON; return ArrayHelper::merge(ActiveForm::validateMultiple($modelsTransaksiItem), ActiveForm::validate($modelTransaksi)); } // validate all models $valid = $modelTransaksi->validate(); $valid = Model::validateMultiple($modelsTransaksiItem) && $valid; if ($valid) { $transaction = \Yii::$app->db->beginTransaction(); try { if ($flag = $modelTransaksi->save(false)) { if (!empty($deletedIDs)) { TransaksiItem::deleteAll(['id' => $deletedIDs]); } foreach ($modelsTransaksiItem as $modelAddress) { $modelAddress->customer_id = $modelTransaksi->id; if (!($flag = $modelAddress->save(false))) { $transaction->rollBack(); break; } } } if ($flag) { $transaction->commit(); return $this->redirect(['view', 'id' => $modelTransaksi->id]); } } catch (Exception $e) { $transaction->rollBack(); } } } return $this->render('_formD', ['modelTransaksi' => $modelTransaksi, 'modelsTransaksiItem' => empty($modelsTransaksiItem) ? [new Address()] : $modelsTransaksiItem]); }
/** * Creates a new Curriculos model. * If creation is successful, the browser will be redirected to the 'view' page. * @return mixed */ public function actionCreate() { $this->layout = 'main-curriculos'; $model = new Curriculos(); $curriculosEndereco = new CurriculosEndereco(); $curriculosFormacao = new CurriculosFormacao(); $modelsComplemento = [new CurriculosComplemento()]; $modelsEmpregos = [new CurriculosEmpregos()]; if (isset($_COOKIE['PHPSESSID']) && !empty($_COOKIE['PHPSESSID'])) { session_id($_COOKIE['PHPSESSID']); } session_start(); //session numero de edital e do id do processo $session = Yii::$app->session; $model->edital = $session["numeroEdital"]; $id = $session["id"]; $model->data = date('Y-m-d H:i:s'); //NÚMERO DE INSCRIÇÃO 'ANO CORRENTE + 000000 + ID DO CANDIDATO' $query_id = "SELECT max(id) as id FROM curriculos LIMIT 1"; $last_id = Curriculos::findBySql($query_id)->all(); foreach ($last_id as $value) { $incremento = $value['id']; $incremento++; } $model->numeroInscricao = date('Y') . '00000' . $incremento; $curriculosEndereco->curriculos_id = $incremento; $curriculosFormacao->curriculos_id = $incremento; //localizando somente os cargos que fazem parte do edital selecionado $cargos = Cargos::find()->innerJoinWith('cargosProcessos')->where(['processo_id' => $id])->AndWhere('cargo_id = idcargo')->all(); //Caso não tenha puxado nenhum edital, será redirecionado para a página de processo seletivo if ($model->edital == NULL) { return $this->redirect('http://www.am.senac.br/trabsenac.php'); } if ($model->load(Yii::$app->request->post()) && $curriculosEndereco->load(Yii::$app->request->post()) && $curriculosFormacao->load(Yii::$app->request->post()) && Model::validateMultiple([$model, $curriculosEndereco, $curriculosFormacao])) { //Calcular a idade do candidato $datetime1 = new \DateTime($model->datanascimento, new \DateTimeZone('UTC')); $datetime2 = new \DateTime(); $diff = $datetime1->diff($datetime2); $model->idade = $diff->y; $model->save(false); // skip validation as model is already validated $curriculosEndereco->curriculos_id = $model->id; $curriculosFormacao->curriculos_id = $model->id; $curriculosEndereco->save(false); $curriculosFormacao->save(false); //ENVIA E-MAIL DA INSCRIÇÃO PARA O CANDIDATO Yii::$app->mailer->compose()->setFrom(['*****@*****.**' => 'Processo Seletivo - Senac AM'])->setTo($model->email)->setSubject('Inscrição para o Edital: ' . $model->edital)->setTextBody('Prezado Candidato, confirmamos o envio de seu currículo para concorrer a vaga de ' . $model->cargo . ' para o Edital ' . $model->edital . ' ')->setHtmlBody("Prezado Senhor(a), <strong>" . $model->nome . "</strong><br><br>" . "Recebemos a sua inscrição em nosso processo de seleção com sucesso para o Edital: <strong>" . $model->edital . " </strong>e pedimos que acompanhe em nosso site o resultado das próximas etapas.<br><br>" . "<strong><font color='red'><center>NÃO RESPONDA A ESSE E-MAIL!!!!</center></font></strong><br><br>" . "<strong>INFORMAÇÕES GERAIS</STRONG><br><br>" . "<strong>Número de Inscrição: </strong><font color='red'>" . $model->numeroInscricao . "</font><br><br>" . "<strong>Data do envio: </strong> " . $model->data . "<br>" . "<strong>Processo Seletivo: </strong> " . $model->edital . "<br>" . "<strong>Cargo: </strong> " . $model->cargo . "<br><br>")->send(); //Inserir vários cursos complementares $modelsComplemento = Model::createMultiple(CurriculosComplemento::classname()); Model::loadMultiple($modelsComplemento, Yii::$app->request->post()); //Inserir vários emprgos anteriores $modelsEmpregos = Model::createMultiple(CurriculosEmpregos::classname()); Model::loadMultiple($modelsEmpregos, Yii::$app->request->post()); // validate all models $valid = $model->validate(); $valid = Model::validateMultiple($modelsComplemento) && $valid; $valid2 = $model->validate(); $valid_empregos = Model::validateMultiple($modelsEmpregos) && $valid2; if ($valid && $valid_empregos) { $transaction = \Yii::$app->db->beginTransaction(); try { if ($flag = $model->save(false)) { foreach ($modelsComplemento as $modelComplemento) { //cursos complementares $modelComplemento->curriculos_id = $model->id; if (!($flag = $modelComplemento->save(false))) { $transaction->rollBack(); break; } } foreach ($modelsEmpregos as $modelEmpregos) { //empregos anteriores $modelEmpregos->curriculos_id = $model->id; if (!($flag = $modelEmpregos->save(false))) { $transaction->rollBack(); break; } } } if ($flag) { $transaction->commit(); return $this->redirect('http://www.am.senac.br/trabsenac_success.php'); } } catch (Exception $e) { $transaction->rollBack(); } } return $this->redirect('http://www.am.senac.br/trabsenac_success.php'); } else { return $this->render('create', ['model' => $model, 'cargos' => $cargos, 'curriculosEndereco' => $curriculosEndereco, 'curriculosFormacao' => $curriculosFormacao, 'modelsComplemento' => empty($modelsComplemento) ? [new CurriculosComplemento()] : $modelsComplemento, 'modelsEmpregos' => empty($modelsEmpregos) ? [new CurriculosEmpregos()] : $modelsEmpregos]); } }
/** * Updates an existing Tour model. * If update is successful, the browser will be redirected to the 'view' page. * @param integer $id * @return mixed */ public function actionUpdate($id) { $model = $this->findModel($id); $modelsCustomField = $model->customFields; if ($model->load(Yii::$app->request->post())) { $oldIDs = ArrayHelper::map($modelsCustomField, 'id', 'id'); $modelsCustomField = Model::createMultiple(CustomField::classname(), $modelsCustomField); Model::loadMultiple($modelsCustomField, Yii::$app->request->post()); $deletedIDs = array_diff($oldIDs, array_filter(ArrayHelper::map($modelsCustomField, 'id', 'id'))); // ajax validation if (Yii::$app->request->isAjax) { Yii::$app->response->format = Response::FORMAT_JSON; return ArrayHelper::merge(ActiveForm::validateMultiple($modelsCustomField), ActiveForm::validate($model)); } // validate all models $valid = $model->validate(); $valid = Model::validateMultiple($modelsCustomField) && $valid; if ($valid) { $transaction = \Yii::$app->db->beginTransaction(); try { if ($flag = $model->save(false)) { if (!empty($deletedIDs)) { CustomField::deleteAll(['id' => $deletedIDs]); } foreach ($modelsCustomField as $modelCustomField) { $modelCustomField->tour_id = $model->id; if (!($flag = $modelCustomField->save(false))) { $transaction->rollBack(); break; } } } if ($flag) { $transaction->commit(); return $this->redirect(['view', 'id' => $model->id]); } } catch (Exception $e) { $transaction->rollBack(); } } } return $this->render('update', ['model' => $model, 'modelsCustomField' => empty($modelsCustomField) ? [new CustomField()] : $modelsCustomField]); }
/** * Updates an existing Purchase model. * If update is successful, the browser will be redirected to the 'view' page. * @param integer $id * @return mixed */ public function actionUpdate($id) { $model = $this->findModel($id); $modelDetails = $model->getPurchasesDetails()->all(); if ($model->load(Yii::$app->request->post())) { $oldModelDetails = array(); foreach ($modelDetails as $modelDetail) { $oldModelDetails[$modelDetail->id] = ['item_id' => $modelDetail->item_id, 'quantity' => $modelDetail->quantity]; } $oldIDs = ArrayHelper::map($modelDetails, 'id', 'id'); $modelDetails = Model::createMultiple(PurchaseDetail::classname(), $modelDetails); Model::loadMultiple($modelDetails, Yii::$app->request->post()); $deletedIDs = array_diff($oldIDs, array_filter(ArrayHelper::map($modelDetails, 'id', 'id'))); // validate all models $valid = $model->validate() & Model::validateMultiple($modelDetails); if ($valid) { $transaction = \Yii::$app->db->beginTransaction(); try { if ($flag = $model->save(false)) { if (!empty($deletedIDs)) { $flag = PurchaseDetail::deleteAll(['id' => $deletedIDs]) > 0; if ($flag) { foreach ($deletedIDs as $id) { $item = Item::findOne($oldModelDetails[$id]['item_id']); $item->stock -= $oldModelDetails[$id]['quantity']; if (!($flag = $item->save())) { $transaction->rollBack(); break; } } } else { $transaction->rollBack(); } } if ($flag) { foreach ($modelDetails as $modelDetail) { $quantity = $modelDetail->quantity; if (!empty($modelDetail->id) && $modelDetail->item_id == $oldModelDetails[$modelDetail->id]['item_id']) { $quantity -= $oldModelDetails[$modelDetail->id]['quantity']; } $modelDetail->purchase_id = $model->id; if (($flag = $modelDetail->save(false)) && $quantity !== 0) { $item = Item::findOne($modelDetail->item_id); $item->stock += $quantity; $flag = $item->save(); } if (!$flag) { $transaction->rollBack(); break; } } } } if ($flag) { $transaction->commit(); return $this->redirect(['index']); } } catch (Exception $e) { $transaction->rollBack(); } } } return $this->render('update', ['model' => $model, 'modelDetails' => empty($modelDetails) ? [new PurchaseDetail()] : $modelDetails]); }
/** * Updates an existing RceExamen model. * If update is successful, the browser will be redirected to the 'view' page. * @param integer $id * @return mixed */ public function actionUpdate($id) { $model = $this->findModel($id); $modelsPago = $model->pagos; $modelsBitacora = $model->bitacoras; $modelsExamenes = $model->rceExamenExamens; foreach ($modelsExamenes as $modelExamen) { $examen = Examen::find()->where(['id' => $modelExamen->examen_id])->one(); $modelExamen->descripcion = $examen->descripcion; $modelExamen->observaciones = $examen->observaciones; } if ($model->load(Yii::$app->request->post())) { $oldIDsPago = ArrayHelper::map($modelsPago, 'id', 'id'); $modelsPago = Model::createMultiple(Pago::classname(), $modelsPago); Model::loadMultiple($modelsPago, Yii::$app->request->post()); $deletedIDsPago = array_diff($oldIDsPago, array_filter(ArrayHelper::map($modelsPago, 'id', 'id'))); $oldIDsExamen = ArrayHelper::map($modelsExamenes, 'id', 'id'); $modelsExamenes = Model::createMultiple(Examen::classname(), $modelsExamenes); Model::loadMultiple($modelsExamenes, Yii::$app->request->post()); $deletedIDsExamen = array_diff($oldIDsExamen, array_filter(ArrayHelper::map($modelsExamenes, 'id', 'id'))); // validate all models $valid = $model->validate(); $valid = Model::validateMultiple($modelsPago) && $valid; $valid = Model::validateMultiple($modelsBitacora) && $valid; $valid = Model::validateMultiple($modelsExamenes) && $valid; if ($valid) { $transaction = \Yii::$app->db->beginTransaction(); try { if ($flag = $model->save(false)) { if (!empty($deletedIDsPago)) { Pago::deleteAll(['id' => $deletedIDsPago]); } else { if (!empty($deletedIDsBitacora)) { Bitacora::deleteAll(['id' => $deletedIDsBitacora]); } else { if (!empty($deletedIDsREE)) { RceExamenExamen::deleteAll(['id' => $deletedIDsREE]); } } } foreach ($modelsPago as $modelPago) { $modelPago->rce_examen_id = $model->id; if (!($flag = $modelPago->save(false))) { $transaction->rollBack(); break; } } foreach ($modelsBitacora as $modelBitacora) { $modelBitacora->rce_examen_id = $model->id; if (!($flag = $modelBitacora->save(false))) { $transaction->rollBack(); break; } } $reserva = Reserva::find()->where(['id' => $model->reserva_id])->one(); $hora = Hora::find()->where(['id' => $reserva->hora_medica_id])->one(); $examenes = HoraExamenSolicitado::find()->where(['hora_id' => $hora->id])->all(); for ($i = 0; $i < count($examenes); ++$i) { $examen = Examen::find()->where(['id' => $examenes[$i]->examen_id])->one(); $modelsExamenes[$i] = new RceExamenExamen(); $modelsExamenes[$i]->rce_examen_id = $model->id; $modelsExamenes[$i]->examen_id = $examenes[$i]->examen_id; $modelsExamenes[$i]->monto_a_pagar = $examen->monto; if (!($flag = $modelsExamenes[$i]->save(false))) { $transaction->rollBack(); break; } } } if ($flag) { $transaction->commit(); return $this->redirect(['view', 'id' => $model->id]); } } catch (Exception $e) { $transaction->rollBack(); } } } return $this->render('update', ['model' => $model, 'modelsPago' => empty($modelsPago) ? [new Pago()] : $modelsPago, 'modelsBitacora' => empty($modelsBitacora) ? [new Bitacora()] : $modelsBitacora, 'modelsExamenes' => empty($modelsExamenes) ? [new RceExamenExamen()] : $modelsExamenes]); }
/** * Updates an existing Client model. * If update is successful, the browser will be redirected to the 'view' page. * @param integer $id * @return mixed */ public function actionUpdate($id) { $modelClient = Client::findOne($id); $modelsOrder = Order::findAll(['id_client' => $modelClient->id]); if (Yii::$app->request->post() && $modelClient->load(Yii::$app->request->post())) { $oldIDs = ArrayHelper::map($modelsOrder, 'id', 'id'); $modelsOrder = Model::createMultiple(Order::classname(), $modelsOrder); Model::loadMultiple($modelsOrder, Yii::$app->request->post()); $deletedIDs = array_diff($oldIDs, array_filter(ArrayHelper::map($modelsOrder, 'id', 'id'))); // validate all models $valid = $modelClient->validate(); $valid = Model::validateMultiple($modelsOrder) && $valid; if ($valid) { $transaction = \Yii::$app->db->beginTransaction(); try { if ($flag = $modelClient->save(false)) { if (!empty($deletedIDs)) { Order::deleteAll(['id' => $deletedIDs]); } foreach ($modelsOrder as $modelOrder) { $modelOrder->id_client = $modelClient->id; if (!($flag = $modelOrder->save(false))) { $transaction->rollBack(); break; } } } if ($flag) { $transaction->commit(); return $this->redirect(['view', 'id' => $modelClient->id]); } } catch (Exception $e) { $transaction->rollBack(); } } } return $this->render('update', ['modelClient' => $modelClient, 'modelsOrder' => empty($modelsOrder) ? [new Order()] : $modelsOrder]); }
/** * Updates an existing Monitoring1 model. * If update is successful, the browser will be redirected to the 'view' page. * @param integer $id * @return mixed */ public function actionUpdate($id) { $model = $this->findModel($id); $modelsStr = $model->mon1str; if (!Yii::$app->user->can('admin')) { if ($model->user_id != Yii::$app->user->id) { $this->redirect(['index']); } } if (!Yii::$app->user->can('admin')) { if ($model->status == 1) { $this->redirect(['index']); } } $months = Month::find()->all(); $years = Year::find()->all(); // $model->user_id = Yii::$app->user->id; if ($model->load(Yii::$app->request->post())) { $model->date = date('Y-m-d', strtotime($model->date)); if (!Monitoring1::find()->where(['date' => $model->date, 'user_id' => Yii::$app->user->id])->one()) { if ($model->save()) { $oldIDs = ArrayHelper::map($modelsStr, 'id', 'id'); $modelsStr = Model::createMultiple(Mon1str::classname(), $modelsStr); Model::loadMultiple($modelsStr, Yii::$app->request->post()); $deletedIDs = array_diff($oldIDs, array_filter(ArrayHelper::map($modelsStr, 'id', 'id'))); // ajax validation if (Yii::$app->request->isAjax) { Yii::$app->response->format = Response::FORMAT_JSON; return ArrayHelper::merge(ActiveForm::validateMultiple($modelsStr), ActiveForm::validate($model)); } // validate all models $valid = $model->validate(); $valid = Model::validateMultiple($modelsStr) && $valid; if ($valid) { $transaction = \Yii::$app->db->beginTransaction(); try { if ($flag = $model->save(false)) { if (!empty($deletedIDs)) { Mon1str::deleteAll(['id' => $deletedIDs]); } foreach ($modelsStr as $modelStr) { $modelStr->monitoring1_id = $model->id; if (!($flag = $modelStr->save(false))) { $transaction->rollBack(); break; } } } if ($flag) { $transaction->commit(); return $this->redirect(['view', 'id' => $model->id]); } } catch (Exception $e) { $transaction->rollBack(); } } } } } return $this->render('update', ['model' => $model, 'months' => $months, 'years' => $years, 'modelsStr' => empty($modelsStr) ? [new Mon1str()] : $modelsStr]); }
/** * Updates an existing Reserva model. * If update is successful, the browser will be redirected to the 'view' page. * @param integer $id * @return mixed */ public function actionUpdate($id) { $model = $this->findModel($id); $modelHora = $model->horaMedica; $modelsExamen = $modelHora->horaExamenSolicitados; if ($model->load(Yii::$app->request->post()) && $modelHora->load(Yii::$app->request->post())) { $oldIDHora = ArrayHelper::map($modelHora, 'id', 'id'); $modelHora = new Hora(); Model::load($modelHora, Yii::$app->request->post()); $deletedIDHora = array_diff($oldIDHora, array_filter(ArrayHelper::map($modelHora, 'id', 'id'))); $oldIDsExamen = ArrayHelper::map($modelsExamen, 'id', 'id'); $modelsExamen = Model::createMultiple(Pago::classname(), $modelsExamen); Model::loadMultiple($modelsExamen, Yii::$app->request->post()); $deletedIDsExamen = array_diff($oldIDsExamen, array_filter(ArrayHelper::map($modelsExamen, 'id', 'id'))); $valid = $model->validate(); $valid = $modelHora->validate(); $valid = Model::validateMultiple($modelsExamen) && $valid; if ($valid) { $transaction = \Yii::$app->db->beginTransaction(); try { if ($flag = $model->save(false)) { if (!empty($deletedIDHora)) { Hora::deleteAll(['id' => $deletedIDHora]); } else { if (!empty($deletedIDsExamen)) { HoraExamenSolicitado::deleteAll(['id' => $deletedIDsExamen]); } } foreach ($modelsExamen as $modelExamen) { $modelExamen->hora_id = $model->hora_medica_id; if (!($flag = $modelExamen->save(false))) { $transaction->rollBack(); break; } } } if ($flag) { $transaction->commit(); return $this->redirect(['view', 'id' => $model->id]); } } catch (Exception $e) { $transaction->rollBack(); } } } return $this->render('update', ['model' => $model, 'modelHora' => $modelHora, 'modelsExamen' => empty($modelsExamen) ? [new HoraExamenSolicitado()] : $modelsExamen]); }
/** * Updates an existing Subscriber model. * If update is successful, the browser will be redirected to the 'view' page. * @param integer $id * @return mixed */ public function actionUpdate($id) { $model = $this->findModel($id); $modelsPhone = $model->phones; if ($model->load(Yii::$app->request->post())) { $oldIDs = ArrayHelper::map($modelsPhone, 'id', 'id'); $modelsPhone = Model::createMultiple(Phone::classname(), $modelsPhone); Model::loadMultiple($modelsPhone, Yii::$app->request->post()); $deletedIDs = array_diff($oldIDs, array_filter(ArrayHelper::map($modelsPhone, 'id', 'id'))); // validate all models $valid = $model->validate(); $valid = Model::validateMultiple($modelsPhone) && $valid; if ($valid) { $transaction = \Yii::$app->db->beginTransaction(); try { if ($flag = $model->save(false)) { if (!empty($deletedIDs)) { Phone::deleteAll(['id' => $deletedIDs]); } foreach ($modelsPhone as $modelPhone) { $modelPhone->subscriber_id = $model->id; if (!($flag = $modelPhone->save(false))) { $transaction->rollBack(); break; } } } if ($flag) { $transaction->commit(); return $this->redirect(['view', 'id' => $model->id]); } } catch (Exception $e) { $transaction->rollBack(); } } } return $this->render('update', ['model' => $model, 'modelsPhone' => empty($modelsPhone) ? [new Phone()] : $modelsPhone]); }
/** * Updates an existing Usuario model. * If update is successful, the browser will be redirected to the 'view' page. * @param integer $id * @return mixed */ public function actionUpdate($id) { $user = new Usuario(); $user = $this->findModel($id); $modelsConocimientos = $user->conocimientos; $modelsConocimientos = Conocimiento::find()->where(['id_conocimiento' => $user->id_usuario])->all(); $institucion = ArrayHelper::map(Institucion::find()->all(), 'id_institucion', 'nombre'); $cont = Contacto::find()->where(['id_contacto' => $user->id_usuario])->one(); $dir = Direccion::find()->where(['id_direccion' => $user->id_usuario])->one(); $repr = Representante::find()->where(['id_representante' => $user->id_usuario])->one(); if ($user->load(Yii::$app->request->post()) && $cont->load(Yii::$app->request->post()) && $dir->load(Yii::$app->request->post()) && $repr->load(Yii::$app->request->post())) { $oldIDs = ArrayHelper::map($modelsConocimientos, 'id', 'id'); $modelsConocimientos = Model::createMultiple(Conocimiento::classname(), $modelsConocimientos); Model::loadMultiple($modelsConocimientos, Yii::$app->request->post()); $deletedIDs = array_diff($oldIDs, array_filter(ArrayHelper::map($modelsConocimientos, 'id_conocimiento', 'id_conocimiento'))); if (Yii::$app->request->isAjax) { Yii::$app->response->format = Response::FORMAT_JSON; return ArrayHelper::merge(ActiveForm::validateMultiple($modelsConocimientos), ActiveForm::validate($user)); } // validate all models $valid = $user->validate(); $valid = Model::validateMultiple($modelsConocimientos) && $valid; if ($valid) { $transaction = \Yii::$app->db->beginTransaction(); try { if ($flag = $user->save(false)) { if (!empty($deletedIDs)) { Conocimiento::deleteAll(['id' => $deletedIDs]); } foreach ($modelsConocimientos as $modelConocimientos) { $modelConocimientos->Usuarioid_usuario = $user->id_usuario; if (!($flag = $modelConocimientos->save(false))) { $transaction->rollBack(); break; } } } if ($flag) { $transaction->commit(); return $this->redirect(['view', 'id' => $user->id_usuario]); } } catch (Exception $e) { $transaction->rollBack(); } } if ($repr->save() && $cont->save() && $dir->save()) { return $this->redirect(['view', 'id' => $user->id_usuario]); } else { return $this->redirect(['index', 'id' => $user->id_usuario]); } } else { return $this->render('update', ['user' => $user, 'cont' => $cont, 'dir' => $dir, 'repr' => $repr, 'institucion' => $institucion, 'modelsConocimientos' => empty($modelsConocimientos) ? [new Conocimiento()] : $modelsConocimientos]); } }