You are on page 1of 13

set nocount on

declare

@d1 datetime,
@d2 datetime,
@status char(2),
@guia varchar(100),
@td_guias varchar(15),
@td_postos char(2),
@filtro char(1),
@posto char (2),
@lote char(5),

@nguia char(20),
@pedido char(15),
@valor float,
@valort float,
@data char(12),
@DATA2 CHAR(12),
@guia_rev char(12),
@qtd int,
@cliente char(60),
@pt1 char(2),@pt2 char(2),@pt3 char(2),@pt4 char(2),@pt5 char(2),@pt6
char(2),@pt7 char(2),
@CONVENIO VARCHAR(10),----------------------------#66268 - PAULO AUGUSTO
09/02/2023

--VARIAVEIS PARA EXIBIÇÃO DOS CURSORES

@C_GUIA CHAR(4),
@C_PEDIDO CHAR(6),
@C_VALOR CHAR(5),
@C_ATENDIMENTO CHAR(13),
@C_REVISAO CHAR(8),
@C_STATUS CHAR(7),
@C_CLIENTE CHAR(8),
@C_LOTE CHAR(4),
@DELIM CHAR(160),
@C_CONVENIO VARCHAR(10)----------------------------#66268 - PAULO AUGUSTO
09/02/2023

SELECT @C_GUIA = 'GUIA'


,@C_PEDIDO = 'PEDIDO'
,@C_VALOR = 'VALOR'
,@C_ATENDIMENTO = 'ATENDIMENTO'
,@C_REVISAO = 'REVISÃO'
,@C_STATUS = 'STATUS'
,@C_CLIENTE = 'CLIENTE'
,@C_LOTE = 'LOTE'
,@C_CONVENIO = 'CONVÊNIO'----------------------------#66268 - PAULO AUGUSTO
09/02/2023

--select @d1 = getdate()-100, @d2 = getdate(), @status = 'nr', @td_guias =


'*', @td_postos = '57', @filtro = 'f'

select @d1 = '%0:s 00:00:00', @d2 = '%1:s 23:59:59', @status = '%2:s',


@td_guias = '%3:s', @td_postos = '%4:s', @filtro = '%5:s', @guia = '%6:s',
@pt1 = '%7:s', @pt2 = '%8:s', @pt3 = '%9:s', @pt4 = '%10:s', @pt5 =
'%11:s', @pt6 = '%12:s',@pt7 = '%13:s'

print ''
print 'RELATÓRIO GUIAS REVISADAS/N REVISADAS/TODAS - 202'
print
'----------------------------------------------------------------------------------
----------------------------------------'
print ''
print 'Período de data: '+convert(varchar,@d1,103)+' até
'+convert(varchar,@d2,103)
print ''
print
'==================================================================================
========================================'

print ''

if @filtro = 'T'

begin
declare @linha varchar(max), @tamanho int, @laco int, @saida varchar(100)

set @laco = 1
set @linha = @guia
--set @linha = ',UNIMED-ANA,UNIMED-IM,UNIMED-IMG,UNIMED-INT,'

if SUBSTRING(@linha,1,1) <> ',' set @linha = ','+@linha


if SUBSTRING(@linha,len(@linha),1) <> ',' set @linha = @linha+','
set @linha = REPLACE(@linha,',,',',')

exec TAMANHO_LISTA @linha, ',', @tamanho OUTPUT

while @laco <= @tamanho


begin

EXEC RETORNA_ITEM_LISTA @linha, @laco,',', @saida OUTPUT

if @status = 'NR'
begin

print '-------------------'
print 'GUIAS NÃO REVISADAS'
print '-------------------'
print 'CONVENIO: '+convert(varchar,@saida)
print '-------------------'
print ''

declare nrevisadas cursor for


