All Downloads are FREE. Search and download functionalities are using the official Maven repository.

expsigladb.Package.CNRCTB020_BODY.sql Maven / Gradle / Ivy

There is a newer version: 6.6.11
Show newest version
--------------------------------------------------------
--  DDL for Package Body CNRCTB020
--------------------------------------------------------

CREATE OR REPLACE PACKAGE BODY "CNRCTB020" is


 function getCDCDSENTE(aEs number) return unita_organizzativa.CD_unita_organizzativa%Type Is
  aUO unita_organizzativa.CD_unita_organizzativa%Type;
 begin
   select CD_unita_organizzativa
   into aUO from unita_organizzativa where
      fl_cds = 'Y'
    and cd_tipo_unita = TIPO_ENTE
  and esercizio_inizio <= aEs
  and esercizio_fine >= aEs;
  return aUO;
 exception when NO_DATA_FOUND then
  IBMERR001.RAISE_ERR_GENERICO('CDS ente valido non trovato in esercizio:'||aEs);
 end;

function getCdCdrEnte return cdr.cd_centro_responsabilita%Type Is
  aCDREnte cdr%rowtype;
begin
   aCDREnte:=getCdrEnte;
   return aCDREnte.cd_centro_responsabilita;
end;

 Function getUOENTE(aEs number) return unita_organizzativa%rowtype is
  aUO unita_organizzativa%rowtype;
 begin
   select * into aUO from unita_organizzativa where
      fl_cds = 'N'
  and to_number(cd_proprio_unita)=0
    and cd_tipo_unita = TIPO_ENTE
  and esercizio_inizio <= aEs
  and esercizio_fine >= aEs;
  return aUO;
 exception when NO_DATA_FOUND then
  IBMERR001.RAISE_ERR_GENERICO('UO ente valida non trovata in esercizio:'||aEs);
 end;

 function getCDSValido(aEs number, aCdCds varchar2) return unita_organizzativa%rowtype is
  aCDS unita_organizzativa%rowtype;
 begin
  begin
   select * into aCDS from unita_organizzativa a where
      a.fl_cds = 'Y'
    and a.cd_unita_organizzativa = aCdCds
    and exists (select 1 from v_unita_organizzativa_valida where
       esercizio = aEs
   and cd_unita_organizzativa = a.cd_unita_organizzativa);
   return aCDS;
  exception when NO_DATA_FOUND then
   IBMERR001.RAISE_ERR_GENERICO('CDS non valido o non definito in esercizio '||aEs);
  end;
 end;

 function getCdsSac(aEs number) return unita_organizzativa.cd_unita_organizzativa%Type Is
   aCDS varchar2(30);
   noData EXCEPTION;
   pragma exception_init(noData,-20020);
  begin
   Begin
     aCDS:=CNRCTB015.GETVAL01PERCHIAVE(aEs,'CDS_SPECIALE','CDS_SAC');
   Exception
     When noData Then
       if aEs=0 Then
         IBMERR001.RAISE_ERR_GENERICO('Chiave non trovata in tabella di configurazione cnr: CDS_SPECIALE-CDS_SAC');
      end if;
   End;
   if aCDS is null AND aEs!=0 then
      aCDS:=CNRCTB015.GETVAL01PERCHIAVE(0,'CDS_SPECIALE','CDS_SAC');
   end if;
   return aCDS;
 end;

 function getCDSSACValido(aEs number) return unita_organizzativa%rowtype is
  aCDS unita_organizzativa%rowtype;
  cdCdsSac  unita_organizzativa.cd_unita_organizzativa%type;
 begin
  if (gEsercizioCDSSACValido Is Null Or gEsercizioCDSSACValido != aEs) Then
    gEsercizioCDSSACValido := aEs;
    cdCdsSac := getCdsSac(aEs);
    begin
         select * into aCDS from unita_organizzativa where
              aEs >= esercizio_inizio
          and (
              esercizio_fine is null
           or aEs <= esercizio_fine
          )
        and cd_tipo_unita = TIPO_SAC
        and fl_cds = 'Y' 
        and cd_unita_organizzativa = cdCdsSac;
     gCDSSACValido := aCDS;
     return gCDSSACValido;
    exception when NO_DATA_FOUND then
     IBMERR001.RAISE_ERR_GENERICO('CDS SAC non valido o non definito in esercizio '||aEs);
    end;
  Else
    Return gCDSSACValido;
  End If;
 end;


 Function getcdCDSSACValido(aEs number) Return VARCHAR2 is
  aCDS unita_organizzativa%rowtype;
  cdCdsSac  unita_organizzativa.cd_unita_organizzativa%type;
 begin
  if (gEsercizioCDCDSSACValido Is Null Or gEsercizioCDCDSSACValido != aEs) Then
    gEsercizioCDCDSSACValido := aEs;
    cdCdsSac := getCdsSac(aEs);
    begin
     select * into aCDS from unita_organizzativa where
          aEs >= esercizio_inizio
      and (
          esercizio_fine is null
       or aEs <= esercizio_fine
      )
    and cd_tipo_unita = TIPO_SAC
    and fl_cds = 'Y' 
    and cd_unita_organizzativa = cdCdsSac;
     gCDCDSSACValido := aCDS.cd_unita_organizzativa;
     return gCDCDSSACValido;
    exception when NO_DATA_FOUND then
     IBMERR001.RAISE_ERR_GENERICO('CDS SAC non valido o non definito in esercizio '||aEs);
    end;
  Else
    Return gCDCDSSACValido;
  End If;
 end;

 function getUOValida(aEs number,aCdUO varchar2) return unita_organizzativa%rowtype is
  aUO unita_organizzativa%rowtype;
 begin
  begin
   select * into aUO from unita_organizzativa where
        aEs >= esercizio_inizio
    and (
        esercizio_fine is null
     or aEs <= esercizio_fine
    )
  and cd_unita_organizzativa = aCdUO;
   return aUO;
  exception when NO_DATA_FOUND then
   IBMERR001.RAISE_ERR_GENERICO('Unita organizzativa '||aCdUO||'non valida o non definita in esercizio '||aEs);
  end;
 end;


 function getCDRValido(aEs number,aCdCDR varchar2) return cdr%rowtype is
  aCDR cdr%rowtype;
 begin
  begin
   select * into aCDR from cdr where
        aEs >= esercizio_inizio
    and (
        esercizio_fine is null
     or aEs <= esercizio_fine
    )
  and cd_centro_responsabilita = aCdCDR;
   return aCDR;
  exception when NO_DATA_FOUND then
   IBMERR001.RAISE_ERR_GENERICO('CDR '||aCdCDR||'non valido o non definito in esercizio '||aEs);
  end;
 end;



 function getCDRPrimoLivello(aCDR cdr %rowtype) return cdr%rowtype is
  aCDRPrimo cdr%rowtype;
 begin
  if(aCDR.livello = 1) then return aCDR; end if;
  begin
   select * into aCDRPrimo from cdr where
        cd_centro_responsabilita = aCDR.cd_cdr_afferenza;
   return aCDRPrimo;
  exception when NO_DATA_FOUND then
   IBMERR001.RAISE_ERR_GENERICO('Cdr di primo livello del CDR '||aCDR.cd_centro_responsabilita||' non trovato!');
  end;
 end;

