public static function formateaAutorizanteSelect2($id, $es_por_nro) { $aut = Autorizantes::findOne($id); //$p=Personas::findOne($id); if ($es_por_nro) { $r = $aut->id_uf . ' ' . $aut->persona->apellido . ' ' . $aut->persona->nombre . ' ' . $aut->persona->nombre2; } else { $r = $aut->persona->apellido . ' ' . $aut->persona->nombre . ' ' . $aut->persona->nombre2 . ' ' . $aut->id_uf; } return $r; }
public function actionChange() { $model = new RangoPersonas(); $listaCambios = ''; if ($model->load(Yii::$app->request->post()) && $model->validate()) { // Comienza Transaccion $transaction = Yii::$app->db->beginTransaction(); try { $c = Accesos::updateAll(['id_persona' => $model->idPersonaHasta], ['id_persona' => $model->idPersonaDesde]); if ($c > 0) { $listaCambios .= '<p><i>Accesos:</i> cantidad de cambios realizados -> ' . $c . '</p>'; } $c = AccesosAutorizantes::updateAll(['id_persona' => $model->idPersonaHasta], ['id_persona' => $model->idPersonaDesde]); if ($c > 0) { $listaCambios .= '<p><i>Accesos (autorizantes):</i> cantidad de cambios realizados -> ' . $c . '</p>'; } $c = Autorizantes::updateAll(['id_persona' => $model->idPersonaHasta], ['id_persona' => $model->idPersonaDesde]); if ($c > 0) { $listaCambios .= '<p><i>Autorizantes:</i> cantidad de cambios realizados -> ' . $c . '</p>'; } $c = Llaves::updateAll(['id_persona' => $model->idPersonaHasta], ['id_persona' => $model->idPersonaDesde]); if ($c > 0) { $listaCambios .= '<p><i>Llaves (personas):</i> cantidad de cambios realizados -> ' . $c . '</p>'; } $c = Llaves::updateAll(['id_autorizante' => $model->idPersonaHasta], ['id_persona' => $model->idPersonaDesde]); if ($c > 0) { $listaCambios .= '<p><i>Llaves (autorizantes):</i> cantidad de cambios realizados -> ' . $c . '</p>'; } $c = Mensajes::updateAll(['model_id' => $model->idPersonaHasta], ['model_id' => $model->idPersonaDesde, 'model' => 'frontend\\models\\Personas']); if ($c > 0) { $listaCambios .= '<p><i>Mensajes:</i> cantidad de cambios realizados -> ' . $c . '</p>'; } $c = UfTitularidadPersonas::updateAll(['id_persona' => $model->idPersonaHasta], ['id_persona' => $model->idPersonaDesde]); if ($c > 0) { $listaCambios .= '<p><i>Titularidad:</i> cantidad de cambios realizados -> ' . $c . '</p>'; } if ($listaCambios == '') { $listaCambios = '<p>No se ha realizado ningún cambio. Controle los IDs de personas utilizados.</p>'; } $transaction->commit(); } catch (\Exception $e) { $transaction->rollBack(); Yii::$app->session->addFlash('danger', 'Hubo un error en la grabación'); throw $e; } // try..catch } return $this->render('change', ['model' => $model, 'listaCambios' => $listaCambios]); }
/** * Creates data provider instance with search query applied * * @param array $params * * @return ActiveDataProvider */ public function search($params) { $query = Autorizantes::find()->joinWith('persona'); $pageSize = isset($_GET['per-page']) ? $_GET['per-page'] : \Yii::$app->params['autorizantes.defaultPageSize']; $dataProvider = new ActiveDataProvider(['query' => $query, 'pagination' => ['pageSize' => $pageSize], 'sort' => ['defaultOrder' => ['id_uf' => SORT_ASC], 'enableMultiSort' => false]]); // Agregado a mano, para que incluya el ordenamiento por tipo de documento $dataProvider->sort->attributes['apellido'] = ['asc' => ['personas.apellido' => SORT_ASC], 'desc' => ['personas.apellido' => SORT_DESC]]; $dataProvider->sort->attributes['nombre'] = ['asc' => ['personas.nombre' => SORT_ASC], 'desc' => ['personas.nombre' => SORT_DESC]]; $dataProvider->sort->attributes['nombre2'] = ['asc' => ['personas.nombre2' => SORT_ASC], 'desc' => ['personas.nombre2' => SORT_DESC]]; $dataProvider->sort->attributes['nro_doc'] = ['asc' => ['personas.nro_doc' => SORT_ASC], 'desc' => ['personas.nro_doc' => SORT_DESC]]; $this->load($params); if (!$this->validate()) { // uncomment the following line if you do not want to return any records when validation fails $query->where('0=1'); return $dataProvider; } $query->andFilterWhere(['id' => $this->id, 'id_uf' => $this->id_uf, 'id_persona' => $this->id_persona]); $query->andFilterWhere(['like', 'apellido', $this->apellido])->andFilterWhere(['like', 'nombre', $this->nombre])->andFilterWhere(['like', 'nombre2', $this->nombre2])->andFilterWhere(['like', 'nro_doc', $this->nro_doc]); return $dataProvider; }
public function actionIngreso($diferido = false) { // 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/ingreso'])); return $this->redirect(['portones/elegir', 'backUrl' => 'accesos/ingreso']); } // inicializa modelo $model = new Accesos(); \Yii::$app->session->set('req_seguro', 0); // si viene por POST, es decir, si se intenta grabar if (isset($_POST['Accesos'])) { $model->attributes = $_POST['Accesos']; // setea la variable req_seguro de la sesion de acuerdo al valor del concepto que viene en el POST \Yii::$app->session->set('req_seguro', $model->accesosConcepto->req_seguro); // recupera de la sesion los 3 grupos $sessPersonas = \Yii::$app->session->get('ingpersonas'); $sessVehiculo = \Yii::$app->session->get('ingvehiculos'); $sessAutorizantes = \Yii::$app->session->get('autorizantes'); // se verifica que estén los 3 grupos cargados $rechaza = false; if (!$sessPersonas) { \Yii::$app->session->addFlash('danger', 'Debe especificar al menos una persona'); $rechaza = true; } if (!$sessVehiculo) { \Yii::$app->session->addFlash('danger', 'Debe especificar un vehiculo'); $rechaza = true; } if (!$sessAutorizantes) { \Yii::$app->session->addFlash('danger', 'Debe especificar al menos un autorizante'); $rechaza = true; } if ($sessPersonas) { // verifica los vencimientos de los seguros if ($model->accesosConcepto->req_seguro) { foreach ($sessPersonas as $segIDpersona) { $ps = Personas::findOne($segIDpersona); if (empty($ps->vto_seguro)) { \Yii::$app->session->addFlash('danger', 'Personas sin seguro'); $rechaza = true; break; } if ($this->fecVencida($ps->vto_seguro)) { \Yii::$app->session->addFlash('danger', 'Personas con seguro vencido'); $rechaza = true; break; } } } } if ($diferido) { if (!AccesosAutmanual::periodoManualActivo($model->ing_hora)) { \Yii::$app->session->addFlash('danger', 'Fecha/hora no está dentro de un periodo habilitado'); $rechaza = true; } } if ($rechaza) { // actualiza los 3 grupos en variables que se van a pasar al render // si se modifica, modificar tambien antes del render del final de la funcion $listas = $this->refreshListas(); return $this->render('ingreso', ['model' => $model, 'tmpListas' => $listas, 'diferido' => $diferido]); } // Para que coincidan las fechas y horas en todos los registros se utilizan variables auxiliares antes de grabar if ($diferido) { $fecAux = $model->ing_hora; $horAux = $model->ing_hora; } else { $fecAux = date("Y-m-d"); $horAux = new Expression('CURRENT_TIMESTAMP'); } // Comienza Transaccion $transaction = Yii::$app->db->beginTransaction(); try { foreach ($sessPersonas as $model->id_persona) { foreach ($sessVehiculo as $model->ing_id_vehiculo) { // Aunque deberia haber un solo vehiculo // Para que save() no funcione como update sino como insert, // se debe resetear el id y setear isNewRecord como true $model->id = null; $model->ing_fecha = $fecAux; $model->ing_hora = $horAux; $model->ing_id_porton = \Yii::$app->session->get('porton'); $model->ing_id_user = \Yii::$app->user->identity->id; $model->isNewRecord = true; if ($model->save()) { foreach ($sessAutorizantes as $id_autorizante) { $accaut = new AccesosAutorizantes(); $accaut->id_acceso = $model->id; $aut = Autorizantes::findOne($id_autorizante); $accaut->id_persona = $aut->id_persona; $accaut->id_uf = $aut->id_uf; $accaut->save(); } // foreach autorizantes } // if model->save() } //foreach vehiculos } //foreach personas // Todo bien $transaction->commit(); \Yii::$app->session->addFlash('success', 'Ingreso grabado correctamente'); // limpia todo \Yii::$app->session->remove('ingpersonas'); \Yii::$app->session->remove('ingvehiculos'); \Yii::$app->session->remove('autorizantes'); return $this->redirect(['ingreso']); } catch (\Exception $e) { $transaction->rollBack(); Yii::$app->session->addFlash('danger', 'Hubo un error en la grabación'); throw $e; } // try..catch } // if POST // actualiza los 3 grupos en un array que se va a pasar al render // si se modifica, modificar tambien dentro del if (rechaza) $listas = $this->refreshListas(); return $this->render('ingreso', ['model' => $model, 'tmpListas' => $listas, 'diferido' => $diferido]); }
public function actionFinCesion($uf, $id) { $model = new UfTitularidad(); $model->id_uf = $uf; $model->tipo_movim = 10; $movActual = UfTitularidad::findOne($id); $titPers = UfTitularidadPersonas::find()->where(['uf_titularidad_id' => $id])->all(); $transaction = Yii::$app->db->beginTransaction(); try { $movActual->ultima = false; $movActual->save(false); $model->fec_desde = $movActual->fec_hasta; //$model->fec_hasta=$model->fec_desde; $model->fec_hasta = null; $model->exp_telefono = $movActual->exp_telefono; $model->exp_direccion = $movActual->exp_direccion; $model->exp_localidad = $movActual->exp_localidad; $model->exp_email = $movActual->exp_email; $model->ultima = true; $model->save(false); // elimina todos los autorizantes actuales de la unidad para reemplazarlos con los nuevos Autorizantes::deleteAll(['id_uf' => $model->id_uf]); $aut = new Autorizantes(); $aut->id_uf = $model->id_uf; // recorre todos los titulares y solo procesa los cedentes como nuevos titulares foreach ($titPers as $tp) { if ($tp->tipo == UfTitularidadPersonas::TIPO_CED) { $titp = new UfTitularidadPersonas(); $titp->uf_titularidad_id = $model->id; $titp->tipo = UfTitularidadPersonas::TIPO_TIT; $titp->id_persona = $tp->id_persona; $titp->observaciones = $tp->observaciones; $titp->save(false); $aut->id = null; $aut->isNewRecord = true; $aut->id_persona = $titp->id_persona; $aut->save(false); } } $transaction->commit(); \Yii::$app->session->addFlash('success', 'Movimiento grabado correctamente'); // limpia todo \Yii::$app->session->remove('titpersonas'); //return $this->redirect(['view', 'id' => $model->id]); } catch (\Exception $e) { $transaction->rollBack(); Yii::$app->session->addFlash('danger', 'Hubo un error en la grabación'); throw $e; } // try..catch return $this->redirect(['view', 'id' => $model->id]); }
/** * @return \yii\db\ActiveQuery */ public function getAutorizantes() { return $this->hasMany(Autorizantes::className(), ['id_uf' => 'id']); }
/** * Finds the Autorizantes model based on its primary key value. * If the model is not found, a 404 HTTP exception will be thrown. * @param integer $id * @return Autorizantes the loaded model * @throws NotFoundHttpException if the model cannot be found */ protected function findModel($id) { if (($model = Autorizantes::findOne($id)) !== null) { return $model; } else { throw new NotFoundHttpException('The requested page does not exist.'); } }
/** * @return \yii\db\ActiveQuery */ public function getIdAutorizante() { return $this->hasOne(Autorizantes::className(), ['id' => 'id_autorizante']); }