Sp
Olá pessoas bom dia para todos!
Tenho esta sp abaixo que está me retornando o valor 0,00 mas eu queria que no final ela imprima o valor q corresponda a soma de todos os totais alguém poderia me dar uma luz? A linha em negrito é que corresponde a isto.
Muito Obrigada
CREATE PROCEDURE dbo.sp_Consulta_Estorno
( @DtInicial varchar(20)
, @DtFinal varchar(20)
, @IdUsuario int)
WITH RECOMPILE
AS
SET NOCOUNT ON
DECLARE @Impressao TABLE
( Sequencia INT IDENTITY (1, 1) NOT NULL
, Etiqueta CHAR(36))
Declare @Total decimal(14,2)
INSERT @Impressao VALUES (' PREMIUM 2007')
INSERT @Impressao VALUES (REPLICATE(' ',36))
INSERT @Impressao VALUES (' *** CONSULTA DE EVENTOS *** ')
INSERT @Impressao VALUES (' ***** ESTORNO ***** ')
INSERT @Impressao VALUES (REPLICATE(' ',36))
INSERT @Impressao VALUES ('------- Periodo Fechamento -------')
INSERT @Impressao VALUES (REPLICATE(' ',36))
INSERT @Impressao VALUES ('Período de:')
INSERT @Impressao VALUES (dbo.fn_FormatarData(@DtInicial) + ' a ' + dbo.fn_FormatarData(@DtFinal) + '.' )
INSERT @Impressao VALUES (REPLICATE(' ',36))
DECLARE @IdUnidade AS INT
DECLARE @IdMalharia AS INT
SET @IdMalharia = 1
DECLARE Und_Malharia CURSOR FOR
SELECT id_unidade
FROM Unidades UND (NOLOCK)
-- WHERE id_unidade = 11
-- AND id_unidade >= 2
OPEN Und_Malharia
FETCH NEXT
FROM Und_Malharia INTO
@IdUnidade
WHILE @@FETCH_STATUS = 0
BEGIN
-- Tratamento p/ Gravação
DECLARE @TotBxGravame DECIMAL(14,2)
SELECT @TotBxGravame = ISNULL(SUM(TAM.vlr_titulo),0)
FROM Gravame GVM (NOLOCK)
JOIN Titulos_areceber_malharia TAM
ON GVM.id_titulo_areceber = TAM.id_titulo_areceber
WHERE GVM.id_unidade_bx = @IdUnidade
AND GVM.id_malharia_bx = @IdMalharia
AND GVM.dt_baixa >= @DtInicial
AND GVM.dt_baixa <= @DtFinal
AND NOT EXISTS (SELECT * FROM Acordos_Itens_Gravames AIG
WHERE AIG.id_gravame = GVM.id_gravame)
SELECT @TotBxGravame = @TotBxGravame + ISNULL(SUM(TAM.vlr_titulo),0)
FROM Gravame_Cantina GVM (NOLOCK)
JOIN Titulos_areceber_cantina TAM
ON GVM.id_titulo_areceber = TAM.id_titulo_areceber
WHERE GVM.id_unidade_bx = @IdUnidade
AND GVM.id_cantina_bx = @IdMalharia
AND GVM.dt_baixa >= @DtInicial
AND GVM.dt_baixa <= @DtFinal
AND NOT EXISTS (SELECT * FROM Acordos_Itens_Gravames AIG
WHERE AIG.id_gravame = GVM.id_gravame)
-- Estorno de Venda
DECLARE @TotEstorno DECIMAL(14,2)
SELECT @TotEstorno = SUM(ISNULL(vlr_titulos-vlr_real,0))
-- @TotTitulosResg = SUM(ISNULL(vlr_titulos,0))
FROM Estornos_Malharia EM (NOLOCK)
WHERE EM.id_unidade = @IdUnidade AND
EM.id_malharia = @IdMalharia AND
EM.dt_estorno >= @DtInicial AND
EM.dt_estorno <= @DtFinal
-- Resgates
DECLARE @TotTitulosResg DECIMAL(14,2)
SELECT @TotTitulosResg = SUM(ISNULL(vlr_titulos,0))
FROM Estornos_Malharia EM (NOLOCK)
WHERE
EM.id_unidade = @IdUnidade
AND EM.id_malharia = @IdMalharia
AND EM.dt_estorno >= @DtInicial
AND EM.dt_estorno <= @DtFinal
AND NOT EXISTS (SELECT * FROM Estornos_Itens_Malharia EIM
WHERE EIM.id_estorno = EM.id_estorno)
-- Acordos
DECLARE @TotAcordos DECIMAL(14,2)
SELECT @TotAcordos = SUM(ISNULL(TAM.vlr_titulo,0))
FROM Acordos ACD (NOLOCK)
JOIN Acordos_Itens_Titulos AIT
ON ACD.id_acordo = AIT.id_acordo
JOIN Titulos_areceber_malharia TAM
ON AIT.id_titulo_areceber = TAM.id_titulo_areceber
WHERE ACD.id_unidade = @IdUnidade
AND ACD.id_malharia = @IdMalharia
AND ACD.dt_acordo >= @DtInicial
AND ACD.dt_acordO <= @DtFinal
IF ISNULL(@TotBxGravame,0) + ISNULL(@TotAcordos,0) + ISNULL(@TotTitulosResg,0) + ISNULL(@TotEstorno,0) > 0
BEGIN
INSERT @Impressao VALUES (REPLICATE(' ',36))
INSERT @Impressao VALUES (REPLICATE('=',36))
INSERT @Impressao
( Etiqueta )
SELECT ISNULL(nm_malharia,' ')
FROM Malharias (NOLOCK)
WHERE id_unidade = @IdUnidade
AND id_malharia = @IdMalharia
INSERT @Impressao VALUES (REPLICATE('=',36))END
IF @TotBxGravame > 0
BEGIN
INSERT @Impressao VALUES (REPLICATE(' ',36))
INSERT @Impressao VALUES (' ------- BAIXA ------- ')
INSERT @Impressao VALUES (REPLICATE(' ',36))
INSERT @Impressao VALUES ('CPF/CNPJ BCO-N.CHEQ VALOR')
-- INSERT @Impressao VALUES ('12345678901234--001/123456-1.345,78')
INSERT @Impressao
SELECT dbo.FormataCpf(GVM.identificador)
+ ' '
+ dbo.CompletaZerosEsq(TAM.bco_cheque,3)
+ '-'
+ dbo.CompletaZerosEsq(TAM.nr_cheque,6)
+ ' '
+ dbo.CompletaBrancosEsq(dbo.fn_FormatarMoeda(TAM.vlr_titulo),8)
FROM Gravame GVM (NOLOCK)
JOIN Titulos_areceber_malharia TAM
ON GVM.id_titulo_areceber = TAM.id_titulo_areceber
WHERE GVM.id_unidade_bx = @IdUnidade
AND GVM.id_malharia_bx = @IdMalharia
AND GVM.dt_baixa >= @DtInicial
AND GVM.dt_baixa <= @DtFinal
AND NOT EXISTS (SELECT * FROM Acordos_Itens_Gravames AIG
WHERE AIG.id_gravame = GVM.id_gravame)
INSERT @Impressao
SELECT dbo.FormataCpf(GVM.identificador)
+ ' '
+ dbo.CompletaZerosEsq(TAM.bco_cheque,3)
+ '-'
+ dbo.CompletaZerosEsq(TAM.nr_cheque,6)
+ ' '
+ dbo.CompletaBrancosEsq(dbo.fn_FormatarMoeda(TAM.vlr_titulo),8)
FROM Gravame_Cantina GVM (NOLOCK)
JOIN Titulos_areceber_cantina TAM
ON GVM.id_titulo_areceber = TAM.id_titulo_areceber
WHERE GVM.id_unidade_bx = @IdUnidade
--AND GVM.id_malharia_bx = @IdMalharia
AND GVM.dt_baixa >= @DtInicial
AND GVM.dt_baixa <= @DtFinal
AND NOT EXISTS (SELECT * FROM Acordos_Itens_Gravames AIG
WHERE AIG.id_gravame = GVM.id_gravame)
INSERT @Impressao VALUES (REPLICATE(' ',36))
INSERT @Impressao VALUES ('Tot. de Bxa de Gravame .R$ ' + dbo.fn_FormatarMoeda(@TotBxGravame))
INSERT @Impressao VALUES (REPLICATE(' ',36))END
IF @TotEstorno <> 0
BEGIN
INSERT @Impressao VALUES (REPLICATE(' ',36))
INSERT @Impressao VALUES (' ------- ESTORNO DE VENDA -------')
INSERT @Impressao VALUES (REPLICATE(' ',36))
INSERT @Impressao VALUES ('ESTORNO ITENS TITULO TOTAL')
-- INSERT @Impressao VALUES ('00000/00-12345678--12345678--1234567')
INSERT @Impressao
SELECT dbo.CompletaZerosEsq(seq_estorno_ano,4)
+ '/'
+ dbo.CompletaZerosEsq(ano_estorno,2)
+ ' '
+ dbo.CompletaBrancosEsq(dbo.fn_FormatarMoeda(isnull(vlr_titulos,0)-isnull(vlr_real,0)),8)
+ ' '
+ dbo.CompletaBrancosEsq(dbo.fn_FormatarMoeda(isnull(vlr_titulos,0)),8)
+ ' '
+ dbo.CompletaBrancosEsq(dbo.fn_FormatarMoeda(isnull(vlr_real,0)),8)
FROM Estornos_Malharia EM (NOLOCK)
WHERE
EM.id_unidade = @IdUnidade
AND EM.id_malharia = @IdMalharia
AND EM.dt_estorno >= @DtInicial
AND EM.dt_estorno <= @DtFinal
AND EXISTS (SELECT * FROM Estornos_Itens_Malharia EIM
WHERE EIM.id_estorno = EM.id_estorno)
INSERT @Impressao VALUES (REPLICATE(' ',36))
INSERT @Impressao VALUES ('Tot. em Estornos R$ ' + dbo.fn_FormatarMoeda(@TotEstorno))
INSERT @Impressao VALUES (REPLICATE(' ',36))END
IF @TotTitulosResg <> 0
BEGIN
INSERT @Impressao VALUES (REPLICATE(' ',36))
INSERT @Impressao VALUES (' ------- RESGATE DE TITULO ------- ')
INSERT @Impressao VALUES (REPLICATE(' ',36))
--INSERT @Impressao VALUES ('RESGATE VENCTO BCO/CHEQ TOTAL ')
INSERT @Impressao VALUES (' VENDA VENCTO BCO/CHEQ TOTAL ')
-- INSERT @Impressao VALUES ('00000/00-25/03/79-001/123456-1234567')
INSERT @Impressao
-- Resgates de titulos da Malharia
SELECT dbo.CompletaZerosEsq(seq_venda_ano,5)
+ '/'
+ dbo.CompletaZerosEsq(ano_venda,2)
+ ' '
+ CONVERT(VARCHAR(10), dt_vencimento, 3)
+ ' '
+ dbo.CompletaZerosEsq(bco_cheque,3)
+ '/'
+ dbo.CompletaZerosEsq(nr_cheque,6)
+ ' '
+ dbo.CompletaBrancosEsq(dbo.fn_FormatarMoeda(isnull(vlr_titulo,0)),7)
FROM Estornos_Malharia EM (NOLOCK)
JOIN Titulos_Estornos_Malharia TEM (NOLOCK)
ON EM.id_estorno = TEM.id_estorno
JOIN Titulos_Areceber_Malharia TAM (NOLOCK)
ON TAM.id_titulo_areceber = TEM.id_titulo_areceber
JOIN Vendas_Malharia VDM (NOLOCK)
ON VDM.id_venda = TAM.id_venda
WHERE EM.id_unidade = @IdUnidade
AND EM.id_malharia = @IdMalharia
AND EM.dt_estorno >= @DtInicial
AND EM.dt_estorno <= @DtFinal
AND cantina = 0
AND NOT EXISTS(SELECT * FROM Estornos_Itens_Malharia EIM
WHERE EIM.id_estorno = EM.id_estorno)UNION
-- Resgates de titulos
SELECT dbo.CompletaZerosEsq(seq_venda_ano,5)
+ '/'
+ dbo.CompletaZerosEsq(ano_venda,2)
+ ' '
+ CONVERT(VARCHAR(10), dt_vencimento, 3)
+ ' '
+ dbo.CompletaZerosEsq(bco_cheque,3)
+ '/'
+ dbo.CompletaZerosEsq(nr_cheque,6)
+ ' '
+ dbo.CompletaBrancosEsq(dbo.fn_FormatarMoeda(isnull(vlr_titulo,0)),7)
FROM Estornos_Malharia EM (NOLOCK)
JOIN Titulos_Estornos_Malharia TEM (NOLOCK)
ON EM.id_estorno = TEM.id_estorno
JOIN Titulos_Areceber_Cantina TAM (NOLOCK)
ON TAM.id_titulo_areceber = TEM.id_titulo_areceber
JOIN Vendas_Cantina VDM (NOLOCK)
ON VDM.id_venda = TAM.id_venda
WHERE EM.id_unidade = @IdUnidade
AND EM.id_malharia = @IdMalharia
AND EM.dt_estorno >= @DtInicial
AND EM.dt_estorno <= @DtFinal
AND cantina = 1
AND NOT EXISTS(SELECT * FROM Estornos_Itens_Malharia EIM
WHERE EIM.id_estorno = EM.id_estorno)
INSERT @Impressao VALUES (REPLICATE(' ',36))
INSERT @Impressao VALUES ('Tot. em Resgates R$ ' + dbo.fn_FormatarMoeda(@TotTitulosResg))
INSERT @Impressao VALUES (REPLICATE(' ',36))END
IF @TotAcordos > 0
BEGIN
INSERT @Impressao VALUES (REPLICATE(' ',36))
INSERT @Impressao VALUES (' ------ REGISTRO DE ACORDOS ----- ')
INSERT @Impressao VALUES (REPLICATE(' ',36))
INSERT @Impressao VALUES ('ACORDO DATA TOTAL ')
INSERT @Impressao
SELECT dbo.CompletaZerosEsq(seq_acordo_ano,4)
+ '/'
+ dbo.CompletaZerosEsq(ano_acordo,2)
+ ' '
+ CONVERT(VARCHAR(10), dt_acordo, 3)
+ ' '
+ dbo.CompletaBrancosEsq(dbo.fn_FormatarMoeda(SUM(ISNULL(vlr_titulo,0))),8)
FROM Acordos ACD (NOLOCK)
JOIN Acordos_Itens_Titulos AIT
ON ACD.id_acordo = AIT.id_acordo
JOIN Titulos_areceber_malharia TAM
ON AIT.id_titulo_areceber = TAM.id_titulo_areceber
WHERE ACD.id_unidade = @IdUnidade
AND ACD.id_malharia = @IdMalharia
AND ACD.dt_acordo >= @DtInicial
AND ACD.dt_acordo <= @DtFinal
GROUP BY seq_acordo_ano, ano_acordo, dt_acordo
INSERT @Impressao VALUES (REPLICATE(' ',36))
INSERT @Impressao VALUES ('Tot. em Acordos R$ ' + dbo.fn_FormatarMoeda(@TotAcordos))
INSERT @Impressao VALUES (REPLICATE(' ',36))END
INSERT @Impressao VALUES (REPLICATE(' ',36))
FETCH NEXT
FROM Und_Malharia INTO
@IdUnidade
END
CLOSE Und_Malharia
DEALLOCATE Und_Malharia
INSERT @Impressao VALUES (REPLICATE(' ',36))
INSERT @Impressao VALUES (REPLICATE('=',36))
INSERT @Impressao VALUES (REPLICATE(' ',36))
[b]SELECT @Total = (SUM(isnull(@TotBxGravame,0) + isnull (@TotAcordos,0) + isnull (@TotTitulosResg,0) + isnull (@TotEstorno,0)))
INSERT @Impressao VALUES ('Total -------------- R$ ' + dbo.fn_FormatarMoeda (CONVERT (DECIMAL (14,2),@Total)))[/b]
-- Saída
SELECT Etiqueta
, Sequencia as Chave
FROM @ImpressaoORDER BY Sequencia
SET NOCOUNT OFF
GO
Discussão (5)
Carregando comentários...