Skip to content

Commit

Permalink
Configurazione CNR: gestita, per determinate configurazioni, la conte…
Browse files Browse the repository at this point in the history
…mporanea presenza in tabella sia di record con esercizio 0 che di record con esercizio valido. Gestione aggiornata per variabili: CDR_PERSONALE,CDR_SERVIZIO_ENTE,UO_ACCREDITAMENTO_SAC,UO_DISTINTA_TUTTA_SAC,UO_RAGIONERIA,UO_VERSAMENTO_CORI,UO_VERSAMENTO_CORI_CONTO_BI,UO_VERSAMENTO_CORI_TUTTA_SAC,UO_VERSAMENTO_IVA
  • Loading branch information
raffaelepagano committed Dec 5, 2019
1 parent 5d9a8dd commit dbc0e6d
Show file tree
Hide file tree
Showing 38 changed files with 22,444 additions and 22,198 deletions.
Expand Up @@ -200,11 +200,11 @@ TIPO_ENTE CONSTANT VARCHAR2(10) := 'ENTE';

-- Estrae l'UO del personale leggendola da configurazione CNR

function getUOPersonale return unita_organizzativa%rowtype;
function getUOPersonale(aEs number) return unita_organizzativa%rowtype;

-- Estrae il CDR del personale leggendolo da configurazione CNR

function getCDRPersonale return cdr%rowtype;
function getCDRPersonale(aEs number) return cdr%rowtype;

-- Estrae il cdr responsabile dell'UO

Expand Down Expand Up @@ -255,4 +255,10 @@ Function GETDESDIPARTIMENTO (aCd_dip VARCHAR2) return VARCHAR2;
function isUOSAC(aUO varchar2) return boolean;

function getCdCdrEnte return cdr.cd_centro_responsabilita%type;

function getCdCDRPersonale(aEs number) return cdr.cd_centro_responsabilita%type;
function getCdUOVersCori(aEs number) return unita_organizzativa.cd_unita_organizzativa%Type;
function getCdUOVersCoriTuttaSAC(aEs number) return unita_organizzativa.cd_unita_organizzativa%Type;
function getCdUOVersCoriContoBI(aEs number) return unita_organizzativa.cd_unita_organizzativa%Type;
function getCdUOVersIVA(aEs number) return unita_organizzativa.cd_unita_organizzativa%Type;
end;
128 changes: 109 additions & 19 deletions sigla-backend/src/main/resources/expsigladb/Package/CNRCTB020_BODY.sql
Expand Up @@ -2,7 +2,7 @@
-- DDL for Package Body CNRCTB020
--------------------------------------------------------

CREATE OR REPLACE PACKAGE BODY "CNRCTB020" is
CREATE OR REPLACE PACKAGE BODY "CNRCTB020" is


