112 lines
5.4 KiB
SQL
112 lines
5.4 KiB
SQL
create or replace procedure P_REPORT_MONITORAGGIORECIPIENT(p_mese_comp varchar2) is
|
|
-- parametro in ingresso nel formato mm/yyyy
|
|
v_ora_inizio number;
|
|
v_ora_fine number;
|
|
begin
|
|
-- estrazione fascia oraria per inserimento richiesta
|
|
select to_number(replace(inizio,':')), to_number(replace(fine,':'))
|
|
into v_ora_inizio, v_ora_fine
|
|
from mnp.MNP_FASCIA_ORARIA_MONITOR_REC;
|
|
|
|
-- popolamento tabella
|
|
insert into MNP_DW_REPORT_MONITORAGGIO_REC
|
|
(mese_comp, tipo_giorno_inserimento, fascia_oraria_richiesta, fascia_oraria_invio, tipo_cliente, numero_richieste)
|
|
select p_mese_comp, tipo_giorno, tipologia, tipologia_invio, tipo_cliente, count(*) from (
|
|
select rep.*,
|
|
case
|
|
when to_char(DATA_RICHIESTA, 'HH24miss')<=v_ora_inizio then '1'
|
|
when to_char(DATA_RICHIESTA, 'HH24miss')>v_ora_inizio and to_char(DATA_RICHIESTA, 'HH24miss')<= v_ora_fine then '2'
|
|
when to_char(DATA_RICHIESTA, 'HH24miss')>v_ora_fine then '3'
|
|
end tipologia,
|
|
DECODE(DWH.FUN_GIORNI_LAVORATIVI(data_invio, data_richiesta), 0, 0, 1, 1, 2) tipologia_invio
|
|
from (SELECT ric."ID_RICHIESTA" ID_RICHIESTA,
|
|
NVL(ric."DATA_RICHIESTA", ric."DATA_RICEZIONE") DATA_RICHIESTA,
|
|
ric."COD_OP_DON" COD_OP_DON,
|
|
xml_out.data_invio data_invio,
|
|
rich_rec.tipo_cliente tipo_cliente,
|
|
d.tip_gio tipo_giorno
|
|
FROM (SELECT msp.id_richiesta id_richiesta,
|
|
msp.data_richiesta data_richiesta,
|
|
msp.data_ricezione data_ricezione,
|
|
msp.codice_operatore_donating cod_op_don
|
|
FROM mnp.mnp_msp_in_rec msp
|
|
WHERE msp.progetto_ad_hoc = 'N'
|
|
UNION
|
|
SELECT msc.id_richiesta id_richiesta,
|
|
msc.data_richiesta data_richiesta,
|
|
msc.data_ricezione data_ricezione,
|
|
msc.codice_operatore_donating cod_op_don
|
|
FROM mnp.mnp_msc_in_rec msc
|
|
WHERE msc.progetto_ad_hoc = 'N'
|
|
UNION
|
|
SELECT bit.id_richiesta id_richiesta,
|
|
NULL data_richiesta, -- DATA_RICHIESTA NON CONTENENTE ORE:MI:SS
|
|
bit.data_ricezione_file data_ricezione,
|
|
bit.donating_cod_op cod_op_don
|
|
FROM mnp.mnp_bit_in_rec bit
|
|
WHERE bit.progetto_ad_hoc IS null) ric,
|
|
mnp.mnp_xml_out xml_out,
|
|
mnp.mnp_xml_richiesta_out richieste_out,
|
|
mnp.mnp_gestione_richiesta_rec rich_rec,
|
|
MNP.S_DIM_TEMPO d
|
|
WHERE xml_out.nome_file = richieste_out.nome_file
|
|
AND xml_out.tipo_file = 1
|
|
AND richieste_out.id_richiesta = ric.id_richiesta
|
|
AND ric.id_richiesta = rich_rec.id_richiesta
|
|
AND ric.cod_op_don IN
|
|
( SELECT id_operatore
|
|
FROM mnp.mnp_anagrafica_operatori
|
|
WHERE tipo_operatore = 'RETE')
|
|
AND d.data = trunc(NVL(ric."DATA_RICHIESTA", ric."DATA_RICEZIONE"))
|
|
UNION -- Donor Virtuale
|
|
SELECT ric."ID_RICHIESTA" ID_RICHIESTA,
|
|
NVL(ric."DATA_RICHIESTA", ric."DATA_RICEZIONE") DATA_RICHIESTA,
|
|
ric."COD_OP_DON" COD_OP_DON,
|
|
not_don_out.data_invio data_invio,
|
|
rich_don_virt.tipo_cliente tipo_cliente,
|
|
d.tip_gio tipo_giorno
|
|
FROM (SELECT msp.id_richiesta id_richiesta,
|
|
msp.data_richiesta data_richiesta,
|
|
msp.data_ricezione data_ricezione,
|
|
msp.codice_operatore_donating cod_op_don
|
|
FROM mnp.mnp_msp_in_rec msp
|
|
WHERE msp.progetto_ad_hoc = 'N'
|
|
UNION
|
|
SELECT msc.id_richiesta id_richiesta,
|
|
msc.data_richiesta data_richiesta,
|
|
msc.data_ricezione data_ricezione,
|
|
msc.codice_operatore_donating cod_op_don
|
|
FROM mnp.mnp_msc_in_rec msc
|
|
WHERE msc.progetto_ad_hoc = 'N'
|
|
UNION
|
|
SELECT bit.id_richiesta id_richiesta,
|
|
NULL data_richiesta, -- DATA_RICHIESTA NON CONTENENTE ORE:MI:SS
|
|
bit.data_ricezione_file data_ricezione,
|
|
bit.donating_cod_op cod_op_don
|
|
FROM mnp.mnp_bit_in_rec bit
|
|
WHERE bit.progetto_ad_hoc IS null) ric,
|
|
mnp.mnp_gest_rich_donor_virt rich_don_virt,
|
|
mnp.mnp_mvno_notifica_don_out not_don_out,
|
|
MNP.S_DIM_TEMPO d
|
|
WHERE not_don_out.id_richiesta_dbc = ric.id_richiesta
|
|
AND not_don_out.tipo_evento = '01'
|
|
AND ric.id_richiesta = rich_don_virt.id_richiesta
|
|
AND ric.cod_op_don IN
|
|
(SELECT id_operatore
|
|
FROM mnp.mnp_anagrafica_operatori
|
|
WHERE tipo_operatore = 'VIRT'
|
|
AND gestore_aom = 'TIMG')
|
|
AND d.data = trunc(NVL(ric."DATA_RICHIESTA", ric."DATA_RICEZIONE"))) rep
|
|
where data_richiesta between to_date('01/'||p_mese_comp,'dd/mm/yyyy') and last_day(to_date('01/'||p_mese_comp,'dd/mm/yyyy'))
|
|
)
|
|
group by tipo_giorno, tipologia, tipologia_invio, tipo_cliente;
|
|
|
|
commit;
|
|
|
|
exception when others then
|
|
|
|
DBMS_OUTPUT.put_line ('Errore nel popolamento della tabella MNP_DW_REPORT_MONITORAGGIO_REC ' || SQLERRM||' - '||to_char(sysdate,'YYYY-MM-DD HH24:MI:SS'));
|
|
|
|
end P_REPORT_MONITORAGGIORECIPIENT;
|
|
/
|