Esempio n. 1
0
 /**
  * @return \yii\db\ActiveQuery
  */
 public function getMatrimonioPersonas()
 {
     return $this->hasMany(MatrimonioPersona::className(), ['cod_persona' => 'codigo']);
 }
Esempio n. 2
0
 public function actionMatrimonio()
 {
     $model = new Matrimonio();
     $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;
         if ($model->apellido_casada == '') {
             $model->apellido_casada = null;
         }
         $partidaModelo->cod_empleado = Yii::$app->user->identity->persona->codEmpleado->codigo;
         $partidaModelo->lugar_suceso = 'Ilopango';
         $partidaModelo->cod_municipio = 151;
         $partidaModelo->tipo = 'Matrimonio';
         $indicador = 'del notario';
         if ($_POST['gen_notario'] == 'Femenino') {
             $indicador = 'de la notaria';
         }
         $model->notario = $indicador . ' ' . $model->notario;
         $model->est_civ_h = Persona::find()->where('codigo = ' . $_POST['MatrimonioPersona']['cod_conhom'])->one()->cod_estado_civil;
         $model->est_civ_m = Persona::find()->where('codigo = ' . $_POST['MatrimonioPersona']['cod_conmuj'])->one()->cod_estado_civil;
         $codlibro = Libro::find()->select('codigo')->where("tipo = 'Matrimonio'")->andWhere("anyo = :an", [':an' => date('Y')])->andWhere('numero = :valor', [':valor' => $_POST['Partida']['num_libro']])->one()->codigo;
         $partidaModelo->cod_libro = $codlibro;
         if ($partidaModelo->validate() && $model->validate()) {
             try {
                 $partidaModelo->fecha_emision = fechaMySQL($partidaModelo->fecha_emision);
                 $partidaModelo->fecha_suceso = fechaMySQL($partidaModelo->fecha_suceso);
                 $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 matrimonio
                     if ($model->save()) {
                         //Recupero el id de matrimonio para luego insertar en matrimonio_persona
                         $ulid = $conexion->getLastInsertID();
                         //Para MatrimonioPersona
                         $modelMph = new MatrimonioPersona();
                         $modelMpm = new MatrimonioPersona();
                         $modelMph->cod_matrimonio = $ulid;
                         $modelMpm->cod_matrimonio = $ulid;
                         //Para el contrayente
                         $modelMph->cod_persona = $_POST['MatrimonioPersona']['cod_conhom'];
                         if (!$modelMph->save()) {
                             throw new UserException('No se pudo guardar el contrayente, intente nuevamente');
                         }
                         //Se actualiza el estado civil del contrayente
                         $dbCon = Persona::find()->where('codigo = ' . $modelMph->cod_persona)->one();
                         $dbCon->cod_estado_civil = 2;
                         if (!$dbCon->save()) {
                             throw new UserException('No se pudo actualizar el estado civil del contrayente, intente nuevamente');
                         }
                         //Para la contrayente
                         $modelMpm->cod_persona = $_POST['MatrimonioPersona']['cod_conmuj'];
                         if (!$modelMpm->save()) {
                             throw new UserException('No se pudo guardar la contrayente, intente nuevamente');
                         }
                         //Se actualiza el estado civil de la contrayente
                         $dbCon = Persona::find()->where('codigo = ' . $modelMpm->cod_persona)->one();
                         $dbCon->cod_estado_civil = 2;
                         //Debo guardar el apellido de casada?
                         if ($_POST['Matrimonio']['apellido_casada'] != '') {
                             $dbCon->apellido_casada = strtok($dbCon->apellido, " ") . ' ' . $_POST['Matrimonio']['apellido_casada'];
                         }
                         if (!$dbCon->save()) {
                             throw new UserException('No se pudo actualizar el estado civil de la contrayente, intente nuevamente');
                         }
                     } else {
                         // print_r($model->getErrors());
                         // exit;
                         throw new UserException('No se pudo guardar el registro de matrimonio, 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(['matrimonio']);
                 } 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(['matrimonio']);
             }
         } else {
             Yii::$app->session->setFlash('error', 'El modelo no cumple con la validación');
         }
     }
     return $this->render('rmatrimonio', ['model' => $model, 'partida' => $partidaModelo]);
 }