Ejemplo n.º 1
0
 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;
 }
Ejemplo n.º 2
0
 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]);
 }
Ejemplo n.º 3
0
 /**
  * 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;
 }
Ejemplo n.º 4
0
 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]);
 }
Ejemplo n.º 5
0
 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]);
 }
Ejemplo n.º 6
0
 /**
  * @return \yii\db\ActiveQuery
  */
 public function getAutorizantes()
 {
     return $this->hasMany(Autorizantes::className(), ['id_uf' => 'id']);
 }
Ejemplo n.º 7
0
 /**
  * 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.');
     }
 }
Ejemplo n.º 8
0
 /**
  * @return \yii\db\ActiveQuery
  */
 public function getIdAutorizante()
 {
     return $this->hasOne(Autorizantes::className(), ['id' => 'id_autorizante']);
 }