SELECT
convert(varchar(15),MM.no_guia_med) as 'NUMERO GUIA',
convert(varchar(15),convert(varchar,p.codigo_pedido)+'-'+p.posto_pedido) as
PEDIDO,
convert(float,SUM(( m.preco_uni_conv + m.preco_unitario ) * (case
M.numero_da_amostra when 0 then M.numero_amostras else 1 end))) AS 'VALOR TOTAL',
convert(varchar,P.data_atendimento,103) as 'DATA ATENDIMENTO',
convert(varchar,P.data_guia_revisada,103) as 'DATA GUIA REVISADA',
l.tiss_numeroFatura,
case when p.data_guia_revisada is not null then 'REVISADA' WHEN
P.DATA_GUIA_REVISADA IS NULL THEN 'NÃO REVISADA' ELSE NULL END AS 'STATUS',
C.nome_cliente as CLIENTE,
TG.cod_guia AS 'CONVENIO' ----------------------------#66268 - PAULO AUGUSTO
09/02/2023
FROM PEDIDO P WITH (NOLOCK)
JOIN cliente C WITH (NOLOCK) ON (P.cod_cliente = C.cod_cliente AND
P.posto_cliente = C.posto_cliente)
JOIN MOV_EX M WITH (NOLOCK) ON (M.codigo_pedido = P.codigo_pedido AND
M.posto_pedido = P.posto_pedido AND (ISNULL(M.status_mov_ex, '') NOT IN ('N')) )
JOIN TIPO_EX T WITH (NOLOCK) ON (T.cod_exame = M.cod_exame)
JOIN TIPO_G TG WITH (NOLOCK) ON (TG.cod_guia = P.cod_guia)
JOIN MOVEX_MED MM WITH (NOLOCK) ON (M.CODIGO_PEDIDO = MM.CODIGO_PEDIDO AND
M.POSTO_PEDIDO = MM.POSTO_PEDIDO AND M.ORDEM_MOVEX = MM.ORDEM_MOVEX AND
MM.EX_COBRANCA = '1')
JOIN GUIA G WITH (NOLOCK) ON(G.CODIGO_PEDIDO = MM.CODIGO_PEDIDO AND
G.POSTO_PEDIDO = MM.POSTO_PEDIDO AND G.ORDEM_GUIA = MM.SEQ_MED)
left JOIN LOTEGUIAS_GUIA LG WITH (NOLOCK) ON (LG.codigo_pedido =
G.codigo_pedido AND LG.posto_pedido = G.posto_pedido
AND LG.ORDEM_GUIA = G.ORDEM_GUIA)
LEFT JOIN loteguias L WITH (NOLOCK) ON (L.numeroLote = LG.numeroLote)
WHERE P.status_pedido IS NULL
AND STATUS_LOTEGUIAS IS NULL
--AND TG.cod_conv_operadora IS NULL
AND (P.data_atendimento between @d1 AND @d2)
AND P.data_guia_revisada IS NULL
--and g.data_revisao_guia is null
AND (P.cod_guia=@saida)
and p.posto_pedido in (@pt1, @pt2, @pt3, @pt4, @pt5, @pt6,@pt7)
GROUP BY MM.no_guia_med, P.data_guia_revisada, p.posto_pedido,
p.codigo_pedido, P.data_atendimento, C.nome_cliente,l.tiss_numeroFatura,
TG.cod_guia
ORDER BY P.data_atendimento, p.posto_pedido, p.codigo_pedido

open nrevisadas

set @valor = 0
set @valort = 0
set @qtd = 0

PRINT @C_GUIA + SPACE(13) +CHAR(160)


+ @C_PEDIDO + SPACE(12) +CHAR(160)
+ @C_VALOR + SPACE(3) +CHAR(160)
+ @C_ATENDIMENTO+ SPACE(2) +CHAR(160)
+ @C_REVISAO + SPACE(6) +CHAR(160)
+ @C_LOTE + SPACE(4) +CHAR(160)
+ @C_STATUS + SPACE(8) +CHAR(160)
+ @C_CLIENTE + SPACE(10) +CHAR(160)
+ @C_CONVENIO + SPACE(10) +CHAR(160)

PRINT ''

fetch next from nrevisadas into @nguia, @pedido, @valor,


@data,@data2,@lote,@guia_rev, @cliente, @CONVENIO
while @@FETCH_STATUS = 0
begin

print convert(char(14),@nguia) +CHAR(160)


+space(3)+convert(char(12),@pedido) +CHAR(160)
+space(1)+str(@valor,10,2) +CHAR(160)
+space(3)+convert(varchar,@data) +CHAR(160)
+SPACE(3)+ISNULL(convert(char(11),@data2),'') +CHAR(160)
+SPACE(3)+ISNULL(@LOTE,'') +CHAR(160)
+SPACE(3)+@guia_rev
+CHAR(160)
+space(3)+@cliente
+CHAR(160)
+space(3)+@CONVENIO
+CHAR(160)

set @valort = @valort + @valor


set @qtd = @qtd + 1

fetch next from nrevisadas into @nguia, @pedido, @valor,


@data,@data2,@lote,@guia_rev, @cliente, @CONVENIO
end
print
'----------------------------------------------------------------------------------
------------'
print 'VALOR TOTAL: '+str(@valort,10,2)
print 'QUANTIDADE TOTAL: '+convert(varchar,@qtd)
print
'----------------------------------------------------------------------------------
------------'
close nrevisadas
deallocate nrevisadas

end

else if @status = 'R'

begin

