CREATE OR REPLACE PACKAGE 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 calc9r(anno IN VARCHAR, mese IN VARCHAR); PROCEDURE calc9d(anno IN VARCHAR, mese IN VARCHAR); PROCEDURE calcdatigenerali(anno IN VARCHAR, mese IN VARCHAR); END; / CREATE OR REPLACE PACKAGE BODY 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); calc9r (anno, mese); calc9d (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 clob; CURSOR cur_res (data_inizio DATE, data_fine DATE) IS SELECT recipient || ';' || 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 a WHERE dataricezionerichiesta BETWEEN data_inizio AND data_fine AND a.codice_operatore_rec_eff = 'TIMG' AND a.richiestaadhoc = 0 and a.richiestaadhocaom = 0 AND id_richiesta NOT IN ( SELECT id_richiesta FROM mnp.mnp_storico_richiesta_rec 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 a WHERE a.dataricezionerichiesta BETWEEN data_inizio AND data_fine AND a.codice_operatore_recipient = 'TIMG' AND a.richiestaadhoc = 0 --and a.richiestaadhocaom = 0 GROUP BY codice_operatore_donating, codice_operatore_recipient) ss, mnp.mnp_anagrafica_operatori 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 clob; CURSOR cur_res IS SELECT recipient || ';' || 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 WHERE codice_operatore_rec_eff = 'TIMG' AND richiestaadhoc = 0 and richiestaadhocaom = 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 a WHERE a.codice_operatore_recipient = 'TIMG' AND a.richiestaadhoc = 0 --and a.richiestaadhocaom = 0 AND stato IN (1, 3) GROUP BY codice_operatore_donating, codice_operatore_recipient) ss, mnp.mnp_anagrafica_operatori 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 clob; CURSOR cur_res (data_inizio DATE, data_fine DATE) IS SELECT d || ';' || don || ';' || v || ';' AS csv FROM (SELECT x.ord, x.d, NVL (an.id_amministrativo, x.don) AS don, v 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 g WHERE stato IN (9) AND data_cut_over_calc BETWEEN data_inizio AND data_fine AND codice_operatore_rec_eff = 'TIMG' AND richiestaadhoc = 0 and richiestaadhocaom = 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, NVL (COUNT (g.causale_accodamento), 0) AS v FROM mnp.mnp_causale_accodamento c, mnp.mnp_gestione_richiesta_rec g WHERE stato IN (5) AND g.causale_accodamento = c.desc_causale AND data_cut_over_calc BETWEEN data_inizio AND data_fine AND codice_operatore_rec_eff = 'TIMG' AND richiestaadhoc = 0 and richiestaadhocaom = 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, NVL (COUNT (c.cod_causale_rifiuto), 0) AS v FROM mnp.mnp_gestione_richiesta_rec a, mnp.mnp_causale_rifiuto c WHERE a.codice_rifiuto_validazione LIKE '%' || c.cod_causale_rifiuto || ';%' AND stato = 7 AND data_cut_over_calc BETWEEN data_inizio AND data_fine AND codice_operatore_rec_eff = 'TIMG' AND richiestaadhoc = 0 and richiestaadhocaom = 0 AND c.cod_causale_rifiuto BETWEEN 20 AND 30 GROUP BY 3, c.cod_causale_rifiuto || '-' || c.causale, a.codice_operatore_don_eff ---donor virtuale UNION SELECT 3 AS ord, c.cod_causale_rifiuto || '-' || c.causale AS d, a.codice_operatore_donating AS don, NVL (COUNT (c.cod_causale_rifiuto), 0) AS v FROM mnp.mnp_gest_rich_donor_virt a, mnp.mnp_causale_rifiuto c WHERE a.codice_rifiuto_validazione LIKE '%' || c.cod_causale_rifiuto || ';%' AND stato = 7 AND data_cut_over_calc BETWEEN data_inizio AND data_fine AND codice_operatore_recipient = 'TIMG' AND richiestaadhoc = 0 --and richiestaadhocaom = 0 AND c.cod_causale_rifiuto BETWEEN 20 AND 30 GROUP BY 3, c.cod_causale_rifiuto || '-' || c.causale, a.codice_operatore_donating ---fine donor virtuale UNION SELECT 4 AS ord, 'RICHIESTE NUMEROSITA DI CAUSALI CONTEMPORANEE- 1 causale di rifiuto' AS d, a.codice_operatore_don_eff AS don, NVL (COUNT (a.id_richiesta), 0) AS v FROM mnp.mnp_gestione_richiesta_rec a WHERE a.stato = 7 AND a.data_cut_over_calc BETWEEN data_inizio AND data_fine AND a.richiestaadhoc = 0 and a.richiestaadhocaom = 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 di rifiuto', a.codice_operatore_don_eff UNION SELECT 5 AS ord, 'RICHIESTE NUMEROSITA DI CAUSALI CONTEMPORANEE- 2 causale di rifiuto' AS d, a.codice_operatore_don_eff AS don, NVL (COUNT (a.id_richiesta), 0) AS v FROM mnp.mnp_gestione_richiesta_rec a WHERE a.stato = 7 AND a.data_cut_over_calc BETWEEN data_inizio AND data_fine AND a.richiestaadhoc = 0 and a.richiestaadhocaom = 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 di rifiuto', a.codice_operatore_don_eff UNION SELECT 6 AS ord, 'RICHIESTE NUMEROSITA DI CAUSALI CONTEMPORANEE- 3 causale di rifiuto' AS d, a.codice_operatore_don_eff AS don, NVL (COUNT (a.id_richiesta), 0) AS v FROM mnp.mnp_gestione_richiesta_rec a WHERE a.stato = 7 AND a.data_cut_over_calc BETWEEN data_inizio AND data_fine AND a.richiestaadhoc = 0 and a.richiestaadhocaom = 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 di rifiuto', a.codice_operatore_don_eff UNION SELECT 7 AS ord, 'RICHIESTE NUMEROSITA DI CAUSALI CONTEMPORANEE- 4 causale di rifiuto' AS d, a.codice_operatore_don_eff AS don, NVL (COUNT (a.id_richiesta), 0) AS v FROM mnp.mnp_gestione_richiesta_rec a WHERE a.stato = 7 AND a.data_cut_over_calc BETWEEN data_inizio AND data_fine AND a.richiestaadhoc = 0 and a.richiestaadhocaom = 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 di rifiuto', a.codice_operatore_don_eff UNION SELECT 8 AS ord, 'RICHIESTE NUMEROSITA DI CAUSALI CONTEMPORANEE- 5 causale di rifiuto' AS d, a.codice_operatore_don_eff AS don, NVL (COUNT (a.id_richiesta), 0) AS v FROM mnp.mnp_gestione_richiesta_rec a WHERE a.stato = 7 AND a.data_cut_over_calc BETWEEN data_inizio AND data_fine AND a.richiestaadhoc = 0 and a.richiestaadhocaom = 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 di rifiuto', a.codice_operatore_don_eff UNION SELECT 9 AS ord, 'RICHIESTE NUMEROSITA DI CAUSALI CONTEMPORANEE- 6 causale di rifiuto' AS d, a.codice_operatore_don_eff AS don, NVL (COUNT (a.id_richiesta), 0) AS v FROM mnp.mnp_gestione_richiesta_rec a WHERE a.stato = 7 AND a.data_cut_over_calc BETWEEN data_inizio AND data_fine AND a.richiestaadhoc = 0 and a.richiestaadhocaom = 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 di rifiuto', a.codice_operatore_don_eff UNION SELECT 10 AS ord, 'RICHIESTE NUMEROSITA DI CAUSALI CONTEMPORANEE- 7 causale di rifiuto' AS d, a.codice_operatore_don_eff AS don, NVL (COUNT (a.id_richiesta), 0) AS v FROM mnp.mnp_gestione_richiesta_rec a WHERE a.stato = 7 AND a.data_cut_over_calc BETWEEN data_inizio AND data_fine AND a.richiestaadhoc = 0 and a.richiestaadhocaom = 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 di rifiuto', a.codice_operatore_don_eff UNION SELECT 11 AS ord, 'RICHIESTE NUMEROSITA DI CAUSALI CONTEMPORANEE- 8 causale di rifiuto' AS d, a.codice_operatore_don_eff AS don, NVL (COUNT (a.id_richiesta), 0) AS v FROM mnp.mnp_gestione_richiesta_rec a WHERE a.stato = 7 AND a.data_cut_over_calc BETWEEN data_inizio AND data_fine AND a.richiestaadhoc = 0 and a.richiestaadhocaom = 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 di rifiuto', a.codice_operatore_don_eff UNION SELECT 12 AS ord, 'RICHIESTE NUMEROSITA DI CAUSALI CONTEMPORANEE- 9 causale di rifiuto' AS d, a.codice_operatore_don_eff AS don, NVL (COUNT (a.id_richiesta), 0) AS v FROM mnp.mnp_gestione_richiesta_rec a WHERE a.stato = 7 AND a.data_cut_over_calc BETWEEN data_inizio AND data_fine AND a.richiestaadhoc = 0 and a.richiestaadhocaom = 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 di rifiuto', a.codice_operatore_don_eff UNION SELECT 13 AS ord, 'RICHIESTE NUMEROSITA DI CAUSALI CONTEMPORANEE- 10 causale di rifiuto' AS d, a.codice_operatore_don_eff AS don, NVL (COUNT (a.id_richiesta), 0) AS v FROM mnp.mnp_gestione_richiesta_rec a WHERE a.stato = 7 AND a.data_cut_over_calc BETWEEN data_inizio AND data_fine AND a.richiestaadhoc = 0 and a.richiestaadhocaom = 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 di rifiuto', a.codice_operatore_don_eff UNION SELECT 14 AS ord, 'RICHIESTE NUMEROSITA DI CAUSALI CONTEMPORANEE- 11 causale di rifiuto' AS d, a.codice_operatore_don_eff AS don, NVL (COUNT (a.id_richiesta), 0) AS v FROM mnp.mnp_gestione_richiesta_rec a WHERE a.stato = 7 AND a.data_cut_over_calc BETWEEN data_inizio AND data_fine AND a.richiestaadhoc = 0 and a.richiestaadhocaom = 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 di rifiuto', a.codice_operatore_don_eff UNION ---DONOR VIRTUALE SELECT 4 AS ord, 'RICHIESTE NUMEROSITA DI CAUSALI CONTEMPORANEE- 1 causale di rifiuto' AS d, a.codice_operatore_donating AS don, NVL (COUNT (a.id_richiesta), 0) AS v FROM mnp.mnp_gest_rich_donor_virt a WHERE a.stato = 7 AND a.data_cut_over_calc BETWEEN data_inizio AND data_fine AND a.richiestaadhoc = 0 --and a.richiestaadhocaom = 0 AND a.codice_operatore_recipient = 'TIMG' AND LENGTH (a.codice_rifiuto_validazione) = 3 GROUP BY 4, 'RICHIESTE NUMEROSITA DI CAUSALI CONTEMPORANEE- 1 causale di rifiuto', a.codice_operatore_donating UNION SELECT 5 AS ord, 'RICHIESTE NUMEROSITA DI CAUSALI CONTEMPORANEE- 2 causale di rifiuto' AS d, a.codice_operatore_donating AS don, NVL (COUNT (a.id_richiesta), 0) AS v FROM mnp.mnp_gest_rich_donor_virt a WHERE a.stato = 7 AND a.data_cut_over_calc BETWEEN data_inizio AND data_fine AND a.richiestaadhoc = 0 --and a.richiestaadhocaom = 0 AND a.codice_operatore_recipient = 'TIMG' AND LENGTH (a.codice_rifiuto_validazione) = 6 GROUP BY 5, 'RICHIESTE NUMEROSITA DI CAUSALI CONTEMPORANEE- 2 causale di rifiuto', a.codice_operatore_donating UNION SELECT 6 AS ord, 'RICHIESTE NUMEROSITA DI CAUSALI CONTEMPORANEE- 3 causale di rifiuto' AS d, a.codice_operatore_donating AS don, NVL (COUNT (a.id_richiesta), 0) AS v FROM mnp.mnp_gest_rich_donor_virt a WHERE a.stato = 7 AND a.data_cut_over_calc BETWEEN data_inizio AND data_fine AND a.richiestaadhoc = 0 --and a.richiestaadhocaom = 0 AND a.codice_operatore_recipient = 'TIMG' AND LENGTH (a.codice_rifiuto_validazione) = 9 GROUP BY 6, 'RICHIESTE NUMEROSITA DI CAUSALI CONTEMPORANEE- 3 causale di rifiuto', a.codice_operatore_donating UNION SELECT 7 AS ord, 'RICHIESTE NUMEROSITA DI CAUSALI CONTEMPORANEE- 4 causale di rifiuto' AS d, a.codice_operatore_donating AS don, NVL (COUNT (a.id_richiesta), 0) AS v FROM mnp.mnp_gest_rich_donor_virt a WHERE a.stato = 7 AND a.data_cut_over_calc BETWEEN data_inizio AND data_fine AND a.richiestaadhoc = 0 --and a.richiestaadhocaom = 0 AND a.codice_operatore_recipient = 'TIMG' AND LENGTH (a.codice_rifiuto_validazione) = 12 GROUP BY 7, 'RICHIESTE NUMEROSITA DI CAUSALI CONTEMPORANEE- 4 causale di rifiuto', a.codice_operatore_donating UNION SELECT 8 AS ord, 'RICHIESTE NUMEROSITA DI CAUSALI CONTEMPORANEE- 5 causale di rifiuto' AS d, a.codice_operatore_donating AS don, NVL (COUNT (a.id_richiesta), 0) AS v FROM mnp.mnp_gest_rich_donor_virt a WHERE a.stato = 7 AND a.data_cut_over_calc BETWEEN data_inizio AND data_fine AND a.richiestaadhoc = 0 --and a.richiestaadhocaom = 0 AND a.codice_operatore_recipient = 'TIMG' AND LENGTH (a.codice_rifiuto_validazione) = 15 GROUP BY 8, 'RICHIESTE NUMEROSITA DI CAUSALI CONTEMPORANEE- 5 causale di rifiuto', a.codice_operatore_donating UNION SELECT 9 AS ord, 'RICHIESTE NUMEROSITA DI CAUSALI CONTEMPORANEE- 6 causale di rifiuto' AS d, a.codice_operatore_donating AS don, NVL (COUNT (a.id_richiesta), 0) AS v FROM mnp.mnp_gest_rich_donor_virt a WHERE a.stato = 7 AND a.data_cut_over_calc BETWEEN data_inizio AND data_fine AND a.richiestaadhoc = 0 --and a.richiestaadhocaom = 0 AND a.codice_operatore_recipient = 'TIMG' AND LENGTH (a.codice_rifiuto_validazione) = 18 GROUP BY 9, 'RICHIESTE NUMEROSITA DI CAUSALI CONTEMPORANEE- 6 causale di rifiuto', a.codice_operatore_donating UNION SELECT 10 AS ord, 'RICHIESTE NUMEROSITA DI CAUSALI CONTEMPORANEE- 7 causale di rifiuto' AS d, a.codice_operatore_donating AS don, NVL (COUNT (a.id_richiesta), 0) AS v FROM mnp.mnp_gest_rich_donor_virt a WHERE a.stato = 7 AND a.data_cut_over_calc BETWEEN data_inizio AND data_fine AND a.richiestaadhoc = 0 --and a.richiestaadhocaom = 0 AND a.codice_operatore_recipient = 'TIMG' AND LENGTH (a.codice_rifiuto_validazione) = 21 GROUP BY 10, 'RICHIESTE NUMEROSITA DI CAUSALI CONTEMPORANEE- 7 causale di rifiuto', a.codice_operatore_donating UNION SELECT 11 AS ord, 'RICHIESTE NUMEROSITA DI CAUSALI CONTEMPORANEE- 8 causale di rifiuto' AS d, a.codice_operatore_donating AS don, NVL (COUNT (a.id_richiesta), 0) AS v FROM mnp.mnp_gest_rich_donor_virt a WHERE a.stato = 7 AND a.data_cut_over_calc BETWEEN data_inizio AND data_fine AND a.richiestaadhoc = 0 --and a.richiestaadhocaom = 0 AND a.codice_operatore_recipient = 'TIMG' AND LENGTH (a.codice_rifiuto_validazione) = 24 GROUP BY 11, 'RICHIESTE NUMEROSITA DI CAUSALI CONTEMPORANEE- 8 causale di rifiuto', a.codice_operatore_donating UNION SELECT 12 AS ord, 'RICHIESTE NUMEROSITA DI CAUSALI CONTEMPORANEE- 9 causale di rifiuto' AS d, a.codice_operatore_donating AS don, NVL (COUNT (a.id_richiesta), 0) AS v FROM mnp.mnp_gest_rich_donor_virt a WHERE a.stato = 7 AND a.data_cut_over_calc BETWEEN data_inizio AND data_fine AND a.richiestaadhoc = 0 --and a.richiestaadhocaom = 0 AND a.codice_operatore_recipient = 'TIMG' AND LENGTH (a.codice_rifiuto_validazione) = 27 GROUP BY 12, 'RICHIESTE NUMEROSITA DI CAUSALI CONTEMPORANEE- 9 causale di rifiuto', a.codice_operatore_donating UNION SELECT 13 AS ord, 'RICHIESTE NUMEROSITA DI CAUSALI CONTEMPORANEE- 10 causale di rifiuto' AS d, a.codice_operatore_donating AS don, NVL (COUNT (a.id_richiesta), 0) AS v FROM mnp.mnp_gest_rich_donor_virt a WHERE a.stato = 7 AND a.data_cut_over_calc BETWEEN data_inizio AND data_fine AND a.richiestaadhoc = 0 --and a.richiestaadhocaom = 0 AND a.codice_operatore_recipient = 'TIMG' AND LENGTH (a.codice_rifiuto_validazione) = 30 GROUP BY 13, 'RICHIESTE NUMEROSITA DI CAUSALI CONTEMPORANEE- 10 causale di rifiuto', a.codice_operatore_donating UNION SELECT 14 AS ord, 'RICHIESTE NUMEROSITA DI CAUSALI CONTEMPORANEE- 11 causale di rifiuto' AS d, a.codice_operatore_donating AS don, NVL (COUNT (a.id_richiesta), 0) AS v FROM mnp.mnp_gest_rich_donor_virt a WHERE a.stato = 7 AND a.data_cut_over_calc BETWEEN data_inizio AND data_fine AND a.richiestaadhoc = 0 --and a.richiestaadhocaom = 0 AND a.codice_operatore_recipient = 'TIMG' AND LENGTH (a.codice_rifiuto_validazione) = 33 GROUP BY 14, 'RICHIESTE NUMEROSITA DI CAUSALI CONTEMPORANEE- 11 causale di rifiuto', a.codice_operatore_donating ---- FINE DONOR VIRTUALE UNION SELECT 26 AS ord, 'VALIDATE POSITIVAMENTE' AS d, a.codice_operatore_don_eff AS don, NVL (COUNT (s.id_richiesta), 0) AS v FROM mnp.mnp_storico_richiesta_rec s, mnp.mnp_gestione_richiesta_rec a WHERE a.id_richiesta = s.id_richiesta AND s.stato_a = 8 AND a.data_cut_over_calc BETWEEN data_inizio AND data_fine AND a.richiestaadhoc = 0 and a.richiestaadhocaom = 0 AND a.codice_operatore_rec_eff = 'TIMG' GROUP BY 26, 'VALIDATE POSITIVAMENTE', a.codice_operatore_don_eff UNION SELECT 27 AS ord, 'VALIDATE POSITIVAMENTE' AS d, a.codice_operatore_donating AS don, NVL (COUNT (s.id_richiesta), 0) AS v FROM mnp.mnp_storico_rich_don_virt s, mnp.mnp_gest_rich_donor_virt a WHERE a.id_richiesta = s.id_richiesta AND s.stato_a = 6 AND a.data_cut_over_calc BETWEEN data_inizio AND data_fine AND a.richiestaadhoc = 0 --and a.richiestaadhocaom = 0 AND a.codice_operatore_recipient = 'TIMG' GROUP BY 27, 'VALIDATE POSITIVAMENTE', a.codice_operatore_donating) x, mnp.mnp_anagrafica_operatori an WHERE an.id_operatore(+) = x.don) 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 clob; CURSOR cur_res (data_inizio DATE, data_fine DATE) IS SELECT d || ';' || rec || ';' || v || ';' AS csv FROM ( --3d SELECT x.ord, x.d, NVL (an.id_amministrativo, x.rec) AS rec, v 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 g WHERE stato IN (12) AND data_cut_over_calc BETWEEN data_inizio AND data_fine AND codice_operatore_don_eff = 'TIMG' AND richiestaadhoc = 0 and richiestaadhocaom=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, NVL (COUNT (g.cod_controllo_presaincarico), 0) AS v FROM mnp.mnp_causale_accodamento c, mnp.mnp_gestione_richiesta g WHERE stato IN (4) AND g.cod_controllo_presaincarico = c.codice_causale AND data_cut_over_calc BETWEEN data_inizio AND data_fine AND codice_operatore_don_eff = 'TIMG' AND richiestaadhoc = 0 and richiestaadhocaom=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, NVL (COUNT (c.cod_causale_rifiuto), 0) AS v FROM mnp.mnp_gestione_richiesta a, mnp.mnp_causale_rifiuto c WHERE a.codice_rifiuto_validazione LIKE '%' || c.cod_causale_rifiuto || ';%' AND stato = 10 AND data_cut_over_calc BETWEEN data_inizio AND data_fine AND codice_operatore_don_eff = 'TIMG' AND richiestaadhoc = 0 and richiestaadhocaom=0 AND c.cod_causale_rifiuto BETWEEN 20 AND 30 GROUP BY 3, c.cod_causale_rifiuto || '-' || c.causale, a.codice_operatore_rec_eff ---RECIPIENT virtuale UNION SELECT 3 AS ord, c.cod_causale_rifiuto || '-' || c.causale AS d, a.codice_operatore_recipient AS rec, NVL (COUNT (c.cod_causale_rifiuto), 0) AS v FROM mnp.mnp_gest_rich_rec_virt a, mnp.mnp_causale_rifiuto c WHERE a.codice_rifiuto_validazione LIKE '%' || c.cod_causale_rifiuto || ';%' AND stato = 7 AND data_cut_over_calc BETWEEN data_inizio AND data_fine AND codice_operatore_donating = 'TIMG' AND richiestaadhoc = 0 -- and richiestaadhocaom=0 AND c.cod_causale_rifiuto BETWEEN 20 AND 30 GROUP BY 3, c.cod_causale_rifiuto || '-' || c.causale, a.codice_operatore_recipient ---fine RECIPIENT virtuale UNION SELECT 4 AS ord, 'RICHIESTE NUMEROSITA DI CAUSALI CONTEMPORANEE- 1 causale di rifiuto' AS d, a.codice_operatore_rec_eff AS rec, NVL (COUNT (a.id_richiesta), 0) AS v FROM mnp.mnp_gestione_richiesta a WHERE a.stato = 10 AND a.data_cut_over_calc BETWEEN data_inizio AND data_fine AND a.richiestaadhoc = 0 and a.richiestaadhocaom=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 di rifiuto', a.codice_operatore_rec_eff UNION SELECT 5 AS ord, 'RICHIESTE NUMEROSITA DI CAUSALI CONTEMPORANEE- 2 causale di rifiuto' AS d, a.codice_operatore_rec_eff AS rec, NVL (COUNT (a.id_richiesta), 0) AS v FROM mnp.mnp_gestione_richiesta a WHERE a.stato = 10 AND a.data_cut_over_calc BETWEEN data_inizio AND data_fine AND a.richiestaadhoc = 0 and a.richiestaadhocaom=0 AND a.codice_operatore_don_eff = 'TIMG' AND LENGTH (a.codice_rifiuto_validazione) = 6 GROUP BY 5, 'RICHIESTE NUMEROSITA DI CAUSALI CONTEMPORANEE- 2 causale di rifiuto', a.codice_operatore_rec_eff UNION SELECT 6 AS ord, 'RICHIESTE NUMEROSITA DI CAUSALI CONTEMPORANEE- 3 causale di rifiuto' AS d, a.codice_operatore_rec_eff AS rec, NVL (COUNT (a.id_richiesta), 0) AS v FROM mnp.mnp_gestione_richiesta a WHERE a.stato = 10 AND a.data_cut_over_calc BETWEEN data_inizio AND data_fine AND a.richiestaadhoc = 0 and a.richiestaadhocaom=0 AND a.codice_operatore_don_eff = 'TIMG' AND LENGTH (a.codice_rifiuto_validazione) = 9 GROUP BY 6, 'RICHIESTE NUMEROSITA DI CAUSALI CONTEMPORANEE- 3 causale di rifiuto', a.codice_operatore_rec_eff UNION SELECT 7 AS ord, 'RICHIESTE NUMEROSITA DI CAUSALI CONTEMPORANEE- 4 causale di rifiuto' AS d, a.codice_operatore_rec_eff AS rec, NVL (COUNT (a.id_richiesta), 0) AS v FROM mnp.mnp_gestione_richiesta a WHERE a.stato = 10 AND a.data_cut_over_calc BETWEEN data_inizio AND data_fine AND a.richiestaadhoc = 0 and a.richiestaadhocaom=0 AND a.codice_operatore_don_eff = 'TIMG' AND LENGTH (a.codice_rifiuto_validazione) = 12 GROUP BY 7, 'RICHIESTE NUMEROSITA DI CAUSALI CONTEMPORANEE- 4 causale di rifiuto', a.codice_operatore_rec_eff UNION SELECT 8 AS ord, 'RICHIESTE NUMEROSITA DI CAUSALI CONTEMPORANEE- 5 causale di rifiuto' AS d, a.codice_operatore_rec_eff AS rec, NVL (COUNT (a.id_richiesta), 0) AS v FROM mnp.mnp_gestione_richiesta a WHERE a.stato = 10 AND a.data_cut_over_calc BETWEEN data_inizio AND data_fine AND a.richiestaadhoc = 0 and a.richiestaadhocaom=0 AND a.codice_operatore_don_eff = 'TIMG' AND LENGTH (a.codice_rifiuto_validazione) = 15 GROUP BY 8, 'RICHIESTE NUMEROSITA DI CAUSALI CONTEMPORANEE- 5 causale di rifiuto', a.codice_operatore_rec_eff UNION SELECT 9 AS ord, 'RICHIESTE NUMEROSITA DI CAUSALI CONTEMPORANEE- 6 causale di rifiuto' AS d, a.codice_operatore_rec_eff AS rec, NVL (COUNT (a.id_richiesta), 0) AS v FROM mnp.mnp_gestione_richiesta a WHERE a.stato = 10 AND a.data_cut_over_calc BETWEEN data_inizio AND data_fine AND a.richiestaadhoc = 0 and a.richiestaadhocaom=0 AND a.codice_operatore_don_eff = 'TIMG' AND LENGTH (a.codice_rifiuto_validazione) = 18 GROUP BY 9, 'RICHIESTE NUMEROSITA DI CAUSALI CONTEMPORANEE- 6 causale di rifiuto', a.codice_operatore_rec_eff UNION SELECT 10 AS ord, 'RICHIESTE NUMEROSITA DI CAUSALI CONTEMPORANEE- 7 causale di rifiuto' AS d, a.codice_operatore_rec_eff AS rec, NVL (COUNT (a.id_richiesta), 0) AS v FROM mnp.mnp_gestione_richiesta a WHERE a.stato = 10 AND a.data_cut_over_calc BETWEEN data_inizio AND data_fine AND a.richiestaadhoc = 0 and a.richiestaadhocaom=0 AND a.codice_operatore_don_eff = 'TIMG' AND LENGTH (a.codice_rifiuto_validazione) = 21 GROUP BY 10, 'RICHIESTE NUMEROSITA DI CAUSALI CONTEMPORANEE- 7 causale di rifiuto', a.codice_operatore_rec_eff UNION SELECT 11 AS ord, 'RICHIESTE NUMEROSITA DI CAUSALI CONTEMPORANEE- 8 causale di rifiuto' AS d, a.codice_operatore_rec_eff AS rec, NVL (COUNT (a.id_richiesta), 0) AS v FROM mnp.mnp_gestione_richiesta a WHERE a.stato = 10 AND a.data_cut_over_calc BETWEEN data_inizio AND data_fine AND a.richiestaadhoc = 0 and a.richiestaadhocaom=0 AND a.codice_operatore_don_eff = 'TIMG' AND LENGTH (a.codice_rifiuto_validazione) = 24 GROUP BY 11, 'RICHIESTE NUMEROSITA DI CAUSALI CONTEMPORANEE- 8 causale di rifiuto', a.codice_operatore_rec_eff UNION SELECT 12 AS ord, 'RICHIESTE NUMEROSITA DI CAUSALI CONTEMPORANEE- 9 causale di rifiuto' AS d, a.codice_operatore_rec_eff AS rec, NVL (COUNT (a.id_richiesta), 0) AS v FROM mnp.mnp_gestione_richiesta a WHERE a.stato = 10 AND a.data_cut_over_calc BETWEEN data_inizio AND data_fine AND a.richiestaadhoc = 0 and a.richiestaadhocaom=0 AND a.codice_operatore_don_eff = 'TIMG' AND LENGTH (a.codice_rifiuto_validazione) = 27 GROUP BY 12, 'RICHIESTE NUMEROSITA DI CAUSALI CONTEMPORANEE- 9 causale di rifiuto', a.codice_operatore_rec_eff UNION SELECT 13 AS ord, 'RICHIESTE NUMEROSITA DI CAUSALI CONTEMPORANEE- 10 causale di rifiuto' AS d, a.codice_operatore_rec_eff AS rec, NVL (COUNT (a.id_richiesta), 0) AS v FROM mnp.mnp_gestione_richiesta a WHERE a.stato = 10 AND a.data_cut_over_calc BETWEEN data_inizio AND data_fine AND a.richiestaadhoc = 0 and a.richiestaadhocaom=0 AND a.codice_operatore_don_eff = 'TIMG' AND LENGTH (a.codice_rifiuto_validazione) = 30 GROUP BY 13, 'RICHIESTE NUMEROSITA DI CAUSALI CONTEMPORANEE- 10 causale di rifiuto', a.codice_operatore_rec_eff UNION SELECT 14 AS ord, 'RICHIESTE NUMEROSITA DI CAUSALI CONTEMPORANEE- 11 causale di rifiuto' AS d, a.codice_operatore_rec_eff AS rec, NVL (COUNT (a.id_richiesta), 0) AS v FROM mnp.mnp_gestione_richiesta a WHERE a.stato = 10 AND a.data_cut_over_calc BETWEEN data_inizio AND data_fine AND a.richiestaadhoc = 0 and a.richiestaadhocaom=0 AND a.codice_operatore_don_eff = 'TIMG' AND LENGTH (a.codice_rifiuto_validazione) = 33 GROUP BY 14, 'RICHIESTE NUMEROSITA DI CAUSALI CONTEMPORANEE- 11 causale di rifiuto', a.codice_operatore_rec_eff --- RECIPINT VIRTUALE UNION SELECT 4 AS ord, 'RICHIESTE NUMEROSITA DI CAUSALI CONTEMPORANEE- 1 causale di rifiuto' AS d, a.codice_operatore_recipient AS rec, NVL (COUNT (a.id_richiesta), 0) AS v FROM mnp.mnp_gest_rich_rec_virt a WHERE a.stato = 7 AND a.data_cut_over_calc BETWEEN data_inizio AND data_fine AND a.richiestaadhoc = 0 --and a.richiestaadhocaom=0 AND a.codice_operatore_donating = 'TIMG' AND LENGTH (a.codice_rifiuto_validazione) = 3 GROUP BY 4, 'RICHIESTE NUMEROSITA DI CAUSALI CONTEMPORANEE- 1 causale di rifiuto', a.codice_operatore_recipient UNION SELECT 5 AS ord, 'RICHIESTE NUMEROSITA DI CAUSALI CONTEMPORANEE- 2 causale di rifiuto' AS d, a.codice_operatore_recipient AS rec, NVL (COUNT (a.id_richiesta), 0) AS v FROM mnp.mnp_gest_rich_rec_virt a WHERE a.stato = 7 AND a.data_cut_over_calc BETWEEN data_inizio AND data_fine AND a.richiestaadhoc = 0 --and a.richiestaadhocaom=0 AND a.codice_operatore_donating = 'TIMG' AND LENGTH (a.codice_rifiuto_validazione) = 6 GROUP BY 5, 'RICHIESTE NUMEROSITA DI CAUSALI CONTEMPORANEE- 2 causale di rifiuto', a.codice_operatore_recipient UNION SELECT 6 AS ord, 'RICHIESTE NUMEROSITA DI CAUSALI CONTEMPORANEE- 3 causale di rifiuto' AS d, a.codice_operatore_recipient AS rec, NVL (COUNT (a.id_richiesta), 0) AS v FROM mnp.mnp_gest_rich_rec_virt a WHERE a.stato = 7 AND a.data_cut_over_calc BETWEEN data_inizio AND data_fine AND a.richiestaadhoc = 0 --and a.richiestaadhocaom=0 AND a.codice_operatore_donating = 'TIMG' AND LENGTH (a.codice_rifiuto_validazione) = 9 GROUP BY 6, 'RICHIESTE NUMEROSITA DI CAUSALI CONTEMPORANEE- 3 causale di rifiuto', a.codice_operatore_recipient UNION SELECT 7 AS ord, 'RICHIESTE NUMEROSITA DI CAUSALI CONTEMPORANEE- 4 causale di rifiuto' AS d, a.codice_operatore_recipient AS rec, NVL (COUNT (a.id_richiesta), 0) AS v FROM mnp.mnp_gest_rich_rec_virt a WHERE a.stato = 7 AND a.data_cut_over_calc BETWEEN data_inizio AND data_fine AND a.richiestaadhoc = 0 --and a.richiestaadhocaom=0 AND a.codice_operatore_donating = 'TIMG' AND LENGTH (a.codice_rifiuto_validazione) = 12 GROUP BY 7, 'RICHIESTE NUMEROSITA DI CAUSALI CONTEMPORANEE- 4 causale di rifiuto', a.codice_operatore_recipient UNION SELECT 8 AS ord, 'RICHIESTE NUMEROSITA DI CAUSALI CONTEMPORANEE- 5 causale di rifiuto' AS d, a.codice_operatore_recipient AS rec, NVL (COUNT (a.id_richiesta), 0) AS v FROM mnp.mnp_gest_rich_rec_virt a WHERE a.stato = 7 AND a.data_cut_over_calc BETWEEN data_inizio AND data_fine AND a.richiestaadhoc = 0 --and a.richiestaadhocaom=0 AND a.codice_operatore_donating = 'TIMG' AND LENGTH (a.codice_rifiuto_validazione) = 15 GROUP BY 8, 'RICHIESTE NUMEROSITA DI CAUSALI CONTEMPORANEE- 5 causale di rifiuto', a.codice_operatore_recipient UNION SELECT 9 AS ord, 'RICHIESTE NUMEROSITA DI CAUSALI CONTEMPORANEE- 6 causale di rifiuto' AS d, a.codice_operatore_recipient AS rec, NVL (COUNT (a.id_richiesta), 0) AS v FROM mnp.mnp_gest_rich_rec_virt a WHERE a.stato = 7 AND a.data_cut_over_calc BETWEEN data_inizio AND data_fine AND a.richiestaadhoc = 0 --and a.richiestaadhocaom=0 AND a.codice_operatore_donating = 'TIMG' AND LENGTH (a.codice_rifiuto_validazione) = 18 GROUP BY 9, 'RICHIESTE NUMEROSITA DI CAUSALI CONTEMPORANEE- 6 causale di rifiuto', a.codice_operatore_recipient UNION SELECT 10 AS ord, 'RICHIESTE NUMEROSITA DI CAUSALI CONTEMPORANEE- 7 causale di rifiuto' AS d, a.codice_operatore_recipient AS rec, NVL (COUNT (a.id_richiesta), 0) AS v FROM mnp.mnp_gest_rich_rec_virt a WHERE a.stato = 7 AND a.data_cut_over_calc BETWEEN data_inizio AND data_fine AND a.richiestaadhoc = 0 --and a.richiestaadhocaom=0 AND a.codice_operatore_donating = 'TIMG' AND LENGTH (a.codice_rifiuto_validazione) = 21 GROUP BY 10, 'RICHIESTE NUMEROSITA DI CAUSALI CONTEMPORANEE- 7 causale di rifiuto', a.codice_operatore_recipient UNION SELECT 11 AS ord, 'RICHIESTE NUMEROSITA DI CAUSALI CONTEMPORANEE- 8 causale di rifiuto' AS d, a.codice_operatore_recipient AS rec, NVL (COUNT (a.id_richiesta), 0) AS v FROM mnp.mnp_gest_rich_rec_virt a WHERE a.stato = 7 AND a.data_cut_over_calc BETWEEN data_inizio AND data_fine AND a.richiestaadhoc = 0 --and a.richiestaadhocaom=0 AND a.codice_operatore_donating = 'TIMG' AND LENGTH (a.codice_rifiuto_validazione) = 24 GROUP BY 11, 'RICHIESTE NUMEROSITA DI CAUSALI CONTEMPORANEE- 8 causale di rifiuto', a.codice_operatore_recipient UNION SELECT 12 AS ord, 'RICHIESTE NUMEROSITA DI CAUSALI CONTEMPORANEE- 9 causale di rifiuto' AS d, a.codice_operatore_recipient AS rec, NVL (COUNT (a.id_richiesta), 0) AS v FROM mnp.mnp_gest_rich_rec_virt a WHERE a.stato = 7 AND a.data_cut_over_calc BETWEEN data_inizio AND data_fine AND a.richiestaadhoc = 0 --and a.richiestaadhocaom=0 AND a.codice_operatore_donating = 'TIMG' AND LENGTH (a.codice_rifiuto_validazione) = 27 GROUP BY 12, 'RICHIESTE NUMEROSITA DI CAUSALI CONTEMPORANEE- 9 causale di rifiuto', a.codice_operatore_recipient UNION SELECT 13 AS ord, 'RICHIESTE NUMEROSITA DI CAUSALI CONTEMPORANEE- 10 causale di rifiuto' AS d, a.codice_operatore_recipient AS rec, NVL (COUNT (a.id_richiesta), 0) AS v FROM mnp.mnp_gest_rich_rec_virt a WHERE a.stato = 7 AND a.data_cut_over_calc BETWEEN data_inizio AND data_fine AND a.richiestaadhoc = 0 --and a.richiestaadhocaom=0 AND a.codice_operatore_donating = 'TIMG' AND LENGTH (a.codice_rifiuto_validazione) = 30 GROUP BY 13, 'RICHIESTE NUMEROSITA DI CAUSALI CONTEMPORANEE- 10 causale di rifiuto', a.codice_operatore_recipient UNION SELECT 14 AS ord, 'RICHIESTE NUMEROSITA DI CAUSALI CONTEMPORANEE- 11 causale di rifiuto' AS d, a.codice_operatore_recipient AS rec, NVL (COUNT (a.id_richiesta), 0) AS v FROM mnp.mnp_gest_rich_rec_virt a WHERE a.stato = 7 AND a.data_cut_over_calc BETWEEN data_inizio AND data_fine AND a.richiestaadhoc = 0 --and a.richiestaadhocaom=0 AND a.codice_operatore_donating = 'TIMG' AND LENGTH (a.codice_rifiuto_validazione) = 33 GROUP BY 14, 'RICHIESTE NUMEROSITA DI CAUSALI CONTEMPORANEE- 11 causale di rifiuto', a.codice_operatore_recipient --- FINE RECIPIENT VIRTUALE UNION SELECT 26 AS ord, 'VALIDATE POSITIVAMENTE' AS d, a.codice_operatore_rec_eff AS rec, NVL (COUNT (s.id_richiesta), 0) AS v FROM mnp.mnp_storico_richiesta s, mnp.mnp_gestione_richiesta a WHERE a.id_richiesta = s.id_richiesta AND s.stato_a = 7 AND a.data_cut_over_calc BETWEEN data_inizio AND data_fine AND a.richiestaadhoc = 0 and a.richiestaadhocaom=0 AND a.codice_operatore_don_eff = 'TIMG' GROUP BY 26, 'VALIDATE POSITIVAMENTE', a.codice_operatore_rec_eff UNION SELECT 27 AS ord, 'VALIDATE POSITIVAMENTE' AS d, a.codice_operatore_recipient AS rec, NVL (COUNT (s.id_richiesta), 0) AS v FROM mnp.mnp_storico_rich_rec_virt s, mnp.mnp_gest_rich_rec_virt a WHERE a.id_richiesta = s.id_richiesta AND s.stato_a = 6 AND a.data_cut_over_calc BETWEEN data_inizio AND data_fine AND a.richiestaadhoc = 0 --and a.richiestaadhocaom=0 AND a.codice_operatore_donating = 'TIMG' GROUP BY 27, 'VALIDATE POSITIVAMENTE', a.codice_operatore_recipient) x, mnp.mnp_anagrafica_operatori an WHERE an.id_operatore(+) = x.rec) 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 clob; CURSOR cur_res (data_inizio DATE, data_fine DATE) IS SELECT d || ';' || don || ';' || v || ';' AS csv FROM (SELECT x.ord, x.d, NVL (an.id_amministrativo, x.don) AS don, v 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 g WHERE stato IN (9) AND data_cut_over_calc BETWEEN data_inizio AND data_fine AND codice_operatore_rec_eff = 'TIMG' AND richiestaadhoc = 0 and richiestaadhocaom = 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, NVL (COUNT (g.causale_accodamento), 0) AS v FROM mnp.mnp_causale_accodamento c, mnp.mnp_gestione_richiesta_rec g WHERE stato IN (5) AND g.causale_accodamento = c.desc_causale AND data_cut_over_calc BETWEEN data_inizio AND data_fine AND codice_operatore_rec_eff = 'TIMG' AND richiestaadhoc = 0 and richiestaadhocaom = 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, NVL (COUNT (c.cod_causale_rifiuto), 0) AS v FROM mnp.mnp_gestione_richiesta_rec a, mnp.mnp_causale_rifiuto c WHERE a.codice_rifiuto_validazione LIKE '%' || c.cod_causale_rifiuto || ';%' AND stato = 7 AND data_cut_over_calc BETWEEN data_inizio AND data_fine AND codice_operatore_rec_eff = 'TIMG' AND richiestaadhoc = 0 and richiestaadhocaom = 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 3 AS ord, c.cod_causale_rifiuto || '-' || c.causale AS d, a.codice_operatore_donating AS don, NVL (COUNT (c.cod_causale_rifiuto), 0) AS v FROM mnp.mnp_gest_rich_donor_virt a, mnp.mnp_causale_rifiuto c WHERE a.codice_rifiuto_validazione LIKE '%' || c.cod_causale_rifiuto || ';%' AND stato = 7 AND data_cut_over_calc BETWEEN data_inizio AND data_fine AND codice_operatore_recipient = 'TIMG' AND richiestaadhoc = 0 --and richiestaadhocaom = 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_donating UNION SELECT 4 AS ord, 'RICHIESTE NUMEROSITA DI CAUSALI CONTEMPORANEE- 1 causale di rifiuto' AS d, a.codice_operatore_don_eff AS don, NVL (COUNT (a.id_richiesta), 0) AS v FROM mnp.mnp_gestione_richiesta_rec a WHERE a.stato = 7 AND a.data_cut_over_calc BETWEEN data_inizio AND data_fine AND a.richiestaadhoc = 0 and richiestaadhocaom = 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 di rifiuto', a.codice_operatore_don_eff UNION SELECT 5 AS ord, 'RICHIESTE NUMEROSITA DI CAUSALI CONTEMPORANEE- 2 causale di rifiuto' AS d, a.codice_operatore_don_eff AS don, NVL (COUNT (a.id_richiesta), 0) AS v FROM mnp.mnp_gestione_richiesta_rec a WHERE a.stato = 7 AND a.data_cut_over_calc BETWEEN data_inizio AND data_fine AND a.richiestaadhoc = 0 and richiestaadhocaom = 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 di rifiuto', a.codice_operatore_don_eff UNION SELECT 6 AS ord, 'RICHIESTE NUMEROSITA DI CAUSALI CONTEMPORANEE- 3 causale di rifiuto' AS d, a.codice_operatore_don_eff AS don, NVL (COUNT (a.id_richiesta), 0) AS v FROM mnp.mnp_gestione_richiesta_rec a WHERE a.stato = 7 AND a.data_cut_over_calc BETWEEN data_inizio AND data_fine AND a.richiestaadhoc = 0 and richiestaadhocaom = 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 di rifiuto', a.codice_operatore_don_eff UNION SELECT 7 AS ord, 'RICHIESTE NUMEROSITA DI CAUSALI CONTEMPORANEE- 4 causale di rifiuto' AS d, a.codice_operatore_don_eff AS don, NVL (COUNT (a.id_richiesta), 0) AS v FROM mnp.mnp_gestione_richiesta_rec a WHERE a.stato = 7 AND a.data_cut_over_calc BETWEEN data_inizio AND data_fine AND a.richiestaadhoc = 0 and richiestaadhocaom = 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 di rifiuto', a.codice_operatore_don_eff UNION SELECT 8 AS ord, 'RICHIESTE NUMEROSITA DI CAUSALI CONTEMPORANEE- 5 causale di rifiuto' AS d, a.codice_operatore_don_eff AS don, NVL (COUNT (a.id_richiesta), 0) AS v FROM mnp.mnp_gestione_richiesta_rec a WHERE a.stato = 7 AND a.data_cut_over_calc BETWEEN data_inizio AND data_fine AND a.richiestaadhoc = 0 and richiestaadhocaom = 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 di rifiuto', a.codice_operatore_don_eff UNION SELECT 9 AS ord, 'RICHIESTE NUMEROSITA DI CAUSALI CONTEMPORANEE- 6 causale di rifiuto' AS d, a.codice_operatore_don_eff AS don, NVL (COUNT (a.id_richiesta), 0) AS v FROM mnp.mnp_gestione_richiesta_rec a WHERE a.stato = 7 AND a.data_cut_over_calc BETWEEN data_inizio AND data_fine AND a.richiestaadhoc = 0 and richiestaadhocaom = 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 di rifiuto', a.codice_operatore_don_eff UNION SELECT 10 AS ord, 'RICHIESTE NUMEROSITA DI CAUSALI CONTEMPORANEE- 7 causale di rifiuto' AS d, a.codice_operatore_don_eff AS don, NVL (COUNT (a.id_richiesta), 0) AS v FROM mnp.mnp_gestione_richiesta_rec a WHERE a.stato = 7 AND a.data_cut_over_calc BETWEEN data_inizio AND data_fine AND a.richiestaadhoc = 0 and richiestaadhocaom = 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 di rifiuto', a.codice_operatore_don_eff UNION SELECT 11 AS ord, 'RICHIESTE NUMEROSITA DI CAUSALI CONTEMPORANEE- 8 causale di rifiuto' AS d, a.codice_operatore_don_eff AS don, NVL (COUNT (a.id_richiesta), 0) AS v FROM mnp.mnp_gestione_richiesta_rec a WHERE a.stato = 7 AND a.data_cut_over_calc BETWEEN data_inizio AND data_fine AND a.richiestaadhoc = 0 and richiestaadhocaom = 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 di rifiuto', a.codice_operatore_don_eff UNION SELECT 12 AS ord, 'RICHIESTE NUMEROSITA DI CAUSALI CONTEMPORANEE- 9 causale di rifiuto' AS d, a.codice_operatore_don_eff AS don, NVL (COUNT (a.id_richiesta), 0) AS v FROM mnp.mnp_gestione_richiesta_rec a WHERE a.stato = 7 AND a.data_cut_over_calc BETWEEN data_inizio AND data_fine AND a.richiestaadhoc = 0 and richiestaadhocaom = 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 di rifiuto', a.codice_operatore_don_eff UNION SELECT 13 AS ord, 'RICHIESTE NUMEROSITA DI CAUSALI CONTEMPORANEE- 10 causale di rifiuto' AS d, a.codice_operatore_don_eff AS don, NVL (COUNT (a.id_richiesta), 0) AS v FROM mnp.mnp_gestione_richiesta_rec a WHERE a.stato = 7 AND a.data_cut_over_calc BETWEEN data_inizio AND data_fine AND a.richiestaadhoc = 0 and richiestaadhocaom = 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- 10 causale di rifiuto', a.codice_operatore_don_eff UNION SELECT 14 AS ord, 'RICHIESTE NUMEROSITA DI CAUSALI CONTEMPORANEE- 11 causale di rifiuto' AS d, a.codice_operatore_don_eff AS don, NVL (COUNT (a.id_richiesta), 0) AS v FROM mnp.mnp_gestione_richiesta_rec a WHERE a.stato = 7 AND a.data_cut_over_calc BETWEEN data_inizio AND data_fine AND a.richiestaadhoc = 0 and richiestaadhocaom = 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 di rifiuto', a.codice_operatore_don_eff UNION ---DONOR VIRTUALE SELECT 4 AS ord, 'RICHIESTE NUMEROSITA DI CAUSALI CONTEMPORANEE- 1 causale di rifiuto' AS d, a.codice_operatore_donating AS don, NVL (COUNT (a.id_richiesta), 0) AS v FROM mnp.mnp_gest_rich_donor_virt a WHERE a.stato = 7 AND a.data_cut_over_calc BETWEEN data_inizio AND data_fine AND a.richiestaadhoc = 0 --and richiestaadhocaom = 0 AND a.codice_operatore_recipient = 'TIMG' AND LENGTH (a.codice_rifiuto_validazione) = 3 AND flag_prevalidazione = 'Y' GROUP BY 4, 'RICHIESTE NUMEROSITA DI CAUSALI CONTEMPORANEE- 1 causale di rifiuto', a.codice_operatore_donating UNION SELECT 5 AS ord, 'RICHIESTE NUMEROSITA DI CAUSALI CONTEMPORANEE- 2 causale di rifiuto' AS d, a.codice_operatore_donating AS don, NVL (COUNT (a.id_richiesta), 0) AS v FROM mnp.mnp_gest_rich_donor_virt a WHERE a.stato = 7 AND a.data_cut_over_calc BETWEEN data_inizio AND data_fine AND a.richiestaadhoc = 0 --and richiestaadhocaom = 0 AND a.codice_operatore_recipient = 'TIMG' AND LENGTH (a.codice_rifiuto_validazione) = 6 AND flag_prevalidazione = 'Y' GROUP BY 5, 'RICHIESTE NUMEROSITA DI CAUSALI CONTEMPORANEE- 2 causale di rifiuto', a.codice_operatore_donating UNION SELECT 6 AS ord, 'RICHIESTE NUMEROSITA DI CAUSALI CONTEMPORANEE- 3 causale di rifiuto' AS d, a.codice_operatore_donating AS don, NVL (COUNT (a.id_richiesta), 0) AS v FROM mnp.mnp_gest_rich_donor_virt a WHERE a.stato = 7 AND a.data_cut_over_calc BETWEEN data_inizio AND data_fine AND a.richiestaadhoc = 0 --and richiestaadhocaom = 0 AND a.codice_operatore_recipient = 'TIMG' AND LENGTH (a.codice_rifiuto_validazione) = 9 AND flag_prevalidazione = 'Y' GROUP BY 6, 'RICHIESTE NUMEROSITA DI CAUSALI CONTEMPORANEE- 3 causale di rifiuto', a.codice_operatore_donating UNION SELECT 7 AS ord, 'RICHIESTE NUMEROSITA DI CAUSALI CONTEMPORANEE- 4 causale di rifiuto' AS d, a.codice_operatore_donating AS don, NVL (COUNT (a.id_richiesta), 0) AS v FROM mnp.mnp_gest_rich_donor_virt a WHERE a.stato = 7 AND a.data_cut_over_calc BETWEEN data_inizio AND data_fine AND a.richiestaadhoc = 0 --and richiestaadhocaom = 0 AND a.codice_operatore_recipient = 'TIMG' AND LENGTH (a.codice_rifiuto_validazione) = 12 AND flag_prevalidazione = 'Y' GROUP BY 7, 'RICHIESTE NUMEROSITA DI CAUSALI CONTEMPORANEE- 4 causale di rifiuto', a.codice_operatore_donating UNION SELECT 8 AS ord, 'RICHIESTE NUMEROSITA DI CAUSALI CONTEMPORANEE- 5 causale di rifiuto' AS d, a.codice_operatore_donating AS don, NVL (COUNT (a.id_richiesta), 0) AS v FROM mnp.mnp_gest_rich_donor_virt a WHERE a.stato = 7 AND a.data_cut_over_calc BETWEEN data_inizio AND data_fine AND a.richiestaadhoc = 0 --and richiestaadhocaom = 0 AND a.codice_operatore_recipient = 'TIMG' AND LENGTH (a.codice_rifiuto_validazione) = 15 AND flag_prevalidazione = 'Y' GROUP BY 8, 'RICHIESTE NUMEROSITA DI CAUSALI CONTEMPORANEE- 5 causale di rifiuto', a.codice_operatore_donating UNION SELECT 9 AS ord, 'RICHIESTE NUMEROSITA DI CAUSALI CONTEMPORANEE- 6 causale di rifiuto' AS d, a.codice_operatore_donating AS don, NVL (COUNT (a.id_richiesta), 0) AS v FROM mnp.mnp_gest_rich_donor_virt a WHERE a.stato = 7 AND a.data_cut_over_calc BETWEEN data_inizio AND data_fine AND a.richiestaadhoc = 0 --and richiestaadhocaom = 0 AND a.codice_operatore_recipient = 'TIMG' AND LENGTH (a.codice_rifiuto_validazione) = 18 AND flag_prevalidazione = 'Y' GROUP BY 9, 'RICHIESTE NUMEROSITA DI CAUSALI CONTEMPORANEE- 6 causale di rifiuto', a.codice_operatore_donating UNION SELECT 10 AS ord, 'RICHIESTE NUMEROSITA DI CAUSALI CONTEMPORANEE- 7 causale di rifiuto' AS d, a.codice_operatore_donating AS don, NVL (COUNT (a.id_richiesta), 0) AS v FROM mnp.mnp_gest_rich_donor_virt a WHERE a.stato = 7 AND a.data_cut_over_calc BETWEEN data_inizio AND data_fine AND a.richiestaadhoc = 0 --and richiestaadhocaom = 0 AND a.codice_operatore_recipient = 'TIMG' AND LENGTH (a.codice_rifiuto_validazione) = 21 AND flag_prevalidazione = 'Y' GROUP BY 10, 'RICHIESTE NUMEROSITA DI CAUSALI CONTEMPORANEE- 7 causale di rifiuto', a.codice_operatore_donating UNION SELECT 11 AS ord, 'RICHIESTE NUMEROSITA DI CAUSALI CONTEMPORANEE- 8 causale di rifiuto' AS d, a.codice_operatore_donating AS don, NVL (COUNT (a.id_richiesta), 0) AS v FROM mnp.mnp_gest_rich_donor_virt a WHERE a.stato = 7 AND a.data_cut_over_calc BETWEEN data_inizio AND data_fine AND a.richiestaadhoc = 0 --and a.richiestaadhocaom = 0 AND a.codice_operatore_recipient = 'TIMG' AND LENGTH (a.codice_rifiuto_validazione) = 24 AND flag_prevalidazione = 'Y' GROUP BY 11, 'RICHIESTE NUMEROSITA DI CAUSALI CONTEMPORANEE- 8 causale di rifiuto', a.codice_operatore_donating UNION SELECT 12 AS ord, 'RICHIESTE NUMEROSITA DI CAUSALI CONTEMPORANEE- 9 causale di rifiuto' AS d, a.codice_operatore_donating AS don, NVL (COUNT (a.id_richiesta), 0) AS v FROM mnp.mnp_gest_rich_donor_virt a WHERE a.stato = 7 AND a.data_cut_over_calc BETWEEN data_inizio AND data_fine AND a.richiestaadhoc = 0 --and a.richiestaadhocaom = 0 AND a.codice_operatore_recipient = 'TIMG' AND LENGTH (a.codice_rifiuto_validazione) = 27 AND flag_prevalidazione = 'Y' GROUP BY 12, 'RICHIESTE NUMEROSITA DI CAUSALI CONTEMPORANEE- 9 causale di rifiuto', a.codice_operatore_donating UNION SELECT 13 AS ord, 'RICHIESTE NUMEROSITA DI CAUSALI CONTEMPORANEE- 10 causale di rifiuto' AS d, a.codice_operatore_donating AS don, NVL (COUNT (a.id_richiesta), 0) AS v FROM mnp.mnp_gest_rich_donor_virt a WHERE a.stato = 7 AND a.data_cut_over_calc BETWEEN data_inizio AND data_fine AND a.richiestaadhoc = 0 --and a.richiestaadhocaom = 0 AND a.codice_operatore_recipient = 'TIMG' AND LENGTH (a.codice_rifiuto_validazione) = 30 AND flag_prevalidazione = 'Y' GROUP BY 13, 'RICHIESTE NUMEROSITA DI CAUSALI CONTEMPORANEE- 10 causale di rifiuto', a.codice_operatore_donating UNION SELECT 14 AS ord, 'RICHIESTE NUMEROSITA DI CAUSALI CONTEMPORANEE- 11 causale di rifiuto' AS d, a.codice_operatore_donating AS don, NVL (COUNT (a.id_richiesta), 0) AS v FROM mnp.mnp_gest_rich_donor_virt a WHERE a.stato = 7 AND a.data_cut_over_calc BETWEEN data_inizio AND data_fine AND a.richiestaadhoc = 0 --and a.richiestaadhocaom = 0 AND a.codice_operatore_recipient = 'TIMG' AND LENGTH (a.codice_rifiuto_validazione) = 33 AND flag_prevalidazione = 'Y' GROUP BY 14, 'RICHIESTE NUMEROSITA DI CAUSALI CONTEMPORANEE- 11 causale di rifiuto', a.codice_operatore_donating ---- FINE DONOR VIRTUALE UNION SELECT 26 AS ord, 'VALIDATE POSITIVAMENTE' AS d, a.codice_operatore_don_eff AS don, NVL (COUNT (s.id_richiesta), 0) AS v FROM mnp.mnp_storico_richiesta_rec s, mnp.mnp_gestione_richiesta_rec a WHERE a.id_richiesta = s.id_richiesta AND s.stato_a = 8 AND a.data_cut_over_calc BETWEEN data_inizio AND data_fine AND a.richiestaadhoc = 0 and a.richiestaadhocaom = 0 AND a.codice_operatore_rec_eff = 'TIMG' AND flag_prevalidazione = 'Y' GROUP BY 26, 'VALIDATE POSITIVAMENTE', a.codice_operatore_don_eff UNION SELECT 27 AS ord, 'VALIDATE POSITIVAMENTE' AS d, a.codice_operatore_donating AS don, NVL (COUNT (s.id_richiesta), 0) AS v FROM mnp.mnp_storico_rich_don_virt s, mnp.mnp_gest_rich_donor_virt a WHERE a.id_richiesta = s.id_richiesta AND s.stato_a = 6 AND a.data_cut_over_calc BETWEEN data_inizio AND data_fine AND a.richiestaadhoc = 0 --and a.richiestaadhocaom = 0 AND a.codice_operatore_recipient = 'TIMG' AND flag_prevalidazione = 'Y' GROUP BY 27, 'VALIDATE POSITIVAMENTE', a.codice_operatore_donating) x, mnp.mnp_anagrafica_operatori an WHERE an.id_operatore(+) = x.don) 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 clob; CURSOR cur_res (data_inizio DATE, data_fine DATE) IS SELECT d || ';' || rec || ';' || v || ';' AS csv FROM ( --4d SELECT x.ord, x.d, NVL (an.id_amministrativo, x.rec) AS rec, v 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 g WHERE stato IN (12) AND data_cut_over_calc BETWEEN data_inizio AND data_fine AND codice_operatore_don_eff = 'TIMG' AND richiestaadhoc = 0 and richiestaadhocaom = 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, NVL (COUNT (g.cod_controllo_presaincarico), 0) AS v FROM mnp.mnp_causale_accodamento c, mnp.mnp_gestione_richiesta g WHERE stato IN (4) AND g.cod_controllo_presaincarico = c.codice_causale AND data_cut_over_calc BETWEEN data_inizio AND data_fine AND codice_operatore_don_eff = 'TIMG' AND richiestaadhoc = 0 and richiestaadhocaom = 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, NVL (COUNT (c.cod_causale_rifiuto), 0) AS v FROM mnp.mnp_gestione_richiesta a, mnp.mnp_causale_rifiuto c WHERE a.codice_rifiuto_validazione LIKE '%' || c.cod_causale_rifiuto || ';%' AND stato = 10 AND data_cut_over_calc BETWEEN data_inizio AND data_fine AND codice_operatore_don_eff = 'TIMG' AND richiestaadhoc = 0 and richiestaadhocaom = 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 ---RECIPIENT virtuale UNION SELECT 3 AS ord, c.cod_causale_rifiuto || '-' || c.causale AS d, a.codice_operatore_recipient AS rec, NVL (COUNT (c.cod_causale_rifiuto), 0) AS v FROM mnp.mnp_gest_rich_rec_virt a, mnp.mnp_causale_rifiuto c WHERE a.codice_rifiuto_validazione LIKE '%' || c.cod_causale_rifiuto || ';%' AND stato = 7 AND data_cut_over_calc BETWEEN data_inizio AND data_fine AND codice_operatore_donating = 'TIMG' AND richiestaadhoc = 0 --and richiestaadhocaom = 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_recipient ---fine RECIPIENT virtuale UNION SELECT 4 AS ord, 'RICHIESTE NUMEROSITA DI CAUSALI CONTEMPORANEE- 1 causale di rifiuto' AS d, a.codice_operatore_rec_eff AS rec, NVL (COUNT (a.id_richiesta), 0) AS v FROM mnp.mnp_gestione_richiesta a WHERE a.stato = 10 AND a.data_cut_over_calc BETWEEN data_inizio AND data_fine AND a.richiestaadhoc = 0 and a.richiestaadhocaom = 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 di rifiuto', a.codice_operatore_rec_eff UNION SELECT 5 AS ord, 'RICHIESTE NUMEROSITA DI CAUSALI CONTEMPORANEE- 2 causale di rifiuto' AS d, a.codice_operatore_rec_eff AS rec, NVL (COUNT (a.id_richiesta), 0) AS v FROM mnp.mnp_gestione_richiesta a WHERE a.stato = 10 AND a.data_cut_over_calc BETWEEN data_inizio AND data_fine AND a.richiestaadhoc = 0 and a.richiestaadhocaom = 0 AND a.codice_operatore_don_eff = 'TIMG' AND LENGTH (a.codice_rifiuto_validazione) = 6 AND flag_prevalidazione = 'Y' GROUP BY 5, 'RICHIESTE NUMEROSITA DI CAUSALI CONTEMPORANEE- 2 causale di rifiuto', a.codice_operatore_rec_eff UNION SELECT 6 AS ord, 'RICHIESTE NUMEROSITA DI CAUSALI CONTEMPORANEE- 3 causale di rifiuto' AS d, a.codice_operatore_rec_eff AS rec, NVL (COUNT (a.id_richiesta), 0) AS v FROM mnp.mnp_gestione_richiesta a WHERE a.stato = 10 AND a.data_cut_over_calc BETWEEN data_inizio AND data_fine AND a.richiestaadhoc = 0 and a.richiestaadhocaom = 0 AND a.codice_operatore_don_eff = 'TIMG' AND LENGTH (a.codice_rifiuto_validazione) = 9 AND flag_prevalidazione = 'Y' GROUP BY 6, 'RICHIESTE NUMEROSITA DI CAUSALI CONTEMPORANEE- 3 causale di rifiuto', a.codice_operatore_rec_eff UNION SELECT 7 AS ord, 'RICHIESTE NUMEROSITA DI CAUSALI CONTEMPORANEE- 4 causale di rifiuto' AS d, a.codice_operatore_rec_eff AS rec, NVL (COUNT (a.id_richiesta), 0) AS v FROM mnp.mnp_gestione_richiesta a WHERE a.stato = 10 AND a.data_cut_over_calc BETWEEN data_inizio AND data_fine AND a.richiestaadhoc = 0 and a.richiestaadhocaom = 0 AND a.codice_operatore_don_eff = 'TIMG' AND LENGTH (a.codice_rifiuto_validazione) = 12 AND flag_prevalidazione = 'Y' GROUP BY 7, 'RICHIESTE NUMEROSITA DI CAUSALI CONTEMPORANEE- 4 causale di rifiuto', a.codice_operatore_rec_eff UNION SELECT 8 AS ord, 'RICHIESTE NUMEROSITA DI CAUSALI CONTEMPORANEE- 5 causale di rifiuto' AS d, a.codice_operatore_rec_eff AS rec, NVL (COUNT (a.id_richiesta), 0) AS v FROM mnp.mnp_gestione_richiesta a WHERE a.stato = 10 AND a.data_cut_over_calc BETWEEN data_inizio AND data_fine AND a.richiestaadhoc = 0 and a.richiestaadhocaom = 0 AND a.codice_operatore_don_eff = 'TIMG' AND LENGTH (a.codice_rifiuto_validazione) = 15 AND flag_prevalidazione = 'Y' GROUP BY 8, 'RICHIESTE NUMEROSITA DI CAUSALI CONTEMPORANEE- 5 causale di rifiuto', a.codice_operatore_rec_eff UNION SELECT 9 AS ord, 'RICHIESTE NUMEROSITA DI CAUSALI CONTEMPORANEE- 6 causale di rifiuto' AS d, a.codice_operatore_rec_eff AS rec, NVL (COUNT (a.id_richiesta), 0) AS v FROM mnp.mnp_gestione_richiesta a WHERE a.stato = 10 AND a.data_cut_over_calc BETWEEN data_inizio AND data_fine AND a.richiestaadhoc = 0 and a.richiestaadhocaom = 0 AND a.codice_operatore_don_eff = 'TIMG' AND LENGTH (a.codice_rifiuto_validazione) = 18 AND flag_prevalidazione = 'Y' GROUP BY 9, 'RICHIESTE NUMEROSITA DI CAUSALI CONTEMPORANEE- 6 causale di rifiuto', a.codice_operatore_rec_eff UNION SELECT 10 AS ord, 'RICHIESTE NUMEROSITA DI CAUSALI CONTEMPORANEE- 7 causale di rifiuto' AS d, a.codice_operatore_rec_eff AS rec, NVL (COUNT (a.id_richiesta), 0) AS v FROM mnp.mnp_gestione_richiesta a WHERE a.stato = 10 AND a.data_cut_over_calc BETWEEN data_inizio AND data_fine AND a.richiestaadhoc = 0 and a.richiestaadhocaom = 0 AND a.codice_operatore_don_eff = 'TIMG' AND LENGTH (a.codice_rifiuto_validazione) = 21 AND flag_prevalidazione = 'Y' GROUP BY 10, 'RICHIESTE NUMEROSITA DI CAUSALI CONTEMPORANEE- 7 causale di rifiuto', a.codice_operatore_rec_eff UNION SELECT 11 AS ord, 'RICHIESTE NUMEROSITA DI CAUSALI CONTEMPORANEE- 8 causale di rifiuto' AS d, a.codice_operatore_rec_eff AS rec, NVL (COUNT (a.id_richiesta), 0) AS v FROM mnp.mnp_gestione_richiesta a WHERE a.stato = 10 AND a.data_cut_over_calc BETWEEN data_inizio AND data_fine AND a.richiestaadhoc = 0 and a.richiestaadhocaom = 0 AND a.codice_operatore_don_eff = 'TIMG' AND LENGTH (a.codice_rifiuto_validazione) = 24 AND flag_prevalidazione = 'Y' GROUP BY 11, 'RICHIESTE NUMEROSITA DI CAUSALI CONTEMPORANEE- 8 causale di rifiuto', a.codice_operatore_rec_eff UNION SELECT 12 AS ord, 'RICHIESTE NUMEROSITA DI CAUSALI CONTEMPORANEE- 9 causale di rifiuto' AS d, a.codice_operatore_rec_eff AS rec, NVL (COUNT (a.id_richiesta), 0) AS v FROM mnp.mnp_gestione_richiesta a WHERE a.stato = 10 AND a.data_cut_over_calc BETWEEN data_inizio AND data_fine AND a.richiestaadhoc = 0 and a.richiestaadhocaom = 0 AND a.codice_operatore_don_eff = 'TIMG' AND LENGTH (a.codice_rifiuto_validazione) = 27 AND flag_prevalidazione = 'Y' GROUP BY 12, 'RICHIESTE NUMEROSITA DI CAUSALI CONTEMPORANEE- 9 causale di rifiuto', a.codice_operatore_rec_eff UNION SELECT 13 AS ord, 'RICHIESTE NUMEROSITA DI CAUSALI CONTEMPORANEE- 10 causale di rifiuto' AS d, a.codice_operatore_rec_eff AS rec, NVL (COUNT (a.id_richiesta), 0) AS v FROM mnp.mnp_gestione_richiesta a WHERE a.stato = 10 AND a.data_cut_over_calc BETWEEN data_inizio AND data_fine AND a.richiestaadhoc = 0 and a.richiestaadhocaom = 0 AND a.codice_operatore_don_eff = 'TIMG' AND LENGTH (a.codice_rifiuto_validazione) = 30 AND flag_prevalidazione = 'Y' GROUP BY 13, 'RICHIESTE NUMEROSITA DI CAUSALI CONTEMPORANEE- 10 causale di rifiuto', a.codice_operatore_rec_eff UNION SELECT 14 AS ord, 'RICHIESTE NUMEROSITA DI CAUSALI CONTEMPORANEE- 11 causale di rifiuto' AS d, a.codice_operatore_rec_eff AS rec, NVL (COUNT (a.id_richiesta), 0) AS v FROM mnp.mnp_gestione_richiesta a WHERE a.stato = 10 AND a.data_cut_over_calc BETWEEN data_inizio AND data_fine AND a.richiestaadhoc = 0 and a.richiestaadhocaom = 0 AND a.codice_operatore_don_eff = 'TIMG' AND LENGTH (a.codice_rifiuto_validazione) = 33 AND flag_prevalidazione = 'Y' GROUP BY 14, 'RICHIESTE NUMEROSITA DI CAUSALI CONTEMPORANEE- 11 causale di rifiuto', a.codice_operatore_rec_eff --- RECIPINT VIRTUALE UNION SELECT 4 AS ord, 'RICHIESTE NUMEROSITA DI CAUSALI CONTEMPORANEE- 1 causale di rifiuto' AS d, a.codice_operatore_recipient AS rec, NVL (COUNT (a.id_richiesta), 0) AS v FROM mnp.mnp_gest_rich_rec_virt a WHERE a.stato = 7 AND a.data_cut_over_calc BETWEEN data_inizio AND data_fine AND a.richiestaadhoc = 0 --and a.richiestaadhocaom = 0 AND a.codice_operatore_donating = 'TIMG' AND LENGTH (a.codice_rifiuto_validazione) = 3 AND flag_prevalidazione = 'Y' GROUP BY 4, 'RICHIESTE NUMEROSITA DI CAUSALI CONTEMPORANEE- 1 causale di rifiuto', a.codice_operatore_recipient UNION SELECT 5 AS ord, 'RICHIESTE NUMEROSITA DI CAUSALI CONTEMPORANEE- 2 causale di rifiuto' AS d, a.codice_operatore_recipient AS rec, NVL (COUNT (a.id_richiesta), 0) AS v FROM mnp.mnp_gest_rich_rec_virt a WHERE a.stato = 7 AND a.data_cut_over_calc BETWEEN data_inizio AND data_fine AND a.richiestaadhoc = 0 --and a.richiestaadhocaom = 0 AND a.codice_operatore_donating = 'TIMG' AND LENGTH (a.codice_rifiuto_validazione) = 6 AND flag_prevalidazione = 'Y' GROUP BY 5, 'RICHIESTE NUMEROSITA DI CAUSALI CONTEMPORANEE- 2 causale di rifiuto', a.codice_operatore_recipient UNION SELECT 6 AS ord, 'RICHIESTE NUMEROSITA DI CAUSALI CONTEMPORANEE- 3 causale di rifiuto' AS d, a.codice_operatore_recipient AS rec, NVL (COUNT (a.id_richiesta), 0) AS v FROM mnp.mnp_gest_rich_rec_virt a WHERE a.stato = 7 AND a.data_cut_over_calc BETWEEN data_inizio AND data_fine AND a.richiestaadhoc = 0 --and a.richiestaadhocaom = 0 AND a.codice_operatore_donating = 'TIMG' AND LENGTH (a.codice_rifiuto_validazione) = 9 AND flag_prevalidazione = 'Y' GROUP BY 6, 'RICHIESTE NUMEROSITA DI CAUSALI CONTEMPORANEE- 3 causale di rifiuto', a.codice_operatore_recipient UNION SELECT 7 AS ord, 'RICHIESTE NUMEROSITA DI CAUSALI CONTEMPORANEE- 4 causale di rifiuto' AS d, a.codice_operatore_recipient AS rec, NVL (COUNT (a.id_richiesta), 0) AS v FROM mnp.mnp_gest_rich_rec_virt a WHERE a.stato = 7 AND a.data_cut_over_calc BETWEEN data_inizio AND data_fine AND a.richiestaadhoc = 0 --and a.richiestaadhocaom = 0 AND a.codice_operatore_donating = 'TIMG' AND LENGTH (a.codice_rifiuto_validazione) = 12 AND flag_prevalidazione = 'Y' GROUP BY 7, 'RICHIESTE NUMEROSITA DI CAUSALI CONTEMPORANEE- 4 causale di rifiuto', a.codice_operatore_recipient UNION SELECT 8 AS ord, 'RICHIESTE NUMEROSITA DI CAUSALI CONTEMPORANEE- 5 causale di rifiuto' AS d, a.codice_operatore_recipient AS rec, NVL (COUNT (a.id_richiesta), 0) AS v FROM mnp.mnp_gest_rich_rec_virt a WHERE a.stato = 7 AND a.data_cut_over_calc BETWEEN data_inizio AND data_fine AND a.richiestaadhoc = 0 --and a.richiestaadhocaom = 0 AND a.codice_operatore_donating = 'TIMG' AND LENGTH (a.codice_rifiuto_validazione) = 15 AND flag_prevalidazione = 'Y' GROUP BY 8, 'RICHIESTE NUMEROSITA DI CAUSALI CONTEMPORANEE- 5 causale di rifiuto', a.codice_operatore_recipient UNION SELECT 9 AS ord, 'RICHIESTE NUMEROSITA DI CAUSALI CONTEMPORANEE- 6 causale di rifiuto' AS d, a.codice_operatore_recipient AS rec, NVL (COUNT (a.id_richiesta), 0) AS v FROM mnp.mnp_gest_rich_rec_virt a WHERE a.stato = 7 AND a.data_cut_over_calc BETWEEN data_inizio AND data_fine AND a.richiestaadhoc = 0 --and a.richiestaadhocaom = 0 AND a.codice_operatore_donating = 'TIMG' AND LENGTH (a.codice_rifiuto_validazione) = 18 AND flag_prevalidazione = 'Y' GROUP BY 9, 'RICHIESTE NUMEROSITA DI CAUSALI CONTEMPORANEE- 6 causale di rifiuto', a.codice_operatore_recipient UNION SELECT 10 AS ord, 'RICHIESTE NUMEROSITA DI CAUSALI CONTEMPORANEE- 7 causale di rifiuto' AS d, a.codice_operatore_recipient AS rec, NVL (COUNT (a.id_richiesta), 0) AS v FROM mnp.mnp_gest_rich_rec_virt a WHERE a.stato = 7 AND a.data_cut_over_calc BETWEEN data_inizio AND data_fine AND a.richiestaadhoc = 0 --and a.richiestaadhocaom = 0 AND a.codice_operatore_donating = 'TIMG' AND LENGTH (a.codice_rifiuto_validazione) = 21 AND flag_prevalidazione = 'Y' GROUP BY 10, 'RICHIESTE NUMEROSITA DI CAUSALI CONTEMPORANEE- 7 causale di rifiuto', a.codice_operatore_recipient UNION SELECT 11 AS ord, 'RICHIESTE NUMEROSITA DI CAUSALI CONTEMPORANEE- 8 causale di rifiuto' AS d, a.codice_operatore_recipient AS rec, NVL (COUNT (a.id_richiesta), 0) AS v FROM mnp.mnp_gest_rich_rec_virt a WHERE a.stato = 7 AND a.data_cut_over_calc BETWEEN data_inizio AND data_fine AND a.richiestaadhoc = 0 --and a.richiestaadhocaom = 0 AND a.codice_operatore_donating = 'TIMG' AND LENGTH (a.codice_rifiuto_validazione) = 24 AND flag_prevalidazione = 'Y' GROUP BY 11, 'RICHIESTE NUMEROSITA DI CAUSALI CONTEMPORANEE- 8 causale di rifiuto', a.codice_operatore_recipient UNION SELECT 12 AS ord, 'RICHIESTE NUMEROSITA DI CAUSALI CONTEMPORANEE- 9 causale di rifiuto' AS d, a.codice_operatore_recipient AS rec, NVL (COUNT (a.id_richiesta), 0) AS v FROM mnp.mnp_gest_rich_rec_virt a WHERE a.stato = 7 AND a.data_cut_over_calc BETWEEN data_inizio AND data_fine AND a.richiestaadhoc = 0 --and a.richiestaadhocaom = 0 AND a.codice_operatore_donating = 'TIMG' AND LENGTH (a.codice_rifiuto_validazione) = 27 AND flag_prevalidazione = 'Y' GROUP BY 12, 'RICHIESTE NUMEROSITA DI CAUSALI CONTEMPORANEE- 9 causale di rifiuto', a.codice_operatore_recipient UNION SELECT 13 AS ord, 'RICHIESTE NUMEROSITA DI CAUSALI CONTEMPORANEE- 10 causale di rifiuto' AS d, a.codice_operatore_recipient AS rec, NVL (COUNT (a.id_richiesta), 0) AS v FROM mnp.mnp_gest_rich_rec_virt a WHERE a.stato = 7 AND a.data_cut_over_calc BETWEEN data_inizio AND data_fine AND a.richiestaadhoc = 0 --and a.richiestaadhocaom = 0 AND a.codice_operatore_donating = 'TIMG' AND LENGTH (a.codice_rifiuto_validazione) = 30 AND flag_prevalidazione = 'Y' GROUP BY 13, 'RICHIESTE NUMEROSITA DI CAUSALI CONTEMPORANEE- 10 causale di rifiuto', a.codice_operatore_recipient UNION SELECT 14 AS ord, 'RICHIESTE NUMEROSITA DI CAUSALI CONTEMPORANEE- 11 causale di rifiuto' AS d, a.codice_operatore_recipient AS rec, NVL (COUNT (a.id_richiesta), 0) AS v FROM mnp.mnp_gest_rich_rec_virt a WHERE a.stato = 7 AND a.data_cut_over_calc BETWEEN data_inizio AND data_fine AND a.richiestaadhoc = 0 --and a.richiestaadhocaom = 0 AND a.codice_operatore_donating = 'TIMG' AND LENGTH (a.codice_rifiuto_validazione) = 33 AND flag_prevalidazione = 'Y' GROUP BY 14, 'RICHIESTE NUMEROSITA DI CAUSALI CONTEMPORANEE- 11 causale di rifiuto', a.codice_operatore_recipient --- FINE RECIPIENT VIRTUALE UNION SELECT 26 AS ord, 'VALIDATE POSITIVAMENTE' AS d, a.codice_operatore_rec_eff AS rec, NVL (COUNT (s.id_richiesta), 0) AS v FROM mnp.mnp_storico_richiesta s, mnp.mnp_gestione_richiesta a WHERE a.id_richiesta = s.id_richiesta AND s.stato_a = 7 AND a.data_cut_over_calc BETWEEN data_inizio AND data_fine AND a.richiestaadhoc = 0 and a.richiestaadhocaom = 0 AND a.codice_operatore_don_eff = 'TIMG' AND flag_prevalidazione = 'Y' GROUP BY 26, 'VALIDATE POSITIVAMENTE', a.codice_operatore_rec_eff UNION SELECT 27 AS ord, 'VALIDATE POSITIVAMENTE' AS d, a.codice_operatore_recipient AS rec, NVL (COUNT (s.id_richiesta), 0) AS v FROM mnp.mnp_storico_rich_rec_virt s, mnp.mnp_gest_rich_rec_virt a WHERE a.id_richiesta = s.id_richiesta AND s.stato_a = 6 AND a.data_cut_over_calc BETWEEN data_inizio AND data_fine AND a.richiestaadhoc = 0 --and a.richiestaadhocaom = 0 AND a.codice_operatore_donating = 'TIMG' AND flag_prevalidazione = 'Y' GROUP BY 27, 'VALIDATE POSITIVAMENTE', a.codice_operatore_recipient) x, mnp.mnp_anagrafica_operatori an WHERE an.id_operatore(+) = x.rec) 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 clob; CURSOR cur_res (data_inizio DATE, data_fine DATE) IS SELECT recipient || ';' || donor || ';' || richieste || ';' AS csv FROM ( SELECT andon.id_amm AS donor, anrec.id_amm AS recipient, SUM (ss.richieste) AS 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 a WHERE id_richiesta IN ( SELECT id_richiesta FROM mnp.mnp_storico_richiesta_rec WHERE stato_a = 12 AND data_lavorazione BETWEEN data_inizio AND data_fine) -- 05/10/11 eliminata condizione su 'ACCODATA' -- AND id_richiesta NOT IN ( -- SELECT id_richiesta -- FROM mnp.mnp_storico_richiesta_rec -- 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 a WHERE id_richiesta IN ( SELECT id_richiesta FROM mnp.mnp_storico_rich_don_virt WHERE stato_a = 11 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 a WHERE id_richiesta IN ( SELECT id_richiesta FROM mnp.mnp_storico_richiesta 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 a WHERE id_richiesta IN ( SELECT id_richiesta FROM mnp.mnp_storico_rich_rec_virt WHERE stato_a = 12 AND data_lavorazione BETWEEN data_inizio AND data_fine) GROUP BY codice_operatore_donating, codice_operatore_recipient UNION SELECT 'TP', codice_operatore_don_eff don, codice_operatore_rec_eff rec, COUNT (a.id_richiesta) AS richieste FROM mnp.mnp_gestione_richiesta_porting a WHERE id_richiesta IN ( SELECT id_richiesta FROM mnp.mnp_storico_porting WHERE stato_a = 6 AND data_lavorazione BETWEEN data_inizio AND data_fine) GROUP BY codice_operatore_don_eff, codice_operatore_rec_eff) ss, (SELECT NVL (b.id_amministrativo, b.id_operatore)AS id_amm, ID_OPERATORE FROM mnp.mnp_anagrafica_operatori b) andon, (SELECT NVL (b.id_amministrativo, b.id_operatore)AS id_amm, ID_OPERATORE FROM mnp.mnp_anagrafica_operatori b) anrec WHERE andon.id_operatore = ss.don AND anrec.id_operatore = ss.rec GROUP BY andon.id_amm, anrec.id_amm ORDER BY donor, recipient); 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 clob; CURSOR cur_res (data_inizio DATE, data_fine DATE) IS SELECT recipient || ';' || donor || ';' || richieste || ';' AS csv FROM (SELECT andon.id_amm donor, anrec.id_amm 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 a WHERE (richiestaadhoc = 1 or richiestaadhocaom = 1) AND id_richiesta IN ( SELECT id_richiesta FROM mnp.mnp_storico_richiesta_rec WHERE stato_a = 12 AND data_lavorazione BETWEEN data_inizio AND data_fine) -- 05/10/11 eliminata condizione su 'ACCODATA' -- AND id_richiesta NOT IN ( -- SELECT id_richiesta -- FROM mnp.mnp_storico_richiesta_rec -- 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 a WHERE richiestaadhoc = 1 --or richiestaadhocaom = 1) AND id_richiesta IN ( SELECT id_richiesta FROM mnp.mnp_storico_rich_don_virt WHERE stato_a = 11 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 a WHERE (RICHIESTAADHOCAOM = 1 or richiestaadhoc=1)-- e qui?? c'era solo richiestaadhocaom=1 ??? AND id_richiesta IN ( SELECT id_richiesta FROM mnp.mnp_storico_richiesta 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 a WHERE richiestaadhoc = 1 --or richiestaadhocaom = 1) AND id_richiesta IN ( SELECT id_richiesta FROM mnp.mnp_storico_rich_rec_virt WHERE stato_a = 12 AND data_lavorazione BETWEEN data_inizio AND data_fine) GROUP BY codice_operatore_donating, codice_operatore_recipient) ss, (SELECT NVL (b.id_amministrativo, b.id_operatore)AS id_amm, ID_OPERATORE FROM mnp.mnp_anagrafica_operatori b) andon, (SELECT NVL (b.id_amministrativo, b.id_operatore)AS id_amm, ID_OPERATORE FROM mnp.mnp_anagrafica_operatori b) anrec WHERE andon.id_operatore = ss.don AND anrec.id_operatore = ss.rec GROUP BY andon.id_amm, anrec.id_amm ORDER BY donor, recipient); 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 clob; CURSOR cur_res (data_inizio DATE, data_fine DATE) IS SELECT recipient || ';' || donor || ';' || richieste || ';' AS csv FROM (SELECT andon.id_amm AS donor, anrec.id_amm AS 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 a WHERE richiestaadhoc = 0 and richiestaadhocaom=0 AND id_richiesta IN ( SELECT id_richiesta FROM mnp.mnp_storico_richiesta_rec WHERE stato_a = 12 AND data_lavorazione BETWEEN data_inizio AND data_fine) -- 05/10/11 eliminata condizione su 'ACCODATA' -- AND id_richiesta NOT IN ( -- SELECT id_richiesta -- FROM mnp.mnp_storico_richiesta_rec -- 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 a WHERE richiestaadhoc = 0 --and richiestaadhocaom=0 AND id_richiesta IN ( SELECT id_richiesta FROM mnp.mnp_storico_rich_don_virt WHERE stato_a = 11 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 a WHERE richiestaadhoc = 0 and richiestaadhocaom=0 AND id_richiesta IN ( SELECT id_richiesta FROM mnp.mnp_storico_richiesta 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 a WHERE richiestaadhoc = 0 --and richiestaadhocaom=0 AND id_richiesta IN ( SELECT id_richiesta FROM mnp.mnp_storico_rich_rec_virt WHERE stato_a = 12 AND data_lavorazione BETWEEN data_inizio AND data_fine) GROUP BY codice_operatore_donating, codice_operatore_recipient) ss, (SELECT NVL (b.id_amministrativo, b.id_operatore)AS id_amm, ID_OPERATORE FROM mnp.mnp_anagrafica_operatori b) andon, (SELECT NVL (b.id_amministrativo, b.id_operatore)AS id_amm, ID_OPERATORE FROM mnp.mnp_anagrafica_operatori b) anrec WHERE andon.id_operatore = ss.don AND anrec.id_operatore = ss.rec GROUP BY andon.id_amm, anrec.id_amm ORDER BY donor, recipient); 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 clob; CURSOR cur_res (data_inizio DATE, data_fine DATE) IS SELECT recipient || ';' || donor || ';' || richieste || ';' AS csv FROM (SELECT andon.id_amm AS donor, anrec.id_amm AS recipient, SUM (ss.richieste) richieste FROM (SELECT 'REC' AS processo, codice_operatore_don_eff don, codice_operatore_rec_eff rec, COUNT (distinct a.codice_gruppo) AS richieste FROM mnp.mnp_gestione_richiesta_rec a WHERE (richiestaadhoc = 1 or richiestaadhocaom = 1) AND id_richiesta IN ( SELECT id_richiesta FROM mnp.mnp_storico_richiesta_rec WHERE stato_a = 12 AND data_lavorazione BETWEEN (data_inizio) AND (data_fine )) --modifica SM 2240 AND id_richiesta NOT IN ( -- SELECT id_richiesta -- FROM mnp.mnp_storico_richiesta_rec -- WHERE stato_a = 3 -- AND stato_da = -1 -- AND data_lavorazione BETWEEN (data_inizio) AND (data_fine -- )) GROUP BY 'REC', codice_operatore_don_eff, codice_operatore_rec_eff UNION SELECT 'DV', codice_operatore_donating don, codice_operatore_recipient rec, COUNT (distinct a.codice_gruppo) AS richieste FROM mnp.mnp_gest_rich_donor_virt a WHERE richiestaadhoc = 1 --or richiestaadhocaom = 1) AND id_richiesta IN ( SELECT id_richiesta FROM mnp.mnp_storico_rich_don_virt WHERE stato_a = 11 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 (distinct a.codice_gruppo) AS richieste FROM mnp.mnp_gestione_richiesta a WHERE (richiestaadhoc = 1 or richiestaadhocaom = 1) AND id_richiesta IN ( SELECT id_richiesta FROM mnp.mnp_storico_richiesta 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 (distinct a.codice_gruppo) AS richieste FROM mnp.mnp_gest_rich_rec_virt a WHERE richiestaadhoc = 1 --or richiestaadhocaom = 1) AND id_richiesta IN ( SELECT id_richiesta FROM mnp.mnp_storico_rich_rec_virt WHERE stato_a = 12 AND data_lavorazione BETWEEN (data_inizio) AND (data_fine )) GROUP BY codice_operatore_donating, codice_operatore_recipient ) ss, (SELECT NVL (b.id_amministrativo, b.id_operatore)AS id_amm, ID_OPERATORE FROM mnp.mnp_anagrafica_operatori b) andon, (SELECT NVL (b.id_amministrativo, b.id_operatore)AS id_amm, ID_OPERATORE FROM mnp.mnp_anagrafica_operatori b) anrec WHERE andon.id_operatore = ss.don AND anrec.id_operatore = ss.rec GROUP BY andon.id_amm, anrec.id_amm ORDER BY donor, recipient); 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 clob; CURSOR cur_res (data_inizio DATE, data_fine DATE) IS SELECT x.recipient || ';' || x.donor || ';' || x.richieste || ';' AS csv FROM (SELECT andon.id_amm donor, anrec.id_amm recipient, NVL (SUM (ss.richieste), 0) 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 a WHERE a.stato = 12 AND id_richiesta NOT IN ( SELECT id_richiesta FROM mnp.mnp_storico_richiesta_rec WHERE stato_a = 12 AND data_lavorazione > data_fine) -- modifica SM 2240 AND id_richiesta NOT IN ( -- SELECT id_richiesta -- FROM mnp.mnp_storico_richiesta_rec -- WHERE stato_a = 3 -- AND stato_da = -1 --AND data_lavorazione <= data_fine) GROUP BY codice_operatore_don_eff, codice_operatore_rec_eff -- aggiunta per SM 2240 UNION SELECT 'REC' AS processo, codice_operatore_don_eff don, codice_operatore_rec_eff rec, COUNT (a.id_richiesta) AS richieste FROM mnp.HIST_GESTIONE_RICHIESTA_REC a WHERE stato = 12 GROUP BY codice_operatore_don_eff, codice_operatore_rec_eff -- fine aggiunta per SM 2240 UNION SELECT 'DV', codice_operatore_donating don, codice_operatore_recipient rec, COUNT (a.id_richiesta) AS richieste FROM mnp.mnp_gest_rich_donor_virt a WHERE a.stato = 11 AND id_richiesta NOT IN ( SELECT id_richiesta FROM mnp.mnp_storico_rich_don_virt WHERE stato_a = 11 AND data_lavorazione > data_fine) GROUP BY codice_operatore_donating, codice_operatore_recipient -- aggiunta per SM 2240 UNION SELECT 'DV', codice_operatore_donating don, codice_operatore_recipient rec, COUNT (a.id_richiesta) AS richieste FROM mnp.hist_gest_rich_donor_virt a WHERE stato= 11 GROUP BY codice_operatore_donating, codice_operatore_recipient -- fine aggiunta per SM 2240 UNION SELECT 'DON', codice_operatore_don_eff don, codice_operatore_rec_eff rec, COUNT (a.id_richiesta) AS richieste FROM mnp.mnp_gestione_richiesta a WHERE a.stato = 16 AND id_richiesta NOT IN ( SELECT id_richiesta FROM mnp.mnp_storico_richiesta WHERE stato_a = 16 AND data_lavorazione > data_fine) GROUP BY codice_operatore_don_eff, codice_operatore_rec_eff -- aggiunta per SM 2240 UNION SELECT 'DON', codice_operatore_don_eff don, codice_operatore_rec_eff rec, COUNT (a.id_richiesta) AS richieste FROM mnp.hist_gestione_richiesta a WHERE stato=16 GROUP BY codice_operatore_don_eff, codice_operatore_rec_eff -- fine aggiunta per SM 2240 UNION SELECT 'RV', codice_operatore_donating don, codice_operatore_recipient rec, COUNT (a.id_richiesta) AS richieste FROM mnp.mnp_gest_rich_rec_virt a WHERE a.stato = 12 AND id_richiesta NOT IN ( SELECT id_richiesta FROM mnp.mnp_storico_rich_rec_virt WHERE stato_a = 12 AND data_lavorazione > data_fine) GROUP BY codice_operatore_donating, codice_operatore_recipient --aggiunta per SM 2240 UNION SELECT 'RV', codice_operatore_donating don, codice_operatore_recipient rec, COUNT (a.id_richiesta) AS richieste FROM mnp.hist_gest_rich_rec_virt a WHERE stato= 12 GROUP BY codice_operatore_donating, codice_operatore_recipient --fine aggiunta per SM 2240 UNION SELECT 'TP', codice_operatore_don_eff don, codice_operatore_rec_eff rec, COUNT (a.id_richiesta) AS richieste FROM mnp.mnp_gestione_richiesta_porting a WHERE a.stato = 6 AND id_richiesta NOT IN ( SELECT id_richiesta FROM mnp.mnp_storico_porting b WHERE stato_a = 6 AND data_lavorazione > data_fine) GROUP BY codice_operatore_don_eff, codice_operatore_rec_eff -- aggiunta per KS9 2012 UNION SELECT 'TP', codice_operatore_don_eff don, codice_operatore_rec_eff rec, COUNT (a.id_richiesta) AS richieste FROM mnp.HIST_GESTIONE_RICHIESTAPORTING a WHERE stato= 6 GROUP BY codice_operatore_don_eff, codice_operatore_rec_eff -- fine aggiunta ) ss, (SELECT NVL (b.id_amministrativo, b.id_operatore)AS id_amm, ID_OPERATORE FROM mnp.mnp_anagrafica_operatori b) andon, (SELECT NVL (b.id_amministrativo, b.id_operatore)AS id_amm, ID_OPERATORE FROM mnp.mnp_anagrafica_operatori b) anrec WHERE andon.id_operatore = ss.don AND anrec.id_operatore = ss.rec GROUP BY andon.id_amm, anrec.id_amm ORDER BY donor, recipient) 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 clob; /* */ CURSOR cur_res (data_inizio DATE, data_fine DATE) IS --SELECT donating || ';' || tempo_medio_attivazione || ';' AS csv SELECT donating || ';'||decode(instr(to_char(tempo_medio_attivazione),','),1, '0'||tempo_medio_attivazione,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 r, mnp.mnp_storico_richiesta_rec 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.richiestaadhocaom=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 gg, mnp.mnp_storico_richiesta_rec 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 r, mnp.mnp_storico_richiesta_rec st, (SELECT gg.msisdn, MIN (gs.dataricezionerichiesta) AS dataricezionerichiesta FROM mnp.mnp_gestione_richiesta_rec gg, mnp.mnp_storico_richiesta_rec gs WHERE gs.stato_a = 7 AND gg.id_richiesta = gs.id_richiesta AND gs.data_lavorazione >= SYSDATE - 30 GROUP BY gg.msisdn) 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.richiestaadhocaom=0 AND r.id_richiesta = st.id_richiesta AND st.stato_a = 12 AND xx.msisdn = r.msisdn UNION --- donor virtuale SELECT r.codice_operatore_donating AS donating, r.dataricezionerichiesta, r.id_richiesta, st.data_lavorazione FROM mnp.mnp_gest_rich_donor_virt r, mnp.mnp_storico_rich_don_virt st WHERE r.data_cut_over BETWEEN data_inizio AND data_fine AND r.stato = 11 AND r.codice_operatore_recipient = 'TIMG' AND r.richiestaadhoc = 0 --and r.richiestaadhocaom=0 AND r.id_richiesta = st.id_richiesta AND st.stato_a = 11 AND r.msisdn not in ( select gg.msisdn FROM mnp.mnp_gest_rich_donor_virt gg, mnp.mnp_storico_rich_don_virt gs WHERE gs.stato_a = 7 AND gg.id_richiesta = gs.id_richiesta AND gs.data_lavorazione >= SYSDATE - 30) UNION SELECT r.codice_operatore_donating AS donating, xx.dataricezionerichiesta, r.id_richiesta, st.data_lavorazione FROM mnp.mnp_gest_rich_donor_virt r, mnp.mnp_storico_rich_don_virt st, (SELECT gg.msisdn, MIN (gs.dataricezionerichiesta) AS dataricezionerichiesta FROM mnp.mnp_gest_rich_donor_virt gg, mnp.mnp_storico_rich_don_virt gs WHERE gs.stato_a = 7 AND gg.id_richiesta = gs.id_richiesta AND gs.data_lavorazione >= SYSDATE - 30 GROUP BY gg.msisdn) xx WHERE r.data_cut_over BETWEEN data_inizio AND data_fine AND r.stato = 11 AND r.codice_operatore_recipient = 'TIMG' AND r.richiestaadhoc = 0 --and r.richiestaadhocaom=0 AND r.id_richiesta = st.id_richiesta AND st.stato_a = 11 AND xx.msisdn = r.msisdn --- fine donor virtuale ) 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 clob; CURSOR cur_res (data_inizio DATE, data_fine DATE) IS --SELECT donating || ';' || tempo_medio_realizzazione || ';' AS csv SELECT donating || ';'||decode(instr(to_char(tempo_medio_realizzazione),','),1, '0'||tempo_medio_realizzazione,tempo_medio_realizzazione)||';' AS csv FROM (SELECT r.codice_operatore_don_eff AS donating, ROUND (AVG (fun_giorni_lavorativi (r.data_cut_over_aom, st.data_lavorazione)), 2 ) AS tempo_medio_realizzazione FROM mnp.mnp_gestione_richiesta_rec r, mnp.mnp_storico_richiesta_rec 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, ROUND (AVG (fun_giorni_lavorativi (dv.data_cut_over_eff, stdv.data_lavorazione)), 2 ) AS tempo_medio_realizzazione FROM mnp.mnp_gest_rich_donor_virt dv, mnp.mnp_storico_rich_don_virt 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 clob; 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 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 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 calc9r (anno IN VARCHAR, mese IN VARCHAR) IS -- COSTANTI tipo VARCHAR (10) NOT NULL DEFAULT '9R'; 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 clob; CURSOR cur_res (data_inizio DATE, data_fine DATE) IS SELECT colonna1 || ';' || colonna2 || ';' || colonna3 || ';' || colonna4 || ';' AS csv FROM ( SELECT 1 AS ord, 'Portabilita standard ' AS colonna1, DECODE (a.tipo_messaggio, 'SLA0', 'Numero eventi per cui si applica lo SLA0', 'SLA1', 'Numero eventi per cui si applica lo SLA1', 'SLA2', 'Numero eventi per cui si applica lo SLA2', 'SLA3', 'Numero eventi per cui si applica lo SLA3', NULL) as colonna2, NVL (b.id_amministrativo, b.id_operatore) as colonna3, NVL (COUNT (a.id_richiesta), 0) as colonna4 FROM dwh.mnp_dw_sla_3gg_out a, mnp.mnp_anagrafica_operatori b WHERE a.processo = 'R' AND a.data_cut_over BETWEEN data_inizio AND data_fine AND a.donor_effettivo = b.id_operatore AND NVL(a.numero_sim,0) = 0 AND a.tipo_messaggio <> 'SLA3' GROUP BY a.tipo_messaggio, b.id_amministrativo, b.id_operatore UNION SELECT 1 AS ord, 'Portabilita standard ' AS colonna1, DECODE (a.tipo_messaggio, 'SLA0', 'Numero eventi per cui si applica lo SLA0', 'SLA1', 'Numero eventi per cui si applica lo SLA1', 'SLA2', 'Numero eventi per cui si applica lo SLA2', 'SLA3', 'Numero eventi per cui si applica lo SLA3', NULL) as colonna2, NVL (b.id_amministrativo, b.id_operatore) as colonna3, NVL (COUNT (a.id_richiesta), 0) as colonna4 FROM dwh.mnp_dw_sla_3gg_out a, mnp.mnp_anagrafica_operatori b WHERE a.processo = 'R' AND a.data_cut_over BETWEEN data_inizio AND data_fine AND a.donor_rete = b.id_operatore AND NVL(a.numero_sim,0) = 0 AND a.tipo_messaggio = 'SLA3' GROUP BY a.tipo_messaggio, b.id_amministrativo, b.id_operatore UNION SELECT 2 AS ord, 'Portabilita standard ' AS colonna1, DECODE (a.tipo_messaggio, 'SLA0', 'Tempo cumulato dei ritardi di tipo SLA0', 'SLA1', 'Tempo cumulato dei ritardi di tipo SLA1', 'SLA2', 'Tempo cumulato dei ritardi di tipo SLA2', 'SLA3', 'Tempo cumulato dei ritardi di tipo SLA3', NULL) as colonna2, NVL (b.id_amministrativo, b.id_operatore) as colonna3, NVL (SUM (a.numero_giorni_ritardo), 0) as colonna4 FROM dwh.mnp_dw_sla_3gg_out a, mnp.mnp_anagrafica_operatori b WHERE a.processo = 'R' AND a.data_cut_over BETWEEN data_inizio AND data_fine AND a.donor_effettivo = b.id_operatore AND NVL(a.numero_sim,0) = 0 AND a.tipo_messaggio <> 'SLA3' GROUP BY a.tipo_messaggio, b.id_amministrativo, b.id_operatore UNION SELECT 2 AS ord, 'Portabilita standard ' AS colonna1, DECODE (a.tipo_messaggio, 'SLA0', 'Tempo cumulato dei ritardi di tipo SLA0', 'SLA1', 'Tempo cumulato dei ritardi di tipo SLA1', 'SLA2', 'Tempo cumulato dei ritardi di tipo SLA2', 'SLA3', 'Tempo cumulato dei ritardi di tipo SLA3', NULL) as colonna2, NVL (b.id_amministrativo, b.id_operatore) as colonna3, NVL (SUM (a.numero_giorni_ritardo), 0) as colonna4 FROM dwh.mnp_dw_sla_3gg_out a, mnp.mnp_anagrafica_operatori b WHERE a.processo = 'R' AND a.data_cut_over BETWEEN data_inizio AND data_fine AND a.donor_rete = b.id_operatore AND NVL(a.numero_sim,0) = 0 AND a.tipo_messaggio = 'SLA3' GROUP BY a.tipo_messaggio, b.id_amministrativo, b.id_operatore UNION SELECT 3 AS ord, 'Portabilita progetti ad hoc con numero sim non superiore a 20 ' AS colonna1, DECODE (a.tipo_messaggio, 'SLA0', 'Numero eventi per cui si applica lo SLA0', 'SLA1', 'Numero eventi per cui si applica lo SLA1', 'SLA2', 'Numero eventi per cui si applica lo SLA2', 'SLA3', 'Numero eventi per cui si applica lo SLA3', NULL) as colonna2, NVL (b.id_amministrativo, b.id_operatore) as colonna3, NVL (COUNT (a.id_richiesta), 0) as colonna4 FROM dwh.mnp_dw_sla_3gg_out a, mnp.mnp_anagrafica_operatori b WHERE a.processo = 'R' AND a.data_cut_over BETWEEN data_inizio AND data_fine AND a.donor_effettivo = b.id_operatore AND a.numero_sim <= 20 AND NVL(a.numero_sim,0) != 0 AND a.tipo_messaggio <> 'SLA3' GROUP BY a.tipo_messaggio, b.id_amministrativo, b.id_operatore UNION SELECT 3 AS ord, 'Portabilita progetti ad hoc con numero sim non superiore a 20 ' AS colonna1, DECODE (a.tipo_messaggio, 'SLA0', 'Numero eventi per cui si applica lo SLA0', 'SLA1', 'Numero eventi per cui si applica lo SLA1', 'SLA2', 'Numero eventi per cui si applica lo SLA2', 'SLA3', 'Numero eventi per cui si applica lo SLA3', NULL) as colonna2, NVL (b.id_amministrativo, b.id_operatore) as colonna3, NVL (COUNT (a.id_richiesta), 0) as colonna4 FROM dwh.mnp_dw_sla_3gg_out a, mnp.mnp_anagrafica_operatori b WHERE a.processo = 'R' AND a.data_cut_over BETWEEN data_inizio AND data_fine AND a.donor_rete = b.id_operatore AND a.numero_sim <= 20 AND NVL(a.numero_sim,0) != 0 AND a.tipo_messaggio = 'SLA3' GROUP BY a.tipo_messaggio, b.id_amministrativo, b.id_operatore UNION SELECT 4 AS ord, 'Portabilita progetti ad hoc con numero sim non superiore a 20 ' AS colonna1, DECODE (a.tipo_messaggio, 'SLA0', 'Tempo cumulato dei ritardi di tipo SLA0', 'SLA1', 'Tempo cumulato dei ritardi di tipo SLA1', 'SLA2', 'Tempo cumulato dei ritardi di tipo SLA2', 'SLA3', 'Tempo cumulato dei ritardi di tipo SLA3', NULL) as colonna2, NVL (b.id_amministrativo, b.id_operatore) as colonna3, NVL (SUM (a.numero_giorni_ritardo), 0) as colonna4 FROM dwh.mnp_dw_sla_3gg_out a, mnp.mnp_anagrafica_operatori b WHERE a.processo = 'R' AND a.data_cut_over BETWEEN data_inizio AND data_fine AND a.donor_effettivo = b.id_operatore AND a.numero_sim <= 20 AND NVL(a.numero_sim,0) != 0 AND a.tipo_messaggio <> 'SLA3' GROUP BY a.tipo_messaggio, b.id_amministrativo, b.id_operatore UNION SELECT 4 AS ord, 'Portabilita progetti ad hoc con numero sim non superiore a 20 ' AS colonna1, DECODE (a.tipo_messaggio, 'SLA0', 'Tempo cumulato dei ritardi di tipo SLA0', 'SLA1', 'Tempo cumulato dei ritardi di tipo SLA1', 'SLA2', 'Tempo cumulato dei ritardi di tipo SLA2', 'SLA3', 'Tempo cumulato dei ritardi di tipo SLA3', NULL) as colonna2, NVL (b.id_amministrativo, b.id_operatore) as colonna3, NVL (SUM (a.numero_giorni_ritardo), 0) as colonna4 FROM dwh.mnp_dw_sla_3gg_out a, mnp.mnp_anagrafica_operatori b WHERE a.processo = 'R' AND a.data_cut_over BETWEEN data_inizio AND data_fine AND a.donor_rete = b.id_operatore AND a.numero_sim <= 20 AND NVL(a.numero_sim,0) != 0 AND a.tipo_messaggio = 'SLA3' GROUP BY a.tipo_messaggio, b.id_amministrativo, b.id_operatore UNION SELECT 5 AS ord, 'Portabilita progetti ad hoc con numero sim superiore a 20 ' AS colonna1, DECODE (a.tipo_messaggio, 'SLA0', 'Numero eventi per cui si applica lo SLA0', 'SLA1', 'Numero eventi per cui si applica lo SLA1', 'SLA2', 'Numero eventi per cui si applica lo SLA2', 'SLA3', 'Numero eventi per cui si applica lo SLA3', NULL) as colonna2, NVL (b.id_amministrativo, b.id_operatore) as colonna3, NVL (COUNT (a.id_richiesta), 0) as colonna4 FROM dwh.mnp_dw_sla_3gg_out a, mnp.mnp_anagrafica_operatori b WHERE a.processo = 'R' AND a.data_cut_over BETWEEN data_inizio AND data_fine AND a.donor_effettivo = b.id_operatore AND a.numero_sim > 20 AND a.tipo_messaggio <> 'SLA3' GROUP BY a.tipo_messaggio, b.id_amministrativo, b.id_operatore UNION SELECT 5 AS ord, 'Portabilita progetti ad hoc con numero sim superiore a 20 ' AS colonna1, DECODE (a.tipo_messaggio, 'SLA0', 'Numero eventi per cui si applica lo SLA0', 'SLA1', 'Numero eventi per cui si applica lo SLA1', 'SLA2', 'Numero eventi per cui si applica lo SLA2', 'SLA3', 'Numero eventi per cui si applica lo SLA3', NULL) as colonna2, NVL (b.id_amministrativo, b.id_operatore) as colonna3, NVL (COUNT (a.id_richiesta), 0) as colonna4 FROM dwh.mnp_dw_sla_3gg_out a, mnp.mnp_anagrafica_operatori b WHERE a.processo = 'R' AND a.data_cut_over BETWEEN data_inizio AND data_fine AND a.donor_rete = b.id_operatore AND a.numero_sim > 20 AND a.tipo_messaggio = 'SLA3' GROUP BY a.tipo_messaggio, b.id_amministrativo, b.id_operatore UNION SELECT 6 AS ord, 'Portabilita progetti ad hoc con numero sim superiore a 20 ' AS colonna1, DECODE (a.tipo_messaggio, 'SLA0', 'Tempo cumulato dei ritardi di tipo SLA0', 'SLA1', 'Tempo cumulato dei ritardi di tipo SLA1', 'SLA2', 'Tempo cumulato dei ritardi di tipo SLA2', 'SLA3', 'Tempo cumulato dei ritardi di tipo SLA3', NULL) as colonna2, NVL (b.id_amministrativo, b.id_operatore) as colonna3, NVL (SUM (a.numero_giorni_ritardo), 0) as colonna4 FROM dwh.mnp_dw_sla_3gg_out a, mnp.mnp_anagrafica_operatori b WHERE a.processo = 'R' AND a.data_cut_over BETWEEN data_inizio AND data_fine AND a.donor_effettivo = b.id_operatore AND a.numero_sim > 20 AND a.tipo_messaggio <> 'SLA3' GROUP BY a.tipo_messaggio, b.id_amministrativo, b.id_operatore UNION SELECT 6 AS ord, 'Portabilita progetti ad hoc con numero sim superiore a 20 ' AS colonna1, DECODE (a.tipo_messaggio, 'SLA0', 'Tempo cumulato dei ritardi di tipo SLA0', 'SLA1', 'Tempo cumulato dei ritardi di tipo SLA1', 'SLA2', 'Tempo cumulato dei ritardi di tipo SLA2', 'SLA3', 'Tempo cumulato dei ritardi di tipo SLA3', NULL) as colonna2, NVL (b.id_amministrativo, b.id_operatore) as colonna3, NVL (SUM (a.numero_giorni_ritardo), 0) as colonna4 FROM dwh.mnp_dw_sla_3gg_out a, mnp.mnp_anagrafica_operatori b WHERE a.processo = 'R' AND a.data_cut_over BETWEEN data_inizio AND data_fine AND a.donor_rete = b.id_operatore AND a.numero_sim > 20 AND a.tipo_messaggio = 'SLA3' GROUP BY a.tipo_messaggio, b.id_amministrativo, b.id_operatore) 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 calc9d (anno IN VARCHAR, mese IN VARCHAR) IS -- COSTANTI tipo VARCHAR (10) NOT NULL DEFAULT '9D'; 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 clob; CURSOR cur_res (data_inizio DATE, data_fine DATE) IS SELECT colonna1 || ';' || colonna2 || ';' || colonna3 || ';' || colonna4 || ';' AS csv FROM ( SELECT 1 AS ord, 'Portabilita standard ' AS colonna1, DECODE (a.tipo_messaggio, 'SLA0', 'Numero eventi per cui si applica lo SLA0', 'SLA1', 'Numero eventi per cui si applica lo SLA1', 'SLA2', 'Numero eventi per cui si applica lo SLA2', 'SLA3', 'Numero eventi per cui si applica lo SLA3', NULL) as colonna2, NVL (b.id_amministrativo, b.id_operatore) as colonna3, NVL (COUNT (a.id_richiesta), 0) as colonna4 FROM dwh.mnp_dw_sla_3gg_out a, mnp.mnp_anagrafica_operatori b WHERE a.processo = 'D' AND a.data_cut_over BETWEEN data_inizio AND data_fine AND a.recipient_effettivo = b.id_operatore AND NVL(a.numero_sim,0) = 0 AND a.tipo_messaggio <> 'SLA3' GROUP BY a.tipo_messaggio, b.id_amministrativo, b.id_operatore UNION SELECT 1 AS ord, 'Portabilita standard ' AS colonna1, DECODE (a.tipo_messaggio, 'SLA0', 'Numero eventi per cui si applica lo SLA0', 'SLA1', 'Numero eventi per cui si applica lo SLA1', 'SLA2', 'Numero eventi per cui si applica lo SLA2', 'SLA3', 'Numero eventi per cui si applica lo SLA3', NULL) as colonna2, NVL (b.id_amministrativo, b.id_operatore) as colonna3, NVL (COUNT (a.id_richiesta), 0) as colonna4 FROM dwh.mnp_dw_sla_3gg_out a, mnp.mnp_anagrafica_operatori b WHERE a.processo = 'D' AND a.data_cut_over BETWEEN data_inizio AND data_fine AND a.recipient_rete = b.id_operatore AND NVL(a.numero_sim,0) = 0 AND a.tipo_messaggio = 'SLA3' GROUP BY a.tipo_messaggio, b.id_amministrativo, b.id_operatore UNION SELECT 2 AS ord, 'Portabilita standard ' AS colonna1, DECODE (a.tipo_messaggio, 'SLA0', 'Tempo cumulato dei ritardi di tipo SLA0', 'SLA1', 'Tempo cumulato dei ritardi di tipo SLA1', 'SLA2', 'Tempo cumulato dei ritardi di tipo SLA2', 'SLA3', 'Tempo cumulato dei ritardi di tipo SLA3', NULL) as colonna2, NVL (b.id_amministrativo, b.id_operatore) as colonna3, NVL (SUM (a.numero_giorni_ritardo), 0) as colonna4 FROM dwh.mnp_dw_sla_3gg_out a, mnp.mnp_anagrafica_operatori b WHERE a.processo = 'D' AND a.data_cut_over BETWEEN data_inizio AND data_fine AND a.recipient_effettivo = b.id_operatore AND NVL(a.numero_sim,0) = 0 AND a.tipo_messaggio <> 'SLA3' GROUP BY a.tipo_messaggio, b.id_amministrativo, b.id_operatore UNION SELECT 2 AS ord, 'Portabilita standard ' AS colonna1, DECODE (a.tipo_messaggio, 'SLA0', 'Tempo cumulato dei ritardi di tipo SLA0', 'SLA1', 'Tempo cumulato dei ritardi di tipo SLA1', 'SLA2', 'Tempo cumulato dei ritardi di tipo SLA2', 'SLA3', 'Tempo cumulato dei ritardi di tipo SLA3', NULL) as colonna2, NVL (b.id_amministrativo, b.id_operatore) as colonna3, NVL (SUM (a.numero_giorni_ritardo), 0) as colonna4 FROM dwh.mnp_dw_sla_3gg_out a, mnp.mnp_anagrafica_operatori b WHERE a.processo = 'D' AND a.data_cut_over BETWEEN data_inizio AND data_fine AND a.recipient_rete = b.id_operatore AND NVL(a.numero_sim,0) = 0 AND a.tipo_messaggio = 'SLA3' GROUP BY a.tipo_messaggio, b.id_amministrativo, b.id_operatore UNION SELECT 3 AS ord, 'Portabilita progetti ad hoc con numero sim non superiore a 20 ' AS colonna1, DECODE (a.tipo_messaggio, 'SLA0', 'Numero eventi per cui si applica lo SLA0', 'SLA1', 'Numero eventi per cui si applica lo SLA1', 'SLA2', 'Numero eventi per cui si applica lo SLA2', 'SLA3', 'Numero eventi per cui si applica lo SLA3', NULL) as colonna2, NVL (b.id_amministrativo, b.id_operatore) as colonna3, NVL (COUNT (a.id_richiesta), 0) as colonna4 FROM dwh.mnp_dw_sla_3gg_out a, mnp.mnp_anagrafica_operatori b WHERE a.processo = 'D' AND a.data_cut_over BETWEEN data_inizio AND data_fine AND a.recipient_effettivo = b.id_operatore AND a.numero_sim <= 20 AND NVL(a.numero_sim,0) != 0 AND a.tipo_messaggio <> 'SLA3' GROUP BY a.tipo_messaggio, b.id_amministrativo, b.id_operatore UNION SELECT 3 AS ord, 'Portabilita progetti ad hoc con numero sim non superiore a 20 ' AS colonna1, DECODE (a.tipo_messaggio, 'SLA0', 'Numero eventi per cui si applica lo SLA0', 'SLA1', 'Numero eventi per cui si applica lo SLA1', 'SLA2', 'Numero eventi per cui si applica lo SLA2', 'SLA3', 'Numero eventi per cui si applica lo SLA3', NULL) as colonna2, NVL (b.id_amministrativo, b.id_operatore) as colonna3, NVL (COUNT (a.id_richiesta), 0) as colonna4 FROM dwh.mnp_dw_sla_3gg_out a, mnp.mnp_anagrafica_operatori b WHERE a.processo = 'D' AND a.data_cut_over BETWEEN data_inizio AND data_fine AND a.recipient_rete = b.id_operatore AND a.numero_sim <= 20 AND NVL(a.numero_sim,0) != 0 AND a.tipo_messaggio = 'SLA3' GROUP BY a.tipo_messaggio, b.id_amministrativo, b.id_operatore UNION SELECT 4 AS ord, 'Portabilita progetti ad hoc con numero sim non superiore a 20 ' AS colonna1, DECODE (a.tipo_messaggio, 'SLA0', 'Tempo cumulato dei ritardi di tipo SLA0', 'SLA1', 'Tempo cumulato dei ritardi di tipo SLA1', 'SLA2', 'Tempo cumulato dei ritardi di tipo SLA2', 'SLA3', 'Tempo cumulato dei ritardi di tipo SLA3', NULL) as colonna2, NVL (b.id_amministrativo, b.id_operatore) as colonna3, NVL (SUM (a.numero_giorni_ritardo), 0) as colonna4 FROM dwh.mnp_dw_sla_3gg_out a, mnp.mnp_anagrafica_operatori b WHERE a.processo = 'D' AND a.data_cut_over BETWEEN data_inizio AND data_fine AND a.recipient_effettivo = b.id_operatore AND a.numero_sim <= 20 AND NVL(a.numero_sim,0) != 0 AND a.tipo_messaggio <> 'SLA3' GROUP BY a.tipo_messaggio, b.id_amministrativo, b.id_operatore UNION SELECT 4 AS ord, 'Portabilita progetti ad hoc con numero sim non superiore a 20 ' AS colonna1, DECODE (a.tipo_messaggio, 'SLA0', 'Tempo cumulato dei ritardi di tipo SLA0', 'SLA1', 'Tempo cumulato dei ritardi di tipo SLA1', 'SLA2', 'Tempo cumulato dei ritardi di tipo SLA2', 'SLA3', 'Tempo cumulato dei ritardi di tipo SLA3', NULL) as colonna2, NVL (b.id_amministrativo, b.id_operatore) as colonna3, NVL (SUM (a.numero_giorni_ritardo), 0) as colonna4 FROM dwh.mnp_dw_sla_3gg_out a, mnp.mnp_anagrafica_operatori b WHERE a.processo = 'D' AND a.data_cut_over BETWEEN data_inizio AND data_fine AND a.recipient_rete = b.id_operatore AND a.numero_sim <= 20 AND NVL(a.numero_sim,0) != 0 AND a.tipo_messaggio = 'SLA3' GROUP BY a.tipo_messaggio, b.id_amministrativo, b.id_operatore UNION SELECT 5 AS ord, 'Portabilita progetti ad hoc con numero sim superiore a 20 ' AS colonna1, DECODE (a.tipo_messaggio, 'SLA0', 'Numero eventi per cui si applica lo SLA0', 'SLA1', 'Numero eventi per cui si applica lo SLA1', 'SLA2', 'Numero eventi per cui si applica lo SLA2', 'SLA3', 'Numero eventi per cui si applica lo SLA3', NULL) as colonna2, NVL (b.id_amministrativo, b.id_operatore) as colonna3, NVL (COUNT (a.id_richiesta), 0) as colonna4 FROM dwh.mnp_dw_sla_3gg_out a, mnp.mnp_anagrafica_operatori b WHERE a.processo = 'D' AND a.data_cut_over BETWEEN data_inizio AND data_fine AND a.recipient_effettivo = b.id_operatore AND a.numero_sim > 20 AND a.tipo_messaggio <> 'SLA3' GROUP BY a.tipo_messaggio, b.id_amministrativo, b.id_operatore UNION SELECT 5 AS ord, 'Portabilita progetti ad hoc con numero sim superiore a 20 ' AS colonna1, DECODE (a.tipo_messaggio, 'SLA0', 'Numero eventi per cui si applica lo SLA0', 'SLA1', 'Numero eventi per cui si applica lo SLA1', 'SLA2', 'Numero eventi per cui si applica lo SLA2', 'SLA3', 'Numero eventi per cui si applica lo SLA3', NULL) as colonna2, NVL (b.id_amministrativo, b.id_operatore) as colonna3, NVL (COUNT (a.id_richiesta), 0) as colonna4 FROM dwh.mnp_dw_sla_3gg_out a, mnp.mnp_anagrafica_operatori b WHERE a.processo = 'D' AND a.data_cut_over BETWEEN data_inizio AND data_fine AND a.recipient_rete = b.id_operatore AND a.numero_sim > 20 AND a.tipo_messaggio = 'SLA3' GROUP BY a.tipo_messaggio, b.id_amministrativo, b.id_operatore UNION SELECT 6 AS ord, 'Portabilita progetti ad hoc con numero sim superiore a 20 ' AS colonna1, DECODE (a.tipo_messaggio, 'SLA0', 'Tempo cumulato dei ritardi di tipo SLA0', 'SLA1', 'Tempo cumulato dei ritardi di tipo SLA1', 'SLA2', 'Tempo cumulato dei ritardi di tipo SLA2', 'SLA3', 'Tempo cumulato dei ritardi di tipo SLA3', NULL) as colonna2, NVL (b.id_amministrativo, b.id_operatore) as colonna3, NVL (SUM (a.numero_giorni_ritardo), 0) as colonna4 FROM dwh.mnp_dw_sla_3gg_out a, mnp.mnp_anagrafica_operatori b WHERE a.processo = 'D' AND a.data_cut_over BETWEEN data_inizio AND data_fine AND a.recipient_effettivo = b.id_operatore AND a.numero_sim > 20 AND a.tipo_messaggio <> 'SLA3' GROUP BY a.tipo_messaggio, b.id_amministrativo, b.id_operatore UNION SELECT 6 AS ord, 'Portabilita progetti ad hoc con numero sim superiore a 20 ' AS colonna1, DECODE (a.tipo_messaggio, 'SLA0', 'Tempo cumulato dei ritardi di tipo SLA0', 'SLA1', 'Tempo cumulato dei ritardi di tipo SLA1', 'SLA2', 'Tempo cumulato dei ritardi di tipo SLA2', 'SLA3', 'Tempo cumulato dei ritardi di tipo SLA3', NULL) as colonna2, NVL (b.id_amministrativo, b.id_operatore) as colonna3, NVL (SUM (a.numero_giorni_ritardo), 0) as colonna4 FROM dwh.mnp_dw_sla_3gg_out a, mnp.mnp_anagrafica_operatori b WHERE a.processo = 'D' AND a.data_cut_over BETWEEN data_inizio AND data_fine AND a.recipient_rete = b.id_operatore AND a.numero_sim > 20 AND a.tipo_messaggio = 'SLA3' GROUP BY a.tipo_messaggio, b.id_amministrativo, b.id_operatore) 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 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 clob; 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 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 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 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 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 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 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 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; /