You are on page 1of 2

ALTER PROCEDURE SP_ESOC_DADOS_S1200_DETOPER (

e_id_tbemphos Type Of Column tbemphos.cod,


e_codfunc Type Of Column fpfunc.cod_func,
e_codlotacao Type Of Column fplottribcad.id,
e_id_fpremessa Type Of Column fpremessa.id_remessa)
Returns (
id_fpopsaudefunc Type Of Column fpopsaudefunc.id,
cnpjoper Varchar(14),
regans Varchar(6),
vrpgtit Numeric(14,2))
As
Declare f_cod_emp Type Of Column fpfunc.cod_emp;
Declare f_cod_func Type Of Column fpfunc.cod_func;
Declare f_id_remessa Type Of Column fprescisao.id_remessa;

Begin
Select Distinct f.cod_emp,
f.cod_func,
fi.id_remessa
From fpfunc f
Inner Join fpfichaf fi On fi.cod_emp = f.cod_emp
And fi.cod_func = f.cod_func
Inner Join fpficha_evento fe On fe.id_remessa = fi.id_remessa
And fe.cod_emp = fi.cod_emp
And fe.cod_func = fi.cod_func
Inner Join fpremessa re On re.id_remessa = fi.id_remessa
Inner Join fphstlottrib trib On trib.cod_emp = f.cod_emp
And trib.cod_func = f.cod_func
And trib.data_vigencia = (Select Max(tribi.data_vigencia)
From fphstlottrib tribi
Where tribi.cod_emp = f.cod_emp
And tribi.cod_func =
f.cod_func
And tribi.id_fplottribcad
= :e_codlotacao
And tribi.data_vigencia <=
re.dta_fin_apur)
Inner Join fplottribcad On (fplottribcad.id = trib.id_fplottribcad)
Inner Join fpevento e On e.id_evento = fe.id_evento
Inner Join fpnatrubrica nt On nt.id = e.id_fpnatrubrica
Inner Join fphstsit hs On hs.cod_emp = f.cod_emp
And hs.cod_func = f.cod_func
And Cast(hs.dta_alter As Date) = (Select Max(Cast(hs1.dta_alter As
Date))
From fphstsit hs1
Where hs1.cod_emp =
hs.cod_emp
And hs1.cod_func =
hs.cod_func
And
Cast(hs1.dta_alter As Date) < Cast(re.dta_fin_apur As Date))
Join fphstlottrib_fpficha_evento fpfe On (fpfe.id_fpficha_evento = fe.id)
Where f.cod_emp = :e_id_tbemphos
And f.cod_func = :e_codfunc
And re.id_remessa = :e_id_fpremessa
And hs.cod_sit Not In ('D', 'N')
And fplottribcad.id = :e_codlotacao
And nt.id = 9219
And Exists(Select fpopersaude.id_fpevento
From fpopersaude
Inner Join fpopsaudefunc On
(fpopsaudefunc.id_fpopersaude = fpopersaude.id)
Where fpopersaude.id_fpevento = e.id_evento
And re.dta_fin_apur Between
fpopsaudefunc.data_vigencia_inicial And Coalesce(fpopsaudefunc.data_vigencia_final,
'31.12.2999'))
Into :f_cod_emp,
:f_cod_func,
:f_id_remessa;

For Select sf.id As id_fpopsaudefunc,


Lpad(s.cnpj, 14, 0) cnpjoper,
Lpad(s.registro_ans, 6, 0) regans,
(sf.desconto_fixo_mes + Coalesce((Select Sum(pp.coparticipacao)
From fpoplancopart pp
Where pp.id_fpdepend Is Null
And pp.id_fpopersaude =
sf.id_fpopersaude
And pp.id_fpremessa
= :f_id_remessa
And pp.cod_emp_fpfunc =
sf.cod_emp_fpfunc
And pp.cod_func_fpfunc
= sf.cod_func_fpfunc), 0)) vrpgtit
From fpopersaude s
Inner Join fpopsaudefunc sf On sf.id_fpopersaude = s.id
Where sf.cod_emp_fpfunc = :f_cod_emp
And sf.cod_func_fpfunc = :f_cod_func
Into :id_fpopsaudefunc,
:cnpjoper,
:regans,
:vrpgtit
Do
Begin
Suspend;
End
End;

You might also like