print '---------------'
print 'GUIAS REVISADAS'
print '---------------'
print 'CONVENIO: '+convert(varchar,@saida)
print '---------------'
print ''

declare revisadas cursor for


SELECT
convert(varchar(15),MM.no_guia_med) as 'NUMERO GUIA',
convert(varchar(15),convert(varchar,p.codigo_pedido)+'-'+p.posto_pedido) as
PEDIDO,
convert(float,SUM(( m.preco_uni_conv + m.preco_unitario ) * (case
M.numero_da_amostra when 0 then M.numero_amostras else 1 end))) AS 'VALOR TOTAL',
convert(varchar,P.data_atendimento,103) as 'DATA ATENDIMENTO',
convert(varchar,P.data_guia_revisada,103) as 'DATA GUIA REVISADA',
l.tiss_numeroFatura,
case when p.data_guia_revisada is not null then 'REVISADA' WHEN
P.DATA_GUIA_REVISADA IS NULL THEN 'NÃO REVISADA' ELSE NULL END AS 'STATUS',
C.nome_cliente as CLIENTE,
TG.cod_guia AS 'CONVENIO'
FROM PEDIDO P WITH (NOLOCK)
JOIN cliente C WITH (NOLOCK) ON (P.cod_cliente = C.cod_cliente AND
P.posto_cliente = C.posto_cliente)
JOIN MOV_EX M WITH (NOLOCK) ON (M.codigo_pedido = P.codigo_pedido AND
M.posto_pedido = P.posto_pedido AND (ISNULL(M.status_mov_ex, '') NOT IN ('N')) )
JOIN TIPO_EX T WITH (NOLOCK) ON (T.cod_exame = M.cod_exame)
JOIN TIPO_G TG WITH (NOLOCK) ON (TG.cod_guia = P.cod_guia)
JOIN MOVEX_MED MM WITH (NOLOCK) ON (M.CODIGO_PEDIDO = MM.CODIGO_PEDIDO AND
M.POSTO_PEDIDO = MM.POSTO_PEDIDO AND M.ORDEM_MOVEX = MM.ORDEM_MOVEX AND
MM.EX_COBRANCA = '1')
JOIN GUIA G WITH (NOLOCK) ON(G.CODIGO_PEDIDO = MM.CODIGO_PEDIDO AND
G.POSTO_PEDIDO = MM.POSTO_PEDIDO AND G.ORDEM_GUIA = MM.SEQ_MED)
left JOIN LOTEGUIAS_GUIA LG WITH (NOLOCK) ON (LG.codigo_pedido =
G.codigo_pedido AND LG.posto_pedido = G.posto_pedido
AND LG.ORDEM_GUIA = G.ORDEM_GUIA)
LEFT JOIN loteguias L WITH (NOLOCK) ON (L.numeroLote = LG.numeroLote)
WHERE P.status_pedido IS NULL
AND STATUS_LOTEGUIAS IS NULL
AND (P.data_atendimento between @d1 AND @d2)
AND P.data_guia_revisada IS not NULL
AND (P.cod_guia=@saida)
and p.posto_pedido in (@pt1, @pt2, @pt3, @pt4, @pt5, @pt6,@pt7)
GROUP BY MM.no_guia_med, P.data_guia_revisada, p.posto_pedido,
p.codigo_pedido, P.data_atendimento, C.nome_cliente,l.tiss_numeroFatura,
TG.cod_guia
--,preco_uni_conv
ORDER BY P.data_atendimento, p.posto_pedido, p.codigo_pedido

open revisadas

set @valor = 0
set @valort = 0
set @qtd = 0

PRINT @C_GUIA + SPACE(13) +CHAR(160)


+ @C_PEDIDO + SPACE(12) +CHAR(160)
+ @C_VALOR + SPACE(3) +CHAR(160)
+ @C_ATENDIMENTO+ SPACE(2) +CHAR(160)
+ @C_REVISAO + SPACE(6) +CHAR(160)
+ @C_LOTE + SPACE(4) +CHAR(160)
+ @C_STATUS + SPACE(8) +CHAR(160)
+ @C_CLIENTE + SPACE(8) +CHAR(160)
+ @C_CONVENIO + SPACE(8) +CHAR(160)

PRINT ''

fetch next from revisadas into @nguia, @pedido, @valor,


@data,@data2,@lote,@guia_rev, @cliente, @CONVENIO
while @@FETCH_STATUS = 0
begin

print convert(char(14),@nguia) +CHAR(160)