--P.R. Da Verificare dopo l'inserimento dell'area di afferenza sul PDG
 function getCDRArea(aCDR cdr %rowtype) return cdr%rowtype is
  aCDRArea cdr%rowtype;
 begin
  begin
   select d.* into aCDRArea from
    unita_organizzativa a, -- unita organizzativa di aCDR
  unita_organizzativa b, -- cds AREA
  unita_organizzativa c, -- uo cds AREA
  cdr d -- cdr responsabile del CDS AREA
   where
        a.cd_unita_organizzativa = aCDR.cd_unita_organizzativa
    and b.cd_unita_organizzativa = a.cd_area_ricerca
    and c.cd_unita_padre = b.cd_unita_organizzativa
  and c.fl_uo_cds = 'Y'
    and d.cd_unita_organizzativa = c.cd_unita_organizzativa;
  exception when NO_DATA_FOUND then
   null;
  end;
  return aCDRArea;
 end;

 function getCDREnte return cdr%rowtype is
  aCDREnte cdr%rowtype;
 begin
  begin
   select b.* into aCDREnte from
    unita_organizzativa a, -- unita organizzativa ENTE
  cdr b                  -- cdr responsabile ENTE
   where
        a.cd_unita_organizzativa = b.cd_unita_organizzativa
  and a.cd_tipo_unita = CNRCTB020.TIPO_ENTE;
  exception when NO_DATA_FOUND then
   IBMERR001.RAISE_ERR_GENERICO('CDR Ente non trovato!');
  end;
  return aCDREnte;
 end;

 function getUOPresidenteArea(aEs NUMBER, aCDSArea unita_organizzativa %rowtype) return unita_organizzativa%rowtype is
  aUOPresArea unita_organizzativa%rowtype;
 begin
  begin
   select b.* into aUOPresArea From
    ass_uo_area a,
    unita_organizzativa b
   Where a.esercizio = aEs
   And   a.cd_area_ricerca = aCDSArea.cd_unita_organizzativa
   And   a.fl_presidente_area = 'Y'
   And   a.cd_unita_organizzativa = b.cd_unita_organizzativa;
  exception when NO_DATA_FOUND then
   null;
  end;
  return aUOPresArea;
 end;


 function getCDSPresidenteArea(aEs NUMBER, aCDSArea unita_organizzativa %rowtype) return unita_organizzativa%rowtype is
  aUOPresArea unita_organizzativa%rowtype;
  aCDSPresArea unita_organizzativa%rowtype;
 begin
  aUOPresArea:=getUOPresidenteArea(aEs, aCDSArea);
  if aUOPresArea.cd_unita_organizzativa is not null then
   begin
    select * into aCDSPresArea from
     unita_organizzativa
    where
         cd_unita_organizzativa = aUOPresArea.cd_unita_padre
   and fl_cds = 'Y';
   exception when NO_DATA_FOUND then
    null;
   end;
  end if;
  return aCDSPresArea;
 end;

 function getUOPresidenteArea(aEs NUMBER, aCDRArea cdr %rowtype) return unita_organizzativa%rowtype is
  aUOPresArea unita_organizzativa%rowtype;
 begin
  begin
   select c.* into aUOPresArea from
  unita_organizzativa a, -- uo dell'area
  ass_uo_area b, -- aree associate alla uo
    unita_organizzativa c  -- uo presidente dell'area
   Where a.cd_unita_organizzativa = aCDRArea.cd_unita_organizzativa
   And   b.esercizio = aEs
   And   b.cd_area_ricerca = a.cd_unita_padre
   And   b.fl_presidente_area = 'Y'
   And   b.cd_unita_organizzativa = c.cd_unita_organizzativa;
  exception when NO_DATA_FOUND then
   null;
  end;
  return aUOPresArea;
 end;

 function getCDSPresidenteArea(aEs NUMBER, aCDRArea cdr %rowtype) return unita_organizzativa%rowtype is
  aUOPresArea unita_organizzativa%rowtype;
  aCDSPresArea unita_organizzativa%rowtype;
 begin
  aUOPresArea:=getUOPresidenteArea(aEs, aCDRArea);
  if aUOPresArea.cd_unita_organizzativa is not null then
   begin
    select * into aCDSPresArea from
     unita_organizzativa
    where
         cd_unita_organizzativa = aUOPresArea.cd_unita_padre
   and fl_cds = 'Y';
   exception when NO_DATA_FOUND then
    null;
   end;
  end if;
  return aCDSPresArea;
 end;

 function getUOCDS(aCDR cdr%rowtype) return unita_organizzativa%rowtype is
  aUOCDS unita_organizzativa%rowtype;
  aUO unita_organizzativa%rowtype;
 begin
  -- estraggo l'UO di appartenenza del CDR
  begin
   select * into aUO from unita_organizzativa where
       cd_unita_organizzativa = aCDR.cd_unita_organizzativa;
  exception when NO_DATA_FOUND then
   IBMERR001.RAISE_ERR_GENERICO('UO di appartenenza del CDR '||aCDR.cd_centro_responsabilita||' non trovata!');
  end;

  begin
   -- estraggo l'UO CDS dall'UO
   select * into aUOCDS from unita_organizzativa where
       cd_unita_padre = aUO.cd_unita_padre
   and fl_uo_cds = 'Y';
  exception when NO_DATA_FOUND then
   IBMERR001.RAISE_ERR_GENERICO('UO CDS dell''UO '||aUO.cd_unita_organizzativa||' non trovata!');
  end;
  return aUOCDS;
 end;

 function getUO(aCDR cdr%rowtype) return unita_organizzativa%rowtype is
  aUO unita_organizzativa%rowtype;
 begin
  -- estraggo l'UO di appartenenza del CDR
  begin
   select * into aUO from unita_organizzativa where
       cd_unita_organizzativa = aCDR.cd_unita_organizzativa;
  exception when NO_DATA_FOUND then
   IBMERR001.RAISE_ERR_GENERICO('UO di appartenenza del CDR '||aCDR.cd_centro_responsabilita||' non trovata!');
  end;
  return aUO;
 end;

 Function getCDUO(aCDR cdr.cd_unita_organizzativa%Type) Return VARCHAR2 is
  aUO unita_organizzativa.cd_unita_organizzativa%Type;
 begin
  -- estraggo l'UO di appartenenza del CDR
  begin
   Select cd_unita_organizzativa Into aUO from cdr where
       cd_centro_responsabilita = aCDR;
  exception when NO_DATA_FOUND then
   IBMERR001.RAISE_ERR_GENERICO('UO di appartenenza del CDR '||aCDR||' non trovata!');
  end;
  return aUO;
 end;

