public function actionEgresoGrupal() { // chequea que se haya elegido un porton, sino es asi se redirecciona a la eleccion de porton if (!\Yii::$app->session->get('porton')) { // se setea returnUrl para que funcione el goBack en portones/elegir (parecido a lo que hace login()) //Yii::$app->user->setReturnUrl(Yii::$app->urlManager->createUrl(['accesos/egreso'])); return $this->redirect(['portones/elegir', 'backUrl' => 'accesos/egreso-grupal']); } $searchModel = new AccesosSearch(); // para mejorar los tiempos se proponen las fechas desde y hasta, el usuario las puede cambiar if (!\Yii::$app->session->get('accesosFecDesdeF') || !\Yii::$app->session->get('accesosFecHastaF')) { $fecUltAcc = Accesos::find()->max('ing_fecha'); if (!\Yii::$app->session->get('accesosFecDesdeF')) { $d = \Yii::$app->params['filtroConsAccesosDias']; $f = date('Y-m-d', strtotime('-' . $d . ' days', strtotime($fecUltAcc))); \Yii::$app->session->set('accesosFecDesdeF', $f); } if (!\Yii::$app->session->get('accesosFecHastaF')) { \Yii::$app->session->set('accesosFecHastaF', $fecUltAcc); } } if (isset($_POST['keylist'])) { $keys = $_POST['keylist']; \Yii::$app->response->format = 'json'; if (!is_array($keys)) { return ['status' => 'error']; } if (count($keys) == 0) { return ['status' => 'error']; } // Para que coincidan las fechas y horas en todos los registros se utilizan variables auxiliares antes de grabar $fecAux = date("Y-m-d"); $horAux = new Expression('CURRENT_TIMESTAMP'); $transaction = Yii::$app->db->beginTransaction(); try { foreach ($keys as $m) { $model = Accesos::findOne($m); $model->egr_id_vehiculo = $model->ing_id_vehiculo; $model->egr_fecha = $fecAux; $model->egr_hora = $horAux; $model->egr_id_porton = \Yii::$app->session->get('porton'); $model->egr_id_user = \Yii::$app->user->identity->id; $model->save(); } $transaction->commit(); } catch (\Exception $e) { $transaction->rollBack(); throw $e; } // try..catch return ['status' => 'success']; } $dataProvider = $searchModel->search(Yii::$app->request->queryParams, false); return $this->render('consegrgrupal', ['searchModel' => $searchModel, 'dataProvider' => $dataProvider, 'consulta' => false]); }