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

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

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

  CREATE OR REPLACE PACKAGE "CNRCTB750" AS
--==================================================================================================
--
-- CNRCTB750 - package di utilità per gestione cassiere
--
-- Date: 08/01/2004
-- Version: 1.16
--
-- Dependency:
--
-- History:
--
-- Date: 20/03/2003
-- Version: 1.0
-- Creazione package
--
-- Date: 15/04/2003
-- Version: 1.1
-- Modifica struttura EXT_CASSIERE00
--
-- Date: 16/04/2003
-- Version: 1.2
-- Introdotta gestione batch
--
-- Date: 17/04/2003
-- Version: 1.3
-- Completamento
--
-- Date: 22/04/2003
-- Version: 1.4
-- Corretta gestione sospesi da Banca d'Italia
--
-- Date: 26/04/2003
-- Version: 1.5
-- Gestione registrazione del log collegato al processo dell'interfaccia
--
-- Date: 26/05/2003
-- Version: 1.6
-- Gestione annullamento sospesi e caricamento riscontri
--
-- Date: 29/05/2003
-- Version: 1.7
-- Fix nuove funzionalita
--
-- Date: 05/06/2003
-- Version: 1.8
-- Gestione dell'update/annullamento di righe in BFRAME_BLOB
--
-- Date: 15/09/2003
-- Version: 1.9
-- Aggiornamento documentazione
--
-- Date: 32/10/2003
-- Version: 1.10
-- Introduzione della gestione di pagamento relativo alla Banca d'Italia
-- Introduzione del nuovo tracciato record dei Log
-- Azzeramento delle variabili aCds e aR01 all'interno del ciclo di calcolo
--
-- Date: 27/10/2003
-- Version: 1.11
-- Fix di non processo reversali e mandati annullati
-- Fix segnalazione errore nel caso la reversale ente non sia da Banca d'Italia mentre lo è il riscontro
-- della Banca.
-- Segnalazione di errore nel caso la reversale sia parte da Banca d'Italia e parte no.
--
-- Date: 27/10/2003
-- Version: 1.12
-- Fix minori: errore di log della reversale/mandato non trovato/annullato.
-- Fix segnalazione errore nel caso la reversale sia da Banca d'Italia mentre il non lo è il riscontro
-- della Banca.
--
-- Date: 20/11/2003
-- Version: 1.13
-- Fix distinta cassiere: errore nella selezione dei mandati/reversali da inserire in una distinta.
--  Se uno dei documenti inseriti è collegato ad un compenso al quale sono collegati Mand./Rev. CORI,
--	(tabella ASS_COMP_DOC_CONT_NMP), devono essere indicati anche quei Mand./Rev.
--
-- Date: 25/11/2003
-- Version: 1.14
-- Fix sul metodo checkDocContForDistCas: errore nella ricerca dei doc. cont. associati ad un eventuale
-- compenso.
--
-- Date: 27/11/2003
-- Version: 1.15
-- Fix sul metodo checkDocContForDistCas: Lock delle tabelle DISTINTA_CASSIERE e ASS_COMP_DOC_CONT_NMP.
--
-- Date: 08/01/2004
-- Version: 1.16
-- Fix mancato aggiornamento dello stato processato del record di storno sospeso
-- Aggiornamento di utuv,duva,pg_ver_rec aggiornamento dello stato processato del record di storno/inserimento sospeso
--
--==================================================================================================
--
-- Constants
--

CONTO_CORRENTE_SPECIALE CONSTANT VARCHAR2(50) := 'CONTO_CORRENTE_SPECIALE';
CONTO_CORRENTE_ENTE CONSTANT VARCHAR2(100) := 'ENTE';

-- ABIBNL determinato utilizzato CONFIGURAZIONE_CNR
ABIBNL number(5);

--
-- Functions e Procedures
--
 procedure checkRigaFile(aRiga ext_cassiere00%rowtype);

