DELIMITER $$
DROP VIEW IF EXISTS cInpc;
CREATE VIEW cInpc
(periodo, enero, febrero, marzo, abril, mayo, junio, julio, agosto, septiembre, octubre, noviembre, diciembre)
AS
	SELECT periodo, enero, febrero, marzo, abril, mayo, junio, julio, agosto, septiembre, octubre, noviembre, diciembre
	FROM inpc ORDER BY periodo DESC;
$$

-- >>> consulta los servicios
DELIMITER $$
DROP VIEW IF EXISTS cServicios;
CREATE VIEW cServicios
(clave, descripcion, importe)
AS
	-- lista los servicios activos
	SELECT clave, descripcion, importe
	FROM servicios WHERE estado = 11 ORDER BY descripcion;
$$

-- >>> consult las tasas de recargo
DELIMITER $$
DROP VIEW IF EXISTS cRecargos;
CREATE VIEW cRecargos
(recargo, estado)
AS
	-- lista los recargos
	SELECT CONCAT(FORMAT(recargo, 1), '%'), estados(estado)
	FROM recargos ORDER BY estado;
$$

-- >>> consulta los descuentos
DELIMITER $$
DROP VIEW IF EXISTS cDescuentos;
CREATE VIEW cDescuentos
(periodo, descuento, vigencia, estado)
AS
	-- lista los descuentos
	SELECT CONCAT(fechas(inicio, 2), ' a ', fechas(fin, 2)), CONCAT(FORMAT(descuento, 1),  '%'), fechas(vigencia, 3), CASE WHEN CURRENT_DATE() <= vigencia THEN CASE WHEN (SELECT id FROM descuentos WHERE CURRENT_DATE() <= vigencia ORDER BY vigencia LIMIT 1) = id THEN 'Actual' ELSE 'Próximo' END ELSE 'Historico' END
	FROM descuentos
	ORDER BY vigencia DESC;
$$

-- >>> consulta las cuotas de mantenimiento
DELIMITER $$
DROP VIEW IF EXISTS cCuotas;
CREATE VIEW cCuotas
(periodo, uso, cuota)
AS
	-- lista las cuotas de mantenimiento
	SELECT periodo, CONCAT(estados(CAST(SUBSTRING(uso, 1, 3) AS INT)), ', ', estados(CAST(SUBSTRING(uso, 5) AS INT))), cuota
	FROM cuotas
	ORDER BY periodo DESC;
$$
