From ea3cd4907533fdd7d18c419d28006178c83d72d9 Mon Sep 17 00:00:00 2001 From: "Amerigo C." Date: Thu, 6 Aug 2026 10:03:02 +0200 Subject: [PATCH] Update BANDO_VOLI-START.sql --- BANDO_VOLI-START.sql | 6483 +++++++++++++++++++++++++++++++----------- 1 file changed, 4840 insertions(+), 1643 deletions(-) diff --git a/BANDO_VOLI-START.sql b/BANDO_VOLI-START.sql index a565137..5c8dcd6 100644 --- a/BANDO_VOLI-START.sql +++ b/BANDO_VOLI-START.sql @@ -1,25 +1,15 @@ -- -- Create Schema Script --- Database Version : 12.2.0.1.0 --- Database Compatible Level : 12.2.0.0.0 --- Script Compatible Level : 12.2.0.0.0 +-- Database Version : 19.0.0.0.0 +-- Database Compatible Level : 19.0.0.0.0 +-- Script Compatible Level : 19.0.0.0.0 -- Toad Version : 13.3.0.181 --- DB Connect String : 10.140.209.52:1521/XE -- Schema : BANDO_VOLI -- Script Created by : BANDO_VOLI --- Script Created at : 09/03/2026 17:15:43 +-- Script Created at : 06/08/2026 09:54:45 -- Notes : -- --- Object Counts: --- Functions: 9 Lines of Code: 356 --- Indexes: 62 Columns: 67 --- Procedures: 11 Lines of Code: 259 --- Sequences: 23 --- Tables: 24 Columns: 228 Constraints: 81 --- Triggers: 20 --- Views: 2 Columns: 42 - -- "Set define off" turns off substitution variables. Set define off; @@ -88,7 +78,7 @@ CREATE SEQUENCE ALLEGATI_ID_SEQ -- ANAG_COMPAGNIE_SEQ (Sequence) -- CREATE SEQUENCE ANAG_COMPAGNIE_SEQ - START WITH 81 + START WITH 1 MAXVALUE 999999999999999999999999999 MINVALUE 1 NOCYCLE @@ -103,7 +93,22 @@ CREATE SEQUENCE ANAG_COMPAGNIE_SEQ -- ANAG_DICHIARAZIONI_ID_SEQ (Sequence) -- CREATE SEQUENCE ANAG_DICHIARAZIONI_ID_SEQ - START WITH 21 + START WITH 1 + MAXVALUE 9999999999999999999999999999 + MINVALUE 1 + NOCYCLE + CACHE 20 + NOORDER + NOKEEP + NOSCALE + GLOBAL; + + +-- +-- AUDIT_RICHIESTA_INTEGRAZIONE_ID_SEQ (Sequence) +-- +CREATE SEQUENCE AUDIT_RICHIESTA_INTEGRAZIONE_ID_SEQ + START WITH 1 MAXVALUE 9999999999999999999999999999 MINVALUE 1 NOCYCLE @@ -118,7 +123,7 @@ CREATE SEQUENCE ANAG_DICHIARAZIONI_ID_SEQ -- BANDI_ID_SEQ (Sequence) -- CREATE SEQUENCE BANDI_ID_SEQ - START WITH 21 + START WITH 1 MAXVALUE 9999999999999999999999999999 MINVALUE 1 NOCYCLE @@ -133,7 +138,7 @@ CREATE SEQUENCE BANDI_ID_SEQ -- COMPAGNIE_SEQ (Sequence) -- CREATE SEQUENCE COMPAGNIE_SEQ - START WITH 101 + START WITH 1 MAXVALUE 999999999999999999999999999 MINVALUE 1 NOCYCLE @@ -148,7 +153,22 @@ CREATE SEQUENCE COMPAGNIE_SEQ -- COMUNE_ID_SEQ (Sequence) -- CREATE SEQUENCE COMUNE_ID_SEQ - START WITH 21121 + START WITH 1 + MAXVALUE 9999999999999999999999999999 + MINVALUE 1 + NOCYCLE + CACHE 20 + NOORDER + NOKEEP + NOSCALE + GLOBAL; + + +-- +-- CUSTOMER_SATISFACTION_ID_SEQ (Sequence) +-- +CREATE SEQUENCE CUSTOMER_SATISFACTION_ID_SEQ + START WITH 1 MAXVALUE 9999999999999999999999999999 MINVALUE 1 NOCYCLE @@ -163,7 +183,7 @@ CREATE SEQUENCE COMUNE_ID_SEQ -- DOCUMENTIBANDO_ID_SEQ (Sequence) -- CREATE SEQUENCE DOCUMENTIBANDO_ID_SEQ - START WITH 21 + START WITH 1 MAXVALUE 9999999999999999999999999999 MINVALUE 1 NOCYCLE @@ -234,6 +254,21 @@ CREATE SEQUENCE DOMANDA_ID_SEQ GLOBAL; +-- +-- DOMANDA_SCONTI_CONTROLLI_ID_SEQ (Sequence) +-- +CREATE SEQUENCE DOMANDA_SCONTI_CONTROLLI_ID_SEQ + START WITH 1 + MAXVALUE 9999999999999999999999999999 + MINVALUE 1 + NOCYCLE + CACHE 20 + NOORDER + NOKEEP + NOSCALE + GLOBAL; + + -- -- DOMANDA_SCONTI_ID_SEQ (Sequence) -- @@ -249,11 +284,26 @@ CREATE SEQUENCE DOMANDA_SCONTI_ID_SEQ GLOBAL; +-- +-- DOMANDA_SCONTI_IMPORTI_LOG_ID_SEQ (Sequence) +-- +CREATE SEQUENCE DOMANDA_SCONTI_IMPORTI_LOG_ID_SEQ + START WITH 1 + MAXVALUE 9999999999999999999999999999 + MINVALUE 1 + NOCYCLE + CACHE 20 + NOORDER + NOKEEP + NOSCALE + GLOBAL; + + -- -- ESPORTAZIONI_SEQ (Sequence) -- CREATE SEQUENCE ESPORTAZIONI_SEQ - START WITH 81 + START WITH 1 MAXVALUE 999999999999999999999999999 MINVALUE 1 NOCYCLE @@ -268,7 +318,7 @@ CREATE SEQUENCE ESPORTAZIONI_SEQ -- FAQ_ID_SEQ (Sequence) -- CREATE SEQUENCE FAQ_ID_SEQ - START WITH 21 + START WITH 1 MAXVALUE 9999999999999999999999999999 MINVALUE 1 NOCYCLE @@ -294,6 +344,36 @@ CREATE SEQUENCE FAQ_UTENTI_ID_SEQ GLOBAL; +-- +-- IMPERSONIFICAZIONE_ID_SEQ (Sequence) +-- +CREATE SEQUENCE IMPERSONIFICAZIONE_ID_SEQ + START WITH 1 + MAXVALUE 9999999999999999999999999999 + MINVALUE 1 + NOCYCLE + CACHE 20 + NOORDER + NOKEEP + NOSCALE + GLOBAL; + + +-- +-- INTEGRAZIONI_EMAIL_QUEUE_ID_SEQ (Sequence) +-- +CREATE SEQUENCE INTEGRAZIONI_EMAIL_QUEUE_ID_SEQ + START WITH 1 + MAXVALUE 9999999999999999999999999999 + MINVALUE 1 + NOCYCLE + CACHE 20 + NOORDER + NOKEEP + NOSCALE + GLOBAL; + + -- -- LOGS_BE_ID_SEQ (Sequence) -- @@ -339,6 +419,21 @@ CREATE SEQUENCE LOGS_P7M_ID_SEQ GLOBAL; +-- +-- RICHIESTA_INTEGRAZIONE_ID_SEQ (Sequence) +-- +CREATE SEQUENCE RICHIESTA_INTEGRAZIONE_ID_SEQ + START WITH 1 + MAXVALUE 9999999999999999999999999999 + MINVALUE 1 + NOCYCLE + CACHE 20 + NOORDER + NOKEEP + NOSCALE + GLOBAL; + + -- -- SPID_ACCESSI_ID_SEQ (Sequence) -- @@ -358,7 +453,7 @@ CREATE SEQUENCE SPID_ACCESSI_ID_SEQ -- UID_FIREBASE_ADMIN_ID_SEQ (Sequence) -- CREATE SEQUENCE UID_FIREBASE_ADMIN_ID_SEQ - START WITH 81 + START WITH 1 MAXVALUE 9999999999999999999999999999 MINVALUE 1 NOCYCLE @@ -372,7 +467,7 @@ CREATE SEQUENCE UID_FIREBASE_ADMIN_ID_SEQ -- -- ACCOUNT (Table) -- --- Row Count: 3762 +-- Row Count: 402857 CREATE TABLE ACCOUNT ( CODICE_FISCALE VARCHAR2(16 BYTE) NOT NULL, @@ -383,7 +478,7 @@ CREATE TABLE ACCOUNT CANCELLATO NUMBER DEFAULT 0, ID NUMBER NOT NULL ) -TABLESPACE BANDO_VOLI +TABLESPACE BANDO_VOLI_TBS PCTUSED 0 PCTFREE 10 INITRANS 1 @@ -406,7 +501,7 @@ STORAGE ( -- CREATE UNIQUE INDEX IX_CF_ACCOUNT ON ACCOUNT (CODICE_FISCALE) -TABLESPACE BANDO_VOLI +TABLESPACE BANDO_VOLI_TBS PCTFREE 10 INITRANS 2 MAXTRANS 255 @@ -426,7 +521,7 @@ STORAGE ( -- CREATE UNIQUE INDEX PK_ACCOUNT_ID ON ACCOUNT (ID) -TABLESPACE BANDO_VOLI +TABLESPACE BANDO_VOLI_TBS PCTFREE 10 INITRANS 2 MAXTRANS 255 @@ -451,7 +546,7 @@ ALTER TABLE ACCOUNT ADD ( -- -- ACCOUNT_ANAGRAFICA (Table) -- --- Row Count: 3762 +-- Row Count: 375149 CREATE TABLE ACCOUNT_ANAGRAFICA ( CODICE_FISCALE VARCHAR2(16 BYTE) NOT NULL, @@ -480,9 +575,9 @@ CREATE TABLE ACCOUNT_ANAGRAFICA FORZATURA_CODICE_FISCALE INTEGER DEFAULT 0, SPID_EMAIL VARCHAR2(200 BYTE), PEC VARCHAR2(200 BYTE), - EMAIL VARCHAR2(255 BYTE) + EMAIL VARCHAR2(200 BYTE) ) -TABLESPACE BANDO_VOLI +TABLESPACE BANDO_VOLI_TBS PCTUSED 0 PCTFREE 10 INITRANS 1 @@ -505,7 +600,7 @@ STORAGE ( -- CREATE UNIQUE INDEX ACCOUNT_ANAGRAFICA_PK ON ACCOUNT_ANAGRAFICA (ID) -TABLESPACE BANDO_VOLI +TABLESPACE BANDO_VOLI_TBS PCTFREE 10 INITRANS 2 MAXTRANS 255 @@ -533,7 +628,7 @@ ALTER TABLE ACCOUNT_ANAGRAFICA ADD ( -- Dependencies: -- ACCOUNT (Table) -- --- Row Count: 3775 +-- Row Count: 422085 CREATE TABLE ACCOUNT_NUCLEO_FAMILIARE ( ID INTEGER NOT NULL, @@ -550,7 +645,7 @@ CREATE TABLE ACCOUNT_NUCLEO_FAMILIARE FLAG VARCHAR2(1000 BYTE), PRIORITY INTEGER DEFAULT 0 ) -TABLESPACE BANDO_VOLI +TABLESPACE BANDO_VOLI_TBS PCTUSED 0 PCTFREE 10 INITRANS 1 @@ -573,7 +668,7 @@ STORAGE ( -- CREATE UNIQUE INDEX ACCOUNT_NUCLEO_FAMILIARE_PK ON ACCOUNT_NUCLEO_FAMILIARE (ID) -TABLESPACE BANDO_VOLI +TABLESPACE BANDO_VOLI_TBS PCTFREE 10 INITRANS 2 MAXTRANS 255 @@ -593,7 +688,7 @@ STORAGE ( -- CREATE UNIQUE INDEX IDX_ACCOUNT_CODICE_FISCALE ON ACCOUNT_NUCLEO_FAMILIARE (ID_ACCOUNT, CODICE_FISCALE) -TABLESPACE BANDO_VOLI +TABLESPACE BANDO_VOLI_TBS PCTFREE 10 INITRANS 2 MAXTRANS 255 @@ -618,14 +713,14 @@ ALTER TABLE ACCOUNT_NUCLEO_FAMILIARE ADD ( -- -- AEROPORTI (Table) -- --- Row Count: 11 +-- Row Count: 45 CREATE TABLE AEROPORTI ( CODICE VARCHAR2(3 BYTE) NOT NULL, NOME VARCHAR2(255 BYTE) NOT NULL, REGIONE NUMBER NOT NULL ) -TABLESPACE BANDO_VOLI +TABLESPACE BANDO_VOLI_TBS PCTUSED 0 PCTFREE 10 INITRANS 1 @@ -648,7 +743,7 @@ STORAGE ( -- CREATE UNIQUE INDEX AEROPORTI_PK ON AEROPORTI (CODICE) -TABLESPACE BANDO_VOLI +TABLESPACE BANDO_VOLI_TBS PCTFREE 10 INITRANS 2 MAXTRANS 255 @@ -670,34 +765,10 @@ ALTER TABLE AEROPORTI ADD ( --- --- ALGPARAMETERS (Table) --- --- Row Count: 2 -CREATE TABLE ALGPARAMETERS -( - NAME VARCHAR2(100 BYTE), - VALUE NVARCHAR2(100) -) -TABLESPACE BANDO_VOLI -PCTUSED 0 -PCTFREE 10 -INITRANS 1 -MAXTRANS 255 -STORAGE ( - INITIAL 64K - NEXT 1M - MINEXTENTS 1 - MAXEXTENTS UNLIMITED - PCTINCREASE 0 - BUFFER_POOL DEFAULT - ); - - -- -- ALLEGATI (Table) -- --- Row Count: 3752 +-- Row Count: 384193 CREATE TABLE ALLEGATI ( ID INTEGER NOT NULL, @@ -712,7 +783,7 @@ CREATE TABLE ALLEGATI NOMEFILEORIGINALE VARCHAR2(255 BYTE), HASH_FILE VARCHAR2(1000 BYTE) ) -TABLESPACE BANDO_VOLI +TABLESPACE BANDO_VOLI_TBS PCTUSED 0 PCTFREE 10 INITRANS 1 @@ -735,7 +806,7 @@ STORAGE ( -- CREATE UNIQUE INDEX ALLEGATI_PK ON ALLEGATI (ID) -TABLESPACE BANDO_VOLI +TABLESPACE BANDO_VOLI_TBS PCTFREE 10 INITRANS 2 MAXTRANS 255 @@ -760,15 +831,19 @@ ALTER TABLE ALLEGATI ADD ( -- -- ANAG_COMPAGNIE (Table) -- --- Row Count: 46 +-- Row Count: 48 CREATE TABLE ANAG_COMPAGNIE ( - ID INTEGER NOT NULL, - NOME VARCHAR2(255 BYTE) NOT NULL, - ADESIONE INTEGER DEFAULT 0 NOT NULL, - DATA_ADESIONE DATE + ID INTEGER NOT NULL, + NOME VARCHAR2(255 BYTE) NOT NULL, + ADESIONE INTEGER DEFAULT 0 NOT NULL, + DATA_ADESIONE DATE, + PERC_COMPAGNIE NUMBER, + DATA_ADEGUAMENTO DATE, + ADEGUAMENTO_NATIVI NUMBER, + DATA_ADEGUAMENTO_NATIVI DATE ) -TABLESPACE BANDO_VOLI +TABLESPACE BANDO_VOLI_TBS PCTUSED 0 PCTFREE 10 INITRANS 1 @@ -791,7 +866,7 @@ STORAGE ( -- CREATE UNIQUE INDEX ANAG_COMPAGNIE_PK ON ANAG_COMPAGNIE (ID) -TABLESPACE BANDO_VOLI +TABLESPACE BANDO_VOLI_TBS PCTFREE 10 INITRANS 2 MAXTRANS 255 @@ -826,7 +901,7 @@ CREATE TABLE ANAG_DICHIARAZIONI POSIZIONE INTEGER DEFAULT 0, OBBLIGO INTEGER DEFAULT 0 ) -TABLESPACE BANDO_VOLI +TABLESPACE BANDO_VOLI_TBS PCTUSED 0 PCTFREE 10 INITRANS 1 @@ -849,7 +924,7 @@ STORAGE ( -- CREATE UNIQUE INDEX ANAG_DICHIARAZIONI_PK ON ANAG_DICHIARAZIONI (ID) -TABLESPACE BANDO_VOLI +TABLESPACE BANDO_VOLI_TBS PCTFREE 10 INITRANS 2 MAXTRANS 255 @@ -871,6 +946,56 @@ ALTER TABLE ANAG_DICHIARAZIONI ADD ( +-- +-- AUDIT_RICHIESTA_INTEGRAZIONE (Table) +-- +-- Row Count: 47 +CREATE TABLE AUDIT_RICHIESTA_INTEGRAZIONE +( + ID_AUDIT NUMBER NOT NULL, + ID_INTEGRAZIONE NUMBER NOT NULL, + DATA_MODIFICA DATE DEFAULT SYSDATE, + STATO_PRECEDENTE VARCHAR2(30 BYTE), + STATO_ATTUALE VARCHAR2(30 BYTE), + UTENTE_OPERATORE VARCHAR2(100 BYTE), + MOTIVO VARCHAR2(1000 BYTE), + ORIGINE VARCHAR2(50 BYTE) +) +TABLESPACE BANDO_VOLI_TBS +PCTUSED 0 +PCTFREE 10 +INITRANS 1 +MAXTRANS 255 +STORAGE ( + INITIAL 64K + NEXT 1M + MINEXTENTS 1 + MAXEXTENTS UNLIMITED + PCTINCREASE 0 + BUFFER_POOL DEFAULT + ); + + +ALTER TABLE AUDIT_RICHIESTA_INTEGRAZIONE ADD ( + PRIMARY KEY + (ID_AUDIT) + USING INDEX + TABLESPACE BANDO_VOLI_TBS + PCTFREE 10 + INITRANS 2 + MAXTRANS 255 + STORAGE ( + INITIAL 64K + NEXT 1M + MINEXTENTS 1 + MAXEXTENTS UNLIMITED + PCTINCREASE 0 + BUFFER_POOL DEFAULT + ) + ENABLE VALIDATE); + + + -- -- BANDI (Table) -- @@ -888,7 +1013,7 @@ CREATE TABLE BANDI COEFFICENTE_SFRATTO NUMBER(20,4), COEFFICENTE NUMBER(20,6) DEFAULT 0 ) -TABLESPACE BANDO_VOLI +TABLESPACE BANDO_VOLI_TBS PCTUSED 0 PCTFREE 10 INITRANS 1 @@ -911,7 +1036,7 @@ STORAGE ( -- CREATE UNIQUE INDEX BANDI_PK ON BANDI (ID) -TABLESPACE BANDO_VOLI +TABLESPACE BANDO_VOLI_TBS PCTFREE 10 INITRANS 2 MAXTRANS 255 @@ -936,7 +1061,7 @@ ALTER TABLE BANDI ADD ( -- -- COMUNE (Table) -- --- Row Count: 10558 +-- Row Count: 10559 CREATE TABLE COMUNE ( ID NUMBER(5) NOT NULL, @@ -952,7 +1077,7 @@ CREATE TABLE COMUNE REGIONE VARCHAR2(20 BYTE), SEARCH INTEGER DEFAULT 1 ) -TABLESPACE BANDO_VOLI +TABLESPACE BANDO_VOLI_TBS PCTUSED 0 PCTFREE 10 INITRANS 1 @@ -975,7 +1100,7 @@ STORAGE ( -- CREATE UNIQUE INDEX COMUNE_PK ON COMUNE (ID) -TABLESPACE BANDO_VOLI +TABLESPACE BANDO_VOLI_TBS PCTFREE 10 INITRANS 2 MAXTRANS 255 @@ -997,6 +1122,62 @@ ALTER TABLE COMUNE ADD ( +-- +-- CUSTOMER_SATISFACTION (Table) +-- +-- Row Count: 22417 +CREATE TABLE CUSTOMER_SATISFACTION +( + ID NUMBER, + CODICE_FISCALE VARCHAR2(16 BYTE) NOT NULL, + VALORE NUMBER, + DATA TIMESTAMP(6) DEFAULT SYSTIMESTAMP +) +TABLESPACE BANDO_VOLI_TBS +PCTUSED 0 +PCTFREE 10 +INITRANS 1 +MAXTRANS 255 +STORAGE ( + INITIAL 64K + NEXT 1M + MINEXTENTS 1 + MAXEXTENTS UNLIMITED + PCTINCREASE 0 + BUFFER_POOL DEFAULT + ); + + +-- +-- CUSTOMER_SATISFACTION_PK (Index) +-- +-- Dependencies: +-- CUSTOMER_SATISFACTION (Table) +-- +CREATE UNIQUE INDEX CUSTOMER_SATISFACTION_PK ON CUSTOMER_SATISFACTION +(ID) +TABLESPACE BANDO_VOLI_TBS +PCTFREE 10 +INITRANS 2 +MAXTRANS 255 +STORAGE ( + INITIAL 64K + NEXT 1M + MINEXTENTS 1 + MAXEXTENTS UNLIMITED + PCTINCREASE 0 + BUFFER_POOL DEFAULT + ); + +ALTER TABLE CUSTOMER_SATISFACTION ADD ( + CONSTRAINT CUSTOMER_SATISFACTION_PK + PRIMARY KEY + (ID) + USING INDEX CUSTOMER_SATISFACTION_PK + ENABLE VALIDATE); + + + -- -- DOCUMENTI_BANDO (Table) -- @@ -1016,7 +1197,7 @@ CREATE TABLE DOCUMENTI_BANDO MODULE VARCHAR2(255 BYTE), OBBLIGO_CONDIZIONATO VARCHAR2(255 BYTE) ) -TABLESPACE BANDO_VOLI +TABLESPACE BANDO_VOLI_TBS PCTUSED 0 PCTFREE 10 INITRANS 1 @@ -1045,7 +1226,7 @@ COMMENT ON COLUMN DOCUMENTI_BANDO.OBBLIGO_CONDIZIONATO IS 'TABELLA|CAMPO|VALORE' -- CREATE UNIQUE INDEX DOCUMENTI_BANDO_PK ON DOCUMENTI_BANDO (ID) -TABLESPACE BANDO_VOLI +TABLESPACE BANDO_VOLI_TBS PCTFREE 10 INITRANS 2 MAXTRANS 255 @@ -1070,7 +1251,7 @@ ALTER TABLE DOCUMENTI_BANDO ADD ( -- -- DOMANDA (Table) -- --- Row Count: 3751 +-- Row Count: 412483 CREATE TABLE DOMANDA ( ID INTEGER NOT NULL, @@ -1084,7 +1265,7 @@ CREATE TABLE DOMANDA STATO INTEGER DEFAULT 0 NOT NULL, NOTE VARCHAR2(3000 BYTE) ) -TABLESPACE BANDO_VOLI +TABLESPACE BANDO_VOLI_TBS PCTUSED 0 PCTFREE 10 INITRANS 1 @@ -1107,7 +1288,7 @@ STORAGE ( -- CREATE UNIQUE INDEX DOMANDA_PK ON DOMANDA (ID) -TABLESPACE BANDO_VOLI +TABLESPACE BANDO_VOLI_TBS PCTFREE 10 INITRANS 2 MAXTRANS 255 @@ -1127,7 +1308,7 @@ STORAGE ( -- CREATE UNIQUE INDEX IX_ACCOUNT ON DOMANDA (ID_ACCOUNT) -TABLESPACE BANDO_VOLI +TABLESPACE BANDO_VOLI_TBS PCTFREE 10 INITRANS 2 MAXTRANS 255 @@ -1158,7 +1339,7 @@ CREATE TABLE DOMANDA_DICHIARAZIONI ID_DOMANDA INTEGER, ID_ANAG_DICHIARAZIONI INTEGER ) -TABLESPACE BANDO_VOLI +TABLESPACE BANDO_VOLI_TBS PCTUSED 0 PCTFREE 10 INITRANS 1 @@ -1181,7 +1362,7 @@ STORAGE ( -- CREATE UNIQUE INDEX DOMANDA_DICHIARAZIONI_PK ON DOMANDA_DICHIARAZIONI (ID_DOMANDA, ID_ANAG_DICHIARAZIONI) -TABLESPACE BANDO_VOLI +TABLESPACE BANDO_VOLI_TBS PCTFREE 10 INITRANS 2 MAXTRANS 255 @@ -1219,7 +1400,7 @@ CREATE TABLE DOMANDA_EMAIL DATA_INVIO TIMESTAMP(6), STATO INTEGER DEFAULT 0 NOT NULL ) -TABLESPACE BANDO_VOLI +TABLESPACE BANDO_VOLI_TBS PCTUSED 0 PCTFREE 10 INITRANS 1 @@ -1242,7 +1423,7 @@ STORAGE ( -- CREATE UNIQUE INDEX DOMANDA_EMAIL_PK ON DOMANDA_EMAIL (ID) -TABLESPACE BANDO_VOLI +TABLESPACE BANDO_VOLI_TBS PCTFREE 10 INITRANS 2 MAXTRANS 255 @@ -1267,7 +1448,7 @@ ALTER TABLE DOMANDA_EMAIL ADD ( -- -- DOMANDA_SCONTI (Table) -- --- Row Count: 3775 +-- Row Count: 1960356 CREATE TABLE DOMANDA_SCONTI ( ID INTEGER NOT NULL, @@ -1280,8 +1461,6 @@ CREATE TABLE DOMANDA_SCONTI COMUNE_RESIDENZA VARCHAR2(255 BYTE), PROV_RESIDENZA VARCHAR2(2 BYTE), CAP_RESIDENZA VARCHAR2(5 BYTE), - STUDENTE INTEGER DEFAULT 0, - DISABILE INTEGER DEFAULT 0, COMPAGNIA_AEREA VARCHAR2(255 BYTE), NUMERO_VOLO VARCHAR2(255 BYTE) NOT NULL, DATA_VOLO DATE NOT NULL, @@ -1307,12 +1486,16 @@ CREATE TABLE DOMANDA_SCONTI AEROPORTO_DESTINAZIONE_CODICE VARCHAR2(3 BYTE), COMPAGNIA_ID INTEGER, DATA_ACQUISTO DATE, + SCONTO_TOTALE NUMBER(10,4) DEFAULT NULL, LOTTO INTEGER DEFAULT 0 NOT NULL, - SCONTO_TOTALE NUMBER(10,4), FLAG VARCHAR2(1000 BYTE), - PRIORITY INTEGER DEFAULT 0 + PRIORITY INTEGER DEFAULT 0, + FORZA_RESIDENZA INTEGER DEFAULT 0, + CITTADINANZA VARCHAR2(255 CHAR), + FILEPATH_BIGLIETTO_HASH VARCHAR2(1000 CHAR), + FILEPATH_CARTAIMBARCO_HASH VARCHAR2(1000 CHAR) ) -TABLESPACE BANDO_VOLI +TABLESPACE BANDO_VOLI_TBS PCTUSED 0 PCTFREE 10 INITRANS 1 @@ -1328,6 +1511,8 @@ STORAGE ( COMMENT ON COLUMN DOMANDA_SCONTI.DATA_ACQUISTO IS 'Data di acquisto del biglietto aereo'; +COMMENT ON COLUMN DOMANDA_SCONTI.FORZA_RESIDENZA IS '1 = Forza il calcolo dello sconto residenza'; + -- -- DOMANDA_SCONTI_PK (Index) @@ -1337,7 +1522,7 @@ COMMENT ON COLUMN DOMANDA_SCONTI.DATA_ACQUISTO IS 'Data di acquisto del bigliett -- CREATE UNIQUE INDEX DOMANDA_SCONTI_PK ON DOMANDA_SCONTI (ID) -TABLESPACE BANDO_VOLI +TABLESPACE BANDO_VOLI_TBS PCTFREE 10 INITRANS 2 MAXTRANS 255 @@ -1357,7 +1542,7 @@ STORAGE ( -- CREATE UNIQUE INDEX KY_SCONTI_IX ON DOMANDA_SCONTI (CODICE_FISCALE, NUMERO_VOLO, DATA_VOLO) -TABLESPACE BANDO_VOLI +TABLESPACE BANDO_VOLI_TBS PCTFREE 10 INITRANS 2 MAXTRANS 255 @@ -1380,15 +1565,20 @@ ALTER TABLE DOMANDA_SCONTI ADD ( -- --- ESPORTAZIONI (Table) +-- DOMANDA_SCONTI_CONTROLLI (Table) -- --- Row Count: 12 -CREATE TABLE ESPORTAZIONI +-- Row Count: 1546 +CREATE TABLE DOMANDA_SCONTI_CONTROLLI ( - LOTTO INTEGER NOT NULL, - DATA_CREAZIONE TIMESTAMP(6) DEFAULT SYSTIMESTAMP + ID NUMBER, + LOTTO NUMBER, + ID_DOMANDA_SCONTI NUMBER, + DATA_ESITO TIMESTAMP(6), + ID_UID_FIREBASE_ADMIN NUMBER, + ESITO NUMBER, + DATA_INSERIMENTO TIMESTAMP(6) DEFAULT SYSTIMESTAMP ) -TABLESPACE BANDO_VOLI +TABLESPACE BANDO_VOLI_TBS PCTUSED 0 PCTFREE 10 INITRANS 1 @@ -1404,14 +1594,34 @@ STORAGE ( -- --- ESPORTAZIONI_PK (Index) +-- DOMANDA_SCONTI_CONTROLLI_PK (Index) -- -- Dependencies: --- ESPORTAZIONI (Table) +-- DOMANDA_SCONTI_CONTROLLI (Table) -- -CREATE UNIQUE INDEX ESPORTAZIONI_PK ON ESPORTAZIONI -(LOTTO) -TABLESPACE BANDO_VOLI +CREATE UNIQUE INDEX DOMANDA_SCONTI_CONTROLLI_PK ON DOMANDA_SCONTI_CONTROLLI +(ID) +TABLESPACE BANDO_VOLI_TBS +PCTFREE 10 +INITRANS 2 +MAXTRANS 255 +STORAGE ( + INITIAL 64K + NEXT 1M + MINEXTENTS 1 + MAXEXTENTS UNLIMITED + PCTINCREASE 0 + BUFFER_POOL DEFAULT + ); +-- +-- IX_ID_DOMANDA_SCONTI (Index) +-- +-- Dependencies: +-- DOMANDA_SCONTI_CONTROLLI (Table) +-- +CREATE UNIQUE INDEX IX_ID_DOMANDA_SCONTI ON DOMANDA_SCONTI_CONTROLLI +(ID_DOMANDA_SCONTI) +TABLESPACE BANDO_VOLI_TBS PCTFREE 10 INITRANS 2 MAXTRANS 255 @@ -1424,94 +1634,79 @@ STORAGE ( BUFFER_POOL DEFAULT ); -ALTER TABLE ESPORTAZIONI ADD ( - CONSTRAINT ESPORTAZIONI_PK +ALTER TABLE DOMANDA_SCONTI_CONTROLLI ADD ( + CONSTRAINT DOMANDA_SCONTI_CONTROLLI_PK PRIMARY KEY - (LOTTO) - USING INDEX ESPORTAZIONI_PK + (ID) + USING INDEX DOMANDA_SCONTI_CONTROLLI_PK ENABLE VALIDATE); -- --- FAQ (Table) +-- DOMANDA_SCONTI_IMPORTI_LOG (Table) -- --- Row Count: 2 -CREATE TABLE FAQ +-- Dependencies: +-- DOMANDA_SCONTI (Table) +-- +-- Row Count: 0 +CREATE TABLE DOMANDA_SCONTI_IMPORTI_LOG ( - ID NUMBER NOT NULL, + ID NUMBER, + ID_DOMANDA_SCONTI NUMBER, + ID_DOMANDA NUMBER, + COSTO_TRATTA FLOAT(126), + DATA TIMESTAMP(6) DEFAULT SYSTIMESTAMP, ID_UID_FIREBASE_ADMIN NUMBER, - OGGETTO VARCHAR2(1000 BYTE), - PUBBLICATA NUMBER DEFAULT 0 NOT NULL, - CANCELLATO NUMBER DEFAULT 0 NOT NULL, - DATA_INSERIMENTO TIMESTAMP(6) DEFAULT SYSTIMESTAMP, - ID_CATEGORIA NUMBER, - BANDO NUMBER DEFAULT 0, - DOMANDA VARCHAR2(1000 BYTE) + SCONTO_TOTALE FLOAT(126) ) -TABLESPACE BANDO_VOLI +TABLESPACE BANDO_VOLI_TBS PCTUSED 0 PCTFREE 10 INITRANS 1 MAXTRANS 255 STORAGE ( - INITIAL 64K - NEXT 1M - MINEXTENTS 1 - MAXEXTENTS UNLIMITED PCTINCREASE 0 BUFFER_POOL DEFAULT ); -- --- FAQ_PK (Index) +-- DOMANDA_SCONTI_IMPORTI_LOG_PK (Index) -- -- Dependencies: --- FAQ (Table) +-- DOMANDA_SCONTI_IMPORTI_LOG (Table) -- -CREATE UNIQUE INDEX FAQ_PK ON FAQ +CREATE UNIQUE INDEX DOMANDA_SCONTI_IMPORTI_LOG_PK ON DOMANDA_SCONTI_IMPORTI_LOG (ID) -TABLESPACE BANDO_VOLI +TABLESPACE BANDO_VOLI_TBS PCTFREE 10 INITRANS 2 MAXTRANS 255 STORAGE ( - INITIAL 64K - NEXT 1M - MINEXTENTS 1 - MAXEXTENTS UNLIMITED PCTINCREASE 0 BUFFER_POOL DEFAULT ); -ALTER TABLE FAQ ADD ( - CONSTRAINT FAQ_PK +ALTER TABLE DOMANDA_SCONTI_IMPORTI_LOG ADD ( + CONSTRAINT DOMANDA_SCONTI_IMPORTI_LOG_PK PRIMARY KEY (ID) - USING INDEX FAQ_PK + USING INDEX DOMANDA_SCONTI_IMPORTI_LOG_PK ENABLE VALIDATE); -- --- FAQ_UTENTI (Table) +-- DOMANDA_SCONTI_INTEGRAZIONE (Table) -- --- Row Count: 0 -CREATE TABLE FAQ_UTENTI +-- Row Count: 15390 +CREATE TABLE DOMANDA_SCONTI_INTEGRAZIONE ( - ID NUMBER NOT NULL, - NOME VARCHAR2(200 BYTE), - COGNOME VARCHAR2(200 BYTE), - EMAIL VARCHAR2(100 BYTE), - STATO NUMBER DEFAULT 0 NOT NULL, - DOMANDA VARCHAR2(1000 BYTE), - ID_CATEGORIA NUMBER, - BANDO NUMBER DEFAULT 0, - DATA_INSERIMENTO TIMESTAMP(6) DEFAULT SYSTIMESTAMP, - ACCOUNT VARCHAR2(20 BYTE) + ID_RICHIESTA INTEGER, + LOTTO_INTEGRAZIONE INTEGER ) -TABLESPACE BANDO_VOLI +TABLESPACE BANDO_VOLI_TBS PCTUSED 0 PCTFREE 10 INITRANS 1 @@ -1527,14 +1722,14 @@ STORAGE ( -- --- FAQ_UTENTI_PK (Index) +-- IX_ID_RICHIESTA (Index) -- -- Dependencies: --- FAQ_UTENTI (Table) +-- DOMANDA_SCONTI_INTEGRAZIONE (Table) -- -CREATE UNIQUE INDEX FAQ_UTENTI_PK ON FAQ_UTENTI -(ID) -TABLESPACE BANDO_VOLI +CREATE UNIQUE INDEX IX_ID_RICHIESTA ON DOMANDA_SCONTI_INTEGRAZIONE +(ID_RICHIESTA) +TABLESPACE BANDO_VOLI_TBS PCTFREE 10 INITRANS 2 MAXTRANS 255 @@ -1547,33 +1742,34 @@ STORAGE ( BUFFER_POOL DEFAULT ); -ALTER TABLE FAQ_UTENTI ADD ( - CONSTRAINT FAQ_UTENTI_PK - PRIMARY KEY - (ID) - USING INDEX FAQ_UTENTI_PK - ENABLE VALIDATE); +ALTER TABLE DOMANDA_SCONTI_INTEGRAZIONE ADD ( + CHECK ("ID_RICHIESTA" IS NOT NULL) + DISABLE NOVALIDATE); -- --- LOGS (Table) +-- ESPORTAZIONI (Table) -- --- Row Count: 22717 -CREATE TABLE LOGS +-- Row Count: 106 +CREATE TABLE ESPORTAZIONI ( - ID NUMBER(38) NOT NULL, - ID_OPERATORE VARCHAR2(255 BYTE), - IP VARCHAR2(255 BYTE), - USERNAME VARCHAR2(255 BYTE), - DATA TIMESTAMP(6) DEFAULT SYSTIMESTAMP NOT NULL, - MODULE VARCHAR2(255 BYTE), - ACTION VARCHAR2(255 BYTE), - INFO CLOB, - OLDVALUE CLOB, - OPERATION CLOB + LOTTO INTEGER NOT NULL, + DATA_CREAZIONE TIMESTAMP(6) DEFAULT SYSTIMESTAMP, + DATA_FILTRO DATE, + NUMERO_DRS VARCHAR2(255 BYTE), + DATA_DRS DATE, + FILEPATH VARCHAR2(1000 BYTE), + TIPO INTEGER, + IMPORTO_MANDATO VARCHAR2(255 BYTE), + NOTE VARCHAR2(1000 BYTE), + MESE_RIFERIMENTO VARCHAR2(255 BYTE), + CAPITOLO_BILANCIO VARCHAR2(255 BYTE), + ANNO_FINANZIARIO VARCHAR2(255 BYTE), + CODICE_FINANZIARIO VARCHAR2(255 BYTE), + FILEPATH_DRS VARCHAR2(1000 BYTE) ) -TABLESPACE BANDO_VOLI +TABLESPACE BANDO_VOLI_TBS PCTUSED 0 PCTFREE 10 INITRANS 1 @@ -1589,14 +1785,14 @@ STORAGE ( -- --- LOGS_PK (Index) +-- ESPORTAZIONI_PK (Index) -- -- Dependencies: --- LOGS (Table) +-- ESPORTAZIONI (Table) -- -CREATE UNIQUE INDEX LOGS_PK ON LOGS -(ID) -TABLESPACE BANDO_VOLI +CREATE UNIQUE INDEX ESPORTAZIONI_PK ON ESPORTAZIONI +(LOTTO) +TABLESPACE BANDO_VOLI_TBS PCTFREE 10 INITRANS 2 MAXTRANS 255 @@ -1609,24 +1805,32 @@ STORAGE ( BUFFER_POOL DEFAULT ); +ALTER TABLE ESPORTAZIONI ADD ( + CONSTRAINT ESPORTAZIONI_PK + PRIMARY KEY + (LOTTO) + USING INDEX ESPORTAZIONI_PK + ENABLE VALIDATE); + + + -- --- LOGS_BE (Table) +-- FAQ (Table) -- --- Row Count: 38 -CREATE TABLE LOGS_BE +-- Row Count: 4 +CREATE TABLE FAQ ( - ID NUMBER(38) NOT NULL, - ID_OPERATORE VARCHAR2(255 BYTE), - IP VARCHAR2(255 BYTE), - USERNAME VARCHAR2(255 BYTE), - DATA TIMESTAMP(6) DEFAULT SYSTIMESTAMP NOT NULL, - MODULE VARCHAR2(255 BYTE), - ACTION VARCHAR2(255 BYTE), - INFO CLOB, - OLDVALUE CLOB, - OPERATION CLOB + ID NUMBER NOT NULL, + ID_UID_FIREBASE_ADMIN NUMBER, + OGGETTO VARCHAR2(1000 BYTE), + PUBBLICATA NUMBER DEFAULT 0 NOT NULL, + CANCELLATO NUMBER DEFAULT 0 NOT NULL, + DATA_INSERIMENTO TIMESTAMP(6) DEFAULT SYSTIMESTAMP, + ID_CATEGORIA NUMBER, + BANDO NUMBER DEFAULT 0, + DOMANDA VARCHAR2(1000 BYTE) ) -TABLESPACE BANDO_VOLI +TABLESPACE BANDO_VOLI_TBS PCTUSED 0 PCTFREE 10 INITRANS 1 @@ -1642,14 +1846,14 @@ STORAGE ( -- --- LOGS_BE_PK (Index) +-- FAQ_PK (Index) -- -- Dependencies: --- LOGS_BE (Table) +-- FAQ (Table) -- -CREATE UNIQUE INDEX LOGS_BE_PK ON LOGS_BE +CREATE UNIQUE INDEX FAQ_PK ON FAQ (ID) -TABLESPACE BANDO_VOLI +TABLESPACE BANDO_VOLI_TBS PCTFREE 10 INITRANS 2 MAXTRANS 255 @@ -1662,60 +1866,90 @@ STORAGE ( BUFFER_POOL DEFAULT ); +ALTER TABLE FAQ ADD ( + CONSTRAINT FAQ_PK + PRIMARY KEY + (ID) + USING INDEX FAQ_PK + ENABLE VALIDATE); + + + -- --- LOGS_P7M (Table) +-- FAQ_UTENTI (Table) -- --- Row Count: 0 -CREATE TABLE LOGS_P7M +-- Row Count: 1423 +CREATE TABLE FAQ_UTENTI ( - ID INTEGER, - ID_DOMANDA INTEGER, - ERRORE VARCHAR2(4000 BYTE), - FILEPATH VARCHAR2(4000 BYTE), - DATA TIMESTAMP(6) DEFAULT SYSTIMESTAMP, - FASE NUMBER + ID NUMBER NOT NULL, + NOME VARCHAR2(200 BYTE), + COGNOME VARCHAR2(200 BYTE), + EMAIL VARCHAR2(100 BYTE), + STATO NUMBER DEFAULT 0 NOT NULL, + DOMANDA VARCHAR2(1000 BYTE), + ID_CATEGORIA NUMBER, + BANDO NUMBER DEFAULT 0, + DATA_INSERIMENTO TIMESTAMP(6) DEFAULT SYSTIMESTAMP, + ACCOUNT VARCHAR2(20 BYTE) ) -TABLESPACE BANDO_VOLI +TABLESPACE BANDO_VOLI_TBS PCTUSED 0 PCTFREE 10 INITRANS 1 MAXTRANS 255 STORAGE ( + INITIAL 64K + NEXT 1M + MINEXTENTS 1 + MAXEXTENTS UNLIMITED PCTINCREASE 0 BUFFER_POOL DEFAULT ); -- --- LOGS_P7M_PK (Index) +-- FAQ_UTENTI_PK (Index) -- -- Dependencies: --- LOGS_P7M (Table) +-- FAQ_UTENTI (Table) -- -CREATE UNIQUE INDEX LOGS_P7M_PK ON LOGS_P7M +CREATE UNIQUE INDEX FAQ_UTENTI_PK ON FAQ_UTENTI (ID) -TABLESPACE BANDO_VOLI +TABLESPACE BANDO_VOLI_TBS PCTFREE 10 INITRANS 2 MAXTRANS 255 STORAGE ( + INITIAL 64K + NEXT 1M + MINEXTENTS 1 + MAXEXTENTS UNLIMITED PCTINCREASE 0 BUFFER_POOL DEFAULT ); +ALTER TABLE FAQ_UTENTI ADD ( + CONSTRAINT FAQ_UTENTI_PK + PRIMARY KEY + (ID) + USING INDEX FAQ_UTENTI_PK + ENABLE VALIDATE); + + + -- --- SPID_ACCESSI (Table) +-- IMPERSONIFICAZIONE (Table) -- --- Row Count: 0 -CREATE TABLE SPID_ACCESSI +-- Row Count: 38 +CREATE TABLE IMPERSONIFICAZIONE ( - ID NUMBER NOT NULL, - CODICE_FISCALE VARCHAR2(30 BYTE), - INRESPONSETO VARCHAR2(200 BYTE), - AUTHNINSTANT VARCHAR2(200 BYTE), - DATA TIMESTAMP(6) DEFAULT SYSTIMESTAMP + ID NUMBER, + DATA TIMESTAMP(6) DEFAULT SYSTIMESTAMP, + UID_FIREBASE_ADMIN VARCHAR2(255 BYTE), + CODICE_FISCALE VARCHAR2(16 BYTE), + USED INTEGER DEFAULT 0 ) -TABLESPACE BANDO_VOLI +TABLESPACE BANDO_VOLI_TBS PCTUSED 0 PCTFREE 10 INITRANS 1 @@ -1730,17 +1964,47 @@ STORAGE ( ); +ALTER TABLE IMPERSONIFICAZIONE ADD ( + PRIMARY KEY + (ID) + USING INDEX + TABLESPACE BANDO_VOLI_TBS + PCTFREE 10 + INITRANS 2 + MAXTRANS 255 + STORAGE ( + INITIAL 64K + NEXT 1M + MINEXTENTS 1 + MAXEXTENTS UNLIMITED + PCTINCREASE 0 + BUFFER_POOL DEFAULT + ) + ENABLE VALIDATE); + + + -- --- SPID_ACCESSI_PK (Index) --- --- Dependencies: --- SPID_ACCESSI (Table) +-- INTEGRAZIONI_EMAIL_QUEUE (Table) -- -CREATE UNIQUE INDEX SPID_ACCESSI_PK ON SPID_ACCESSI -(ID) -TABLESPACE BANDO_VOLI +-- Row Count: 82 +CREATE TABLE INTEGRAZIONI_EMAIL_QUEUE +( + ID NUMBER, + ID_RICHIESTA INTEGER DEFAULT 0, + DESTINATARIO VARCHAR2(255 BYTE) NOT NULL, + OGGETTO VARCHAR2(255 BYTE) NOT NULL, + CORPO CLOB NOT NULL, + STATO INTEGER DEFAULT 0, + TENTATIVI NUMBER DEFAULT 0, + ERRORE_MESSAGGIO VARCHAR2(1000 BYTE), + DATA_INSERIMENTO TIMESTAMP(6) DEFAULT SYSTIMESTAMP, + DATA_INVIO TIMESTAMP(6) +) +TABLESPACE BANDO_VOLI_TBS +PCTUSED 0 PCTFREE 10 -INITRANS 2 +INITRANS 1 MAXTRANS 255 STORAGE ( INITIAL 64K @@ -1751,22 +2015,46 @@ STORAGE ( BUFFER_POOL DEFAULT ); + +ALTER TABLE INTEGRAZIONI_EMAIL_QUEUE ADD ( + PRIMARY KEY + (ID) + USING INDEX + TABLESPACE BANDO_VOLI_TBS + PCTFREE 10 + INITRANS 2 + MAXTRANS 255 + STORAGE ( + INITIAL 64K + NEXT 1M + MINEXTENTS 1 + MAXEXTENTS UNLIMITED + PCTINCREASE 0 + BUFFER_POOL DEFAULT + ) + ENABLE VALIDATE); + + + -- --- UID_FIREBASE_ADMIN (Table) +-- LOGS (Table) -- --- Row Count: 2 -CREATE TABLE UID_FIREBASE_ADMIN +-- Row Count: 10386414 +CREATE TABLE LOGS ( - ID NUMBER NOT NULL, - GUID VARCHAR2(1000 BYTE), - EMAIL VARCHAR2(255 BYTE), - NOME VARCHAR2(255 BYTE), - COGNOME VARCHAR2(255 BYTE), - SUPER_USER INTEGER NOT NULL, - GROUP_ID INTEGER DEFAULT 0, - VERIFICATO INTEGER DEFAULT 0 + ID NUMBER(38) NOT NULL, + ID_OPERATORE VARCHAR2(255 BYTE), + IP VARCHAR2(255 BYTE), + USERNAME VARCHAR2(255 BYTE), + DATA TIMESTAMP(6) DEFAULT SYSTIMESTAMP NOT NULL, + MODULE VARCHAR2(255 BYTE), + ACTION VARCHAR2(255 BYTE), + INFO CLOB, + OLDVALUE CLOB, + OPERATION CLOB, + IMPERSONIFICAZIONE_GUID VARCHAR2(255 BYTE) ) -TABLESPACE BANDO_VOLI +TABLESPACE BANDO_VOLI_TBS PCTUSED 0 PCTFREE 10 INITRANS 1 @@ -1782,14 +2070,14 @@ STORAGE ( -- --- UID_FIREBASE_ADMIN_PK (Index) +-- LOGS_PK (Index) -- -- Dependencies: --- UID_FIREBASE_ADMIN (Table) +-- LOGS (Table) -- -CREATE UNIQUE INDEX UID_FIREBASE_ADMIN_PK ON UID_FIREBASE_ADMIN +CREATE UNIQUE INDEX LOGS_PK ON LOGS (ID) -TABLESPACE BANDO_VOLI +TABLESPACE BANDO_VOLI_TBS PCTFREE 10 INITRANS 2 MAXTRANS 255 @@ -1802,26 +2090,27 @@ STORAGE ( BUFFER_POOL DEFAULT ); -ALTER TABLE UID_FIREBASE_ADMIN ADD ( - CONSTRAINT UID_FIREBASE_ADMIN_PK - PRIMARY KEY - (ID) - USING INDEX UID_FIREBASE_ADMIN_PK - ENABLE VALIDATE); - - - --- --- FAQ_INDEX1 (Index) -- --- Dependencies: --- FAQ (Table) +-- LOGS_BE (Table) -- -CREATE INDEX FAQ_INDEX1 ON FAQ -(ID_UID_FIREBASE_ADMIN) -TABLESPACE BANDO_VOLI +-- Row Count: 3017 +CREATE TABLE LOGS_BE +( + ID NUMBER(38) NOT NULL, + ID_OPERATORE VARCHAR2(255 BYTE), + IP VARCHAR2(255 BYTE), + USERNAME VARCHAR2(255 BYTE), + DATA TIMESTAMP(6) DEFAULT SYSTIMESTAMP NOT NULL, + MODULE VARCHAR2(255 BYTE), + ACTION VARCHAR2(255 BYTE), + INFO CLOB, + OLDVALUE CLOB, + OPERATION CLOB +) +TABLESPACE BANDO_VOLI_TBS +PCTUSED 0 PCTFREE 10 -INITRANS 2 +INITRANS 1 MAXTRANS 255 STORAGE ( INITIAL 64K @@ -1832,15 +2121,16 @@ STORAGE ( BUFFER_POOL DEFAULT ); + -- --- FAQ_INDEX2 (Index) +-- LOGS_BE_PK (Index) -- -- Dependencies: --- FAQ (Table) +-- LOGS_BE (Table) -- -CREATE INDEX FAQ_INDEX2 ON FAQ -(PUBBLICATA) -TABLESPACE BANDO_VOLI +CREATE UNIQUE INDEX LOGS_BE_PK ON LOGS_BE +(ID) +TABLESPACE BANDO_VOLI_TBS PCTFREE 10 INITRANS 2 MAXTRANS 255 @@ -1854,16 +2144,22 @@ STORAGE ( ); -- --- FAQ_INDEX3 (Index) --- --- Dependencies: --- FAQ (Table) +-- LOGS_P7M (Table) -- -CREATE INDEX FAQ_INDEX3 ON FAQ -(CANCELLATO) -TABLESPACE BANDO_VOLI +-- Row Count: 0 +CREATE TABLE LOGS_P7M +( + ID INTEGER, + ID_DOMANDA INTEGER, + ERRORE VARCHAR2(4000 BYTE), + FILEPATH VARCHAR2(4000 BYTE), + DATA TIMESTAMP(6) DEFAULT SYSTIMESTAMP, + FASE NUMBER +) +TABLESPACE BANDO_VOLI_TBS +PCTUSED 0 PCTFREE 10 -INITRANS 2 +INITRANS 1 MAXTRANS 255 STORAGE ( INITIAL 64K @@ -1874,15 +2170,16 @@ STORAGE ( BUFFER_POOL DEFAULT ); + -- --- FAQ_INDEX4 (Index) +-- LOGS_P7M_PK (Index) -- -- Dependencies: --- FAQ (Table) +-- LOGS_P7M (Table) -- -CREATE INDEX FAQ_INDEX4 ON FAQ -(ID_CATEGORIA) -TABLESPACE BANDO_VOLI +CREATE UNIQUE INDEX LOGS_P7M_PK ON LOGS_P7M +(ID) +TABLESPACE BANDO_VOLI_TBS PCTFREE 10 INITRANS 2 MAXTRANS 255 @@ -1896,311 +2193,665 @@ STORAGE ( ); -- --- IX_ACC_ANAG_CF (Index) --- --- Dependencies: --- ACCOUNT_ANAGRAFICA (Table) +-- MD_APPLICATIONFILES (Table) -- -CREATE INDEX IX_ACC_ANAG_CF ON ACCOUNT_ANAGRAFICA -(CODICE_FISCALE) -TABLESPACE BANDO_VOLI +-- Row Count: 0 +CREATE TABLE MD_APPLICATIONFILES +( + ID NUMBER NOT NULL, + APPLICATIONS_ID_FK NUMBER NOT NULL, + NAME VARCHAR2(200 BYTE) NOT NULL, + URI VARCHAR2(4000 BYTE) NOT NULL, + TYPE VARCHAR2(100 BYTE) NOT NULL, + STATE VARCHAR2(100 BYTE) NOT NULL, + LANGUAGE VARCHAR2(100 BYTE), + LOC NUMBER, + SECURITY_GROUP_ID NUMBER DEFAULT 0 NOT NULL, + CREATED_ON DATE DEFAULT sysdate NOT NULL, + CREATED_BY VARCHAR2(4000 BYTE), + UPDATED_ON DATE, + UPDATED_BY VARCHAR2(4000 BYTE) +) +TABLESPACE BANDO_VOLI_TBS +PCTUSED 0 PCTFREE 10 -INITRANS 2 +INITRANS 1 MAXTRANS 255 STORAGE ( - INITIAL 64K - NEXT 1M - MINEXTENTS 1 - MAXEXTENTS UNLIMITED PCTINCREASE 0 BUFFER_POOL DEFAULT ); +COMMENT ON TABLE MD_APPLICATIONFILES IS 'Holds a tuple for each file that is being processed whether it is changed or not.'; + +COMMENT ON COLUMN MD_APPLICATIONFILES.NAME IS 'file name //OBJECTNAME'; + +COMMENT ON COLUMN MD_APPLICATIONFILES.URI IS 'The uri is the part of the file url after the base dir has been removed. See MD_APPLICATION for base dir'; + +COMMENT ON COLUMN MD_APPLICATIONFILES.TYPE IS 'This will denote the type of file we have, including DIR, FILE (text), BINARY, IGNORE (where we choose to ignore files)'; + +COMMENT ON COLUMN MD_APPLICATIONFILES.STATE IS 'State will be how this file is operated on. For example. it will be OPEN, NEW, FIXED, IGNORED, REVIEWED, COMPLETE'; + +COMMENT ON COLUMN MD_APPLICATIONFILES.LANGUAGE IS 'Language of the file that has been processed.'; + +COMMENT ON COLUMN MD_APPLICATIONFILES.SECURITY_GROUP_ID IS 'APEX'; + +COMMENT ON COLUMN MD_APPLICATIONFILES.CREATED_ON IS 'APEX'; + +COMMENT ON COLUMN MD_APPLICATIONFILES.CREATED_BY IS 'APEX'; + +COMMENT ON COLUMN MD_APPLICATIONFILES.UPDATED_ON IS 'APEX'; + +COMMENT ON COLUMN MD_APPLICATIONFILES.UPDATED_BY IS 'APEX'; + + -- --- IX_ACC_ANAG_DATA_REC (Index) +-- MD_APPLICATIONFILES_PK (Index) -- -- Dependencies: --- ACCOUNT_ANAGRAFICA (Table) +-- MD_APPLICATIONFILES (Table) -- -CREATE INDEX IX_ACC_ANAG_DATA_REC ON ACCOUNT_ANAGRAFICA -(DATA_REGISTRAZIONE) -TABLESPACE BANDO_VOLI +CREATE UNIQUE INDEX MD_APPLICATIONFILES_PK ON MD_APPLICATIONFILES +(ID) +TABLESPACE BANDO_VOLI_TBS PCTFREE 10 INITRANS 2 MAXTRANS 255 STORAGE ( - INITIAL 64K - NEXT 1M - MINEXTENTS 1 - MAXEXTENTS UNLIMITED PCTINCREASE 0 BUFFER_POOL DEFAULT ); +ALTER TABLE MD_APPLICATIONFILES ADD ( + CONSTRAINT MD_APPLICATIONFILES_PK + PRIMARY KEY + (ID) + USING INDEX MD_APPLICATIONFILES_PK + ENABLE VALIDATE); + + + -- --- IX_ALLEGATI_DOCUMENTO (Index) --- --- Dependencies: --- ALLEGATI (Table) +-- MD_APPLICATIONS (Table) -- -CREATE INDEX IX_ALLEGATI_DOCUMENTO ON ALLEGATI -(ID_DOCUMENTO) -TABLESPACE BANDO_VOLI +-- Row Count: 0 +CREATE TABLE MD_APPLICATIONS +( + ID NUMBER NOT NULL, + NAME VARCHAR2(4000 BYTE), + DESCRIPTION VARCHAR2(4000 BYTE), + BASE_DIR VARCHAR2(4000 BYTE), + OUTPUT_DIR VARCHAR2(4000 BYTE), + BACKUP_DIR VARCHAR2(4000 BYTE), + INPLACE NUMBER, + PROJECT_ID_FK NUMBER NOT NULL, + SECURITY_GROUP_ID NUMBER DEFAULT 0 NOT NULL, + CREATED_ON DATE DEFAULT sysdate NOT NULL, + CREATED_BY VARCHAR2(255 BYTE), + LAST_UPDATED_ON DATE, + LAST_UPDATED_BY VARCHAR2(255 BYTE) +) +TABLESPACE BANDO_VOLI_TBS +PCTUSED 0 PCTFREE 10 -INITRANS 2 +INITRANS 1 MAXTRANS 255 STORAGE ( - INITIAL 64K - NEXT 1M - MINEXTENTS 1 - MAXEXTENTS UNLIMITED PCTINCREASE 0 BUFFER_POOL DEFAULT ); +COMMENT ON TABLE MD_APPLICATIONS IS 'This is the base table for application projects. It holds the base information for applications associated with a database'; + +COMMENT ON COLUMN MD_APPLICATIONS.ID IS 'Primary Key'; + +COMMENT ON COLUMN MD_APPLICATIONS.NAME IS 'Name of the application suite //OBJECTNAME'; + +COMMENT ON COLUMN MD_APPLICATIONS.DESCRIPTION IS 'Overview of what the application does.'; + +COMMENT ON COLUMN MD_APPLICATIONS.BASE_DIR IS 'This is the base src directory for the application. It could be an svn checkout, a clearcase view or something similar'; + +COMMENT ON COLUMN MD_APPLICATIONS.OUTPUT_DIR IS 'This is the output directory where the scanner will present the converted files, if there are converted or modified.'; + +COMMENT ON COLUMN MD_APPLICATIONS.BACKUP_DIR IS 'This is the directory in which the application files are backed up if a backp is chosen'; + +COMMENT ON COLUMN MD_APPLICATIONS.INPLACE IS 'Designates whether the changes have been made inplace, in the source directory or not'; + +COMMENT ON COLUMN MD_APPLICATIONS.PROJECT_ID_FK IS 'project of the database(s) this application relates to'; + + -- --- IX_ALLEGATI_DOMANDA (Index) +-- MD_APPLICATIONS_PK (Index) -- -- Dependencies: --- ALLEGATI (Table) +-- MD_APPLICATIONS (Table) -- -CREATE INDEX IX_ALLEGATI_DOMANDA ON ALLEGATI -(ID_DOMANDA) -TABLESPACE BANDO_VOLI +CREATE UNIQUE INDEX MD_APPLICATIONS_PK ON MD_APPLICATIONS +(ID) +TABLESPACE BANDO_VOLI_TBS PCTFREE 10 INITRANS 2 MAXTRANS 255 STORAGE ( - INITIAL 64K - NEXT 1M - MINEXTENTS 1 - MAXEXTENTS UNLIMITED PCTINCREASE 0 BUFFER_POOL DEFAULT ); +ALTER TABLE MD_APPLICATIONS ADD ( + CONSTRAINT MD_APPLICATIONS_PK + PRIMARY KEY + (ID) + USING INDEX MD_APPLICATIONS_PK + ENABLE VALIDATE); + + + -- --- IX_ALLEGATI_TIPODOCUMENTO (Index) --- --- Dependencies: --- ALLEGATI (Table) +-- MD_CATALOGS (Table) -- -CREATE INDEX IX_ALLEGATI_TIPODOCUMENTO ON ALLEGATI -(TIPO_DOCUMENTO) -TABLESPACE BANDO_VOLI +-- Row Count: 0 +CREATE TABLE MD_CATALOGS +( + ID NUMBER NOT NULL, + CONNECTION_ID_FK NUMBER NOT NULL, + CATALOG_NAME VARCHAR2(4000 BYTE), + DUMMY_FLAG CHAR(1 BYTE) DEFAULT 'N', + NATIVE_SQL CLOB, + NATIVE_KEY VARCHAR2(4000 BYTE), + COMMENTS VARCHAR2(4000 BYTE), + SECURITY_GROUP_ID NUMBER DEFAULT 0 NOT NULL, + CREATED_ON DATE DEFAULT sysdate NOT NULL, + CREATED_BY VARCHAR2(255 BYTE), + LAST_UPDATED_ON DATE, + LAST_UPDATED_BY VARCHAR2(255 BYTE) +) +TABLESPACE BANDO_VOLI_TBS +PCTUSED 0 PCTFREE 10 -INITRANS 2 +INITRANS 1 MAXTRANS 255 STORAGE ( - INITIAL 64K - NEXT 1M - MINEXTENTS 1 - MAXEXTENTS UNLIMITED PCTINCREASE 0 BUFFER_POOL DEFAULT ); +COMMENT ON TABLE MD_CATALOGS IS 'Store catalogs in this table.'; + +COMMENT ON COLUMN MD_CATALOGS.CONNECTION_ID_FK IS 'Foreign key into the connections table - Shows what connection this catalog belongs to //PARENTFIELD'; + +COMMENT ON COLUMN MD_CATALOGS.CATALOG_NAME IS 'Name of the catalog //OBJECTNAME'; + +COMMENT ON COLUMN MD_CATALOGS.DUMMY_FLAG IS 'Flag to show if this catalog is a "dummy" catalog which is used as a placeholder for those platforms that do not support catalogs. ''N'' signifies that this is NOT a dummy catalog, while ''Y'' signifies that it is.'; + +COMMENT ON COLUMN MD_CATALOGS.NATIVE_SQL IS 'THe SQL used to create this catalog'; + +COMMENT ON COLUMN MD_CATALOGS.NATIVE_KEY IS 'A unique identifier used to identify the catalog at source.'; + + -- --- IX_AUTORIZZAZIONE (Index) +-- MD_CATALOGS_PK (Index) -- -- Dependencies: --- ACCOUNT (Table) +-- MD_CATALOGS (Table) -- -CREATE INDEX IX_AUTORIZZAZIONE ON ACCOUNT -(AUTORIZZAZIONE_TRATTAMENTO) -TABLESPACE BANDO_VOLI +CREATE UNIQUE INDEX MD_CATALOGS_PK ON MD_CATALOGS +(ID) +TABLESPACE BANDO_VOLI_TBS PCTFREE 10 INITRANS 2 MAXTRANS 255 STORAGE ( - INITIAL 64K - NEXT 1M - MINEXTENTS 1 - MAXEXTENTS UNLIMITED PCTINCREASE 0 BUFFER_POOL DEFAULT ); +ALTER TABLE MD_CATALOGS ADD ( + CONSTRAINT MD_CATALOGS_PK + PRIMARY KEY + (ID) + USING INDEX MD_CATALOGS_PK + ENABLE VALIDATE); + + + -- --- IX_BANDI_FC (Index) --- --- Dependencies: --- BANDI (Table) +-- MD_FILE_ARTIFACTS (Table) -- -CREATE INDEX IX_BANDI_FC ON BANDI -(FINE_CLICKDAY) -TABLESPACE BANDO_VOLI +-- Row Count: 0 +CREATE TABLE MD_FILE_ARTIFACTS +( + ID NUMBER CONSTRAINT MD_APP_FILE_ART_NONULL NOT NULL, + APPLICATIONFILES_ID NUMBER CONSTRAINT MD_APPL_FILE_FK_NONULL NOT NULL, + PATTERN VARCHAR2(4000 BYTE), + STRING_FOUND VARCHAR2(4000 BYTE), + STRING_REPLACED VARCHAR2(4000 BYTE), + TYPE VARCHAR2(200 BYTE), + STATUS VARCHAR2(4000 BYTE), + LINE NUMBER, + PATTERN_START NUMBER, + PATTERN_END NUMBER, + DUE_DATE DATE, + DB_TYPE VARCHAR2(100 BYTE), + CODE_TYPE VARCHAR2(1000 BYTE), + DESCRIPTION VARCHAR2(4000 BYTE), + PRIORITY INTEGER, + SECURITY_GROUP_ID VARCHAR2(20 BYTE) DEFAULT '0' NOT NULL, + CREATED_ON DATE DEFAULT sysdate NOT NULL, + CREATED_BY VARCHAR2(4000 BYTE), + LAST_UPDATED DATE, + LAST_UPDATED_BY VARCHAR2(4000 BYTE) +) +TABLESPACE BANDO_VOLI_TBS +PCTUSED 0 PCTFREE 10 -INITRANS 2 +INITRANS 1 MAXTRANS 255 STORAGE ( - INITIAL 64K - NEXT 1M - MINEXTENTS 1 - MAXEXTENTS UNLIMITED PCTINCREASE 0 BUFFER_POOL DEFAULT ); +COMMENT ON TABLE MD_FILE_ARTIFACTS IS 'Holds a tuple for each interesting thing the scanner finds in a file'; + +COMMENT ON COLUMN MD_FILE_ARTIFACTS.PATTERN IS 'Pattern used to search source file for interesting artifiacts'; + +COMMENT ON COLUMN MD_FILE_ARTIFACTS.STRING_FOUND IS 'String found in source from the pattern supplied'; + +COMMENT ON COLUMN MD_FILE_ARTIFACTS.STRING_REPLACED IS 'This is the string which replace the string found if it was replaced.'; + +COMMENT ON COLUMN MD_FILE_ARTIFACTS.TYPE IS 'This is the type of the replacement. It could be a straight replace from a replacement pattern, or we could have passed the string to a translator which would change the string depending on the database.'; + +COMMENT ON COLUMN MD_FILE_ARTIFACTS.STATUS IS 'Pattern used to search source file for interesting artifiacts'; + +COMMENT ON COLUMN MD_FILE_ARTIFACTS.DUE_DATE IS 'Due date is used by the TODO mechanism to manage the validation and work to complete this change'; + +COMMENT ON COLUMN MD_FILE_ARTIFACTS.DB_TYPE IS 'Source database calls type'; + +COMMENT ON COLUMN MD_FILE_ARTIFACTS.CODE_TYPE IS 'Source code db api, like dblib, jdbc'; + +COMMENT ON COLUMN MD_FILE_ARTIFACTS.DESCRIPTION IS 'This is a description of the artifact which will have a default generated by the scanner and then can be modified by the user to be more appropriate for their use'; + +COMMENT ON COLUMN MD_FILE_ARTIFACTS.PRIORITY IS 'The priority is set for the TODOs so they can be managed by the user'; + + -- --- IX_BANDI_FP (Index) +-- MD_FILE_ARTIFACTS_PK (Index) -- -- Dependencies: --- BANDI (Table) +-- MD_FILE_ARTIFACTS (Table) -- -CREATE INDEX IX_BANDI_FP ON BANDI -(FINE_PREPARAZIONE) -TABLESPACE BANDO_VOLI +CREATE UNIQUE INDEX MD_FILE_ARTIFACTS_PK ON MD_FILE_ARTIFACTS +(ID) +TABLESPACE BANDO_VOLI_TBS PCTFREE 10 INITRANS 2 MAXTRANS 255 STORAGE ( - INITIAL 64K - NEXT 1M - MINEXTENTS 1 - MAXEXTENTS UNLIMITED PCTINCREASE 0 BUFFER_POOL DEFAULT ); +ALTER TABLE MD_FILE_ARTIFACTS ADD ( + CONSTRAINT MD_FILE_ARTIFACTS_PK + PRIMARY KEY + (ID) + USING INDEX MD_FILE_ARTIFACTS_PK + ENABLE VALIDATE); + + + -- --- IX_BANDI_IC (Index) --- --- Dependencies: --- BANDI (Table) +-- MD_GROUP_MEMBERS (Table) -- -CREATE INDEX IX_BANDI_IC ON BANDI -(INIZIO_CLICKDAY) -TABLESPACE BANDO_VOLI +-- Row Count: 0 +CREATE TABLE MD_GROUP_MEMBERS +( + ID NUMBER NOT NULL, + GROUP_ID_FK NUMBER NOT NULL, + USER_ID_FK NUMBER, + GROUP_MEMBER_ID_FK NUMBER, + SECURITY_GROUP_ID NUMBER DEFAULT 0 NOT NULL, + CREATED_ON DATE DEFAULT sysdate NOT NULL, + CREATED_BY VARCHAR2(255 BYTE), + LAST_UPDATED_ON DATE, + LAST_UPDATED_BY VARCHAR2(255 BYTE) +) +TABLESPACE BANDO_VOLI_TBS +PCTUSED 0 PCTFREE 10 -INITRANS 2 +INITRANS 1 MAXTRANS 255 STORAGE ( - INITIAL 64K - NEXT 1M - MINEXTENTS 1 - MAXEXTENTS UNLIMITED PCTINCREASE 0 BUFFER_POOL DEFAULT ); +COMMENT ON TABLE MD_GROUP_MEMBERS IS 'This table is used to store the members of a group.'; + +COMMENT ON COLUMN MD_GROUP_MEMBERS.ID IS 'Primary Key'; + +COMMENT ON COLUMN MD_GROUP_MEMBERS.USER_ID_FK IS 'Id of member'; + +COMMENT ON COLUMN MD_GROUP_MEMBERS.GROUP_MEMBER_ID_FK IS 'groups can be members of groups'; + + -- --- IX_BANDI_IP (Index) +-- MD_GROUP_MEMBERS_PK (Index) -- -- Dependencies: --- BANDI (Table) +-- MD_GROUP_MEMBERS (Table) -- -CREATE INDEX IX_BANDI_IP ON BANDI -(INIZIO_PREPARAZIONE) -TABLESPACE BANDO_VOLI +CREATE UNIQUE INDEX MD_GROUP_MEMBERS_PK ON MD_GROUP_MEMBERS +(ID) +TABLESPACE BANDO_VOLI_TBS PCTFREE 10 INITRANS 2 MAXTRANS 255 STORAGE ( - INITIAL 64K - NEXT 1M - MINEXTENTS 1 - MAXEXTENTS UNLIMITED PCTINCREASE 0 BUFFER_POOL DEFAULT ); +ALTER TABLE MD_GROUP_MEMBERS ADD ( + CONSTRAINT MD_GROUP_MEMBERS_PK + PRIMARY KEY + (ID) + USING INDEX MD_GROUP_MEMBERS_PK + ENABLE VALIDATE); + + + -- --- IX_COMUNE_ATTIVO (Index) --- --- Dependencies: --- COMUNE (Table) +-- MD_REPOVERSIONS (Table) -- -CREATE INDEX IX_COMUNE_ATTIVO ON COMUNE -(ATTIVO) -TABLESPACE BANDO_VOLI +-- Row Count: 0 +CREATE TABLE MD_REPOVERSIONS +( + REVISION NUMBER NOT NULL +) +TABLESPACE BANDO_VOLI_TBS +PCTUSED 0 PCTFREE 10 -INITRANS 2 +INITRANS 1 MAXTRANS 255 STORAGE ( - INITIAL 64K - NEXT 1M - MINEXTENTS 1 - MAXEXTENTS UNLIMITED PCTINCREASE 0 BUFFER_POOL DEFAULT ); +COMMENT ON TABLE MD_REPOVERSIONS IS 'This table is used to version this schema for future requirements.'; + + -- --- IX_COMUNE_CODICE_PROV (Index) --- --- Dependencies: --- COMUNE (Table) +-- MD_SEQUENCES (Table) -- -CREATE INDEX IX_COMUNE_CODICE_PROV ON COMUNE -(CODICE_PROVINCIA) -TABLESPACE BANDO_VOLI +-- Row Count: 0 +CREATE TABLE MD_SEQUENCES +( + ID NUMBER NOT NULL, + SCHEMA_ID_FK NUMBER NOT NULL, + NAME VARCHAR2(4000 BYTE) NOT NULL, + SEQ_START NUMBER NOT NULL, + INCR NUMBER DEFAULT 1 NOT NULL, + NATIVE_SQL CLOB, + NATIVE_KEY VARCHAR2(4000 BYTE), + COMMENTS VARCHAR2(4000 BYTE), + SECURITY_GROUP_ID NUMBER DEFAULT 0 NOT NULL, + CREATED_ON DATE DEFAULT sysdate NOT NULL, + CREATED_BY VARCHAR2(255 BYTE) DEFAULT '0' NOT NULL, + LAST_UPDATED_ON DATE, + LAST_UPDATED_BY VARCHAR2(255 BYTE) +) +TABLESPACE BANDO_VOLI_TBS +PCTUSED 0 PCTFREE 10 -INITRANS 2 +INITRANS 1 MAXTRANS 255 STORAGE ( - INITIAL 64K - NEXT 1M - MINEXTENTS 1 - MAXEXTENTS UNLIMITED PCTINCREASE 0 BUFFER_POOL DEFAULT ); +COMMENT ON TABLE MD_SEQUENCES IS 'For storing information on sequences.'; + +COMMENT ON COLUMN MD_SEQUENCES.ID IS 'Primary Key'; + +COMMENT ON COLUMN MD_SEQUENCES.SCHEMA_ID_FK IS 'The schema to which this object belongs. //PARENTFIELD'; + +COMMENT ON COLUMN MD_SEQUENCES.NAME IS 'Name of this sequence //OBJECTNAME'; + +COMMENT ON COLUMN MD_SEQUENCES.SEQ_START IS 'Starting point of the sequence'; + +COMMENT ON COLUMN MD_SEQUENCES.INCR IS 'Increment value of the sequence'; + + -- --- IX_COMUNE_DESCRIZIONE (Index) --- --- Dependencies: --- COMUNE (Table) +-- MD_TABLESPACES (Table) -- -CREATE INDEX IX_COMUNE_DESCRIZIONE ON COMUNE -(DESCRIZIONE) -TABLESPACE BANDO_VOLI +-- Row Count: 0 +CREATE TABLE MD_TABLESPACES +( + ID NUMBER NOT NULL, + SCHEMA_ID_FK NUMBER NOT NULL, + TABLESPACE_NAME VARCHAR2(4000 BYTE), + NATIVE_SQL CLOB, + NATIVE_KEY VARCHAR2(4000 BYTE), + COMMENTS VARCHAR2(4000 BYTE), + SECURITY_GROUP_ID NUMBER DEFAULT 0 NOT NULL, + CREATED_ON DATE DEFAULT sysdate NOT NULL, + CREATED_BY VARCHAR2(255 BYTE), + LAST_UPDATED_ON DATE, + LAST_UPDATED_BY VARCHAR2(255 BYTE) +) +TABLESPACE BANDO_VOLI_TBS +PCTUSED 0 PCTFREE 10 -INITRANS 2 +INITRANS 1 MAXTRANS 255 STORAGE ( - INITIAL 64K - NEXT 1M - MINEXTENTS 1 - MAXEXTENTS UNLIMITED PCTINCREASE 0 BUFFER_POOL DEFAULT ); +COMMENT ON TABLE MD_TABLESPACES IS 'For storing information about tablespaces.'; + +COMMENT ON COLUMN MD_TABLESPACES.ID IS 'Primary Key'; + +COMMENT ON COLUMN MD_TABLESPACES.SCHEMA_ID_FK IS 'Schema to which this tablespace belongs //PARENTFIELD'; + +COMMENT ON COLUMN MD_TABLESPACES.TABLESPACE_NAME IS 'Name of the table space //OBJECTNAME'; + +COMMENT ON COLUMN MD_TABLESPACES.NATIVE_SQL IS 'The SQL used to create this tablespace'; + +COMMENT ON COLUMN MD_TABLESPACES.NATIVE_KEY IS 'A unique identifier for this object at source'; + + -- --- IX_COMUNE_ISTAT (Index) +-- MD_TABLESPACES_PK (Index) -- -- Dependencies: --- COMUNE (Table) +-- MD_TABLESPACES (Table) -- -CREATE INDEX IX_COMUNE_ISTAT ON COMUNE -(CODICE_ISTAT) -TABLESPACE BANDO_VOLI +CREATE UNIQUE INDEX MD_TABLESPACES_PK ON MD_TABLESPACES +(ID) +TABLESPACE BANDO_VOLI_TBS PCTFREE 10 INITRANS 2 MAXTRANS 255 STORAGE ( - INITIAL 64K - NEXT 1M - MINEXTENTS 1 - MAXEXTENTS UNLIMITED PCTINCREASE 0 BUFFER_POOL DEFAULT ); +ALTER TABLE MD_TABLESPACES ADD ( + CONSTRAINT MD_TABLESPACES_PK + PRIMARY KEY + (ID) + USING INDEX MD_TABLESPACES_PK + ENABLE VALIDATE); + + + -- --- IX_COMUNE_REGIONE (Index) +-- MD_USERS (Table) +-- +-- Row Count: 0 +CREATE TABLE MD_USERS +( + ID NUMBER NOT NULL, + SCHEMA_ID_FK NUMBER NOT NULL, + USERNAME VARCHAR2(4000 BYTE) NOT NULL, + PASSWORD VARCHAR2(4000 BYTE), + NATIVE_SQL CLOB, + NATIVE_KEY VARCHAR2(4000 BYTE), + COMMENTS VARCHAR2(4000 BYTE), + SECURITY_GROUP_ID NUMBER DEFAULT 0 NOT NULL, + CREATED_ON DATE DEFAULT sysdate NOT NULL, + CREATED_BY VARCHAR2(255 BYTE), + LAST_UPDATED_ON DATE, + LAST_UPDATED_BY VARCHAR2(255 BYTE) +) +TABLESPACE BANDO_VOLI_TBS +PCTUSED 0 +PCTFREE 10 +INITRANS 1 +MAXTRANS 255 +STORAGE ( + PCTINCREASE 0 + BUFFER_POOL DEFAULT + ); + +COMMENT ON TABLE MD_USERS IS 'User information.'; + +COMMENT ON COLUMN MD_USERS.ID IS 'Primary Key'; + +COMMENT ON COLUMN MD_USERS.SCHEMA_ID_FK IS 'Shema in which this object belongs //PARENTFIELD'; + +COMMENT ON COLUMN MD_USERS.USERNAME IS 'Username for login //OBJECTNAME'; + +COMMENT ON COLUMN MD_USERS.PASSWORD IS 'Password for login'; + +COMMENT ON COLUMN MD_USERS.NATIVE_SQL IS 'SQL Used to create this object at source'; + +COMMENT ON COLUMN MD_USERS.NATIVE_KEY IS 'Unique identifier for this object at source.'; + + +-- +-- MD_USERS_PK (Index) -- -- Dependencies: --- COMUNE (Table) +-- MD_USERS (Table) -- -CREATE INDEX IX_COMUNE_REGIONE ON COMUNE -(REGIONE) -TABLESPACE BANDO_VOLI +CREATE UNIQUE INDEX MD_USERS_PK ON MD_USERS +(ID) +TABLESPACE BANDO_VOLI_TBS +PCTFREE 10 +INITRANS 2 +MAXTRANS 255 +STORAGE ( + PCTINCREASE 0 + BUFFER_POOL DEFAULT + ); + +ALTER TABLE MD_USERS ADD ( + CONSTRAINT MD_USERS_PK + PRIMARY KEY + (ID) + USING INDEX MD_USERS_PK + ENABLE VALIDATE); + + + +-- +-- MD_USER_PRIVILEGES (Table) +-- +-- Row Count: 0 +CREATE TABLE MD_USER_PRIVILEGES +( + ID NUMBER NOT NULL, + USER_ID_FK NUMBER NOT NULL, + PRIVILEGE_ID_FK NUMBER, + SECURITY_GROUP_ID NUMBER DEFAULT 0 NOT NULL, + CREATED_ON DATE DEFAULT sysdate NOT NULL, + CREATED_BY VARCHAR2(255 BYTE), + LAST_UPDATED_ON DATE, + LAST_UDPATED_BY VARCHAR2(255 BYTE) +) +TABLESPACE BANDO_VOLI_TBS +PCTUSED 0 +PCTFREE 10 +INITRANS 1 +MAXTRANS 255 +STORAGE ( + PCTINCREASE 0 + BUFFER_POOL DEFAULT + ); + +COMMENT ON TABLE MD_USER_PRIVILEGES IS 'This table stores privileges granted to individual users'; + +COMMENT ON COLUMN MD_USER_PRIVILEGES.ID IS 'Primary Key'; + +COMMENT ON COLUMN MD_USER_PRIVILEGES.USER_ID_FK IS 'User'; + +COMMENT ON COLUMN MD_USER_PRIVILEGES.PRIVILEGE_ID_FK IS 'Privilege'; + + +-- +-- MD_USER_PRIVILEGES_PK (Index) +-- +-- Dependencies: +-- MD_USER_PRIVILEGES (Table) +-- +CREATE UNIQUE INDEX MD_USER_PRIVILEGES_PK ON MD_USER_PRIVILEGES +(ID) +TABLESPACE BANDO_VOLI_TBS PCTFREE 10 INITRANS 2 MAXTRANS 255 +STORAGE ( + PCTINCREASE 0 + BUFFER_POOL DEFAULT + ); + +ALTER TABLE MD_USER_PRIVILEGES ADD ( + CONSTRAINT MD_USER_PRIVILEGES_PK + PRIMARY KEY + (ID) + USING INDEX MD_USER_PRIVILEGES_PK + ENABLE VALIDATE); + + + +-- +-- RICHIESTA_INTEGRAZIONE (Table) +-- +-- Row Count: 35 +CREATE TABLE RICHIESTA_INTEGRAZIONE +( + ID NUMBER, + ID_DOMANDA_SCONTI NUMBER NOT NULL, + DATA_RICHIESTA TIMESTAMP(6) DEFAULT SYSTIMESTAMP NOT NULL, + DESCRIZIONE_RICHIESTA VARCHAR2(1000 BYTE), + NUMERO_PROTOCOLLO VARCHAR2(255 BYTE), + PROTOCOLLO_JSON CLOB, + DATA_PROTOCOLLO TIMESTAMP(6), + FILEPATH_PDF_PROTOCOLLATO VARCHAR2(500 BYTE), + DATA_INVIO_NOTIFICA DATE, + SCADENZA DATE, + FILEPATH_RISPOSTA VARCHAR2(500 BYTE), + DATA_CARICAMENTO DATE, + STATO VARCHAR2(30 BYTE), + NOTE_OPERATORE VARCHAR2(1000 BYTE), + DATA_VALIDAZIONE TIMESTAMP(6), + OPERATORE_VALIDAZIONE VARCHAR2(100 BYTE), + OPERATORE_RICHIESTA INTEGER, + NOTE_UTENTE VARCHAR2(1000 BYTE) +) +TABLESPACE BANDO_VOLI_TBS +PCTUSED 0 +PCTFREE 10 +INITRANS 1 +MAXTRANS 255 STORAGE ( INITIAL 64K NEXT 1M @@ -2210,17 +2861,43 @@ STORAGE ( BUFFER_POOL DEFAULT ); + +ALTER TABLE RICHIESTA_INTEGRAZIONE ADD ( + PRIMARY KEY + (ID) + USING INDEX + TABLESPACE BANDO_VOLI_TBS + PCTFREE 10 + INITRANS 2 + MAXTRANS 255 + STORAGE ( + INITIAL 64K + NEXT 1M + MINEXTENTS 1 + MAXEXTENTS UNLIMITED + PCTINCREASE 0 + BUFFER_POOL DEFAULT + ) + ENABLE VALIDATE); + + + -- --- IX_DOCUMENTI_BANDO_FASE (Index) --- --- Dependencies: --- DOCUMENTI_BANDO (Table) +-- SPID_ACCESSI (Table) -- -CREATE INDEX IX_DOCUMENTI_BANDO_FASE ON DOCUMENTI_BANDO -(FASE) -TABLESPACE BANDO_VOLI +-- Row Count: 4273336 +CREATE TABLE SPID_ACCESSI +( + ID NUMBER NOT NULL, + CODICE_FISCALE VARCHAR2(30 BYTE), + INRESPONSETO VARCHAR2(200 BYTE), + AUTHNINSTANT VARCHAR2(200 BYTE), + DATA TIMESTAMP(6) DEFAULT SYSTIMESTAMP +) +TABLESPACE BANDO_VOLI_TBS +PCTUSED 0 PCTFREE 10 -INITRANS 2 +INITRANS 1 MAXTRANS 255 STORAGE ( INITIAL 64K @@ -2231,15 +2908,16 @@ STORAGE ( BUFFER_POOL DEFAULT ); + -- --- IX_DOCUMENTI_BANDO_OBBLIGO (Index) +-- SPID_ACCESSI_PK (Index) -- -- Dependencies: --- DOCUMENTI_BANDO (Table) +-- SPID_ACCESSI (Table) -- -CREATE INDEX IX_DOCUMENTI_BANDO_OBBLIGO ON DOCUMENTI_BANDO -(OBBLIGO) -TABLESPACE BANDO_VOLI +CREATE UNIQUE INDEX SPID_ACCESSI_PK ON SPID_ACCESSI +(ID) +TABLESPACE BANDO_VOLI_TBS PCTFREE 10 INITRANS 2 MAXTRANS 255 @@ -2253,16 +2931,25 @@ STORAGE ( ); -- --- IX_DOCUMENTI_BANDO_PRIORITA (Index) --- --- Dependencies: --- DOCUMENTI_BANDO (Table) +-- UID_FIREBASE_ADMIN (Table) -- -CREATE INDEX IX_DOCUMENTI_BANDO_PRIORITA ON DOCUMENTI_BANDO -(PRIORITA) -TABLESPACE BANDO_VOLI +-- Row Count: 20 +CREATE TABLE UID_FIREBASE_ADMIN +( + ID NUMBER NOT NULL, + GUID VARCHAR2(1000 BYTE), + EMAIL VARCHAR2(255 BYTE), + NOME VARCHAR2(255 BYTE), + COGNOME VARCHAR2(255 BYTE), + SUPER_USER INTEGER NOT NULL, + GROUP_ID INTEGER DEFAULT 0, + VERIFICATO INTEGER DEFAULT 0, + CODICE_FISCALE VARCHAR2(16 CHAR) +) +TABLESPACE BANDO_VOLI_TBS +PCTUSED 0 PCTFREE 10 -INITRANS 2 +INITRANS 1 MAXTRANS 255 STORAGE ( INITIAL 64K @@ -2273,15 +2960,16 @@ STORAGE ( BUFFER_POOL DEFAULT ); + -- --- IX_FAQ_UT_ACC (Index) +-- UID_FIREBASE_ADMIN_PK (Index) -- -- Dependencies: --- FAQ_UTENTI (Table) +-- UID_FIREBASE_ADMIN (Table) -- -CREATE INDEX IX_FAQ_UT_ACC ON FAQ_UTENTI -(ACCOUNT) -TABLESPACE BANDO_VOLI +CREATE UNIQUE INDEX UID_FIREBASE_ADMIN_PK ON UID_FIREBASE_ADMIN +(ID) +TABLESPACE BANDO_VOLI_TBS PCTFREE 10 INITRANS 2 MAXTRANS 255 @@ -2294,15 +2982,24 @@ STORAGE ( BUFFER_POOL DEFAULT ); +ALTER TABLE UID_FIREBASE_ADMIN ADD ( + CONSTRAINT UID_FIREBASE_ADMIN_PK + PRIMARY KEY + (ID) + USING INDEX UID_FIREBASE_ADMIN_PK + ENABLE VALIDATE); + + + -- --- IX_FAQ_UT_CAT (Index) +-- FAQ_INDEX1 (Index) -- -- Dependencies: --- FAQ_UTENTI (Table) +-- FAQ (Table) -- -CREATE INDEX IX_FAQ_UT_CAT ON FAQ_UTENTI -(ID_CATEGORIA) -TABLESPACE BANDO_VOLI +CREATE INDEX FAQ_INDEX1 ON FAQ +(ID_UID_FIREBASE_ADMIN) +TABLESPACE BANDO_VOLI_TBS PCTFREE 10 INITRANS 2 MAXTRANS 255 @@ -2316,14 +3013,14 @@ STORAGE ( ); -- --- IX_FAQ_UT_DATAI (Index) +-- FAQ_INDEX2 (Index) -- -- Dependencies: --- FAQ_UTENTI (Table) +-- FAQ (Table) -- -CREATE INDEX IX_FAQ_UT_DATAI ON FAQ_UTENTI -(DATA_INSERIMENTO) -TABLESPACE BANDO_VOLI +CREATE INDEX FAQ_INDEX2 ON FAQ +(PUBBLICATA) +TABLESPACE BANDO_VOLI_TBS PCTFREE 10 INITRANS 2 MAXTRANS 255 @@ -2337,14 +3034,14 @@ STORAGE ( ); -- --- IX_FIREBASE_ADMIN_EMAIL (Index) +-- FAQ_INDEX3 (Index) -- -- Dependencies: --- UID_FIREBASE_ADMIN (Table) +-- FAQ (Table) -- -CREATE INDEX IX_FIREBASE_ADMIN_EMAIL ON UID_FIREBASE_ADMIN -(EMAIL) -TABLESPACE BANDO_VOLI +CREATE INDEX FAQ_INDEX3 ON FAQ +(CANCELLATO) +TABLESPACE BANDO_VOLI_TBS PCTFREE 10 INITRANS 2 MAXTRANS 255 @@ -2358,14 +3055,14 @@ STORAGE ( ); -- --- IX_FIREBASE_ADMIN_GROUP (Index) +-- FAQ_INDEX4 (Index) -- -- Dependencies: --- UID_FIREBASE_ADMIN (Table) +-- FAQ (Table) -- -CREATE INDEX IX_FIREBASE_ADMIN_GROUP ON UID_FIREBASE_ADMIN -(GROUP_ID) -TABLESPACE BANDO_VOLI +CREATE INDEX FAQ_INDEX4 ON FAQ +(ID_CATEGORIA) +TABLESPACE BANDO_VOLI_TBS PCTFREE 10 INITRANS 2 MAXTRANS 255 @@ -2379,14 +3076,14 @@ STORAGE ( ); -- --- IX_FIREBASE_ADMIN_GUID (Index) +-- IDX_COD_BELFIORE (Index) -- -- Dependencies: --- UID_FIREBASE_ADMIN (Table) +-- COMUNE (Table) -- -CREATE INDEX IX_FIREBASE_ADMIN_GUID ON UID_FIREBASE_ADMIN -(GUID) -TABLESPACE BANDO_VOLI +CREATE INDEX IDX_COD_BELFIORE ON COMUNE +(COD_CF) +TABLESPACE BANDO_VOLI_TBS PCTFREE 10 INITRANS 2 MAXTRANS 255 @@ -2400,14 +3097,14 @@ STORAGE ( ); -- --- IX_FIREBASE_ADMIN_SU (Index) +-- IDX_ID_DOMANDA (Index) -- -- Dependencies: --- UID_FIREBASE_ADMIN (Table) +-- DOMANDA_SCONTI (Table) -- -CREATE INDEX IX_FIREBASE_ADMIN_SU ON UID_FIREBASE_ADMIN -(SUPER_USER) -TABLESPACE BANDO_VOLI +CREATE INDEX IDX_ID_DOMANDA ON DOMANDA_SCONTI +(ID_DOMANDA) +TABLESPACE BANDO_VOLI_TBS PCTFREE 10 INITRANS 2 MAXTRANS 255 @@ -2421,14 +3118,14 @@ STORAGE ( ); -- --- IX_OBBLIGO (Index) +-- IX_ACC_ANAG_CF (Index) -- -- Dependencies: --- ANAG_DICHIARAZIONI (Table) +-- ACCOUNT_ANAGRAFICA (Table) -- -CREATE INDEX IX_OBBLIGO ON ANAG_DICHIARAZIONI -(OBBLIGO) -TABLESPACE BANDO_VOLI +CREATE INDEX IX_ACC_ANAG_CF ON ACCOUNT_ANAGRAFICA +(CODICE_FISCALE) +TABLESPACE BANDO_VOLI_TBS PCTFREE 10 INITRANS 2 MAXTRANS 255 @@ -2442,14 +3139,14 @@ STORAGE ( ); -- --- IX_POSIZIONE (Index) +-- IX_ACC_ANAG_DATA_REC (Index) -- -- Dependencies: --- ANAG_DICHIARAZIONI (Table) +-- ACCOUNT_ANAGRAFICA (Table) -- -CREATE INDEX IX_POSIZIONE ON ANAG_DICHIARAZIONI -(POSIZIONE) -TABLESPACE BANDO_VOLI +CREATE INDEX IX_ACC_ANAG_DATA_REC ON ACCOUNT_ANAGRAFICA +(DATA_REGISTRAZIONE) +TABLESPACE BANDO_VOLI_TBS PCTFREE 10 INITRANS 2 MAXTRANS 255 @@ -2463,14 +3160,14 @@ STORAGE ( ); -- --- IX_SA_CF (Index) +-- IX_ALLEGATI_DOCUMENTO (Index) -- -- Dependencies: --- SPID_ACCESSI (Table) +-- ALLEGATI (Table) -- -CREATE INDEX IX_SA_CF ON SPID_ACCESSI -(CODICE_FISCALE) -TABLESPACE BANDO_VOLI +CREATE INDEX IX_ALLEGATI_DOCUMENTO ON ALLEGATI +(ID_DOCUMENTO) +TABLESPACE BANDO_VOLI_TBS PCTFREE 10 INITRANS 2 MAXTRANS 255 @@ -2484,14 +3181,14 @@ STORAGE ( ); -- --- IX_SA_DATA (Index) +-- IX_ALLEGATI_DOMANDA (Index) -- -- Dependencies: --- SPID_ACCESSI (Table) +-- ALLEGATI (Table) -- -CREATE INDEX IX_SA_DATA ON SPID_ACCESSI -(DATA) -TABLESPACE BANDO_VOLI +CREATE INDEX IX_ALLEGATI_DOMANDA ON ALLEGATI +(ID_DOMANDA) +TABLESPACE BANDO_VOLI_TBS PCTFREE 10 INITRANS 2 MAXTRANS 255 @@ -2505,14 +3202,14 @@ STORAGE ( ); -- --- IX_SEARCH (Index) +-- IX_ALLEGATI_TIPODOCUMENTO (Index) -- -- Dependencies: --- COMUNE (Table) +-- ALLEGATI (Table) -- -CREATE INDEX IX_SEARCH ON COMUNE -(SEARCH) -TABLESPACE BANDO_VOLI +CREATE INDEX IX_ALLEGATI_TIPODOCUMENTO ON ALLEGATI +(TIPO_DOCUMENTO) +TABLESPACE BANDO_VOLI_TBS PCTFREE 10 INITRANS 2 MAXTRANS 255 @@ -2526,14 +3223,14 @@ STORAGE ( ); -- --- IX_USER_ACCOUNT (Index) +-- IX_AUTORIZZAZIONE (Index) -- -- Dependencies: -- ACCOUNT (Table) -- -CREATE INDEX IX_USER_ACCOUNT ON ACCOUNT -(USERNAME) -TABLESPACE BANDO_VOLI +CREATE INDEX IX_AUTORIZZAZIONE ON ACCOUNT +(AUTORIZZAZIONE_TRATTAMENTO) +TABLESPACE BANDO_VOLI_TBS PCTFREE 10 INITRANS 2 MAXTRANS 255 @@ -2547,1345 +3244,3606 @@ STORAGE ( ); -- --- SPAEROPORTISAVE (Procedure) +-- IX_BANDI_FC (Index) -- -- Dependencies: --- AEROPORTI (Table) --- STANDARD (Package) --- SYS_STUB_FOR_PURITY_ANALYSIS (Package) +-- BANDI (Table) -- -CREATE OR REPLACE PROCEDURE "SPAEROPORTISAVE" -( - P_CODICE VARCHAR2, - P_NOME VARCHAR2, - P_REGIONE NUMBER -) AS -INSUPDATE NUMBER; -BEGIN - -SELECT COUNT(*) INTO INSUPDATE FROM AEROPORTI WHERE CODICE = P_CODICE; - -IF INSUPDATE <= 0 THEN - INSERT INTO AEROPORTI (CODICE, NOME, REGIONE) VALUES (P_CODICE, P_NOME, P_REGIONE); -ELSE - UPDATE AEROPORTI SET NOME = P_NOME, REGIONE = P_REGIONE WHERE CODICE = P_CODICE; -END IF; - -END SPAEROPORTISAVE; -/ - +CREATE INDEX IX_BANDI_FC ON BANDI +(FINE_CLICKDAY) +TABLESPACE BANDO_VOLI_TBS +PCTFREE 10 +INITRANS 2 +MAXTRANS 255 +STORAGE ( + INITIAL 64K + NEXT 1M + MINEXTENTS 1 + MAXEXTENTS UNLIMITED + PCTINCREASE 0 + BUFFER_POOL DEFAULT + ); -- --- SP_APPROVA (Procedure) +-- IX_BANDI_FP (Index) -- -- Dependencies: --- DOMANDA_SCONTI (Table) --- ESPORTAZIONI (Table) --- STANDARD (Package) --- SYS_STUB_FOR_PURITY_ANALYSIS (Package) +-- BANDI (Table) -- -CREATE OR REPLACE PROCEDURE "SP_APPROVA" -( - P_NUM_LOTTO INT -) AS - CTR_LOTTO INT; -BEGIN -CTR_LOTTO:=0; - -SELECT LOTTO INTO CTR_LOTTO FROM ESPORTAZIONI WHERE LOTTO = P_NUM_LOTTO; - - -IF CTR_LOTTO > 0 THEN - - UPDATE DOMANDA_SCONTI SET - STATO = 2, - DATA_ESITO = SYSTIMESTAMP - WHERE LOTTO = P_NUM_LOTTO AND STATO = 1; -END IF; - - -END SP_APPROVA; -/ - +CREATE INDEX IX_BANDI_FP ON BANDI +(FINE_PREPARAZIONE) +TABLESPACE BANDO_VOLI_TBS +PCTFREE 10 +INITRANS 2 +MAXTRANS 255 +STORAGE ( + INITIAL 64K + NEXT 1M + MINEXTENTS 1 + MAXEXTENTS UNLIMITED + PCTINCREASE 0 + BUFFER_POOL DEFAULT + ); -- --- SPDICHIARAZIONISAVE (Procedure) +-- IX_BANDI_IC (Index) -- -- Dependencies: --- DOMANDA_DICHIARAZIONI (Table) --- STANDARD (Package) --- SYS_STUB_FOR_PURITY_ANALYSIS (Package) +-- BANDI (Table) -- -CREATE OR REPLACE PROCEDURE "SPDICHIARAZIONISAVE" -( - P_ID_DOMANDA INT -, P_ID_ANAG_DICHIARAZIONI INT -) AS - -BEGIN - -INSERT INTO DOMANDA_DICHIARAZIONI (ID_DOMANDA, ID_ANAG_DICHIARAZIONI ) VALUES (P_ID_DOMANDA, P_ID_ANAG_DICHIARAZIONI); - -END SPDICHIARAZIONISAVE; -/ - +CREATE INDEX IX_BANDI_IC ON BANDI +(INIZIO_CLICKDAY) +TABLESPACE BANDO_VOLI_TBS +PCTFREE 10 +INITRANS 2 +MAXTRANS 255 +STORAGE ( + INITIAL 64K + NEXT 1M + MINEXTENTS 1 + MAXEXTENTS UNLIMITED + PCTINCREASE 0 + BUFFER_POOL DEFAULT + ); -- --- SP_DISAPPROVA (Procedure) +-- IX_BANDI_IP (Index) -- -- Dependencies: --- DOMANDA_SCONTI (Table) --- ESPORTAZIONI (Table) --- STANDARD (Package) --- SYS_STUB_FOR_PURITY_ANALYSIS (Package) +-- BANDI (Table) -- -CREATE OR REPLACE PROCEDURE "SP_DISAPPROVA" -( - P_NUM_LOTTO INT -) AS - CTR_LOTTO INT; -BEGIN -CTR_LOTTO:=0; - -SELECT LOTTO INTO CTR_LOTTO FROM ESPORTAZIONI WHERE LOTTO = P_NUM_LOTTO; - - -IF CTR_LOTTO > 0 THEN - - UPDATE DOMANDA_SCONTI SET - STATO = 1, - DATA_ESITO = null, - DATA_ESPORTAZIONE = SYSTIMESTAMP - WHERE LOTTO = P_NUM_LOTTO AND STATO = 2; -END IF; - - -END SP_DISAPPROVA; -/ - +CREATE INDEX IX_BANDI_IP ON BANDI +(INIZIO_PREPARAZIONE) +TABLESPACE BANDO_VOLI_TBS +PCTFREE 10 +INITRANS 2 +MAXTRANS 255 +STORAGE ( + INITIAL 64K + NEXT 1M + MINEXTENTS 1 + MAXEXTENTS UNLIMITED + PCTINCREASE 0 + BUFFER_POOL DEFAULT + ); -- --- SP_EROGA (Procedure) +-- IX_CODICE_FISCALE_CS (Index) -- -- Dependencies: --- DOMANDA_SCONTI (Table) --- ESPORTAZIONI (Table) --- STANDARD (Package) --- SYS_STUB_FOR_PURITY_ANALYSIS (Package) +-- CUSTOMER_SATISFACTION (Table) -- -CREATE OR REPLACE PROCEDURE "SP_EROGA" -( - P_NUM_LOTTO INT -) AS - CTR_LOTTO INT; -BEGIN -CTR_LOTTO:=0; - -SELECT LOTTO INTO CTR_LOTTO FROM ESPORTAZIONI WHERE LOTTO = P_NUM_LOTTO; - - -IF CTR_LOTTO > 0 THEN - - UPDATE DOMANDA_SCONTI SET - STATO = 3, - DATA_EROGAZIONE = SYSTIMESTAMP - WHERE LOTTO = P_NUM_LOTTO AND STATO = 2; -END IF; - - -END SP_EROGA; -/ - +CREATE INDEX IX_CODICE_FISCALE_CS ON CUSTOMER_SATISFACTION +(CODICE_FISCALE) +TABLESPACE BANDO_VOLI_TBS +PCTFREE 10 +INITRANS 2 +MAXTRANS 255 +STORAGE ( + INITIAL 64K + NEXT 1M + MINEXTENTS 1 + MAXEXTENTS UNLIMITED + PCTINCREASE 0 + BUFFER_POOL DEFAULT + ); -- --- SPLOGSBESAVE (Procedure) +-- IX_COMUNE_ATTIVO (Index) -- -- Dependencies: --- LOGS_BE (Table) --- STANDARD (Package) --- SYS_STUB_FOR_PURITY_ANALYSIS (Package) +-- COMUNE (Table) -- -CREATE OR REPLACE PROCEDURE "SPLOGSBESAVE" -( - P_ID_OPERATORE IN VARCHAR2 -, P_IP IN VARCHAR2 -, P_USERNAME IN VARCHAR2 -, P_MODULE IN VARCHAR2 -, P_ACTION IN VARCHAR2 -, P_OPERATION IN VARCHAR2 -, P_INFO IN CLOB -, P_OLDVALUE IN CLOB -) AS -BEGIN - INSERT INTO LOGS_BE - (ID_OPERATORE, IP, USERNAME, DATA, MODULE, ACTION, OPERATION, INFO, OLDVALUE) - VALUES - (P_ID_OPERATORE, P_IP, P_USERNAME, SYSTIMESTAMP, P_MODULE, P_ACTION, P_OPERATION, P_INFO, P_OLDVALUE); -END SPLOGSBESAVE; -/ +CREATE INDEX IX_COMUNE_ATTIVO ON COMUNE +(ATTIVO) +TABLESPACE BANDO_VOLI_TBS +PCTFREE 10 +INITRANS 2 +MAXTRANS 255 +STORAGE ( + INITIAL 64K + NEXT 1M + MINEXTENTS 1 + MAXEXTENTS UNLIMITED + PCTINCREASE 0 + BUFFER_POOL DEFAULT + ); +-- +-- IX_COMUNE_CODICE_PROV (Index) +-- +-- Dependencies: +-- COMUNE (Table) +-- +CREATE INDEX IX_COMUNE_CODICE_PROV ON COMUNE +(CODICE_PROVINCIA) +TABLESPACE BANDO_VOLI_TBS +PCTFREE 10 +INITRANS 2 +MAXTRANS 255 +STORAGE ( + INITIAL 64K + NEXT 1M + MINEXTENTS 1 + MAXEXTENTS UNLIMITED + PCTINCREASE 0 + BUFFER_POOL DEFAULT + ); -- --- SPLOGSP7MSAVE (Procedure) +-- IX_COMUNE_DESCRIZIONE (Index) -- -- Dependencies: --- LOGS_P7M (Table) --- STANDARD (Package) --- SYS_STUB_FOR_PURITY_ANALYSIS (Package) +-- COMUNE (Table) -- -CREATE OR REPLACE PROCEDURE "SPLOGSP7MSAVE" -( - P_ID_DOMANDA IN NUMBER -, P_ERRORE IN VARCHAR2 -, P_FILEPATH IN VARCHAR2 -, P_FASE IN NUMBER -) AS -BEGIN - INSERT INTO LOGS_P7M - (ID_DOMANDA, ERRORE, FILEPATH, DATA, FASE) - VALUES - (P_ID_DOMANDA, P_ERRORE, P_FILEPATH, SYSTIMESTAMP, P_FASE); -END SPLOGSP7MSAVE; -/ - +CREATE INDEX IX_COMUNE_DESCRIZIONE ON COMUNE +(DESCRIZIONE) +TABLESPACE BANDO_VOLI_TBS +PCTFREE 10 +INITRANS 2 +MAXTRANS 255 +STORAGE ( + INITIAL 64K + NEXT 1M + MINEXTENTS 1 + MAXEXTENTS UNLIMITED + PCTINCREASE 0 + BUFFER_POOL DEFAULT + ); -- --- SPLOGSSAVE (Procedure) +-- IX_COMUNE_ISTAT (Index) -- -- Dependencies: --- LOGS (Table) --- STANDARD (Package) --- SYS_STUB_FOR_PURITY_ANALYSIS (Package) +-- COMUNE (Table) -- -CREATE OR REPLACE PROCEDURE "SPLOGSSAVE" -( - P_ID_OPERATORE IN VARCHAR2 -, P_IP IN VARCHAR2 -, P_USERNAME IN VARCHAR2 -, P_MODULE IN VARCHAR2 -, P_ACTION IN VARCHAR2 -, P_OPERATION IN VARCHAR2 -, P_INFO IN CLOB -, P_OLDVALUE IN CLOB -) AS -BEGIN - INSERT INTO LOGS - (ID_OPERATORE, IP, USERNAME, DATA, MODULE, ACTION, OPERATION, INFO, OLDVALUE) - VALUES - (P_ID_OPERATORE, P_IP, P_USERNAME, SYSTIMESTAMP, P_MODULE, P_ACTION, P_OPERATION, P_INFO, P_OLDVALUE); -END SPLOGSSAVE; -/ - +CREATE INDEX IX_COMUNE_ISTAT ON COMUNE +(CODICE_ISTAT) +TABLESPACE BANDO_VOLI_TBS +PCTFREE 10 +INITRANS 2 +MAXTRANS 255 +STORAGE ( + INITIAL 64K + NEXT 1M + MINEXTENTS 1 + MAXEXTENTS UNLIMITED + PCTINCREASE 0 + BUFFER_POOL DEFAULT + ); -- --- CALCOLAFRAZIONEANNO (Function) +-- IX_COMUNE_REGIONE (Index) -- -- Dependencies: --- DUAL (Synonym) --- STANDARD (Package) --- SYS_STUB_FOR_PURITY_ANALYSIS (Package) +-- COMUNE (Table) -- -CREATE OR REPLACE FUNCTION "CALCOLAFRAZIONEANNO" ( -P_DATA_INIZIO IN DATE, -P_DATA_FINE IN DATE -) RETURN NUMBER IS -ANNI NUMBER; -MESI NUMBER; -GIORNI NUMBER; -PLUS NUMBER; ---DATA_INIZIO DATE; -DATA_FINE DATE; - -BEGIN - ANNI := 0; - MESI := 0; - PLUS := 0; - --DATA_INIZIO := TO_DATE('01/01/2000 00:00:00','dd/mm/YYYY hh24:mi:ss'); - DATA_FINE := P_DATA_FINE+1; -- AGGIUNGO IL GIORNO ESTREMO DEL PERIODO - - /*SELECT - TRUNC (MONTHS_BETWEEN (P_DATA_FINE, P_DATA_INIZIO) / 12), - MOD (TRUNC (MONTHS_BETWEEN (P_DATA_FINE, P_DATA_INIZIO)), 12), - (P_DATA_FINE - ADD_MONTHS (P_DATA_INIZIO, TRUNC(MONTHS_BETWEEN (P_DATA_FINE,P_DATA_INIZIO)))) - INTO ANNI, MESI, GIORNI FROM DUAL;*/ - - WITH T (START_DATE, END_DATE) AS ( - SELECT P_DATA_INIZIO, DATA_FINE FROM DUAL - ) - SELECT - TRUNC(MONTH_DIFF/12), - TRUNC(MOD(MONTH_DIFF, 12)), - (END_DATE - ADD_MONTHS(START_DATE, MONTH_DIFF)) INTO ANNI, MESI, GIORNI - FROM ( - SELECT START_DATE, END_DATE, - TRUNC(MONTHS_BETWEEN(END_DATE, START_DATE)) AS MONTH_DIFF - FROM T - ); - - --GIORNI := GIORNI+1; - - IF GIORNI = 30 THEN - MESI := MESI+1; - IF MESI = 12 THEN - MESI := 0; - ANNI := ANNI+1; - END IF; - END IF; - - - IF MESI >= 6 THEN - PLUS := 1; - ELSE - PLUS := 0; - END IF; - RETURN (ANNI+PLUS); - -END CALCOLAFRAZIONEANNO; -/ - +CREATE INDEX IX_COMUNE_REGIONE ON COMUNE +(REGIONE) +TABLESPACE BANDO_VOLI_TBS +PCTFREE 10 +INITRANS 2 +MAXTRANS 255 +STORAGE ( + INITIAL 64K + NEXT 1M + MINEXTENTS 1 + MAXEXTENTS UNLIMITED + PCTINCREASE 0 + BUFFER_POOL DEFAULT + ); -- --- CONTROLLOPERIODO (Function) +-- IX_DOCUMENTI_BANDO_FASE (Index) -- -- Dependencies: --- BANDI (Table) --- STANDARD (Package) --- SYS_STUB_FOR_PURITY_ANALYSIS (Package) +-- DOCUMENTI_BANDO (Table) -- -CREATE OR REPLACE FUNCTION "CONTROLLOPERIODO" ( -P_PERIODO IN VARCHAR2, -P_ID_BANDO IN NUMBER -) -RETURN number IS - PERIODO_OK number; -BEGIN - IF (P_PERIODO = 'PREPARAZIONE' AND P_ID_BANDO > 0) THEN - - SELECT count(ID) INTO PERIODO_OK FROM BANDI where ID = P_ID_BANDO AND SYSTIMESTAMP BETWEEN INIZIO_PREPARAZIONE AND FINE_PREPARAZIONE; - - ELSIF (P_PERIODO = 'CLICKDAY' AND P_ID_BANDO > 0) THEN - - SELECT count(ID) INTO PERIODO_OK FROM BANDI where ID = P_ID_BANDO AND SYSTIMESTAMP BETWEEN INIZIO_CLICKDAY AND FINE_CLICKDAY; - - END IF; - - RETURN PERIODO_OK; -END; -/ - +CREATE INDEX IX_DOCUMENTI_BANDO_FASE ON DOCUMENTI_BANDO +(FASE) +TABLESPACE BANDO_VOLI_TBS +PCTFREE 10 +INITRANS 2 +MAXTRANS 255 +STORAGE ( + INITIAL 64K + NEXT 1M + MINEXTENTS 1 + MAXEXTENTS UNLIMITED + PCTINCREASE 0 + BUFFER_POOL DEFAULT + ); -- --- F_DECRYPT (Function) +-- IX_DOCUMENTI_BANDO_OBBLIGO (Index) -- -- Dependencies: --- ALGPARAMETERS (Table) --- DBMS_CRYPTO (Synonym) --- UTL_ENCODE (Synonym) --- UTL_I18N (Synonym) --- UTL_RAW (Synonym) --- STANDARD (Package) --- SYS_STUB_FOR_PURITY_ANALYSIS (Package) +-- DOCUMENTI_BANDO (Table) -- -CREATE OR REPLACE FUNCTION F_DECRYPT (p_input VARCHAR2) - RETURN VARCHAR2 -AS - v_decrypted_raw RAW (2000); - v_key RAW (320); - v_encryption_type PLS_INTEGER := DBMS_CRYPTO.DES_CBC_PKCS5; - v_iv RAW (320); -BEGIN - SELECT VALUE - INTO v_key - FROM algparameters - WHERE name = 'key'; - - SELECT VALUE - INTO v_iv - FROM algparameters - WHERE name = 'iv'; - - - v_decrypted_raw := - DBMS_CRYPTO.DECRYPT ( - src => UTL_ENCODE.base64_decode (UTL_RAW.CAST_TO_RAW (p_input)), - typ => v_encryption_type, - key => v_key, - iv => v_iv); - - - RETURN UTL_I18N.RAW_TO_CHAR (v_decrypted_raw, 'AL32UTF8'); -END; -/ - +CREATE INDEX IX_DOCUMENTI_BANDO_OBBLIGO ON DOCUMENTI_BANDO +(OBBLIGO) +TABLESPACE BANDO_VOLI_TBS +PCTFREE 10 +INITRANS 2 +MAXTRANS 255 +STORAGE ( + INITIAL 64K + NEXT 1M + MINEXTENTS 1 + MAXEXTENTS UNLIMITED + PCTINCREASE 0 + BUFFER_POOL DEFAULT + ); -- --- F_ENCRYPT (Function) +-- IX_DOCUMENTI_BANDO_PRIORITA (Index) -- -- Dependencies: --- ALGPARAMETERS (Table) --- DBMS_CRYPTO (Synonym) --- UTL_ENCODE (Synonym) --- UTL_I18N (Synonym) --- UTL_RAW (Synonym) --- STANDARD (Package) --- SYS_STUB_FOR_PURITY_ANALYSIS (Package) +-- DOCUMENTI_BANDO (Table) -- -CREATE OR REPLACE FUNCTION F_ENCRYPT (p_input VARCHAR2) - RETURN VARCHAR2 -AS - v_encrypted_raw RAW (2000); - v_key RAW (320); - v_encryption_type PLS_INTEGER - := DBMS_CRYPTO.DES_CBC_PKCS5; - v_iv RAW (320); -BEGIN - SELECT VALUE - INTO v_key - FROM algparameters - WHERE name = 'key'; - - SELECT VALUE - INTO v_iv - FROM algparameters - WHERE name = 'iv'; - - v_encrypted_raw := - DBMS_CRYPTO.encrypt (src => UTL_I18N.STRING_TO_RAW (p_input, 'AL32UTF8'), - typ => v_encryption_type, - key => v_key, - iv => v_iv); - RETURN UTL_RAW.CAST_TO_VARCHAR2 (UTL_ENCODE.base64_encode (v_encrypted_raw)); -END; -/ +CREATE INDEX IX_DOCUMENTI_BANDO_PRIORITA ON DOCUMENTI_BANDO +(PRIORITA) +TABLESPACE BANDO_VOLI_TBS +PCTFREE 10 +INITRANS 2 +MAXTRANS 255 +STORAGE ( + INITIAL 64K + NEXT 1M + MINEXTENTS 1 + MAXEXTENTS UNLIMITED + PCTINCREASE 0 + BUFFER_POOL DEFAULT + ); +-- +-- IX_DOMANDA_LOTTO (Index) +-- +-- Dependencies: +-- DOMANDA_SCONTI (Table) +-- +CREATE INDEX IX_DOMANDA_LOTTO ON DOMANDA_SCONTI +(LOTTO) +TABLESPACE BANDO_VOLI_TBS +PCTFREE 10 +INITRANS 2 +MAXTRANS 255 +STORAGE ( + INITIAL 64K + NEXT 1M + MINEXTENTS 1 + MAXEXTENTS UNLIMITED + PCTINCREASE 0 + BUFFER_POOL DEFAULT + ); -- --- FNGETSCONTO (Function) +-- IX_DOMANDA_SCONTI_PRIORITY (Index) -- -- Dependencies: --- ACCOUNT_NUCLEO_FAMILIARE (Table) --- ANAG_COMPAGNIE (Table) --- DOMANDA (Table) -- DOMANDA_SCONTI (Table) --- STANDARD (Package) --- SYS_STUB_FOR_PURITY_ANALYSIS (Package) -- -CREATE OR REPLACE FUNCTION "FNGETSCONTO" ( - P_ID IN NUMBER, - P_TIPO IN VARCHAR -) RETURN VARCHAR IS -T_ID_DOMANDA INT; -T_ISEE INT; -T_PRIORITY NUMBER; -T_BENEFICIARIO VARCHAR(255); -COSTO_VOLO NUMBER; -T_COMPAGNIA_ID INT; -CATEGORIA_PRIORITARIA NUMBER; -SCONTO_RESIDENTI NUMBER; -SCONTO_PRIORITARI NUMBER; -SCONTO_TOTALE NUMBER; -PERC_RESIDENTI NUMBER; -PERC_PRIORITARI NUMBER; -MINIMO_COSTO NUMBER; -SCONTO_MASSIMO NUMBER; -CTR_STATO INT; -CTR_ADESIONE INT; -T_DATA_VOLO DATE; -T_DATA_ADESIONE DATE; -T_DATA_ACQUISTO DATE; -T_ID_ACCOUNT INT; -RESULT VARCHAR(255); -BEGIN - MINIMO_COSTO := 1; - SCONTO_MASSIMO := 75; - PERC_RESIDENTI := 25; - PERC_PRIORITARI := 25; - SCONTO_PRIORITARI :=0; - CTR_ADESIONE :=0; - - SELECT - ID_DOMANDA, STATO, CODICE_FISCALE, COSTO_TRATTA, ISEE, - COMPAGNIA_ID, DATA_VOLO, DATA_ACQUISTO, PRIORITY INTO T_ID_DOMANDA, CTR_STATO, T_BENEFICIARIO, - COSTO_VOLO, T_ISEE, T_COMPAGNIA_ID, T_DATA_VOLO, T_DATA_ACQUISTO, T_PRIORITY FROM DOMANDA_SCONTI WHERE ID = P_ID; - -- se lo stato della richiesta di sconto è = 0 - IF CTR_STATO = 0 THEN - SELECT ISEE, ID_ACCOUNT INTO T_ISEE, T_ID_ACCOUNT FROM DOMANDA WHERE ID = T_ID_DOMANDA; - SELECT PRIORITY INTO T_PRIORITY FROM ACCOUNT_NUCLEO_FAMILIARE WHERE CODICE_FISCALE = T_BENEFICIARIO AND ID_ACCOUNT = T_ID_ACCOUNT; - - END IF; - - IF T_COMPAGNIA_ID > 0 THEN - SELECT ADESIONE, DATA_ADESIONE INTO CTR_ADESIONE, T_DATA_ADESIONE FROM ANAG_COMPAGNIE WHERE ID = T_COMPAGNIA_ID; - END IF; - - IF T_PRIORITY > 0 OR T_ISEE > 0 THEN - CATEGORIA_PRIORITARIA := 1; - ELSE - CATEGORIA_PRIORITARIA := 0; - END IF; - - - -- SE LA COMPAGNIA HA ADERITO ALLO SCONTO DEL 25% GIA APPLICATO AL PREZZO DEL BIGLIETTO NON CONSIDERO LO SCONTO RESIDENTI - IF CTR_ADESIONE = 1 AND T_DATA_ADESIONE <= T_DATA_ACQUISTO THEN - COSTO_VOLO := (COSTO_VOLO/(1-(PERC_RESIDENTI/100))); - SCONTO_RESIDENTI := 0; - ELSE - SCONTO_RESIDENTI := (COSTO_VOLO*PERC_RESIDENTI/100); - END IF; - - - IF CATEGORIA_PRIORITARIA = 1 THEN - SCONTO_PRIORITARI := (COSTO_VOLO*PERC_PRIORITARI/100); - END IF; - - - SCONTO_TOTALE := SCONTO_RESIDENTI+SCONTO_PRIORITARI; - - IF SCONTO_TOTALE > SCONTO_MASSIMO THEN - SCONTO_TOTALE := SCONTO_MASSIMO; - END IF; - - CASE WHEN P_TIPO = 'CATEGORIA_PRIORITARIA' THEN - -- Restituisce solo L'INCIDENZA - RESULT := CATEGORIA_PRIORITARIA; - WHEN P_TIPO = 'SCONTO_PRIORITARI' THEN - - RESULT := SCONTO_PRIORITARI; - WHEN P_TIPO = 'SCONTO_RESIDENTI' THEN - - RESULT := SCONTO_RESIDENTI; - ELSE - RESULT := SCONTO_TOTALE; - - END CASE; - - RETURN RESULT; - -END FNGETSCONTO; -/ - +CREATE INDEX IX_DOMANDA_SCONTI_PRIORITY ON DOMANDA_SCONTI +(PRIORITY) +TABLESPACE BANDO_VOLI_TBS +PCTFREE 10 +INITRANS 2 +MAXTRANS 255 +STORAGE ( + INITIAL 64K + NEXT 1M + MINEXTENTS 1 + MAXEXTENTS UNLIMITED + PCTINCREASE 0 + BUFFER_POOL DEFAULT + ); -- --- GET_IDENTIFICATIVO (Function) +-- IX_FAQ_UT_ACC (Index) -- -- Dependencies: --- STANDARD (Package) +-- FAQ_UTENTI (Table) -- -CREATE OR REPLACE FUNCTION "GET_IDENTIFICATIVO" ( -P_ID IN NUMBER, -P_DATA_REGISTRAZIONE IN TIMESTAMP -) -RETURN VARCHAR2 IS - IDENTIFICATIVO VARCHAR2(30); -BEGIN - IDENTIFICATIVO := 'D'||TO_CHAR(P_DATA_REGISTRAZIONE,'YYYYmm')||LPAD(to_char(P_ID), 6, '0' ); - RETURN IDENTIFICATIVO; -END; -/ - +CREATE INDEX IX_FAQ_UT_ACC ON FAQ_UTENTI +(ACCOUNT) +TABLESPACE BANDO_VOLI_TBS +PCTFREE 10 +INITRANS 2 +MAXTRANS 255 +STORAGE ( + INITIAL 64K + NEXT 1M + MINEXTENTS 1 + MAXEXTENTS UNLIMITED + PCTINCREASE 0 + BUFFER_POOL DEFAULT + ); -- --- GETPERIODOANNIMESIGIORNI (Function) +-- IX_FAQ_UT_CAT (Index) -- -- Dependencies: --- DUAL (Synonym) --- STANDARD (Package) --- SYS_STUB_FOR_PURITY_ANALYSIS (Package) +-- FAQ_UTENTI (Table) -- -CREATE OR REPLACE FUNCTION "GETPERIODOANNIMESIGIORNI" ( -P_DATA_INIZIO IN DATE, -P_DATA_FINE IN DATE, -P_TIPO IN VARCHAR -) RETURN NUMBER IS -ANNI NUMBER; -MESI NUMBER; -GIORNI NUMBER; -PLUS NUMBER; -RESULT NUMBER; -DATA_FINE DATE; - -BEGIN - ANNI := 0; - MESI := 0; - GIORNI := 0; - PLUS := 0; - RESULT := 0; - --DATA_INIZIO := TO_DATE('01/01/2000 00:00:00','dd/mm/YYYY hh24:mi:ss'); - DATA_FINE := P_DATA_FINE; -- AGGIUNGO IL GIORNO ESTREMO DEL PERIODO - - /*SELECT - TRUNC (MONTHS_BETWEEN (P_DATA_FINE, P_DATA_INIZIO) / 12), - MOD (TRUNC (MONTHS_BETWEEN (P_DATA_FINE, P_DATA_INIZIO)), 12), - (P_DATA_FINE - ADD_MONTHS (P_DATA_INIZIO, TRUNC(MONTHS_BETWEEN (P_DATA_FINE,P_DATA_INIZIO)))) - INTO ANNI, MESI, GIORNI FROM DUAL; - */ - WITH T (START_DATE, END_DATE) AS ( - SELECT P_DATA_INIZIO, DATA_FINE FROM DUAL - ) - SELECT - TRUNC(MONTH_DIFF/12), - TRUNC(MOD(MONTH_DIFF, 12)), - TRUNC(END_DATE - ADD_MONTHS(START_DATE, MONTH_DIFF)) INTO ANNI, MESI, GIORNI - FROM ( - SELECT START_DATE, END_DATE, - TRUNC(MONTHS_BETWEEN(END_DATE, START_DATE)) AS MONTH_DIFF - FROM T - ); - --GIORNI := GIORNI+1; - - IF GIORNI = 30 THEN - GIORNI := 0; - MESI := (MESI + 1); - IF MESI = 12 THEN - MESI := 0; - ANNI := (ANNI + 1); - END IF; - - END IF; - - - - CASE WHEN P_TIPO = 'ANNI' THEN - -- Restituisce solo il numero di anni - RESULT := ANNI; - WHEN P_TIPO = 'MESI' THEN - -- Restituisce solo il numero di mesi - RESULT := MESI; - WHEN P_TIPO = 'GIORNI' THEN - -- Restituisce solo il numero di giorni - RESULT := GIORNI; - ELSE - -- Restituisce solo il numero di anni frazionati sommando - IF MESI >= 6 THEN - PLUS := 1; - ELSE - PLUS := 0; - END IF; - RESULT := (ANNI+PLUS); - - END CASE; - - RETURN RESULT ; +CREATE INDEX IX_FAQ_UT_CAT ON FAQ_UTENTI +(ID_CATEGORIA) +TABLESPACE BANDO_VOLI_TBS +PCTFREE 10 +INITRANS 2 +MAXTRANS 255 +STORAGE ( + INITIAL 64K + NEXT 1M + MINEXTENTS 1 + MAXEXTENTS UNLIMITED + PCTINCREASE 0 + BUFFER_POOL DEFAULT + ); -END GETPERIODOANNIMESIGIORNI; -/ +-- +-- IX_FAQ_UT_DATAI (Index) +-- +-- Dependencies: +-- FAQ_UTENTI (Table) +-- +CREATE INDEX IX_FAQ_UT_DATAI ON FAQ_UTENTI +(DATA_INSERIMENTO) +TABLESPACE BANDO_VOLI_TBS +PCTFREE 10 +INITRANS 2 +MAXTRANS 255 +STORAGE ( + INITIAL 64K + NEXT 1M + MINEXTENTS 1 + MAXEXTENTS UNLIMITED + PCTINCREASE 0 + BUFFER_POOL DEFAULT + ); +-- +-- IX_FIREBASE_ADMIN_CODICE_FISCALE (Index) +-- +-- Dependencies: +-- UID_FIREBASE_ADMIN (Table) +-- +CREATE INDEX IX_FIREBASE_ADMIN_CODICE_FISCALE ON UID_FIREBASE_ADMIN +(CODICE_FISCALE) +TABLESPACE BANDO_VOLI_TBS +PCTFREE 10 +INITRANS 2 +MAXTRANS 255 +STORAGE ( + INITIAL 64K + NEXT 1M + MINEXTENTS 1 + MAXEXTENTS UNLIMITED + PCTINCREASE 0 + BUFFER_POOL DEFAULT + ); -- --- VIEW_EXPORT_SCONTI (View) +-- IX_FIREBASE_ADMIN_EMAIL (Index) -- -- Dependencies: --- ACCOUNT_NUCLEO_FAMILIARE (Table) --- DOMANDA (Table) --- DOMANDA_SCONTI (Table) --- FNGETSCONTO (Function) +-- UID_FIREBASE_ADMIN (Table) -- -CREATE OR REPLACE FORCE VIEW VIEW_EXPORT_SCONTI -(ID, ID_DOMANDA, COGNOME, NOME, DATA_NASCITA, - RAPPORTO_PARENTELA, CODICE_FISCALE, COMUNE_RESIDENZA, PROV_RESIDENZA, CAP_RESIDENZA, - COMPAGNIA_AEREA, NUMERO_VOLO, DATA_VOLO, COSTO_TRATTA, AEROPORTO_PARTENZA, - AEROPORTO_PARTENZA_CODICE, AEROPORTO_DESTINAZIONE, AEROPORTO_DESTINAZIONE_CODICE, FILEPATH_BIGLIETTO, FILEPATH_CARTAIMBARCO, - ISEE, DATA_RILASCIO_ISEE, IBAN, ISTITUTO_CREDITO, FILIALE_CREDITO, - STATO, DATA_REGISTRAZIONE, ID_UID_FIREBASE, DATA_ESPORTAZIONE, DATA_ESITO, - DATA_EROGAZIONE, NOTE, SCONTO_TOTALE, COMPAGNIA_ID, DATA_ACQUISTO, - LOTTO, FLAG, PRIORITA) -BEQUEATH DEFINER -AS -SELECT DS.ID, - DS.ID_DOMANDA, - DS.COGNOME, - DS.NOME, - DS.DATA_NASCITA, - DS.RAPPORTO_PARENTELA, - DS.CODICE_FISCALE, - CASE - WHEN DS.STATO >= 1 THEN DS.COMUNE_RESIDENZA - ELSE AF.COMUNE_RESIDENZA - END - AS COMUNE_RESIDENZA, - CASE - WHEN DS.STATO >= 1 THEN DS.PROV_RESIDENZA - ELSE AF.PROV_RESIDENZA - END - AS PROV_RESIDENZA, - CASE - WHEN DS.STATO >= 1 THEN DS.CAP_RESIDENZA - ELSE AF.CAP_RESIDENZA - END - AS CAP_RESIDENZA, - DS.COMPAGNIA_AEREA, - DS.NUMERO_VOLO, - DS.DATA_VOLO, - DS.COSTO_TRATTA, - DS.AEROPORTO_PARTENZA, - DS.AEROPORTO_PARTENZA_CODICE, - DS.AEROPORTO_DESTINAZIONE, - DS.AEROPORTO_DESTINAZIONE_CODICE, - DS.FILEPATH_BIGLIETTO, - DS.FILEPATH_CARTAIMBARCO, - CASE WHEN DS.STATO >= 1 THEN DS.ISEE ELSE D.ISEE END - AS ISEE, - CASE - WHEN DS.STATO >= 1 THEN DS.DATA_RILASCIO_ISEE - ELSE D.DATA_RILASCIO_ISEE - END - AS DATA_RILASCIO_ISEE, - CASE WHEN DS.STATO >= 1 THEN DS.IBAN ELSE D.IBAN END - AS IBAN, - CASE - WHEN DS.STATO >= 1 THEN DS.ISTITUTO_CREDITO - ELSE D.ISTITUTO_CREDITO - END - AS ISTITUTO_CREDITO, - CASE - WHEN DS.STATO >= 1 THEN DS.FILIALE_CREDITO - ELSE D.FILIALE_CREDITO - END - AS FILIALE_CREDITO, - DS.STATO, - DS.DATA_REGISTRAZIONE, - DS.ID_UID_FIREBASE, - DS.DATA_ESPORTAZIONE, - DS.DATA_ESITO, - DS.DATA_EROGAZIONE, - DS.NOTE, - CASE - WHEN DS.STATO >= 1 THEN DS.SCONTO_TOTALE - ELSE TO_NUMBER (FNGETSCONTO (DS.ID, '')) - END - AS SCONTO_TOTALE, - DS.COMPAGNIA_ID, - DS.DATA_ACQUISTO, - DS.LOTTO, - CASE - WHEN DS.STATO >= 1 THEN AF.FLAG - ELSE DS.FLAG - END - AS FLAG, - CASE - WHEN DS.STATO >= 1 THEN AF.PRIORITY - ELSE DS.PRIORITY - END - AS PRIORITA - FROM DOMANDA_SCONTI DS - INNER JOIN DOMANDA D ON DS.ID_DOMANDA = D.ID - INNER JOIN ACCOUNT_NUCLEO_FAMILIARE AF - ON AF.ID_ACCOUNT = D.ID_ACCOUNT - AND DS.CODICE_FISCALE = AF.CODICE_FISCALE; - +CREATE INDEX IX_FIREBASE_ADMIN_EMAIL ON UID_FIREBASE_ADMIN +(EMAIL) +TABLESPACE BANDO_VOLI_TBS +PCTFREE 10 +INITRANS 2 +MAXTRANS 255 +STORAGE ( + INITIAL 64K + NEXT 1M + MINEXTENTS 1 + MAXEXTENTS UNLIMITED + PCTINCREASE 0 + BUFFER_POOL DEFAULT + ); -- --- VIEW_TRATTE (View) +-- IX_FIREBASE_ADMIN_GROUP (Index) -- -- Dependencies: --- AEROPORTI (Table) +-- UID_FIREBASE_ADMIN (Table) -- -CREATE OR REPLACE FORCE VIEW VIEW_TRATTE -(A_CODICE, A_NOME, R_CODICE, R_NOME) -BEQUEATH DEFINER -AS -SELECT A.CODICE AS A_CODICE, A.NOME AS A_NOME, R.CODICE AS R_CODICE, R.NOME AS R_NOME -FROM AEROPORTI A -CROSS JOIN AEROPORTI R -WHERE A.REGIONE = 19 AND R.REGIONE != 19 -UNION -SELECT R.CODICE AS A_CODICE, R.NOME AS A_NOME, A.CODICE AS R_CODICE, A.NOME AS R_NOME -FROM AEROPORTI R -CROSS JOIN AEROPORTI A -WHERE A.REGIONE = 19 AND R.REGIONE != 19; - +CREATE INDEX IX_FIREBASE_ADMIN_GROUP ON UID_FIREBASE_ADMIN +(GROUP_ID) +TABLESPACE BANDO_VOLI_TBS +PCTFREE 10 +INITRANS 2 +MAXTRANS 255 +STORAGE ( + INITIAL 64K + NEXT 1M + MINEXTENTS 1 + MAXEXTENTS UNLIMITED + PCTINCREASE 0 + BUFFER_POOL DEFAULT + ); -- --- ACCOUNT_ANAGRAFICA_BI (Trigger) +-- IX_FIREBASE_ADMIN_GUID (Index) -- -- Dependencies: --- ACCOUNT_ANAGRAFICA (Table) --- ACCOUNT_ANAG_ID_SEQ (Sequence) --- DUAL (Synonym) --- STANDARD (Package) +-- UID_FIREBASE_ADMIN (Table) -- -CREATE OR REPLACE TRIGGER "ACCOUNT_ANAGRAFICA_BI" -BEFORE INSERT ON ACCOUNT_ANAGRAFICA -FOR EACH ROW -BEGIN - SELECT ACCOUNT_ANAG_ID_SEQ.nextval - INTO :new.ID - FROM dual; -END; -/ - +CREATE INDEX IX_FIREBASE_ADMIN_GUID ON UID_FIREBASE_ADMIN +(GUID) +TABLESPACE BANDO_VOLI_TBS +PCTFREE 10 +INITRANS 2 +MAXTRANS 255 +STORAGE ( + INITIAL 64K + NEXT 1M + MINEXTENTS 1 + MAXEXTENTS UNLIMITED + PCTINCREASE 0 + BUFFER_POOL DEFAULT + ); -- --- ACCOUNT_BI (Trigger) +-- IX_FIREBASE_ADMIN_SU (Index) -- -- Dependencies: --- ACCOUNT (Table) --- ACCOUNT_ID_SEQ (Sequence) --- DUAL (Synonym) --- STANDARD (Package) +-- UID_FIREBASE_ADMIN (Table) -- -CREATE OR REPLACE TRIGGER "ACCOUNT_BI" -BEFORE INSERT ON ACCOUNT -FOR EACH ROW -BEGIN - SELECT ACCOUNT_ID_SEQ.nextval - INTO :new.ID - FROM dual; -END; -/ - +CREATE INDEX IX_FIREBASE_ADMIN_SU ON UID_FIREBASE_ADMIN +(SUPER_USER) +TABLESPACE BANDO_VOLI_TBS +PCTFREE 10 +INITRANS 2 +MAXTRANS 255 +STORAGE ( + INITIAL 64K + NEXT 1M + MINEXTENTS 1 + MAXEXTENTS UNLIMITED + PCTINCREASE 0 + BUFFER_POOL DEFAULT + ); -- --- ACCOUNT_NUCLEO_BI (Trigger) +-- IX_ID_DOMANAD (Index) -- -- Dependencies: --- ACCOUNT_NUCLEO_FAMILIARE (Table) --- ACCOUNT_NUCLEO_ID_SEQ (Sequence) --- DUAL (Synonym) --- STANDARD (Package) +-- DOMANDA_SCONTI_IMPORTI_LOG (Table) -- -CREATE OR REPLACE TRIGGER "ACCOUNT_NUCLEO_BI" -BEFORE INSERT ON ACCOUNT_NUCLEO_FAMILIARE -FOR EACH ROW -BEGIN - SELECT ACCOUNT_NUCLEO_ID_SEQ.nextval - INTO :new.ID - FROM dual; -END; -/ - +CREATE INDEX IX_ID_DOMANAD ON DOMANDA_SCONTI_IMPORTI_LOG +(ID_DOMANDA) +TABLESPACE BANDO_VOLI_TBS +PCTFREE 10 +INITRANS 2 +MAXTRANS 255 +STORAGE ( + PCTINCREASE 0 + BUFFER_POOL DEFAULT + ); -- --- ALLEGATI_BI (Trigger) +-- IX_ID_DOMANDA_SCONTI_LOG (Index) -- -- Dependencies: --- ALLEGATI (Table) --- ALLEGATI_ID_SEQ (Sequence) --- DUAL (Synonym) --- STANDARD (Package) +-- DOMANDA_SCONTI_IMPORTI_LOG (Table) -- -CREATE OR REPLACE TRIGGER "ALLEGATI_BI" -BEFORE INSERT ON ALLEGATI -FOR EACH ROW -BEGIN - SELECT ALLEGATI_ID_SEQ.nextval - INTO :new.ID - FROM dual; -END; -/ - +CREATE INDEX IX_ID_DOMANDA_SCONTI_LOG ON DOMANDA_SCONTI_IMPORTI_LOG +(ID_DOMANDA_SCONTI) +TABLESPACE BANDO_VOLI_TBS +PCTFREE 10 +INITRANS 2 +MAXTRANS 255 +STORAGE ( + PCTINCREASE 0 + BUFFER_POOL DEFAULT + ); -- --- ANAG_COMPAGNIE_TRG (Trigger) +-- IX_IMPERSONIFICAZIONE (Index) -- -- Dependencies: --- ANAG_COMPAGNIE (Table) --- ANAG_COMPAGNIE_SEQ (Sequence) --- STANDARD (Package) +-- LOGS (Table) -- -CREATE OR REPLACE TRIGGER ANAG_COMPAGNIE_TRG -BEFORE INSERT -ON ANAG_COMPAGNIE -REFERENCING NEW AS New OLD AS Old -FOR EACH ROW -BEGIN --- For Toad: Highlight column ID - :new.ID := ANAG_COMPAGNIE_SEQ.nextval; -END ANAG_COMPAGNIE_TRG; -/ - +CREATE INDEX IX_IMPERSONIFICAZIONE ON LOGS +(IMPERSONIFICAZIONE_GUID) +TABLESPACE BANDO_VOLI_TBS +PCTFREE 10 +INITRANS 2 +MAXTRANS 255 +STORAGE ( + INITIAL 64K + NEXT 1M + MINEXTENTS 1 + MAXEXTENTS UNLIMITED + PCTINCREASE 0 + BUFFER_POOL DEFAULT + ); -- --- ANAG_DICHIARAZIONI_BI (Trigger) +-- IX_LOTTO_INTEGRAZIONE (Index) -- -- Dependencies: --- ANAG_DICHIARAZIONI (Table) --- ANAG_DICHIARAZIONI_ID_SEQ (Sequence) --- DUAL (Synonym) --- STANDARD (Package) +-- DOMANDA_SCONTI_INTEGRAZIONE (Table) -- -CREATE OR REPLACE TRIGGER "ANAG_DICHIARAZIONI_BI" -BEFORE INSERT ON ANAG_DICHIARAZIONI -FOR EACH ROW -BEGIN - SELECT ANAG_DICHIARAZIONI_ID_SEQ.nextval - INTO :new.ID - FROM dual; -END; -/ - +CREATE INDEX IX_LOTTO_INTEGRAZIONE ON DOMANDA_SCONTI_INTEGRAZIONE +(LOTTO_INTEGRAZIONE) +TABLESPACE BANDO_VOLI_TBS +PCTFREE 10 +INITRANS 2 +MAXTRANS 255 +STORAGE ( + INITIAL 64K + NEXT 1M + MINEXTENTS 1 + MAXEXTENTS UNLIMITED + PCTINCREASE 0 + BUFFER_POOL DEFAULT + ); -- --- BANDI_BI (Trigger) +-- IX_OBBLIGO (Index) -- -- Dependencies: --- BANDI (Table) --- BANDI_ID_SEQ (Sequence) --- DUAL (Synonym) --- STANDARD (Package) +-- ANAG_DICHIARAZIONI (Table) -- -CREATE OR REPLACE TRIGGER "BANDI_BI" -BEFORE INSERT ON BANDI -FOR EACH ROW -BEGIN - SELECT BANDI_ID_SEQ.nextval - INTO :new.ID - FROM dual; -END; -/ - +CREATE INDEX IX_OBBLIGO ON ANAG_DICHIARAZIONI +(OBBLIGO) +TABLESPACE BANDO_VOLI_TBS +PCTFREE 10 +INITRANS 2 +MAXTRANS 255 +STORAGE ( + INITIAL 64K + NEXT 1M + MINEXTENTS 1 + MAXEXTENTS UNLIMITED + PCTINCREASE 0 + BUFFER_POOL DEFAULT + ); -- --- COMUNE_BI (Trigger) +-- IX_POSIZIONE (Index) -- -- Dependencies: --- COMUNE (Table) --- COMUNE_ID_SEQ (Sequence) --- DUAL (Synonym) --- STANDARD (Package) +-- ANAG_DICHIARAZIONI (Table) -- -CREATE OR REPLACE TRIGGER "COMUNE_BI" -BEFORE INSERT ON COMUNE -FOR EACH ROW -BEGIN - SELECT COMUNE_ID_SEQ.nextval - INTO :new.ID - FROM dual; -END; -/ - +CREATE INDEX IX_POSIZIONE ON ANAG_DICHIARAZIONI +(POSIZIONE) +TABLESPACE BANDO_VOLI_TBS +PCTFREE 10 +INITRANS 2 +MAXTRANS 255 +STORAGE ( + INITIAL 64K + NEXT 1M + MINEXTENTS 1 + MAXEXTENTS UNLIMITED + PCTINCREASE 0 + BUFFER_POOL DEFAULT + ); -- --- DOCUMENTIBANDO_BI (Trigger) +-- IX_SA_CF (Index) -- -- Dependencies: --- DOCUMENTI_BANDO (Table) --- DOCUMENTIBANDO_ID_SEQ (Sequence) --- DUAL (Synonym) --- STANDARD (Package) +-- SPID_ACCESSI (Table) -- -CREATE OR REPLACE TRIGGER "DOCUMENTIBANDO_BI" -BEFORE INSERT ON DOCUMENTI_BANDO -FOR EACH ROW -BEGIN - SELECT DOCUMENTIBANDO_ID_SEQ.nextval - INTO :new.ID - FROM dual; -END; -/ - +CREATE INDEX IX_SA_CF ON SPID_ACCESSI +(CODICE_FISCALE) +TABLESPACE BANDO_VOLI_TBS +PCTFREE 10 +INITRANS 2 +MAXTRANS 255 +STORAGE ( + INITIAL 64K + NEXT 1M + MINEXTENTS 1 + MAXEXTENTS UNLIMITED + PCTINCREASE 0 + BUFFER_POOL DEFAULT + ); -- --- DOMANDA_BI (Trigger) +-- IX_SA_DATA (Index) -- -- Dependencies: --- DOMANDA (Table) --- DOMANDA_ID_SEQ (Sequence) --- DUAL (Synonym) --- STANDARD (Package) +-- SPID_ACCESSI (Table) -- -CREATE OR REPLACE TRIGGER "DOMANDA_BI" -BEFORE INSERT ON DOMANDA -FOR EACH ROW -BEGIN - SELECT DOMANDA_ID_SEQ.nextval - INTO :new.ID - FROM dual; -END; -/ - +CREATE INDEX IX_SA_DATA ON SPID_ACCESSI +(DATA) +TABLESPACE BANDO_VOLI_TBS +PCTFREE 10 +INITRANS 2 +MAXTRANS 255 +STORAGE ( + INITIAL 64K + NEXT 1M + MINEXTENTS 1 + MAXEXTENTS UNLIMITED + PCTINCREASE 0 + BUFFER_POOL DEFAULT + ); -- --- DOMANDA_EMAIL_BI (Trigger) +-- IX_SEARCH (Index) -- -- Dependencies: --- DOMANDA_EMAIL (Table) --- DOMANDA_EMAIL_ID_SEQ (Sequence) --- DUAL (Synonym) --- STANDARD (Package) +-- COMUNE (Table) -- -CREATE OR REPLACE TRIGGER DOMANDA_EMAIL_BI -BEFORE INSERT ON DOMANDA_EMAIL -FOR EACH ROW -BEGIN - SELECT DOMANDA_EMAIL_ID_SEQ.nextval - INTO :new.ID - FROM dual; -END; -/ - +CREATE INDEX IX_SEARCH ON COMUNE +(SEARCH) +TABLESPACE BANDO_VOLI_TBS +PCTFREE 10 +INITRANS 2 +MAXTRANS 255 +STORAGE ( + INITIAL 64K + NEXT 1M + MINEXTENTS 1 + MAXEXTENTS UNLIMITED + PCTINCREASE 0 + BUFFER_POOL DEFAULT + ); -- --- DOMANDA_SCONTI_BI (Trigger) +-- IX_STATO_PRATICA (Index) -- -- Dependencies: -- DOMANDA_SCONTI (Table) --- DOMANDA_SCONTI_ID_SEQ (Sequence) --- DUAL (Synonym) --- STANDARD (Package) -- -CREATE OR REPLACE TRIGGER DOMANDA_SCONTI_BI -BEFORE INSERT ON DOMANDA_SCONTI -FOR EACH ROW -BEGIN - SELECT DOMANDA_SCONTI_ID_SEQ.nextval - INTO :new.ID - FROM dual; -END; -/ - +CREATE INDEX IX_STATO_PRATICA ON DOMANDA_SCONTI +(STATO) +TABLESPACE BANDO_VOLI_TBS +PCTFREE 10 +INITRANS 2 +MAXTRANS 255 +STORAGE ( + INITIAL 64K + NEXT 1M + MINEXTENTS 1 + MAXEXTENTS UNLIMITED + PCTINCREASE 0 + BUFFER_POOL DEFAULT + ); -- --- ESPORTAZIONI_TRG (Trigger) +-- IX_USER_ACCOUNT (Index) -- -- Dependencies: --- ESPORTAZIONI (Table) --- ESPORTAZIONI_SEQ (Sequence) --- STANDARD (Package) +-- ACCOUNT (Table) -- -CREATE OR REPLACE TRIGGER ESPORTAZIONI_TRG -BEFORE INSERT -ON ESPORTAZIONI -REFERENCING NEW AS New OLD AS Old -FOR EACH ROW -BEGIN --- For Toad: Highlight column LOTTO - :new.LOTTO := ESPORTAZIONI_SEQ.nextval; -END ESPORTAZIONI_TRG; -/ - +CREATE INDEX IX_USER_ACCOUNT ON ACCOUNT +(USERNAME) +TABLESPACE BANDO_VOLI_TBS +PCTFREE 10 +INITRANS 2 +MAXTRANS 255 +STORAGE ( + INITIAL 64K + NEXT 1M + MINEXTENTS 1 + MAXEXTENTS UNLIMITED + PCTINCREASE 0 + BUFFER_POOL DEFAULT + ); -- --- FAQ_BI (Trigger) +-- IX_VALORE_CS (Index) -- -- Dependencies: --- FAQ (Table) --- FAQ_ID_SEQ (Sequence) --- DUAL (Synonym) --- STANDARD (Package) +-- CUSTOMER_SATISFACTION (Table) -- -CREATE OR REPLACE TRIGGER "FAQ_BI" -BEFORE INSERT ON FAQ -FOR EACH ROW -BEGIN - SELECT FAQ_ID_SEQ.nextval - INTO :new.ID - FROM dual; -END; -/ +CREATE INDEX IX_VALORE_CS ON CUSTOMER_SATISFACTION +(VALORE) +TABLESPACE BANDO_VOLI_TBS +PCTFREE 10 +INITRANS 2 +MAXTRANS 255 +STORAGE ( + INITIAL 64K + NEXT 1M + MINEXTENTS 1 + MAXEXTENTS UNLIMITED + PCTINCREASE 0 + BUFFER_POOL DEFAULT + ); +-- +-- MD_APP_FILE_TYPE_IDX (Index) +-- +-- Dependencies: +-- MD_APPLICATIONFILES (Table) +-- +CREATE INDEX MD_APP_FILE_TYPE_IDX ON MD_APPLICATIONFILES +(TYPE, ID) +TABLESPACE BANDO_VOLI_TBS +PCTFREE 10 +INITRANS 2 +MAXTRANS 255 +STORAGE ( + PCTINCREASE 0 + BUFFER_POOL DEFAULT + ); -- --- FAQ_UTENTI_BI (Trigger) +-- MD_STATE_TYPE__ID (Index) -- -- Dependencies: --- FAQ_UTENTI (Table) --- FAQ_UTENTI_ID_SEQ (Sequence) --- DUAL (Synonym) --- STANDARD (Package) +-- MD_APPLICATIONFILES (Table) -- -CREATE OR REPLACE TRIGGER "FAQ_UTENTI_BI" -BEFORE INSERT ON FAQ_UTENTI -FOR EACH ROW +CREATE INDEX MD_STATE_TYPE__ID ON MD_APPLICATIONFILES +(STATE, TYPE, ID) +TABLESPACE BANDO_VOLI_TBS +PCTFREE 10 +INITRANS 2 +MAXTRANS 255 +STORAGE ( + PCTINCREASE 0 + BUFFER_POOL DEFAULT + ); + +-- +-- AGGIORNA_LOTTO_DOMANDA_SCONTI (Procedure) +-- +-- Dependencies: +-- DOMANDA_SCONTI (Table) +-- ESPORTAZIONI (Table) +-- DBMS_STANDARD (Package) +-- STANDARD (Package) +-- SYS_STUB_FOR_PURITY_ANALYSIS (Package) +-- +CREATE OR REPLACE PROCEDURE AGGIORNA_LOTTO_DOMANDA_SCONTI ( + LOTTO_FROM IN NUMBER, + LOTTO_TO IN NUMBER +) AS + V_DATA_CREAZIONE ESPORTAZIONI.DATA_CREAZIONE%TYPE; + V_NOTE_PRECEDENTE ESPORTAZIONI.NOTE%TYPE; + V_TIPO_FROM ESPORTAZIONI.TIPO%TYPE; + V_TIPO_TO ESPORTAZIONI.TIPO%TYPE; BEGIN - SELECT FAQ_UTENTI_ID_SEQ.nextval - INTO :new.ID - FROM dual; + -- Recupero TIPO dei due lotti e controllo corrispondenza + SELECT TIPO INTO V_TIPO_FROM FROM ESPORTAZIONI WHERE LOTTO = LOTTO_FROM; + SELECT TIPO INTO V_TIPO_TO FROM ESPORTAZIONI WHERE LOTTO = LOTTO_TO; + + IF V_TIPO_FROM != V_TIPO_TO THEN + RAISE_APPLICATION_ERROR(-20003, 'I lotti specificati non appartengono allo stesso TIPO.'); + END IF; + + -- Recupero della DATA_CREAZIONE del lotto_to + SELECT DATA_CREAZIONE + INTO V_DATA_CREAZIONE + FROM ESPORTAZIONI + WHERE LOTTO = LOTTO_TO; + + -- Aggiornamento della tabella DOMANDA_SCONTI + UPDATE DOMANDA_SCONTI + SET + LOTTO = LOTTO_TO, + DATA_ESPORTAZIONE = V_DATA_CREAZIONE, + DATA_ESITO = null + WHERE LOTTO = LOTTO_FROM AND STATO = 1; + + -- Recupera eventuale nota precedente del lotto_from + SELECT NOTE + INTO V_NOTE_PRECEDENTE + FROM ESPORTAZIONI + WHERE LOTTO = LOTTO_FROM; + + -- Aggiunge l'annotazione nella colonna NOTE del lotto_from + UPDATE ESPORTAZIONI + SET NOTE = NVL(V_NOTE_PRECEDENTE || ' | ', '') || + 'Domande spostate nel lotto ' || LOTTO_TO || ' in data ' || TO_CHAR(SYSDATE, 'YYYY-MM-DD HH24:MI:SS') + WHERE LOTTO = LOTTO_FROM; + + COMMIT; +EXCEPTION + WHEN NO_DATA_FOUND THEN + RAISE_APPLICATION_ERROR(-20001, 'Lotto_from o lotto_to non trovato nella tabella ESPORTAZIONI'); + WHEN OTHERS THEN + RAISE_APPLICATION_ERROR(-20002, 'Errore durante l''aggiornamento: ' || SQLERRM); END; / -- --- LOGS_BE_BI (Trigger) +-- SPAEROPORTISAVE (Procedure) +-- +-- Dependencies: +-- AEROPORTI (Table) +-- STANDARD (Package) +-- SYS_STUB_FOR_PURITY_ANALYSIS (Package) +-- +CREATE OR REPLACE PROCEDURE "SPAEROPORTISAVE" +( + P_CODICE VARCHAR2, + P_NOME VARCHAR2, + P_REGIONE NUMBER +) AS +INSUPDATE NUMBER; +BEGIN + +SELECT COUNT(*) INTO INSUPDATE FROM AEROPORTI WHERE CODICE = P_CODICE; + +IF INSUPDATE <= 0 THEN + INSERT INTO AEROPORTI (CODICE, NOME, REGIONE) VALUES (P_CODICE, P_NOME, P_REGIONE); +ELSE + UPDATE AEROPORTI SET NOME = P_NOME, REGIONE = P_REGIONE WHERE CODICE = P_CODICE; +END IF; + +END SPAEROPORTISAVE; +/ + + +-- +-- SPDICHIARAZIONISAVE (Procedure) +-- +-- Dependencies: +-- DOMANDA_DICHIARAZIONI (Table) +-- STANDARD (Package) +-- SYS_STUB_FOR_PURITY_ANALYSIS (Package) +-- +CREATE OR REPLACE PROCEDURE "SPDICHIARAZIONISAVE" +( + P_ID_DOMANDA INT +, P_ID_ANAG_DICHIARAZIONI INT +) AS + +BEGIN + +INSERT INTO DOMANDA_DICHIARAZIONI (ID_DOMANDA, ID_ANAG_DICHIARAZIONI ) VALUES (P_ID_DOMANDA, P_ID_ANAG_DICHIARAZIONI); + +END SPDICHIARAZIONISAVE; +/ + + +-- +-- SPLOGSBESAVE (Procedure) -- -- Dependencies: -- LOGS_BE (Table) --- LOGS_BE_ID_SEQ (Sequence) --- DUAL (Synonym) -- STANDARD (Package) +-- SYS_STUB_FOR_PURITY_ANALYSIS (Package) -- -CREATE OR REPLACE TRIGGER LOGS_BE_BI -BEFORE INSERT ON LOGS_BE -FOR EACH ROW +CREATE OR REPLACE PROCEDURE "SPLOGSBESAVE" +( + P_ID_OPERATORE IN VARCHAR2 +, P_IP IN VARCHAR2 +, P_USERNAME IN VARCHAR2 +, P_MODULE IN VARCHAR2 +, P_ACTION IN VARCHAR2 +, P_OPERATION IN VARCHAR2 +, P_INFO IN CLOB +, P_OLDVALUE IN CLOB +) AS BEGIN - SELECT LOGS_BE_ID_SEQ.nextval - INTO :new.ID - FROM dual; -END; + INSERT INTO LOGS_BE + (ID_OPERATORE, IP, USERNAME, DATA, MODULE, ACTION, OPERATION, INFO, OLDVALUE) + VALUES + (P_ID_OPERATORE, P_IP, P_USERNAME, SYSTIMESTAMP, P_MODULE, P_ACTION, P_OPERATION, P_INFO, P_OLDVALUE); +END SPLOGSBESAVE; +/ + + +-- +-- SPLOGSP7MSAVE (Procedure) +-- +-- Dependencies: +-- LOGS_P7M (Table) +-- STANDARD (Package) +-- SYS_STUB_FOR_PURITY_ANALYSIS (Package) +-- +CREATE OR REPLACE PROCEDURE "SPLOGSP7MSAVE" +( + P_ID_DOMANDA IN NUMBER +, P_ERRORE IN VARCHAR2 +, P_FILEPATH IN VARCHAR2 +, P_FASE IN NUMBER +) AS +BEGIN + INSERT INTO LOGS_P7M + (ID_DOMANDA, ERRORE, FILEPATH, DATA, FASE) + VALUES + (P_ID_DOMANDA, P_ERRORE, P_FILEPATH, SYSTIMESTAMP, P_FASE); +END SPLOGSP7MSAVE; +/ + + +-- +-- SPLOGSSAVE (Procedure) +-- +-- Dependencies: +-- LOGS (Table) +-- STANDARD (Package) +-- SYS_STUB_FOR_PURITY_ANALYSIS (Package) +-- +CREATE OR REPLACE PROCEDURE "SPLOGSSAVE" +( + P_ID_OPERATORE IN VARCHAR2 +, P_IP IN VARCHAR2 +, P_USERNAME IN VARCHAR2 +, P_MODULE IN VARCHAR2 +, P_ACTION IN VARCHAR2 +, P_OPERATION IN VARCHAR2 +, P_INFO IN CLOB +, P_OLDVALUE IN CLOB +, P_GUID IN VARCHAR2 +) AS +BEGIN + INSERT INTO LOGS + (ID_OPERATORE, IP, USERNAME, DATA, MODULE, ACTION, OPERATION, INFO, OLDVALUE, IMPERSONIFICAZIONE_GUID) + VALUES + (P_ID_OPERATORE, P_IP, P_USERNAME, SYSTIMESTAMP, P_MODULE, P_ACTION, P_OPERATION, P_INFO, P_OLDVALUE, P_GUID); +END SPLOGSSAVE; +/ + + +-- +-- SP_APPROVA (Procedure) +-- +-- Dependencies: +-- DOMANDA_SCONTI (Table) +-- ESPORTAZIONI (Table) +-- STANDARD (Package) +-- SYS_STUB_FOR_PURITY_ANALYSIS (Package) +-- +CREATE OR REPLACE PROCEDURE "SP_APPROVA" +( + P_NUM_LOTTO INT +) AS + CTR_LOTTO INT; +BEGIN +CTR_LOTTO:=0; + +SELECT LOTTO INTO CTR_LOTTO FROM ESPORTAZIONI WHERE LOTTO = P_NUM_LOTTO; + + +IF CTR_LOTTO > 0 THEN + + UPDATE DOMANDA_SCONTI SET + STATO = 2, + DATA_ESITO = SYSTIMESTAMP + WHERE LOTTO = P_NUM_LOTTO AND STATO = 1; +END IF; + + +END SP_APPROVA; +/ + + +-- +-- SP_DISAPPROVA (Procedure) +-- +-- Dependencies: +-- DOMANDA_SCONTI (Table) +-- ESPORTAZIONI (Table) +-- STANDARD (Package) +-- SYS_STUB_FOR_PURITY_ANALYSIS (Package) +-- +CREATE OR REPLACE PROCEDURE "SP_DISAPPROVA" +( + P_NUM_LOTTO INT +) AS + CTR_LOTTO INT; +BEGIN +CTR_LOTTO:=0; + +SELECT LOTTO INTO CTR_LOTTO FROM ESPORTAZIONI WHERE LOTTO = P_NUM_LOTTO; + + +IF CTR_LOTTO > 0 THEN + + UPDATE DOMANDA_SCONTI SET + STATO = 1, + DATA_ESITO = null, + DATA_ESPORTAZIONE = SYSTIMESTAMP + WHERE LOTTO = P_NUM_LOTTO AND STATO = 2; +END IF; + + +END SP_DISAPPROVA; +/ + + +-- +-- SP_EROGA (Procedure) +-- +-- Dependencies: +-- DOMANDA_SCONTI (Table) +-- ESPORTAZIONI (Table) +-- STANDARD (Package) +-- SYS_STUB_FOR_PURITY_ANALYSIS (Package) +-- +CREATE OR REPLACE PROCEDURE "SP_EROGA" +( + P_NUM_LOTTO INT +) AS + CTR_LOTTO INT; +BEGIN +CTR_LOTTO:=0; + +SELECT LOTTO INTO CTR_LOTTO FROM ESPORTAZIONI WHERE LOTTO = P_NUM_LOTTO; + + +IF CTR_LOTTO > 0 THEN + + UPDATE DOMANDA_SCONTI SET + STATO = 3, + DATA_EROGAZIONE = SYSTIMESTAMP + WHERE LOTTO = P_NUM_LOTTO AND STATO = 2; +END IF; + + +END SP_EROGA; / -- --- LOGS_BI (Trigger) +-- SP_FORZA_RESIDENZA (Procedure) +-- +-- Dependencies: +-- DOMANDA_SCONTI (Table) +-- STANDARD (Package) +-- SYS_STUB_FOR_PURITY_ANALYSIS (Package) +-- +CREATE OR REPLACE PROCEDURE "SP_FORZA_RESIDENZA" +( + P_ID INT, + P_FORZA INT +) AS +BEGIN + +IF P_ID > 0 THEN + + UPDATE DOMANDA_SCONTI SET + FORZA_RESIDENZA = P_FORZA + WHERE ID = P_ID; +END IF; + +END SP_FORZA_RESIDENZA; +/ + + +-- +-- CALCOLAFRAZIONEANNO (Function) +-- +-- Dependencies: +-- DUAL (Synonym) +-- STANDARD (Package) +-- SYS_STUB_FOR_PURITY_ANALYSIS (Package) +-- +CREATE OR REPLACE FUNCTION "CALCOLAFRAZIONEANNO" ( +P_DATA_INIZIO IN DATE, +P_DATA_FINE IN DATE +) RETURN NUMBER IS +ANNI NUMBER; +MESI NUMBER; +GIORNI NUMBER; +PLUS NUMBER; +--DATA_INIZIO DATE; +DATA_FINE DATE; + +BEGIN + ANNI := 0; + MESI := 0; + PLUS := 0; + --DATA_INIZIO := TO_DATE('01/01/2000 00:00:00','dd/mm/YYYY hh24:mi:ss'); + DATA_FINE := P_DATA_FINE+1; -- AGGIUNGO IL GIORNO ESTREMO DEL PERIODO + + /*SELECT + TRUNC (MONTHS_BETWEEN (P_DATA_FINE, P_DATA_INIZIO) / 12), + MOD (TRUNC (MONTHS_BETWEEN (P_DATA_FINE, P_DATA_INIZIO)), 12), + (P_DATA_FINE - ADD_MONTHS (P_DATA_INIZIO, TRUNC(MONTHS_BETWEEN (P_DATA_FINE,P_DATA_INIZIO)))) + INTO ANNI, MESI, GIORNI FROM DUAL;*/ + + WITH T (START_DATE, END_DATE) AS ( + SELECT P_DATA_INIZIO, DATA_FINE FROM DUAL + ) + SELECT + TRUNC(MONTH_DIFF/12), + TRUNC(MOD(MONTH_DIFF, 12)), + (END_DATE - ADD_MONTHS(START_DATE, MONTH_DIFF)) INTO ANNI, MESI, GIORNI + FROM ( + SELECT START_DATE, END_DATE, + TRUNC(MONTHS_BETWEEN(END_DATE, START_DATE)) AS MONTH_DIFF + FROM T + ); + + --GIORNI := GIORNI+1; + + IF GIORNI = 30 THEN + MESI := MESI+1; + IF MESI = 12 THEN + MESI := 0; + ANNI := ANNI+1; + END IF; + END IF; + + + IF MESI >= 6 THEN + PLUS := 1; + ELSE + PLUS := 0; + END IF; + RETURN (ANNI+PLUS); + +END CALCOLAFRAZIONEANNO; +/ + + +-- +-- CONVERTI_OMO_CODICE (Function) +-- +-- Dependencies: +-- STANDARD (Package) +-- +CREATE OR REPLACE FUNCTION "CONVERTI_OMO_CODICE" ( + P_CODICE_FISCALE IN VARCHAR2 +) RETURN VARCHAR2 IS + V_RESULT VARCHAR2(16); -- Variabile per il codice risultante + V_LETTERE CONSTANT VARCHAR2(10) := 'LMNPQRSTUV'; -- Mappa lettere + V_NUMERI CONSTANT VARCHAR2(10) := '0123456789'; -- Mappa numeri + I PLS_INTEGER; -- Contatore per le posizioni + V_CHAR CHAR(1); -- Carattere corrente +BEGIN + -- Copia il codice fiscale originale + V_RESULT := P_CODICE_FISCALE; + + -- Cicla sulle posizioni numeriche del codice fiscale (7, 8) + FOR I IN 7..8 LOOP + -- Controlla se il carattere è una lettera omocodica + V_CHAR := SUBSTR(V_RESULT, I, 1); + IF INSTR(V_LETTERE, V_CHAR) > 0 THEN + -- Sostituisci la lettera con il numero corrispondente + V_RESULT := SUBSTR(V_RESULT, 1, I - 1) || + SUBSTR(V_NUMERI, INSTR(V_LETTERE, V_CHAR), 1) || + SUBSTR(V_RESULT, I + 1); + END IF; + END LOOP; + + -- Cicla sulle posizioni numeriche del codice fiscale (10, 11) + FOR I IN 10..11 LOOP + -- Controlla se il carattere è una lettera omocodica + V_CHAR := SUBSTR(V_RESULT, I, 1); + IF INSTR(V_LETTERE, V_CHAR) > 0 THEN + -- Sostituisci la lettera con il numero corrispondente + V_RESULT := SUBSTR(V_RESULT, 1, I - 1) || + SUBSTR(V_NUMERI, INSTR(V_LETTERE, V_CHAR), 1) || + SUBSTR(V_RESULT, I + 1); + END IF; + END LOOP; + + -- Cicla per le posizioni 13, 14, 15 + FOR I IN 13..15 LOOP + -- Controlla se il carattere è una lettera omocodica + V_CHAR := SUBSTR(V_RESULT, I, 1); + IF INSTR(V_LETTERE, V_CHAR) > 0 THEN + -- Sostituisci la lettera con il numero corrispondente + V_RESULT := SUBSTR(V_RESULT, 1, I - 1) || + SUBSTR(V_NUMERI, INSTR(V_LETTERE, V_CHAR), 1) || + SUBSTR(V_RESULT, I + 1); + END IF; + END LOOP; + + RETURN V_RESULT; +EXCEPTION + -- Gestione errori + WHEN OTHERS THEN + RETURN NULL; -- Restituisci NULL in caso di errore +END CONVERTI_OMO_CODICE; +/ + + +-- +-- FNGETINTEGRAZIONE_POST (Function) +-- +-- Dependencies: +-- DOMANDA_SCONTI (Table) +-- STANDARD (Package) +-- SYS_STUB_FOR_PURITY_ANALYSIS (Package) +-- +CREATE OR REPLACE FUNCTION "FNGETINTEGRAZIONE_POST" ( + P_ID IN NUMBER +) RETURN VARCHAR IS +COSTO_VOLO NUMBER; +SCONTO_RESIDENTI NUMBER; +INTEGRAZIONE NUMBER; +PERC_NATIVITA NUMBER; +MINIMO_COSTO NUMBER; +SCONTO_MASSIMO NUMBER; +T_SCONTO_EROGATO NUMBER; +RESULT VARCHAR(255); +BEGIN + MINIMO_COSTO := 1; + SCONTO_MASSIMO := 250; + PERC_NATIVITA := 50; + + SELECT + COSTO_TRATTA, SCONTO_TOTALE INTO + COSTO_VOLO, T_SCONTO_EROGATO FROM DOMANDA_SCONTI WHERE ID = P_ID; + + + + SCONTO_RESIDENTI := ROUND((COSTO_VOLO*PERC_NATIVITA/100), 2); + + IF SCONTO_RESIDENTI > SCONTO_MASSIMO THEN + SCONTO_RESIDENTI := SCONTO_MASSIMO; + END IF; + + INTEGRAZIONE := SCONTO_RESIDENTI - T_SCONTO_EROGATO ; + + RESULT := INTEGRAZIONE; + + + + RETURN RESULT; + +END FNGETINTEGRAZIONE_POST; +/ + + +-- +-- FNGETINTEGRAZIONE_PRE (Function) +-- +-- Dependencies: +-- ACCOUNT_NUCLEO_FAMILIARE (Table) +-- DOMANDA (Table) +-- DOMANDA_SCONTI (Table) +-- STANDARD (Package) +-- SYS_STUB_FOR_PURITY_ANALYSIS (Package) +-- +CREATE OR REPLACE FUNCTION "FNGETINTEGRAZIONE_PRE" ( + P_ID IN NUMBER +) RETURN VARCHAR IS +T_ID_DOMANDA INT; +T_ISEE INT; +T_PRIORITY NUMBER; +T_BENEFICIARIO VARCHAR(255); +COSTO_VOLO NUMBER; +--TMP_COSTO_VOLO NUMBER; +T_COMPAGNIA_ID INT; +CATEGORIA_PRIORITARIA NUMBER; +SCONTO_RESIDENTI NUMBER; +SCONTO_PRIORITARI NUMBER; +SCONTO_TOTALE NUMBER; +INTEGRAZIONE NUMBER; +PERC_RESIDENTI NUMBER; +PERC_PRIORITARI NUMBER; +MINIMO_COSTO NUMBER; +SCONTO_MASSIMO NUMBER; +CTR_STATO INT; +--CTR_ADESIONE INT; +T_DATA_VOLO DATE; +--T_DATA_ADESIONE DATE; +T_DATA_ACQUISTO DATE; +T_ID_ACCOUNT INT; +T_SCONTO_EROGATO NUMBER; +--NUOVA_TRATTA INT; +RESULT VARCHAR(255); +BEGIN + MINIMO_COSTO := 1; + SCONTO_MASSIMO := 75; + PERC_RESIDENTI := 25; + PERC_PRIORITARI := 25; + SCONTO_PRIORITARI :=0; + --CTR_ADESIONE :=0; + --NUOVA_TRATTA :=0; + + -- verifico se siamo in presenza di una nuova tratta + /*SELECT COUNT(ID) INTO NUOVA_TRATTA FROM DOMANDA_SCONTI WHERE ID = P_ID AND + ( + AEROPORTO_PARTENZA_CODICE NOT IN ('CIA','FCO','LIN','MXP','BGY', 'CTA','PMO','TPS','LMP','PNL','CIY') OR + AEROPORTO_DESTINAZIONE_CODICE NOT IN('CIA','FCO','LIN','MXP','BGY', 'CTA','PMO','TPS','LMP','PNL','CIY') + );*/ + + SELECT + ID_DOMANDA, STATO, CODICE_FISCALE, COSTO_TRATTA, ISEE, + COMPAGNIA_ID, DATA_VOLO, DATA_ACQUISTO, SCONTO_TOTALE, PRIORITY INTO T_ID_DOMANDA, CTR_STATO, T_BENEFICIARIO, + COSTO_VOLO, T_ISEE, T_COMPAGNIA_ID, T_DATA_VOLO, T_DATA_ACQUISTO, T_SCONTO_EROGATO, T_PRIORITY FROM DOMANDA_SCONTI WHERE ID = P_ID; + -- se lo stato della richiesta di sconto è = 0 + IF CTR_STATO = 0 THEN + SELECT ISEE, ID_ACCOUNT INTO T_ISEE, T_ID_ACCOUNT FROM DOMANDA WHERE ID = T_ID_DOMANDA; + SELECT PRIORITY INTO T_PRIORITY FROM ACCOUNT_NUCLEO_FAMILIARE WHERE CODICE_FISCALE = T_BENEFICIARIO AND ID_ACCOUNT = T_ID_ACCOUNT; + + END IF; + + /*IF T_COMPAGNIA_ID > 0 THEN + SELECT ADESIONE, DATA_ADESIONE INTO CTR_ADESIONE, T_DATA_ADESIONE FROM ANAG_COMPAGNIE WHERE ID = T_COMPAGNIA_ID; + END IF;*/ + + IF T_PRIORITY > 0 OR T_ISEE > 0 THEN + CATEGORIA_PRIORITARIA := 1; + ELSE + CATEGORIA_PRIORITARIA := 0; + END IF; + + + + SCONTO_RESIDENTI := ROUND((COSTO_VOLO*PERC_RESIDENTI/100), 2); + + + + IF CATEGORIA_PRIORITARIA = 1 THEN + SCONTO_PRIORITARI := ROUND((COSTO_VOLO*PERC_PRIORITARI/100), 2); + END IF; + + + SCONTO_TOTALE := SCONTO_RESIDENTI+SCONTO_PRIORITARI; + + IF SCONTO_TOTALE > SCONTO_MASSIMO THEN + SCONTO_TOTALE := SCONTO_MASSIMO; + END IF; + + INTEGRAZIONE := (SCONTO_TOTALE)-T_SCONTO_EROGATO; + + + + RESULT := INTEGRAZIONE; + + + + RETURN RESULT; + +END FNGETINTEGRAZIONE_PRE; +/ + + +-- +-- FNGETSCONTO_MANUALE (Function) +-- +-- Dependencies: +-- ACCOUNT_NUCLEO_FAMILIARE (Table) +-- ANAG_COMPAGNIE (Table) +-- DOMANDA (Table) +-- DOMANDA_SCONTI (Table) +-- STANDARD (Package) +-- SYS_STUB_FOR_PURITY_ANALYSIS (Package) +-- +CREATE OR REPLACE FUNCTION "FNGETSCONTO_MANUALE" ( + P_ID IN NUMBER, + P_BY_PASS_STATO IN INT, + P_FORZARESIDENZA IN INT +) RETURN VARCHAR IS +T_ID_DOMANDA INT; +T_ISEE INT; +T_PRIORITY NUMBER; +T_BENEFICIARIO VARCHAR(255); +COSTO_VOLO NUMBER; +TMP_COSTO_VOLO NUMBER; +T_COMPAGNIA_ID INT; +CATEGORIA_PRIORITARIA NUMBER; +SCONTO_RESIDENTI NUMBER; +SCONTO_PRIORITARI NUMBER; +SCONTO_TOTALE NUMBER; +PERC_RESIDENTI NUMBER; +PERC_PRIORITARI NUMBER; +MINIMO_COSTO NUMBER; +SCONTO_MASSIMO NUMBER; +SCONTO_MASSIMO_RESIDENTI NUMBER; +CTR_STATO INT; +CTR_ADESIONE INT; +T_DATA_VOLO DATE; +T_DATA_ADESIONE DATE; +T_DATA_ACQUISTO DATE; +T_ID_ACCOUNT INT; +NUOVA_TRATTA INT; +T_FORZA_RESIDENZA INT; +RESULT VARCHAR(255); +BEGIN + MINIMO_COSTO := 1; + SCONTO_MASSIMO := 75; + SCONTO_MASSIMO_RESIDENTI :=37.50; + PERC_RESIDENTI := 25; + PERC_PRIORITARI := 25; + SCONTO_PRIORITARI :=0; + CTR_ADESIONE :=0; + NUOVA_TRATTA :=0; + T_FORZA_RESIDENZA :=0; + + -- verifico se siamo in presenza di una nuova tratta + SELECT COUNT(ID) INTO NUOVA_TRATTA FROM DOMANDA_SCONTI WHERE ID = P_ID AND + ( + AEROPORTO_PARTENZA_CODICE NOT IN ('CIA','FCO','LIN','MXP','BGY', 'CTA','PMO','TPS','LMP','PNL','CIY') OR + AEROPORTO_DESTINAZIONE_CODICE NOT IN('CIA','FCO','LIN','MXP','BGY', 'CTA','PMO','TPS','LMP','PNL','CIY') + ); + + SELECT + ID_DOMANDA, STATO, CODICE_FISCALE, COSTO_TRATTA, ISEE, + COMPAGNIA_ID, DATA_VOLO, DATA_ACQUISTO, FORZA_RESIDENZA, PRIORITY INTO T_ID_DOMANDA, CTR_STATO, T_BENEFICIARIO, + COSTO_VOLO, T_ISEE, T_COMPAGNIA_ID, T_DATA_VOLO, T_DATA_ACQUISTO, T_FORZA_RESIDENZA, T_PRIORITY FROM DOMANDA_SCONTI WHERE ID = P_ID; + -- se lo stato della richiesta di sconto è = 0 + IF CTR_STATO = 0 AND P_BY_PASS_STATO = 0 THEN + SELECT ISEE, ID_ACCOUNT INTO T_ISEE, T_ID_ACCOUNT FROM DOMANDA WHERE ID = T_ID_DOMANDA; + SELECT PRIORITY INTO T_PRIORITY FROM ACCOUNT_NUCLEO_FAMILIARE WHERE CODICE_FISCALE = T_BENEFICIARIO AND ID_ACCOUNT = T_ID_ACCOUNT; + + END IF; + + IF T_COMPAGNIA_ID > 0 THEN + SELECT ADESIONE, DATA_ADESIONE INTO CTR_ADESIONE, T_DATA_ADESIONE FROM ANAG_COMPAGNIE WHERE ID = T_COMPAGNIA_ID; + END IF; + + IF T_PRIORITY > 0 OR T_ISEE > 0 THEN + CATEGORIA_PRIORITARIA := 1; + ELSE + CATEGORIA_PRIORITARIA := 0; + SCONTO_MASSIMO := SCONTO_MASSIMO_RESIDENTI; + END IF; + + IF P_FORZARESIDENZA = 1 THEN + T_FORZA_RESIDENZA := 1; + ELSE + T_FORZA_RESIDENZA := T_FORZA_RESIDENZA; + END IF; + + -- SE LA COMPAGNIA HA ADERITO ALLO SCONTO DEL 25% GIA APPLICATO AL PREZZO DEL BIGLIETTO NON CONSIDERO LO SCONTO RESIDENTI + IF NUOVA_TRATTA = 0 AND T_FORZA_RESIDENZA = 0 AND CTR_ADESIONE = 1 AND T_DATA_ADESIONE <= T_DATA_ACQUISTO THEN + -- IF CTR_ADESIONE = 1 AND T_DATA_ADESIONE <= T_DATA_ACQUISTO THEN + TMP_COSTO_VOLO := (COSTO_VOLO/(1-(PERC_RESIDENTI/100))); + SCONTO_MASSIMO := SCONTO_MASSIMO_RESIDENTI; + IF (TMP_COSTO_VOLO - COSTO_VOLO) > SCONTO_MASSIMO THEN + COSTO_VOLO := (COSTO_VOLO+SCONTO_MASSIMO); + ELSE + COSTO_VOLO := (COSTO_VOLO/(1-(PERC_RESIDENTI/100))); + END IF; + + SCONTO_RESIDENTI := 0; + ELSE + SCONTO_RESIDENTI := ROUND((COSTO_VOLO*PERC_RESIDENTI/100), 2); + END IF; + + + IF CATEGORIA_PRIORITARIA = 1 THEN + SCONTO_PRIORITARI := ROUND((COSTO_VOLO*PERC_PRIORITARI/100), 2); + END IF; + + + SCONTO_TOTALE := SCONTO_RESIDENTI+SCONTO_PRIORITARI; + + IF SCONTO_TOTALE > SCONTO_MASSIMO THEN + SCONTO_TOTALE := SCONTO_MASSIMO; + END IF; + + + RESULT := SCONTO_TOTALE; + + + + RETURN RESULT; + +END FNGETSCONTO_MANUALE; +/ + + +-- +-- FNGETSCONTO_OLD (Function) +-- +-- Dependencies: +-- ACCOUNT_NUCLEO_FAMILIARE (Table) +-- ANAG_COMPAGNIE (Table) +-- DOMANDA (Table) +-- DOMANDA_SCONTI (Table) +-- STANDARD (Package) +-- +CREATE OR REPLACE FUNCTION "FNGETSCONTO_OLD" ( + P_ID IN NUMBER, + P_TIPO IN VARCHAR +) RETURN VARCHAR IS +T_ID_DOMANDA INT; +T_ISEE NUMBER; +T_STUDENTE NUMBER; +T_DISABILE NUMBER; +T_BENEFICIARIO VARCHAR(255); +COSTO_VOLO NUMBER; +T_COMPAGNIA_ID INT; +CATEGORIA_PRIORITARIA NUMBER; +SCONTO_RESIDENTI NUMBER; +SCONTO_PRIORITARI NUMBER; +SCONTO_TOTALE NUMBER; +TRATTA_SCONTATA NUMBER; +CONTRIBUTO_TEORICO NUMBER; +CONTRIBUTO_REALE NUMBER; +PERC_RESIDENTI NUMBER; +PERC_PRIORITARI NUMBER; +MINIMO_COSTO NUMBER; +COSTO_MED NUMBER; +SCONTO_MASSIMO NUMBER; +CTR_STATO INT; +CTR_ADESIONE INT; +T_DATA_VOLO DATE; +T_DATA_ADESIONE DATE; +SCONTO_RESIDENTI_ADESIONE NUMBER; +COSTO_FINALE_VOLO NUMBER; +CTR_ADESIONE_SC_MAX NUMBER; +CONTRIBUTO_REALE_ADESIONE NUMBER; +RESULT VARCHAR(255); +BEGIN + MINIMO_COSTO := 50; + COSTO_MED := 62.5; + SCONTO_MASSIMO := 75; + PERC_RESIDENTI := 25; + PERC_PRIORITARI := 25; + SCONTO_PRIORITARI :=0; + CTR_ADESIONE :=0; + SCONTO_RESIDENTI_ADESIONE := 0; + + SELECT + ID_DOMANDA, STATO, CODICE_FISCALE, STUDENTE, DISABILE, COSTO_TRATTA, ISEE, + COMPAGNIA_ID, DATA_VOLO INTO T_ID_DOMANDA, CTR_STATO, T_BENEFICIARIO, T_STUDENTE, T_DISABILE, + COSTO_VOLO, T_ISEE, T_COMPAGNIA_ID, T_DATA_VOLO FROM DOMANDA_SCONTI WHERE ID = P_ID; + -- se lo stato della richiesta di sconto è = 0 + IF CTR_STATO = 0 THEN + SELECT STUDENTE, DISABILE INTO T_STUDENTE, T_DISABILE FROM ACCOUNT_NUCLEO_FAMILIARE WHERE CODICE_FISCALE = T_BENEFICIARIO; + SELECT ISEE INTO T_ISEE FROM DOMANDA WHERE ID = T_ID_DOMANDA; + END IF; + + IF T_COMPAGNIA_ID > 0 THEN + SELECT ADESIONE, DATA_ADESIONE INTO CTR_ADESIONE, T_DATA_ADESIONE FROM ANAG_COMPAGNIE WHERE ID = T_COMPAGNIA_ID; + END IF; + + IF T_STUDENTE > 0 OR T_DISABILE > 0 OR T_ISEE > 0 THEN + CATEGORIA_PRIORITARIA := 1; + ELSE + CATEGORIA_PRIORITARIA := 0; + END IF; + + + -- SE LA COMPAGNIA HA ADERITO ALLO SCONTO DEL 25% GIA APPLICATO AL PREZZO DEL BIGLIETTO NON CONSIDERO LO SCONTO RESIDENTI + IF CTR_ADESIONE = 1 AND T_DATA_ADESIONE <= T_DATA_VOLO THEN + COSTO_VOLO := (COSTO_VOLO/(1-(PERC_RESIDENTI/100))); + SCONTO_RESIDENTI := 0; + ELSE + SCONTO_RESIDENTI := (COSTO_VOLO*PERC_RESIDENTI/100); + END IF; + + + IF CATEGORIA_PRIORITARIA = 1 THEN + SCONTO_PRIORITARI := (COSTO_VOLO*PERC_PRIORITARI/100); + END IF; + + + SCONTO_TOTALE := SCONTO_RESIDENTI+SCONTO_PRIORITARI; + + TRATTA_SCONTATA:= COSTO_VOLO-SCONTO_TOTALE; + CONTRIBUTO_TEORICO := COSTO_VOLO-TRATTA_SCONTATA; + + IF (COSTO_VOLO - CONTRIBUTO_TEORICO) < MINIMO_COSTO THEN + CONTRIBUTO_REALE := (COSTO_VOLO - MINIMO_COSTO); + ELSE + IF CONTRIBUTO_TEORICO > SCONTO_MASSIMO THEN + CONTRIBUTO_REALE := SCONTO_MASSIMO; + ELSE + CONTRIBUTO_REALE := CONTRIBUTO_TEORICO; + END IF; + END IF; + + /*CASE + WHEN (COSTO_VOLO - CONTRIBUTO_TEORICO) < MINIMO_COSTO THEN + CONTRIBUTO_REALE := (COSTO_VOLO - MINIMO_COSTO); + WHEN (COSTO_VOLO - CONTRIBUTO_TEORICO) > MINIMO_COSTO THEN --AND (COSTO_VOLO - CONTRIBUTO_TEORICO) < SCONTO_MASSIMO + CONTRIBUTO_REALE := CONTRIBUTO_TEORICO; + WHEN CONTRIBUTO_TEORICO > SCONTO_MASSIMO THEN + CONTRIBUTO_REALE := SCONTO_MASSIMO; + ELSE + CONTRIBUTO_REALE := 0; + END CASE;*/ + + IF CONTRIBUTO_REALE < 0 THEN + CONTRIBUTO_REALE :=0; + END IF; + + COSTO_FINALE_VOLO := (COSTO_VOLO - CONTRIBUTO_REALE); + -- SE LA COMPAGNIA HA ADERITO ALLO SCONTO DEL 25% GIA APPLICATO AL PREZZO DEL BIGLIETTO + IF CTR_ADESIONE = 1 AND T_DATA_ADESIONE <= T_DATA_VOLO THEN + + COSTO_FINALE_VOLO := (COSTO_VOLO - CONTRIBUTO_REALE); + + IF (COSTO_FINALE_VOLO-CONTRIBUTO_REALE)>MINIMO_COSTO THEN + CTR_ADESIONE_SC_MAX := CONTRIBUTO_REALE; + ELSE + CTR_ADESIONE_SC_MAX := COSTO_FINALE_VOLO - MINIMO_COSTO; + END IF; + + IF (CTR_ADESIONE_SC_MAX+CONTRIBUTO_REALE) > SCONTO_MASSIMO THEN + CONTRIBUTO_REALE_ADESIONE := SCONTO_MASSIMO-CONTRIBUTO_REALE; + ELSE + CONTRIBUTO_REALE_ADESIONE := CTR_ADESIONE_SC_MAX; + END IF; + + CONTRIBUTO_REALE:= CONTRIBUTO_REALE_ADESIONE; + + IF CONTRIBUTO_REALE < 0 THEN + CONTRIBUTO_REALE :=0; + END IF; + + END IF; + + + + CASE WHEN P_TIPO = 'CATEGORIA_PRIORITARIA' THEN + -- Restituisce solo L'INCIDENZA + RESULT := CATEGORIA_PRIORITARIA; + WHEN P_TIPO = 'SCONTO_TOTALE' THEN + -- Restituisce solo PERCENTUALE CONTRIBUTO + RESULT := SCONTO_TOTALE; + WHEN P_TIPO = 'CONTRIBUTO_TEORICO' THEN + -- Restituisce solo CONTRIBUTO TEORICO + RESULT := CONTRIBUTO_TEORICO; + WHEN P_TIPO = 'SCONTO_PRIORITARI' THEN + -- Restituisce solo CONTRIBUTO TEORICO + RESULT := SCONTO_PRIORITARI; + WHEN P_TIPO = 'TRATTA_SCONTATA' THEN + -- Restituisce solo CONTRIBUTO TEORICO + RESULT := TRATTA_SCONTATA; + ELSE + RESULT := CONTRIBUTO_REALE; + + END CASE; + + RETURN RESULT; + +END FNGETSCONTO_OLD; +/ + + +-- +-- FNGETSCONTO_POST (Function) +-- +-- Dependencies: +-- DOMANDA_SCONTI (Table) +-- STANDARD (Package) +-- SYS_STUB_FOR_PURITY_ANALYSIS (Package) +-- +CREATE OR REPLACE FUNCTION "FNGETSCONTO_POST" ( + P_ID IN NUMBER, + P_TIPO IN VARCHAR +) RETURN VARCHAR IS + +COSTO_VOLO NUMBER; +PERC_NATIVITA NUMBER; +SCONTO_NATIVITA NUMBER; +SCONTO_TOTALE NUMBER; +MINIMO_COSTO NUMBER; +SCONTO_MASSIMO NUMBER; +RESULT VARCHAR(255); +BEGIN + MINIMO_COSTO := 1; + SCONTO_MASSIMO := 250; + PERC_NATIVITA := 50; + + SELECT + COSTO_TRATTA INTO + COSTO_VOLO FROM DOMANDA_SCONTI WHERE ID = P_ID; + + SCONTO_NATIVITA := ROUND((COSTO_VOLO*PERC_NATIVITA/100), 2); + + SCONTO_TOTALE := SCONTO_NATIVITA; + + IF SCONTO_TOTALE > SCONTO_MASSIMO THEN + SCONTO_TOTALE := SCONTO_MASSIMO; + END IF; + + + RESULT := SCONTO_TOTALE; + + + RETURN RESULT; + +END FNGETSCONTO_POST; +/ + + +-- +-- FNGETSCONTO_PRE (Function) +-- +-- Dependencies: +-- ACCOUNT_NUCLEO_FAMILIARE (Table) +-- ANAG_COMPAGNIE (Table) +-- DOMANDA (Table) +-- DOMANDA_SCONTI (Table) +-- STANDARD (Package) +-- SYS_STUB_FOR_PURITY_ANALYSIS (Package) +-- +CREATE OR REPLACE FUNCTION "FNGETSCONTO_PRE" ( + P_ID IN NUMBER, + P_TIPO IN VARCHAR +) RETURN VARCHAR IS +T_ID_DOMANDA INT; +T_ISEE INT; +T_PRIORITY NUMBER; +T_BENEFICIARIO VARCHAR(255); +COSTO_VOLO NUMBER; +TMP_COSTO_VOLO NUMBER; +T_COMPAGNIA_ID INT; +CATEGORIA_PRIORITARIA NUMBER; +SCONTO_RESIDENTI NUMBER; +SCONTO_PRIORITARI NUMBER; +SCONTO_TOTALE NUMBER; +PERC_RESIDENTI NUMBER; +PERC_PRIORITARI NUMBER; +MINIMO_COSTO NUMBER; +SCONTO_MASSIMO NUMBER; +SCONTO_MASSIMO_RESIDENTI NUMBER; +CTR_STATO INT; +CTR_ADESIONE INT; +T_DATA_VOLO DATE; +T_DATA_ADESIONE DATE; +T_DATA_ACQUISTO DATE; +T_ID_ACCOUNT INT; +NUOVA_TRATTA INT; +T_FORZA_RESIDENZA INT; +T_COMPAGNIA_NOSCORPORO INT; +RESULT VARCHAR(255); +BEGIN + MINIMO_COSTO := 1; + SCONTO_MASSIMO := 75; + SCONTO_MASSIMO_RESIDENTI :=37.50; + PERC_RESIDENTI := 25; + PERC_PRIORITARI := 25; + SCONTO_PRIORITARI :=0; + CTR_ADESIONE :=0; + NUOVA_TRATTA :=0; + T_FORZA_RESIDENZA :=0; + T_COMPAGNIA_NOSCORPORO :=28; -- ITA AIRWAYS non deve essere effettualo lo scorporo dello sconto residenti + -- verifico se siamo in presenza di una nuova tratta + SELECT COUNT(ID) INTO NUOVA_TRATTA FROM DOMANDA_SCONTI WHERE ID = P_ID AND + ( + AEROPORTO_PARTENZA_CODICE NOT IN ('CIA','FCO','LIN','MXP','BGY', 'CTA','PMO','TPS','LMP','PNL','CIY') OR + AEROPORTO_DESTINAZIONE_CODICE NOT IN('CIA','FCO','LIN','MXP','BGY', 'CTA','PMO','TPS','LMP','PNL','CIY') + ); + + SELECT + ID_DOMANDA, STATO, CODICE_FISCALE, COSTO_TRATTA, ISEE, + COMPAGNIA_ID, DATA_VOLO, DATA_ACQUISTO, FORZA_RESIDENZA, PRIORITY INTO T_ID_DOMANDA, CTR_STATO, T_BENEFICIARIO, + COSTO_VOLO, T_ISEE, T_COMPAGNIA_ID, T_DATA_VOLO, T_DATA_ACQUISTO, T_FORZA_RESIDENZA, T_PRIORITY FROM DOMANDA_SCONTI WHERE ID = P_ID; + -- se lo stato della richiesta di sconto è = 0 + IF CTR_STATO = 0 THEN + SELECT ISEE, ID_ACCOUNT INTO T_ISEE, T_ID_ACCOUNT FROM DOMANDA WHERE ID = T_ID_DOMANDA; + SELECT PRIORITY INTO T_PRIORITY FROM ACCOUNT_NUCLEO_FAMILIARE WHERE CODICE_FISCALE = T_BENEFICIARIO AND ID_ACCOUNT = T_ID_ACCOUNT; + + END IF; + + IF T_COMPAGNIA_ID > 0 THEN + SELECT ADESIONE, DATA_ADESIONE INTO CTR_ADESIONE, T_DATA_ADESIONE FROM ANAG_COMPAGNIE WHERE ID = T_COMPAGNIA_ID; + END IF; + + IF T_PRIORITY > 0 OR T_ISEE > 0 THEN + CATEGORIA_PRIORITARIA := 1; + ELSE + CATEGORIA_PRIORITARIA := 0; + SCONTO_MASSIMO := SCONTO_MASSIMO_RESIDENTI; + END IF; + + + -- SE LA COMPAGNIA HA ADERITO ALLO SCONTO DEL 25% GIA APPLICATO AL PREZZO DEL BIGLIETTO NON CONSIDERO LO SCONTO RESIDENTI + IF NUOVA_TRATTA = 0 AND T_FORZA_RESIDENZA = 0 AND CTR_ADESIONE = 1 AND T_DATA_ADESIONE <= T_DATA_ACQUISTO THEN + -- IF CTR_ADESIONE = 1 AND T_DATA_ADESIONE <= T_DATA_ACQUISTO THEN + SCONTO_MASSIMO := SCONTO_MASSIMO_RESIDENTI; + SCONTO_RESIDENTI := 0; + IF (T_COMPAGNIA_NOSCORPORO != T_COMPAGNIA_ID) THEN + TMP_COSTO_VOLO := (COSTO_VOLO/(1-(PERC_RESIDENTI/100))); + IF (TMP_COSTO_VOLO - COSTO_VOLO) > SCONTO_MASSIMO THEN + COSTO_VOLO := (COSTO_VOLO+SCONTO_MASSIMO); + ELSE + COSTO_VOLO := (COSTO_VOLO/(1-(PERC_RESIDENTI/100))); + END IF; + END IF; + ELSE + SCONTO_RESIDENTI := ROUND((COSTO_VOLO*PERC_RESIDENTI/100), 2); + END IF; + + + IF CATEGORIA_PRIORITARIA = 1 THEN + SCONTO_PRIORITARI := ROUND((COSTO_VOLO*PERC_PRIORITARI/100), 2); + END IF; + + + SCONTO_TOTALE := SCONTO_RESIDENTI+SCONTO_PRIORITARI; + + IF SCONTO_TOTALE > SCONTO_MASSIMO THEN + SCONTO_TOTALE := SCONTO_MASSIMO; + END IF; + + CASE WHEN P_TIPO = 'CATEGORIA_PRIORITARIA' THEN + -- Restituisce solo L'INCIDENZA + RESULT := CATEGORIA_PRIORITARIA; + WHEN P_TIPO = 'SCONTO_PRIORITARI' THEN + + RESULT := SCONTO_PRIORITARI; + WHEN P_TIPO = 'SCONTO_RESIDENTI' THEN + + RESULT := SCONTO_RESIDENTI; + ELSE + RESULT := SCONTO_TOTALE; + + END CASE; + + RETURN RESULT; + +END FNGETSCONTO_PRE; +/ + + +-- +-- GETPERIODOANNIMESIGIORNI (Function) +-- +-- Dependencies: +-- DUAL (Synonym) +-- STANDARD (Package) +-- SYS_STUB_FOR_PURITY_ANALYSIS (Package) +-- +CREATE OR REPLACE FUNCTION "GETPERIODOANNIMESIGIORNI" ( +P_DATA_INIZIO IN DATE, +P_DATA_FINE IN DATE, +P_TIPO IN VARCHAR +) RETURN NUMBER IS +ANNI NUMBER; +MESI NUMBER; +GIORNI NUMBER; +PLUS NUMBER; +RESULT NUMBER; +DATA_FINE DATE; + +BEGIN + ANNI := 0; + MESI := 0; + GIORNI := 0; + PLUS := 0; + RESULT := 0; + --DATA_INIZIO := TO_DATE('01/01/2000 00:00:00','dd/mm/YYYY hh24:mi:ss'); + DATA_FINE := P_DATA_FINE; -- AGGIUNGO IL GIORNO ESTREMO DEL PERIODO + + /*SELECT + TRUNC (MONTHS_BETWEEN (P_DATA_FINE, P_DATA_INIZIO) / 12), + MOD (TRUNC (MONTHS_BETWEEN (P_DATA_FINE, P_DATA_INIZIO)), 12), + (P_DATA_FINE - ADD_MONTHS (P_DATA_INIZIO, TRUNC(MONTHS_BETWEEN (P_DATA_FINE,P_DATA_INIZIO)))) + INTO ANNI, MESI, GIORNI FROM DUAL; + */ + WITH T (START_DATE, END_DATE) AS ( + SELECT P_DATA_INIZIO, DATA_FINE FROM DUAL + ) + SELECT + TRUNC(MONTH_DIFF/12), + TRUNC(MOD(MONTH_DIFF, 12)), + TRUNC(END_DATE - ADD_MONTHS(START_DATE, MONTH_DIFF)) INTO ANNI, MESI, GIORNI + FROM ( + SELECT START_DATE, END_DATE, + TRUNC(MONTHS_BETWEEN(END_DATE, START_DATE)) AS MONTH_DIFF + FROM T + ); + --GIORNI := GIORNI+1; + + IF GIORNI = 30 THEN + GIORNI := 0; + MESI := (MESI + 1); + IF MESI = 12 THEN + MESI := 0; + ANNI := (ANNI + 1); + END IF; + + END IF; + + + + CASE WHEN P_TIPO = 'ANNI' THEN + -- Restituisce solo il numero di anni + RESULT := ANNI; + WHEN P_TIPO = 'MESI' THEN + -- Restituisce solo il numero di mesi + RESULT := MESI; + WHEN P_TIPO = 'GIORNI' THEN + -- Restituisce solo il numero di giorni + RESULT := GIORNI; + ELSE + -- Restituisce solo il numero di anni frazionati sommando + IF MESI >= 6 THEN + PLUS := 1; + ELSE + PLUS := 0; + END IF; + RESULT := (ANNI+PLUS); + + END CASE; + + RETURN RESULT ; + +END GETPERIODOANNIMESIGIORNI; +/ + + +-- +-- GET_IDENTIFICATIVO (Function) +-- +-- Dependencies: +-- STANDARD (Package) +-- +CREATE OR REPLACE FUNCTION "GET_IDENTIFICATIVO" ( +P_ID IN NUMBER, +P_DATA_REGISTRAZIONE IN TIMESTAMP +) +RETURN VARCHAR2 IS + IDENTIFICATIVO VARCHAR2(30); +BEGIN + IDENTIFICATIVO := 'D'||TO_CHAR(P_DATA_REGISTRAZIONE,'YYYYmm')||LPAD(to_char(P_ID), 6, '0' ); + RETURN IDENTIFICATIVO; +END; +/ + + +-- +-- VIEW_EXPORT_SCONTI_OPT (View) +-- +-- Dependencies: +-- ACCOUNT_NUCLEO_FAMILIARE (Table) +-- DOMANDA (Table) +-- DOMANDA_SCONTI (Table) +-- DOMANDA_SCONTI_INTEGRAZIONE (Table) +-- FNGETSCONTO_MANUALE (Function) +-- +CREATE OR REPLACE FORCE VIEW VIEW_EXPORT_SCONTI_OPT +(ID, ID_DOMANDA, COGNOME, NOME, DATA_NASCITA, + RAPPORTO_PARENTELA, CODICE_FISCALE, COMUNE_RESIDENZA, PROV_RESIDENZA, CAP_RESIDENZA, + COMPAGNIA_AEREA, NUMERO_VOLO, DATA_VOLO, COSTO_TRATTA, AEROPORTO_PARTENZA, + AEROPORTO_PARTENZA_CODICE, AEROPORTO_DESTINAZIONE, AEROPORTO_DESTINAZIONE_CODICE, FILEPATH_BIGLIETTO, FILEPATH_CARTAIMBARCO, + ISEE, DATA_RILASCIO_ISEE, IBAN, ISTITUTO_CREDITO, FILIALE_CREDITO, + STATO, DATA_REGISTRAZIONE, ID_UID_FIREBASE, DATA_ESPORTAZIONE, DATA_ESITO, + DATA_EROGAZIONE, NOTE, SCONTO_TOTALE, COMPAGNIA_ID, DATA_ACQUISTO, + LOTTO, FLAG, PRIORITA, ID_ACCOUNT, FORZA_RESIDENZA, + CITTADINANZA, LOTTO_INTEGRAZIONE) +BEQUEATH DEFINER +AS +WITH + StatoCalcolato (ID, ID_DOMANDA, STATO_ATTIVO) + AS + (SELECT ID, + ID_DOMANDA, + CASE WHEN STATO >= 1 THEN 1 ELSE 0 END AS STATO_ATTIVO + FROM DOMANDA_SCONTI) + SELECT DS.ID, + DS.ID_DOMANDA, + DS.COGNOME, + DS.NOME, + DS.DATA_NASCITA, + DS.RAPPORTO_PARENTELA, + DS.CODICE_FISCALE, + CASE + WHEN DS.STATO >= 1 THEN DS.COMUNE_RESIDENZA + ELSE AF.COMUNE_RESIDENZA + END + AS COMUNE_RESIDENZA, + CASE + WHEN DS.STATO >= 1 THEN DS.PROV_RESIDENZA + ELSE AF.PROV_RESIDENZA + END + AS PROV_RESIDENZA, + CASE + WHEN DS.STATO >= 1 THEN DS.CAP_RESIDENZA + ELSE AF.CAP_RESIDENZA + END + AS CAP_RESIDENZA, + DS.COMPAGNIA_AEREA, + DS.NUMERO_VOLO, + DS.DATA_VOLO, + DS.COSTO_TRATTA, + DS.AEROPORTO_PARTENZA, + DS.AEROPORTO_PARTENZA_CODICE, + DS.AEROPORTO_DESTINAZIONE, + DS.AEROPORTO_DESTINAZIONE_CODICE, + DS.FILEPATH_BIGLIETTO, + DS.FILEPATH_CARTAIMBARCO, + CASE WHEN DS.STATO >= 1 THEN DS.ISEE ELSE D.ISEE END + AS ISEE, + CASE + WHEN DS.STATO >= 1 THEN DS.DATA_RILASCIO_ISEE + ELSE D.DATA_RILASCIO_ISEE + END + AS DATA_RILASCIO_ISEE, + CASE WHEN DS.STATO >= 1 THEN DS.IBAN ELSE D.IBAN END + AS IBAN, + CASE + WHEN DS.STATO >= 1 THEN DS.ISTITUTO_CREDITO + ELSE D.ISTITUTO_CREDITO + END + AS ISTITUTO_CREDITO, + CASE + WHEN DS.STATO >= 1 THEN DS.FILIALE_CREDITO + ELSE D.FILIALE_CREDITO + END + AS FILIALE_CREDITO, + DS.STATO, + DS.DATA_REGISTRAZIONE, + DS.ID_UID_FIREBASE, + DS.DATA_ESPORTAZIONE, + DS.DATA_ESITO, + DS.DATA_EROGAZIONE, + DS.NOTE, + TO_NUMBER (FNGETSCONTO_MANUALE (DS.ID, 1, 0)) + AS SCONTO_TOTALE, + DS.COMPAGNIA_ID, + DS.DATA_ACQUISTO, + DS.LOTTO, + CASE WHEN DS.STATO >= 1 THEN AF.FLAG ELSE DS.FLAG END + AS FLAG, + CASE WHEN DS.STATO >= 1 THEN DS.PRIORITY ELSE AF.PRIORITY END + AS PRIORITA, + D.ID_ACCOUNT, + DS.FORZA_RESIDENZA, + DS.CITTADINANZA, + DI.LOTTO_INTEGRAZIONE + FROM DOMANDA_SCONTI DS + LEFT JOIN DOMANDA_SCONTI_INTEGRAZIONE DI + ON DI.ID_RICHIESTA = DS.ID + INNER JOIN DOMANDA D ON DS.ID_DOMANDA = D.ID + INNER JOIN ACCOUNT_NUCLEO_FAMILIARE AF + ON AF.ID_ACCOUNT = D.ID_ACCOUNT + AND DS.CODICE_FISCALE = AF.CODICE_FISCALE; + + +-- +-- VIEW_TRATTE (View) +-- +-- Dependencies: +-- AEROPORTI (Table) +-- +CREATE OR REPLACE FORCE VIEW VIEW_TRATTE +(A_CODICE, A_NOME, R_CODICE, R_NOME) +BEQUEATH DEFINER +AS +SELECT A.CODICE AS A_CODICE, A.NOME AS A_NOME, R.CODICE AS R_CODICE, R.NOME AS R_NOME +FROM AEROPORTI A +CROSS JOIN AEROPORTI R +WHERE A.REGIONE = 19 AND R.REGIONE != 19 +UNION +SELECT R.CODICE AS A_CODICE, R.NOME AS A_NOME, A.CODICE AS R_CODICE, A.NOME AS R_NOME +FROM AEROPORTI R +CROSS JOIN AEROPORTI A +WHERE A.REGIONE = 19 AND R.REGIONE != 19; + + +-- +-- ACCOUNT_ANAGRAFICA_BI (Trigger) +-- +-- Dependencies: +-- ACCOUNT_ANAGRAFICA (Table) +-- ACCOUNT_ANAG_ID_SEQ (Sequence) +-- DUAL (Synonym) +-- STANDARD (Package) +-- +CREATE OR REPLACE TRIGGER ACCOUNT_ANAGRAFICA_BI +BEFORE INSERT ON ACCOUNT_ANAGRAFICA +FOR EACH ROW +BEGIN + SELECT ACCOUNT_ANAG_ID_SEQ.nextval + INTO :new.ID + FROM dual; +END; +/ + + +-- +-- ACCOUNT_BI (Trigger) +-- +-- Dependencies: +-- ACCOUNT (Table) +-- ACCOUNT_ID_SEQ (Sequence) +-- DUAL (Synonym) +-- STANDARD (Package) +-- +CREATE OR REPLACE TRIGGER ACCOUNT_BI +BEFORE INSERT ON ACCOUNT +FOR EACH ROW +BEGIN + SELECT ACCOUNT_ID_SEQ.nextval + INTO :new.ID + FROM dual; +END; +/ + + +-- +-- ACCOUNT_NUCLEO_BI (Trigger) +-- +-- Dependencies: +-- ACCOUNT_NUCLEO_FAMILIARE (Table) +-- ACCOUNT_NUCLEO_ID_SEQ (Sequence) +-- DUAL (Synonym) +-- STANDARD (Package) +-- +CREATE OR REPLACE TRIGGER ACCOUNT_NUCLEO_BI +BEFORE INSERT ON ACCOUNT_NUCLEO_FAMILIARE +FOR EACH ROW +BEGIN + SELECT ACCOUNT_NUCLEO_ID_SEQ.nextval + INTO :new.ID + FROM dual; +END; +/ + + +-- +-- ALLEGATI_BI (Trigger) +-- +-- Dependencies: +-- ALLEGATI (Table) +-- ALLEGATI_ID_SEQ (Sequence) +-- DUAL (Synonym) +-- STANDARD (Package) +-- +CREATE OR REPLACE TRIGGER ALLEGATI_BI +BEFORE INSERT ON ALLEGATI +FOR EACH ROW +BEGIN + SELECT ALLEGATI_ID_SEQ.nextval + INTO :new.ID + FROM dual; +END; +/ + + +-- +-- ANAG_COMPAGNIE_TRG (Trigger) +-- +-- Dependencies: +-- ANAG_COMPAGNIE (Table) +-- ANAG_COMPAGNIE_SEQ (Sequence) +-- STANDARD (Package) +-- +CREATE OR REPLACE TRIGGER ANAG_COMPAGNIE_TRG +BEFORE INSERT +ON ANAG_COMPAGNIE +REFERENCING NEW AS New OLD AS Old +FOR EACH ROW +BEGIN +-- For Toad: Highlight column ID + :new.ID := ANAG_COMPAGNIE_SEQ.nextval; +END ANAG_COMPAGNIE_TRG; +/ + + +-- +-- ANAG_DICHIARAZIONI_BI (Trigger) +-- +-- Dependencies: +-- ANAG_DICHIARAZIONI (Table) +-- ANAG_DICHIARAZIONI_ID_SEQ (Sequence) +-- DUAL (Synonym) +-- STANDARD (Package) +-- +CREATE OR REPLACE TRIGGER ANAG_DICHIARAZIONI_BI +BEFORE INSERT ON ANAG_DICHIARAZIONI +FOR EACH ROW +BEGIN + SELECT ANAG_DICHIARAZIONI_ID_SEQ.nextval + INTO :new.ID + FROM dual; +END; +/ + + +-- +-- AUDIT_RICHIESTA_INTEGRAZIONE_BI (Trigger) +-- +-- Dependencies: +-- AUDIT_RICHIESTA_INTEGRAZIONE (Table) +-- AUDIT_RICHIESTA_INTEGRAZIONE_ID_SEQ (Sequence) +-- DUAL (Synonym) +-- STANDARD (Package) +-- +CREATE OR REPLACE TRIGGER AUDIT_RICHIESTA_INTEGRAZIONE_BI +BEFORE INSERT ON AUDIT_RICHIESTA_INTEGRAZIONE +FOR EACH ROW +BEGIN + SELECT AUDIT_RICHIESTA_INTEGRAZIONE_ID_SEQ.nextval + INTO :new.ID_AUDIT + FROM dual; +END; +/ + + +-- +-- BANDI_BI (Trigger) +-- +-- Dependencies: +-- BANDI (Table) +-- BANDI_ID_SEQ (Sequence) +-- DUAL (Synonym) +-- STANDARD (Package) +-- +CREATE OR REPLACE TRIGGER BANDI_BI +BEFORE INSERT ON BANDI +FOR EACH ROW +BEGIN + SELECT BANDI_ID_SEQ.nextval + INTO :new.ID + FROM dual; +END; +/ + + +-- +-- COMUNE_BI (Trigger) +-- +-- Dependencies: +-- COMUNE (Table) +-- COMUNE_ID_SEQ (Sequence) +-- DUAL (Synonym) +-- STANDARD (Package) +-- +CREATE OR REPLACE TRIGGER COMUNE_BI +BEFORE INSERT ON COMUNE +FOR EACH ROW +BEGIN + SELECT COMUNE_ID_SEQ.nextval + INTO :new.ID + FROM dual; +END; +/ + + +-- +-- CUSTOMER_SATISFACTION_BI (Trigger) +-- +-- Dependencies: +-- CUSTOMER_SATISFACTION (Table) +-- CUSTOMER_SATISFACTION_ID_SEQ (Sequence) +-- DUAL (Synonym) +-- STANDARD (Package) +-- +CREATE OR REPLACE TRIGGER CUSTOMER_SATISFACTION_BI +BEFORE INSERT ON CUSTOMER_SATISFACTION +FOR EACH ROW +BEGIN + SELECT CUSTOMER_SATISFACTION_ID_SEQ.nextval + INTO :new.ID + FROM dual; +END; +/ + + +-- +-- DOCUMENTIBANDO_BI (Trigger) +-- +-- Dependencies: +-- DOCUMENTI_BANDO (Table) +-- DOCUMENTIBANDO_ID_SEQ (Sequence) +-- DUAL (Synonym) +-- STANDARD (Package) +-- +CREATE OR REPLACE TRIGGER DOCUMENTIBANDO_BI +BEFORE INSERT ON DOCUMENTI_BANDO +FOR EACH ROW +BEGIN + SELECT DOCUMENTIBANDO_ID_SEQ.nextval + INTO :new.ID + FROM dual; +END; +/ + + +-- +-- DOMANDA_BI (Trigger) +-- +-- Dependencies: +-- DOMANDA (Table) +-- DOMANDA_ID_SEQ (Sequence) +-- DUAL (Synonym) +-- STANDARD (Package) +-- +CREATE OR REPLACE TRIGGER DOMANDA_BI +BEFORE INSERT ON DOMANDA +FOR EACH ROW +BEGIN + SELECT DOMANDA_ID_SEQ.nextval + INTO :new.ID + FROM dual; +END; +/ + + +-- +-- DOMANDA_EMAIL_BI (Trigger) +-- +-- Dependencies: +-- DOMANDA_EMAIL (Table) +-- DOMANDA_EMAIL_ID_SEQ (Sequence) +-- DUAL (Synonym) +-- STANDARD (Package) +-- +CREATE OR REPLACE TRIGGER DOMANDA_EMAIL_BI +BEFORE INSERT ON DOMANDA_EMAIL +FOR EACH ROW +BEGIN + SELECT DOMANDA_EMAIL_ID_SEQ.nextval + INTO :new.ID + FROM dual; +END; +/ + + +-- +-- DOMANDA_SCONTI_BI (Trigger) +-- +-- Dependencies: +-- DOMANDA_SCONTI (Table) +-- DOMANDA_SCONTI_ID_SEQ (Sequence) +-- DUAL (Synonym) +-- STANDARD (Package) +-- +CREATE OR REPLACE TRIGGER DOMANDA_SCONTI_BI +BEFORE INSERT ON DOMANDA_SCONTI +FOR EACH ROW +BEGIN + SELECT DOMANDA_SCONTI_ID_SEQ.nextval + INTO :new.ID + FROM dual; +END; +/ + + +-- +-- DOMANDA_SCONTI_CONTROLLI_BI (Trigger) +-- +-- Dependencies: +-- DOMANDA_SCONTI_CONTROLLI (Table) +-- DOMANDA_SCONTI_CONTROLLI_ID_SEQ (Sequence) +-- DUAL (Synonym) +-- STANDARD (Package) +-- +CREATE OR REPLACE TRIGGER DOMANDA_SCONTI_CONTROLLI_BI +BEFORE INSERT ON DOMANDA_SCONTI_CONTROLLI +FOR EACH ROW +BEGIN + SELECT DOMANDA_SCONTI_CONTROLLI_ID_SEQ.nextval + INTO :new.ID + FROM dual; +END; +/ + + +-- +-- DOMANDA_SCONTI_IMPORTI_LOG_BI (Trigger) +-- +-- Dependencies: +-- DOMANDA_SCONTI_IMPORTI_LOG (Table) +-- DOMANDA_SCONTI_IMPORTI_LOG_ID_SEQ (Sequence) +-- DUAL (Synonym) +-- STANDARD (Package) +-- +CREATE OR REPLACE TRIGGER DOMANDA_SCONTI_IMPORTI_LOG_BI +BEFORE INSERT +ON DOMANDA_SCONTI_IMPORTI_LOG +REFERENCING NEW AS NEW OLD AS OLD +FOR EACH ROW +BEGIN + SELECT DOMANDA_SCONTI_IMPORTI_LOG_ID_SEQ.nextval + INTO :new.ID + FROM dual; +END; +/ + + +-- +-- ESPORTAZIONI_TRG (Trigger) +-- +-- Dependencies: +-- ESPORTAZIONI (Table) +-- ESPORTAZIONI_SEQ (Sequence) +-- STANDARD (Package) +-- +CREATE OR REPLACE TRIGGER ESPORTAZIONI_TRG +BEFORE INSERT +ON ESPORTAZIONI +REFERENCING NEW AS New OLD AS Old +FOR EACH ROW +BEGIN +-- For Toad: Highlight column LOTTO + :new.LOTTO := ESPORTAZIONI_SEQ.nextval; +END ESPORTAZIONI_TRG; +/ + + +-- +-- FAQ_BI (Trigger) +-- +-- Dependencies: +-- FAQ (Table) +-- FAQ_ID_SEQ (Sequence) +-- DUAL (Synonym) +-- STANDARD (Package) +-- +CREATE OR REPLACE TRIGGER FAQ_BI +BEFORE INSERT ON FAQ +FOR EACH ROW +BEGIN + SELECT FAQ_ID_SEQ.nextval + INTO :new.ID + FROM dual; +END; +/ + + +-- +-- FAQ_UTENTI_BI (Trigger) +-- +-- Dependencies: +-- FAQ_UTENTI (Table) +-- FAQ_UTENTI_ID_SEQ (Sequence) +-- DUAL (Synonym) +-- STANDARD (Package) +-- +CREATE OR REPLACE TRIGGER FAQ_UTENTI_BI +BEFORE INSERT ON FAQ_UTENTI +FOR EACH ROW +BEGIN + SELECT FAQ_UTENTI_ID_SEQ.nextval + INTO :new.ID + FROM dual; +END; +/ + + +-- +-- IMPERSONIFICAZIONE_BI (Trigger) +-- +-- Dependencies: +-- IMPERSONIFICAZIONE (Table) +-- IMPERSONIFICAZIONE_ID_SEQ (Sequence) +-- DUAL (Synonym) +-- STANDARD (Package) +-- +CREATE OR REPLACE TRIGGER IMPERSONIFICAZIONE_BI +BEFORE INSERT ON IMPERSONIFICAZIONE +FOR EACH ROW +BEGIN + SELECT IMPERSONIFICAZIONE_ID_SEQ.nextval + INTO :new.ID + FROM dual; +END; + +-- ############## +/ + + +-- +-- INTEGRAZIONI_EMAIL_QUEUE_BI (Trigger) +-- +-- Dependencies: +-- INTEGRAZIONI_EMAIL_QUEUE (Table) +-- INTEGRAZIONI_EMAIL_QUEUE_ID_SEQ (Sequence) +-- DUAL (Synonym) +-- STANDARD (Package) +-- +CREATE OR REPLACE TRIGGER INTEGRAZIONI_EMAIL_QUEUE_BI +BEFORE INSERT ON INTEGRAZIONI_EMAIL_QUEUE +FOR EACH ROW +BEGIN + SELECT INTEGRAZIONI_EMAIL_QUEUE_ID_SEQ.nextval + INTO :new.ID + FROM dual; +END; + + + +--########################## +/ + + +-- +-- LOGS_BE_BI (Trigger) +-- +-- Dependencies: +-- LOGS_BE (Table) +-- LOGS_BE_ID_SEQ (Sequence) +-- DUAL (Synonym) +-- STANDARD (Package) +-- +CREATE OR REPLACE TRIGGER LOGS_BE_BI +BEFORE INSERT ON LOGS_BE +FOR EACH ROW +BEGIN + SELECT LOGS_BE_ID_SEQ.nextval + INTO :new.ID + FROM dual; +END; +/ + + +-- +-- LOGS_BI (Trigger) +-- +-- Dependencies: +-- LOGS (Table) +-- LOGS_ID_SEQ (Sequence) +-- DUAL (Synonym) +-- STANDARD (Package) +-- +CREATE OR REPLACE TRIGGER LOGS_BI +BEFORE INSERT ON LOGS +FOR EACH ROW +BEGIN + SELECT LOGS_ID_SEQ.nextval + INTO :new.ID + FROM dual; +END; +/ + + +-- +-- LOGS_P7M_BI (Trigger) +-- +-- Dependencies: +-- LOGS_P7M (Table) +-- LOGS_P7M_ID_SEQ (Sequence) +-- DUAL (Synonym) +-- STANDARD (Package) +-- +CREATE OR REPLACE TRIGGER LOGS_P7M_BI +BEFORE INSERT ON LOGS_P7M +FOR EACH ROW +BEGIN + SELECT LOGS_P7M_ID_SEQ.nextval + INTO :new.ID + FROM dual; +END; +/ + + +-- +-- RICHIESTA_INTEGRAZIONE_BI (Trigger) +-- +-- Dependencies: +-- RICHIESTA_INTEGRAZIONE (Table) +-- RICHIESTA_INTEGRAZIONE_ID_SEQ (Sequence) +-- DUAL (Synonym) +-- STANDARD (Package) +-- +CREATE OR REPLACE TRIGGER RICHIESTA_INTEGRAZIONE_BI +BEFORE INSERT ON RICHIESTA_INTEGRAZIONE +FOR EACH ROW +BEGIN + SELECT RICHIESTA_INTEGRAZIONE_ID_SEQ.nextval + INTO :new.ID + FROM dual; +END; +/ + + +-- +-- SPID_ACCESSI_BI (Trigger) +-- +-- Dependencies: +-- SPID_ACCESSI (Table) +-- SPID_ACCESSI_ID_SEQ (Sequence) +-- DUAL (Synonym) +-- STANDARD (Package) +-- +CREATE OR REPLACE TRIGGER SPID_ACCESSI_BI +BEFORE INSERT ON SPID_ACCESSI +FOR EACH ROW +BEGIN + SELECT SPID_ACCESSI_ID_SEQ.nextval + INTO :new.ID + FROM dual; +END; +/ + + +-- +-- TRG_AUDIT_RICHIESTA_INTEGRAZIONE (Trigger) +-- +-- Dependencies: +-- RICHIESTA_INTEGRAZIONE (Table) +-- AUDIT_RICHIESTA_INTEGRAZIONE (Table) +-- STANDARD (Package) +-- +CREATE OR REPLACE TRIGGER TRG_AUDIT_RICHIESTA_INTEGRAZIONE +BEFORE UPDATE OF STATO ON RICHIESTA_INTEGRAZIONE +FOR EACH ROW +BEGIN + IF (:OLD.STATO IS NULL AND :NEW.STATO IS NOT NULL) + OR (:OLD.STATO IS NOT NULL AND :NEW.STATO IS NULL) + OR (:OLD.STATO != :NEW.STATO) THEN + + INSERT INTO AUDIT_RICHIESTA_INTEGRAZIONE ( + ID_INTEGRAZIONE, + STATO_PRECEDENTE, + STATO_ATTUALE, + ORIGINE + ) + VALUES ( + :OLD.ID, + :OLD.STATO, + :NEW.STATO, + 'TRIGGER' + ); + + END IF; +END; +/ + + +-- +-- TRG_CAMBIA_STATO_SU_INSERIMENTO (Trigger) +-- +-- Dependencies: +-- RICHIESTA_INTEGRAZIONE (Table) +-- DOMANDA_SCONTI (Table) +-- DBMS_OUTPUT (Synonym) +-- STANDARD (Package) +-- +CREATE OR REPLACE TRIGGER TRG_CAMBIA_STATO_SU_INSERIMENTO +AFTER INSERT ON RICHIESTA_INTEGRAZIONE +FOR EACH ROW +DECLARE + v_count NUMBER; +BEGIN + -- Controlla se esiste la domanda + SELECT COUNT(*) INTO v_count + FROM DOMANDA_SCONTI + WHERE ID = :NEW.ID_DOMANDA_SCONTI; + + IF v_count = 1 THEN + -- Se esiste, aggiorna lo stato a 33 + UPDATE DOMANDA_SCONTI + SET STATO = 33 + WHERE ID = :NEW.ID_DOMANDA_SCONTI; + ELSE + -- Altrimenti segnala errore (DBMS_OUTPUT visibile solo se abilitato) + DBMS_OUTPUT.PUT_LINE('ID_DOMANDA_SCONTI ' || :NEW.ID_DOMANDA_SCONTI || ' non trovato in DOMANDA_SCONTI'); + END IF; + +EXCEPTION + WHEN OTHERS THEN + -- In caso di errore inaspettato, logga il messaggio + DBMS_OUTPUT.PUT_LINE('Errore nel trigger TRG_CAMBIA_STATO_SU_INSERIMENTO: ' || SQLERRM); +END; +/ + + +-- +-- UID_FIREBASE_ADMIN_BI (Trigger) +-- +-- Dependencies: +-- UID_FIREBASE_ADMIN (Table) +-- UID_FIREBASE_ADMIN_ID_SEQ (Sequence) +-- DUAL (Synonym) +-- STANDARD (Package) +-- +CREATE OR REPLACE TRIGGER UID_FIREBASE_ADMIN_BI +BEFORE INSERT ON UID_FIREBASE_ADMIN +FOR EACH ROW +BEGIN + SELECT UID_FIREBASE_ADMIN_ID_SEQ.nextval + INTO :new.ID + FROM dual; +END; +/ + + +-- +-- AEROPORTI_COMPAGNIE (Table) +-- +-- Dependencies: +-- AEROPORTI (Table) +-- ANAG_COMPAGNIE (Table) +-- +-- Row Count: 88 +CREATE TABLE AEROPORTI_COMPAGNIE +( + AEROPORTO VARCHAR2(3 BYTE), + COMPAGNIA INTEGER +) +TABLESPACE BANDO_VOLI_TBS +PCTUSED 0 +PCTFREE 10 +INITRANS 1 +MAXTRANS 255 +STORAGE ( + INITIAL 64K + NEXT 1M + MINEXTENTS 1 + MAXEXTENTS UNLIMITED + PCTINCREASE 0 + BUFFER_POOL DEFAULT + ); + + +-- +-- AERO_COMP_PK (Index) +-- +-- Dependencies: +-- AEROPORTI_COMPAGNIE (Table) +-- +CREATE UNIQUE INDEX AERO_COMP_PK ON AEROPORTI_COMPAGNIE +(AEROPORTO, COMPAGNIA) +TABLESPACE BANDO_VOLI_TBS +PCTFREE 10 +INITRANS 2 +MAXTRANS 255 +STORAGE ( + INITIAL 64K + NEXT 1M + MINEXTENTS 1 + MAXEXTENTS UNLIMITED + PCTINCREASE 0 + BUFFER_POOL DEFAULT + ); + +ALTER TABLE AEROPORTI_COMPAGNIE ADD ( + CONSTRAINT AERO_COMP_PK + PRIMARY KEY + (AEROPORTO, COMPAGNIA) + USING INDEX AERO_COMP_PK + ENABLE VALIDATE); + + + +-- +-- SPAEROCOMPAGNIESAVE (Procedure) +-- +-- Dependencies: +-- AEROPORTI_COMPAGNIE (Table) +-- STANDARD (Package) +-- SYS_STUB_FOR_PURITY_ANALYSIS (Package) +-- +CREATE OR REPLACE PROCEDURE "SPAEROCOMPAGNIESAVE" +( + P_AEROPORTO VARCHAR2, + P_COMPAGNIA INT +) AS +INSUPDATE NUMBER; +BEGIN + +SELECT COUNT(*) INTO INSUPDATE FROM AEROPORTI_COMPAGNIE WHERE AEROPORTO = P_AEROPORTO AND COMPAGNIA = P_COMPAGNIA; + +IF INSUPDATE <= 0 THEN + INSERT INTO AEROPORTI_COMPAGNIE (AEROPORTO, COMPAGNIA) VALUES (P_AEROPORTO, P_COMPAGNIA); +END IF; + +END SPAEROCOMPAGNIESAVE; +/ + + +-- +-- CALCOLAETAFROMTODATE (Function) +-- +-- Dependencies: +-- GETPERIODOANNIMESIGIORNI (Function) +-- DUAL (Synonym) +-- STANDARD (Package) +-- SYS_STUB_FOR_PURITY_ANALYSIS (Package) +-- +CREATE OR REPLACE FUNCTION CALCOLAETAFROMTODATE ( +P_START_DATA IN VARCHAR2, +P_END_DATA IN VARCHAR2 +) +RETURN number IS + ETA number; + START_DATA_CALCOLO date; + END_DATA_CALCOLO date; +BEGIN + ETA := 0;-- Punti per Età + START_DATA_CALCOLO := TO_DATE(P_START_DATA,'dd/mm/YYYY hh24:mi:ss');-- Data definita dall'accordo sindacale + END_DATA_CALCOLO := TO_DATE(P_END_DATA,'dd/mm/YYYY hh24:mi:ss');-- Data definita dall'accordo sindacale + + -- Calcolo del punteggio per anzianità di posizione + --SELECT (ROUND((END_DATA_CALCOLO - DATA_NASCITA)/365)) + SELECT GETPERIODOANNIMESIGIORNI(START_DATA_CALCOLO, END_DATA_CALCOLO, 'ANNI') + INTO ETA + from DUAL; + + IF ETA IS NULL THEN + ETA := 0; + END IF; + + RETURN ETA; +END; +/ + + +-- +-- FNGETINTEGRAZIONE (Function) +-- +-- Dependencies: +-- FNGETINTEGRAZIONE_POST (Function) +-- FNGETINTEGRAZIONE_PRE (Function) +-- STANDARD (Package) +-- SYS_STUB_FOR_PURITY_ANALYSIS (Package) +-- +CREATE OR REPLACE FUNCTION "FNGETINTEGRAZIONE" ( + P_ID IN NUMBER, + P_DATA_VOLO IN DATE +) RETURN VARCHAR IS + T_DAL DATE; + T_AL DATE; + RESULT VARCHAR(255); +BEGIN + T_DAL := TO_DATE('2024-12-07', 'YYYY-MM-DD'); + T_AL := TO_DATE('2025-01-06', 'YYYY-MM-DD'); + + IF P_DATA_VOLO BETWEEN T_DAL AND T_AL THEN + RESULT := FNGETINTEGRAZIONE_POST(P_ID); + ELSE + RESULT := FNGETINTEGRAZIONE_PRE(P_ID); + END IF; + RETURN RESULT; + +END FNGETINTEGRAZIONE; +/ + + +-- +-- FNGETSCONTO (Function) +-- +-- Dependencies: +-- FNGETSCONTO_POST (Function) +-- FNGETSCONTO_PRE (Function) +-- STANDARD (Package) +-- SYS_STUB_FOR_PURITY_ANALYSIS (Package) +-- +CREATE OR REPLACE FUNCTION "FNGETSCONTO" ( + P_ID IN NUMBER, + P_DATA_VOLO IN DATE +) RETURN VARCHAR IS + T_DAL DATE; + T_AL DATE; + RESULT VARCHAR(255); +BEGIN + T_DAL := TO_DATE('2024-12-07', 'YYYY-MM-DD'); + T_AL := TO_DATE('2025-01-06', 'YYYY-MM-DD'); + + IF P_DATA_VOLO BETWEEN T_DAL AND T_AL THEN + RESULT := FNGETSCONTO_POST(P_ID, ''); + ELSE + RESULT := FNGETSCONTO_PRE(P_ID, ''); + END IF; + RETURN RESULT; + +END FNGETSCONTO; +/ + + +-- +-- VIEW_EXPORT_IBAN_AGGIORNATI (View) +-- +-- Dependencies: +-- ACCOUNT (Table) +-- ACCOUNT_NUCLEO_FAMILIARE (Table) +-- DOMANDA (Table) +-- DOMANDA_SCONTI (Table) +-- DOMANDA_SCONTI_INTEGRAZIONE (Table) +-- FNGETINTEGRAZIONE (Function) +-- FNGETSCONTO (Function) +-- +CREATE OR REPLACE FORCE VIEW VIEW_EXPORT_IBAN_AGGIORNATI +(ID, ID_DOMANDA, COGNOME, NOME, DATA_NASCITA, + RAPPORTO_PARENTELA, CODICE_FISCALE, BENEFICIARIO_BONIFICO, COMUNE_RESIDENZA, PROV_RESIDENZA, + CAP_RESIDENZA, COMPAGNIA_AEREA, NUMERO_VOLO, DATA_VOLO, COSTO_TRATTA, + AEROPORTO_PARTENZA, AEROPORTO_PARTENZA_CODICE, AEROPORTO_DESTINAZIONE, AEROPORTO_DESTINAZIONE_CODICE, FILEPATH_BIGLIETTO, + FILEPATH_CARTAIMBARCO, ISEE, DATA_RILASCIO_ISEE, IBAN, ISTITUTO_CREDITO, + FILIALE_CREDITO, STATO, DATA_REGISTRAZIONE, ID_UID_FIREBASE, DATA_ESPORTAZIONE, + DATA_ESITO, DATA_EROGAZIONE, NOTE, SCONTO_TOTALE, COMPAGNIA_ID, + DATA_ACQUISTO, LOTTO, FLAG, PRIORITA, ID_ACCOUNT, + FORZA_RESIDENZA, CITTADINANZA, LOTTO_INTEGRAZIONE, FILEPATH_BIGLIETTO_HASH, FILEPATH_CARTAIMBARCO_HASH) +BEQUEATH DEFINER +AS +SELECT DS.ID, + DS.ID_DOMANDA, + DS.COGNOME, + DS.NOME, + DS.DATA_NASCITA, + DS.RAPPORTO_PARENTELA, + DS.CODICE_FISCALE, + CASE WHEN DS.RAPPORTO_PARENTELA > 0 + THEN (SELECT CODICE_FISCALE FROM ACCOUNT WHERE ID = D.ID_ACCOUNT) + ELSE DS.CODICE_FISCALE END AS BENEFICIARIO_BONIFICO, + CASE + WHEN DS.STATO >= 1 THEN DS.COMUNE_RESIDENZA + ELSE AF.COMUNE_RESIDENZA + END + AS COMUNE_RESIDENZA, + CASE + WHEN DS.STATO >= 1 THEN DS.PROV_RESIDENZA + ELSE AF.PROV_RESIDENZA + END + AS PROV_RESIDENZA, + CASE + WHEN DS.STATO >= 1 THEN DS.CAP_RESIDENZA + ELSE AF.CAP_RESIDENZA + END + AS CAP_RESIDENZA, + DS.COMPAGNIA_AEREA, + DS.NUMERO_VOLO, + DS.DATA_VOLO, + DS.COSTO_TRATTA, + DS.AEROPORTO_PARTENZA, + DS.AEROPORTO_PARTENZA_CODICE, + DS.AEROPORTO_DESTINAZIONE, + DS.AEROPORTO_DESTINAZIONE_CODICE, + DS.FILEPATH_BIGLIETTO, + DS.FILEPATH_CARTAIMBARCO, + CASE WHEN DS.STATO >= 1 THEN DS.ISEE ELSE D.ISEE END + AS ISEE, + CASE + WHEN DS.STATO >= 1 THEN DS.DATA_RILASCIO_ISEE + ELSE D.DATA_RILASCIO_ISEE + END + AS DATA_RILASCIO_ISEE, + D.IBAN, + D.ISTITUTO_CREDITO, + D.FILIALE_CREDITO, + DS.STATO, + DS.DATA_REGISTRAZIONE, + DS.ID_UID_FIREBASE, + DS.DATA_ESPORTAZIONE, + DS.DATA_ESITO, + DS.DATA_EROGAZIONE, + DS.NOTE, + CASE + WHEN DS.STATO >= 1 + THEN + CASE + WHEN DI.ID_RICHIESTA IS NOT NULL + THEN + ( DS.SCONTO_TOTALE + + TO_NUMBER ( + FNGETINTEGRAZIONE (DS.ID, DS.DATA_VOLO))) + ELSE + DS.SCONTO_TOTALE + END + ELSE + TO_NUMBER (FNGETSCONTO (DS.ID, DS.DATA_VOLO)) + END + AS SCONTO_TOTALE, + DS.COMPAGNIA_ID, + DS.DATA_ACQUISTO, + DS.LOTTO, + CASE WHEN DS.STATO >= 1 THEN AF.FLAG ELSE DS.FLAG END + AS FLAG, + CASE WHEN DS.STATO >= 1 THEN DS.PRIORITY ELSE AF.PRIORITY END + AS PRIORITA, + D.ID_ACCOUNT, + DS.FORZA_RESIDENZA, + DS.CITTADINANZA, + DI.LOTTO_INTEGRAZIONE, + DS.FILEPATH_BIGLIETTO_HASH, + DS.FILEPATH_CARTAIMBARCO_HASH + FROM DOMANDA_SCONTI DS + LEFT JOIN DOMANDA_SCONTI_INTEGRAZIONE DI + ON DI.ID_RICHIESTA = DS.ID + INNER JOIN DOMANDA D ON DS.ID_DOMANDA = D.ID + INNER JOIN ACCOUNT_NUCLEO_FAMILIARE AF + ON AF.ID_ACCOUNT = D.ID_ACCOUNT + AND DS.CODICE_FISCALE = AF.CODICE_FISCALE; + + +-- +-- VIEW_EXPORT_INTEGRAZIONI (View) +-- +-- Dependencies: +-- ACCOUNT_NUCLEO_FAMILIARE (Table) +-- DOMANDA (Table) +-- DOMANDA_SCONTI (Table) +-- DOMANDA_SCONTI_INTEGRAZIONE (Table) +-- FNGETINTEGRAZIONE (Function) +-- FNGETSCONTO (Function) +-- +CREATE OR REPLACE FORCE VIEW VIEW_EXPORT_INTEGRAZIONI +(ID, ID_DOMANDA, COGNOME, NOME, DATA_NASCITA, + RAPPORTO_PARENTELA, CODICE_FISCALE, COMUNE_RESIDENZA, PROV_RESIDENZA, CAP_RESIDENZA, + COMPAGNIA_AEREA, NUMERO_VOLO, DATA_VOLO, COSTO_TRATTA, AEROPORTO_PARTENZA, + AEROPORTO_PARTENZA_CODICE, AEROPORTO_DESTINAZIONE, AEROPORTO_DESTINAZIONE_CODICE, FILEPATH_BIGLIETTO, FILEPATH_CARTAIMBARCO, + ISEE, DATA_RILASCIO_ISEE, IBAN, ISTITUTO_CREDITO, FILIALE_CREDITO, + STATO, DATA_REGISTRAZIONE, ID_UID_FIREBASE, DATA_ESPORTAZIONE, DATA_ESITO, + DATA_EROGAZIONE, NOTE, SCONTO_TOTALE, COMPAGNIA_ID, DATA_ACQUISTO, + LOTTO, FLAG, PRIORITA, ID_ACCOUNT, FORZA_RESIDENZA, + CITTADINANZA, LOTTO_INTEGRAZIONE, INTEGRAZIONE, SCONTO_ORIGIN, FILEPATH_BIGLIETTO_HASH, + FILEPATH_CARTAIMBARCO_HASH) +BEQUEATH DEFINER +AS +SELECT DS.ID, + DS.ID_DOMANDA, + DS.COGNOME, + DS.NOME, + DS.DATA_NASCITA, + DS.RAPPORTO_PARENTELA, + DS.CODICE_FISCALE, + CASE + WHEN DS.STATO >= 1 THEN DS.COMUNE_RESIDENZA + ELSE AF.COMUNE_RESIDENZA + END + AS COMUNE_RESIDENZA, + CASE + WHEN DS.STATO >= 1 THEN DS.PROV_RESIDENZA + ELSE AF.PROV_RESIDENZA + END + AS PROV_RESIDENZA, + CASE + WHEN DS.STATO >= 1 THEN DS.CAP_RESIDENZA + ELSE AF.CAP_RESIDENZA + END + AS CAP_RESIDENZA, + DS.COMPAGNIA_AEREA, + DS.NUMERO_VOLO, + DS.DATA_VOLO, + DS.COSTO_TRATTA, + DS.AEROPORTO_PARTENZA, + DS.AEROPORTO_PARTENZA_CODICE, + DS.AEROPORTO_DESTINAZIONE, + DS.AEROPORTO_DESTINAZIONE_CODICE, + DS.FILEPATH_BIGLIETTO, + DS.FILEPATH_CARTAIMBARCO, + CASE WHEN DS.STATO >= 1 THEN DS.ISEE ELSE D.ISEE END + AS ISEE, + CASE + WHEN DS.STATO >= 1 THEN DS.DATA_RILASCIO_ISEE + ELSE D.DATA_RILASCIO_ISEE + END + AS DATA_RILASCIO_ISEE, + CASE WHEN DS.STATO >= 1 THEN DS.IBAN ELSE D.IBAN END + AS IBAN, + CASE + WHEN DS.STATO >= 1 THEN DS.ISTITUTO_CREDITO + ELSE D.ISTITUTO_CREDITO + END + AS ISTITUTO_CREDITO, + CASE + WHEN DS.STATO >= 1 THEN DS.FILIALE_CREDITO + ELSE D.FILIALE_CREDITO + END + AS FILIALE_CREDITO, + DS.STATO, + DS.DATA_REGISTRAZIONE, + DS.ID_UID_FIREBASE, + DS.DATA_ESPORTAZIONE, + DS.DATA_ESITO, + DS.DATA_EROGAZIONE, + DS.NOTE, + CASE + WHEN DS.STATO >= 1 THEN + CASE + WHEN DI.ID_RICHIESTA IS NOT NULL + THEN + ( DS.SCONTO_TOTALE + + TO_NUMBER (FNGETINTEGRAZIONE (DS.ID, DS.DATA_VOLO))) + ELSE + DS.SCONTO_TOTALE + END + ELSE TO_NUMBER (FNGETSCONTO (DS.ID, DS.DATA_VOLO)) + END + AS SCONTO_TOTALE, + DS.COMPAGNIA_ID, + DS.DATA_ACQUISTO, + DS.LOTTO, + CASE WHEN DS.STATO >= 1 THEN AF.FLAG ELSE DS.FLAG END + AS FLAG, + CASE WHEN DS.STATO >= 1 THEN DS.PRIORITY ELSE AF.PRIORITY END + AS PRIORITA, + D.ID_ACCOUNT, + DS.FORZA_RESIDENZA, + DS.CITTADINANZA, + DI.LOTTO_INTEGRAZIONE, + TO_NUMBER (FNGETINTEGRAZIONE(DS.ID, DS.DATA_VOLO)) AS INTEGRAZIONE, + DS.SCONTO_TOTALE AS SCONTO_ORIGIN, + DS.FILEPATH_BIGLIETTO_HASH, + DS.FILEPATH_CARTAIMBARCO_HASH + FROM DOMANDA_SCONTI DS + LEFT JOIN DOMANDA_SCONTI_INTEGRAZIONE DI ON DI.ID_RICHIESTA = DS.ID + INNER JOIN DOMANDA D ON DS.ID_DOMANDA = D.ID + INNER JOIN ACCOUNT_NUCLEO_FAMILIARE AF + ON AF.ID_ACCOUNT = D.ID_ACCOUNT + AND DS.CODICE_FISCALE = AF.CODICE_FISCALE; + + +-- +-- VIEW_EXPORT_SCONTI (View) +-- +-- Dependencies: +-- ACCOUNT_NUCLEO_FAMILIARE (Table) +-- DOMANDA (Table) +-- DOMANDA_SCONTI (Table) +-- DOMANDA_SCONTI_INTEGRAZIONE (Table) +-- FNGETINTEGRAZIONE (Function) +-- FNGETSCONTO (Function) +-- +CREATE OR REPLACE FORCE VIEW VIEW_EXPORT_SCONTI +(ID, ID_DOMANDA, COGNOME, NOME, DATA_NASCITA, + RAPPORTO_PARENTELA, CODICE_FISCALE, COMUNE_RESIDENZA, PROV_RESIDENZA, CAP_RESIDENZA, + COMPAGNIA_AEREA, NUMERO_VOLO, DATA_VOLO, COSTO_TRATTA, AEROPORTO_PARTENZA, + AEROPORTO_PARTENZA_CODICE, AEROPORTO_DESTINAZIONE, AEROPORTO_DESTINAZIONE_CODICE, FILEPATH_BIGLIETTO, FILEPATH_CARTAIMBARCO, + ISEE, DATA_RILASCIO_ISEE, IBAN, ISTITUTO_CREDITO, FILIALE_CREDITO, + STATO, DATA_REGISTRAZIONE, ID_UID_FIREBASE, DATA_ESPORTAZIONE, DATA_ESITO, + DATA_EROGAZIONE, NOTE, SCONTO_TOTALE, COMPAGNIA_ID, DATA_ACQUISTO, + LOTTO, FLAG, PRIORITA, ID_ACCOUNT, FORZA_RESIDENZA, + CITTADINANZA, LOTTO_INTEGRAZIONE, FILEPATH_BIGLIETTO_HASH, FILEPATH_CARTAIMBARCO_HASH) +BEQUEATH DEFINER +AS +SELECT DS.ID, + DS.ID_DOMANDA, + DS.COGNOME, + DS.NOME, + DS.DATA_NASCITA, + DS.RAPPORTO_PARENTELA, + DS.CODICE_FISCALE, + CASE + WHEN DS.STATO >= 1 THEN DS.COMUNE_RESIDENZA + ELSE AF.COMUNE_RESIDENZA + END + AS COMUNE_RESIDENZA, + CASE + WHEN DS.STATO >= 1 THEN DS.PROV_RESIDENZA + ELSE AF.PROV_RESIDENZA + END + AS PROV_RESIDENZA, + CASE + WHEN DS.STATO >= 1 THEN DS.CAP_RESIDENZA + ELSE AF.CAP_RESIDENZA + END + AS CAP_RESIDENZA, + DS.COMPAGNIA_AEREA, + DS.NUMERO_VOLO, + DS.DATA_VOLO, + DS.COSTO_TRATTA, + DS.AEROPORTO_PARTENZA, + DS.AEROPORTO_PARTENZA_CODICE, + DS.AEROPORTO_DESTINAZIONE, + DS.AEROPORTO_DESTINAZIONE_CODICE, + DS.FILEPATH_BIGLIETTO, + DS.FILEPATH_CARTAIMBARCO, + CASE WHEN DS.STATO >= 1 THEN DS.ISEE ELSE D.ISEE END + AS ISEE, + CASE + WHEN DS.STATO >= 1 THEN DS.DATA_RILASCIO_ISEE + ELSE D.DATA_RILASCIO_ISEE + END + AS DATA_RILASCIO_ISEE, + CASE WHEN DS.STATO >= 1 THEN DS.IBAN ELSE D.IBAN END + AS IBAN, + CASE + WHEN DS.STATO >= 1 THEN DS.ISTITUTO_CREDITO + ELSE D.ISTITUTO_CREDITO + END + AS ISTITUTO_CREDITO, + CASE + WHEN DS.STATO >= 1 THEN DS.FILIALE_CREDITO + ELSE D.FILIALE_CREDITO + END + AS FILIALE_CREDITO, + DS.STATO, + DS.DATA_REGISTRAZIONE, + DS.ID_UID_FIREBASE, + DS.DATA_ESPORTAZIONE, + DS.DATA_ESITO, + DS.DATA_EROGAZIONE, + DS.NOTE, + CASE + WHEN DS.STATO >= 1 + THEN + CASE + WHEN DI.ID_RICHIESTA IS NOT NULL + THEN + ( DS.SCONTO_TOTALE + + TO_NUMBER ( + FNGETINTEGRAZIONE (DS.ID, DS.DATA_VOLO))) + ELSE + DS.SCONTO_TOTALE + END + ELSE + TO_NUMBER (FNGETSCONTO (DS.ID, DS.DATA_VOLO)) + END + AS SCONTO_TOTALE, + DS.COMPAGNIA_ID, + DS.DATA_ACQUISTO, + DS.LOTTO, + CASE WHEN DS.STATO >= 1 THEN AF.FLAG ELSE DS.FLAG END + AS FLAG, + CASE WHEN DS.STATO >= 1 THEN DS.PRIORITY ELSE AF.PRIORITY END + AS PRIORITA, + D.ID_ACCOUNT, + DS.FORZA_RESIDENZA, + DS.CITTADINANZA, + DI.LOTTO_INTEGRAZIONE, + DS.FILEPATH_BIGLIETTO_HASH, + DS.FILEPATH_CARTAIMBARCO_HASH + FROM DOMANDA_SCONTI DS + LEFT JOIN DOMANDA_SCONTI_INTEGRAZIONE DI + ON DI.ID_RICHIESTA = DS.ID + INNER JOIN DOMANDA D ON DS.ID_DOMANDA = D.ID + INNER JOIN ACCOUNT_NUCLEO_FAMILIARE AF + ON AF.ID_ACCOUNT = D.ID_ACCOUNT + AND DS.CODICE_FISCALE = AF.CODICE_FISCALE; + + +-- +-- PRC_RICALCOLA_SCONTO (Procedure) -- -- Dependencies: --- LOGS (Table) --- LOGS_ID_SEQ (Sequence) --- DUAL (Synonym) +-- DOMANDA_SCONTI (Table) +-- FNGETSCONTO (Function) +-- DBMS_OUTPUT (Synonym) -- STANDARD (Package) +-- SYS_STUB_FOR_PURITY_ANALYSIS (Package) -- -CREATE OR REPLACE TRIGGER LOGS_BI -BEFORE INSERT ON LOGS -FOR EACH ROW +CREATE OR REPLACE PROCEDURE PRC_RICALCOLA_SCONTO ( + p_id IN DOMANDA_SCONTI.ID%TYPE +) IS + v_data_volo DOMANDA_SCONTI.DATA_VOLO%TYPE; + v_sconto VARCHAR2(255); BEGIN - SELECT LOGS_ID_SEQ.nextval - INTO :new.ID - FROM dual; -END; + -- Recupero la data del volo + SELECT DATA_VOLO + INTO v_data_volo + FROM DOMANDA_SCONTI + WHERE ID = p_id; + + -- Calcolo lo sconto + v_sconto := FNGETSCONTO(p_id, v_data_volo); + + -- Aggiorno il campo (convertendo in numero) + UPDATE DOMANDA_SCONTI + SET SCONTO_TOTALE = TO_NUMBER(v_sconto) + WHERE ID = p_id; + + COMMIT; +EXCEPTION + WHEN NO_DATA_FOUND THEN + DBMS_OUTPUT.PUT_LINE('Nessun record trovato per ID=' || p_id); + WHEN OTHERS THEN + DBMS_OUTPUT.PUT_LINE('Errore: ' || SQLERRM); + ROLLBACK; +END PRC_RICALCOLA_SCONTO; / -- --- LOGS_P7M_BI (Trigger) +-- SPESPORTASCONTI (Procedure) -- -- Dependencies: --- LOGS_P7M (Table) --- LOGS_P7M_ID_SEQ (Sequence) --- DUAL (Synonym) +-- DOMANDA_SCONTI (Table) +-- FNGETSCONTO (Function) +-- VIEW_EXPORT_SCONTI (View) -- STANDARD (Package) +-- SYS_STUB_FOR_PURITY_ANALYSIS (Package) -- -CREATE OR REPLACE TRIGGER LOGS_P7M_BI -BEFORE INSERT ON LOGS_P7M -FOR EACH ROW +CREATE OR REPLACE PROCEDURE "SPESPORTASCONTI" +( + P_ID INT, + P_NUM_LOTTO INT +) AS +CTR_STATO INT; +CTR_PRES_ACC INT; +T_ID_DOMANDA INT; +T_ID_ACCOUNT INT; +T_BENEFICIARIO VARCHAR2(255); +T_COMUNE_RESIDENZA VARCHAR2(255); +T_PROV_RESIDENZA VARCHAR2(2); +T_CAP_RESIDENZA VARCHAR2(5); +T_FLAG VARCHAR2(1000); +T_ISEE INT; +T_PRIORITY INT; +T_DATA_RILASCIO_ISEE DATE; +T_IBAN VARCHAR2(255); +T_ISTITUTO_CREDITO VARCHAR2(255); +T_FILIALE_CREDITO VARCHAR2(255); +T_SCONTO_TOTALE NUMBER; +T_DATA_VOLO DATE; BEGIN - SELECT LOGS_P7M_ID_SEQ.nextval - INTO :new.ID - FROM dual; -END; +CTR_PRES_ACC :=0; + +SELECT STATO, ID_DOMANDA, CODICE_FISCALE, ID_ACCOUNT,ISEE,DATA_RILASCIO_ISEE,IBAN,ISTITUTO_CREDITO,FILIALE_CREDITO, COMUNE_RESIDENZA,PROV_RESIDENZA,CAP_RESIDENZA,FLAG,PRIORITA, DATA_VOLO +INTO CTR_STATO, T_ID_DOMANDA, T_BENEFICIARIO, T_ID_ACCOUNT,T_ISEE,T_DATA_RILASCIO_ISEE,T_IBAN,T_ISTITUTO_CREDITO,T_FILIALE_CREDITO,T_COMUNE_RESIDENZA,T_PROV_RESIDENZA,T_CAP_RESIDENZA,T_FLAG,T_PRIORITY, T_DATA_VOLO +FROM VIEW_EXPORT_SCONTI WHERE ID = P_ID; + +-- SELECT STATO, ID_DOMANDA, CODICE_FISCALE INTO CTR_STATO, T_ID_DOMANDA, T_BENEFICIARIO FROM DOMANDA_SCONTI WHERE ID = P_ID; +/*Verifico la presenza del beneficiario nel nucleo familiare*/ +--SELECT NVL(ID,0) INTO CTR_PRES_ACC FROM ACCOUNT_NUCLEO_FAMILIARE WHERE CODICE_FISCALE = T_BENEFICIARIO; + +--SELECT COUNT(*) INTO CTR_PRES_ACC FROM ACCOUNT_NUCLEO_FAMILIARE WHERE CODICE_FISCALE = T_BENEFICIARIO; + +-- IF CTR_STATO = 0 AND CTR_PRES_ACC > 0 THEN + IF CTR_STATO = 0 THEN + + /*SELECT + ID_ACCOUNT,ISEE,DATA_RILASCIO_ISEE,IBAN,ISTITUTO_CREDITO,FILIALE_CREDITO + INTO + T_ID_ACCOUNT,T_ISEE,T_DATA_RILASCIO_ISEE,T_IBAN,T_ISTITUTO_CREDITO,T_FILIALE_CREDITO + FROM DOMANDA WHERE ID = T_ID_DOMANDA; + SELECT + COMUNE_RESIDENZA,PROV_RESIDENZA,CAP_RESIDENZA, FLAG, PRIORITY + INTO + T_COMUNE_RESIDENZA,T_PROV_RESIDENZA,T_CAP_RESIDENZA,T_FLAG, T_PRIORITY + FROM ACCOUNT_NUCLEO_FAMILIARE WHERE CODICE_FISCALE = T_BENEFICIARIO AND ID_ACCOUNT = T_ID_ACCOUNT;*/ + + T_SCONTO_TOTALE := TO_NUMBER(FNGETSCONTO(P_ID, T_DATA_VOLO)); + + UPDATE DOMANDA_SCONTI SET + COMUNE_RESIDENZA = T_COMUNE_RESIDENZA, + PROV_RESIDENZA = T_PROV_RESIDENZA, + CAP_RESIDENZA = T_CAP_RESIDENZA, + FLAG = T_FLAG, + ISEE = T_ISEE, + DATA_RILASCIO_ISEE = T_DATA_RILASCIO_ISEE, + IBAN = T_IBAN, + ISTITUTO_CREDITO = T_ISTITUTO_CREDITO, + FILIALE_CREDITO = T_FILIALE_CREDITO, + STATO = 1, + DATA_ESPORTAZIONE = SYSTIMESTAMP, + SCONTO_TOTALE = T_SCONTO_TOTALE, + LOTTO = P_NUM_LOTTO, + PRIORITY = T_PRIORITY + WHERE ID = P_ID; +END IF; + + +END SPESPORTASCONTI; / -- --- SPID_ACCESSI_BI (Trigger) +-- SPPRESAINCARICO_DDG_NATALIZIO (Procedure) -- -- Dependencies: --- SPID_ACCESSI (Table) --- SPID_ACCESSI_ID_SEQ (Sequence) +-- ESPORTAZIONI (Table) +-- ESPORTAZIONI_SEQ (Sequence) +-- SPESPORTASCONTI (Procedure) +-- VIEW_EXPORT_SCONTI (View) -- DUAL (Synonym) -- STANDARD (Package) +-- SYS_STUB_FOR_PURITY_ANALYSIS (Package) -- -CREATE OR REPLACE TRIGGER "SPID_ACCESSI_BI" -BEFORE INSERT ON SPID_ACCESSI -FOR EACH ROW -BEGIN - SELECT SPID_ACCESSI_ID_SEQ.nextval - INTO :new.ID - FROM dual; -END; +CREATE OR REPLACE PROCEDURE SPPRESAINCARICO_DDG_NATALIZIO ( + DATA_INIZIO IN DATE, + DATA_FINE IN DATE +) AS + -- Dichiarazione delle variabili + V_ID VIEW_EXPORT_SCONTI.ID%TYPE; + V_NUM_LOTTO INT; + + -- Cursor per la SELECT + CURSOR C_CURSOR IS + SELECT ID + FROM VIEW_EXPORT_SCONTI + WHERE DATA_REGISTRAZIONE BETWEEN DATA_INIZIO AND DATA_FINE + AND DATA_VOLO BETWEEN TO_DATE('07/12/2024 00:00:00','dd/mm/yyyy hh24:mi:ss') AND TO_DATE('06/01/2025 23:59:59','dd/mm/yyyy hh24:mi:ss') AND STATO = 0; + +BEGIN + INSERT INTO ESPORTAZIONI (LOTTO, DATA_FILTRO, TIPO) VALUES (0, DATA_FINE, 10); + + SELECT ESPORTAZIONI_SEQ.CURRVAL INTO V_NUM_LOTTO FROM DUAL; + + -- Apertura del cursore + OPEN C_CURSOR; + + + -- Loop attraverso i risultati della SELECT + LOOP + -- Recupero dei valori dalla riga corrente + FETCH C_CURSOR INTO V_ID; + + -- Uscita dal loop quando non ci sono più righe + EXIT WHEN C_CURSOR%NOTFOUND; + + -- Chiamata alla funzione con i valori recuperati + SPESPORTASCONTI(V_ID, V_NUM_LOTTO); + + END LOOP; + + -- Chiusura del cursore + CLOSE C_CURSOR; +END SPPRESAINCARICO_DDG_NATALIZIO; / -- --- UID_FIREBASE_ADMIN_BI (Trigger) +-- SPPRESAINCARICO_PRIORITARI (Procedure) -- -- Dependencies: --- UID_FIREBASE_ADMIN (Table) --- UID_FIREBASE_ADMIN_ID_SEQ (Sequence) +-- ESPORTAZIONI (Table) +-- ESPORTAZIONI_SEQ (Sequence) +-- SPESPORTASCONTI (Procedure) +-- VIEW_EXPORT_SCONTI (View) -- DUAL (Synonym) -- STANDARD (Package) +-- SYS_STUB_FOR_PURITY_ANALYSIS (Package) -- -CREATE OR REPLACE TRIGGER "UID_FIREBASE_ADMIN_BI" -BEFORE INSERT ON UID_FIREBASE_ADMIN -FOR EACH ROW -BEGIN - SELECT UID_FIREBASE_ADMIN_ID_SEQ.nextval - INTO :new.ID - FROM dual; -END; -/ +CREATE OR REPLACE PROCEDURE SPPRESAINCARICO_PRIORITARI ( + DATA_INIZIO IN DATE, + DATA_FINE IN DATE +) AS + -- Dichiarazione delle variabili + V_ID VIEW_EXPORT_SCONTI.ID%TYPE; + V_NUM_LOTTO INT; + + -- Cursor per la SELECT + CURSOR C_CURSOR IS + SELECT ID + FROM VIEW_EXPORT_SCONTI + WHERE DATA_REGISTRAZIONE BETWEEN DATA_INIZIO AND DATA_FINE AND (ISEE = 1 OR PRIORITA = 1) AND STATO = 0; +BEGIN + INSERT INTO ESPORTAZIONI (LOTTO, DATA_FILTRO, TIPO) VALUES (0, DATA_FINE, 1); + + SELECT ESPORTAZIONI_SEQ.CURRVAL INTO V_NUM_LOTTO FROM DUAL; + + -- Apertura del cursore + OPEN C_CURSOR; + --- --- AEROPORTI_COMPAGNIE (Table) --- --- Dependencies: --- AEROPORTI (Table) --- ANAG_COMPAGNIE (Table) --- --- Row Count: 78 -CREATE TABLE AEROPORTI_COMPAGNIE -( - AEROPORTO VARCHAR2(3 BYTE), - COMPAGNIA INTEGER -) -TABLESPACE BANDO_VOLI -PCTUSED 0 -PCTFREE 10 -INITRANS 1 -MAXTRANS 255 -STORAGE ( - INITIAL 64K - NEXT 1M - MINEXTENTS 1 - MAXEXTENTS UNLIMITED - PCTINCREASE 0 - BUFFER_POOL DEFAULT - ); + -- Loop attraverso i risultati della SELECT + LOOP + -- Recupero dei valori dalla riga corrente + FETCH C_CURSOR INTO V_ID; + -- Uscita dal loop quando non ci sono più righe + EXIT WHEN C_CURSOR%NOTFOUND; --- --- AERO_COMP_PK (Index) --- --- Dependencies: --- AEROPORTI_COMPAGNIE (Table) --- -CREATE UNIQUE INDEX AERO_COMP_PK ON AEROPORTI_COMPAGNIE -(AEROPORTO, COMPAGNIA) -TABLESPACE BANDO_VOLI -PCTFREE 10 -INITRANS 2 -MAXTRANS 255 -STORAGE ( - INITIAL 64K - NEXT 1M - MINEXTENTS 1 - MAXEXTENTS UNLIMITED - PCTINCREASE 0 - BUFFER_POOL DEFAULT - ); + -- Chiamata alla funzione con i valori recuperati + SPESPORTASCONTI(V_ID, V_NUM_LOTTO); -ALTER TABLE AEROPORTI_COMPAGNIE ADD ( - CONSTRAINT AERO_COMP_PK - PRIMARY KEY - (AEROPORTO, COMPAGNIA) - USING INDEX AERO_COMP_PK - ENABLE VALIDATE); + END LOOP; + -- Chiusura del cursore + CLOSE C_CURSOR; +END SPPRESAINCARICO_PRIORITARI; +/ -- --- SPAEROCOMPAGNIESAVE (Procedure) +-- SPPRESAINCARICO_PRIORITARI_NATALE (Procedure) -- -- Dependencies: --- AEROPORTI_COMPAGNIE (Table) +-- ESPORTAZIONI (Table) +-- ESPORTAZIONI_SEQ (Sequence) +-- SPESPORTASCONTI (Procedure) +-- VIEW_EXPORT_SCONTI (View) +-- DUAL (Synonym) -- STANDARD (Package) -- SYS_STUB_FOR_PURITY_ANALYSIS (Package) -- -CREATE OR REPLACE PROCEDURE "SPAEROCOMPAGNIESAVE" -( - P_AEROPORTO VARCHAR2, - P_COMPAGNIA INT -) AS -INSUPDATE NUMBER; -BEGIN +CREATE OR REPLACE PROCEDURE SPPRESAINCARICO_PRIORITARI_NATALE ( + DATA_INIZIO IN DATE, + DATA_FINE IN DATE +) AS + -- Dichiarazione delle variabili + V_ID VIEW_EXPORT_SCONTI.ID%TYPE; + V_NUM_LOTTO INT; + + -- Cursor per la SELECT + CURSOR C_CURSOR IS + SELECT ID + FROM VIEW_EXPORT_SCONTI + WHERE DATA_REGISTRAZIONE BETWEEN DATA_INIZIO AND DATA_FINE AND DATA_VOLO < TO_DATE('07/12/2024 00:00:00','dd/mm/yyyy hh24:mi:ss') AND (ISEE = 1 OR PRIORITA = 1) AND STATO = 0; + +BEGIN + INSERT INTO ESPORTAZIONI (LOTTO, DATA_FILTRO, TIPO) VALUES (0, DATA_FINE, 1); + + SELECT ESPORTAZIONI_SEQ.CURRVAL INTO V_NUM_LOTTO FROM DUAL; + + -- Apertura del cursore + OPEN C_CURSOR; + -SELECT COUNT(*) INTO INSUPDATE FROM AEROPORTI_COMPAGNIE WHERE AEROPORTO = P_AEROPORTO AND COMPAGNIA = P_COMPAGNIA; + -- Loop attraverso i risultati della SELECT + LOOP + -- Recupero dei valori dalla riga corrente + FETCH C_CURSOR INTO V_ID; -IF INSUPDATE <= 0 THEN - INSERT INTO AEROPORTI_COMPAGNIE (AEROPORTO, COMPAGNIA) VALUES (P_AEROPORTO, P_COMPAGNIA); -END IF; + -- Uscita dal loop quando non ci sono più righe + EXIT WHEN C_CURSOR%NOTFOUND; -END SPAEROCOMPAGNIESAVE; + -- Chiamata alla funzione con i valori recuperati + SPESPORTASCONTI(V_ID, V_NUM_LOTTO); + + END LOOP; + + -- Chiusura del cursore + CLOSE C_CURSOR; +END SPPRESAINCARICO_PRIORITARI_NATALE; / -- --- SPESPORTASCONTI (Procedure) +-- SPPRESAINCARICO_RESIDENTI (Procedure) -- -- Dependencies: --- ACCOUNT_NUCLEO_FAMILIARE (Table) --- DOMANDA (Table) --- DOMANDA_SCONTI (Table) --- FNGETSCONTO (Function) +-- ESPORTAZIONI (Table) +-- ESPORTAZIONI_SEQ (Sequence) +-- SPESPORTASCONTI (Procedure) +-- VIEW_EXPORT_SCONTI (View) +-- DUAL (Synonym) -- STANDARD (Package) -- SYS_STUB_FOR_PURITY_ANALYSIS (Package) -- -CREATE OR REPLACE PROCEDURE "SPESPORTASCONTI" -( - P_ID INT, - P_NUM_LOTTO INT -) AS -CTR_STATO INT; -CTR_PRES_ACC INT; -T_ID_DOMANDA INT; -T_ID_ACCOUNT INT; -T_BENEFICIARIO VARCHAR2(255); -T_COMUNE_RESIDENZA VARCHAR2(255); -T_PROV_RESIDENZA VARCHAR2(2); -T_CAP_RESIDENZA VARCHAR2(5); -T_FLAG VARCHAR2(1000); -T_ISEE INT; -T_PRIORITY INT; -T_DATA_RILASCIO_ISEE DATE; -T_IBAN VARCHAR2(255); -T_ISTITUTO_CREDITO VARCHAR2(255); -T_FILIALE_CREDITO VARCHAR2(255); -T_SCONTO_TOTALE NUMBER; -BEGIN -CTR_PRES_ACC :=0; - -SELECT STATO, ID_DOMANDA, CODICE_FISCALE INTO CTR_STATO, T_ID_DOMANDA, T_BENEFICIARIO FROM DOMANDA_SCONTI WHERE ID = P_ID; -/*Verifico la presenza del beneficiario nel nucleo familiare*/ ---SELECT NVL(ID,0) INTO CTR_PRES_ACC FROM ACCOUNT_NUCLEO_FAMILIARE WHERE CODICE_FISCALE = T_BENEFICIARIO; +CREATE OR REPLACE PROCEDURE SPPRESAINCARICO_RESIDENTI ( + DATA_INIZIO IN DATE, + DATA_FINE IN DATE +) AS + -- Dichiarazione delle variabili + V_ID VIEW_EXPORT_SCONTI.ID%TYPE; + V_NUM_LOTTO INT; + + -- Cursor per la SELECT + CURSOR C_CURSOR IS + SELECT ID + FROM VIEW_EXPORT_SCONTI + WHERE DATA_REGISTRAZIONE BETWEEN DATA_INIZIO AND DATA_FINE AND ISEE = 0 AND PRIORITA = 0 AND STATO = 0; -SELECT COUNT(*) INTO CTR_PRES_ACC FROM ACCOUNT_NUCLEO_FAMILIARE WHERE CODICE_FISCALE = T_BENEFICIARIO; +BEGIN + INSERT INTO ESPORTAZIONI (LOTTO, DATA_FILTRO, TIPO) VALUES (0, DATA_FINE, 0); -IF CTR_STATO = 0 AND CTR_PRES_ACC > 0 THEN - - SELECT - ID_ACCOUNT,ISEE,DATA_RILASCIO_ISEE,IBAN,ISTITUTO_CREDITO,FILIALE_CREDITO - INTO - T_ID_ACCOUNT,T_ISEE,T_DATA_RILASCIO_ISEE,T_IBAN,T_ISTITUTO_CREDITO,T_FILIALE_CREDITO - FROM DOMANDA WHERE ID = T_ID_DOMANDA; - SELECT - COMUNE_RESIDENZA,PROV_RESIDENZA,CAP_RESIDENZA, FLAG, PRIORITY - INTO - T_COMUNE_RESIDENZA,T_PROV_RESIDENZA,T_CAP_RESIDENZA,T_FLAG, T_PRIORITY - FROM ACCOUNT_NUCLEO_FAMILIARE WHERE CODICE_FISCALE = T_BENEFICIARIO AND ID_ACCOUNT = T_ID_ACCOUNT; + SELECT ESPORTAZIONI_SEQ.CURRVAL INTO V_NUM_LOTTO FROM DUAL; + + -- Apertura del cursore + OPEN C_CURSOR; - T_SCONTO_TOTALE := TO_NUMBER(FNGETSCONTO(P_ID, '')); - UPDATE DOMANDA_SCONTI SET - COMUNE_RESIDENZA = T_COMUNE_RESIDENZA, - PROV_RESIDENZA = T_PROV_RESIDENZA, - CAP_RESIDENZA = T_CAP_RESIDENZA, - FLAG = T_FLAG, - ISEE = T_ISEE, - DATA_RILASCIO_ISEE = T_DATA_RILASCIO_ISEE, - IBAN = T_IBAN, - ISTITUTO_CREDITO = T_ISTITUTO_CREDITO, - FILIALE_CREDITO = T_FILIALE_CREDITO, - STATO = 1, - DATA_ESPORTAZIONE = SYSTIMESTAMP, - SCONTO_TOTALE = T_SCONTO_TOTALE, - LOTTO = P_NUM_LOTTO, - PRIORITY = T_PRIORITY - WHERE ID = P_ID; -END IF; + -- Loop attraverso i risultati della SELECT + LOOP + -- Recupero dei valori dalla riga corrente + FETCH C_CURSOR INTO V_ID; + -- Uscita dal loop quando non ci sono più righe + EXIT WHEN C_CURSOR%NOTFOUND; -END SPESPORTASCONTI; + -- Chiamata alla funzione con i valori recuperati + SPESPORTASCONTI(V_ID, V_NUM_LOTTO); + + END LOOP; + + -- Chiusura del cursore + CLOSE C_CURSOR; +END SPPRESAINCARICO_RESIDENTI; / -- --- SPPRESAINCARICO (Procedure) +-- SPPRESAINCARICO_RESIDENTI_NATALE (Procedure) -- -- Dependencies: --- DOMANDA_SCONTI (Table) -- ESPORTAZIONI (Table) -- ESPORTAZIONI_SEQ (Sequence) -- SPESPORTASCONTI (Procedure) +-- VIEW_EXPORT_SCONTI (View) -- DUAL (Synonym) -- STANDARD (Package) -- SYS_STUB_FOR_PURITY_ANALYSIS (Package) -- -CREATE OR REPLACE PROCEDURE SPPRESAINCARICO ( +CREATE OR REPLACE PROCEDURE SPPRESAINCARICO_RESIDENTI_NATALE ( DATA_INIZIO IN DATE, DATA_FINE IN DATE ) AS -- Dichiarazione delle variabili - V_ID DOMANDA_SCONTI.ID%TYPE; + V_ID VIEW_EXPORT_SCONTI.ID%TYPE; V_NUM_LOTTO INT; - + -- Cursor per la SELECT CURSOR C_CURSOR IS SELECT ID - FROM DOMANDA_SCONTI - WHERE DATA_REGISTRAZIONE BETWEEN DATA_INIZIO AND DATA_FINE AND STATO = 0; + FROM VIEW_EXPORT_SCONTI + WHERE DATA_REGISTRAZIONE BETWEEN DATA_INIZIO AND DATA_FINE AND DATA_VOLO < TO_DATE('07/12/2024 00:00:00','dd/mm/yyyy hh24:mi:ss') AND ISEE = 0 AND PRIORITA = 0 AND STATO = 0; -BEGIN - INSERT INTO ESPORTAZIONI (LOTTO) VALUES (0); +BEGIN + INSERT INTO ESPORTAZIONI (LOTTO, DATA_FILTRO, TIPO) VALUES (0, DATA_FINE, 0); SELECT ESPORTAZIONI_SEQ.CURRVAL INTO V_NUM_LOTTO FROM DUAL; @@ -3908,79 +6866,291 @@ BEGIN -- Chiusura del cursore CLOSE C_CURSOR; -END SPPRESAINCARICO; +END SPPRESAINCARICO_RESIDENTI_NATALE; / -- --- CALCOLAETA (Function) +-- SP_CONFERMA_VALIDATI (Procedure) -- -- Dependencies: --- ACCOUNT_NUCLEO_FAMILIARE (Table) --- GETPERIODOANNIMESIGIORNI (Function) +-- DOMANDA_SCONTI (Table) +-- ESPORTAZIONI (Table) +-- ESPORTAZIONI_SEQ (Sequence) +-- VIEW_EXPORT_SCONTI (View) +-- DUAL (Synonym) -- STANDARD (Package) -- SYS_STUB_FOR_PURITY_ANALYSIS (Package) -- -CREATE OR REPLACE FUNCTION CALCOLAETA ( -P_CF IN VARCHAR2, -P_END_DATA IN VARCHAR2 -) -RETURN number IS - ETA number; - END_DATA_CALCOLO date; -BEGIN - ETA := 0;-- Punti per Età - END_DATA_CALCOLO := TO_DATE(P_END_DATA,'dd/mm/YYYY hh24:mi:ss');-- Data definita dall'accordo sindacale - - -- Calcolo del punteggio per anzianità di posizione - --SELECT (ROUND((END_DATA_CALCOLO - DATA_NASCITA)/365)) - SELECT GETPERIODOANNIMESIGIORNI(DATA_NASCITA, END_DATA_CALCOLO, 'ANNI') - INTO ETA - from ACCOUNT_NUCLEO_FAMILIARE where CODICE_FISCALE = P_CF; +CREATE OR REPLACE PROCEDURE SP_CONFERMA_VALIDATI ( + LOTTO_FROM IN NUMBER +) AS + V_NUM_LOTTO NUMBER; + V_DATA_FILTRO DATE; +BEGIN + -- Recupero della data filtro dal lotto specificato + SELECT DATA_FILTRO INTO V_DATA_FILTRO + FROM ESPORTAZIONI + WHERE LOTTO = LOTTO_FROM; + + -- Inserimento di un nuovo record in ESPORTAZIONI + INSERT INTO ESPORTAZIONI (LOTTO, DATA_FILTRO, TIPO) + VALUES (0, V_DATA_FILTRO, 0); + + -- Recupero del valore corrente della sequenza + SELECT ESPORTAZIONI_SEQ.CURRVAL INTO V_NUM_LOTTO FROM DUAL; + + -- Loop attraverso i risultati della SELECT + FOR rec IN ( + SELECT ID + FROM VIEW_EXPORT_SCONTI + WHERE LOTTO = LOTTO_FROM AND NOTE LIKE '%[VALIDATA]%' AND STATO = 1 + ) LOOP + -- Aggiornamento della tabella DOMANDA_SCONTI + UPDATE DOMANDA_SCONTI + SET LOTTO = V_NUM_LOTTO, + STATO = 2, + DATA_ESITO = SYSTIMESTAMP + WHERE ID = rec.ID; + END LOOP; +END SP_CONFERMA_VALIDATI; +/ + + +-- +-- FN_ISCITTADINOUE (Function) +-- +-- Dependencies: +-- COMUNE (Table) +-- CONVERTI_OMO_CODICE (Function) +-- VIEW_EXPORT_SCONTI (View) +-- STANDARD (Package) +-- SYS_STUB_FOR_PURITY_ANALYSIS (Package) +-- +CREATE OR REPLACE FUNCTION "FN_ISCITTADINOUE" ( + P_ID IN NUMBER +) RETURN NUMBER IS + T_COD_CF VARCHAR2(4); -- Variabile per il codice comune + T_REGIONE VARCHAR2(255); -- Variabile per la regione + T_CITTADINANZA VARCHAR2(255); -- Variabile per la cittadinanza +BEGIN + + -- Estrarre il codice comune direttamente + SELECT SUBSTR(CONVERTI_OMO_CODICE(CODICE_FISCALE), 12, 4), CITTADINANZA + INTO T_COD_CF, T_CITTADINANZA + FROM VIEW_EXPORT_SCONTI + WHERE ID = P_ID; + - IF ETA IS NULL THEN - ETA := 0; + IF T_CITTADINANZA != '' THEN + SELECT CODICE_REGIONE + INTO T_REGIONE + FROM COMUNE + WHERE DESCRIZIONE = T_CITTADINANZA AND ATTIVO = 1; + ELSE + SELECT CODICE_REGIONE + INTO T_REGIONE + FROM COMUNE + WHERE COD_CF = T_COD_CF AND ATTIVO = 1; END IF; + + + RETURN CASE + WHEN T_REGIONE = '' THEN 0 + ELSE 1 + END; + +EXCEPTION + -- Gestione delle eccezioni (es. nessun record trovato) + WHEN NO_DATA_FOUND THEN + RETURN 0; -- Restituire 0 se non ci sono dati + WHEN OTHERS THEN + -- Log dell'errore se necessario (facoltativo) + RAISE; -- Ritornare l'errore originale +END FN_ISCITTADINOUE; +/ - RETURN ETA; -END; + +-- +-- FN_ISNATIVO (Function) +-- +-- Dependencies: +-- COMUNE (Table) +-- CONVERTI_OMO_CODICE (Function) +-- VIEW_EXPORT_SCONTI (View) +-- STANDARD (Package) +-- SYS_STUB_FOR_PURITY_ANALYSIS (Package) +-- +CREATE OR REPLACE FUNCTION "FN_ISNATIVO" ( + P_ID IN NUMBER +) RETURN NUMBER IS + T_COD_CF VARCHAR2(4); -- Variabile per il codice comune + T_REGIONE NUMBER; -- Variabile per la regione +BEGIN + -- Estrarre il codice comune direttamente + SELECT SUBSTR(CONVERTI_OMO_CODICE(CODICE_FISCALE), 12, 4) + INTO T_COD_CF + FROM VIEW_EXPORT_SCONTI + WHERE ID = P_ID; + + -- Verificare ed estrarre la regione associata al codice comune + SELECT REGIONE + INTO T_REGIONE + FROM COMUNE + WHERE COD_CF = T_COD_CF AND REGIONE = 19; + + -- Restituire 1 se la regione è 19, altrimenti 0 + RETURN CASE + WHEN T_REGIONE = 19 THEN 1 + ELSE 0 + END; + +EXCEPTION + -- Gestione delle eccezioni (es. nessun record trovato) + WHEN NO_DATA_FOUND THEN + RETURN 0; -- Restituire 0 se non ci sono dati + WHEN OTHERS THEN + -- Log dell'errore se necessario (facoltativo) + RAISE; -- Ritornare l'errore originale +END FN_ISNATIVO; / -- --- CALCOLAETAFROMTODATE (Function) +-- FN_ISRESIDENTE (Function) -- -- Dependencies: --- GETPERIODOANNIMESIGIORNI (Function) --- DUAL (Synonym) +-- ACCOUNT_NUCLEO_FAMILIARE (Table) +-- COMUNE (Table) +-- DOMANDA (Table) +-- VIEW_EXPORT_SCONTI (View) -- STANDARD (Package) -- SYS_STUB_FOR_PURITY_ANALYSIS (Package) -- -CREATE OR REPLACE FUNCTION CALCOLAETAFROMTODATE ( -P_START_DATA IN VARCHAR2, -P_END_DATA IN VARCHAR2 -) -RETURN number IS - ETA number; - START_DATA_CALCOLO date; - END_DATA_CALCOLO date; -BEGIN - ETA := 0;-- Punti per Età - START_DATA_CALCOLO := TO_DATE(P_START_DATA,'dd/mm/YYYY hh24:mi:ss');-- Data definita dall'accordo sindacale - END_DATA_CALCOLO := TO_DATE(P_END_DATA,'dd/mm/YYYY hh24:mi:ss');-- Data definita dall'accordo sindacale +CREATE OR REPLACE FUNCTION "FN_ISRESIDENTE" ( + P_ID IN NUMBER +) RETURN NUMBER IS + T_REGIONE NUMBER; -- Variabile per la regione + CTR_STATO INT; + T_ID_DOMANDA INT; + T_ID_ACCOUNT INT; + T_BENEFICIARIO VARCHAR2(255); + T_COMUNE_RESIDENZA VARCHAR2(255); +BEGIN - -- Calcolo del punteggio per anzianità di posizione - --SELECT (ROUND((END_DATA_CALCOLO - DATA_NASCITA)/365)) - SELECT GETPERIODOANNIMESIGIORNI(START_DATA_CALCOLO, END_DATA_CALCOLO, 'ANNI') - INTO ETA - from DUAL; + -- Estrarre il codice comune direttamente + SELECT ID_DOMANDA, STATO, CODICE_FISCALE, COMUNE_RESIDENZA + INTO T_ID_DOMANDA, CTR_STATO, T_BENEFICIARIO, T_COMUNE_RESIDENZA + FROM VIEW_EXPORT_SCONTI + WHERE ID = P_ID; + - IF ETA IS NULL THEN - ETA := 0; + IF CTR_STATO = 0 THEN + SELECT ID_ACCOUNT INTO T_ID_ACCOUNT FROM DOMANDA WHERE ID = T_ID_DOMANDA; + SELECT DISTINCT(COMUNE_RESIDENZA) INTO T_COMUNE_RESIDENZA FROM ACCOUNT_NUCLEO_FAMILIARE WHERE CODICE_FISCALE = T_BENEFICIARIO AND ID_ACCOUNT = T_ID_ACCOUNT; + END IF; + + -- Verificare ed estrarre la regione associata al codice comune + SELECT REGIONE + INTO T_REGIONE + FROM COMUNE + WHERE UPPER(DESCRIZIONE) = UPPER(T_COMUNE_RESIDENZA) AND REGIONE = 19 AND ATTIVO = 1; + - RETURN ETA; -END; + -- Restituire 1 se CODICE_REGIONE è un comune italiano o di uno stato UE, altrimenti 0 + RETURN CASE + WHEN T_REGIONE = 19 THEN 1 + ELSE 0 + END; + +EXCEPTION + -- Gestione delle eccezioni (es. nessun record trovato) + WHEN NO_DATA_FOUND THEN + RETURN 0; -- Restituire 0 se non ci sono dati + WHEN OTHERS THEN + -- Log dell'errore se necessario (facoltativo) + RAISE; -- Ritornare l'errore originale +END FN_ISRESIDENTE; +/ + + +-- +-- FN_ISRESIDENTE_OPT (Function) +-- +-- Dependencies: +-- ACCOUNT_NUCLEO_FAMILIARE (Table) +-- COMUNE (Table) +-- DOMANDA (Table) +-- VIEW_EXPORT_SCONTI (View) +-- STANDARD (Package) +-- SYS_STUB_FOR_PURITY_ANALYSIS (Package) +-- +CREATE OR REPLACE FUNCTION "FN_ISRESIDENTE_OPT" ( + P_ID IN NUMBER +) RETURN NUMBER IS + T_REGIONE NUMBER; + T_COMUNE_RESIDENZA VARCHAR2(255); +BEGIN + -- Recupero i dettagli necessari in una singola query + SELECT + NVL(COMUNE_RESIDENZA, ''), REGIONE + INTO + T_COMUNE_RESIDENZA, T_REGIONE + FROM ( + SELECT + VE.COMUNE_RESIDENZA, + C.REGIONE + FROM + VIEW_EXPORT_SCONTI VE + LEFT JOIN DOMANDA D ON VE.ID_DOMANDA = D.ID + LEFT JOIN ACCOUNT_NUCLEO_FAMILIARE ANF ON ANF.CODICE_FISCALE = VE.CODICE_FISCALE AND ANF.ID_ACCOUNT = D.ID_ACCOUNT + LEFT JOIN COMUNE C ON UPPER(C.DESCRIZIONE) = UPPER(VE.COMUNE_RESIDENZA) AND C.ATTIVO = 1 + WHERE + VE.ID = P_ID AND VE.STATO = 0 + ) DATA; + + -- Ritorna 1 se la regione è valida, altrimenti 0 + RETURN CASE + WHEN T_REGIONE = 19 THEN 1 + ELSE 0 + END; +EXCEPTION + WHEN NO_DATA_FOUND THEN + RETURN 0; -- Nessun dato trovato + WHEN OTHERS THEN + RETURN 0; -- Opzionalmente logga errori qui +END FN_ISRESIDENTE_OPT; +/ + + +-- +-- SPPRESAINCARICO (Procedure) +-- +-- Dependencies: +-- SPPRESAINCARICO_DDG_NATALIZIO (Procedure) +-- SPPRESAINCARICO_PRIORITARI (Procedure) +-- SPPRESAINCARICO_RESIDENTI (Procedure) +-- STANDARD (Package) +-- SYS_STUB_FOR_PURITY_ANALYSIS (Package) +-- +CREATE OR REPLACE PROCEDURE SPPRESAINCARICO ( + DATA_INIZIO IN DATE, + DATA_FINE IN DATE, + TIPO IN INT +) AS + +BEGIN + + CASE TIPO + WHEN 0 THEN + SPPRESAINCARICO_RESIDENTI(DATA_INIZIO, DATA_FINE); + WHEN 1 THEN + SPPRESAINCARICO_PRIORITARI(DATA_INIZIO, DATA_FINE); + ELSE + SPPRESAINCARICO_DDG_NATALIZIO(DATA_INIZIO, DATA_FINE); +END CASE; +END SPPRESAINCARICO; / @@ -4010,6 +7180,33 @@ ALTER TABLE DOMANDA_SCONTI ADD ( ENABLE VALIDATE); +ALTER TABLE DOMANDA_SCONTI_IMPORTI_LOG ADD ( + CONSTRAINT DOMANDA_SCONTI_IMPORTI_LOG_R01 + FOREIGN KEY (ID_DOMANDA_SCONTI) + REFERENCES DOMANDA_SCONTI (ID) + ENABLE VALIDATE); + +ALTER TABLE DOMANDA_SCONTI_IMPORTI_LOG ADD ( + CONSTRAINT FK_ID_DOMANDA_SCONTI + FOREIGN KEY (ID_DOMANDA) + REFERENCES DOMANDA (ID) + ENABLE VALIDATE); + + +ALTER TABLE DOMANDA_SCONTI_INTEGRAZIONE ADD ( + CONSTRAINT DOMANDA_SCONTI_INTEGRAZIONE_R01 + FOREIGN KEY (ID_RICHIESTA) + REFERENCES DOMANDA_SCONTI (ID) + ENABLE VALIDATE); + + +ALTER TABLE RICHIESTA_INTEGRAZIONE ADD ( + CONSTRAINT FK_INTEGRAZIONE_DOMANDA + FOREIGN KEY (ID_DOMANDA_SCONTI) + REFERENCES DOMANDA_SCONTI (ID) + ENABLE VALIDATE); + + ALTER TABLE AEROPORTI_COMPAGNIE ADD ( CONSTRAINT AEROPORTI_COMPAGNIE_R01 FOREIGN KEY (AEROPORTO)