-- Pre-post-name: Invocazione del batch di processing dell'interfaccia di ritorno cassiere
-- pre: viene richiesta l'elaborazione dell'interfaccia di ritorno cassiere nell'esercizio spec. per il file specificato
--      dall'utente specificato
-- post: viene creato un job oracle (che invoca job_interfaccia_cassiere) sottomesso per l'esecuzione in background e
--       notificato all'utente il completamento dell'operazione di sottomissione.
--
-- Parametri:
--   aEs -> esercizio contabile
--   aNomeFile -> Nome del file dati
--   aUser -> utente che effettua l'operazione
 procedure processaInterfaccia(aEs number, aNomeFile varchar2,aUser varchar2);

-- Job di caricamento dell'interfaccia di ritorno cassiere per la gestione di:
--  1. Sospesi (Inserimento/Cancellazione)
--  2. Riscontri (Solo inserimento)
--
-- Pre-post-name: Record di testat T01 non trovato
-- pre: Nel loop delle righe del file cassiere viene trovato un dato di tipo TXX con XX <> 01 prima di trovare un record di tipo T01
-- post: Viene sollevata un'eccezione
--
-- Pre-post-name: Record di testat T01 con esercizio diverso dall'esercizio specificato
-- pre: L'esercizio aEs è diverso da quello del record di tipo T01 trovato
-- post: Viene sollevata un'eccezione
--
-- Pre-post-name: La reversale o il mandato risultano già parzialmente riscontrata manualmente
-- pre: Esistono riscontri manuali per il documento autorizzatorio
-- post: viene sollevata un'eccezione
--
-- Pre-post-name: La reversale o il mandato risultano annullati
-- pre: La reversale ed il mandato specificato sono annullati
-- post: viene sollevata un'eccezione
--
-- Pre-post-name: L'importo dei riscontri supera l'importo della reversale (mandato)
-- pre: il totale riscontrato risulta superiore all'importo del documento
-- post: viene sollevata un'eccezione
--
-- Pre-post-name: Reversale CNR non da Banca d'Italia mentre il riscontro della Banca è da Banca d'Italia
-- pre: La Reversale CNR non è da Banca d'Italia mentre il riscontro specificato si
-- post: viene sollevata un'eccezione
--
-- Pre-post-name: Reversale CNR da Banca d'Italia mentre il riscontro della Banca non è da Banca d'Italia
-- pre: La Reversale CNR è da Banca d'Italia mentre il riscontro specificato nell'interfaccia no
-- post: viene sollevata un'eccezione
--
-- Pre-post-name: Reversale in parte da Banca d'Italia ed in parte no
-- pre: La Reversale risulta per parte da Banca d'Italia e per parte no
-- post: viene sollevata un'eccezione
--
-- Pre-post-name: Documento da processare di CDS con specifica cc banca d'italia
-- pre: NUMERO_CONT_TESO del record T30 = '000000218154' e CDS letto da T01 diverso da Ente
-- post: viene sollevata un'eccezione
--
-- Pre-post-name: Tipo di oridinativo non compatibile (T30)
-- pre:  se il tipo di ordinativo (TIPO_ORDINATIVO) è diverso da 'R' o 'M' su record T30
-- post: viene sollevata un'eccezione
--
-- Pre-post-name: Stato ordinativo non compatibile per record T30
-- pre: Lo stato dell'ordinativo (STATO_ORDINATIVO) = '03' e il segno (SEGNO_IMPORTO_OPERAZIONE) = 1 (record T30)
-- post: viene sollevata un'eccezione
--
-- Pre-post-name: Sospeso già annullato
-- pre: Richiesto annullamento di sospeso (record T32 e STATO_SOSP del record = '05') e il sospeso è già annullato
-- post: viene sollevata un'eccezione
--
-- Pre-post-name: Sospeso già utilizzato
-- pre: Richiesto annullamento di sospeso (record T32 e STATO_SOSP del record = '05') e importo associato a doc.
--      autorizzatori o 1210 è diverso da 0
-- post: viene sollevata un'eccezione
--
-- Pre-post-name: Caricamento dell'interfaccia di ritorno cassiere
-- pre: viene richiesta l'elaborazione dell'interfaccia di ritorno cassiere nell'esercizio spec. per il file specificato
--      dall'utente specificato
-- post: Vengono eseguite le seguenti operiazioni:
--       lock della tabella EXT_CASSIERE00 che contiene il file con il tracciato della banca
--       Per ogni record in STATO iniziale presente in EXT_CASSIERE00 per l'esercizio e nome file specificati
--       ordinati per progressivo record:
--         1. Il record è di tipo T01 (record aR01)
--         2. Il record è di tipo T30 (Riscontri/Mandati record aR30)
--            	 Se lo stato dell'ordinativo (STATO_ORDINATIVO) = '03' e il segno (SEGNO_IMPORTO_OPERAZIONE) = 1
--                Determina il CDS dal record T01 corrispondente
--                Se il tipo di ordinativo (TIPO_ORDINATIVO) è 'R' (Reversale)
--                  > Crea il record di riscontro (aRisc) in tabella SOSPESO con le seguenti caratteristiche:
--                            ...
--							aRisc.DT_REGISTRAZIONE:=aR30.DATA_ESECUZIONE (T30)
--                            aRisc.DS_ANAGRAFICO:=aR30.DESCRIZIONE_BENEFICIARIODEBITO (T30)
--                            aRisc.CAUSALE:=aR30.CAUSALE;
-- 	                        Se aR01.NUMERO_CONT_TESO = '000000218154' allora
--                             Se il CDS è l'Ente
--                        	  aRisc.TI_CC_BI:='B'; (Tipo conto corrente da Banca d'Italia)
--                        	altrimenti
--                             aRisc.TI_CC_BI:='C'; (Conto corrente CDS)
--                            aRisc.IM_SOSPESO:=aR30.IMPORTO_OPERAZIONE;
--                            aRisc.IM_ASSOCIATO:=aR30.IMPORTO_OPERAZIONE;
--                            ...
--                  > Aggiorno il dettaglio det ETR
--                  > Aggiorna l'importo incassato della reversale
--                  > Se il totale riscontrato alla data = importo reversale
--                         Invoca CNRCTB037.riscontroReversale per le azioni di aggiornamento dei saldi Incassato
--                altrimenti (Mandato 'M')
--                  > Crea il record di riscontro (aRisc) in tabella SOSPESO con le seguenti caratteristiche:
--                            ...
--							aRisc.DT_REGISTRAZIONE:=aR30.DATA_ESECUZIONE (T30)
--                            aRisc.DS_ANAGRAFICO:=aR30.DESCRIZIONE_BENEFICIARIODEBITO (T30)
--                            aRisc.CAUSALE:=aR30.CAUSALE;
-- 	                        Se aR01.NUMERO_CONT_TESO = '000000218154' allora
--                             Se il CDS è l'Ente
--                        	  aRisc.TI_CC_BI:='B'; (Tipo conto corrente da Banca d'Italia)
--                        	altrimenti
--                             aRisc.TI_CC_BI:='C'; (Conto corrente CDS)
--                            aRisc.IM_SOSPESO:=aR30.IMPORTO_OPERAZIONE;
--                            aRisc.IM_ASSOCIATO:=aR30.IMPORTO_OPERAZIONE;
--                            ...
--                  > Aggiorno il dettaglio det USC
--                  > Aggiorna l'importo incassato del mandato
--                  > Se il totale riscontrato alla data = importo mandato
--                         Invoca CNRCTB037.riscontroMandato per le azioni di aggiornamento dei saldi Pagato
--         3. Il record è di tipo T32 (Sospesi, record aR32)
--             	 Se GESTIONE STORNO (aR32.STATO_SOSP = '05')
--                 Viene aggiornato lo stato a stornato (fl_stornato) del sopeso padre e dei suoi figli
--             	 Altrimenti se GESTIONE INSERIMENTO (aR32.STATO_SOSP = '02') e aR32.IMPORT = aR32.IMPORT_RESI_OPE
--               e aR32.SEGNO_IMPO = aR32.SEGNO_IMPO_RESI_OPER ed aR32.SEGNO_IMPO = 1
--                 Viene creato un record nella tabella SOPESO per il sospeso padre (aSospeso) con le sguenti caratteristiche
--				      ...
--                    aSospeso.CD_SOSPESO:=aR32.NUMERO_SOSP;
--                    aSospeso.DT_REGISTRAZIONE:=TO_DATE(aR32.DATA_OPER,'YYYYMMDD')
--                    aSospeso.DS_ANAGRAFICO:=aR32.DESCRI_BENE
--                    aSospeso.CAUSALE:=aR32.CAUSAL_1A_PART concatenata con aR32.CAUSAL_2A_PART
--                    -- identificazione banca d'Italia solo per sospesi ENTE
--                    Se il aR01.NUMERO_CONT_TESO = '000000218154'
--                     Se il cds è l'Ente
--                      aSospeso.TI_CC_BI:='B' (Banca d'Italia)
--                    altrimenti
--                     aSospeso.TI_CC_BI:='C'
--                    aSospeso.IM_SOSPESO:=aR32.IMPORT*aR32.SEGNO_IMPO
--                 Viene creato un record per il sospeso figlio (aSF) con la seguente caratteristica:
--                 Se aCds.cd_tipo_unita diversa da Ente
--                  aSF.CD_CDS_ORIGINE:=aSospeso.CD_CDS
--                  aSF.CD_UO_ORIGINE:=null
--                  aSF.STATO_SOSPESO:='A' --ASSEGNATO A CDS
--                 altrimenti
--                  aSF.CD_CDS_ORIGINE:=null
--                  aSF.CD_UO_ORIGINE:=null
--                  aSF.STATO_SOSPESO:='I' --INIZIALE
--       Al termine dell'operazione viene mandato attraverso il package 205 un messaggio applicativo all'utente
--       con informazioni riassuntive sull'operazione.
--       Gli errori vengono loggati con l'usuale meccanismo di log.
--       Se una riga di interfaccia viene processata con successo, viene effettuato anche un commit.
--       Altrimenti viene effetuato un rollback.
--
-- Parametri:
--   job,pg_exec,next_date -> parametri sistemistici dell'interfaccia di invocazione JOBs Oracle
--   aEs -> esercizio contabile
--   aNomeFile -> Nome del file dati
--   aUser -> utente che effettua l'operazione

 procedure job_interfaccia_cassiere (
  job NUMBER,
  pg_exec NUMBER,
  next_date DATE,
  aEs number,
  aNomeFile varchar2,
  aUser varchar2
 );

 procedure carica_ext_cassiere(aTipo varchar2, aPath varchar2, aFilename varchar2, aClob in out clob);
 procedure checkRemoveFile(aTipo varchar2, aPath varchar2, aFilename varchar2, aClob in out clob);

-- Pre-post-name: Controlla tutti i documenti inseriti in distinta.
-- pre: Cicla su tutti i documenti inseriti nella distinta.

-- post: Per ogni documento inserito in distinta, controlla nella tabella ASS_COMP_DOC_CONT_NMP
-- 		se è associato ad un compenso. In caso affermativo, controlla che tutti i Mand./Rev. collegati
--		al compenso, siano presenti nella distinta.
--		Se un documento è associato a Compenso il quale è associato a Mand./Rev. CORI non presenti nella distinta,
--		viene lanciata una eccezione indicando all'utente che il documento è associato a
-- 		doc. cont. legati ad un Compenso che ha dei Mand./Rev. che devono essere inclusi nella distinta.
--
-- Parametri:
--   aCdCds -> Cd_Cds della distinta
--   aEs 	-> esercizio della distinta
--   aCdUO 	-> Cd_uo della distinta
--   aPgDistinta -> progressivo della distinta

 procedure checkDocContForDistCas(
  aCdCds varchar2,
  aEs number,
  aCdUO varchar2,
  aPgDistinta number
 );
 procedure checkDocContForDistCasAnn(
   aCdCds varchar2,
   aEs number,
   aCdUO varchar2,
   aPgDistinta number
 );
END;




© 2015 - 2024 Weber Informatics LLC | Privacy Policy