Exemplo n.º 1
0
function calcularEdad($fechaNacimiento, $fechaLimite = null)
{
    if ($fechaLimite == null) {
        list($Y, $m, $d) = explode("-", $fechaNacimiento);
        return date("md") < $m . $d ? date("Y") - $Y - 1 : date("Y") - $Y;
    } else {
        //Caso contrario calculo la diferencia de anos entre las dos fechas
        $d1 = new DateTime(fechaMySQL($fechaLimite));
        $d2 = new DateTime(fechaMySQL($fechaNacimiento));
        $diff = $d2->diff($d1);
        return $diff->y;
    }
}
Exemplo n.º 2
0
 /**
  * Updates an existing Persona model.
  * If update is successful, the browser will be redirected to the 'view' page.
  * @param integer $id
  * @return mixed
  */
 public function actionUpdate($id)
 {
     $model = new Persona();
     $conexion = \Yii::$app->db;
     $transaccion = $conexion->beginTransaction();
     $model = $this->findModel($id);
     if ($model->load(Yii::$app->request->post())) {
         require_once '../auxiliar/Auxiliar.php';
         if ($model->validate()) {
             foreach ($model->attributes as $llave => $elemento) {
                 if ($model[$llave] == '') {
                     $model[$llave] = null;
                 }
             }
             $model->fecha_nacimiento = fechaMySQL($model->fecha_nacimiento);
             try {
                 $informanteModel = Informante::find()->where('cod_persona = :valor', [':valor' => $model->codigo])->one();
                 if ($model->save()) {
                     if (!empty($informanteModel)) {
                         //Si tiene un informante asociada, habra que actualizarlo también
                         $informanteModel->nombre = $model->nombre . ' ' . $model->apellido;
                         $informanteModel->genero = $model->genero;
                         if (!$informanteModel->save()) {
                             throw new UserException('No se pudo actualizar el registro de informante asociado, intente nuevamente');
                         }
                     }
                     $transaccion->commit();
                     return $this->redirect(['view', 'id' => $model->codigo]);
                 } else {
                     throw new UserException('No se pudo actualizar el registro de persona, intente nuevamente');
                 }
             } catch (UserException $err) {
                 $transaccion->rollback();
                 Yii::$app->session->setFlash('error', $err->getMessage());
                 return $this->redirect(['update']);
             }
         }
     }
     return $this->render('update', ['model' => $model]);
 }
Exemplo n.º 3
0
 public function actionDivorcio()
 {
     $model = new Divorcio();
     $partidaModelo = new Partida();
     $dbCon = new Persona();
     $conexion = \Yii::$app->db;
     $transaccion = $conexion->beginTransaction();
     if ($model->load(Yii::$app->request->post()) && $partidaModelo->load(Yii::$app->request->post())) {
         require_once '../auxiliar/Auxiliar.php';
         $model->cod_partida = 0;
         $partidaModelo->cod_libro = 1;
         $partidaModelo->cod_empleado = Yii::$app->user->identity->persona->codEmpleado->codigo;
         $partidaModelo->lugar_suceso = $partidaModelo->codMunicipio->nombre;
         $partidaModelo->tipo = 'Divorcio';
         if ($model->validate() && $partidaModelo->validate()) {
             try {
                 $codlibro = Libro::find()->select('codigo')->where("tipo = 'Divorcio'")->andWhere("anyo = :an", [':an' => date('Y')])->andWhere('numero = :valor', [':valor' => $_POST['Partida']['num_libro']])->one()->codigo;
                 $partidaModelo->cod_libro = $codlibro;
                 $partidaModelo->fecha_emision = fechaMySQL($partidaModelo->fecha_emision);
                 $partidaModelo->fecha_suceso = fechaMySQL($partidaModelo->fecha_suceso);
                 $model->fecha_ejecucion = fechaMySQL($model->fecha_ejecucion);
                 $partidaModelo->hora_suceso = horaMySQL($partidaModelo->hora_suceso);
                 if ($partidaModelo->save()) {
                     //Recupero el valor de id con el cual se inserto
                     $ulid = $conexion->getLastInsertID();
                     $model->cod_partida = $ulid;
                     //Guardo el registro de divorcio
                     if (!$model->save()) {
                         throw new UserException('No se pudo guardar el registro de divorcio, intente nuevamente');
                     }
                     $arrper = $model->codMatrimonio->matrimonioPersonas;
                     $dbCon = $arrper[0]->codPersona;
                     $dbCon->cod_estado_civil = 3;
                     //Se actualiza el estado civil de los contrayentes
                     if (!$dbCon->save()) {
                         throw new UserException('No se pudo actualizar el estado civil del contrayente, intente nuevamente');
                     }
                     $dbCon = $arrper[1]->codPersona;
                     $dbCon->cod_estado_civil = 3;
                     //Se actualiza el estado civil de los contrayentes
                     if (!$dbCon->save()) {
                         throw new UserException('No se pudo actualizar el estado civil de la contrayente, intente nuevamente');
                     }
                     //Actualizar el folio actual del libro
                     if ($conexion->createCommand("update libro set folio_actual = folio_actual + 1 where codigo = " . $codlibro)->execute() <= 0) {
                         throw new UserException('No se pudo actualizar el libro de partidas, intente nuevamente');
                     }
                     $transaccion->commit();
                     Yii::$app->session->setFlash('success', 'Partida guardada con éxito');
                     return $this->redirect(['divorcio']);
                 } else {
                     throw new UserException('No se pudo guardar el registro de partida, intente nuevamente');
                 }
                 return;
             } catch (UserException $err) {
                 $transaccion->rollback();
                 Yii::$app->session->setFlash('error', $err->getMessage());
                 return $this->redirect(['divorcio']);
             }
         } else {
             Yii::$app->session->setFlash('error', 'El modelo no cumple con la validación');
         }
     }
     return $this->render('rdivorcio', ['model' => $model, 'partida' => $partidaModelo]);
 }