Resolvido, Graças a Deus e com ajuda do espirito santo eu consegui fazer os decodes deixo aqui os códigos caso
alguém precise.
Selecionar tudo
create or replace
FUNCTION fn_extranegativo(HR_INICIAL_ IN VARCHAR2 ,HR_INICIO_INTERVALO_ in varchar2,HR_FINAL_INTERVALO_ in varchar2,HR_FINAL_ in varchar2 ,HR_HIST_INICIO_ in varchar2 ,HR_HIST_INTERVALO_ in varchar2 ,HR_HIST_RETORNO_ in varchar2,HR_HIST_SAIDA_ in varchar2)
RETURN number IS /*Zerar as batidas que estão dentro 10 minutos diários, 5 minutos para mais e 5 minutos para menos.Wilke 21/10/2014*/
vs_saida varchar2(10);
vsaidanegativo number;
hr_inicial varchar2(10);
hr_hist_inicio VARCHAR2(5);
hr_inicio_intervalo varchar2(5);
hr_hist_intervalo varchar2(5);
hr_final_intervalo varchar2(5);
hr_hist_retorno varchar2(5);
hr_final varchar2(5);
hr_hist_saida varchar2(5);
saldonegativo number;
BEGIN
hr_inicial:=HR_INICIAL_;
hr_hist_inicio:=HR_HIST_INICIO_;
hr_inicio_intervalo:=HR_INICIO_INTERVALO_;
hr_hist_intervalo:=HR_HIST_INTERVALO_;
hr_final_intervalo:=HR_FINAL_INTERVALO_;
hr_hist_retorno:=HR_HIST_RETORNO_;
hr_final:=HR_FINAL_;
hr_hist_saida:=HR_HIST_SAIDA_;
saldonegativo:=0;
select decode(hr_inicial,(to_char(to_date(hr_hist_inicio,'hh24:mi') -5/(24*60),'hh24:mi')),hr_hist_inicio,hr_inicial,
DECODE(hr_inicial,(to_char(to_date(hr_hist_inicio,'hh24:mi') +5/(24*60),'hh24:mi')),hr_hist_inicio,hr_inicial,
DECODE(hr_inicial,(to_char(to_date(hr_hist_inicio,'hh24:mi') -4/(24*60),'hh24:mi')),hr_hist_inicio,hr_inicial,
DECODE(hr_inicial,(to_char(to_date(hr_hist_inicio,'hh24:mi') +4/(24*60),'hh24:mi')),hr_hist_inicio,hr_inicial,
DECODE(hr_inicial,(to_char(to_date(hr_hist_inicio,'hh24:mi') -3/(24*60),'hh24:mi')),hr_hist_inicio,hr_inicial,
DECODE(hr_inicial,(to_char(to_date(hr_hist_inicio,'hh24:mi') +3/(24*60),'hh24:mi')),hr_hist_inicio,hr_inicial,
DECODE(hr_inicial,(to_char(to_date(hr_hist_inicio,'hh24:mi') -2/(24*60),'hh24:mi')),hr_hist_inicio,hr_inicial,
DECODE(hr_inicial,(to_char(to_date(hr_hist_inicio,'hh24:mi') +2/(24*60),'hh24:mi')),hr_hist_inicio,hr_inicial,
DECODE(hr_inicial,(to_char(to_date(hr_hist_inicio,'hh24:mi') -1/(24*60),'hh24:mi')),hr_hist_inicio,hr_inicial,
DECODE(hr_inicial,(to_char(to_date(hr_hist_inicio,'hh24:mi') +1/(24*60),'hh24:mi')),hr_hist_inicio,hr_inicial))))))))))into hr_inicial
from dual;
select
decode(hr_inicio_intervalo,(to_char(to_date(hr_hist_intervalo,'hh24:mi') -5/(24*60),'hh24:mi')),hr_hist_intervalo,hr_inicio_intervalo,
DECODE(hr_inicio_intervalo,(to_char(to_date(hr_hist_intervalo,'hh24:mi') +5/(24*60),'hh24:mi')),hr_hist_intervalo,HR_INICIO_INTERVALO,
DECODE(hr_inicio_intervalo,(to_char(to_date(hr_hist_intervalo,'hh24:mi') -4/(24*60),'hh24:mi')),hr_hist_intervalo,HR_INICIO_INTERVALO,
DECODE(hr_inicio_intervalo,(to_char(to_date(hr_hist_intervalo,'hh24:mi') +4/(24*60),'hh24:mi')),hr_hist_intervalo,HR_INICIO_INTERVALO,
DECODE(hr_inicio_intervalo,(to_char(to_date(hr_hist_intervalo,'hh24:mi') -3/(24*60),'hh24:mi')),hr_hist_intervalo,HR_INICIO_INTERVALO,
DECODE(hr_inicio_intervalo,(to_char(to_date(hr_hist_intervalo,'hh24:mi') +3/(24*60),'hh24:mi')),hr_hist_intervalo,HR_INICIO_INTERVALO,
DECODE(hr_inicio_intervalo,(to_char(to_date(hr_hist_intervalo,'hh24:mi') -2/(24*60),'hh24:mi')),hr_hist_intervalo,HR_INICIO_INTERVALO,
DECODE(hr_inicio_intervalo,(to_char(to_date(hr_hist_intervalo,'hh24:mi') +2/(24*60),'hh24:mi')),hr_hist_intervalo,HR_INICIO_INTERVALO,
DECODE(hr_inicio_intervalo,(to_char(to_date(hr_hist_intervalo,'hh24:mi') -1/(24*60),'hh24:mi')),hr_hist_intervalo,HR_INICIO_INTERVALO,
DECODE(hr_inicio_intervalo,(to_char(to_date(hr_hist_intervalo,'hh24:mi') +1/(24*60),'hh24:mi')),hr_hist_intervalo,HR_INICIO_INTERVALO))))))))))INTO HR_INICIO_INTERVALO
from dual;
select
decode(hr_final_intervalo,(to_char(to_date(hr_hist_retorno,'hh24:mi') -5/(24*60),'hh24:mi')),hr_hist_retorno,hr_final_intervalo,
DECODE(hr_final_intervalo,(to_char(to_date(hr_hist_retorno,'hh24:mi') +5/(24*60),'hh24:mi')),hr_hist_retorno,hr_final_intervalo,
DECODE(hr_final_intervalo,(to_char(to_date(hr_hist_retorno,'hh24:mi') -4/(24*60),'hh24:mi')),hr_hist_retorno,hr_final_intervalo,
DECODE(hr_final_intervalo,(to_char(to_date(hr_hist_retorno,'hh24:mi') +4/(24*60),'hh24:mi')),hr_hist_retorno,hr_final_intervalo,
DECODE(hr_final_intervalo,(to_char(to_date(hr_hist_retorno,'hh24:mi') -3/(24*60),'hh24:mi')),hr_hist_retorno,hr_final_intervalo,
DECODE(hr_final_intervalo,(to_char(to_date(hr_hist_retorno,'hh24:mi') +3/(24*60),'hh24:mi')),hr_hist_retorno,hr_final_intervalo,
DECODE(hr_final_intervalo,(to_char(to_date(hr_hist_retorno,'hh24:mi') -2/(24*60),'hh24:mi')),hr_hist_retorno,hr_final_intervalo,
DECODE(hr_final_intervalo,(to_char(to_date(hr_hist_retorno,'hh24:mi') +2/(24*60),'hh24:mi')),hr_hist_retorno,hr_final_intervalo,
DECODE(hr_final_intervalo,(to_char(to_date(hr_hist_retorno,'hh24:mi') -1/(24*60),'hh24:mi')),hr_hist_retorno,hr_final_intervalo,
DECODE(hr_final_intervalo,(to_char(to_date(hr_hist_retorno,'hh24:mi') +1/(24*60),'hh24:mi')),hr_hist_retorno,hr_final_intervalo))))))))))into hr_final_intervalo
from dual;
select
(decode(hr_final,(to_char(to_date(hr_hist_saida,'hh24:mi') -5/(24*60),'hh24:mi')),hr_hist_saida,hr_final,
DECODE(hr_final,(to_char(to_date(hr_hist_saida,'hh24:mi') +5/(24*60),'hh24:mi')),hr_hist_saida,hr_final,
DECODE(hr_final,(to_char(to_date(hr_hist_saida,'hh24:mi') -4/(24*60),'hh24:mi')),hr_hist_saida,hr_final,
DECODE(hr_final,(to_char(to_date(hr_hist_saida,'hh24:mi') +4/(24*60),'hh24:mi')),hr_hist_saida,hr_final,
DECODE(hr_final,(to_char(to_date(hr_hist_saida,'hh24:mi') -3/(24*60),'hh24:mi')),hr_hist_saida,hr_final,
DECODE(hr_final,(to_char(to_date(hr_hist_saida,'hh24:mi') +3/(24*60),'hh24:mi')),hr_hist_saida,hr_final,
DECODE(hr_final,(to_char(to_date(hr_hist_saida,'hh24:mi') -2/(24*60),'hh24:mi')),hr_hist_saida,hr_final,
DECODE(hr_final,(to_char(to_date(hr_hist_saida,'hh24:mi') +2/(24*60),'hh24:mi')),hr_hist_saida,hr_final,
DECODE(hr_final,(to_char(to_date(hr_hist_saida,'hh24:mi') -1/(24*60),'hh24:mi')),hr_hist_saida,hr_final,
DECODE(hr_final,(to_char(to_date(hr_hist_saida,'hh24:mi') +1/(24*60),'hh24:mi')),hr_hist_saida,hr_final)))))))))))into hr_final
from dual;
select
decode(SIGN(((subStr(hr_hist_retorno,1,2)*60) + subStr(hr_hist_retorno,4,2))-((subStr(hr_final_intervalo,1,2)*60) + subStr(hr_final_intervalo,4,2))),-1,
((subStr(hr_hist_retorno,1,2)*60) + subStr(hr_hist_retorno,4,2))-((subStr(hr_final_intervalo,1,2)*60) + subStr(hr_final_intervalo,4,2)),
decode(SIGN(((subStr(hr_hist_retorno,1,2)*60) + subStr(hr_hist_retorno,4,2))-((subStr(hr_final_intervalo,1,2)*60) + subStr(hr_final_intervalo,4,2))),-1,NULL,0))+
DECODE(((subStr(hr_final_intervalo,1,2)*60) + subStr(hr_final_intervalo,4,2)),NULL,((subStr(hr_hist_retorno,1,2)*60) + subStr(hr_hist_retorno,4,2))-((subStr(hr_hist_saida,1,2)*60) + subStr(hr_hist_saida,4,2)),0)+
DECODE(SIGN(((subStr(hr_hist_inicio,1,2)*60) + subStr(hr_hist_inicio,4,2))-((subStr(hr_inicial,1,2)*60) + subStr(hr_inicial,4,2))),-1,
((subStr(hr_hist_inicio,1,2)*60) + subStr(hr_hist_inicio,4,2))-((subStr(hr_inicial,1,2)*60) + subStr(hr_inicial,4,2)),
DECODE(SIGN(((subStr(hr_hist_inicio,1,2)*60) + subStr(hr_hist_inicio,4,2))-((subStr(hr_inicial,1,2)*60) + subStr(hr_inicial,4,2))),-1,NULL,0))+
DECODE(((subStr(hr_inicial,1,2)*60) + subStr(hr_inicial,4,2)),NULL,((subStr(hr_hist_inicio,1,2)*60) + subStr(hr_hist_inicio,4,2))-((subStr(hr_hist_intervalo,1,2)*60) + subStr(hr_hist_intervalo,4,2)),0)+
DECODE(((subStr(HR_INICIO_INTERVALO,1,2)*60) + subStr(HR_INICIO_INTERVALO,4,2)),NULL,((subStr(hr_hist_inicio,1,2)*60) + subStr(hr_hist_inicio,4,2))-((subStr(hr_hist_intervalo,1,2)*60) + subStr(hr_hist_intervalo,4,2)),0) +
DECODE(SIGN(((subStr(hr_final,1,2)*60) + subStr(hr_final,4,2))-((subStr(hr_hist_saida,1,2)*60) + subStr(hr_hist_saida,4,2))),-1,
((subStr(hr_final,1,2)*60) + subStr(hr_final,4,2))-((subStr(hr_hist_saida,1,2)*60) + subStr(hr_hist_saida,4,2)),
DECODE(SIGN(((subStr(hr_final,1,2)*60) + subStr(hr_final,4,2))-((subStr(hr_hist_saida,1,2)*60) + subStr(hr_hist_saida,4,2))),-1,NULL,0))+
DECODE(((subStr(hr_final,1,2)*60) + subStr(hr_final,4,2)),NULL,((subStr(hr_hist_retorno,1,2)*60) + subStr(hr_hist_retorno,4,2))-((subStr(hr_hist_saida,1,2)*60) + subStr(hr_hist_saida,4,2)),0)+
DECODE(SIGN(((subStr(hr_inicio_intervalo,1,2)*60) + TO_NUMBER(REPLACE(substr(HR_INICIO_INTERVALO,4,2),':',''), '99'))-((subStr(hr_hist_intervalo,1,2)*60) + subStr(hr_hist_intervalo,4,2))),-1,
((subStr(hr_inicio_intervalo,1,2)*60) + TO_NUMBER(REPLACE(substr(HR_INICIO_INTERVALO,4,2),':',''), '99'))-((subStr(hr_hist_intervalo,1,2)*60) + subStr(hr_hist_intervalo,4,2)),
DECODE(SIGN(((subStr(hr_inicio_intervalo,1,2)*60) + TO_NUMBER(REPLACE(substr(HR_INICIO_INTERVALO,4,2),':',''), '99'))-((subStr(hr_hist_intervalo,1,2)*60) + subStr(hr_hist_intervalo,4,2))),-1,NULL,0))into saldonegativo
from dual;
vsaidanegativo:=saldonegativo;
return vsaidanegativo;
end;
Selecionar tudo
create or replace
FUNCTION fn_extrapositivo(HR_INICIAL_ IN VARCHAR2 ,HR_INICIO_INTERVALO_ in varchar2,HR_FINAL_INTERVALO_ in varchar2,HR_FINAL_ in varchar2 ,HR_HIST_INICIO_ in varchar2 ,HR_HIST_INTERVALO_ in varchar2 ,HR_HIST_RETORNO_ in varchar2,HR_HIST_SAIDA_ in varchar2)
RETURN number IS /*Zerar as batidas que estão dentro 10 minutos diários, 5 minutos para mais e 5 minutos para menos.Wilke 21/10/2014*/
vs_saida varchar2(10);
vSALDOPOSITIVO number;
hr_inicial varchar2(10);
hr_hist_inicio VARCHAR2(5);
hr_inicio_intervalo varchar2(5);
hr_hist_intervalo varchar2(5);
hr_final_intervalo varchar2(5);
hr_hist_retorno varchar2(5);
hr_final varchar2(5);
hr_hist_saida varchar2(5);
SALDOPOSITIVO number;
BEGIN
hr_inicial:=HR_INICIAL_;
hr_hist_inicio:=HR_HIST_INICIO_;
hr_inicio_intervalo:=HR_INICIO_INTERVALO_;
hr_hist_intervalo:=HR_HIST_INTERVALO_;
hr_final_intervalo:=HR_FINAL_INTERVALO_;
hr_hist_retorno:=HR_HIST_RETORNO_;
hr_final:=HR_FINAL_;
hr_hist_saida:=HR_HIST_SAIDA_;
SALDOPOSITIVO:=0;
select decode(hr_inicial,(to_char(to_date(hr_hist_inicio,'hh24:mi') -5/(24*60),'hh24:mi')),hr_hist_inicio,hr_inicial,
DECODE(hr_inicial,(to_char(to_date(hr_hist_inicio,'hh24:mi') +5/(24*60),'hh24:mi')),hr_hist_inicio,hr_inicial,
DECODE(hr_inicial,(to_char(to_date(hr_hist_inicio,'hh24:mi') -4/(24*60),'hh24:mi')),hr_hist_inicio,hr_inicial,
DECODE(hr_inicial,(to_char(to_date(hr_hist_inicio,'hh24:mi') +4/(24*60),'hh24:mi')),hr_hist_inicio,hr_inicial,
DECODE(hr_inicial,(to_char(to_date(hr_hist_inicio,'hh24:mi') -3/(24*60),'hh24:mi')),hr_hist_inicio,hr_inicial,
DECODE(hr_inicial,(to_char(to_date(hr_hist_inicio,'hh24:mi') +3/(24*60),'hh24:mi')),hr_hist_inicio,hr_inicial,
DECODE(hr_inicial,(to_char(to_date(hr_hist_inicio,'hh24:mi') -2/(24*60),'hh24:mi')),hr_hist_inicio,hr_inicial,
DECODE(hr_inicial,(to_char(to_date(hr_hist_inicio,'hh24:mi') +2/(24*60),'hh24:mi')),hr_hist_inicio,hr_inicial,
DECODE(hr_inicial,(to_char(to_date(hr_hist_inicio,'hh24:mi') -1/(24*60),'hh24:mi')),hr_hist_inicio,hr_inicial,
DECODE(hr_inicial,(to_char(to_date(hr_hist_inicio,'hh24:mi') +1/(24*60),'hh24:mi')),hr_hist_inicio,hr_inicial))))))))))into hr_inicial
from dual;
select
decode(hr_inicio_intervalo,(to_char(to_date(hr_hist_intervalo,'hh24:mi') -5/(24*60),'hh24:mi')),hr_hist_intervalo,hr_inicio_intervalo,
DECODE(hr_inicio_intervalo,(to_char(to_date(hr_hist_intervalo,'hh24:mi') +5/(24*60),'hh24:mi')),hr_hist_intervalo,HR_INICIO_INTERVALO,
DECODE(hr_inicio_intervalo,(to_char(to_date(hr_hist_intervalo,'hh24:mi') -4/(24*60),'hh24:mi')),hr_hist_intervalo,HR_INICIO_INTERVALO,
DECODE(hr_inicio_intervalo,(to_char(to_date(hr_hist_intervalo,'hh24:mi') +4/(24*60),'hh24:mi')),hr_hist_intervalo,HR_INICIO_INTERVALO,
DECODE(hr_inicio_intervalo,(to_char(to_date(hr_hist_intervalo,'hh24:mi') -3/(24*60),'hh24:mi')),hr_hist_intervalo,HR_INICIO_INTERVALO,
DECODE(hr_inicio_intervalo,(to_char(to_date(hr_hist_intervalo,'hh24:mi') +3/(24*60),'hh24:mi')),hr_hist_intervalo,HR_INICIO_INTERVALO,
DECODE(hr_inicio_intervalo,(to_char(to_date(hr_hist_intervalo,'hh24:mi') -2/(24*60),'hh24:mi')),hr_hist_intervalo,HR_INICIO_INTERVALO,
DECODE(hr_inicio_intervalo,(to_char(to_date(hr_hist_intervalo,'hh24:mi') +2/(24*60),'hh24:mi')),hr_hist_intervalo,HR_INICIO_INTERVALO,
DECODE(hr_inicio_intervalo,(to_char(to_date(hr_hist_intervalo,'hh24:mi') -1/(24*60),'hh24:mi')),hr_hist_intervalo,HR_INICIO_INTERVALO,
DECODE(hr_inicio_intervalo,(to_char(to_date(hr_hist_intervalo,'hh24:mi') +1/(24*60),'hh24:mi')),hr_hist_intervalo,HR_INICIO_INTERVALO))))))))))INTO HR_INICIO_INTERVALO
from dual;
select
decode(hr_final_intervalo,(to_char(to_date(hr_hist_retorno,'hh24:mi') -5/(24*60),'hh24:mi')),hr_hist_retorno,hr_final_intervalo,
DECODE(hr_final_intervalo,(to_char(to_date(hr_hist_retorno,'hh24:mi') +5/(24*60),'hh24:mi')),hr_hist_retorno,hr_final_intervalo,
DECODE(hr_final_intervalo,(to_char(to_date(hr_hist_retorno,'hh24:mi') -4/(24*60),'hh24:mi')),hr_hist_retorno,hr_final_intervalo,
DECODE(hr_final_intervalo,(to_char(to_date(hr_hist_retorno,'hh24:mi') +4/(24*60),'hh24:mi')),hr_hist_retorno,hr_final_intervalo,
DECODE(hr_final_intervalo,(to_char(to_date(hr_hist_retorno,'hh24:mi') -3/(24*60),'hh24:mi')),hr_hist_retorno,hr_final_intervalo,
DECODE(hr_final_intervalo,(to_char(to_date(hr_hist_retorno,'hh24:mi') +3/(24*60),'hh24:mi')),hr_hist_retorno,hr_final_intervalo,
DECODE(hr_final_intervalo,(to_char(to_date(hr_hist_retorno,'hh24:mi') -2/(24*60),'hh24:mi')),hr_hist_retorno,hr_final_intervalo,
DECODE(hr_final_intervalo,(to_char(to_date(hr_hist_retorno,'hh24:mi') +2/(24*60),'hh24:mi')),hr_hist_retorno,hr_final_intervalo,
DECODE(hr_final_intervalo,(to_char(to_date(hr_hist_retorno,'hh24:mi') -1/(24*60),'hh24:mi')),hr_hist_retorno,hr_final_intervalo,
DECODE(hr_final_intervalo,(to_char(to_date(hr_hist_retorno,'hh24:mi') +1/(24*60),'hh24:mi')),hr_hist_retorno,hr_final_intervalo))))))))))into hr_final_intervalo
from dual;
select
(decode(hr_final,(to_char(to_date(hr_hist_saida,'hh24:mi') -5/(24*60),'hh24:mi')),hr_hist_saida,hr_final,
DECODE(hr_final,(to_char(to_date(hr_hist_saida,'hh24:mi') +5/(24*60),'hh24:mi')),hr_hist_saida,hr_final,
DECODE(hr_final,(to_char(to_date(hr_hist_saida,'hh24:mi') -4/(24*60),'hh24:mi')),hr_hist_saida,hr_final,
DECODE(hr_final,(to_char(to_date(hr_hist_saida,'hh24:mi') +4/(24*60),'hh24:mi')),hr_hist_saida,hr_final,
DECODE(hr_final,(to_char(to_date(hr_hist_saida,'hh24:mi') -3/(24*60),'hh24:mi')),hr_hist_saida,hr_final,
DECODE(hr_final,(to_char(to_date(hr_hist_saida,'hh24:mi') +3/(24*60),'hh24:mi')),hr_hist_saida,hr_final,
DECODE(hr_final,(to_char(to_date(hr_hist_saida,'hh24:mi') -2/(24*60),'hh24:mi')),hr_hist_saida,hr_final,
DECODE(hr_final,(to_char(to_date(hr_hist_saida,'hh24:mi') +2/(24*60),'hh24:mi')),hr_hist_saida,hr_final,
DECODE(hr_final,(to_char(to_date(hr_hist_saida,'hh24:mi') -1/(24*60),'hh24:mi')),hr_hist_saida,hr_final,
DECODE(hr_final,(to_char(to_date(hr_hist_saida,'hh24:mi') +1/(24*60),'hh24:mi')),hr_hist_saida,hr_final)))))))))))into hr_final
from dual;
select
DECODE(SIGN( ((subStr(hr_hist_inicio,1,2)*60) + subStr(hr_hist_inicio,4,2))-((subStr(hr_inicial,1,2)*60) + subStr(hr_inicial,4,2))),+1,
((subStr(hr_hist_inicio,1,2)*60) + subStr(hr_hist_inicio,4,2))-((subStr(hr_inicial,1,2)*60) + subStr(hr_inicial,4,2)),
DECODE(SIGN(((subStr(hr_hist_inicio,1,2)*60) + subStr(hr_hist_inicio,4,2))-((subStr(hr_inicial,1,2)*60) + subStr(hr_inicial,4,2))),+1,NULL,0))+
DECODE(SIGN(((subStr(hr_final,1,2)*60) + subStr(hr_final,4,2))-((subStr(hr_hist_saida,1,2)*60) + subStr(hr_hist_saida,4,2))),+1,
((subStr(hr_final,1,2)*60) + subStr(hr_final,4,2))-((subStr(hr_hist_saida,1,2)*60) + subStr(hr_hist_saida,4,2)),
DECODE(SIGN(((subStr(hr_final,1,2)*60) + subStr(hr_final,4,2))-((subStr(hr_hist_saida,1,2)*60) + subStr(hr_hist_saida,4,2))),+1,NULL,0))+
DECODE(SIGN(((subStr(hr_inicio_intervalo,1,2)*60) + TO_NUMBER(REPLACE(substr(HR_INICIO_INTERVALO,4,2),':',''), '99'))-((subStr(hr_hist_intervalo,1,2)*60) + subStr(hr_hist_intervalo,4,2))),+1,
((subStr(hr_inicio_intervalo,1,2)*60) + TO_NUMBER(REPLACE(substr(HR_INICIO_INTERVALO,4,2),':',''), '99'))-((subStr(hr_hist_intervalo,1,2)*60) + subStr(hr_hist_intervalo,4,2)),
DECODE(SIGN(((subStr(hr_inicio_intervalo,1,2)*60) + TO_NUMBER(REPLACE(substr(HR_INICIO_INTERVALO,4,2),':',''), '99'))-((subStr(hr_hist_intervalo,1,2)*60) + subStr(hr_hist_intervalo,4,2))),+1,NULL,0))into SALDOPOSITIVO
from dual;
vSALDOPOSITIVO:=SALDOPOSITIVO;
return vSALDOPOSITIVO;
end;