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

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

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

  CREATE OR REPLACE PACKAGE "CNRCTB300" AS
-- =================================================================================================
--
-- CNRCTB300 - Modifica dello STATO_COFI, ed eventuale impostazione dei flag di
--             cancellazione logica, di tutti i documenti amministrativi a
--             fronte della emissione o dell'annullamento di un mandato/reversale
--
-- Date: 14/07/2006
-- Version: 3.19
--
-- =================================================================================================
-- PARAMETRI IN INPUT
-- =================================================================================================
--
-- +----------------------+---------------------------------------+------------+
-- |PARAMETRO             |DESCRIZIONE                            |OBBLIGATORIO|
-- +----------------------+---------------------------------------+------------+
-- |inCDSManrev           |CDS di riferimento man/rev             |     SI     |
-- |inEsercizioManrev     |Esercizio di riferimento man/rev       |     SI     |
-- |inPgManrev            |Progressivo identificativo man/rev     |     SI     |
-- |inTipoManrev          |Dominio:                               |     SI     |
-- |                      |MAN = Mandato                          |            |
-- |                      |REV = Reversale                        |            |
-- |                      |REV_PROVV = Reversale provvisoria      |            |
-- |inAzione              |Dominio:                               |     SI     |
-- |                      |A = Annullamento                       |            |
-- |                      |I = Inserimento                        |            |
-- |inUtente              |Utente applicativo di riferimento      |     SI     |
-- +----------------------+---------------------------------------+------------+
--
-- Dependency: CNRCTB 001/035/100/130 IBMERR 001 IBMUTL 001
--
-- History:
--
-- Date: 08/03/2002
-- Version: 1.0
--
-- Creazione Package.
--
-- Date: 02/04/2002
-- Version: 1.1
--
-- Introdotta gestione, solo per le fatture passive, dell'attributo ti_associato_manrev.
--
-- Date: 08/05/2002
-- Version: 1.2
--
-- Estesa gestione dell'attributo ti_associato_manrev anche a fatture attive e generici.
--
-- Date: 16/05/2002
-- Version: 1.4
-- Aggiornamento stato documenti amministrativi con procedure CNRCTB100
--
-- Date: 17/05/2002
-- Version: 1.5
-- Fix per gestione documenti amm. senza dettaglio con dati contabili in testata
--
-- Date: 22/05/2002
-- Version: 1.6
--
-- Fix per mancato aggiornamento dello stato COFI in testata documenti amministrativi
--
-- Date: 04/07/2002
-- Version: 1.7
--
-- Fix per errato aggiornamento dello stato di testata dei documenti senza dettagli in caso di
-- annullamento del mandato.
-- Introduzione dello stato di annullamento per i documenti che non possono esistere senza il
-- mandato o la reversale
--
-- Date: 06/07/2002
-- Version: 1.8
--
-- Previsione della cancellazione logica dei documenti amministrativi di accantonamento CORI
-- in caso di annullamento dei relativi mandati o reversali
--
-- Date: 08/07/2002
-- Version: 1.9
-- Aggiunta gestione aggiornamento fondo per annullamento mandato di reintegro + fix errori
--
-- Date: 08/07/2002
-- Version: 2.0
-- Smontaggio pratica Accantonamenti nel caso non esistano documenti di versamento
--
-- Date: 18/07/2002
-- Version: 2.1
-- Aggiornamento della documentazione
--
-- Date: 23/07/2002
-- Version: 2.2
-- Eliminazione di mandato legato a CORI
--
-- Date: 25/07/2002
-- Version: 2.3
-- Eliminazione della partita di giro creata sul'UO del centro che versa a seguito dei liquidazione locale accentrata
--
-- Date: 25/07/2002
-- Version: 2.4
-- Aggiunta la condizione su TRASF_S per annullamento doc generici collegati a mandato
--
-- Date: 17/09/2002
-- Version: 2.5
-- Gestione annullamento pagamento di compenso senza mandato principale
-- Gestione annullamento mandato di liquidazione IVA centralizzata e mandato di liquidazione non accentrata CORI decentrati
--
-- Date: 18/09/2002
-- Version: 2.6
-- Gestione tab. assoc. comp. senza man. princ. doc. aut. CORI in cancellazione mandati/reversali cori di comp. senza man. princ.
--
-- Date: 19/09/2002
-- Version: 2.7
-- Eliminazione della pratica al centro su compenso negativo
--
-- Date: 25/09/2002
-- Version: 2.8
-- Il generico di reintegro non produce l'annullamento dell'importo ass. a doc contabili sulla scad. di obb.
--
-- Date: 29/10/2002
-- Version: 2.9
-- Blocco in annullamento mandato mensile stipendi
--
-- Date: 05/11/2002
-- Version: 3.0
-- Gestione dell'annulamento del documento generico di tipo GEN_IVA_E
--
-- Date: 03/12/2002
-- Version: 3.1
--
-- Fix EI2927
-- Modificata la gestione dell'annullamento di mandati e reversali di regolarizzazione.
-- Prima erano sempre annullati tutti i documenti amministrativi associati ad un mandato o reversale
-- di regolarizzazione ora si annulla il solo documento amministrativo di tipo REGOLA_E, le altre
-- tipologie di documenti amministrativi non sono annullate
--
-- Date: 30/12/2002
-- Version: 3.2
-- Vedi -> 3.3
--
-- Date: 02/01/2003
-- Version: 3.3
-- Blocco su annullamento reversale di chiusura del fondo economale
--
-- Date: 07/01/2003
-- Version: 3.4
-- Blocco su annullamento mandato di reintegro e regolarizzazione (generati in reintegri su chiusura del fondo economale)
--
-- Date: 06/02/2003
-- Version: 3.5
--
-- Fix errore interno 2217. Gestione della data di esigibilitא iva sulle fatture attive a seguito di
-- emissione o annullamento di reversale
--
-- Date: 21/02/2003
-- Version: 3.6
--
-- Estrazione del codice terzo della riga mandato per gestire l'aggiornamento dello stato sui
-- documenti amministrativi. Se piש righe di generico insistono sulla stessa scadenza di obbligazione
-- (partite di giro a consumo su CNR) solo quelle che hanno terzo uguale a quello del mandato devono
-- essere aggiornate in modo concorde con inserimento o annullamento di mandati e reversali.
--
-- Date: 21/02/2003
-- Version: 3.7
-- Controllo di non eliminabilitא reversale di accantonamento versamento CORI accentrati
--
-- Date: 26/02/2003
-- Version: 3.8
-- Blocco annullamento eliminazione reversale accantonamento liquidazione iva centro
--
-- Date: 10/03/2003
-- Version: 3.9
--
-- In caso di emissione mandato su generico si selezionano le righe dello stesso come associate al
-- mandato alle seguenti condizioni in OR
-- 1) Codice terzo del mandato = codice terzo della riga del documento amministratico
-- 2) Il codice terzo del documento amministrativo corrisponde ad una anagrafico di tipo diversi
-- 3) Il generico ט un documento di reintegro fondo
-- 4) Il generico ט previsto essere da pagarsi o pagato tramite fondo economale
--
-- Date: 26/03/2003
-- Version: 3.10
--
-- Fix errore CINECA n. 549. Nella associazione tra terzo del mandato e riga del generico si verifica
-- anche l'abbinamento se DOCUMENTO_GENERICO_RIGA.cd_terzo_cessionario non ט nullo e coincide con
-- il terzo del mandato.
--
-- Date: 03/06/2003
-- Version: 3.11
-- Aggiunto callback di controllo di modifica del documento amministrativo basato
-- sul pg_ver_rec ndel documento stesso
--
-- Date: 19/06/2003
-- Version: 3.12
-- gestione dell'annullamento automatico del documento generico di versamento entrata (liq. cori)
--
-- Date: 24/06/2003
-- Version: 3.13
-- Razionalizzazione dei callback speciali effColl ...
--
-- Date: 15/09/2003
-- Version: 3.14
-- Documentazione
--
-- Date: 16/09/2003
-- Version: 3.15
--
-- Fix errore interno. Il sistema non riusciva a smontare le reversali secondarie (o mandati) associati
-- ad un mandato principale su compenso se pagato tramite fondo economale (no match tra terzo del generico
-- e quello del documento autorizzatorio. Abilitato match, indicpendente da codice terzo, per i tipi
-- documento GEN_CORA_E e GEN_CORA_S
--
-- Date: 24/09/2003
-- Version: 3.16
-- Fix su annullamento di mandato o reversale secondario di Compenso con recupero crediti da terzi
-- Ora la pratica al centro viene smontata eliminando il documento generico e annullando l'accertamento al centro.
-- Se l'accertamento al centro risulta riportato a nuovo esercizio, l'operazione di annullamento viene bloccata.
--
-- Date: 06/11/2003
-- Version: 3.17
-- Fix  su aggiornamento a C dello stato del compenso in annullamento mandati/reversali secondari di compenso con totale_compenso=0
--
-- Date: 03/01/2004
-- Version: 3.18
-- Fix errore 722
-- Annullamento non permesso di reversale liquidazione gruppo negativo senza compensazione in UO di versamento centrale
--
-- Date: 14/07/2006
-- Version: 3.19
-- Gestione Impegni/Accertamenti Residui:
-- aggiornata la funzione per tener conto anche del campo Esercizio Originale Impegno/Accertamento
--
-- =================================================================================================
--
-- Constants
--

   aUtente UTENTE.cd_utente%TYPE;
   dataOdierna DATE;

   mem_cd_cds DOCUMENTO_GENERICO_RIGA.cd_cds%TYPE;
   mem_cd_uo DOCUMENTO_GENERICO_RIGA.cd_unita_organizzativa%TYPE;
   mem_esercizio DOCUMENTO_GENERICO_RIGA.esercizio%TYPE;
   mem_tipo_docamm DOCUMENTO_GENERICO_RIGA.cd_tipo_documento_amm%TYPE;
   mem_pg_docamm DOCUMENTO_GENERICO_RIGA.pg_documento_generico%TYPE;
   mem_stato_cofi_tes DOCUMENTO_GENERICO_RIGA.stato_cofi%TYPE;

   TYPE GenericCurTyp IS REF CURSOR;

-- Functions e Procedures

----------------------------------------------------------------------------------------------------
-- Main PROCEDURE
----------------------------------------------------------------------------------------------------
-- Effetti su doc. amministrativi della registrazione/annullamento di mandati/reversali.
-- Modifica dello STATO_COFI, ed eventuale impostazione dei flag di cancellazione logica, di tutti i documenti
-- amministrativi a fronte della emissione o dell'annullamento di un mandato/reversale.
-- Valorizzazione o spegnimento della data di esigibilitא differita sulle fatture attive
--
-- pre-post-name: Effettua la modifica di stato COFI del documento amministrativo collegato al documento autorizzatorio
--                in processo.
-- pre:   Nessun'altra precondizione verificata
-- post:  Si estraggono le righe del mandato/reversale in elaborazione con gli estremi della scadenza di obbligazione
--        e del documento amministrativo di riferimento.
--        Per ogni occorrenza di riga del documento autorizzatorio in elaborazione si estraggono i dati degli eventuali
--        dettagli del documento amministrativo in input
--
--        Se il documento amministrativo in processo ha righe
--             Per ogni riga del documento amministrativo:
--                  Se si tratta di inserimento di documento autorizzatorio
--                       Viene aggiornato lo stato cofi della riga di documento aministrativo a 'P' (Pagato/Incassato)
--                       Viene aggiornato il tipo di associazione a mandati reversali a 'T' (Totalmente associato);
--                  Altrimenti
--                       Se il tipo di documento autorizzatorio ט 'A' (Accreditamento) o 'R' (Regolarizzazione)  o se
--                       il tipo di documento amministrativo ט di reintegro fondo economale o accantonamento di entrata
--                       o spesa (CORI)
--                            Viene aggiornato lo stato COFI del documento amministrativo ad 'A' (Annullato)
--                            Viene impostata la data di cancellazione del documento amministrativo
--                       Altrimenti
--                            Se lo stato COFI del documento ט 'P'
--                                 Viene aggiornato lo stato COFI del documento amministrativo a 'C' (Contabilizzato)
--                            Altrimenti
--                                 Viene aggiornato lo stato COFI del documento amministrativo a 'C' (Contabilizzato)
--
--        Per la testata del documento amministrativo:
--            Se il documento amministrativo non ha righe
--                 Se la modalitא ט di inserimento del documento autorizzatorio
--                      Lo stato COFI della testata di documento amministrativo viene posta a 'P'
--                      (Totalmente Pagato/Incassato)
--                 Altrimenti
--                      Lo stato COFI della testata di documento amministrativo viene posta a 'C' (Contabilizzato)
--            Altrimenti
--                 Se la modalitא ט di inserimento del documento autorizzatorio
--                      Se le righe risultano per parte in stato 'P' (Pagate/Incassate) e per parte in 'C' (Contabilizzate)
--                           Viene aggiornato lo stato COFI della testata 'Q' (Parzialmente Pagato/Incassato)
--                      Altrimenti
--                           Viene aggiornato lo stato COFI della testata 'P' (Totalmente Pagato/Incassato)
--                 Altrimenti
--                      Se almeno una riga del documento risulta in stato 'A' (Annullata)
--                           Se nessuna riga del documento amministrativo risulta in stato 'C' (Contabilizzata) o 'P'
--                           (Pagata/Incassata)
--                                Viene aggiornato lo stato COFI della testata a 'A' (Totalmente annullato)
--                           Se le righe risultano per parte in stato 'P' (Pagate/Incassate) e per parte in 'C' (Contabilizzate)
--                                Viene aggiornato lo stato COFI della testata 'Q' (Parzialmente Pagato/Incassato)
--                           Se le righe risultano tutte in stato 'C' (Contabilizzate)
--                                Viene aggiornato lo stato COFI della testata a 'C' (Contabilizzato)
--                           Se le righe risultano tutte in stato 'P' (Pagato/Incassato)
--                                Viene aggiornato lo stato COFI della testata a 'P' (Totalmente Pagato/Incassato)
--     Nel caso di annullamento del documento autorizzatorio
--         Se il tipo di documento amministrativo collegato al mandato ט un accantonamento di entrata o spesa
--              Viene annullata l'obbligazione o accertamento automatici generati con l'accantonamento:
--               Se il tipo di documento autorizzatorio ט 'MAN'
--                     Viene invocata la procedura: CNRCTB035.annullaObbligazione
--                Altrimenti
--                     Viene invocata la procedura: CNRCTB035.annullaAccertamento
--
--      Effetti collaterali su particolari tipi di documento autorizatorio
--      Nel caso il mandato  o reversale sia di versamento IVA
--             viene annullato il generico di versamento/trasferimento al centro e la liquidazione IVA
--      Nel caso il mandato  o reversale sia CORI di compenso senza mandato principale
--             viene riportato a 'C' (Contabilizzato) lo stato del compenso, se = 'P' (Totalmente Pagato/Incassato)
--      Nel caso il mandato in fase di annullamento sia di reintegro del fondo economale:
--             viene invocata la procedura CNRCTB130.ANNULLAREINTEGROSPESEFONDO
--      Nel caso il mandato in fase di annullamento sia di versamento CORI
--             viene invocata la procedura CNRCTB570.ANNULLALIQUIDAZIONE
--
-- Parametri:
--   inCDSManrev -> Codice cds del documento autorizzatorio
--   inEsercizioManrev -> Esercizio del documento autorizzatorio
--   inPgManrev -> Progressivo del documento autorizzatorio
--   inTipoManrev -> Tipo del documento autorizzatorio 'MAN' -> Mandato 'REV' -> Reversale
--   inAzione -> Tipo azione 'A' annullamento 'I' Inserimento del documento autorizzatorio
--   inUtente -> Utente che effettua la modifica
--

-- Lettura dei dati di testata e riga di mandato/reversale in input alla gestione

   PROCEDURE leggiMandatoReversale
      (
       inCDSManrev VARCHAR2,
       inEsercizioManrev NUMBER,
       inPgManrev NUMBER,
       inTipoManrev VARCHAR2,
       inAzione VARCHAR2,
       inUtente VARCHAR2
      );

   PROCEDURE aggDaSospesoRiscontro
      (
       inCDSManrev VARCHAR2,
       inEsercizioManrev NUMBER,
       inPgManrev NUMBER,
       inTipoManrev VARCHAR2,
       inUtente VARCHAR2
      );

----------------------------------------------------------------------------------------------------
-- FUNZIONI e PROCEDURE di servizio
----------------------------------------------------------------------------------------------------

-- Ciclo principale di aggiornamento dello stato_cofi, ed eventuale impostazione
-- dei flag di cancellazione logica, dei documenti amministrativi associati al
-- mandato/reversale in input

   PROCEDURE aggiornaStatoDocamm
      (
       aRecManrev V_MANDATO_UPG_STATO_DOCAMM%ROWTYPE,
       inTipoManrev VARCHAR2,
       inAzione VARCHAR2
      );

-- Ciclo di aggiornamento dello stato_cofi, ed eventuale impostazione dei flag di
-- cancellazione logica, sulle testate dei documenti amministrativi associati al
-- mandato/reversale in input

   PROCEDURE aggiornaStatoTestataDocamm
      (
       aRecManrev V_MANDATO_UPG_STATO_DOCAMM%ROWTYPE,
       inTipoManrev VARCHAR2,
       inAzione VARCHAR2
      );

-- Effetti collaterali ins/ann riga di mandato
-- Viene chiamato per ogni riga processata del mandato/reversale in processo

   PROCEDURE effCollRigaManRev
      (
       aRecManrev V_MANDATO_UPG_STATO_DOCAMM%ROWTYPE,
       inTipoManrev varchar2,
       inAzione varchar2
      );

-- Effetti collaterali annullamento particolari documenti generici
-- Invocato quando il doc amministrativo di tipo GENERICO risulta annullato

PROCEDURE effCollAnnDocGen
      (
       aRecManrev V_MANDATO_UPG_STATO_DOCAMM%ROWTYPE,
       inTipoManrev varchar2
      );

-- Effetti collaterali dovuti all'operazione effettuata sul documento autorizzatorio
-- Effetti esclusivamente dipendenti dalla testata del doc autorizzatorio
-- Tale metodo viene sempre chiamato al termine del processo centrale del package

PROCEDURE effCollFinale(
    inCDSManrev VARCHAR2,
    inEsercizioManrev NUMBER,
    inPgManrev NUMBER,
    inTipoManrev VARCHAR2,
    inAzione VARCHAR2,
    inUtente VARCHAR2
);

-- Controlli preliminari legati alla sola testata del documento autorizzatorio
-- Tale metodo viene chiamato prima di cominciare il processo centrale del package

PROCEDURE checkIniziale(
    inCDSManrev VARCHAR2,
    inEsercizioManrev NUMBER,
    inPgManrev NUMBER,
    inTipoManrev VARCHAR2,
    inAzione VARCHAR2,
    inUtente VARCHAR2
);


-- Composizione query di selezione delle righe dei documenti amministrativi
-- associati al mandato/reversale in input

   FUNCTION componiLeggiDocamm
      (
       aRecManrev V_MANDATO_UPG_STATO_DOCAMM%ROWTYPE,
       inTipoManrev VARCHAR2
      ) RETURN VARCHAR2;

-- Pre-post name: Sull base del pg_ver_rec passato verifica se il documento amministrativo ט cambiato (dopo averlo letto in modo lockante)
-- pre:   Il pg_ver_rec del documento amministrativo ט diverso da quello specificato o quello specificato null o il documento amministrativo non viene trovato
-- post:  Viene sollevata un'eccezione
--
-- Parametri:
--     aTiDocAmm -> Tipo di documento amministrativo
--     aCdCds -> Cds documento amministrativo
--     aEs -> Esercizio documento amministrativo
--     aCdUo -> UO documento amministrativo
--     aPgDocAmm -> Progressivo del documento amministrativo
--     aPgVerRec -> Progressivo di versione del documento amministrativo
--
   procedure checkDocAmmCambiato (aTiDocAmm varchar2,aCdCds varchar2,aEs number,aCdUo varchar2,aPgDocAmm number, aPgVerRec number);

END CNRCTB300;




© 2015 - 2024 Weber Informatics LLC | Privacy Policy