Ejemplo n.º 1
0
 public function actionDefuncion()
 {
     $model = new Defuncion();
     $partidaModelo = new Partida();
     $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';
         $partidaModelo->cod_empleado = Yii::$app->user->identity->persona->codEmpleado->codigo;
         $partidaModelo->tipo = "Defuncion";
         $model->cod_partida = 0;
         $codlibro = Libro::find()->select('codigo')->where("tipo = 'Defuncion'")->andWhere("anyo = :an", [':an' => date('Y')])->andWhere('numero = :valor', [':valor' => $_POST['Partida']['num_libro']])->one()->codigo;
         $partidaModelo->cod_libro = $codlibro;
         if ($model->validate() && $partidaModelo->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 defuncion
                     if (!$model->save()) {
                         throw new UserException('No se pudo guardar el registro de defunción, 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');
                     }
                     //Hay que actualizar el estado de la persona para reflejar que esta inactivo
                     if ($conexion->createCommand("update persona set estado = 'Inactivo' where codigo = " . $_POST['Defuncion']['cod_difunto'])->execute() <= 0) {
                         throw new UserException('No se pudo actualizar el estado de la persona, intente nuevamente');
                     }
                     $transaccion->commit();
                     Yii::$app->session->setFlash('success', 'Partida guardada con éxito');
                     return $this->redirect(['defuncion']);
                 } 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(['defuncion']);
             }
         } else {
             Yii::$app->session->setFlash('error', 'El modelo no cumple con la validación');
         }
     }
     return $this->render('rdefuncion', ['model' => $model, 'partida' => $partidaModelo]);
 }
Ejemplo n.º 2
0
 /**
  * @return \yii\db\ActiveQuery
  */
 public function getDefuncion()
 {
     return $this->hasOne(Defuncion::className(), ['cod_difunto' => 'codigo']);
 }
Ejemplo n.º 3
0
 /**
  * @return \yii\db\ActiveQuery
  */
 public function getDefuncions()
 {
     return $this->hasMany(Defuncion::className(), ['cod_causa' => 'codigo']);
 }