+space(3)+convert(char(12),@pedido) +CHAR(160)
+space(1)+str(@valor,10,2) +CHAR(160)
+space(3)+convert(varchar,@data) +CHAR(160)
+SPACE(3)+ISNULL(convert(char(11),@data2),'') +CHAR(160)
+SPACE(3)+ISNULL(@LOTE,'') +CHAR(160)
+SPACE(3)+@guia_rev
+CHAR(160)
+space(3)+@cliente
+CHAR(160)
+space(3)+@CONVENIO
+CHAR(160)

set @valort = @valort + @valor


set @qtd = @qtd + 1

fetch next from revisadas into @nguia, @pedido, @valor,


@data,@data2,@lote,@guia_rev, @cliente, @CONVENIO
end
print
'----------------------------------------------------------------------------------
------------'
print 'VALOR TOTAL: '+str(@valort,10,2)
print 'QUANTIDADE TOTAL: '+convert(varchar,@qtd)
print
'----------------------------------------------------------------------------------
------------'
close revisadas
deallocate revisadas
end

else

begin
print '-----'
print 'TODAS'
print '-----'
print 'CONVENIO: '+convert(varchar,@saida)
print '-----'
print ''
declare todas cursor for
SELECT
convert(varchar(15),MM.no_guia_med) as 'NUMERO GUIA',
convert(varchar(15),convert(varchar,p.codigo_pedido)+'-'+p.posto_pedido) as
PEDIDO,
convert(float,SUM(( m.preco_uni_conv + m.preco_unitario ) * (case
M.numero_da_amostra when 0 then M.numero_amostras else 1 end))) AS 'VALOR TOTAL',
convert(varchar,P.data_atendimento,103) as 'DATA ATENDIMENTO',
convert(varchar,P.data_guia_revisada,103) as 'DATA REVISÃO GUIA',
l.tiss_numeroFatura,
case when p.data_guia_revisada is not null then 'REVISADA' WHEN
P.DATA_GUIA_REVISADA IS NULL THEN 'NÃO REVISADA' ELSE NULL END AS 'STATUS',
C.nome_cliente as CLIENTE,
TG.cod_guia AS 'CONVENIO'
FROM PEDIDO P WITH (NOLOCK)
JOIN cliente C WITH (NOLOCK) ON (P.cod_cliente = C.cod_cliente AND
P.posto_cliente = C.posto_cliente)
JOIN MOV_EX M WITH (NOLOCK) ON (M.codigo_pedido = P.codigo_pedido AND
M.posto_pedido = P.posto_pedido AND (ISNULL(M.status_mov_ex, '') NOT IN ('N')) )
JOIN TIPO_EX T WITH (NOLOCK) ON (T.cod_exame = M.cod_exame)
JOIN TIPO_G TG WITH (NOLOCK) ON (TG.cod_guia = P.cod_guia)
JOIN MOVEX_MED MM WITH (NOLOCK) ON (M.CODIGO_PEDIDO = MM.CODIGO_PEDIDO AND
M.POSTO_PEDIDO = MM.POSTO_PEDIDO AND M.ORDEM_MOVEX = MM.ORDEM_MOVEX AND
MM.EX_COBRANCA = '1')
JOIN GUIA G WITH (NOLOCK) ON(G.CODIGO_PEDIDO = MM.CODIGO_PEDIDO AND
G.POSTO_PEDIDO = MM.POSTO_PEDIDO AND G.ORDEM_GUIA = MM.SEQ_MED)
left JOIN LOTEGUIAS_GUIA LG WITH (NOLOCK) ON (LG.codigo_pedido =
G.codigo_pedido AND LG.posto_pedido = G.posto_pedido
AND LG.ORDEM_GUIA = G.ORDEM_GUIA)
LEFT JOIN loteguias L WITH (NOLOCK) ON (L.numeroLote = LG.numeroLote)
WHERE P.status_pedido IS NULL
AND STATUS_LOTEGUIAS IS NULL
AND P.data_atendimento between @d1 AND @d2
AND (P.cod_guia=@saida)
and p.posto_pedido in (@pt1, @pt2, @pt3, @pt4, @pt5, @pt6,@pt7)
GROUP BY MM.no_guia_med, P.data_guia_revisada, p.posto_pedido,
p.codigo_pedido, P.data_atendimento, C.nome_cliente,l.tiss_numeroFatura,
TG.cod_guia
ORDER BY P.data_atendimento, p.posto_pedido, p.codigo_pedido

open todas

set @valor = 0
set @valort = 0
set @qtd = 0

PRINT @C_GUIA + SPACE(13) +CHAR(160)


