Este artigo tem por objetivo instruir como validar na base de dados Ingressos Especiais que não foram resgatados corretamente.
Ex: Em determinados casos, a UCI abre chamado informando a mensagem: Não foram encontrados ingressos especiais para o valor informado.
Exibição da estação de venda
Query
DECLARE @LISTACUPONS TABLE
(
id INT IDENTITY(1, 1),
cupom VARCHAR(100)
);
DECLARE @EXIBIR TABLE
(
cupompesquisado VARCHAR(60),
nomevalorvalidacao VARCHAR(60),
nomeingresso VARCHAR(60),
validadeinicial DATETIME,
validadefinal DATETIME,
tipoexibicao VARCHAR(60),
iniciointervalo VARCHAR(50),
fimintervalo VARCHAR(50)
)
INSERT INTO @LISTACUPONS
VALUES
/* Insira aqui entre parênteses os cupons que quiser consultar separadamente */
('00103400292935'),
('00103400292936'),
('00103400292940'),
('00103400292941')
DECLARE @COUNTER INT;
SET @COUNTER = 1
WHILE @COUNTER <= (SELECT Count(*)
FROM @LISTACUPONS)
BEGIN
INSERT INTO @EXIBIR
SELECT (SELECT Substring(cupom, 3, 12)
FROM @LISTACUPONS
WHERE id = @COUNTER) [Cupom Pesquisado],
VV.nome [Nome do valor de validação],
I.nome [Nome do Ingresso],
Ivg.datainicio [Data de validade inicial],
Ivg.datafim [Data de validade final],
TpEx.nome [Exibições permitidas],
vv.iniciointervalo,
vv.fimintervalo
FROM ingresso I
INNER JOIN ingressoespecial IE
ON IE.ingresso_codigo = I.codigo
INNER JOIN ingressoespecialvigencia IVG
ON IVG.ingressoespecial_codigo = IE.codigo
INNER JOIN ingressoespecialvalidacao IEV
ON IEV.ingressoespecial_codigo = IE.codigo
INNER JOIN valoresvalidacao VV
ON VV.codigo = IEV.valoresvalidacao_codigo
INNER JOIN ingressoespecialtipoexibicao IET
ON IET.ingressoespecial_codigo = IE.codigo
INNER JOIN tipoexibicao TpEx
ON TpEx.codigo = IET.tipoexibicao_codigo
WHERE (SELECT CONVERT(BIGINT, Substring(cupom, 3, 12))
FROM @LISTACUPONS
WHERE id = @COUNTER) BETWEEN CONVERT(BIGINT, VV.iniciointervalo)
AND
CONVERT(BIGINT, VV.fimintervalo)
SET @COUNTER = @COUNTER + 1
END
SELECT *
FROM @EXIBIR
SELECT 'Cupom não encontrado' [Status],
cupom
FROM @LISTACUPONS
WHERE cupom NOT IN (SELECT '00' + cupompesquisado
FROM @EXIBIR)
Caso algum código seja válido, o retorno será diferente e estará separado na consulta informando o ingresso especial à qual pertence: