Пример #1
0
 /**
  * Método que valida los datos a insertar en la base de datos
  * @param  Array $array Datos a validar
  * @return Boolean    True = si los datos son validos, False = sino lo son
  */
 public static function validar($array)
 {
     // Si exite el campo lo validamos
     // Validación del nombre
     if (isset($array['nombre'])) {
         if (($erro = Validaciones::validarNombre($array["nombre"], 50)) !== true) {
             Session::addArray('feedback_negative', $erro);
         } else {
             if (isset($array['id'])) {
                 // cuando estamos editando
                 $nombres = OfertaModel::getNombreNoRepetido($array['id']);
                 if (!OfertaModel::compararNombre($nombres, $array['nombre'])) {
                     Session::add('feedback_negative', 'La oferta ya exite');
                 }
             } else {
                 // cuando estamos insertando
                 if (OfertaModel::getNombre($array['nombre'])) {
                     Session::add('feedback_negative', 'El nombre ya existe');
                 }
             }
         }
     } else {
         Session::add('feedback_negative', 'El nombre no ha sido recicibido');
     }
     // fin de las validaciones del nombre
     // Validación del descripcion
     if (isset($array['descripcion'])) {
         $array['descripcion'] = Validaciones::limpiarTextarea($array['descripcion']);
         if (($erro = Validaciones::validarDescripcion($array["descripcion"], 1000)) !== true) {
             Session::addArray('feedback_negative', $erro);
         }
     } else {
         Session::add('feedback_negative', 'La descripcion no ha sido recicibida');
     }
     // Fin de la validación del descripcion
     // Validación de los requisitos
     if (isset($array['requisitos'])) {
         $array['requisitos'] = Validaciones::limpiarTextarea($array['requisitos']);
         if (($erro = Validaciones::validarRequisitos($array["requisitos"], 1000)) !== true) {
             Session::addArray('feedback_negative', $erro);
         }
     } else {
         Session::add('feedback_negative', 'Los requisitos no han sido recicibidos');
     }
     // Fin de la validación de los requisitos
     // Validación de la url
     if (isset($array['url'])) {
         if (($erro = Validaciones::validarUrl($array["url"])) !== true) {
             Session::addArray('feedback_negative', $erro);
         }
     } else {
         Session::add('feedback_negative', 'La url no ha sido recicibida');
     }
     // fin de las validaciones de la url
     // validamos el salario
     if (isset($array['salario'])) {
         if (($erro = Validaciones::validarSalario($array["salario"])) !== true) {
             Session::addArray('feedback_negative', $erro);
         }
     } else {
         Session::add('feedback_negative', 'El salario no ha sido recibido');
     }
     // validamos la empresa
     if (isset($array['empresa']) || !empty($array['empresa'])) {
         $array['empresa'] = Validaciones::saneamiento($array['empresa']);
         if (!OfertaModel::getIdEmpresaByNombre($array['empresa'])) {
             Session::add('feedback_negative', 'La empresa no existe');
         } else {
             $empresa = OfertaModel::getIdEmpresaByNombre($array['empresa']);
             Session::set('empresa', $empresa);
             Session::set('selected', $array['empresa']);
         }
     } else {
         Session::add('feedback_negative', 'La empresa no ha sido seleccionada, o quizás no tenga ninguna');
     }
     // Comprobación de de que no haya habido errores
     return Session::comprobarErrores();
 }
