...
| Bloco de código | ||||||||||
|---|---|---|---|---|---|---|---|---|---|---|
| ||||||||||
with AcordosBase as (select Acordo.NroAcordo,
Acordo.NroEmpresa,
Acordo.SeqFornecedor,
Acordo.SeqComprador,
Acordo.VlrAcordo,
Acordo.IndUtilContrSald,
max(case
when Verba.NroAcordo is not null then
1
else
0
end) TemVerba,
max(case
when Verba.DtaFinal >= trunc(sysdate) and Verba.QtdLimiteVerba > decode(nvl(Verba.QtdUtilizadaVerba, 0), 0, -1, Verba.QtdUtilizadaVerba) then
1
else
0
end) TemVerbaVigente
from Msu_AcordoPromoc Acordo
left join Mrl_CustoVerba Verba on Acordo.NroAcordo = Verba.Nroacordo
and Acordo.NroEmpresa = Verba.NroEmpresaAcordo
where Acordo.AppOrigem = 2
and Acordo.DtaInicial >= pdDtaInicial
and Acordo.DtaFim + 1 <= pdDtaFinal
and nvl(Verba.IndVerbaAutoZeraSaldo, 'N') = 'N'
and nvl(Acordo.StatusAcordo, 'P') != 'R'
and Acordo.SituacaoAcordo not in ('R', 'C')
and nvl(Verba.IndTipAcordo, 'R') = 'R'
and Verba.StatusVerba = 'A'
group by Acordo.NroAcordo,
Acordo.NroEmpresa,
Acordo.SeqFornecedor,
Acordo.SeqComprador,
Acordo.VlrAcordo,
Acordo.IndUtilContrSald),
-- SALDO DO ACORDO
SaldoAcordo as (select AcordosBase.NroAcordo,
AcordosBase.NroEmpresa,
fsaldoacordopromoc(AcordosBase.NroEmpresa,
AcordosBase.NroAcordo,
AcordosBase.SeqFornecedor) as VlrSaldo
from AcordosBase AcordosBase),
-- ACORDOS COM VERBAS VENCIDAS
AcordosComVerba as (select AcordosBase.*,
'S' as IndExisteVerba,
AcordosBase.NroEmpresa as NroEmpAcordo,
Saldo.VlrSaldo
from AcordosBase AcordosBase
left join SaldoAcordo Saldo on AcordosBase.NroAcordo = Saldo.Nroacordo
and AcordosBase.NroEmpresa = Saldo.NroEmpresa
where Saldo.VlrSaldo > 0
and AcordosBase.TemVerba = 1
and AcordosBase.TemVerbaVigente = 0),
-- ACORDOS SEM VERBA
AcordosSemVerba as (select AcordosBase.*,
'N' as IndExisteVerba,
AcordosBase.NroEmpresa AS NroEmpAcordo,
Saldo.VlrSaldo
from AcordosBase AcordosBase
left join SaldoAcordo Saldo on AcordosBase.NroAcordo = Saldo.Nroacordo
and AcordosBase.NroEmpresa = Saldo.NroEmpresa
where Saldo.VlrSaldo > 0
and AcordosBase.TemVerba = 0)
select *
from AcordosComVerba
union all
select *
from AcordosSemVerba |
...