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; } }
/** * 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]); }
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]); }