-- Dato il codice unita_organizzativa, ritorna la descrizione
 Function getdesUO(aCDUO unita_organizzativa.cd_unita_organizzativa%Type) return VARCHAR2 Is
 des    VARCHAR2(4000);
 Begin
   Select DS_UNITA_ORGANIZZATIVA
   Into   des
   From   UNITA_ORGANIZZATIVA
   Where  CD_UNITA_ORGANIZZATIVA = aCDUO;
   Return des;
 Exception when NO_DATA_FOUND then
   IBMERR001.RAISE_ERR_GENERICO('La UO '||aCDUO||' non esiste!');
 End;

 function getUOCDS(aEs number, aCdCds varchar2) return unita_organizzativa%rowtype is
  aUOCDS unita_organizzativa%rowtype;
 begin
  begin
   -- estraggo l'UO CDS dall'UO
   select * into aUOCDS from unita_organizzativa a where
       a.cd_unita_padre = aCdCds
   and a.fl_uo_cds = 'Y'
   and exists (select 1 from v_unita_organizzativa_valida where
                     esercizio = aEs
         and cd_unita_organizzativa = a.cd_unita_organizzativa);
  exception when NO_DATA_FOUND then
   IBMERR001.RAISE_ERR_GENERICO('UO CDS del CDS '||aCdCds||' non trovata!');
  end;
  return aUOCDS;
 end;

 function getUOVersCori(aEs number) return unita_organizzativa%rowtype is
  aUOCDS unita_organizzativa%rowtype;
 begin
  begin
   -- estraggo l'UO di servizio versamento cori (tipo SAC)
   select * into aUOCDS from unita_organizzativa a where
       a.cd_unita_organizzativa = getCdUOVersCori(aEs)
   and cd_tipo_unita = TIPO_SAC
   and exists (select 1 from v_unita_organizzativa_valida where
                     esercizio = aEs
         and cd_unita_organizzativa = a.cd_unita_organizzativa);
  exception when NO_DATA_FOUND then
   IBMERR001.RAISE_ERR_GENERICO('UO SAC responsabile del versamento CORI accentrato non trovata');
  end;
  return aUOCDS;
 end;

 function getUOVersCoriTuttaSAC(aEs number) return unita_organizzativa%rowtype is
  aUOCDS unita_organizzativa%rowtype;
 begin
  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 = getCdUOVersCoriTuttaSAC(aEs)
   and cd_tipo_unita = TIPO_SAC
   and exists (select 1 from v_unita_organizzativa_valida where
                     esercizio = aEs
     and cd_unita_organizzativa = a.cd_unita_organizzativa);
  exception when NO_DATA_FOUND then
   IBMERR001.RAISE_ERR_GENERICO('UO SAC responsabile del versamento CORI unificato non trovata');
  end;
  return aUOCDS;
 end;

 function getUOVersCoriContoBI(aEs number) return unita_organizzativa%rowtype is
  aUOCDS unita_organizzativa%rowtype;
 begin
  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 = getCdUOVersCoriContoBI(aEs)
   and exists (select 1 from v_unita_organizzativa_valida where
                     esercizio = aEs
     and cd_unita_organizzativa = a.cd_unita_organizzativa);
  exception when NO_DATA_FOUND then
   IBMERR001.RAISE_ERR_GENERICO('UO responsabile del versamento CORI su Conto BI non trovata');
  end;
  return aUOCDS;
 end;

 function getUOVersIVA(aEs number) return unita_organizzativa%rowtype is
  aUOCDS unita_organizzativa%rowtype;
 begin
  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 = getCdUOVersIVA(aEs)
   and cd_tipo_unita = TIPO_SAC
   and exists (select 1 from v_unita_organizzativa_valida where
                     esercizio = aEs
         and cd_unita_organizzativa = a.cd_unita_organizzativa);
  exception when NO_DATA_FOUND then
   IBMERR001.RAISE_ERR_GENERICO('UO SAC responsabile del versamento IVA non trovata');
  end;
  return aUOCDS;
 end;

 function isCDRENTE(aCDR cdr%rowtype) return boolean is
  aUO unita_organizzativa%rowtype;
  aLC lunghezza_chiavi%rowtype;
 begin
  begin
   select * into aLC from lunghezza_chiavi where
        tabella = 'UNITA_ORGANIZZATIVA'
    and attributo = 'CD_UNITA_ORGANIZZATIVA'
    and esercizio = 0
    and livello = 1;
  exception when NO_DATA_FOUND then
   IBMERR001.RAISE_ERR_GENERICO('Configurazione della lunghezza chiavi Struttura Organizzativa non trovata!');
  end;
  if substr(aCDR.cd_centro_responsabilita,1,instr(aCDR.cd_centro_responsabilita,'.') - 1) = lpad('9',aLC.lunghezza,'9') then
   return true;
  end if;
  return false;
 end;

 function getUOPersonale(aEs number) return unita_organizzativa%rowtype is
  aUO unita_organizzativa%rowtype;
  aCDR cdr%rowtype;
  aCdUo varchar2(30);
 begin
  aCDR:=getCDRPersonale(aEs);
  aCdUO:=aCDR.cd_unita_organizzativa;
  if aCdUo is null then
   return null;
  end if;

  select * into aUO from unita_organizzativa where
   cd_unita_organizzativa = aCdUo;
  return aUO;
 end;

 function getCDRPersonale(aEs number) return cdr%rowtype is
  aCdCDR cdr.cd_centro_responsabilita%Type;
  aCDR cdr%rowtype;
 begin
   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;
 begin
  begin
   select b.* into aCdr from cdr b, unita_organizzativa a where
       a.cd_unita_organizzativa = aUO.cd_unita_organizzativa
   and b.cd_unita_organizzativa = a.cd_unita_organizzativa
   and to_number(b.cd_proprio_cdr) = 0;
  exception when NO_DATA_FOUND then
   IBMERR001.RAISE_ERR_GENERICO('CDR responsabilile dell''UO'||aUO.cd_unita_organizzativa||' non trovato!');
  end;
  return aCDR;
 end;

 function getCDRResponsabileUO(aCdUO VARCHAR2) return cdr%rowtype is
  aCdr cdr%rowtype;
 begin
  begin
   select b.* into aCdr from cdr b, unita_organizzativa a where
       a.cd_unita_organizzativa = aCdUO
   and b.cd_unita_organizzativa = a.cd_unita_organizzativa
   and to_number(b.cd_proprio_cdr) = 0;
  exception when NO_DATA_FOUND then
   IBMERR001.RAISE_ERR_GENERICO('CDR responsabilile dell''UO ' || aCdUO ||' non trovato!');
  end;
  return aCDR;
 end;

 function getUOAfferenza(aCDR cdr%rowtype) return unita_organizzativa%rowtype is
  aUO unita_organizzativa%rowtype;
 begin
  begin
   select * into aUO from unita_organizzativa where
       cd_unita_organizzativa = aCDR.cd_unita_organizzativa;
  exception when NO_DATA_FOUND then
   IBMERR001.RAISE_ERR_GENERICO('UO di afferenza del CDR '||aCDR.cd_centro_responsabilita||' non trovata!');
  end;
  return aUO;
 end;

 Procedure ins_UNITA_ORGANIZZATIVA (aDest UNITA_ORGANIZZATIVA%rowtype) is
  begin
   insert into UNITA_ORGANIZZATIVA (
     FL_RUBRICA
    ,LIVELLO
    ,PRC_COPERTURA_OBBLIG_2
    ,PRC_COPERTURA_OBBLIG_3
    ,CD_RESPONSABILE
    ,CD_RESPONSABILE_AMM
    ,DACR
    ,UTCR
    ,DUVA
    ,UTUV
    ,PG_VER_REC
    ,FL_PRESIDENTE_AREA
    ,CD_AREA_RICERCA
    ,CD_UNITA_PADRE
    ,ESERCIZIO_INIZIO
    ,ESERCIZIO_FINE
    ,CD_UNITA_ORGANIZZATIVA
    ,DS_UNITA_ORGANIZZATIVA
    ,CD_PROPRIO_UNITA
    ,CD_TIPO_UNITA
    ,FL_CDS
    ,FL_UO_CDS
  ,CD_AREA_SCIENTIFICA
   ) values (
     aDest.FL_RUBRICA
    ,aDest.LIVELLO
    ,aDest.PRC_COPERTURA_OBBLIG_2
    ,aDest.PRC_COPERTURA_OBBLIG_3
    ,aDest.CD_RESPONSABILE
    ,aDest.CD_RESPONSABILE_AMM
    ,aDest.DACR
    ,aDest.UTCR
    ,aDest.DUVA
    ,aDest.UTUV
    ,aDest.PG_VER_REC
    ,aDest.FL_PRESIDENTE_AREA
    ,aDest.CD_AREA_RICERCA
    ,aDest.CD_UNITA_PADRE
    ,aDest.ESERCIZIO_INIZIO
    ,aDest.ESERCIZIO_FINE
    ,aDest.CD_UNITA_ORGANIZZATIVA
    ,aDest.DS_UNITA_ORGANIZZATIVA
    ,aDest.CD_PROPRIO_UNITA
    ,aDest.CD_TIPO_UNITA
    ,aDest.FL_CDS
    ,aDest.FL_UO_CDS
  ,aDest.CD_AREA_SCIENTIFICA
    );
 end;