+ @C_PEDIDO + SPACE(12) +CHAR(160)
+ @C_VALOR + SPACE(3) +CHAR(160)
+ @C_ATENDIMENTO+ SPACE(2) +CHAR(160)
+ @C_REVISAO + SPACE(6) +CHAR(160)
+ @C_LOTE + SPACE(4) +CHAR(160)
+ @C_STATUS + SPACE(8) +CHAR(160)
+ @C_CLIENTE + SPACE(8) +CHAR(160)
+ @C_CONVENIO + SPACE(8) +CHAR(160)

PRINT ''

fetch next from todas into @nguia, @pedido, @valor,


@data,@data2,@lote,@guia_rev, @cliente, @COVNENIO
while @@FETCH_STATUS = 0
begin

print convert(char(14),@nguia) +CHAR(160)


+space(3)+convert(char(12),@pedido) +CHAR(160)
+space(1)+str(@valor,10,2) +CHAR(160)
+space(3)+convert(varchar,@data) +CHAR(160)
+SPACE(3)+ISNULL(convert(char(11),@data2),'') +CHAR(160)
+SPACE(3)+ISNULL(@LOTE,'') +CHAR(160)
+SPACE(3)+@guia_rev
+CHAR(160)
+space(3)+@cliente
+CHAR(160)
+space(3)+@CONVENIO
+CHAR(160)

set @valort = @valort + @valor


set @qtd = @qtd + 1

fetch next from todas into @nguia, @pedido, @valor,


@data,@data2,@lote,@guia_rev, @cliente, @CONVENIO
end
print
'----------------------------------------------------------------------------------
------------'
print 'VALOR TOTAL: '+str(@valort,10,2)
print 'QUANTIDADE TOTAL: '+convert(varchar,@qtd)
print
'----------------------------------------------------------------------------------
------------'
close todas
deallocate todas

end

set @laco = @laco + 1

end
end
else
begin

if @status = 'NR'
begin

print '-------------------'
print 'GUIAS NÃO REVISADAS'
print '-------------------'

declare nrevisadas cursor for


SELECT
convert(varchar(15),MM.no_guia_med) as 'NUMERO GUIA',
convert(varchar(15),convert(varchar,p.codigo_pedido)
+'-'+p.posto_pedido) as PEDIDO,
convert(float,SUM(( m.preco_uni_conv + m.preco_unitario ) * (case
M.numero_da_amostra when 0 then M.numero_amostras else 1 end))) AS 'VALOR TOTAL',
convert(varchar,P.data_atendimento,103) as 'DATA ATENDIMENTO',
convert(varchar,P.data_guia_revisada,103) as 'DATA GUIA REVISADA',
l.tiss_numeroFatura,
case when p.data_guia_revisada is not null then 'REVISADA' WHEN
P.DATA_GUIA_REVISADA IS NULL THEN 'NÃO REVISADA' ELSE NULL END AS 'STATUS',
C.nome_cliente as CLIENTE,
TG.cod_guia AS 'CONVENIO'
FROM PEDIDO P WITH (NOLOCK)
JOIN cliente C WITH (NOLOCK) ON (P.cod_cliente = C.cod_cliente AND
P.posto_cliente = C.posto_cliente)
JOIN MOV_EX M WITH (NOLOCK) ON (M.codigo_pedido = P.codigo_pedido AND
M.posto_pedido = P.posto_pedido AND (ISNULL(M.status_mov_ex, '') NOT IN ('N')) )
JOIN TIPO_EX T WITH (NOLOCK) ON (T.cod_exame = M.cod_exame)
JOIN TIPO_G TG WITH (NOLOCK) ON (TG.cod_guia = P.cod_guia)
JOIN MOVEX_MED MM WITH (NOLOCK) ON (M.CODIGO_PEDIDO = MM.CODIGO_PEDIDO
AND M.POSTO_PEDIDO = MM.POSTO_PEDIDO AND M.ORDEM_MOVEX = MM.ORDEM_MOVEX AND
MM.EX_COBRANCA = '1')
JOIN GUIA G WITH (NOLOCK) ON(G.CODIGO_PEDIDO = MM.CODIGO_PEDIDO AND
G.POSTO_PEDIDO = MM.POSTO_PEDIDO AND G.ORDEM_GUIA = MM.SEQ_MED)
left JOIN LOTEGUIAS_GUIA LG WITH (NOLOCK) ON (LG.codigo_pedido =
G.codigo_pedido AND LG.posto_pedido = G.posto_pedido
AND LG.ORDEM_GUIA = G.ORDEM_GUIA)
LEFT JOIN loteguias L WITH (NOLOCK) ON (L.numeroLote = LG.numeroLote)
WHERE P.status_pedido IS NULL
AND STATUS_LOTEGUIAS IS NULL
AND P.data_atendimento between @d1 AND @d2
AND P.data_guia_revisada IS NULL
AND ((P.cod_guia = @td_guias) or (@td_guias = '*' ))
and ((p.posto_pedido = @td_postos) or (@td_postos = '*' ))
GROUP BY MM.no_guia_med, P.data_guia_revisada, p.posto_pedido,
p.codigo_pedido, P.data_atendimento, C.nome_cliente,l.tiss_numeroFatura,
TG.cod_guia
ORDER BY P.data_atendimento, p.posto_pedido, p.codigo_pedido

