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

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

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

  CREATE OR REPLACE PACKAGE "CNRCTB545" AS
--==================================================================================================
--
-- CNRCTB545 - package di utilità per gestione COMPENSI
--
-- Date: 14/07/2006
-- Version: 2.7
--
-- Dependency: CNRCTB 015/100 IBMERR 001 IBMUTL 001
--
-- History:
--
-- Date: 20/06/2002
-- Version: 1.0
--
-- Creazione package
--
-- Date: 27/06/2002
-- Version: 1.1
--
-- Adeguamento del package alle modifiche della tabella COMPENSO
--
-- Date: 02/07/2002
-- Version: 1.2
--
-- Adeguamento del package alle modifiche della tabella COMPENSO
-- Ammontari netto detrazioni + legame per contabilizzazione compenso negativo
--
-- Date: 15/07/2002
-- Version: 1.3
--
-- Introdotte routine di gestione conguaglio
--
-- Date: 16/07/2002
-- Version: 1.4
--
-- Aggiunta alla tabella insiemeCoriTab il campo che memorizza la data di inizio validità del cori
-- in elaborazione; soluzione errore in valorizzazione della FK CONTRIBUTO_RITENUTA01
--
-- Date: 17/07/2002
-- Version: 1.5
--
-- Inserita routine di inserimento compenso.
-- Inserite matrici e routine per calcolo intervllo rate per conguaglio
--
-- Date: 18/07/2002
-- Version: 1.6
-- Aggiornamento della documentazione
--
-- Date: 22/07/2002
-- Version: 1.7
--
-- Inserite costanti per l'identificazione della tipologia dei diversi codice contributo_ritenuta
-- Inserite routine per identificazione dell'irpef a scaglioni e di addizionali territorio
-- (regione, provincia e comune).
-- Inserita matrice per la memorizzazione dei carichi familiari (numero familiari e dettaglio)
--
-- Date: 24/07/2002
-- Version: 1.8
--
-- Fix routine di calcolo dell'imponibile base cori per le nuove previsioni di classificazione in tipo
-- contributo ritenuta.
--
-- Date: 01/08/2002
-- Version: 1.9
--
-- Aggiornamento documentazione.
--
-- Date: 07/08/2002
-- Version: 1.10
--
-- Aggiunta routine per definizione dell'origine di un compenso
--
-- Date: 29/08/2002
-- Version: 1.11
--
-- Aggiunta routine inserimento ASS_COMPENSO_CONGUAGLIO
--
-- Date: 02/09/2002
-- Version: 1.12
--
-- Modificata la routine di recupero dello scaglione per errore in caso di configurazione sia ente
-- che percipiente.
--
-- Date: 05/09/2002
-- Version: 1.13
--
-- Aggiunta costante per descrivere i compensi che sono stati inclusi in un conguaglio ed aggiornata
-- la routine di determinazione del tipo origine compenso
--
-- Date: 13/09/2002
-- Version: 1.14
--
-- Aggiunta costante costante per identificare il cori di tipo RIVALSA
--
-- Date: 18/09/2002
-- Version: 1.15
--
-- Inserita routine per ottenere il tipo contributo ritenuta da un record di CONTRIBUTO_RITENUTA
--
-- Date: 24/09/2002
-- Version: 1.16
--
-- Modifica della routine di inserimento di un compenso per la gestione dei nuovi campi in tabella
-- ti_istituz_commerc, imponibile_inail, esercizio_fattura_fornitore, dt_fattura_fornitore,
-- nr_fattura_fornitore, fl_generata_fattura
--
-- Date: 26/09/2002
-- Version: 1.17
--
-- Modificata matrice insiemeCoriRec inserendo la mappatura di CONTRIBUTO_RITENUTA.montante per
-- memorizzare il valore di imponibile effettivamente utilizzato nella riga CORI.
-- Inserimento routine di lettura compenso da missione e di cancellazione del compenso
--
-- Date: 30/09/2002
-- Version: 1.18
-- Introdotte routine per controllo ed inserimento fattura da compenso
--
-- Date: 30/09/2002
-- Version: 1.19
--
-- Inserito il controllo di non recuperare i cloni quando si cerca il compenso da missione
--
-- Date: 02/10/2002
-- Version: 1.20
-- Fix errore in cancellazione compenso con generazione fattura (chiave duplicata)
--
-- Date: 02/16/2002
-- Version: 1.21
-- FL_COMPENSO_STIPENDI, FL_COMPENSO_CONGUAGLIO nella funzione copiaCompenso e insCompenso
--
-- Date: 17/10/2002
-- Version: 1.22
--
-- Adeguamento procedura alla nuova struttura della tabella FATTURA_PASSIVA
--
-- Date: 11/11/2002
-- Version: 1.23
--
-- Fix errore 347. Mancata segnalazione dell'assenza  della giusta entrata nella tabella scaglione.
-- Il sistema, al momento del calcolo del compenso, se non trova la giusta entrata nella tabella
-- scaglione non segnala l'errore e procede saltando quel Contributo/ritenuta.
--
-- Date: 18/11/2002
-- Version: 1.24
--
-- Adeguamento procedura alla nuova struttura della tabella COMPENSO. Aggiunti i seguenti attributi:
-- fl_compenso_minicarriera, aliquota_irpef_da_missione.
-- Modificate procedure copiaCompenso, insCompenso e getTipoOrigineCompenso
--
-- Date: 26/11/2002
-- Version: 1.25
--
-- Inserimento di tutti i campi in CONTRIBUTO_RITENUTA -> procedura inscontributoritenuta
--
-- Date: 03/12/2002
-- Version: 1.26
--
-- Fix errore interno 2948. In eliminazione compenso da missione entrava nella routine di annullamento
-- compenso da minicarriera.
-- L'errore si verifica anche in altri casi quando il compenso è stato incluso in un conguaglio, la
-- routine getTipoOrigineCompenso tornava un valore errato in questi casi.
--
-- Date: 12/12/2002
-- Version: 1.27
--
-- Se cancello logicamente un compenso da missione inizializzo i campi della missione
-- contenuti nella tabella COMPENSO
--
-- Date: 23/12/2002
-- Version: 1.28
--
-- Adeguamento procedura alla nuova struttura della tabella COMPENSO. Aggiunti i seguenti attributi:
-- FL_COMPENSO_MCARRIERA_TASSEP, ALIQUOTA_IRPEF_TASSEP
-- Modificate procedure copiaCompenso, insCompenso
--
-- Date: 16/01/2003
-- Version: 1.29
--
-- Adeguamento procedura alla nuova struttura della tabella COMPENSO e CONTRIBUTO_RITENUTA per
-- finanziaria 2003. Aggiunti i seguenti attributi:
-- COMPENSO            --> im_deduzione_irpef, imponibile_fiscale_netto
-- CONTRIBUTO_RITENUTA --> imponibile_lordo, im_deduzione_irpef
-- Modificate procedure copiaCompenso, insCompenso, insContributoRitenuta
--
-- Date: 17/01/2003
-- Version: 1.30
--
-- Modificata matrice insiemeCoriRec inserendo la mappatura di CONTRIBUTO_RITENUTA.imponibile_lordo e
-- CONTRIBUTO_RITENUTA.im_deduzione_irpef per adeguamento a finanziaria 2003
--
-- Date: 22/01/2003
-- Version: 1.31
--
-- Modifiche per gestione finanziaria 2003
-- Modifica alla matrice montantiRec per adeguamento alle modifiche della tabella MONTANTI, gestione
-- del montante lordo e netto per IRPEF e della deduzione
--
-- Date: 27/01/2003
-- Version: 1.32
--
-- Modifiche per gestione finanziaria 2003
-- Inserite routine per la lettura della configurazione base della deduzione IRPEF
-- Aggiunto attributo al compenso COMPENSO.numero_giorni
-- Modificate procedure copiaCompenso, insCompenso
--
-- Date: 20/03/2003
-- Version: 1.33
--
-- Richiesta CINECA n. 545, 546, 547
-- Mapping nuovi attributi (fl_escludi_qvaria_deduzione, fl_intera_qfissa_deduzione,
-- im_detrazione_personale_anag) in tabella COMPENSO
-- Modificate procedure copiaCompenso, insCompenso
--
-- Date: 11/04/2003
-- Version: 1.34
--
-- Fix errore CINECA n. 560. Attivata gestione quota esente IVA. Si applica solo in presenta di
-- CORI IVA
-- Modificato metodo getImponibileBaseCori
--
-- Date: 16/04/2003
-- Version: 1.35
--
-- Richiesta CINECA n. 562. Implementazione della cancellazione del conguaglio.
--
-- Date: 09/07/2003
-- Version: 1.36
--
-- Richiesta CINECA n. ???. Attivazione gestione recupero rate.
-- Mapping nuovo attributo fl_recupero_rate in tabella COMPENSO
-- Modificate procedure copiaCompenso, insCompenso
--
-- Date: 10/07/2003
-- Version: 1.37
--
-- Richiesta CINECA n. ???. Attivazione gestione recupero rate.
-- Modifica routine di memorizzazione della matrice date per introdurre l'indicatore di non eseguire
-- la prima fase dello schiacciamento di sovrapposizione periodi.
--
-- Date: 18/07/2003
-- Version: 1.38
--
-- Adeguamento package per nuovi attributi su FATTURA_PASSIVA (fl_congelata).
--
-- Date: 28/10/2003
-- Version: 2.0
--
-- Rilascio richiesta CINECA n. 655. Gestione conguaglio per aliquota massima.
--
-- Date: 04/11/2003
-- Version: 2.1
--
-- Rilascio richiesta CINECA n. 471. Gestione rateizzazione addizionali territorio.
-- Inserimento di un attributo per memorizzare l'indicazione di compenso calcolato con aliquota
-- massima in anagrafica. (allineamento base dati)
--
-- Date: 11/11/2003
-- Version: 2.2
--
-- Rilascio richiesta CINECA n. 471. Gestione rateizzazione addizionali territorio.
-- (Attivazione dell'accantonamento delle addizionali territorio).
--
-- Date: 24/11/2003
-- Version: 2.3
--
-- Fix errore interno in calcola accantonamento addizionali territorio
--
-- Date: 09/12/2003
-- Version: 2.4
--
-- Rilascio richiesta CINECA n. 471. Gestione rateizzazione addizionali territorio (seconda fase =
-- addebito della rata in esercizio successivo).
--
-- Date: 06/02/2004
-- Version: 2.5
--
-- Rilascio richiesta CINECA n. 750. Inserimento costanti per CUD.
--
-- Date: 02/11/2004
-- Version: 2.6
--
-- Rilascio errore CINECA n. 850. errore in esegui calcolo di compenso da minicarriera di un terzo
-- avente anche una minicarriera con trattamento cessato.
--
-- Date: 14/07/2006
-- Version: 2.7
-- Gestione Impegni/Accertamenti Residui:
-- aggiornata la funzione per tener conto anche del campo Esercizio Originale Impegno/Accertamento
--
-- Date: 01/08/2006
-- Version: 2.8
--
-- Aggiunte le function getIsCoriPrevid e getIsCoriInail per la "Gestione dei Cervelli"
--
-- Date: 22/02/2007
-- Version: 2.9
--
-- Addizionali Regionali: Aggiunta la function "getIsRegConAliqMax" per recuperare le regioni
-- che hanno la gestione dell'aliquota massima per l'intero importo
--
-- Date: 10/05/2007
-- Version: 2.10
--
-- Addizionali Comunali: Aggiunta la function "getIsComConAliqMax" per recuperare i comuni
-- che hanno la gestione dell'aliquota massima per l'intero importo
--
-- Date: 24/01/2008
-- Version: 2.11
--
-- Addizionali Comunali: Aggiunta la function "getIsAddComunale" per verificare che il cd_classificazione sia per l'addizionale comunale
--
-- Date: 25/05/2014
-- Version: 2.12
-- Adeguamenti relativi al Bonus DL 66/2014
-- Inserita FUNCTION IsCoriCreditoIrpef
--==================================================================================================
--
-- Constants
--

   -- Configurazione deduzione IRPEF

   isChiavePrimaria CONSTANT CONFIGURAZIONE_CNR.cd_chiave_primaria%TYPE := 'BASE_DEDUZIONE_IRPEF';
   isChiaveSecondariaBase CONSTANT CONFIGURAZIONE_CNR.cd_chiave_primaria%TYPE := 'VALORE_BASE';
   isChiaveSecondariaQuota CONSTANT CONFIGURAZIONE_CNR.cd_chiave_primaria%TYPE := 'QUOTE_DEDUZIONE';

   -- Configurazione deduzione FAMILY
   -- CSD sta per ChiaveSecondariaDeduzione

   isChiavePrimariaFamily CONSTANT CONFIGURAZIONE_CNR.cd_chiave_primaria%TYPE := 'BASE_DEDUZIONE_FAMILY';
   isCSDFamilyBase CONSTANT CONFIGURAZIONE_CNR.cd_chiave_secondaria%TYPE := 'VALORE_BASE';
   isCSDFamilyConiuge CONSTANT CONFIGURAZIONE_CNR.cd_chiave_secondaria%TYPE := 'CONIUGE';
   isCSDFamilyFiglio CONSTANT CONFIGURAZIONE_CNR.cd_chiave_secondaria%TYPE := 'FIGLIO';
   isCSDFamilyAltro CONSTANT CONFIGURAZIONE_CNR.cd_chiave_secondaria%TYPE := 'ALTRO';
   isCSDFamilyFiglioMenoTre CONSTANT CONFIGURAZIONE_CNR.cd_chiave_secondaria%TYPE := 'FIGLIO_MENO_TRE';
   isCSDFamilyFiglioSenzaConiuge CONSTANT CONFIGURAZIONE_CNR.cd_chiave_secondaria%TYPE := 'FIGLIO_SENZA_CONIUGE';
   isCSDFamilyFiglioHandicap CONSTANT CONFIGURAZIONE_CNR.cd_chiave_secondaria%TYPE := 'FIGLIO_HANDICAP';

   -- Tipizzazione di codici contributo ritenuta

   isCoriFiscale CONSTANT TIPO_CONTRIBUTO_RITENUTA.cd_classificazione_cori%TYPE := 'FI';
   isCoriAddReg CONSTANT TIPO_CONTRIBUTO_RITENUTA.cd_classificazione_cori%TYPE := 'R0';
   isCoriAddPro CONSTANT TIPO_CONTRIBUTO_RITENUTA.cd_classificazione_cori%TYPE := 'P0';
   isCoriAddCom CONSTANT TIPO_CONTRIBUTO_RITENUTA.cd_classificazione_cori%TYPE := 'C0';
   isCoriAddRegRecRate CONSTANT TIPO_CONTRIBUTO_RITENUTA.cd_classificazione_cori%TYPE := 'R9';
   isCoriAddProRecRate CONSTANT TIPO_CONTRIBUTO_RITENUTA.cd_classificazione_cori%TYPE := 'P9';
   isCoriAddComRecRate CONSTANT TIPO_CONTRIBUTO_RITENUTA.cd_classificazione_cori%TYPE := 'C9';
   isCoriAddComAcconto CONSTANT TIPO_CONTRIBUTO_RITENUTA.cd_classificazione_cori%TYPE := 'C1';
   isCoriIrap CONSTANT TIPO_CONTRIBUTO_RITENUTA.cd_classificazione_cori%TYPE := 'IP';
   isCoriInail CONSTANT TIPO_CONTRIBUTO_RITENUTA.cd_classificazione_cori%TYPE := 'IL';
   isCoriIva CONSTANT TIPO_CONTRIBUTO_RITENUTA.cd_classificazione_cori%TYPE := 'IV';
   isCoriRivalsa CONSTANT TIPO_CONTRIBUTO_RITENUTA.cd_classificazione_cori%TYPE := 'RV';
   isCoriPrevid CONSTANT TIPO_CONTRIBUTO_RITENUTA.cd_classificazione_cori%TYPE := 'PR';


   -- Tipizzazione dei compensi per origine

   isCompensoNormale CONSTANT INTEGER := 1;
   isCompensoNormaleAssCong CONSTANT INTEGER := 11;
   isCompensoSenzaCalcoli CONSTANT INTEGER := 2;
   isCompensoSenzaCalcoliAssCong CONSTANT INTEGER := 21;
   isCompensoConguaglio CONSTANT INTEGER := 3;
   isCompensoMissione CONSTANT INTEGER := 4;
   isCompensoMissioneAssCong CONSTANT INTEGER := 41;
   isCompensoMinicarriera CONSTANT INTEGER := 5;
   isCompensoMinicarrieraAssCong CONSTANT INTEGER := 51;

   isCancellazioneLogica CONSTANT INTEGER := 1;
   isCancellazioneFisica CONSTANT INTEGER := 2;

   -- Variabili globali

   i BINARY_INTEGER;

   -- Dichiarazione di un cursore generico

   TYPE GenericCurTyp IS REF CURSOR;

   -- Tabelle PL/SQL

   -- Matrice di appoggio per calcolato contributi e ritenute

   TYPE insiemeCoriRec IS RECORD
       (
        tCdCori CONTRIBUTO_RITENUTA.cd_contributo_ritenuta%TYPE,
        tDtIniValCori TIPO_CONTRIBUTO_RITENUTA.dt_ini_validita%TYPE,
        tTiCassaCompetenza TIPO_CONTRIBUTO_RITENUTA.ti_cassa_competenza%TYPE,
        tPrecisione TIPO_CONTRIBUTO_RITENUTA.precisione%TYPE,
        tPgClassificazioneMontanti TIPO_CONTRIBUTO_RITENUTA.pg_classificazione_montanti%TYPE,
        tCdClassificazioneCori TIPO_CONTRIBUTO_RITENUTA.cd_classificazione_cori%TYPE,
        tFlScriviMontanti TIPO_CONTRIBUTO_RITENUTA.fl_scrivi_montanti%TYPE,
        tIdRiga TRATTAMENTO_CORI.id_riga%TYPE,
        tSegno TRATTAMENTO_CORI.segno%TYPE,
        tCalcoloImponibile TRATTAMENTO_CORI.calcolo_imponibile%TYPE,
        tFlSospensioneIrpef TIPO_CONTRIBUTO_RITENUTA.fl_sospensione_irpef%TYPE,
        tFlCreditoIrpef TIPO_CONTRIBUTO_RITENUTA.fl_credito_irpef%TYPE,
        tMontante CONTRIBUTO_RITENUTA.montante%TYPE,
        tImponibileLordo CONTRIBUTO_RITENUTA.imponibile_lordo%TYPE,
        tImDeduzioneIrpef CONTRIBUTO_RITENUTA.im_deduzione_irpef%TYPE,
        tImDeduzioneFamily CONTRIBUTO_RITENUTA.im_deduzione_family%TYPE,
        tImponibileNetto CONTRIBUTO_RITENUTA.imponibile%TYPE,
        tAliquotaEnte CONTRIBUTO_RITENUTA.aliquota%TYPE,
        tBaseCalcoloEnte CONTRIBUTO_RITENUTA.base_calcolo%TYPE,
        tAmmontareEnteLordo CONTRIBUTO_RITENUTA.ammontare_lordo%TYPE,
        tAmmontareEnte CONTRIBUTO_RITENUTA.ammontare%TYPE,
        tAliquotaPercip CONTRIBUTO_RITENUTA.aliquota%TYPE,
        tBaseCalcoloPercip CONTRIBUTO_RITENUTA.base_calcolo%TYPE,
        tAmmontarePercipLordo CONTRIBUTO_RITENUTA.ammontare_lordo%TYPE,
        tAmmontarePercip CONTRIBUTO_RITENUTA.ammontare%TYPE,
        tCreditoPareggioDetrazioni CREDITO_IRPEF.FL_PAREGGIO_DETRAZIONI%TYPE
       );
   TYPE insiemeCoriTab IS TABLE OF insiemeCoriRec
        INDEX BY BINARY_INTEGER;

   -- Matrice di appoggio per montanti

   TYPE montantiRec IS RECORD
       (
        tNomeDip VARCHAR2(100),
        tValoreLordoDip NUMBER(15,2),
        tValoreNettoDip NUMBER(15,2),
        tImDeduzioneDip NUMBER(15,2),
        tNomeAltro VARCHAR2(100),
        tValoreLordoAltro NUMBER(15,2),
        tValoreNettoAltro NUMBER(15,2),
        tValoreLordoOcca NUMBER(15,2) Default 0,
        tValoreNettoOcca NUMBER(15,2) Default 0,
        tImDeduzioneAltro NUMBER(15,2),
        tImDeduzioneFamilyAltro NUMBER(15,2) Default 0
       );
   TYPE montantiTab IS TABLE OF montantiRec
        INDEX BY BINARY_INTEGER;

   -- Matrice di appoggio per carichi familiari (numero occorrenze)

   TYPE numCaricoFamRec IS RECORD
       (
        tDataDa DATE:=NULL,
        tDataA DATE:=NULL,
        tNAltro INTEGER:=NULL,
        tNConiuge INTEGER:=NULL,
        tNFiglio INTEGER:=NULL
       );
   TYPE numCaricoFamTab IS TABLE OF numCaricoFamRec
        INDEX BY BINARY_INTEGER;

   -- Matrice di appoggio per carichi familiari (dettaglio mormalizzato in date dei singoli carichi)

   TYPE caricoFamRec IS RECORD
       (
        tTiPersona CARICO_FAMILIARE_ANAG.ti_persona%TYPE:=NULL,
        tCodiceFiscale CARICO_FAMILIARE_ANAG.codice_fiscale%TYPE:=NULL,
        tDataDa CARICO_FAMILIARE_ANAG.dt_ini_validita%TYPE:=NULL,
        tDataA CARICO_FAMILIARE_ANAG.dt_fin_validita%TYPE:=NULL,
        tPrcCarico CARICO_FAMILIARE_ANAG.prc_carico%TYPE:=NULL,
        tFlPrimoFiglio CARICO_FAMILIARE_ANAG.fl_primo_figlio%TYPE:=NULL,
        tFlHandicap CARICO_FAMILIARE_ANAG.fl_handicap%TYPE:=NULL,
        tDtMinoreTre CARICO_FAMILIARE_ANAG.dt_fine_figlio_ha_treanni%TYPE:=NULL,
        tFlPrimoFiglioMancaCon CARICO_FAMILIARE_ANAG.fl_primo_figlio_manca_con%TYPE:=NULL,
        tNumeroMesi INTEGER:=NULL
       );
   TYPE caricoFamTab IS TABLE OF caricoFamRec
        INDEX BY BINARY_INTEGER;

   -- Matrice di appoggio per normalizzazione intervallo date

   TYPE intervalloDateRec IS RECORD
       (
        tDataDa DATE:=NULL,
        tDataA DATE:=NULL
       );
   TYPE intervalloDateTab IS TABLE OF IntervalloDateRec
        INDEX BY BINARY_INTEGER;

   -- Matrice di appoggio per calcolo dei mesi

   TYPE intervalloMesiRec IS RECORD
       (
        tMesi NUMBER(2):=Null
       );
   TYPE intervalloMesiTab IS TABLE OF IntervalloMesiRec
        INDEX BY BINARY_INTEGER;
--
-- Functions e Procedures
--

-- Ritorna un record della tabella COMPENSO

   FUNCTION getCompenso
      (
       aCdCds COMPENSO.cd_cds%TYPE,
       aCdUnitaOrganizzativa COMPENSO.cd_unita_organizzativa%TYPE,
       aEsercizio COMPENSO.esercizio%TYPE,
       aPgCompenso COMPENSO.pg_compenso%TYPE,
       eseguiLock CHAR
      ) RETURN COMPENSO%ROWTYPE;

-- Ritorna un record della tabella COMPENSO che risulta collegatom a missione

   FUNCTION getCompensoDaMissione
      (
       aCdCds MISSIONE.cd_cds%TYPE,
       aCdUnitaOrganizzativa MISSIONE.cd_unita_organizzativa%TYPE,
       aEsercizio MISSIONE.esercizio%TYPE,
       aPgMissione MISSIONE.pg_missione%TYPE,
       eseguiLock CHAR
      ) RETURN COMPENSO%ROWTYPE;

-- Ritorna un record della tabella TIPO_TRATTAMENTO

   FUNCTION getTipoTrattamento
      (
       aCdTrattamento VARCHAR2,
       aDataRif DATE
      ) RETURN TIPO_TRATTAMENTO%ROWTYPE;

   FUNCTION getTipoTrattamento
      (
       aCdTrattamento VARCHAR2,
       aDataRif DATE,
       aGestioneChiuso CHAR
      ) RETURN TIPO_TRATTAMENTO%ROWTYPE;

-- Ritorna un record della tabella SCAGLIONE

   FUNCTION getScaglione
      (
       aCdContributoRitenuta SCAGLIONE.cd_contributo_ritenuta%TYPE,
       aTiAnagrafico SCAGLIONE.ti_anagrafico%TYPE,
       aDataRif DATE,
       aImportoRif IN OUT SCAGLIONE.im_inferiore%TYPE,
       aAliquota IN OUT SCAGLIONE.aliquota%TYPE,
       aCdRegione SCAGLIONE.cd_regione%TYPE,
       aCdProvincia SCAGLIONE.cd_provincia%TYPE,
       aPgComune SCAGLIONE.pg_comune%TYPE
      ) RETURN V_PRE_SCAGLIONE%ROWTYPE;

-- Ritorna 'Y' o 'N' a seconda che esista o meno il compenso

   FUNCTION chkEsisteCompenso
      (
       aCdCds VARCHAR2,
       aCdUnitaOrganizzativa VARCHAR2,
       aEsercizio NUMBER,
       aPgCompenso NUMBER
      ) RETURN CHAR;

-- Ritorna l'imponibile base di un tipo contributo ritenuta

   FUNCTION getImponibileBaseCori
      (
       aRecCompenso COMPENSO%ROWTYPE,
       cdClassificazioneCori TIPO_CONTRIBUTO_RITENUTA.cd_classificazione_cori%TYPE
      ) RETURN NUMBER;

-- Elimina CONTRIBUTO_RITENUTA e CONTRIBUTO_RITENUTA_DET

   PROCEDURE cancellaDetCompenso
      (
       aCdCds COMPENSO.cd_cds%TYPE,
       aCdUnitaOrganizzativa COMPENSO.cd_unita_organizzativa%TYPE,
       aEsercizio COMPENSO.esercizio%TYPE,
       aPgCompenso COMPENSO.pg_compenso%TYPE
      );

-- Elimina un intero COMPENSO

   PROCEDURE eliminaFisicoCompenso
      (
       aCdCds COMPENSO.cd_cds%TYPE,
       aCdUnitaOrganizzativa COMPENSO.cd_unita_organizzativa%TYPE,
       aEsercizio COMPENSO.esercizio%TYPE,
       aPgCompenso COMPENSO.pg_compenso%TYPE
      );

-- Elimina logicamente un intero COMPENSO

   PROCEDURE eliminaLogicoCompenso
      (
       aCdCds COMPENSO.cd_cds%TYPE,
       aCdUnitaOrganizzativa COMPENSO.cd_unita_organizzativa%TYPE,
       aEsercizio COMPENSO.esercizio%TYPE,
       aPgCompenso COMPENSO.pg_compenso%TYPE,
       aUtente COMPENSO.utuv%TYPE,
       aTiOrigineElimina CHAR
      );

-- Inserimento in COMPENSO

   PROCEDURE insCompenso
      (
       aRecCompenso COMPENSO%ROWTYPE
      );

-- Inserimento in CONTRIBUTO_RITENUTA

   PROCEDURE insContributoRitenuta
      (
       aRecContributoRitenuta CONTRIBUTO_RITENUTA%ROWTYPE
      );

-- Inserimento in CONTRIBUTO_RITENUTA_DET

   PROCEDURE insContributoRitenutaDet
      (
       aRecContributoRitenutaDet CONTRIBUTO_RITENUTA_DET%ROWTYPE
      );

-- Copia l'intera struttura dati di un compenso (utilizzato in modifica COMPENSO)

   PROCEDURE copiaCompenso
      (
       aCdCds VARCHAR2,
       aCdUnitaOrganizzativa VARCHAR2,
       aEsercizio NUMBER,
       aPgCompenso NUMBER,
       aCdCdsCopia VARCHAR2,
       aCdUnitaOrganizzativaCopia VARCHAR2,
       aEsercizioCopia NUMBER,
       aPgCompensoCopia NUMBER
      );

-- Ritorna un record della tabella CONGUAGLIO

   FUNCTION getConguaglio
      (
       aCdCds CONGUAGLIO.cd_cds%TYPE,
       aCdUnitaOrganizzativa CONGUAGLIO.cd_unita_organizzativa%TYPE,
       aEsercizio CONGUAGLIO.esercizio%TYPE,
       aPgConguaglio CONGUAGLIO.pg_conguaglio%TYPE,
       eseguiLock CHAR
      ) RETURN CONGUAGLIO%ROWTYPE;

-- Inserimento in ASS_COMPENSO_CONGUAGLIO

   PROCEDURE insAssCompensoConguaglio
      (
       aRecAssCompensoConguaglio ASS_COMPENSO_CONGUAGLIO%ROWTYPE
      );

-- Costruzione matrice date

   PROCEDURE componiMatriceDate
      (
       aIntervalloDate IN OUT intervalloDateTab,
       aDataDa DATE,
       aDataA  DATE,
       aTipoData CHAR,
       flNoSchiacciaSovrapposti CHAR
      );

-- Ritorna il numero di giorni presenti in una matrice date

   FUNCTION getGiorniMatriceDate
      (
       aIntervalloDate intervalloDateTab
      ) RETURN INTEGER;

-- Ritorna la massima data presente in una matrice date
   FUNCTION getMassimaMatriceDate
   (
    aIntervalloDate intervalloDateTab
   ) RETURN date;
-- Ritorna la minima data presente in una matrice date
   FUNCTION getMinimaMatriceDate
   (
    aIntervalloDate intervalloDateTab
   ) RETURN date;

-- Ritorna il numero di mesi presenti in una matrice date

   FUNCTION getMesiMatriceDate
      (
       aIntervalloDate intervalloDateTab
      ) RETURN INTEGER;

-- Ritorna il numero di mesi presenti in una matrice date in un dato Esercizio

   FUNCTION getMesiMatriceDateEsercizio
      (
       aIntervalloDate intervalloDateTab,
       aEsercizio INTEGER
      ) RETURN INTEGER;
-- Ritorna il numero di Mesi presenti in una matrice date in un dato Esercizio calcolandoli in base ai giorni

   FUNCTION getMesiMatriceDateEsForDays
      (
       aIntervalloDate intervalloDateTab,
       aEsercizio INTEGER
      ) RETURN INTEGER;

-- Ritorna l'indicazione di un tipo contributo ritenuta classificato come irpef a scaglioni

   FUNCTION getIsIrpefScaglioni
      (aCdClassifCori TIPO_CONTRIBUTO_RITENUTA.cd_classificazione_cori%TYPE,
       aPgClassifMontanti TIPO_CONTRIBUTO_RITENUTA.pg_classificazione_montanti%TYPE,
       aFlScriviMontanti TIPO_CONTRIBUTO_RITENUTA.fl_scrivi_montanti%TYPE
      ) RETURN CHAR;

-- Ritorna l'indicazione di un tipo contributo ritenuta classificato come addizionale territorio

   FUNCTION getIsAddTerritorio
      (aCdClassifCori TIPO_CONTRIBUTO_RITENUTA.cd_classificazione_cori%TYPE
      ) RETURN CHAR;

-- Ritorna l'indicazione di un tipo contributo ritenuta classificato come addizionale territorio
-- per recupero rate

   FUNCTION getIsAddTerritorioRecRate
      (aCdClassifCori TIPO_CONTRIBUTO_RITENUTA.cd_classificazione_cori%TYPE
      ) RETURN CHAR;

-- Ritorna l'indicazione di un tipo contributo ritenuta classificato come addizionale comunale acconto

   FUNCTION getIsAddTerritorioAcconto
      (aCdClassifCori TIPO_CONTRIBUTO_RITENUTA.cd_classificazione_cori%TYPE
      ) RETURN CHAR;

-- Ritorna l'indicazione di un tipo contributo ritenuta classificato come previdenziale

   FUNCTION getIsCoriPrevid
      (aCdClassifCori TIPO_CONTRIBUTO_RITENUTA.cd_classificazione_cori%TYPE
      ) RETURN CHAR;

-- Ritorna l'indicazione di un tipo contributo ritenuta classificato come assicurativo

   FUNCTION getIsCoriInail
      (aCdClassifCori TIPO_CONTRIBUTO_RITENUTA.cd_classificazione_cori%TYPE
      ) RETURN CHAR;

-- Ritorna l'indicazione di un tipo contributo ritenuta classificato come Credito Irpef

   FUNCTION IsCoriCreditoIrpef
     (aCdCori TIPO_CONTRIBUTO_RITENUTA.cd_contributo_ritenuta%TYPE
     ) RETURN CHAR;

-- Ritorna un record della tabella IVA

   FUNCTION getVoceIva
      (
       aCdVoceIva VOCE_IVA.cd_voce_iva%TYPE
      ) RETURN VOCE_IVA%ROWTYPE;

-- Ritorna un record della tabella TIPOLOGIA_RISCHIO

   FUNCTION getTipologiaRischio
      (
       aCdTipologiaRischio TIPOLOGIA_RISCHIO.cd_tipologia_rischio%TYPE,
       aDataRif DATE
      ) RETURN TIPOLOGIA_RISCHIO%ROWTYPE;

-- Ritorna la tipologia di origine di un compenso

   FUNCTION getTipoOrigineCompenso
      (
       aCdCds COMPENSO.cd_cds%TYPE,
       aCdUo COMPENSO.cd_unita_organizzativa%TYPE,
       aEsercizio COMPENSO.esercizio%TYPE,
       aPgCompenso COMPENSO.pg_compenso%TYPE
      ) RETURN INTEGER;

-- Ritorna la clessificazione di un contributo ritenuta da una occorrenza di CONTRIBUTO_RITENUTA

   FUNCTION getTipoCoriDaRigaCompenso
      (
       aRecContributoRitenuta CONTRIBUTO_RITENUTA%ROWTYPE
      ) RETURN VARCHAR2;

-- Compone la generazione della fattura per un compenso sia in inserimento che in modifica

   PROCEDURE generaFatturaPassiva
      (
       aRecCompenso COMPENSO%ROWTYPE,
       aRecCompensoOri COMPENSO%ROWTYPE,
       aRecAnagrafico ANAGRAFICO%ROWTYPE
      );

-- Ritorna il record di CONTRIBUTO_RITENUTA (uno solo) che rappresenta IVA

   FUNCTION getCoriIva
      (
       aCdCds COMPENSO.cd_cds%TYPE,
       aCdUo COMPENSO.cd_unita_organizzativa%TYPE,
       aEsercizio COMPENSO.esercizio%TYPE,
       aPgCompenso COMPENSO.pg_compenso%TYPE
      ) RETURN CONTRIBUTO_RITENUTA%ROWTYPE;

-- Ritorna la configurazione base della gestione deduzione IRPEF

   PROCEDURE getConfigDeduzioneIrpef
      (
       aEsercizio NUMBER,
       aBaseDeduzione IN OUT NUMBER,
       aQuotaFissaDeduzione IN OUT NUMBER,
       aQuotaVariabileDeduzione IN OUT NUMBER
      );

-- Ritorna la configurazione base della gestione deduzione FAMILY

   PROCEDURE getConfigDeduzioneFamily
      (
       aEsercizio NUMBER,
       glbBaseDeduzioneFamily IN OUT NUMBER,
       glbDFamilyConiuge IN OUT NUMBER,
       glbDFamilyFiglio IN OUT NUMBER,
       glbDFamilyAltro IN OUT NUMBER,
       glbDFamilyFiglioMenoTre IN OUT NUMBER,
       glbDFamilyFiglioSenzaConiuge IN OUT NUMBER,
       glbDFamilyFiglioHandicap IN OUT NUMBER
      );

-- Ritorna il valore minimo e massimo dello scaglione IRPEF in caso di gestione per aliquota
-- massima in anagrafica

   PROCEDURE getValMinMaxSclAlqMaxIrpef
      (
       aDataRegistrazione DATE,
       aRecTipoTrattamento TIPO_TRATTAMENTO%ROWTYPE,
       aAliquotaFiscaleAnag NUMBER,
       aImportoscaglioneMin IN OUT NUMBER,
       aImportoscaglioneMax IN OUT NUMBER
      );

-- Ritorna il record di RATEIZZA_CLASSIFIC_CORI presente nell'esercizio per l'anagrafico in calcolo di
-- compensi o conguagli

   FUNCTION getRateizzaClassificCori
      (
       aEsercizio NUMBER,
       aCdAnag NUMBER,
       isTemporaneo CHAR,
       aCdClassificazioneCori CHAR,
       eseguiLock CHAR
      ) RETURN RATEIZZA_CLASSIFIC_CORI%ROWTYPE;

-- Ritorna il record di RATEIZZA_CLASSIFIC_CORI_S presente nell'esercizio per l'anagrafico in calcolo di
-- compensi o conguagli

   FUNCTION getRateizzaClassificCoriStr
      (
       aEsercizio NUMBER,
       aCdsConguaglio CONGUAGLIO.cd_cds%TYPE,
       aCdUoConguaglio CONGUAGLIO.cd_unita_organizzativa%TYPE,
       aPgConguaglio CONGUAGLIO.pg_conguaglio%TYPE,
       aCdAnag NUMBER,
       isTemporaneo CHAR,
       aCdClassificazioneCori CHAR,
       eseguiLock CHAR
      )  RETURN RATEIZZA_CLASSIFIC_CORI%ROWTYPE;

-- Inserimento o aggiornamento di un record in RATEIZZA_CLASSIFIC_CORI da conguaglio

   PROCEDURE generaRateizzaClassificCori
      (
       aRecConguaglio CONGUAGLIO%ROWTYPE,
       aAmmontareDaRateizzare NUMBER,
       aRecRateizzaClassificCoriIn RATEIZZA_CLASSIFIC_CORI%ROWTYPE
      );

-- Inserimento di un record in RATEIZZA_CLASSIFIC_CORI

   PROCEDURE insRateizzaClassificCori
      (
       aRecRateizzaClassificCori RATEIZZA_CLASSIFIC_CORI%ROWTYPE,
       isStorico CHAR
      );

-- Ritorna l'indicazione se applicare o meno, per la regione in oggetto, l'aliquota massima
-- per l'intero importo

   FUNCTION getIsRegConAliqMax
      (aCdRegione REGIONE.cd_regione%TYPE
      ) RETURN CHAR;

-- Ritorna l'indicazione se applicare o meno, per il comune in oggetto, l'aliquota massima
-- per l'intero importo

   FUNCTION getIsComConAliqMax
      (aPgComune COMUNE.pg_comune%TYPE
      ) RETURN CHAR;

-- Ritorna il record di ACCONTO_CLASSIFIC_CORI presente nell'esercizio per l'anagrafico in calcolo di
-- compensi o conguagli

   FUNCTION getAccontoClassificCori
      (
       aEsercizio NUMBER,
       aCdAnag NUMBER,
       isTemporaneo CHAR,
       aCdClassificazioneCori CHAR,
       eseguiLock CHAR
      ) RETURN ACCONTO_CLASSIFIC_CORI%ROWTYPE;

-- Ritorna il record di ESENZIONI_ADDCOM relativo al comune di residenza e valido alla data odierna

   FUNCTION getEsenzioniAddcom
      (
       aPgComune NUMBER,
       aDataOdierna DATE
      ) RETURN ESENZIONI_ADDCOM%ROWTYPE;

-- Ritorna l'indicazione di un tipo contributo ritenuta classificato come addizionale comunale

   FUNCTION getIsAddComunale
      (aCdClassifCori TIPO_CONTRIBUTO_RITENUTA.cd_classificazione_cori%TYPE
      ) RETURN CHAR;
END CNRCTB545;




© 2015 - 2024 Weber Informatics LLC | Privacy Policy