public function update($id) { $errores = []; HelperFunctions::comprobarSesion(); if (Validaciones::validarId($id) !== true) { header("Location: " . URL . "cliente"); } if (!$_POST) { $cliente = ClienteModel::getCliente($id); $provincias = ProvinciaModel::getAll(); $archivos = array("generic/formpersona", "cliente/formulario"); $datos = array('destino' => 'cliente/update', 'submit' => 'Editar Cliente', 'provincialist' => $provincias, 'persona' => $cliente, 'errores' => $errores, 'volver' => 'cliente/index'); View::renderMulti($archivos, $datos); } else { if (!is_array($err = ClienteModel::update()) && $err === true) { header("Location: " . URL . "cliente"); } $errores = $err; $provincias = ProvinciaModel::getAll(); $provinciaSelected = $_POST['provincia']; $archivos = array("generic/formpersona", "cliente/formulario"); $datos = array('destino' => 'cliente/update', 'submit' => 'Insertar Cliente', 'provincialist' => $provincias, 'provinciaSelected' => $provinciaSelected, 'persona' => $_POST, 'errores' => $errores, 'volver' => 'cliente/index'); View::renderMulti($archivos, $datos); } }
/** * Método estatico de inserción de registros en persona * + FECHA DE ALTA * @return [type] [description] */ public static function insert($actualiza = false) { // Comprobamos que los campos requeridos están sino error if (isset($_POST["nombre"]) && isset($_POST["apellidos"]) && isset($_POST["email"])) { // variable del método para poder hacer un rapido bindeo de parametros y errores $errores = []; $campos = []; // validamos el nombre if (isset($_POST["nombre"])) { if (($err = Validaciones::validarNombre($_POST["nombre"])) !== true) { $errores["nombre"] = $err; } else { // si hay nombre lo ponemos en un array $campos[":nombre"] = $_POST["nombre"]; } } if (isset($_POST["apellidos"])) { // Validamos los apellidos if (($err = Validaciones::validarApellidos($_POST["apellidos"])) !== true) { $errores["apellidos"] = $err; } else { // si son validos los apellidos lo preparamos para el bindeo $campos[":apellidos"] = $_POST["apellidos"]; } } if (isset($_POST["email"])) { // validamos el email if (($err = Validaciones::validarEmail($_POST["email"])) !== true) { $errores["email"] = $err; } else { if (self::comprobarUnique("email", $_POST["email"]) === true) { $errores["email"][] = "El email insertado ya está registrado."; } else { $campos[":email"] = $_POST["email"]; } } } if (isset($_POST["direccion"])) { // Si existe la dirección se valida if (($err = Validaciones::validarDireccion($_POST["direccion"])) !== true) { $errores["direccion"] = $err; } else { // si existe, preparamos el bindeo $campos[":direccion"] = $_POST["direccion"]; } } // si existe la provincia if (isset($_POST["provincia"])) { // se valida la provincia if (($err = provinciaModel::getProvinciaByNombre($_POST["provincia"])) !== true) { $errores["provincia"][] = "La provincia no existe"; } else { $prov = ProvinciaModel::getProvinciaId($_POST["provincia"]); $campos[":provincia"] = $prov[0]['id']; } } // si existe provincia // si exite el nif if (isset($_POST["nif"])) { // se valida if (($err = Validaciones::validarNif($_POST["nif"])) !== true) { $errores["nif"][] = "El DNI o NIF no cumple el formato."; } else { if (self::comprobarUnique("nif", $_POST["nif"]) === true) { $errores["nif"][] = "El DNI o NIF insertado ya está registrado."; } else { $campos[":nif"] = $_POST["nif"]; } } } // si existe telefono if (isset($_POST["telefono"])) { // se valida if (($err = Validaciones::validarTelefono($_POST["telefono"])) !== true) { $errores["telefono"] = $err; } else { // si existe la preparo $campos[":telefono"] = $_POST["telefono"]; } } // si exite newsletter if (isset($_POST["newsletter"])) { // se valida if (($err = Validaciones::validarTelefono($_POST["newsletter"])) !== true) { $errores["newsletter"] = $err; } else { // si existe la preparo $campos[":newsletter"] = $_POST["newsletter"]; } } // si no hay errores if (!$errores) { // Si ha pasado las validaciones y estoy actualizando paro aquí y devuelvo true. if ($actualiza === true) { return true; } try { // Montamos las consultas $fields = ""; $values = ""; // $values = " :campo1 :campo2 ..." // $fields = "campo1, campo2," foreach ($campos as $indice => $valor) { $values .= " " . $indice . ","; $aux = mb_substr($indice, 1); $fields .= $aux . ","; } // le quito la última coma de más $fields = trim($fields, ","); $values = trim($values, ","); // conexión a la base de datos $conn = Database::getInstance()->getDatabase(); // consulta de la base de datos // Añadimos a la consulta la fecha de alta formateada $fecha = "'" . date("Y-m-d") . "'"; $ssql = "INSERT INTO persona({$fields}, fecha_alta) VALUES ({$values}, {$fecha})"; // preparamos la consulta $query = $conn->prepare($ssql); $query->execute($campos); if ($query->rowCount() === 1) { return $conn->lastInsertId(); } return false; } catch (PDOException $e) { // Lanzamos una excepción a tratar en el controlador throw new Exception('Error con la base de datos'); } } else { // devolvemos los errores return Validaciones::resultado($errores); } } else { // si los campos requeridos no existen $errores['generic'][] = "Los campos requeridos no han sido introducidos"; return Validaciones::resultado($errores); } }
public function crear() { HelperFunctions::comprobarSesion(); if (!$_POST) { // Sino hay post mostramos el formulario $provincias = ProvinciaModel::getAll(); $categorias = CategoriaModel::getAll(); $filenames = ["generic/formpersona", "usuario/formulario"]; $datos = array('destino' => 'usuario/crear', 'submit' => 'Crear', 'provincialist' => $provincias, 'categorialist' => $categorias); View::renderMulti($filenames, $datos); } else { $_POST = HelperFunctions::sanear($_POST); $provincias = ProvinciaModel::getAll(); $categorias = CategoriaModel::getAll(); $errores = []; $err = UsuarioModel::insert(); if ($err === true) { header("Location: " . URL . "usuario"); } elseif ($err !== true && is_array($err)) { $errores = $err; $filenames = ["generic/formpersona", "usuario/formulario"]; $datos = array('destino' => 'usuario/crear', 'submit' => 'Crear', 'provincialist' => $provincias, 'categorialist' => $categorias, 'persona' => $_POST, 'errores' => $errores); View::renderMulti($filenames, $datos); } else { $filenames = ["generic/formpersona", "usuario/formulario"]; $datos = array('destino' => 'usuario/crear', 'submit' => 'Crear', 'provincialist' => $provincias, 'categorialist' => $categorias, 'persona' => $_POST, 'errores' => $errores); View::renderMulti($filenames, $datos); } } }