open nrevisadas

set @valor = 0
set @valort = 0
set @qtd = 0

PRINT @C_GUIA + SPACE(13) +CHAR(160)


+ @C_PEDIDO + SPACE(12) +CHAR(160)
+ @C_VALOR + SPACE(3) +CHAR(160)
+ @C_ATENDIMENTO+ SPACE(2) +CHAR(160)
+ @C_REVISAO + SPACE(6) +CHAR(160)
+ @C_LOTE + SPACE(4) +CHAR(160)
+ @C_STATUS + SPACE(8) +CHAR(160)
+ @C_CLIENTE + SPACE(8) +CHAR(160)
+ @C_CONVENIO + SPACE(8) +CHAR(160)

PRINT ''

fetch next from nrevisadas into @nguia, @pedido, @valor,


@data,@data2,@lote,@guia_rev, @cliente, @CONVENIO
while @@FETCH_STATUS = 0
begin

print convert(char(14),@nguia) +CHAR(160)


+space(3)+convert(char(12),@pedido) +CHAR(160)
+space(1)+str(@valor,10,2) +CHAR(160)
+space(3)+convert(varchar,@data) +CHAR(160)
+SPACE(3)+ISNULL(convert(char(11),@data2),'') +CHAR(160)
+SPACE(3)+ISNULL(@LOTE,'') +CHAR(160)
+SPACE(3)+@guia_rev
+CHAR(160)
+space(3)+@cliente
+CHAR(160)
+space(3)+@CONVENIO
+CHAR(160)

set @valort = @valort + @valor


set @qtd = @qtd + 1

fetch next from nrevisadas into @nguia, @pedido, @valor,


@data,@data2,@lote,@guia_rev, @cliente, @CONVENIO
end
print
'----------------------------------------------------------------------------------
------------'
print 'VALOR TOTAL: '+str(@valort,10,2)
print 'QUANTIDADE TOTAL: '+convert(varchar,@qtd)
print
'----------------------------------------------------------------------------------
------------'
close nrevisadas
deallocate nrevisadas

end

else if @status = 'R'

begin

print '---------------'
print 'GUIAS REVISADAS'
print '---------------'
print ''

declare revisadas cursor for


SELECT
convert(varchar(15),MM.no_guia_med) as 'NUMERO GUIA',
convert(varchar(15),convert(varchar,p.codigo_pedido)
+'-'+p.posto_pedido) as PEDIDO,
convert(float,SUM(( m.preco_uni_conv + m.preco_unitario ) * (case
M.numero_da_amostra when 0 then M.numero_amostras else 1 end))) AS 'VALOR TOTAL',
convert(varchar,P.data_atendimento,103) as 'DATA ATENDIMENTO',
convert(varchar,P.data_guia_revisada,103) as 'DATA GUIA REVISADA',
l.tiss_numeroFatura,
case when p.data_guia_revisada is not null then 'REVISADA' WHEN
P.DATA_GUIA_REVISADA IS NULL THEN 'NÃO REVISADA' ELSE NULL END AS 'STATUS',
C.nome_cliente as CLIENTE,
TG.cod_guia AS 'CONVENIO'
FROM PEDIDO P WITH (NOLOCK)
JOIN cliente C WITH (NOLOCK) ON (P.cod_cliente = C.cod_cliente AND
P.posto_cliente = C.posto_cliente)
JOIN MOV_EX M WITH (NOLOCK) ON (M.codigo_pedido = P.codigo_pedido AND
M.posto_pedido = P.posto_pedido AND (ISNULL(M.status_mov_ex, '') NOT IN ('N')) )
JOIN TIPO_EX T WITH (NOLOCK) ON (T.cod_exame = M.cod_exame)
JOIN TIPO_G TG WITH (NOLOCK) ON (TG.cod_guia = P.cod_guia)
JOIN MOVEX_MED MM WITH (NOLOCK) ON (M.CODIGO_PEDIDO = MM.CODIGO_PEDIDO
AND M.POSTO_PEDIDO = MM.POSTO_PEDIDO AND M.ORDEM_MOVEX = MM.ORDEM_MOVEX AND
MM.EX_COBRANCA = '1')
JOIN GUIA G WITH (NOLOCK) ON(G.CODIGO_PEDIDO = MM.CODIGO_PEDIDO AND
G.POSTO_PEDIDO = MM.POSTO_PEDIDO AND G.ORDEM_GUIA = MM.SEQ_MED)
left JOIN LOTEGUIAS_GUIA LG WITH (NOLOCK) ON (LG.codigo_pedido =
G.codigo_pedido AND LG.posto_pedido = G.posto_pedido
AND LG.ORDEM_GUIA = G.ORDEM_GUIA)
LEFT JOIN loteguias L WITH (NOLOCK) ON (L.numeroLote = LG.numeroLote)
WHERE P.status_pedido IS NULL
AND STATUS_LOTEGUIAS IS NULL
AND P.data_atendimento between @d1 AND @d2
AND P.data_guia_revisada IS not NULL
AND ((P.cod_guia = @td_guias) or (@td_guias = '*' ))
and ((p.posto_pedido = @td_postos) or (@td_postos = '*' ))
GROUP BY MM.no_guia_med, P.data_guia_revisada, p.posto_pedido,
p.codigo_pedido, P.data_atendimento, C.nome_cliente, TG.cod_guia
,l.tiss_numeroFatura--,(convert(float,SUM(( m.preco_uni_conv +
m.preco_unitario ) * (case M.numero_da_amostra when 0 then M.numero_amostras else 1
end))))
ORDER BY P.data_atendimento, p.posto_pedido, p.codigo_pedido