Function getdeslivello(aEs NUMBER, ati_gestione VARCHAR, aliv1 VARCHAR2, aliv2 VARCHAR2, aliv3 VARCHAR2,
                                                 aliv4 VARCHAR2, aliv5 VARCHAR2, aliv6 VARCHAR2,
                                                 aliv7 VARCHAR2) return VARCHAR2 Is

RET      CLASSIFICAZIONE_VOCI.DS_CLASSIFICAZIONE%Type;

Begin

If aliv7 IS NOT NULL THEN

Select  DS_CLASSIFICAZIONE
Into    RET
From    CLASSIFICAZIONE_VOCI
Where   ESERCIZIO = aEs And
        TI_GESTIONE = ati_gestione And
        CD_LIVELLO1 = aliv1 And
        CD_LIVELLO2 = aliv2 And
        CD_LIVELLO3 = aliv3 And
        CD_LIVELLO4 = aliv4 And
        CD_LIVELLO5 = aliv5 And
        CD_LIVELLO6 = aliv6 And
        CD_LIVELLO7 = aliv7;

Elsif aliv6 IS NOT NULL Then

Select  DS_CLASSIFICAZIONE
Into    RET
From    CLASSIFICAZIONE_VOCI
Where   ESERCIZIO = aEs And
        TI_GESTIONE = ati_gestione And
        CD_LIVELLO1 = aliv1 And
        CD_LIVELLO2 = aliv2 And
        CD_LIVELLO3 = aliv3 And
        CD_LIVELLO4 = aliv4 And
        CD_LIVELLO5 = aliv5 And
        CD_LIVELLO6 = aliv6 And
        CD_LIVELLO7 Is Null;

