CREATE TABLE mnp_report_agcom ( anno Varchar(4), mese Varchar(2), tipo Varchar(10), csv Varchar(4000), data_creazione DATE DEFAULT SYSDATE NOT NULL ) TABLESPACE TAB_DWH / ALTER TABLE mnp_report_agcom ADD ( CONSTRAINT PK_mnp_report_agcom PRIMARY KEY (anno,mese,tipo) USING INDEX TABLESPACE TAB_IDX_MEDIUM ); ------------package ----------------------------------------------------------------- ----------------------------------------------------------------- ----------------------------------------------------------------- CREATE OR REPLACE PACKAGE dwh.agcom IS PROCEDURE runallbydate; PROCEDURE runall (anno IN VARCHAR, mese IN VARCHAR); PROCEDURE calc1r (anno IN VARCHAR, mese IN VARCHAR); PROCEDURE calc2r (anno IN VARCHAR, mese IN VARCHAR); PROCEDURE calc3r (anno IN VARCHAR, mese IN VARCHAR); PROCEDURE calc3d (anno IN VARCHAR, mese IN VARCHAR); PROCEDURE calc4r (anno IN VARCHAR, mese IN VARCHAR); PROCEDURE calc4d (anno IN VARCHAR, mese IN VARCHAR); PROCEDURE calc5t (anno IN VARCHAR, mese IN VARCHAR); PROCEDURE calc6 (anno IN VARCHAR, mese IN VARCHAR); PROCEDURE calc5a (anno IN VARCHAR, mese IN VARCHAR); PROCEDURE calc5s (anno IN VARCHAR, mese IN VARCHAR); PROCEDURE calc7 (anno IN VARCHAR, mese IN VARCHAR); PROCEDURE calc8r_1 (anno IN VARCHAR, mese IN VARCHAR); PROCEDURE calc8r_2 (anno IN VARCHAR, mese IN VARCHAR); PROCEDURE calc8r_3 (anno IN VARCHAR, mese IN VARCHAR); PROCEDURE calcdatigenerali (anno IN VARCHAR, mese IN VARCHAR); END; / CREATE OR REPLACE PACKAGE BODY dwh.agcom IS PROCEDURE runall (anno IN VARCHAR, mese IN VARCHAR) IS BEGIN calc1r (anno, mese); calc2r (anno, mese); calc3r (anno, mese); calc3d (anno, mese); calc4r (anno, mese); calc4d (anno, mese); calc5t (anno, mese); calc6 (anno, mese); calc5a (anno, mese); calc5s (anno, mese); calc7 (anno, mese); calc8r_1 (anno, mese); calc8r_2 (anno, mese); calc8r_3 (anno, mese); calcdatigenerali (anno, mese); END; PROCEDURE runallbydate IS anno VARCHAR (4); mese VARCHAR (2); BEGIN anno := TO_CHAR (ADD_MONTHS (SYSDATE, -1), 'yyyy'); mese := TO_CHAR (ADD_MONTHS (SYSDATE, -1), 'mm'); runall (anno, mese); END; PROCEDURE calc1r (anno IN VARCHAR, mese IN VARCHAR) IS -- COSTANTI tipo VARCHAR (10) NOT NULL DEFAULT '1R'; returncar VARCHAR (1) NOT NULL DEFAULT CHR (13); spaziocar VARCHAR (1) NOT NULL DEFAULT CHR (10); -- data_inizio DATE; data_fine DATE; line VARCHAR (1000); csv VARCHAR (4000); CURSOR cur_res (data_inizio DATE, data_fine DATE) IS SELECT 'TIMG' || ';' || donor || ';' || richieste || ';' AS csv FROM (SELECT NVL (an.id_amministrativo, ss.don) donor, ss.rec recipient, NVL (SUM (ss.richieste), 0) richieste FROM (SELECT codice_operatore_don_eff don, codice_operatore_rec_eff rec, COUNT (a.id_richiesta) AS richieste FROM mnp.mnp_gestione_richiesta_rec@mnp a WHERE dataricezionerichiesta BETWEEN data_inizio AND data_fine AND a.codice_operatore_rec_eff = 'TIMG' AND a.richiestaadhoc = 0 AND id_richiesta NOT IN ( SELECT id_richiesta FROM mnp.mnp_storico_richiesta_rec@mnp WHERE stato_a = 3 AND stato_da = -1 AND dataricezionerichiesta BETWEEN data_inizio AND data_fine) GROUP BY codice_operatore_don_eff, codice_operatore_rec_eff UNION ALL SELECT a.codice_operatore_donating don, a.codice_operatore_recipient rec, COUNT (a.id_richiesta) AS richieste FROM mnp.mnp_gest_rich_donor_virt@mnp a WHERE a.dataricezionerichiesta BETWEEN data_inizio AND data_fine AND a.codice_operatore_recipient = 'TIMG' AND a.richiestaadhoc = 0 AND a.id_richiesta NOT IN ( SELECT id_richiesta FROM mnp.mnp_storico_rich_don_virt@mnp WHERE stato_a = 3 AND stato_da = 1 AND dataricezionerichiesta BETWEEN data_inizio AND data_fine) GROUP BY codice_operatore_donating, codice_operatore_recipient) ss, mnp.mnp_anagrafica_operatori@mnp an WHERE an.id_operatore = ss.don (+) GROUP BY an.id_amministrativo, ss.don, ss.rec ORDER BY ss.don); BEGIN data_inizio := TO_DATE (anno || '-' || mese || '-01', 'yyyy-mm-dd'); data_fine := LAST_DAY (data_inizio); OPEN cur_res (data_inizio, data_fine); LOOP FETCH cur_res INTO line; EXIT WHEN cur_res%NOTFOUND; csv := csv || line || returncar || spaziocar; END LOOP; CLOSE cur_res; INSERT INTO mnp_report_agcom (anno, mese, tipo, csv ) VALUES (anno, mese, tipo, csv ); COMMIT; EXCEPTION WHEN OTHERS THEN DBMS_OUTPUT.put_line (SQLERRM); END; PROCEDURE calc2r (anno IN VARCHAR, mese IN VARCHAR) IS -- COSTANTI tipo VARCHAR (10) NOT NULL DEFAULT '2R'; returncar VARCHAR (1) NOT NULL DEFAULT CHR (13); spaziocar VARCHAR (1) NOT NULL DEFAULT CHR (10); -- line VARCHAR (1000); csv VARCHAR (4000); CURSOR cur_res IS SELECT 'TIMG' || ';' || donor || ';' || richieste || ';' AS csv FROM (SELECT NVL (an.id_amministrativo, ss.don) donor, ss.rec recipient, NVL (SUM (ss.richieste),0) richieste FROM (SELECT codice_operatore_don_eff don, codice_operatore_rec_eff rec, COUNT (id_richiesta) AS richieste FROM mnp.mnp_gestione_richiesta_rec@mnp WHERE codice_operatore_rec_eff = 'TIMG' AND richiestaadhoc = 0 AND stato IN (2, 3) GROUP BY codice_operatore_don_eff, codice_operatore_rec_eff UNION SELECT codice_operatore_donating don, codice_operatore_recipient rec, COUNT (a.id_richiesta) AS richieste FROM mnp.mnp_gest_rich_donor_virt@mnp a WHERE a.codice_operatore_recipient = 'TIMG' AND a.richiestaadhoc = 0 AND stato IN (1, 3) GROUP BY codice_operatore_donating, codice_operatore_recipient) ss, mnp.mnp_anagrafica_operatori@mnp an WHERE an.id_operatore = ss.don(+) GROUP BY an.id_amministrativo, ss.don, ss.rec ORDER BY ss.don); BEGIN OPEN cur_res; LOOP FETCH cur_res INTO line; EXIT WHEN cur_res%NOTFOUND; csv := csv || line || returncar || spaziocar; END LOOP; CLOSE cur_res; INSERT INTO mnp_report_agcom (anno, mese, tipo, csv ) VALUES (anno, mese, tipo, csv ); COMMIT; EXCEPTION WHEN OTHERS THEN DBMS_OUTPUT.put_line (SQLERRM); END; PROCEDURE calc3r (anno IN VARCHAR, mese IN VARCHAR) IS -- COSTANTI tipo VARCHAR (10) NOT NULL DEFAULT '3R'; returncar VARCHAR (1) NOT NULL DEFAULT CHR (13); spaziocar VARCHAR (1) NOT NULL DEFAULT CHR (10); -- data_inizio DATE; data_fine DATE; line VARCHAR (1000); csv VARCHAR (4000); CURSOR cur_res (data_inizio DATE, data_fine DATE) IS SELECT d || ';' || DON || ';' || v || ';' AS csv FROM ( SELECT 1 AS ord, '1 - NON UNIVOCITÀ DEL CODICE RICHIESTA' AS d, g.codice_operatore_don_eff don, NVL (COUNT (g.id_richiesta), 0) v FROM mnp.mnp_gestione_richiesta_rec@mnp g WHERE stato IN (9) AND dataricezionerichiesta BETWEEN data_inizio AND data_fine AND codice_operatore_rec_eff = 'TIMG' AND richiestaadhoc = 0 GROUP BY g.codice_operatore_don_eff UNION SELECT 2 AS ord, DECODE (c.codice_causale, 3, '2 - MANUTENZIONE PROGRAMMATA', 8, '3 - OVERFLOW', 7, '4 - WAITING LIST', NULL ) AS d, codice_operatore_don_eff AS don, COUNT (g.causale_accodamento) AS v FROM mnp.mnp_causale_accodamento@mnp c, mnp.mnp_gestione_richiesta_rec@mnp g WHERE stato IN (5) AND g.causale_accodamento = c.desc_causale AND dataricezionerichiesta BETWEEN data_inizio AND data_fine AND codice_operatore_rec_eff = 'TIMG' AND richiestaadhoc = 0 AND c.codice_causale IN (3, 7, 8) GROUP BY 2, DECODE (c.codice_causale, 3, '2 - MANUTENZIONE PROGRAMMATA', 8, '3 - OVERFLOW', 7, '4 - WAITING LIST', NULL ), codice_operatore_don_eff UNION SELECT 3 AS ord, c.cod_causale_rifiuto || '-' || c.causale AS d, a.codice_operatore_don_eff AS don, COUNT (c.cod_causale_rifiuto) FROM mnp.mnp_gestione_richiesta_rec@mnp a, mnp.mnp_causale_rifiuto@mnp c WHERE a.codice_rifiuto_validazione LIKE '%' || c.cod_causale_rifiuto || ';%' AND stato = 7 AND dataricezionerichiesta BETWEEN data_inizio AND data_fine AND codice_operatore_rec_eff = 'TIMG' AND richiestaadhoc = 0 AND c.cod_causale_rifiuto BETWEEN 20 AND 30 GROUP BY 3, c.cod_causale_rifiuto || '-' || c.causale, a.codice_operatore_don_eff UNION SELECT 15 AS ord, 'VALIDATE POSITIVAMENTE' AS d, a.codice_operatore_don_eff AS don, COUNT (s.id_richiesta) AS v FROM mnp.mnp_storico_richiesta_rec@mnp s, mnp.mnp_gestione_richiesta_rec@mnp a WHERE a.id_richiesta = s.id_richiesta AND s.stato_a = 8 AND a.dataricezionerichiesta BETWEEN data_inizio AND data_fine AND a.richiestaadhoc = 0 AND a.codice_operatore_rec_eff = 'TIMG' GROUP BY 15, 'VALIDATE POSITIVAMENTE', a.codice_operatore_don_eff UNION SELECT 4 AS ord, 'RICHIESTE NUMEROSITA DI CAUSALI CONTEMPORANEE- 1 CAUSALE' AS d, a.codice_operatore_don_eff AS don, NVL (COUNT (a.id_richiesta), 0) AS v FROM mnp.mnp_storico_richiesta_rec@mnp s, mnp.mnp_gestione_richiesta_rec@mnp a WHERE a.id_richiesta = s.id_richiesta AND s.stato_a = 7 AND a.dataricezionerichiesta BETWEEN data_inizio AND data_fine AND a.richiestaadhoc = 0 AND a.codice_operatore_rec_eff = 'TIMG' AND LENGTH (a.codice_rifiuto_validazione) = 3 GROUP BY 4, 'RICHIESTE NUMEROSITA DI CAUSALI CONTEMPORANEE 1 CAUSALE', a.codice_operatore_don_eff UNION SELECT 5 AS ord, 'RICHIESTE NUMEROSITA DI CAUSALI CONTEMPORANEE- 2 CAUSALE' AS d, a.codice_operatore_don_eff AS don, NVL (COUNT (a.id_richiesta), 0) AS v FROM mnp.mnp_storico_richiesta_rec@mnp s, mnp.mnp_gestione_richiesta_rec@mnp a WHERE a.id_richiesta = s.id_richiesta AND s.stato_a = 7 AND a.dataricezionerichiesta BETWEEN data_inizio AND data_fine AND a.richiestaadhoc = 0 AND a.codice_operatore_rec_eff = 'TIMG' AND LENGTH (a.codice_rifiuto_validazione) = 6 GROUP BY 5, 'RICHIESTE NUMEROSITA DI CAUSALI CONTEMPORANEE 2 CAUSALE', a.codice_operatore_don_eff UNION SELECT 6 AS ord, 'RICHIESTE NUMEROSITA DI CAUSALI CONTEMPORANEE- 3 CAUSALE' AS d, a.codice_operatore_don_eff AS don, NVL (COUNT (a.id_richiesta), 0) AS v FROM mnp.mnp_storico_richiesta_rec@mnp s, mnp.mnp_gestione_richiesta_rec@mnp a WHERE a.id_richiesta = s.id_richiesta AND s.stato_a = 7 AND a.dataricezionerichiesta BETWEEN data_inizio AND data_fine AND a.richiestaadhoc = 0 AND a.codice_operatore_rec_eff = 'TIMG' AND LENGTH (a.codice_rifiuto_validazione) = 9 GROUP BY 6, 'RICHIESTE NUMEROSITA DI CAUSALI CONTEMPORANEE 3 CAUSALE', a.codice_operatore_don_eff UNION SELECT 7 AS ord, 'RICHIESTE NUMEROSITA DI CAUSALI CONTEMPORANEE- 4 CAUSALE' AS d, a.codice_operatore_don_eff AS don, NVL (COUNT (a.id_richiesta), 0) AS v FROM mnp.mnp_storico_richiesta_rec@mnp s, mnp.mnp_gestione_richiesta_rec@mnp a WHERE a.id_richiesta = s.id_richiesta AND s.stato_a = 7 AND a.dataricezionerichiesta BETWEEN data_inizio AND data_fine AND a.richiestaadhoc = 0 AND a.codice_operatore_rec_eff = 'TIMG' AND LENGTH (a.codice_rifiuto_validazione) = 12 GROUP BY 7, 'RICHIESTE NUMEROSITA DI CAUSALI CONTEMPORANEE 4 CAUSALE', a.codice_operatore_don_eff UNION SELECT 8 AS ord, 'RICHIESTE NUMEROSITA DI CAUSALI CONTEMPORANEE- 5 CAUSALE' AS d, a.codice_operatore_don_eff AS don, NVL (COUNT (a.id_richiesta), 0) AS v FROM mnp.mnp_storico_richiesta_rec@mnp s, mnp.mnp_gestione_richiesta_rec@mnp a WHERE a.id_richiesta = s.id_richiesta AND s.stato_a = 7 AND a.dataricezionerichiesta BETWEEN data_inizio AND data_fine AND a.richiestaadhoc = 0 AND a.codice_operatore_rec_eff = 'TIMG' AND LENGTH (a.codice_rifiuto_validazione) = 15 GROUP BY 8, 'RICHIESTE NUMEROSITA DI CAUSALI CONTEMPORANEE 5 CAUSALE', a.codice_operatore_don_eff UNION SELECT 9 AS ord, 'RICHIESTE NUMEROSITA DI CAUSALI CONTEMPORANEE- 6 CAUSALE' AS d, a.codice_operatore_don_eff AS don, NVL (COUNT (a.id_richiesta), 0) AS v FROM mnp.mnp_storico_richiesta_rec@mnp s, mnp.mnp_gestione_richiesta_rec@mnp a WHERE a.id_richiesta = s.id_richiesta AND s.stato_a = 7 AND a.dataricezionerichiesta BETWEEN data_inizio AND data_fine AND a.richiestaadhoc = 0 AND a.codice_operatore_rec_eff = 'TIMG' AND LENGTH (a.codice_rifiuto_validazione) = 18 GROUP BY 9, 'RICHIESTE NUMEROSITA DI CAUSALI CONTEMPORANEE 6 CAUSALE', a.codice_operatore_don_eff UNION SELECT 10 AS ord, 'RICHIESTE NUMEROSITA DI CAUSALI CONTEMPORANEE- 7 CAUSALE' AS d, a.codice_operatore_don_eff AS don, NVL (COUNT (a.id_richiesta), 0) AS v FROM mnp.mnp_storico_richiesta_rec@mnp s, mnp.mnp_gestione_richiesta_rec@mnp a WHERE a.id_richiesta = s.id_richiesta AND s.stato_a = 7 AND a.dataricezionerichiesta BETWEEN data_inizio AND data_fine AND a.richiestaadhoc = 0 AND a.codice_operatore_rec_eff = 'TIMG' AND LENGTH (a.codice_rifiuto_validazione) = 21 GROUP BY 10, 'RICHIESTE NUMEROSITA DI CAUSALI CONTEMPORANEE 7 CAUSALE', a.codice_operatore_don_eff UNION SELECT 11 AS ord, 'RICHIESTE NUMEROSITA DI CAUSALI CONTEMPORANEE- 8 CAUSALE' AS d, a.codice_operatore_don_eff AS don, NVL (COUNT (a.id_richiesta), 0) AS v FROM mnp.mnp_storico_richiesta_rec@mnp s, mnp.mnp_gestione_richiesta_rec@mnp a WHERE a.id_richiesta = s.id_richiesta AND s.stato_a = 7 AND a.dataricezionerichiesta BETWEEN data_inizio AND data_fine AND a.richiestaadhoc = 0 AND a.codice_operatore_rec_eff = 'TIMG' AND LENGTH (a.codice_rifiuto_validazione) = 24 GROUP BY 11, 'RICHIESTE NUMEROSITA DI CAUSALI CONTEMPORANEE 8 CAUSALE', a.codice_operatore_don_eff UNION SELECT 12 AS ord, 'RICHIESTE NUMEROSITA DI CAUSALI CONTEMPORANEE- 9 CAUSALE' AS d, a.codice_operatore_don_eff AS don, NVL (COUNT (a.id_richiesta), 0) AS v FROM mnp.mnp_storico_richiesta_rec@mnp s, mnp.mnp_gestione_richiesta_rec@mnp a WHERE a.id_richiesta = s.id_richiesta AND s.stato_a = 7 AND a.dataricezionerichiesta BETWEEN data_inizio AND data_fine AND a.richiestaadhoc = 0 AND a.codice_operatore_rec_eff = 'TIMG' AND LENGTH (a.codice_rifiuto_validazione) = 27 GROUP BY 12, 'RICHIESTE NUMEROSITA DI CAUSALI CONTEMPORANEE 9 CAUSALE', a.codice_operatore_don_eff UNION SELECT 13 AS ord, 'RICHIESTE NUMEROSITA DI CAUSALI CONTEMPORANEE- 10 CAUSALE' AS d, a.codice_operatore_don_eff AS don, NVL (COUNT (a.id_richiesta), 0) AS v FROM mnp.mnp_storico_richiesta_rec@mnp s, mnp.mnp_gestione_richiesta_rec@mnp a WHERE a.id_richiesta = s.id_richiesta AND s.stato_a = 7 AND a.dataricezionerichiesta BETWEEN data_inizio AND data_fine AND a.richiestaadhoc = 0 AND a.codice_operatore_rec_eff = 'TIMG' AND LENGTH (a.codice_rifiuto_validazione) = 30 GROUP BY 13, 'RICHIESTE NUMEROSITA DI CAUSALI CONTEMPORANEE 10 CAUSALE', a.codice_operatore_don_eff UNION SELECT 14 AS ord, 'RICHIESTE NUMEROSITA DI CAUSALI CONTEMPORANEE- 11 CAUSALE' AS d, a.codice_operatore_don_eff AS don, NVL (COUNT (a.id_richiesta), 0) AS v FROM mnp.mnp_storico_richiesta_rec@mnp s, mnp.mnp_gestione_richiesta_rec@mnp a WHERE a.id_richiesta = s.id_richiesta AND s.stato_a = 7 AND a.dataricezionerichiesta BETWEEN data_inizio AND data_fine AND a.richiestaadhoc = 0 AND a.codice_operatore_rec_eff = 'TIMG' AND LENGTH (a.codice_rifiuto_validazione) = 33 GROUP BY 14, 'RICHIESTE NUMEROSITA DI CAUSALI CONTEMPORANEE 11 CAUSALE', a.codice_operatore_don_eff ) ORDER BY ord; BEGIN data_inizio := TO_DATE (anno || '-' || mese || '-01', 'yyyy-mm-dd'); data_fine := LAST_DAY (data_inizio); OPEN cur_res (data_inizio, data_fine); LOOP FETCH cur_res INTO line; EXIT WHEN cur_res%NOTFOUND; csv := csv || line || returncar || spaziocar; END LOOP; CLOSE cur_res; INSERT INTO mnp_report_agcom (anno, mese, tipo, csv ) VALUES (anno, mese, tipo, csv ); COMMIT; EXCEPTION WHEN OTHERS THEN DBMS_OUTPUT.put_line (SQLERRM); END; PROCEDURE calc3d (anno IN VARCHAR, mese IN VARCHAR) IS -- COSTANTI tipo VARCHAR (10) NOT NULL DEFAULT '3D'; returncar VARCHAR (1) NOT NULL DEFAULT CHR (13); spaziocar VARCHAR (1) NOT NULL DEFAULT CHR (10); -- data_inizio DATE; data_fine DATE; line VARCHAR (1000); csv VARCHAR (4000); CURSOR cur_res (data_inizio DATE, data_fine DATE) IS SELECT d || ';' || REC || ';' || v || ';' AS csv FROM ( SELECT 1 AS ord, '1 - NON UNIVOCITÀ DEL CODICE RICHIESTA' AS d, G.CODICE_OPERATORE_REC_EFF as REC, NVL(COUNT (g.id_richiesta),0) as V FROM mnp.mnp_gestione_richiesta@mnp g WHERE stato IN (12) AND dataricezionerichiesta BETWEEN data_inizio AND data_fine AND codice_operatore_don_eff = 'TIMG' AND richiestaadhoc = 0 GROUP BY G.CODICE_OPERATORE_REC_EFF UNION SELECT 2 AS ord, DECODE (c.codice_causale, 3, '2 - MANUTENZIONE PROGRAMMATA', 8, '3 - OVERFLOW', 7, '4 - WAITING LIST', NULL ) AS d, G.CODICE_OPERATORE_REC_EFF AS REC, COUNT (g.cod_controllo_presaincarico) AS v FROM mnp.mnp_causale_accodamento@mnp c, mnp.mnp_gestione_richiesta@mnp g WHERE stato IN (4) AND g.cod_controllo_presaincarico = c.codice_causale AND dataricezionerichiesta BETWEEN data_inizio AND data_fine AND codice_operatore_don_eff = 'TIMG' AND richiestaadhoc = 0 GROUP BY 2 , DECODE (c.codice_causale, 3, '2 - MANUTENZIONE PROGRAMMATA', 8, '3 - OVERFLOW', 7, '4 - WAITING LIST', NULL ) , G.CODICE_OPERATORE_REC_EFF UNION SELECT 3 AS ord, c.cod_causale_rifiuto || '-' || c.causale AS D, A.CODICE_OPERATORE_REC_EFF AS REC, COUNT (c.cod_causale_rifiuto) AS V FROM mnp.mnp_gestione_richiesta@mnp a, mnp.mnp_causale_rifiuto@mnp c WHERE a.codice_rifiuto_validazione LIKE '%' || c.cod_causale_rifiuto || ';%' AND stato = 10 AND dataricezionerichiesta BETWEEN data_inizio AND data_fine AND codice_operatore_don_eff = 'TIMG' AND richiestaadhoc = 0 AND c.cod_causale_rifiuto BETWEEN 20 AND 30 group by 3 , c.cod_causale_rifiuto || '-' || c.causale , A.CODICE_OPERATORE_REC_EFF UNION SELECT 5 AS ord, 'VALIDATE POSITIVAMENTE' AS d, A.CODICE_OPERATORE_REC_EFF as REC, COUNT (s.id_richiesta) AS v FROM mnp.mnp_storico_richiesta@mnp s, mnp.mnp_gestione_richiesta@mnp a WHERE a.id_richiesta = s.id_richiesta AND s.stato_a = 7 AND a.dataricezionerichiesta BETWEEN data_inizio AND data_fine AND a.richiestaadhoc = 0 AND a.codice_operatore_don_eff = 'TIMG' GROUP BY 5 , 'VALIDATE POSITIVAMENTE' , A.CODICE_OPERATORE_REC_EFF UNION SELECT 6 AS ord, 'RICHIESTE NUMEROSITA DI CAUSALI CONTEMPORANEE- 1 CAUSALE' AS d, a.codice_operatore_don_eff AS don, NVL (COUNT (a.id_richiesta), 0) AS v FROM mnp.mnp_storico_richiesta@mnp s, mnp.mnp_gestione_richiesta@mnp a WHERE a.id_richiesta = s.id_richiesta AND s.stato_a = 10 AND a.dataricezionerichiesta BETWEEN data_inizio AND data_fine AND a.richiestaadhoc = 0 AND a.codice_operatore_don_eff = 'TIMG' AND LENGTH (a.codice_rifiuto_validazione) = 3 GROUP BY 4, 'RICHIESTE NUMEROSITA DI CAUSALI CONTEMPORANEE 1 CAUSALE', a.codice_operatore_don_eff UNION SELECT 7 AS ord, 'RICHIESTE NUMEROSITA DI CAUSALI CONTEMPORANEE- 2 CAUSALE' AS d, a.codice_operatore_don_eff AS don, NVL (COUNT (a.id_richiesta), 0) AS v FROM mnp.mnp_storico_richiesta@mnp s, mnp.mnp_gestione_richiesta@mnp a WHERE a.id_richiesta = s.id_richiesta AND s.stato_a = 10 AND a.dataricezionerichiesta BETWEEN data_inizio AND data_fine AND a.richiestaadhoc = 0 AND a.codice_operatore_don_eff = 'TIMG' AND LENGTH (a.codice_rifiuto_validazione) = 6 GROUP BY 7, 'RICHIESTE NUMEROSITA DI CAUSALI CONTEMPORANEE 2 CAUSALE', a.codice_operatore_don_eff UNION SELECT 8 AS ord, 'RICHIESTE NUMEROSITA DI CAUSALI CONTEMPORANEE- 3 CAUSALE' AS d, a.codice_operatore_don_eff AS don, NVL (COUNT (a.id_richiesta), 0) AS v FROM mnp.mnp_storico_richiesta@mnp s, mnp.mnp_gestione_richiesta@mnp a WHERE a.id_richiesta = s.id_richiesta AND s.stato_a = 10 AND a.dataricezionerichiesta BETWEEN data_inizio AND data_fine AND a.richiestaadhoc = 0 AND a.codice_operatore_don_eff = 'TIMG' AND LENGTH (a.codice_rifiuto_validazione) = 9 GROUP BY 8, 'RICHIESTE NUMEROSITA DI CAUSALI CONTEMPORANEE 3 CAUSALE', a.codice_operatore_don_eff UNION SELECT 9 AS ord, 'RICHIESTE NUMEROSITA DI CAUSALI CONTEMPORANEE- 4 CAUSALE' AS d, a.codice_operatore_don_eff AS don, NVL (COUNT (a.id_richiesta), 0) AS v FROM mnp.mnp_storico_richiesta@mnp s, mnp.mnp_gestione_richiesta@mnp a WHERE a.id_richiesta = s.id_richiesta AND s.stato_a = 10 AND a.dataricezionerichiesta BETWEEN data_inizio AND data_fine AND a.richiestaadhoc = 0 AND a.codice_operatore_don_eff = 'TIMG' AND LENGTH (a.codice_rifiuto_validazione) = 12 GROUP BY 9, 'RICHIESTE NUMEROSITA DI CAUSALI CONTEMPORANEE 4 CAUSALE', a.codice_operatore_don_eff UNION SELECT 10 AS ord, 'RICHIESTE NUMEROSITA DI CAUSALI CONTEMPORANEE- 5 CAUSALE' AS d, a.codice_operatore_don_eff AS don, NVL (COUNT (a.id_richiesta), 0) AS v FROM mnp.mnp_storico_richiesta@mnp s, mnp.mnp_gestione_richiesta@mnp a WHERE a.id_richiesta = s.id_richiesta AND s.stato_a = 10 AND a.dataricezionerichiesta BETWEEN data_inizio AND data_fine AND a.richiestaadhoc = 0 AND a.codice_operatore_don_eff = 'TIMG' AND LENGTH (a.codice_rifiuto_validazione) = 15 GROUP BY 10, 'RICHIESTE NUMEROSITA DI CAUSALI CONTEMPORANEE 5 CAUSALE', a.codice_operatore_don_eff UNION SELECT 11 AS ord, 'RICHIESTE NUMEROSITA DI CAUSALI CONTEMPORANEE- 6 CAUSALE' AS d, a.codice_operatore_don_eff AS don, NVL (COUNT (a.id_richiesta), 0) AS v FROM mnp.mnp_storico_richiesta@mnp s, mnp.mnp_gestione_richiesta@mnp a WHERE a.id_richiesta = s.id_richiesta AND s.stato_a = 10 AND a.dataricezionerichiesta BETWEEN data_inizio AND data_fine AND a.richiestaadhoc = 0 AND a.codice_operatore_don_eff = 'TIMG' AND LENGTH (a.codice_rifiuto_validazione) = 18 GROUP BY 11, 'RICHIESTE NUMEROSITA DI CAUSALI CONTEMPORANEE 6 CAUSALE', a.codice_operatore_don_eff UNION SELECT 12 AS ord, 'RICHIESTE NUMEROSITA DI CAUSALI CONTEMPORANEE- 7 CAUSALE' AS d, a.codice_operatore_don_eff AS don, NVL (COUNT (a.id_richiesta), 0) AS v FROM mnp.mnp_storico_richiesta@mnp s, mnp.mnp_gestione_richiesta@mnp a WHERE a.id_richiesta = s.id_richiesta AND s.stato_a = 10 AND a.dataricezionerichiesta BETWEEN data_inizio AND data_fine AND a.richiestaadhoc = 0 AND a.codice_operatore_don_eff = 'TIMG' AND LENGTH (a.codice_rifiuto_validazione) = 21 GROUP BY 12, 'RICHIESTE NUMEROSITA DI CAUSALI CONTEMPORANEE 7 CAUSALE', a.codice_operatore_don_eff UNION SELECT 13 AS ord, 'RICHIESTE NUMEROSITA DI CAUSALI CONTEMPORANEE- 8 CAUSALE' AS d, a.codice_operatore_don_eff AS don, NVL (COUNT (a.id_richiesta), 0) AS v FROM mnp.mnp_storico_richiesta@mnp s, mnp.mnp_gestione_richiesta@mnp a WHERE a.id_richiesta = s.id_richiesta AND s.stato_a = 10 AND a.dataricezionerichiesta BETWEEN data_inizio AND data_fine AND a.richiestaadhoc = 0 AND a.codice_operatore_don_eff = 'TIMG' AND LENGTH (a.codice_rifiuto_validazione) = 24 GROUP BY 12, 'RICHIESTE NUMEROSITA DI CAUSALI CONTEMPORANEE 8 CAUSALE', a.codice_operatore_don_eff UNION SELECT 13 AS ord, 'RICHIESTE NUMEROSITA DI CAUSALI CONTEMPORANEE- 9 CAUSALE' AS d, a.codice_operatore_don_eff AS don, NVL (COUNT (a.id_richiesta), 0) AS v FROM mnp.mnp_storico_richiesta@mnp s, mnp.mnp_gestione_richiesta@mnp a WHERE a.id_richiesta = s.id_richiesta AND s.stato_a = 10 AND a.dataricezionerichiesta BETWEEN data_inizio AND data_fine AND a.richiestaadhoc = 0 AND a.codice_operatore_don_eff = 'TIMG' AND LENGTH (a.codice_rifiuto_validazione) = 27 GROUP BY 13, 'RICHIESTE NUMEROSITA DI CAUSALI CONTEMPORANEE 9 CAUSALE', a.codice_operatore_don_eff UNION SELECT 14 AS ord, 'RICHIESTE NUMEROSITA DI CAUSALI CONTEMPORANEE- 10 CAUSALE' AS d, a.codice_operatore_don_eff AS don, NVL (COUNT (a.id_richiesta), 0) AS v FROM mnp.mnp_storico_richiesta@mnp s, mnp.mnp_gestione_richiesta@mnp a WHERE a.id_richiesta = s.id_richiesta AND s.stato_a = 10 AND a.dataricezionerichiesta BETWEEN data_inizio AND data_fine AND a.richiestaadhoc = 0 AND a.codice_operatore_don_eff = 'TIMG' AND LENGTH (a.codice_rifiuto_validazione) = 30 GROUP BY 14, 'RICHIESTE NUMEROSITA DI CAUSALI CONTEMPORANEE 10 CAUSALE', a.codice_operatore_don_eff UNION SELECT 15 AS ord, 'RICHIESTE NUMEROSITA DI CAUSALI CONTEMPORANEE- 11 CAUSALE' AS d, a.codice_operatore_don_eff AS don, NVL (COUNT (a.id_richiesta), 0) AS v FROM mnp.mnp_storico_richiesta@mnp s, mnp.mnp_gestione_richiesta@mnp a WHERE a.id_richiesta = s.id_richiesta AND s.stato_a = 10 AND a.dataricezionerichiesta BETWEEN data_inizio AND data_fine AND a.richiestaadhoc = 0 AND a.codice_operatore_don_eff = 'TIMG' AND LENGTH (a.codice_rifiuto_validazione) = 33 GROUP BY 15, 'RICHIESTE NUMEROSITA DI CAUSALI CONTEMPORANEE 11 CAUSALE', a.codice_operatore_don_eff ) ORDER BY ord; BEGIN data_inizio := TO_DATE (anno || '-' || mese || '-01', 'yyyy-mm-dd'); data_fine := LAST_DAY (data_inizio); OPEN cur_res (data_inizio, data_fine); LOOP FETCH cur_res INTO line; EXIT WHEN cur_res%NOTFOUND; csv := csv || line || returncar || spaziocar; END LOOP; CLOSE cur_res; INSERT INTO mnp_report_agcom (anno, mese, tipo, csv ) VALUES (anno, mese, tipo, csv ); COMMIT; EXCEPTION WHEN OTHERS THEN DBMS_OUTPUT.put_line (SQLERRM); END; ---------------------------------------------------------------------------------------------- PROCEDURE calc4r (anno IN VARCHAR, mese IN VARCHAR) IS -- COSTANTI tipo VARCHAR (10) NOT NULL DEFAULT '4R'; returncar VARCHAR (1) NOT NULL DEFAULT CHR (13); spaziocar VARCHAR (1) NOT NULL DEFAULT CHR (10); -- data_inizio DATE; data_fine DATE; line VARCHAR (1000); csv VARCHAR (4000); CURSOR cur_res (data_inizio DATE, data_fine DATE) IS SELECT d || ';' || DON || ';' || v || ';' AS csv FROM ( SELECT 1 AS ord, '1 - NON UNIVOCITÀ DEL CODICE RICHIESTA' AS d, g.codice_operatore_don_eff don, NVL (COUNT (g.id_richiesta), 0) v FROM mnp.mnp_gestione_richiesta_rec@mnp g WHERE stato IN (9) AND dataricezionerichiesta BETWEEN data_inizio AND data_fine AND codice_operatore_rec_eff = 'TIMG' AND richiestaadhoc = 0 AND FLAG_PREVALIDAZIONE ='Y' GROUP BY g.codice_operatore_don_eff UNION SELECT 2 AS ord, DECODE (c.codice_causale, 3, '2 - MANUTENZIONE PROGRAMMATA', 8, '3 - OVERFLOW', 7, '4 - WAITING LIST', NULL ) AS d, codice_operatore_don_eff AS don, COUNT (g.causale_accodamento) AS v FROM mnp.mnp_causale_accodamento@mnp c, mnp.mnp_gestione_richiesta_rec@mnp g WHERE stato IN (5) AND g.causale_accodamento = c.desc_causale AND dataricezionerichiesta BETWEEN data_inizio AND data_fine AND codice_operatore_rec_eff = 'TIMG' AND richiestaadhoc = 0 AND c.codice_causale IN (3, 7, 8) AND FLAG_PREVALIDAZIONE ='Y' GROUP BY 2, DECODE (c.codice_causale, 3, '2 - MANUTENZIONE PROGRAMMATA', 8, '3 - OVERFLOW', 7, '4 - WAITING LIST', NULL ), codice_operatore_don_eff UNION SELECT 3 AS ord, c.cod_causale_rifiuto || '-' || c.causale AS d, a.codice_operatore_don_eff AS don, COUNT (c.cod_causale_rifiuto) FROM mnp.mnp_gestione_richiesta_rec@mnp a, mnp.mnp_causale_rifiuto@mnp c WHERE a.codice_rifiuto_validazione LIKE '%' || c.cod_causale_rifiuto || ';%' AND stato = 7 AND dataricezionerichiesta BETWEEN data_inizio AND data_fine AND codice_operatore_rec_eff = 'TIMG' AND richiestaadhoc = 0 AND c.cod_causale_rifiuto BETWEEN 20 AND 30 AND FLAG_PREVALIDAZIONE ='Y' GROUP BY 3, c.cod_causale_rifiuto || '-' || c.causale, a.codice_operatore_don_eff UNION SELECT 15 AS ord, 'VALIDATE POSITIVAMENTE' AS d, a.codice_operatore_don_eff AS don, COUNT (s.id_richiesta) AS v FROM mnp.mnp_storico_richiesta_rec@mnp s, mnp.mnp_gestione_richiesta_rec@mnp a WHERE a.id_richiesta = s.id_richiesta AND s.stato_a = 8 AND a.dataricezionerichiesta BETWEEN data_inizio AND data_fine AND a.richiestaadhoc = 0 AND a.codice_operatore_rec_eff = 'TIMG' AND FLAG_PREVALIDAZIONE ='Y' GROUP BY 15, 'VALIDATE POSITIVAMENTE', a.codice_operatore_don_eff UNION SELECT 4 AS ord, 'RICHIESTE NUMEROSITA DI CAUSALI CONTEMPORANEE- 1 CAUSALE' AS d, a.codice_operatore_don_eff AS don, NVL (COUNT (a.id_richiesta), 0) AS v FROM mnp.mnp_storico_richiesta_rec@mnp s, mnp.mnp_gestione_richiesta_rec@mnp a WHERE a.id_richiesta = s.id_richiesta AND s.stato_a = 7 AND a.dataricezionerichiesta BETWEEN data_inizio AND data_fine AND a.richiestaadhoc = 0 AND a.codice_operatore_rec_eff = 'TIMG' AND LENGTH (a.codice_rifiuto_validazione) = 3 AND FLAG_PREVALIDAZIONE ='Y' GROUP BY 4, 'RICHIESTE NUMEROSITA DI CAUSALI CONTEMPORANEE 1 CAUSALE', a.codice_operatore_don_eff UNION SELECT 5 AS ord, 'RICHIESTE NUMEROSITA DI CAUSALI CONTEMPORANEE- 2 CAUSALE' AS d, a.codice_operatore_don_eff AS don, NVL (COUNT (a.id_richiesta), 0) AS v FROM mnp.mnp_storico_richiesta_rec@mnp s, mnp.mnp_gestione_richiesta_rec@mnp a WHERE a.id_richiesta = s.id_richiesta AND s.stato_a = 7 AND a.dataricezionerichiesta BETWEEN data_inizio AND data_fine AND a.richiestaadhoc = 0 AND a.codice_operatore_rec_eff = 'TIMG' AND LENGTH (a.codice_rifiuto_validazione) = 6 AND FLAG_PREVALIDAZIONE ='Y' GROUP BY 5, 'RICHIESTE NUMEROSITA DI CAUSALI CONTEMPORANEE 2 CAUSALE', a.codice_operatore_don_eff UNION SELECT 6 AS ord, 'RICHIESTE NUMEROSITA DI CAUSALI CONTEMPORANEE- 3 CAUSALE' AS d, a.codice_operatore_don_eff AS don, NVL (COUNT (a.id_richiesta), 0) AS v FROM mnp.mnp_storico_richiesta_rec@mnp s, mnp.mnp_gestione_richiesta_rec@mnp a WHERE a.id_richiesta = s.id_richiesta AND s.stato_a = 7 AND a.dataricezionerichiesta BETWEEN data_inizio AND data_fine AND a.richiestaadhoc = 0 AND a.codice_operatore_rec_eff = 'TIMG' AND LENGTH (a.codice_rifiuto_validazione) = 9 AND FLAG_PREVALIDAZIONE ='Y' GROUP BY 6, 'RICHIESTE NUMEROSITA DI CAUSALI CONTEMPORANEE 3 CAUSALE', a.codice_operatore_don_eff UNION SELECT 7 AS ord, 'RICHIESTE NUMEROSITA DI CAUSALI CONTEMPORANEE- 4 CAUSALE' AS d, a.codice_operatore_don_eff AS don, NVL (COUNT (a.id_richiesta), 0) AS v FROM mnp.mnp_storico_richiesta_rec@mnp s, mnp.mnp_gestione_richiesta_rec@mnp a WHERE a.id_richiesta = s.id_richiesta AND s.stato_a = 7 AND a.dataricezionerichiesta BETWEEN data_inizio AND data_fine AND a.richiestaadhoc = 0 AND a.codice_operatore_rec_eff = 'TIMG' AND LENGTH (a.codice_rifiuto_validazione) = 12 AND FLAG_PREVALIDAZIONE ='Y' GROUP BY 7, 'RICHIESTE NUMEROSITA DI CAUSALI CONTEMPORANEE 4 CAUSALE', a.codice_operatore_don_eff UNION SELECT 8 AS ord, 'RICHIESTE NUMEROSITA DI CAUSALI CONTEMPORANEE- 5 CAUSALE' AS d, a.codice_operatore_don_eff AS don, NVL (COUNT (a.id_richiesta), 0) AS v FROM mnp.mnp_storico_richiesta_rec@mnp s, mnp.mnp_gestione_richiesta_rec@mnp a WHERE a.id_richiesta = s.id_richiesta AND s.stato_a = 7 AND a.dataricezionerichiesta BETWEEN data_inizio AND data_fine AND a.richiestaadhoc = 0 AND a.codice_operatore_rec_eff = 'TIMG' AND LENGTH (a.codice_rifiuto_validazione) = 15 AND FLAG_PREVALIDAZIONE ='Y' GROUP BY 8, 'RICHIESTE NUMEROSITA DI CAUSALI CONTEMPORANEE 5 CAUSALE', a.codice_operatore_don_eff UNION SELECT 9 AS ord, 'RICHIESTE NUMEROSITA DI CAUSALI CONTEMPORANEE- 6 CAUSALE' AS d, a.codice_operatore_don_eff AS don, NVL (COUNT (a.id_richiesta), 0) AS v FROM mnp.mnp_storico_richiesta_rec@mnp s, mnp.mnp_gestione_richiesta_rec@mnp a WHERE a.id_richiesta = s.id_richiesta AND s.stato_a = 7 AND a.dataricezionerichiesta BETWEEN data_inizio AND data_fine AND a.richiestaadhoc = 0 AND a.codice_operatore_rec_eff = 'TIMG' AND LENGTH (a.codice_rifiuto_validazione) = 18 AND FLAG_PREVALIDAZIONE ='Y' GROUP BY 9, 'RICHIESTE NUMEROSITA DI CAUSALI CONTEMPORANEE 6 CAUSALE', a.codice_operatore_don_eff UNION SELECT 10 AS ord, 'RICHIESTE NUMEROSITA DI CAUSALI CONTEMPORANEE- 7 CAUSALE' AS d, a.codice_operatore_don_eff AS don, NVL (COUNT (a.id_richiesta), 0) AS v FROM mnp.mnp_storico_richiesta_rec@mnp s, mnp.mnp_gestione_richiesta_rec@mnp a WHERE a.id_richiesta = s.id_richiesta AND s.stato_a = 7 AND a.dataricezionerichiesta BETWEEN data_inizio AND data_fine AND a.richiestaadhoc = 0 AND a.codice_operatore_rec_eff = 'TIMG' AND LENGTH (a.codice_rifiuto_validazione) = 21 AND FLAG_PREVALIDAZIONE ='Y' GROUP BY 10, 'RICHIESTE NUMEROSITA DI CAUSALI CONTEMPORANEE 7 CAUSALE', a.codice_operatore_don_eff UNION SELECT 11 AS ord, 'RICHIESTE NUMEROSITA DI CAUSALI CONTEMPORANEE- 8 CAUSALE' AS d, a.codice_operatore_don_eff AS don, NVL (COUNT (a.id_richiesta), 0) AS v FROM mnp.mnp_storico_richiesta_rec@mnp s, mnp.mnp_gestione_richiesta_rec@mnp a WHERE a.id_richiesta = s.id_richiesta AND s.stato_a = 7 AND a.dataricezionerichiesta BETWEEN data_inizio AND data_fine AND a.richiestaadhoc = 0 AND a.codice_operatore_rec_eff = 'TIMG' AND LENGTH (a.codice_rifiuto_validazione) = 24 AND FLAG_PREVALIDAZIONE ='Y' GROUP BY 11, 'RICHIESTE NUMEROSITA DI CAUSALI CONTEMPORANEE 8 CAUSALE', a.codice_operatore_don_eff UNION SELECT 12 AS ord, 'RICHIESTE NUMEROSITA DI CAUSALI CONTEMPORANEE- 9 CAUSALE' AS d, a.codice_operatore_don_eff AS don, NVL (COUNT (a.id_richiesta), 0) AS v FROM mnp.mnp_storico_richiesta_rec@mnp s, mnp.mnp_gestione_richiesta_rec@mnp a WHERE a.id_richiesta = s.id_richiesta AND s.stato_a = 7 AND a.dataricezionerichiesta BETWEEN data_inizio AND data_fine AND a.richiestaadhoc = 0 AND a.codice_operatore_rec_eff = 'TIMG' AND LENGTH (a.codice_rifiuto_validazione) = 27 AND FLAG_PREVALIDAZIONE ='Y' GROUP BY 12, 'RICHIESTE NUMEROSITA DI CAUSALI CONTEMPORANEE 9 CAUSALE', a.codice_operatore_don_eff UNION SELECT 13 AS ord, 'RICHIESTE NUMEROSITA DI CAUSALI CONTEMPORANEE- 10 CAUSALE' AS d, a.codice_operatore_don_eff AS don, NVL (COUNT (a.id_richiesta), 0) AS v FROM mnp.mnp_storico_richiesta_rec@mnp s, mnp.mnp_gestione_richiesta_rec@mnp a WHERE a.id_richiesta = s.id_richiesta AND s.stato_a = 7 AND a.dataricezionerichiesta BETWEEN data_inizio AND data_fine AND a.richiestaadhoc = 0 AND a.codice_operatore_rec_eff = 'TIMG' AND LENGTH (a.codice_rifiuto_validazione) = 30 AND FLAG_PREVALIDAZIONE ='Y' GROUP BY 13, 'RICHIESTE NUMEROSITA DI CAUSALI CONTEMPORANEE 11 CAUSALE', a.codice_operatore_don_eff UNION SELECT 14 AS ord, 'RICHIESTE NUMEROSITA DI CAUSALI CONTEMPORANEE- 11 CAUSALE' AS d, a.codice_operatore_don_eff AS don, NVL (COUNT (a.id_richiesta), 0) AS v FROM mnp.mnp_storico_richiesta_rec@mnp s, mnp.mnp_gestione_richiesta_rec@mnp a WHERE a.id_richiesta = s.id_richiesta AND s.stato_a = 7 AND a.dataricezionerichiesta BETWEEN data_inizio AND data_fine AND a.richiestaadhoc = 0 AND a.codice_operatore_rec_eff = 'TIMG' AND LENGTH (a.codice_rifiuto_validazione) = 33 AND FLAG_PREVALIDAZIONE ='Y' GROUP BY 14, 'RICHIESTE NUMEROSITA DI CAUSALI CONTEMPORANEE 11 CAUSALE', a.codice_operatore_don_eff ) ORDER BY ord; BEGIN data_inizio := TO_DATE (anno || '-' || mese || '-01', 'yyyy-mm-dd'); data_fine := LAST_DAY (data_inizio); OPEN cur_res (data_inizio, data_fine); LOOP FETCH cur_res INTO line; EXIT WHEN cur_res%NOTFOUND; csv := csv || line || returncar || spaziocar; END LOOP; CLOSE cur_res; INSERT INTO mnp_report_agcom (anno, mese, tipo, csv ) VALUES (anno, mese, tipo, csv ); COMMIT; EXCEPTION WHEN OTHERS THEN DBMS_OUTPUT.put_line (SQLERRM); END; PROCEDURE calc4d (anno IN VARCHAR, mese IN VARCHAR) IS -- COSTANTI tipo VARCHAR (10) NOT NULL DEFAULT '4D'; returncar VARCHAR (1) NOT NULL DEFAULT CHR (13); spaziocar VARCHAR (1) NOT NULL DEFAULT CHR (10); -- data_inizio DATE; data_fine DATE; line VARCHAR (1000); csv VARCHAR (4000); CURSOR cur_res (data_inizio DATE, data_fine DATE) IS SELECT d || ';' || REC || ';' || v || ';' AS csv FROM ( SELECT 1 AS ord, '1 - NON UNIVOCITÀ DEL CODICE RICHIESTA' AS d, G.CODICE_OPERATORE_REC_EFF as REC, NVL(COUNT (g.id_richiesta),0) as V FROM mnp.mnp_gestione_richiesta@mnp g WHERE stato IN (12) AND dataricezionerichiesta BETWEEN data_inizio AND data_fine AND codice_operatore_don_eff = 'TIMG' AND richiestaadhoc = 0 AND FLAG_PREVALIDAZIONE = 'Y' GROUP BY G.CODICE_OPERATORE_REC_EFF UNION SELECT 2 AS ord, DECODE (c.codice_causale, 3, '2 - MANUTENZIONE PROGRAMMATA', 8, '3 - OVERFLOW', 7, '4 - WAITING LIST', NULL ) AS d, G.CODICE_OPERATORE_REC_EFF AS REC, COUNT (g.cod_controllo_presaincarico) AS v FROM mnp.mnp_causale_accodamento@mnp c, mnp.mnp_gestione_richiesta@mnp g WHERE stato IN (4) AND g.cod_controllo_presaincarico = c.codice_causale AND dataricezionerichiesta BETWEEN data_inizio AND data_fine AND codice_operatore_don_eff = 'TIMG' AND richiestaadhoc = 0 AND FLAG_PREVALIDAZIONE = 'Y' GROUP BY 2 , DECODE (c.codice_causale, 3, '2 - MANUTENZIONE PROGRAMMATA', 8, '3 - OVERFLOW', 7, '4 - WAITING LIST', NULL ) , G.CODICE_OPERATORE_REC_EFF UNION SELECT 3 AS ord, c.cod_causale_rifiuto || '-' || c.causale AS D, A.CODICE_OPERATORE_REC_EFF AS REC, COUNT (c.cod_causale_rifiuto) AS V FROM mnp.mnp_gestione_richiesta@mnp a, mnp.mnp_causale_rifiuto@mnp c WHERE a.codice_rifiuto_validazione LIKE '%' || c.cod_causale_rifiuto || ';%' AND stato = 10 AND dataricezionerichiesta BETWEEN data_inizio AND data_fine AND codice_operatore_don_eff = 'TIMG' AND richiestaadhoc = 0 AND c.cod_causale_rifiuto BETWEEN 20 AND 30 AND FLAG_PREVALIDAZIONE = 'Y' group by 3 , c.cod_causale_rifiuto || '-' || c.causale , A.CODICE_OPERATORE_REC_EFF UNION SELECT 5 AS ord, 'VALIDATE POSITIVAMENTE' AS d, A.CODICE_OPERATORE_REC_EFF as REC, COUNT (s.id_richiesta) AS v FROM mnp.mnp_storico_richiesta@mnp s, mnp.mnp_gestione_richiesta@mnp a WHERE a.id_richiesta = s.id_richiesta AND s.stato_a = 7 AND a.dataricezionerichiesta BETWEEN data_inizio AND data_fine AND a.richiestaadhoc = 0 AND a.codice_operatore_don_eff = 'TIMG' AND FLAG_PREVALIDAZIONE = 'Y' GROUP BY 5 , 'VALIDATE POSITIVAMENTE' , A.CODICE_OPERATORE_REC_EFF UNION SELECT 6 AS ord, 'RICHIESTE NUMEROSITA DI CAUSALI CONTEMPORANEE- 1 CAUSALE' AS d, a.codice_operatore_don_eff AS don, NVL (COUNT (a.id_richiesta), 0) AS v FROM mnp.mnp_storico_richiesta@mnp s, mnp.mnp_gestione_richiesta@mnp a WHERE a.id_richiesta = s.id_richiesta AND s.stato_a = 10 AND a.dataricezionerichiesta BETWEEN data_inizio AND data_fine AND a.richiestaadhoc = 0 AND a.codice_operatore_don_eff = 'TIMG' AND LENGTH (a.codice_rifiuto_validazione) = 3 AND FLAG_PREVALIDAZIONE = 'Y' GROUP BY 4, 'RICHIESTE NUMEROSITA DI CAUSALI CONTEMPORANEE 1 CAUSALE', a.codice_operatore_don_eff UNION SELECT 7 AS ord, 'RICHIESTE NUMEROSITA DI CAUSALI CONTEMPORANEE- 2 CAUSALE' AS d, a.codice_operatore_don_eff AS don, NVL (COUNT (a.id_richiesta), 0) AS v FROM mnp.mnp_storico_richiesta@mnp s, mnp.mnp_gestione_richiesta@mnp a WHERE a.id_richiesta = s.id_richiesta AND s.stato_a = 10 AND a.dataricezionerichiesta BETWEEN data_inizio AND data_fine AND a.richiestaadhoc = 0 AND a.codice_operatore_don_eff = 'TIMG' AND LENGTH (a.codice_rifiuto_validazione) = 6 AND FLAG_PREVALIDAZIONE = 'Y' GROUP BY 7, 'RICHIESTE NUMEROSITA DI CAUSALI CONTEMPORANEE 2 CAUSALE', a.codice_operatore_don_eff UNION SELECT 8 AS ord, 'RICHIESTE NUMEROSITA DI CAUSALI CONTEMPORANEE- 3 CAUSALE' AS d, a.codice_operatore_don_eff AS don, NVL (COUNT (a.id_richiesta), 0) AS v FROM mnp.mnp_storico_richiesta@mnp s, mnp.mnp_gestione_richiesta@mnp a WHERE a.id_richiesta = s.id_richiesta AND s.stato_a = 10 AND a.dataricezionerichiesta BETWEEN data_inizio AND data_fine AND a.richiestaadhoc = 0 AND a.codice_operatore_don_eff = 'TIMG' AND LENGTH (a.codice_rifiuto_validazione) = 9 AND FLAG_PREVALIDAZIONE = 'Y' GROUP BY 8, 'RICHIESTE NUMEROSITA DI CAUSALI CONTEMPORANEE 3 CAUSALE', a.codice_operatore_don_eff UNION SELECT 9 AS ord, 'RICHIESTE NUMEROSITA DI CAUSALI CONTEMPORANEE- 4 CAUSALE' AS d, a.codice_operatore_don_eff AS don, NVL (COUNT (a.id_richiesta), 0) AS v FROM mnp.mnp_storico_richiesta@mnp s, mnp.mnp_gestione_richiesta@mnp a WHERE a.id_richiesta = s.id_richiesta AND s.stato_a = 10 AND a.dataricezionerichiesta BETWEEN data_inizio AND data_fine AND a.richiestaadhoc = 0 AND a.codice_operatore_don_eff = 'TIMG' AND LENGTH (a.codice_rifiuto_validazione) = 12 AND FLAG_PREVALIDAZIONE = 'Y' GROUP BY 9, 'RICHIESTE NUMEROSITA DI CAUSALI CONTEMPORANEE 4 CAUSALE', a.codice_operatore_don_eff UNION SELECT 10 AS ord, 'RICHIESTE NUMEROSITA DI CAUSALI CONTEMPORANEE- 5 CAUSALE' AS d, a.codice_operatore_don_eff AS don, NVL (COUNT (a.id_richiesta), 0) AS v FROM mnp.mnp_storico_richiesta@mnp s, mnp.mnp_gestione_richiesta@mnp a WHERE a.id_richiesta = s.id_richiesta AND s.stato_a = 10 AND a.dataricezionerichiesta BETWEEN data_inizio AND data_fine AND a.richiestaadhoc = 0 AND a.codice_operatore_don_eff = 'TIMG' AND LENGTH (a.codice_rifiuto_validazione) = 15 AND FLAG_PREVALIDAZIONE = 'Y' GROUP BY 10, 'RICHIESTE NUMEROSITA DI CAUSALI CONTEMPORANEE 5 CAUSALE', a.codice_operatore_don_eff UNION SELECT 11 AS ord, 'RICHIESTE NUMEROSITA DI CAUSALI CONTEMPORANEE- 6 CAUSALE' AS d, a.codice_operatore_don_eff AS don, NVL (COUNT (a.id_richiesta), 0) AS v FROM mnp.mnp_storico_richiesta@mnp s, mnp.mnp_gestione_richiesta@mnp a WHERE a.id_richiesta = s.id_richiesta AND s.stato_a = 10 AND a.dataricezionerichiesta BETWEEN data_inizio AND data_fine AND a.richiestaadhoc = 0 AND a.codice_operatore_don_eff = 'TIMG' AND LENGTH (a.codice_rifiuto_validazione) = 18 AND FLAG_PREVALIDAZIONE = 'Y' GROUP BY 11, 'RICHIESTE NUMEROSITA DI CAUSALI CONTEMPORANEE 6 CAUSALE', a.codice_operatore_don_eff UNION SELECT 12 AS ord, 'RICHIESTE NUMEROSITA DI CAUSALI CONTEMPORANEE- 7 CAUSALE' AS d, a.codice_operatore_don_eff AS don, NVL (COUNT (a.id_richiesta), 0) AS v FROM mnp.mnp_storico_richiesta@mnp s, mnp.mnp_gestione_richiesta@mnp a WHERE a.id_richiesta = s.id_richiesta AND s.stato_a = 10 AND a.dataricezionerichiesta BETWEEN data_inizio AND data_fine AND a.richiestaadhoc = 0 AND a.codice_operatore_don_eff = 'TIMG' AND LENGTH (a.codice_rifiuto_validazione) = 21 AND FLAG_PREVALIDAZIONE = 'Y' GROUP BY 12, 'RICHIESTE NUMEROSITA DI CAUSALI CONTEMPORANEE 7 CAUSALE', a.codice_operatore_don_eff UNION SELECT 13 AS ord, 'RICHIESTE NUMEROSITA DI CAUSALI CONTEMPORANEE- 8 CAUSALE' AS d, a.codice_operatore_don_eff AS don, NVL (COUNT (a.id_richiesta), 0) AS v FROM mnp.mnp_storico_richiesta@mnp s, mnp.mnp_gestione_richiesta@mnp a WHERE a.id_richiesta = s.id_richiesta AND s.stato_a = 10 AND a.dataricezionerichiesta BETWEEN data_inizio AND data_fine AND a.richiestaadhoc = 0 AND a.codice_operatore_don_eff = 'TIMG' AND LENGTH (a.codice_rifiuto_validazione) = 24 AND FLAG_PREVALIDAZIONE = 'Y' GROUP BY 12, 'RICHIESTE NUMEROSITA DI CAUSALI CONTEMPORANEE 8 CAUSALE', a.codice_operatore_don_eff UNION SELECT 13 AS ord, 'RICHIESTE NUMEROSITA DI CAUSALI CONTEMPORANEE- 9 CAUSALE' AS d, a.codice_operatore_don_eff AS don, NVL (COUNT (a.id_richiesta), 0) AS v FROM mnp.mnp_storico_richiesta@mnp s, mnp.mnp_gestione_richiesta@mnp a WHERE a.id_richiesta = s.id_richiesta AND s.stato_a = 10 AND a.dataricezionerichiesta BETWEEN data_inizio AND data_fine AND a.richiestaadhoc = 0 AND a.codice_operatore_don_eff = 'TIMG' AND LENGTH (a.codice_rifiuto_validazione) = 27 AND FLAG_PREVALIDAZIONE = 'Y' GROUP BY 13, 'RICHIESTE NUMEROSITA DI CAUSALI CONTEMPORANEE 9 CAUSALE', a.codice_operatore_don_eff UNION SELECT 14 AS ord, 'RICHIESTE NUMEROSITA DI CAUSALI CONTEMPORANEE- 10 CAUSALE' AS d, a.codice_operatore_don_eff AS don, NVL (COUNT (a.id_richiesta), 0) AS v FROM mnp.mnp_storico_richiesta@mnp s, mnp.mnp_gestione_richiesta@mnp a WHERE a.id_richiesta = s.id_richiesta AND s.stato_a = 10 AND a.dataricezionerichiesta BETWEEN data_inizio AND data_fine AND a.richiestaadhoc = 0 AND a.codice_operatore_don_eff = 'TIMG' AND LENGTH (a.codice_rifiuto_validazione) = 30 AND FLAG_PREVALIDAZIONE = 'Y' GROUP BY 14, 'RICHIESTE NUMEROSITA DI CAUSALI CONTEMPORANEE 10 CAUSALE', a.codice_operatore_don_eff UNION SELECT 15 AS ord, 'RICHIESTE NUMEROSITA DI CAUSALI CONTEMPORANEE- 11 CAUSALE' AS d, a.codice_operatore_don_eff AS don, NVL (COUNT (a.id_richiesta), 0) AS v FROM mnp.mnp_storico_richiesta@mnp s, mnp.mnp_gestione_richiesta@mnp a WHERE a.id_richiesta = s.id_richiesta AND s.stato_a = 10 AND a.dataricezionerichiesta BETWEEN data_inizio AND data_fine AND a.richiestaadhoc = 0 AND a.codice_operatore_don_eff = 'TIMG' AND LENGTH (a.codice_rifiuto_validazione) = 33 AND FLAG_PREVALIDAZIONE = 'Y' GROUP BY 15, 'RICHIESTE NUMEROSITA DI CAUSALI CONTEMPORANEE 11 CAUSALE', a.codice_operatore_don_eff ) ORDER BY ord; BEGIN data_inizio := TO_DATE (anno || '-' || mese || '-01', 'yyyy-mm-dd'); data_fine := LAST_DAY (data_inizio); OPEN cur_res (data_inizio, data_fine); LOOP FETCH cur_res INTO line; EXIT WHEN cur_res%NOTFOUND; csv := csv || line || returncar || spaziocar; END LOOP; CLOSE cur_res; INSERT INTO mnp_report_agcom (anno, mese, tipo, csv ) VALUES (anno, mese, tipo, csv ); COMMIT; EXCEPTION WHEN OTHERS THEN DBMS_OUTPUT.put_line (SQLERRM); END; ---------------------------------------------------------------------------------------------- PROCEDURE calc5t (anno IN VARCHAR, mese IN VARCHAR) IS -- COSTANTI tipo VARCHAR (10) NOT NULL DEFAULT '5T'; returncar VARCHAR (1) NOT NULL DEFAULT CHR (13); spaziocar VARCHAR (1) NOT NULL DEFAULT CHR (10); -- data_inizio DATE; data_fine DATE; line VARCHAR (1000); csv VARCHAR (4000); CURSOR cur_res (data_inizio DATE, data_fine DATE) IS SELECT donor || ';' || recipient || ';' || richieste || ';' AS csv FROM (SELECT NVL (an.id_amministrativo, ss.don) donor, ss.rec recipient, SUM (ss.richieste) richieste FROM (SELECT 'REC' AS processo, codice_operatore_don_eff don, codice_operatore_rec_eff rec, COUNT (a.id_richiesta) AS richieste FROM mnp.mnp_gestione_richiesta_rec@mnp a WHERE id_richiesta IN ( SELECT id_richiesta FROM mnp.mnp_storico_richiesta_rec@mnp WHERE stato_a = 12 AND data_lavorazione BETWEEN data_inizio AND data_fine) AND id_richiesta NOT IN ( SELECT id_richiesta FROM mnp.mnp_storico_richiesta_rec@mnp WHERE stato_a = 3 AND stato_da = -1 AND data_lavorazione BETWEEN data_inizio AND data_fine) GROUP BY codice_operatore_don_eff, codice_operatore_rec_eff UNION SELECT 'DV', codice_operatore_donating don, codice_operatore_recipient rec, COUNT (a.id_richiesta) AS richieste FROM mnp.mnp_gest_rich_donor_virt@mnp a WHERE id_richiesta IN ( SELECT id_richiesta FROM mnp.mnp_storico_rich_don_virt@mnp WHERE stato_a = 11 AND data_lavorazione BETWEEN data_inizio AND data_fine) AND id_richiesta NOT IN ( SELECT id_richiesta FROM mnp.mnp_storico_rich_don_virt@mnp WHERE stato_a = 3 AND stato_da = 1 AND data_lavorazione BETWEEN data_inizio AND data_fine) GROUP BY codice_operatore_donating, codice_operatore_recipient UNION SELECT 'DON', codice_operatore_don_eff don, codice_operatore_rec_eff rec, COUNT (a.id_richiesta) AS richieste FROM mnp.mnp_gestione_richiesta@mnp a WHERE id_richiesta IN ( SELECT id_richiesta FROM mnp.mnp_storico_richiesta@mnp WHERE stato_a = 16 AND data_lavorazione BETWEEN data_inizio AND data_fine) GROUP BY codice_operatore_don_eff, codice_operatore_rec_eff UNION SELECT 'RV', codice_operatore_donating don, codice_operatore_recipient rec, COUNT (a.id_richiesta) AS richieste FROM mnp.mnp_gest_rich_rec_virt@mnp a WHERE id_richiesta IN ( SELECT id_richiesta FROM mnp.mnp_storico_rich_rec_virt@mnp WHERE stato_a = 12 AND data_lavorazione BETWEEN data_inizio AND data_fine) AND id_richiesta NOT IN ( SELECT id_richiesta FROM mnp.mnp_storico_rich_rec_virt@mnp WHERE stato_a = 3 AND stato_da = 1 AND data_lavorazione BETWEEN data_inizio AND data_fine) GROUP BY codice_operatore_donating, codice_operatore_recipient UNION SELECT 'TP', codice_operatore_donating don, codice_operatore_recipient rec, COUNT (a.id_richiesta) AS richieste FROM mnp.mnp_gestione_richiesta_porting@mnp a WHERE id_richiesta IN ( SELECT id_richiesta FROM mnp.mnp_storico_porting@mnp WHERE stato_a = 6 AND data_lavorazione BETWEEN data_inizio AND data_fine) GROUP BY codice_operatore_donating, codice_operatore_recipient) ss, mnp.mnp_anagrafica_operatori@mnp an WHERE an.id_operatore = ss.don GROUP BY an.id_amministrativo, ss.don, ss.rec ORDER BY ss.don); BEGIN data_inizio := TO_DATE (anno || '-' || mese || '-01', 'yyyy-mm-dd'); data_fine := LAST_DAY (data_inizio); OPEN cur_res (data_inizio, data_fine); LOOP FETCH cur_res INTO line; EXIT WHEN cur_res%NOTFOUND; csv := csv || line || returncar || spaziocar; END LOOP; CLOSE cur_res; INSERT INTO mnp_report_agcom (anno, mese, tipo, csv ) VALUES (anno, mese, tipo, csv ); COMMIT; EXCEPTION WHEN OTHERS THEN DBMS_OUTPUT.put_line (SQLERRM); END; PROCEDURE calc6 (anno IN VARCHAR, mese IN VARCHAR) IS -- COSTANTI tipo VARCHAR (10) NOT NULL DEFAULT '6'; returncar VARCHAR (1) NOT NULL DEFAULT CHR (13); spaziocar VARCHAR (1) NOT NULL DEFAULT CHR (10); -- data_inizio DATE; data_fine DATE; line VARCHAR (1000); csv VARCHAR (4000); CURSOR cur_res (data_inizio DATE, data_fine DATE) IS SELECT donor || ';' || recipient || ';' || richieste || ';' AS csv FROM (SELECT NVL (an.id_amministrativo, ss.don) donor, ss.rec recipient, SUM (ss.richieste) richieste FROM (SELECT 'REC' AS processo, codice_operatore_don_eff don, codice_operatore_rec_eff rec, COUNT (a.codice_gruppo) AS richieste FROM mnp.mnp_gestione_richiesta_rec@mnp a WHERE richiestaadhoc = 1 AND id_richiesta IN ( SELECT id_richiesta FROM mnp.mnp_storico_richiesta_rec@mnp WHERE stato_a = 12 AND data_lavorazione BETWEEN (data_inizio) AND (data_fine )) AND id_richiesta NOT IN ( SELECT id_richiesta FROM mnp.mnp_storico_richiesta_rec@mnp WHERE stato_a = 3 AND stato_da = -1 AND data_lavorazione BETWEEN (data_inizio) AND (data_fine )) GROUP BY codice_operatore_don_eff, codice_operatore_rec_eff UNION SELECT 'DV', codice_operatore_donating don, codice_operatore_recipient rec, COUNT (a.codice_gruppo) AS richieste FROM mnp.mnp_gest_rich_donor_virt@mnp a WHERE richiestaadhoc = 1 AND id_richiesta IN ( SELECT id_richiesta FROM mnp.mnp_storico_rich_don_virt@mnp WHERE stato_a = 11 AND data_lavorazione BETWEEN (data_inizio) AND (data_fine )) AND id_richiesta NOT IN ( SELECT id_richiesta FROM mnp.mnp_storico_rich_don_virt@mnp WHERE stato_a = 3 AND stato_da = 1 AND data_lavorazione BETWEEN (data_inizio) AND (data_fine )) GROUP BY codice_operatore_donating, codice_operatore_recipient UNION SELECT 'DON', codice_operatore_don_eff don, codice_operatore_rec_eff rec, COUNT (a.codice_gruppo) AS richieste FROM mnp.mnp_gestione_richiesta@mnp a WHERE richiestaadhoc = 1 AND id_richiesta IN ( SELECT id_richiesta FROM mnp.mnp_storico_richiesta@mnp WHERE stato_a = 16 AND data_lavorazione BETWEEN (data_inizio) AND (data_fine )) GROUP BY codice_operatore_don_eff, codice_operatore_rec_eff UNION SELECT 'RV', codice_operatore_donating don, codice_operatore_recipient rec, COUNT (a.codice_gruppo) AS richieste FROM mnp.mnp_gest_rich_rec_virt@mnp a WHERE richiestaadhoc = 1 AND id_richiesta IN ( SELECT id_richiesta FROM mnp.mnp_storico_rich_rec_virt@mnp WHERE stato_a = 12 AND data_lavorazione BETWEEN (data_inizio) AND (data_fine )) AND id_richiesta NOT IN ( SELECT id_richiesta FROM mnp.mnp_storico_rich_rec_virt@mnp WHERE stato_a = 3 AND stato_da = 1 AND data_lavorazione BETWEEN (data_inizio) AND (data_fine )) GROUP BY codice_operatore_donating, codice_operatore_recipient) ss, mnp.mnp_anagrafica_operatori@mnp an WHERE an.id_operatore = ss.don GROUP BY an.id_amministrativo, ss.don, ss.rec ORDER BY ss.don); BEGIN data_inizio := TO_DATE (anno || '-' || mese || '-01', 'yyyy-mm-dd'); data_fine := LAST_DAY (data_inizio); OPEN cur_res (data_inizio, data_fine); LOOP FETCH cur_res INTO line; EXIT WHEN cur_res%NOTFOUND; csv := csv || line || returncar || spaziocar; END LOOP; CLOSE cur_res; INSERT INTO mnp_report_agcom (anno, mese, tipo, csv ) VALUES (anno, mese, tipo, csv ); COMMIT; EXCEPTION WHEN OTHERS THEN DBMS_OUTPUT.put_line (SQLERRM); END; PROCEDURE calc5a (anno IN VARCHAR, mese IN VARCHAR) IS -- COSTANTI tipo VARCHAR (10) NOT NULL DEFAULT '5A'; returncar VARCHAR (1) NOT NULL DEFAULT CHR (13); spaziocar VARCHAR (1) NOT NULL DEFAULT CHR (10); -- data_inizio DATE; data_fine DATE; line VARCHAR (1000); csv VARCHAR (4000); CURSOR cur_res (data_inizio DATE, data_fine DATE) IS SELECT donor || ';' || recipient || ';' || richieste || ';' AS csv FROM (SELECT NVL (an.id_amministrativo, ss.don) donor, ss.rec recipient, SUM (ss.richieste) richieste FROM (SELECT 'REC' AS processo, codice_operatore_don_eff don, codice_operatore_rec_eff rec, COUNT (a.id_richiesta) AS richieste FROM mnp.mnp_gestione_richiesta_rec@mnp a WHERE richiestaadhoc = 1 AND id_richiesta IN ( SELECT id_richiesta FROM mnp.mnp_storico_richiesta_rec@mnp WHERE stato_a = 12 AND data_lavorazione BETWEEN data_inizio AND data_fine) AND id_richiesta NOT IN ( SELECT id_richiesta FROM mnp.mnp_storico_richiesta_rec@mnp WHERE stato_a = 3 AND stato_da = -1 AND data_lavorazione BETWEEN data_inizio AND data_fine) GROUP BY codice_operatore_don_eff, codice_operatore_rec_eff UNION SELECT 'DV', codice_operatore_donating don, codice_operatore_recipient rec, COUNT (a.id_richiesta) AS richieste FROM mnp.mnp_gest_rich_donor_virt@mnp a WHERE richiestaadhoc = 1 AND id_richiesta IN ( SELECT id_richiesta FROM mnp.mnp_storico_rich_don_virt@mnp WHERE stato_a = 11 AND data_lavorazione BETWEEN data_inizio AND data_fine) AND id_richiesta NOT IN ( SELECT id_richiesta FROM mnp.mnp_storico_rich_don_virt@mnp WHERE stato_a = 3 AND stato_da = 1 AND data_lavorazione BETWEEN data_inizio AND data_fine) GROUP BY codice_operatore_donating, codice_operatore_recipient UNION SELECT 'DON', codice_operatore_don_eff don, codice_operatore_rec_eff rec, COUNT (a.id_richiesta) AS richieste FROM mnp.mnp_gestione_richiesta@mnp a WHERE richiestaadhoc = 1 AND id_richiesta IN ( SELECT id_richiesta FROM mnp.mnp_storico_richiesta@mnp WHERE stato_a = 16 AND data_lavorazione BETWEEN data_inizio AND data_fine) GROUP BY codice_operatore_don_eff, codice_operatore_rec_eff UNION SELECT 'RV', codice_operatore_donating don, codice_operatore_recipient rec, COUNT (a.id_richiesta) AS richieste FROM mnp.mnp_gest_rich_rec_virt@mnp a WHERE richiestaadhoc = 1 AND id_richiesta IN ( SELECT id_richiesta FROM mnp.mnp_storico_rich_rec_virt@mnp WHERE stato_a = 12 AND data_lavorazione BETWEEN data_inizio AND data_fine) AND id_richiesta NOT IN ( SELECT id_richiesta FROM mnp.mnp_storico_rich_rec_virt@mnp WHERE stato_a = 3 AND stato_da = 1 AND data_lavorazione BETWEEN data_inizio AND data_fine) GROUP BY codice_operatore_donating, codice_operatore_recipient) ss, mnp.mnp_anagrafica_operatori@mnp an WHERE an.id_operatore = ss.don GROUP BY an.id_amministrativo, ss.don, ss.rec ORDER BY ss.don); BEGIN data_inizio := TO_DATE (anno || '-' || mese || '-01', 'yyyy-mm-dd'); data_fine := LAST_DAY (data_inizio); OPEN cur_res (data_inizio, data_fine); LOOP FETCH cur_res INTO line; EXIT WHEN cur_res%NOTFOUND; csv := csv || line || returncar || spaziocar; END LOOP; CLOSE cur_res; INSERT INTO mnp_report_agcom (anno, mese, tipo, csv ) VALUES (anno, mese, tipo, csv ); COMMIT; EXCEPTION WHEN OTHERS THEN DBMS_OUTPUT.put_line (SQLERRM); END; PROCEDURE calc5s (anno IN VARCHAR, mese IN VARCHAR) IS -- COSTANTI tipo VARCHAR (10) NOT NULL DEFAULT '5S'; returncar VARCHAR (1) NOT NULL DEFAULT CHR (13); spaziocar VARCHAR (1) NOT NULL DEFAULT CHR (10); -- data_inizio DATE; data_fine DATE; line VARCHAR (1000); csv VARCHAR (4000); CURSOR cur_res (data_inizio DATE, data_fine DATE) IS SELECT donor || ';' || recipient || ';' || richieste || ';' AS csv FROM (SELECT NVL (an.id_amministrativo, ss.don) donor, ss.rec recipient, SUM (ss.richieste) richieste FROM (SELECT 'REC' AS processo, codice_operatore_don_eff don, codice_operatore_rec_eff rec, COUNT (a.id_richiesta) AS richieste FROM mnp.mnp_gestione_richiesta_rec@mnp a WHERE richiestaadhoc = 0 AND id_richiesta IN ( SELECT id_richiesta FROM mnp.mnp_storico_richiesta_rec@mnp WHERE stato_a = 12 AND data_lavorazione BETWEEN data_inizio AND data_fine) AND id_richiesta NOT IN ( SELECT id_richiesta FROM mnp.mnp_storico_richiesta_rec@mnp WHERE stato_a = 3 AND stato_da = -1 AND data_lavorazione BETWEEN data_inizio AND data_fine) GROUP BY codice_operatore_don_eff, codice_operatore_rec_eff UNION SELECT 'DV', codice_operatore_donating don, codice_operatore_recipient rec, COUNT (a.id_richiesta) AS richieste FROM mnp.mnp_gest_rich_donor_virt@mnp a WHERE richiestaadhoc = 0 AND id_richiesta IN ( SELECT id_richiesta FROM mnp.mnp_storico_rich_don_virt@mnp WHERE stato_a = 11 AND data_lavorazione BETWEEN data_inizio AND data_fine) AND id_richiesta NOT IN ( SELECT id_richiesta FROM mnp.mnp_storico_rich_don_virt@mnp WHERE stato_a = 3 AND stato_da = 1 AND data_lavorazione BETWEEN data_inizio AND data_fine) GROUP BY codice_operatore_donating, codice_operatore_recipient UNION SELECT 'DON', codice_operatore_don_eff don, codice_operatore_rec_eff rec, COUNT (a.id_richiesta) AS richieste FROM mnp.mnp_gestione_richiesta@mnp a WHERE richiestaadhoc = 0 AND id_richiesta IN ( SELECT id_richiesta FROM mnp.mnp_storico_richiesta@mnp WHERE stato_a = 16 AND data_lavorazione BETWEEN data_inizio AND data_fine) GROUP BY codice_operatore_don_eff, codice_operatore_rec_eff UNION SELECT 'RV', codice_operatore_donating don, codice_operatore_recipient rec, COUNT (a.id_richiesta) AS richieste FROM mnp.mnp_gest_rich_rec_virt@mnp a WHERE richiestaadhoc = 0 AND id_richiesta IN ( SELECT id_richiesta FROM mnp.mnp_storico_rich_rec_virt@mnp WHERE stato_a = 12 AND data_lavorazione BETWEEN data_inizio AND data_fine) AND id_richiesta NOT IN ( SELECT id_richiesta FROM mnp.mnp_storico_rich_rec_virt@mnp WHERE stato_a = 3 AND stato_da = 1 AND data_lavorazione BETWEEN data_inizio AND data_fine) GROUP BY codice_operatore_donating, codice_operatore_recipient) ss, mnp.mnp_anagrafica_operatori@mnp an WHERE an.id_operatore = ss.don GROUP BY an.id_amministrativo, ss.don, ss.rec ORDER BY ss.don); BEGIN data_inizio := TO_DATE (anno || '-' || mese || '-01', 'yyyy-mm-dd'); data_fine := LAST_DAY (data_inizio); OPEN cur_res (data_inizio, data_fine); LOOP FETCH cur_res INTO line; EXIT WHEN cur_res%NOTFOUND; csv := csv || line || returncar || spaziocar; END LOOP; CLOSE cur_res; INSERT INTO mnp_report_agcom (anno, mese, tipo, csv ) VALUES (anno, mese, tipo, csv ); COMMIT; EXCEPTION WHEN OTHERS THEN DBMS_OUTPUT.put_line (SQLERRM); END; PROCEDURE calc7 (anno IN VARCHAR, mese IN VARCHAR) IS -- COSTANTI tipo VARCHAR (10) NOT NULL DEFAULT '7'; returncar VARCHAR (1) NOT NULL DEFAULT CHR (13); spaziocar VARCHAR (1) NOT NULL DEFAULT CHR (10); -- data_inizio DATE; data_fine DATE; line VARCHAR (1000); csv VARCHAR (4000); CURSOR cur_res (data_inizio DATE, data_fine DATE) IS SELECT x.donor || ';' || x.recipient || ';' || x.richieste || ';' AS csv FROM (SELECT NVL (an.id_amministrativo, ss.don) donor, ss.rec recipient, SUM (ss.richieste) richieste FROM (SELECT 'REC' AS processo, codice_operatore_don_eff don, codice_operatore_rec_eff rec, COUNT (a.id_richiesta) AS richieste FROM mnp.mnp_gestione_richiesta_rec@mnp a WHERE id_richiesta IN ( SELECT id_richiesta FROM mnp.mnp_storico_richiesta_rec@mnp WHERE stato_a = 12 AND data_lavorazione <= data_fine) AND id_richiesta NOT IN ( SELECT id_richiesta FROM mnp.mnp_storico_richiesta_rec@mnp WHERE stato_a = 3 AND stato_da = -1 AND data_lavorazione <= data_fine) GROUP BY codice_operatore_don_eff, codice_operatore_rec_eff UNION SELECT 'DV', codice_operatore_donating don, codice_operatore_recipient rec, COUNT (a.id_richiesta) AS richieste FROM mnp.mnp_gest_rich_donor_virt@mnp a WHERE id_richiesta IN ( SELECT id_richiesta FROM mnp.mnp_storico_rich_don_virt@mnp WHERE stato_a = 11 AND data_lavorazione <= data_fine) AND id_richiesta NOT IN ( SELECT id_richiesta FROM mnp.mnp_storico_rich_don_virt@mnp WHERE stato_a = 3 AND stato_da = 1 AND data_lavorazione <= data_fine) GROUP BY codice_operatore_donating, codice_operatore_recipient UNION SELECT 'DON', codice_operatore_don_eff don, codice_operatore_rec_eff rec, COUNT (a.id_richiesta) AS richieste FROM mnp.mnp_gestione_richiesta@mnp a WHERE id_richiesta IN ( SELECT id_richiesta FROM mnp.mnp_storico_richiesta@mnp WHERE stato_a = 16 AND data_lavorazione <= data_fine) GROUP BY codice_operatore_don_eff, codice_operatore_rec_eff UNION SELECT 'RV', codice_operatore_donating don, codice_operatore_recipient rec, COUNT (a.id_richiesta) AS richieste FROM mnp.mnp_gest_rich_rec_virt@mnp a WHERE id_richiesta IN ( SELECT id_richiesta FROM mnp.mnp_storico_rich_rec_virt@mnp WHERE stato_a = 12 AND data_lavorazione <= data_fine) AND id_richiesta NOT IN ( SELECT id_richiesta FROM mnp.mnp_storico_rich_rec_virt@mnp WHERE stato_a = 3 AND stato_da = 1 AND data_lavorazione <= data_fine) GROUP BY codice_operatore_donating, codice_operatore_recipient UNION SELECT 'TP', codice_operatore_donating don, codice_operatore_recipient rec, COUNT (a.id_richiesta) AS richieste FROM mnp.mnp_gestione_richiesta_porting@mnp a WHERE id_richiesta IN ( SELECT id_richiesta FROM mnp.mnp_storico_porting@mnp WHERE stato_a = 6 AND data_lavorazione <= data_fine) GROUP BY codice_operatore_donating, codice_operatore_recipient) ss, mnp.mnp_anagrafica_operatori@mnp an WHERE an.id_operatore = ss.don GROUP BY an.id_amministrativo, ss.don, ss.rec ORDER BY ss.don) x; BEGIN data_inizio := TO_DATE (anno || '-' || mese || '-01', 'yyyy-mm-dd'); data_fine := LAST_DAY (data_inizio); OPEN cur_res (data_inizio, data_fine); LOOP FETCH cur_res INTO line; EXIT WHEN cur_res%NOTFOUND; csv := csv || line || returncar || spaziocar; END LOOP; CLOSE cur_res; INSERT INTO mnp_report_agcom (anno, mese, tipo, csv ) VALUES (anno, mese, tipo, csv ); COMMIT; EXCEPTION WHEN OTHERS THEN DBMS_OUTPUT.put_line (SQLERRM); END; -------------- -------------- PROCEDURE calc8r_1 (anno IN VARCHAR, mese IN VARCHAR) IS -- COSTANTI tipo VARCHAR (10) NOT NULL DEFAULT '8R_1'; returncar VARCHAR (1) NOT NULL DEFAULT CHR (13); spaziocar VARCHAR (1) NOT NULL DEFAULT CHR (10); -- data_inizio DATE; data_fine DATE; line VARCHAR (1000); csv VARCHAR (4000); CURSOR cur_res (data_inizio DATE, data_fine DATE) IS SELECT donating || ';' || tempo_medio_attivazione || ';' AS csv FROM (SELECT k.donating, ROUND (AVG (k.data_lavorazione - k.dataricezionerichiesta), 2 ) AS tempo_medio_attivazione, COUNT (k.id_richiesta) FROM (SELECT r.codice_operatore_don_eff AS donating, r.dataricezionerichiesta, r.id_richiesta, st.data_lavorazione FROM mnp.mnp_gestione_richiesta_rec@mnp r, mnp.mnp_storico_richiesta_rec@mnp st WHERE r.data_cut_over_aom BETWEEN data_inizio AND data_fine AND r.stato = 12 AND r.codice_operatore_rec_eff = 'TIMG' AND r.richiestaadhoc = 0 AND r.id_richiesta = st.id_richiesta AND st.stato_a = 12 AND r.msisdn NOT IN ( SELECT gg.msisdn FROM mnp.mnp_gestione_richiesta_rec@mnp gg, mnp.mnp_storico_richiesta_rec@mnp gs WHERE gs.stato_a = 7 AND gg.id_richiesta = gs.id_richiesta AND gs.data_lavorazione >= SYSDATE - 30) UNION SELECT r.codice_operatore_don_eff AS donating, xx.dataricezionerichiesta, r.id_richiesta, st.data_lavorazione FROM mnp.mnp_gestione_richiesta_rec@mnp r, mnp.mnp_storico_richiesta_rec@mnp st, (SELECT gg.msisdn, gg.dataricezionerichiesta FROM mnp.mnp_gestione_richiesta_rec@mnp gg, mnp.mnp_storico_richiesta_rec@mnp gs WHERE gs.stato_a = 7 AND gg.id_richiesta = gs.id_richiesta AND gs.data_lavorazione >= SYSDATE - 30) xx WHERE r.data_cut_over_aom BETWEEN data_inizio AND data_fine AND r.stato = 12 AND r.codice_operatore_rec_eff = 'TIMG' AND r.richiestaadhoc = 0 AND r.id_richiesta = st.id_richiesta AND st.stato_a = 12 AND xx.msisdn = r.msisdn AND r.msisdn IN ( SELECT gg.msisdn FROM mnp.mnp_gestione_richiesta_rec@mnp gg, mnp.mnp_storico_richiesta_rec@mnp gs WHERE gs.stato_a = 7 AND gg.id_richiesta = gs.id_richiesta AND gs.data_lavorazione >= SYSDATE - 30)) k GROUP BY k.donating); BEGIN data_inizio := TO_DATE (anno || '-' || mese || '-01', 'yyyy-mm-dd'); data_fine := LAST_DAY (data_inizio); OPEN cur_res (data_inizio, data_fine); LOOP FETCH cur_res INTO line; EXIT WHEN cur_res%NOTFOUND; csv := csv || line || returncar || spaziocar; END LOOP; CLOSE cur_res; INSERT INTO mnp_report_agcom (anno, mese, tipo, csv ) VALUES (anno, mese, tipo, csv ); COMMIT; EXCEPTION WHEN OTHERS THEN DBMS_OUTPUT.put_line (SQLERRM); END; -------------- PROCEDURE calc8r_2 (anno IN VARCHAR, mese IN VARCHAR) IS -- COSTANTI tipo VARCHAR (10) NOT NULL DEFAULT '8R_2'; returncar VARCHAR (1) NOT NULL DEFAULT CHR (13); spaziocar VARCHAR (1) NOT NULL DEFAULT CHR (10); -- data_inizio DATE; data_fine DATE; line VARCHAR (1000); csv VARCHAR (4000); CURSOR cur_res (data_inizio DATE, data_fine DATE) IS SELECT donating || ';' || tempo_medio_realizzazione || ';' AS csv FROM (SELECT r.codice_operatore_don_eff AS donating, AVG (fun_giorni_lavorativi (r.data_cut_over_aom, st.data_lavorazione) ) AS tempo_medio_realizzazione FROM mnp.mnp_gestione_richiesta_rec@mnp r, mnp.mnp_storico_richiesta_rec@mnp st WHERE r.data_cut_over_aom BETWEEN data_inizio AND data_fine AND (st.stato_da = 2 AND st.stato_a = 4) AND r.stato = 12 AND r.codice_operatore_rec_eff = 'TIMG' AND r.richiestaadhoc = 0 AND r.id_richiesta = st.id_richiesta GROUP BY r.codice_operatore_don_eff UNION SELECT dv.codice_operatore_donating AS donating, AVG (fun_giorni_lavorativi (dv.data_cut_over_eff, stdv.data_lavorazione) ) AS tempo_medio_realizzazione FROM mnp.mnp_gest_rich_donor_virt@mnp dv, mnp.mnp_storico_rich_don_virt@mnp stdv WHERE dv.data_cut_over_eff BETWEEN data_inizio AND data_fine AND (stdv.stato_da = 1 AND stdv.stato_a = 2) AND dv.stato = 11 AND dv.codice_operatore_recipient = 'TIMG' AND dv.richiestaadhoc = 0 AND dv.id_richiesta = stdv.id_richiesta GROUP BY dv.codice_operatore_donating); BEGIN data_inizio := TO_DATE (anno || '-' || mese || '-01', 'yyyy-mm-dd'); data_fine := LAST_DAY (data_inizio); OPEN cur_res (data_inizio, data_fine); LOOP FETCH cur_res INTO line; EXIT WHEN cur_res%NOTFOUND; csv := csv || line || returncar || spaziocar; END LOOP; CLOSE cur_res; INSERT INTO mnp_report_agcom (anno, mese, tipo, csv ) VALUES (anno, mese, tipo, csv ); COMMIT; EXCEPTION WHEN OTHERS THEN DBMS_OUTPUT.put_line (SQLERRM); END; PROCEDURE calc8r_3 (anno IN VARCHAR, mese IN VARCHAR) IS -- COSTANTI tipo VARCHAR (10) NOT NULL DEFAULT '8R_3'; returncar VARCHAR (1) NOT NULL DEFAULT CHR (13); spaziocar VARCHAR (1) NOT NULL DEFAULT CHR (10); -- data_inizio DATE; data_fine DATE; line VARCHAR (1000); csv VARCHAR (4000); CURSOR cur_res (data_inizio DATE, data_fine DATE) IS SELECT donating || ';' || num_richieste || ';' AS csv FROM (SELECT r.codice_operatore_don_eff AS donating, COUNT (*) AS num_richieste FROM mnp.mnp_gestione_richiesta_rec@mnp r WHERE r.stato = 11 AND r.data_cut_over_aom BETWEEN data_inizio AND data_fine AND r.codice_operatore_recipient = 'TIMG' AND r.richiestaadhoc = 0 AND r.espletamentoterzeparti IS NOT NULL GROUP BY r.codice_operatore_don_eff UNION SELECT dv.codice_operatore_donating, COUNT (*) AS num_richieste FROM mnp.mnp_gest_rich_donor_virt@mnp dv WHERE dv.data_cut_over_eff BETWEEN data_inizio AND data_fine AND ((dv.stato = 8 AND flag_esp = 1) OR (dv.stato = 10 AND flag_esp = 0)) AND dv.codice_operatore_recipient = 'TIMG' AND dv.richiestaadhoc = 0 AND dv.espletamentoterzeparti IS NOT NULL GROUP BY dv.codice_operatore_donating); BEGIN data_inizio := TO_DATE (anno || '-' || mese || '-01', 'yyyy-mm-dd'); data_fine := LAST_DAY (data_inizio); OPEN cur_res (data_inizio, data_fine); LOOP FETCH cur_res INTO line; EXIT WHEN cur_res%NOTFOUND; csv := csv || line || returncar || spaziocar; END LOOP; CLOSE cur_res; INSERT INTO mnp_report_agcom (anno, mese, tipo, csv ) VALUES (anno, mese, tipo, csv ); COMMIT; EXCEPTION WHEN OTHERS THEN DBMS_OUTPUT.put_line (SQLERRM); END; PROCEDURE calcdatigenerali (anno IN VARCHAR, mese IN VARCHAR) IS -- COSTANTI tipo VARCHAR (10) NOT NULL DEFAULT 'DatiG'; returncar VARCHAR (1) NOT NULL DEFAULT CHR (13); spaziocar VARCHAR (1) NOT NULL DEFAULT CHR (10); -- data_inizio DATE; data_fine DATE; data_inizio_mp DATE; data_fine_mp DATE; line VARCHAR (1000); csv VARCHAR (4000); CURSOR cur_res (data_inizio DATE, data_fine DATE, data_inizio_mp DATE, data_fine_mp DATE) IS SELECT csv FROM (SELECT 'Mese di riferimento (mm/aaaa)' || ';' || mese||'/'|| anno || ';' AS csv, 2 ordine FROM DUAL UNION SELECT 'Codice dell''operatore' || ';' || 'TIM' || ';' AS csv, 1 ordine FROM DUAL UNION SELECT 'Numero di giorni di manutenzione programmata nel mese di riferimento' || ';' || x.totale || ';' AS csv, 8 ordine FROM (SELECT COUNT (*) totale FROM mnp.mnp_data_manutenzione@mnp a WHERE data_manutenzione BETWEEN data_inizio AND data_fine) x UNION SELECT 'Numero di giorni lavorativi del mese di riferimento' || ';' || x.totale || ';' AS csv, 7 ordine FROM (SELECT dwh.fun_giorni_lavorativi (data_fine, data_inizio) totale FROM DUAL) x UNION SELECT 'Numero totale di richieste ricevute come donating nel mese di riferimento' || ';' || x.totale || ';' AS csv, 6 ordine FROM (SELECT SUM (num) totale FROM (SELECT COUNT (*) AS num FROM mnp.mnp_gestione_richiesta@mnp a WHERE dataricezionerichiesta BETWEEN data_inizio AND data_fine AND a.codice_operatore_don_eff = 'TIMG' AND a.richiestaadhocaom = 0 UNION SELECT COUNT (*) AS num FROM mnp.mnp_gest_rich_rec_virt@mnp b WHERE dataricezionerichiesta BETWEEN data_inizio AND data_fine AND b.codice_operatore_donating = 'TIMG' AND b.richiestaadhoc = 0)) x UNION SELECT 'Numero di giorni di manutenzione programmata nel mese precedente a quello di riferimento' || ';' || x.totale || ';' AS csv, 5 ordine FROM (SELECT COUNT (*) totale FROM mnp.mnp_data_manutenzione@mnp a WHERE data_manutenzione BETWEEN data_inizio_mp AND data_fine_mp) x UNION SELECT 'Numero di giorni lavorativi del mese precedente a quello di riferimento' || ';' || x.totale || ';' AS csv, 4 ordine FROM (SELECT dwh.fun_giorni_lavorativi (data_fine_mp, data_inizio_mp) totale FROM DUAL) x UNION SELECT 'Numero totale di richieste ricevute come donating nel mese precedente a quello di riferimento' || ';' || x.totale || ';' AS csv, 3 ordine FROM (SELECT SUM (num) totale FROM (SELECT COUNT (*) AS num FROM mnp.mnp_gestione_richiesta@mnp a WHERE dataricezionerichiesta BETWEEN data_inizio_mp AND data_fine_mp AND a.codice_operatore_don_eff = 'TIMG' AND a.richiestaadhocaom = 0 UNION SELECT COUNT (*) AS num FROM mnp.mnp_gest_rich_rec_virt@mnp b WHERE dataricezionerichiesta BETWEEN data_inizio_mp AND data_fine_mp AND b.codice_operatore_donating = 'TIMG' AND b.richiestaadhoc = 0)) x UNION SELECT 'Capacità di evasione messa disposizione nel mese di riferimento' || ';' || x.totale || ';' AS csv, 11 ordine FROM (SELECT CAPACITA_TOTALE AS TOTALE FROM MNP.MNP_EVASIONE@MNP WHERE ID_OPERATORE ='TIMG') x ) ORDER BY ordine; BEGIN data_inizio := TO_DATE (anno || '-' || mese || '-01', 'yyyy-mm-dd'); data_fine := LAST_DAY (data_inizio); data_inizio_mp := ADD_MONTHS (data_inizio, -1); data_fine_mp := LAST_DAY (data_inizio_mp); OPEN cur_res (data_inizio, data_fine, data_inizio_mp, data_fine_mp); LOOP FETCH cur_res INTO line; EXIT WHEN cur_res%NOTFOUND; csv := csv || line || returncar || spaziocar; END LOOP; CLOSE cur_res; INSERT INTO mnp_report_agcom (anno, mese, tipo, csv ) VALUES (anno, mese, tipo, csv ); COMMIT; EXCEPTION WHEN OTHERS THEN DBMS_OUTPUT.put_line (SQLERRM); END; END; /