open revisadas
set @valor = 0
set @valort = 0
set @qtd = 0

PRINT @C_GUIA + SPACE(13) +CHAR(160)


+ @C_PEDIDO + SPACE(12) +CHAR(160)
+ @C_VALOR + SPACE(3) +CHAR(160)
+ @C_ATENDIMENTO+ SPACE(2) +CHAR(160)
+ @C_REVISAO + SPACE(6) +CHAR(160)
+ @C_LOTE + SPACE(4) +CHAR(160)
+ @C_STATUS + SPACE(8) +CHAR(160)
+ @C_CLIENTE + SPACE(8) +CHAR(160)
+ @C_CONVENIO + SPACE(8) +CHAR(160)

PRINT ''

fetch next from revisadas into @nguia, @pedido, @valor,


@data,@data2,@lote,@guia_rev, @cliente, @CONVENIO
while @@FETCH_STATUS = 0
begin

print convert(char(14),@nguia) +CHAR(160)


+space(3)+convert(char(12),@pedido) +CHAR(160)
+space(1)+str(@valor,10,2) +CHAR(160)
+space(3)+convert(varchar,@data) +CHAR(160)
+SPACE(3)+ISNULL(convert(char(11),@data2),'') +CHAR(160)
+SPACE(3)+ISNULL(@LOTE,'') +CHAR(160)
+SPACE(3)+@guia_rev
+CHAR(160)
+space(3)+@cliente
+CHAR(160)
+space(3)+@cONVENIO
+CHAR(160)

set @valort = @valort + @valor


set @qtd = @qtd + 1

fetch next from revisadas into @nguia, @pedido, @valor,


@data,@data2,@lote,@guia_rev, @cliente, @CONVENIO
end
print
'----------------------------------------------------------------------------------
------------'
print 'VALOR TOTAL: '+str(@valort,10,2)
print 'QUANTIDADE TOTAL: '+convert(varchar,@qtd)
print
'----------------------------------------------------------------------------------
------------'
close revisadas
deallocate revisadas
end

else