Elsif aliv5 IS NOT NULL THEN

Select  DS_CLASSIFICAZIONE
Into    RET
From    CLASSIFICAZIONE_VOCI
Where   ESERCIZIO = aEs And
        TI_GESTIONE = ati_gestione And
        CD_LIVELLO1 = aliv1 And
        CD_LIVELLO2 = aliv2 And
        CD_LIVELLO3 = aliv3 And
        CD_LIVELLO4 = aliv4 And
        CD_LIVELLO5 = aliv5 And
        CD_LIVELLO6 Is Null;

Elsif aliv4 IS NOT NULL Then

Select  DS_CLASSIFICAZIONE
Into    RET
From    CLASSIFICAZIONE_VOCI
Where   ESERCIZIO = aEs And
        TI_GESTIONE = ati_gestione And
        CD_LIVELLO1 = aliv1 And
        CD_LIVELLO2 = aliv2 And
        CD_LIVELLO3 = aliv3 And
        CD_LIVELLO4 = aliv4 And
        CD_LIVELLO5 Is Null;

Elsif aliv3 IS NOT NULL THEN

Select  DS_CLASSIFICAZIONE
Into    RET
From    CLASSIFICAZIONE_VOCI
Where   ESERCIZIO = aEs And
        TI_GESTIONE = ati_gestione And
        CD_LIVELLO1 = aliv1 And
        CD_LIVELLO2 = aliv2 And
        CD_LIVELLO3 = aliv3 And
        CD_LIVELLO4 Is Null;