Пример #2
0
 /**
  * Método del controlador el cual se encarga de la edición de las ofertas
  * @param  integer $id ID de la oferta a editar
  */
 public function editar($id = 0)
 {
     // validamos y saneamos aqui porque vamos a utilizarlo en caso
     // de que no haya $_POST
     $id = (int) $id;
     $id = Validaciones::saneamiento($id);
     // Bloque try catch para preveer posibles excepciones
     try {
         if (!$_POST) {
             // comprobamos si la oferta que se intenta editar es del usuario
             // que realiza la petición
             if (!OfertaModel::comprobarPropiedadOferta($id)) {
                 Session::add('feedback_negative', 'No puedes editar una oferta que no es tuya');
                 header('Location: /Oferta');
                 exit;
             }
             // mostrar el formulario para poder editar
             // para ello deberemos recuperar los BD
             $info = OfertaModel::getId($id);
             $empresa = OfertaModel::getNombreEmpresa();
             $datos = ['titulo' => 'Edición de oferta', 'empresas' => $empresa, 'datos' => $info];
             echo $this->view->render("ofertas/formularioOferta", $datos);
         } else {
             // tratamos los datos en el modelo
             if (OfertaModel::editar($id, $_POST)) {
                 Session::add('feedback_positive', 'La oferta ha sido editada');
                 header('Location: /Oferta');
                 exit;
             } else {
                 // existen errores, llamamos a la vista para mostrar los errores
                 // Saneamos $_POST
                 Session::add('feedback_negative', 'La oferta no se ha podido modificar o no se ha modificado nada');
                 $empresa = OfertaModel::getNombreEmpresa();
                 $array = Validaciones::sanearEntrada($_POST);
                 $datos = ['datos' => $array, 'empresas' => $empresa];
                 // mostramos la vista con los datos saneados,
                 // para evitar la inyeción de código
                 echo $this->view->render('ofertas/formularioOferta', $datos);
             }
         }
     } catch (PDOException $e) {
         // llamamos a la vista de error 500
         $array = ['msg' => 'Error del servidor, disculpe las molestias.'];
         echo $this->view->render('error/error500', $array);
         // modo debbug ON
         /*echo '<pre>';
         		echo $e->getMessage();*/
     }
 }
Пример #3
0
 public static function update($id)
 {
     // Primero tenemos que preparar un bloque try catch
     $errores = [];
     if ($_POST) {
         // Validamos todas las variables de $_POST
         $_POST = Validaciones::sanearEntrada($_POST);
         // empezamos la transacción
         $conn = Database::getInstance()->getDatabase();
         $conn->beginTransaction();
         if (is_array($ErrorOId = PersonaModel::update())) {
             $errores[] = $ErrorOId;
             $conn->rollback();
             return Validaciones::resultado($errores);
         } elseif ($ErrorOId === false) {
             $conn->rollback();
             return $errores['generic'][] = "El cliente no se ha insertado correctamente";
         } else {
             // Comprobaos los campos requeridos en la tabla
             if (isset($_POST["nombreCorp"])) {
                 $_POST["nombreCorp"] = Validaciones::saneamiento($_POST["nombreCorp"]);
                 if (($err = Validaciones::validarNombreCorporativo($_POST["nombreCorp"])) === true) {
                     try {
                         $conn = Database::getInstance()->getDatabase();
                         $ssql = "UPDATE cliente set nombre_corporativo = :nombreCorp WHERE id=:id";
                         $prepare = $conn->prepare($ssql);
                         $prepare->bindParam(":nombreCorp", $_POST["nombreCorp"], PDO::PARAM_STR);
                         $prepare->execute();
                         if ($prepare->rowCount() === 1) {
                             return $errores["nombreCorp"][] = "El nombre corporativo ya existe";
                         }
                     } catch (PDOException $e) {
                         return $errores['generic'][] = "Error en la base de datos";
                     }
                     try {
                         $conn = Database::getInstance()->getDatabase();
                         $ssql = "insert into cliente (id, nombre_corporativo) values (:id, :nombreCorp)";
                         $prepare = $conn->prepare($ssql);
                         $prepare->bindParam(":id", $ErrorOId, PDO::PARAM_INT);
                         $prepare->bindParam(":nombreCorp", $_POST["nombreCorp"], PDO::PARAM_STR);
                         $prepare->execute();
                         if ($prepare->rowCount() === 1) {
                             $conn->commit();
                             return true;
                         }
                         return false;
                     } catch (PDOException $e) {
                         return $errores['generic'][] = "Error en la base de datos";
                     }
                 } else {
                     $conn->rollback();
                     return $err;
                 }
             } else {
                 $conn->rollback();
                 return $errores["nombreCorp"][] = "El nombre corporativo no se ha recibido";
             }
         }
     } else {
         $errores['generic'][] = "No se han recivido datos";
         return Validaciones::resultado($errores);
     }
 }