create table DBCGO_RICARICHE_BMC
(
  data_rif			            date not null,
  msisdn		                varchar2(20) not null,
  num_ricariche	            number not null,
  imp_tot_ricariche		      number not null
)
tablespace DBCGO_DATA_MEDIUM;

comment on column DBCGO_RICARICHE_BMC.data_rif
  is 'Data di riferimento del flusso';
comment on column DBCGO_RICARICHE_BMC.msisdn
  is 'Msisdn uscito da TIM nella settimana dii riferimento del flusso';
comment on column DBCGO_RICARICHE_BMC.num_ricariche
  is 'Numero delle ricariche effettuate dal msisdn nei 6 mesi precedenti l''uscita';
comment on column DBCGO_RICARICHE_BMC.imp_tot_ricariche
  is 'Importo totale delle ricariche effettuate nei 6 mesi precedenti l''uscita';

-- creare indice su mese_comp
alter table DBCGO_RICARICHE_BMC
add constraint PK_DBCGO_RICARICHE_BMC primary key (data_rif,msisdn)
using index 
tablespace DBCGO_IDX_MEDIUM;


create table DBCGO_FLUSSO_BMC
(
  data_rif			            date not null,
  msisdn		                varchar2(20) not null,
  num_ricariche	            number not null,
  imp_tot_ricariche		      number not null
)
tablespace DBCGO_DATA_MEDIUM;

comment on column DBCGO_FLUSSO_BMC.data_rif
  is 'Data di riferimento del flusso';
comment on column DBCGO_FLUSSO_BMC.msisdn
  is 'Msisdn uscito da TIM nella settimana dii riferimento del flusso';
comment on column DBCGO_FLUSSO_BMC.num_ricariche
  is 'Numero delle ricariche effettuate dal msisdn nei 6 mesi precedenti l''uscita';
comment on column DBCGO_FLUSSO_BMC.imp_tot_ricariche
  is 'Importo totale delle ricariche effettuate nei 6 mesi precedenti l''uscita';

-- creare indice su mese_comp
alter table DBCGO_FLUSSO_BMC
add constraint PK_DBCGO_FLUSSO_BMC primary key (data_rif,msisdn)
using index 
tablespace DBCGO_IDX_MEDIUM;

CREATE OR REPLACE VIEW MNP_DW_REP_MON_RECIPIENT 
(mese_comp, tipo_giorno_inserimento, fascia_oraria_richiesta, fascia_oraria_invio, tipo_cliente, numero_richieste) AS
SELECT * FROM MNP_DW_REPORT_MONITORAGGIO_REC@DWH;

CREATE OR REPLACE VIEW MNP_DW_REPORT_TCR
(id_richiesta, blocco, data_di_riferimento, data_dco_eff, tcr1, tcr2, msisdn, codice_pre_post_pagato, codice_operatore_don_eff, codice_operatore_rec_eff) AS
SELECT * FROM MNP_DW_REPORT_TCR@DWH;

CREATE OR REPLACE VIEW MNP_DW_REPORT_TCR_DONOR
(
   ID_RICHIESTA,
   BLOCCO,
   DATA_DI_RIFERIMENTO,
   DATA_DCO_EFF,
   TCR1,
   TCR2,
   MSISDN,
   CODICE_PRE_POST_PAGATO,
   CODICE_OPERATORE_DON_EFF,
   CODICE_OPERATORE_REC_EFF,
   DATA_RIF_BMC,
   NUM_RICARICHE,
   IMP_TOT_RICARICHE
)
AS
   SELECT   ID_RICHIESTA,
            BLOCCO,
            DATA_DI_RIFERIMENTO,
            DATA_DCO_EFF,
            TCR1,
            TCR2,
            A.MSISDN AS MSISDN,
            CODICE_PRE_POST_PAGATO,
            CODICE_OPERATORE_DON_EFF,
            CODICE_OPERATORE_REC_EFF,
            B.DATA_RIF AS DATA_RIF_BMC,
            nvl(b.num_ricariche,0) AS NUM_RICARICHE,
            nvl(b.imp_tot_ricariche,0) AS IMP_TOT_RICARICHE
     FROM    MNP_DW_REPORT_TCR a, DBCGO_RICARICHE_BMC b 
     where a.MSISDN = b.MSISDN(+)
       and A.CODICE_OPERATORE_DON_EFF = 'TIMG'
       and b.DATA_RIF(+) between a.DATA_DCO_EFF and a.DATA_DCO_EFF+2;

-- TOLTO IL NUMERO_RIGA PER PROBLEMI DI PERFORMANCE IN ESERCIZIO.
CREATE OR REPLACE FORCE VIEW MNP_DW_XML_IN_OUT_VIEW
(
   ID_RICHIESTA,
   MSISDN,
   TIPO_FILE,
   TIPO_NOTIFICA,
   NOME_FILE,
   DIREZIONE,
   DATA,
   DATA_SHOW,
   MITTENTE,
   DESTINATARIO,
   CANALE_ALTERNATIVO,
   TIPO_PROCESSO,
   NOME_FILE_XML,
   NOME_FILE_ACK,
   ORD2
)
AS
   SELECT   ID_RICHIESTA,
            MSISDN,
            TIPO_FILE,
            TIPO_NOTIFICA,
            NOME_FILE,
            DIREZIONE,
            DATA,
            DATA_SHOW,
            CASE TIPO_FILE WHEN 'ACK' THEN MITTENTE ELSE DESTINATARIO END
               AS mittente,
            CASE TIPO_FILE WHEN 'ACK' THEN DESTINATARIO ELSE MITTENTE END
               AS destinatario,
            DECODE (CANALE_ALTERNATIVO, 0, 'N', 1, 'Y', 'N')
               AS CANALE_ALTERNATIVO,
            TIPO_PROCESSO,
            NOME_FILE_XML,
            NOME_FILE_ACK,
            ORD2
     FROM   dwh.mnp_dw_xml_in_out@mnp;       