LevelOS-Core/UI/ArquivosAuxiliares/Views/Views_Boletos.sql

185 lines
4.0 KiB
Transact-SQL

USE [Levelcode-LevelOS]
GO
/* =========================================================
VIEW: BOLETOS ABERTOS
========================================================= */
CREATE OR ALTER VIEW VW_BoletosAbertos
AS
SELECT
*
FROM Boletos
WHERE
STATUS = 'ABERTO'
AND PG = 0;
GO
/* =========================================================
VIEW: BOLETOS VENCIDOS
========================================================= */
CREATE OR ALTER VIEW VW_BoletosVencidos
AS
SELECT
*,
DATEDIFF(DAY, VENCE, GETDATE()) AS DIAS_ATRASO
FROM Boletos
WHERE
PG = 0
AND VENCE < CAST(GETDATE() AS DATE)
AND STATUS = 'ABERTO';
GO
/* =========================================================
VIEW: BOLETOS PAGOS
========================================================= */
CREATE OR ALTER VIEW VW_BoletosPagos
AS
SELECT
*,
ISNULL(VL_PAGO, VALOR) AS VALOR_RECEBIDO
FROM Boletos
WHERE
PG = 1
OR STATUS = 'PAGO';
GO
/* =========================================================
VIEW: RESUMO FINANCEIRO
========================================================= */
CREATE OR ALTER VIEW VW_BoletosResumoFinanceiro
AS
SELECT
COUNT(*) AS TOTAL_BOLETOS,
SUM(CASE
WHEN STATUS = 'PAGO'
THEN VALOR
ELSE 0
END) AS TOTAL_PAGO,
SUM(CASE
WHEN STATUS = 'ABERTO'
THEN VALOR
ELSE 0
END) AS TOTAL_ABERTO,
SUM(CASE
WHEN STATUS = 'VENCIDO'
THEN VALOR
ELSE 0
END) AS TOTAL_VENCIDO
FROM Boletos;
GO
/* =========================================================
VIEW: DASHBOARD
========================================================= */
CREATE OR ALTER VIEW VW_BoletosDashboard
AS
SELECT
ID_BOLETO,
CODIGO,
SACADO,
STATUS,
VALOR,
VENCE,
CASE
WHEN PG = 1 THEN 'PAGO'
WHEN VENCE < GETDATE() THEN 'VENCIDO'
ELSE 'EM DIA'
END AS SITUACAO,
DATEDIFF(DAY, GETDATE(), VENCE) AS DIAS_PARA_VENCER
FROM Boletos;
GO
/* =========================================================
VIEW: BOLETOS COM ARQUIVO
========================================================= */
CREATE OR ALTER VIEW VW_BoletosComArquivo
AS
SELECT
*
FROM Boletos
WHERE
ARQUIVO_CAMINHO IS NOT NULL
OR ARQUIVO_DADOS IS NOT NULL;
GO
/* =========================================================
VIEW: BOLETOS IMPORTADOS
========================================================= */
CREATE OR ALTER VIEW VW_BoletosImportados
AS
SELECT
*
FROM Boletos
WHERE
IMPORTACAO = 1;
GO
/* =========================================================
VIEW: PRÓXIMOS VENCIMENTOS
========================================================= */
CREATE OR ALTER VIEW VW_BoletosProximosVencimentos
AS
SELECT
*
FROM Boletos
WHERE
PG = 0
AND VENCE BETWEEN CAST(GETDATE() AS DATE)
AND DATEADD(DAY, 7, CAST(GETDATE() AS DATE));
GO
/* =========================================================
VIEW: BOLETOS DE HOJE
========================================================= */
CREATE OR ALTER VIEW VW_BoletosHoje
AS
SELECT
*
FROM Boletos
WHERE
CAST(VENCE AS DATE) = CAST(GETDATE() AS DATE);
GO
/* =========================================================
VIEW: BOLETOS DA SEMANA
========================================================= */
CREATE OR ALTER VIEW VW_BoletosSemana
AS
SELECT
*
FROM Boletos
WHERE
VENCE BETWEEN CAST(GETDATE() AS DATE)
AND DATEADD(DAY, 7, CAST(GETDATE() AS DATE));
GO
/* =========================================================
VIEW: BOLETOS SEM ARQUIVO
========================================================= */
CREATE OR ALTER VIEW VW_BoletosSemArquivo
AS
SELECT
*
FROM Boletos
WHERE
ARQUIVO_CAMINHO IS NULL
AND ARQUIVO_DADOS IS NULL;
GO
/* =========================================================
VIEW: BOLETOS PENDENTES DE WEBHOOK
========================================================= */
CREATE OR ALTER VIEW VW_BoletosPendentesWebhook
AS
SELECT
*
FROM Boletos
WHERE
STATUS = 'PAGO'
AND IMPORTACAO = 0;
GO