Elsif aliv2 IS NOT NULL THEN

Select  DS_CLASSIFICAZIONE
Into    RET
From    CLASSIFICAZIONE_VOCI
Where   ESERCIZIO = aEs And
        TI_GESTIONE = ati_gestione And
        CD_LIVELLO1 = aliv1 And
        CD_LIVELLO2 = aliv2 And
        CD_LIVELLO3 Is Null;

Elsif aliv1 IS NOT NULL THEN

Select  DS_CLASSIFICAZIONE
Into    RET
From    CLASSIFICAZIONE_VOCI
Where   ESERCIZIO = aEs And
        TI_GESTIONE = ati_gestione And
        CD_LIVELLO1 = aliv1 And
        CD_LIVELLO2 Is Null;

End If;

Return RET;

Exception
   When Others Then Return (' ');
End;

Function GETDESDIPARTIMENTO (aCd_dip VARCHAR2) return VARCHAR2 Is
ret     dipartimento.cd_dipartimento%Type;
Begin
 Select DS_DIPARTIMENTO
 Into   ret
 From   DIPARTIMENTO
 Where CD_DIPARTIMENTO = aCd_dip;

 Return ret;
Exception
 When Others Then Return (' ');
End;


Procedure ins_CDR (aDest CDR%rowtype) is
  begin
   insert into CDR (
     CD_CENTRO_RESPONSABILITA
    ,ESERCIZIO_INIZIO
    ,ESERCIZIO_FINE
    ,CD_UNITA_ORGANIZZATIVA
    ,LIVELLO
    ,CD_PROPRIO_CDR
    ,DS_CDR
    ,CD_RESPONSABILE
    ,INDIRIZZO
    ,DACR
    ,UTCR
    ,DUVA
    ,UTUV
    ,CD_CDR_AFFERENZA
    ,PG_VER_REC
   ) values (
     aDest.CD_CENTRO_RESPONSABILITA
    ,aDest.ESERCIZIO_INIZIO
    ,aDest.ESERCIZIO_FINE
    ,aDest.CD_UNITA_ORGANIZZATIVA
    ,aDest.LIVELLO
    ,aDest.CD_PROPRIO_CDR
    ,aDest.DS_CDR
    ,aDest.CD_RESPONSABILE
    ,aDest.INDIRIZZO
    ,aDest.DACR
    ,aDest.UTCR
    ,aDest.DUVA
    ,aDest.UTUV
    ,aDest.CD_CDR_AFFERENZA
    ,aDest.PG_VER_REC
    );
 end;
 function isUOSAC(aUO varchar2) return boolean is
  conta number;
 begin
   select count(1) into conta
   from unita_organizzativa
   where cd_unita_organizzativa = aUO
    and fl_cds = 'N'
    and cd_tipo_unita = TIPO_SAC;

    if conta > 0 then
       return true;
    else
       return false;
    end if;
 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;




© 2015 - 2024 Weber Informatics LLC | Privacy Policy