function getCDCDSENTE(aEs number) return unita_organizzativa.CD_unita_organizzativa%Type Is
Expand Down Expand Up @@ -352,7 +352,7 @@ end;
begin
-- estraggo l'UO di servizio versamento cori (tipo SAC)
select * into aUOCDS from unita_organizzativa a where
a.cd_unita_organizzativa = CNRCTB015.GETVAL01PERCHIAVE('UO_SPECIALE','UO_VERSAMENTO_CORI')
a.cd_unita_organizzativa = getCdUOVersCori(aEs)
and cd_tipo_unita = TIPO_SAC
and exists (select 1 from v_unita_organizzativa_valida where
esercizio = aEs
Expand All @@ -369,7 +369,7 @@ end;
begin
-- estraggo l'UO di servizio versamento cori unificato per tutta la SAC(tipo SAC)
select * into aUOCDS from unita_organizzativa a where
a.cd_unita_organizzativa = CNRCTB015.GETVAL01PERCHIAVE('UO_SPECIALE','UO_VERSAMENTO_CORI_TUTTA_SAC')
a.cd_unita_organizzativa = getCdUOVersCoriTuttaSAC(aEs)
and cd_tipo_unita = TIPO_SAC
and exists (select 1 from v_unita_organizzativa_valida where
esercizio = aEs
Expand All @@ -386,7 +386,7 @@ end;
begin
-- estraggo l'UO di servizio versamento cori su Conto Banca d'Ialia
select * into aUOCDS from unita_organizzativa a where
a.cd_unita_organizzativa = CNRCTB015.GETVAL01PERCHIAVE('UO_SPECIALE','UO_VERSAMENTO_CORI_CONTO_BI')
a.cd_unita_organizzativa = getCdUOVersCoriContoBI(aEs)
and exists (select 1 from v_unita_organizzativa_valida where
esercizio = aEs
and cd_unita_organizzativa = a.cd_unita_organizzativa);
Expand All @@ -402,7 +402,7 @@ end;
begin
-- estraggo l'UO di servizio versamneto IVA (deve essere di tipo SAC)
select * into aUOCDS from unita_organizzativa a where
a.cd_unita_organizzativa = CNRCTB015.GETVAL01PERCHIAVE('UO_SPECIALE','UO_VERSAMENTO_IVA')
a.cd_unita_organizzativa = getCdUOVersIVA(aEs)
and cd_tipo_unita = TIPO_SAC
and exists (select 1 from v_unita_organizzativa_valida where
esercizio = aEs
Expand Down Expand Up @@ -432,12 +432,12 @@ end;
return false;
end;

function getUOPersonale return unita_organizzativa%rowtype is
function getUOPersonale(aEs number) return unita_organizzativa%rowtype is
aUO unita_organizzativa%rowtype;
aCDR cdr%rowtype;
aCdUo varchar2(30);
begin
aCDR:=getCDRPersonale;
aCDR:=getCDRPersonale(aEs);
aCdUO:=aCDR.cd_unita_organizzativa;
if aCdUo is null then
return null;
Expand All @@ -448,20 +448,20 @@ end;
return aUO;
end;

function getCDRPersonale return cdr%rowtype is
function getCDRPersonale(aEs number) return cdr%rowtype is
aCdCDR cdr.cd_centro_responsabilita%Type;
aCDR cdr%rowtype;
aCdCDR varchar2(30);
begin
aCdCDR:=CNRCTB015.GETVAL01PERCHIAVE(0,'CDR_SPECIALE','CDR_PERSONALE');
if aCdCDR is null then
return null;
end if;

select * into aCDR from cdr where
cd_centro_responsabilita = aCdCDR;
return aCDR;
end;
aCdCDR := getCdCDRPersonale(aEs);
if aCdCDR is null then
return null;
end if;
select * into aCDR
from cdr
where cd_centro_responsabilita = aCdCDR;

return aCDR;
End;

function getCDRResponsabileUO(aUO unita_organizzativa%rowtype) return cdr%rowtype is
aCdr cdr%rowtype;
Expand Down Expand Up @@ -727,4 +727,94 @@ Procedure ins_CDR (aDest CDR%rowtype) is
return false;
end if;
end;
end;
function getCdCDRPersonale(aEs number) return cdr.cd_centro_responsabilita%Type Is
aCdCDR varchar2(30);
noData EXCEPTION;
pragma exception_init(noData,-20020);
begin
Begin
aCdCDR:=CNRCTB015.GETVAL01PERCHIAVE(aEs,'CDR_SPECIALE','CDR_PERSONALE');
Exception
When noData Then
if aEs=0 Then
IBMERR001.RAISE_ERR_GENERICO('Chiave non trovata in tabella di configurazione cnr: CDR_SPECIALE-CDR_PERSONALE');
end if;
End;
if aCdCDR is null AND aEs!=0 then
aCdCDR:=CNRCTB015.GETVAL01PERCHIAVE(0,'CDR_SPECIALE','CDR_PERSONALE');
end if;
return aCdCDR;
end;
function getCdUOVersCori(aEs number) return unita_organizzativa.cd_unita_organizzativa%Type Is
aCdUO varchar2(30);
noData EXCEPTION;
pragma exception_init(noData,-20020);
begin
Begin
aCdUO:=CNRCTB015.GETVAL01PERCHIAVE(aEs,'UO_SPECIALE','UO_VERSAMENTO_CORI');
Exception
When noData Then
if aEs=0 Then
IBMERR001.RAISE_ERR_GENERICO('Chiave non trovata in tabella di configurazione cnr: UO_SPECIALE-UO_VERSAMENTO_CORI');
end if;
End;
if aCdUO is null AND aEs!=0 then
aCdUO:=CNRCTB015.GETVAL01PERCHIAVE(0,'UO_SPECIALE','UO_VERSAMENTO_CORI');
end if;
return aCdUO;
end;
function getCdUOVersCoriTuttaSAC(aEs number) return unita_organizzativa.cd_unita_organizzativa%Type Is
aCdUO varchar2(30);
noData EXCEPTION;
pragma exception_init(noData,-20020);
begin
Begin
aCdUO:=CNRCTB015.GETVAL01PERCHIAVE(aEs,'UO_SPECIALE','UO_VERSAMENTO_CORI_TUTTA_SAC');
Exception
When noData Then
if aEs=0 Then
IBMERR001.RAISE_ERR_GENERICO('Chiave non trovata in tabella di configurazione cnr: UO_SPECIALE-UO_VERSAMENTO_CORI_TUTTA_SAC');
end if;
End;
if aCdUO is null AND aEs!=0 then
aCdUO:=CNRCTB015.GETVAL01PERCHIAVE(0,'UO_SPECIALE','UO_VERSAMENTO_CORI_TUTTA_SAC');
end if;
return aCdUO;
end;
function getCdUOVersCoriContoBI(aEs number) return unita_organizzativa.cd_unita_organizzativa%Type Is
aCdUO varchar2(30);
noData EXCEPTION;
pragma exception_init(noData,-20020);
begin
Begin
aCdUO:=CNRCTB015.GETVAL01PERCHIAVE(aEs,'UO_SPECIALE','UO_VERSAMENTO_CORI_CONTO_BI');
Exception
When noData Then
if aEs=0 Then
IBMERR001.RAISE_ERR_GENERICO('Chiave non trovata in tabella di configurazione cnr: UO_SPECIALE-UO_VERSAMENTO_CORI_CONTO_BI');
end if;
End;
if aCdUO is null AND aEs!=0 then
aCdUO:=CNRCTB015.GETVAL01PERCHIAVE(0,'UO_SPECIALE','UO_VERSAMENTO_CORI_CONTO_BI');
end if;
return aCdUO;
end;
function getCdUOVersIVA(aEs number) return unita_organizzativa.cd_unita_organizzativa%Type Is
aCdUO varchar2(30);
noData EXCEPTION;
pragma exception_init(noData,-20020);
begin
Begin
aCdUO:=CNRCTB015.GETVAL01PERCHIAVE(aEs,'UO_SPECIALE','UO_VERSAMENTO_IVA');
Exception
When noData Then
if aEs=0 Then
IBMERR001.RAISE_ERR_GENERICO('Chiave non trovata in tabella di configurazione cnr: UO_SPECIALE-UO_VERSAMENTO_IVA');
end if;
End;
if aCdUO is null AND aEs!=0 then
aCdUO:=CNRCTB015.GETVAL01PERCHIAVE(0,'UO_SPECIALE','UO_VERSAMENTO_IVA');
end if;
return aCdUO;
end;
end;
Expand Up @@ -1061,7 +1061,7 @@ begin

-- Leggo il CDR del personale e la sua linea SAUOP

aCDRPersonale := CNRCTB020.GETCDRPERSONALE;
aCDRPersonale := CNRCTB020.GETCDRPERSONALE(aEsercizio);
aLASAUOP := CNRCTB010.getLASAUOP(aEsercizio, aCDRPersonale.cd_centro_responsabilita);

If nvl(recParametriCnr.fl_nuovo_pdg,'N') = 'Y' Then
Expand Down Expand Up @@ -3005,7 +3005,7 @@ procedure aggiornaLimiteSpesaVAR(aEsercizio number,apg_variazione number,tipo VA
Where id_classificazione = aElemento_voce.ID_CLASSIFICAZIONE;

-- Leggo il CDR del personale e la sua linea SAUOP
aCDRPersonale := CNRCTB020.GETCDRPERSONALE;
aCDRPersonale := CNRCTB020.GETCDRPERSONALE(aEsercizio);
aLASAUOP := CNRCTB010.getLASAUOP(aEsercizio, aCDRPersonale.cd_centro_responsabilita);

If aCV.CDR_ACCENTRATORE = aCDRPersonale.CD_CENTRO_RESPONSABILITA Then
Expand Down
Expand Up @@ -153,7 +153,7 @@

-- Leggo il CDR del personale e lock del PDG

aCDRPersonale:=CNRCTB020.GETCDRPERSONALE;
aCDRPersonale:=CNRCTB020.GETCDRPERSONALE(aEsercizio);
CNRCTB050.LOCKPDG(aEsercizio, aCDRPersonale.cd_centro_responsabilita);

-- Verifico che l'aggregato del CDR del personale NON sia chiuso in stato B
Expand Down Expand Up @@ -706,7 +706,7 @@

-- Leggo il CDR del personale

aCDRPersonale:=CNRCTB020.GETCDRPERSONALE;
aCDRPersonale:=CNRCTB020.GETCDRPERSONALE(aEsercizio);

-- Lock PDG del CDR del personale

Expand Down Expand Up @@ -808,7 +808,7 @@

-- Leggo il CDR del personale e lock del PDG

aCDRPersonale:=CNRCTB020.GETCDRPERSONALE;
aCDRPersonale:=CNRCTB020.GETCDRPERSONALE(aEsercizio);

-- Se il cdr del personale e il CDR in processo devo applicare il controllo a tutti i CDR validi

Expand Down
Expand Up @@ -108,7 +108,7 @@
Begin
-- Leggo il CDR del personale e lock del PDG

aCDRPersonale:=CNRCTB020.GETCDRPERSONALE;
aCDRPersonale:=CNRCTB020.GETCDRPERSONALE(aASSCDPLA.esercizio);

-- Leggo la linea di attivita per aggiornare gli importi del PDGP in base alla natura
Select * into aLATmp from linea_attivita
Expand Down Expand Up @@ -147,7 +147,7 @@
Begin
-- Leggo il CDR del personale e lock del PDG

aCDRPersonale:=CNRCTB020.GETCDRPERSONALE;
aCDRPersonale:=CNRCTB020.GETCDRPERSONALE(aASSCDPLA.esercizio);

-- Leggo la linea di attivita per aggiornare gli importi del PDGP in base alla natura
Select * into aLATmp from linea_attivita
Expand Down Expand Up @@ -319,7 +319,7 @@

-- Leggo il CDR del personale

aCDRPersonale:=CNRCTB020.GETCDRPERSONALE;
aCDRPersonale:=CNRCTB020.GETCDRPERSONALE(aEsercizio);

-- Lock del PDG del CDR in processo
CNRCTB051.LOCKPDGP(aEsercizio, aCdCdr);
Expand Down Expand Up @@ -1374,7 +1374,7 @@

-- Leggo il CDR del personale

aCDRPersonale:=CNRCTB020.GETCDRPERSONALE;
aCDRPersonale:=CNRCTB020.GETCDRPERSONALE(aEsercizio);

Select count(*) into aNum
From ass_cdp_pdgp
Expand Down
Expand Up @@ -532,7 +532,7 @@ end if;

aDateCont:=CNRCTB008.getTimestampContabile(aStip.esercizio,aTSNow);

aUOPersonale:=CNRCTB020.GETUOPERSONALE;
aUOPersonale:=CNRCTB020.GETUOPERSONALE(aStip.esercizio);
aUOPersonale:=CNRCTB020.GETUOVALIDA(aStip.esercizio,aUOPersonale.cd_unita_organizzativa);

aTerzoDivComp:=CNRCTB080.getTerzo(CNRCTB015.GETIM01PERCHIAVE(TERZO_SPECIALE,DIVERSI_STIPENDI));
Expand Down Expand Up @@ -815,7 +815,7 @@ end if;

aDateCont:=CNRCTB008.getTimestampContabile(aEs,aTSNow);

aUOPersonale:=CNRCTB020.GETUOPERSONALE;
aUOPersonale:=CNRCTB020.GETUOPERSONALE((aStip.esercizio);
aUOPersonale:=CNRCTB020.GETUOVALIDA(aStip.esercizio,aUOPersonale.cd_unita_organizzativa);

aGen:=null;
Expand Down
Expand Up @@ -337,7 +337,7 @@ if aNum4 > 0 and CNRCTB020.getCDCDSENTE(aMan.esercizio) = aMan.CD_CDS then
else
-- tesoreria unica
-- se la UO ? 000.407 e CD_TIPO_DOCUMENTO_AMM = GEN_CORV_S la modalit? di pagamento deve essere BI
uo := CNRCTB015.GETVAL01PERCHIAVE('UO_SPECIALE','UO_VERSAMENTO_IVA');
uo := CNRCTB020.getCdUOVersIVA(aEs);

select count(*) into aNum4
from
Expand Down
Expand Up @@ -62,12 +62,7 @@ From CDR, CDR CDR_ASS, PROGETTO_GEST MODU, PROGETTO_GEST COMM, PROGETTO_GEST P
From PDG_MODULO_SPESE_GEST PDG_SPE, V_CLASSIFICAZIONE_VOCI CLA, UNITA_ORGANIZZATIVA AREA
Where PDG_SPE.ID_CLASSIFICAZIONE = CLA.ID_CLASSIFICAZIONE AND
PDG_SPE.CD_CDS_AREA = AREA.CD_UNITA_ORGANIZZATIVA AND
NVL(CLA.CDR_ACCENTRATORE, 'xxx') != (Select VAL01
From CONFIGURAZIONE_CNR
Where ESERCIZIO = 0 And
CD_UNITA_FUNZIONALE = '*' And
CD_CHIAVE_PRIMARIA = 'CDR_SPECIALE' And
CD_CHIAVE_SECONDARIA = 'CDR_PERSONALE') And
NVL(CLA.CDR_ACCENTRATORE, 'xxx') != CNRCTB020.getCdCDRPersonale(PDG_SPE.ESERCIZIO) And
AREA.CD_TIPO_UNITA != 'AREA' And
PDG_SPE.FL_SOLA_LETTURA = 'N'
Group By PDG_SPE.ESERCIZIO, PDG_SPE.CD_CENTRO_RESPONSABILITA, PDG_SPE.PG_PROGETTO,
Expand All @@ -92,18 +87,8 @@ From CDR, CDR CDR_ASS, PROGETTO_GEST MODU, PROGETTO_GEST COMM, PROGETTO_GEST P
From PDG_MODULO_SPESE_GEST PDG_SPE, V_CLASSIFICAZIONE_VOCI CLA, UNITA_ORGANIZZATIVA AREA
Where PDG_SPE.ID_CLASSIFICAZIONE = CLA.ID_CLASSIFICAZIONE AND
PDG_SPE.CD_CDS_AREA = AREA.CD_UNITA_ORGANIZZATIVA AND
NVL(CLA.CDR_ACCENTRATORE, 'xxx') = (Select VAL01
From CONFIGURAZIONE_CNR
Where ESERCIZIO = 0 AND
CD_UNITA_FUNZIONALE = '*' AND
CD_CHIAVE_PRIMARIA = 'CDR_SPECIALE' AND
CD_CHIAVE_SECONDARIA = 'CDR_PERSONALE') AND
PDG_SPE.CD_CDR_ASSEGNATARIO != (Select VAL01
From CONFIGURAZIONE_CNR
Where ESERCIZIO = 0 AND
CD_UNITA_FUNZIONALE = '*' AND
CD_CHIAVE_PRIMARIA = 'CDR_SPECIALE' AND
CD_CHIAVE_SECONDARIA = 'CDR_PERSONALE') AND
NVL(CLA.CDR_ACCENTRATORE, 'xxx') = CNRCTB020.getCdCDRPersonale(PDG_SPE.ESERCIZIO) AND
PDG_SPE.CD_CDR_ASSEGNATARIO != CNRCTB020.getCdCDRPersonale(PDG_SPE.ESERCIZIO) AND
AREA.CD_TIPO_UNITA != 'AREA' AND
PDG_SPE.FL_SOLA_LETTURA = 'Y'
Group BY PDG_SPE.ESERCIZIO, PDG_SPE.CD_CENTRO_RESPONSABILITA, PDG_SPE.PG_PROGETTO,
Expand Down Expand Up @@ -149,12 +134,7 @@ From CDR, CDR CDR_ASS, PROGETTO_GEST MODU, PROGETTO_GEST COMM, PROGETTO_GEST P
From PDG_MODULO_SPESE_GEST PDG_SPE, V_CLASSIFICAZIONE_VOCI CLA, UNITA_ORGANIZZATIVA AREA
Where PDG_SPE.ID_CLASSIFICAZIONE = CLA.ID_CLASSIFICAZIONE AND
PDG_SPE.CD_CDS_AREA = AREA.CD_UNITA_ORGANIZZATIVA AND
NVL(PDG_SPE.CD_CDR_ASSEGNATARIO, 'xxx') = (Select VAL01
From CONFIGURAZIONE_CNR
Where ESERCIZIO = 0 AND
CD_UNITA_FUNZIONALE = '*' AND
CD_CHIAVE_PRIMARIA = 'CDR_SPECIALE' AND
CD_CHIAVE_SECONDARIA = 'CDR_PERSONALE')
NVL(PDG_SPE.CD_CDR_ASSEGNATARIO, 'xxx') = CNRCTB020.getCdCDRPersonale(PDG_SPE.ESERCIZIO)
Group BY PDG_SPE.ESERCIZIO, PDG_SPE.CD_CENTRO_RESPONSABILITA, PDG_SPE.PG_PROGETTO,
CD_CLASSIFICAZIONE, DS_CLASSIFICAZIONE, NR_LIVELLO, CD_LIVELLO1, CD_LIVELLO2, CD_LIVELLO3, CD_LIVELLO4, CD_LIVELLO5, CD_LIVELLO6, CD_LIVELLO7,
PDG_SPE.CD_CDR_ASSEGNATARIO, PDG_SPE.CD_LINEA_ATTIVITA,
Expand Down

0 comments on commit dbc0e6d

Please sign in to comment.