begin
print '-----'
print 'TODAS'
print '-----'
print ''
declare todas cursor for
SELECT
convert(varchar(15),MM.no_guia_med) as 'NUMERO GUIA',
convert(varchar(15),convert(varchar,p.codigo_pedido)
+'-'+p.posto_pedido) as PEDIDO,
convert(float,SUM(( m.preco_uni_conv + m.preco_unitario ) * (case
M.numero_da_amostra when 0 then M.numero_amostras else 1 end))) AS 'VALOR TOTAL',
convert(varchar,P.data_atendimento,103) as 'DATA ATENDIMENTO',
convert(varchar,P.data_guia_revisada,103) as 'DATA GUIA REVISADA',
l.tiss_numeroFatura,
case when p.data_guia_revisada is not null then 'REVISADA' WHEN
P.DATA_GUIA_REVISADA IS NULL THEN 'NÃO REVISADA' ELSE NULL END AS 'STATUS',
C.nome_cliente as CLIENTE,
TG.cod_guia AS 'CONVENIO'
FROM PEDIDO P WITH (NOLOCK)
JOIN cliente C WITH (NOLOCK) ON (P.cod_cliente = C.cod_cliente AND
P.posto_cliente = C.posto_cliente)
JOIN MOV_EX M WITH (NOLOCK) ON (M.codigo_pedido = P.codigo_pedido AND
M.posto_pedido = P.posto_pedido)
JOIN TIPO_EX T WITH (NOLOCK) ON (T.cod_exame = M.cod_exame)
JOIN TIPO_G TG WITH (NOLOCK) ON (TG.cod_guia = P.cod_guia)
JOIN MOVEX_MED MM WITH (NOLOCK) ON (M.CODIGO_PEDIDO = MM.CODIGO_PEDIDO
AND M.POSTO_PEDIDO = MM.POSTO_PEDIDO AND M.ORDEM_MOVEX = MM.ORDEM_MOVEX AND
MM.EX_COBRANCA = '1')
JOIN GUIA G WITH (NOLOCK) ON(G.CODIGO_PEDIDO = MM.CODIGO_PEDIDO AND
G.POSTO_PEDIDO = MM.POSTO_PEDIDO AND G.ORDEM_GUIA = MM.SEQ_MED)
left JOIN LOTEGUIAS_GUIA LG WITH (NOLOCK) ON (LG.codigo_pedido =
G.codigo_pedido AND LG.posto_pedido = G.posto_pedido
AND
LG.ORDEM_GUIA = G.ORDEM_GUIA)
LEFT JOIN loteguias L WITH (NOLOCK) ON (L.numeroLote = LG.numeroLote)
WHERE P.status_pedido IS NULL
AND STATUS_LOTEGUIAS IS NULL
AND P.data_atendimento between @d1 AND @d2
AND ((P.cod_guia = @td_guias) or (@td_guias = '*' ))
and ((p.posto_pedido = @td_postos) or (@td_postos = '*' ))
GROUP BY MM.no_guia_med, P.data_guia_revisada, p.posto_pedido,
p.codigo_pedido, P.data_atendimento, C.nome_cliente,l.tiss_numeroFatura,
TG.cod_guia
ORDER BY P.data_atendimento, p.posto_pedido, p.codigo_pedido

open todas

set @valor = 0
set @valort = 0
set @qtd = 0

PRINT @C_GUIA + SPACE(13) +CHAR(160)


+ @C_PEDIDO + SPACE(12) +CHAR(160)
+ @C_VALOR + SPACE(3) +CHAR(160)
+ @C_ATENDIMENTO+ SPACE(2) +CHAR(160)
+ @C_REVISAO + SPACE(6) +CHAR(160)
+ @C_LOTE + SPACE(4) +CHAR(160)
+ @C_STATUS + SPACE(8) +CHAR(160)
+ @C_CLIENTE + SPACE(8) +CHAR(160)
+ @C_CONVENIO + SPACE(8) +CHAR(160)

PRINT ''
fetch next from todas into @nguia, @pedido, @valor,
@data,@data2,@lote,@guia_rev, @cliente, @CONVENIO
while @@FETCH_STATUS = 0
begin

--print convert(char(14),@nguia)+' '+convert(char(12),@pedido)+'


'+str(@valor,10,2)+' '+convert(varchar,@data)+'
'+convert(varchar,@data2)+SPACE(5)+@guia_rev+' '+@cliente

print convert(char(14),@nguia) +CHAR(160)


+space(3)+convert(char(12),@pedido) +CHAR(160)
+space(1)+str(@valor,10,2) +CHAR(160)
+space(3)+convert(varchar,@data) +CHAR(160)
+SPACE(3)+ISNULL(convert(char(11),@data2),'') +CHAR(160)
+SPACE(3)+ISNULL(@LOTE,'') +CHAR(160)
+SPACE(3)+@guia_rev
+CHAR(160)
+space(3)+@cliente
+CHAR(160)
+space(3)+@CONVENIO
+CHAR(160)

set @valort = @valort + @valor


set @qtd = @qtd + 1

fetch next from todas into @nguia, @pedido, @valor,


@data,@data2,@lote,@guia_rev, @cliente, @CONVENIO
end

print
'----------------------------------------------------------------------------------
------------'
print 'VALOR TOTAL: '+str(@valort,10,2)
print 'QUANTIDADE TOTAL: '+convert(varchar,@qtd)
print
'----------------------------------------------------------------------------------
------------'
close todas
deallocate todas

end
end
print ''
print 'ESTE RELATÓRIO É PARA SIMPLES CONFERÊNCIA.'
print 'ESTE RELATÓRIO PODE NÃO REPRESENTAR A REALIDADE NO CASO DE ATUALIZAÇÃO DE
NOVAS VERSÕES DO SOFTLAB E/OU BANCO DE DADOS.'
print ''

You might also like