//1- CREANDO UNA VISTA QUE CONTIENE nombre de los productos,
nombre de la categoría, nombre de la unidad, cantidad, valor, inventario inicial,
valor
normal, margen del IVA, peso.
CREATE VIEW vista_producto AS
SELECT nombre, n_categoria, idunidad, cantidad, valor, invinicial, valornormal,
margeniva, peso
FROM tblproductos
WHERE estado = 1;
//2- CREANDO UNA VISTA QUE CONTIENE nit, valor total, fecha,
latitud, longitud, nombre del cliente, contacto, dirección, nombre y apellidos del
vendedor
concatenados en una sola columna, ciudad del vendedor, estado.
CREATE VIEW vista_pedido AS
SELECT nit, valortotal, fecha, latitud, longitud, cedula, contacto, direccion,
CONCAT(nombre, ' ', apellidos) AS vendedor, ciudad, estado
FROM tblpedidos
WHERE estado = 1;
//3- Crear una función que reciba un valor en texto y lo retorne el valor en
decimal, esto
se aplica para resolver en el siguiente ítem de este trabajo.
DELIMITER //
CREATE FUNCTION convertir_decimal(valor TEXT) RETURNS DECIMAL(10,2)
BEGIN
DECLARE v_decimal DECIMAL(10,2);
SET v_decimal = CAST(valor AS DECIMAL(10,2));
RETURN v_decimal;
END //
DELIMITER ;
//4- Crear un procedimiento que reciba el NIT de un cliente y retorne el valor
total de las
compras realizadas utilizando la funcion creada anteriormente.
DELIMITER //
CREATE PROCEDURE sp_total_compras(IN nit_cliente VARCHAR(20))
BEGIN
DECLARE valor_total DECIMAL(10,2);
SELECT SUM(convertir_decimal(valortotal)) INTO total
FROM tblclientes
WHERE nit = nit_cliente;
SELECT total;
END //
DELIMITER ;
//5- Crear una función que reciba un valor decimal, el porcentaje del IVA y retorne
el
valor total aplicado aplicando el IVA.
DELIMITER //
CREATE FUNCTION valor_total_iva(valor DECIMAL(10,2), porcentaje_iva DECIMAL(10,2))
RETURNS DECIMAL(10,2)
BEGIN
DECLARE valor_total DECIMAL(10,2);
SET valor_total = valor + (valor * porcentaje_iva / 100);
RETURN valor_total;
END //
DELIMITER ;
//6- Crear un procedimiento que reciba la cédula de un vendedor, el porcentaje del
IVA y
que retorne las ventas realizadas por él y al total de cada una de esas ventas,
aplicarle el IVA en una columna calculada. Nota: debe utilizar funciones creadas en
los ítems anteriores.
DELIMITER //
CREATE PROCEDURE sp_ventas_vendedor(IN cedula_vendedor VARCHAR(20), porcentaje_iva
DECIMAL(10,2))
BEGIN
SELECT valortotal, valor_total_iva(convertir_decimal(valortotal),
porcentaje_iva) AS total_con_iva
FROM tblpedidos
WHERE cedula = cedula_vendedor;
END //
DELIMITER ;