CREATE OR REPLACE VIEW DBCGO_GEST_RIC_DON_VIRT_VIEW
(ID_RICHIESTA, STATO, TIPO_CLIENTE, DATA_CUT_OVER_CALC, DATA_VALIDAZIONE_MAX, 
 DATARICEZIONERICHIESTA, DATA_CUT_OVER, CODICE_OPERATORE_DONATING, MSISDN, CODICE_FISCALE_PARTITA_IVA, 
 CODICE_PRE_POST_PAGATO, NOME_CLIENTE, COGNOME_CLIENTE, RAGIONE_SOCIALE, ICCD_SERIAL_NUMBER, 
 NOME_OT, NUMERO_DOCUMENTO, TIPO_DOCUMENTO, DATA_TRANSIZIONE_STATO, CODICE_OPERATORE_RECIPIENT, 
 SISTEMA_MITT, FLAG_TC, FLAG_ESP, DATA_VALIDAZIONE_EFF, CODICERIFIUTOVALIDAZIONE, 
 FLAG_FURTO, FLA_PREVALIDAZIONE, PREVALIDAZIONE, BUSINESS_ID, DESCR_STATO, 
 VIS_DAY_NUM, NOME_OT_DESC, NOME_OT_ORDER_BY, TIPO_CLIENTE_DESC, CODICE_PRE_POST_PAGATO_DESC, 
 SISTEMA_MITTENTE_DESC, TC_STATO, IMPORTO, COD_PROFILO_TARIFFARIO, COD_PROFILO_TARIFFARIO_DESC, TRASFERIMENTO_CON_SBLOCCO, 
 NOME_FILE_SBLOCCO,FLAG_PROGETTO_ADHOC)
AS 
( 
SELECT 
   a.ID_RICHIESTA, 
   s.id_STATO, 
   a.TIPO_CLIENTE, 
   a.DATA_CUT_OVER_CALC, 
   a.DATA_VALIDAZIONE_MAX, 
   a.DATARICEZIONERICHIESTA, 
   a.DATA_CUT_OVER, 
   a.CODICE_OPERATORE_DONATING, 
   a.MSISDN, 
   a.CODICE_FISCALE_PARTITA_IVA, 
   a.CODICE_PRE_POST_PAGATO, 
   a.NOME_CLIENTE, 
   a.COGNOME_CLIENTE, 
   a.RAGIONE_SOCIALE, 
   a.ICCD_SERIAL_NUMBER, 
   DECODE(a.nome_ot,NULL,NULL,NVL(f.name,'NN')) AS NOME_OT, 
   a.NUMERO_DOCUMENTO, 
   a.TIPO_DOCUMENTO, 
   a.DATA_TRANSIZIONE_STATO, 
   a.CODICE_OPERATORE_RECIPIENT, 
   a.SISTEMA_MITT, 
   a.FLAG_TC, 
   DECODE(a.FLAG_ESP,1,'Y','N') AS FLAG_ESP, 
   a.DATA_VALIDAZIONE_EFF, 
   a.CODICERIFIUTOVALIDAZIONE, 
   a.FLAG_FURTO, 
   a.FLAG_PREVALIDAZIONE, 
   a.PREVALIDAZIONE, 
   a.BUSINESS_ID_DON AS BUSINESS_ID, 
   s.descr AS descr_stato, 
    statoDV.vis_day_num AS vis_day_num, 
   NVL(f.descr,'Non disponibile') AS nome_ot_desc, 
   f.order_by AS nome_ot_order_by, 
   g.descr AS tipo_cliente_desc, 
   h.descr AS codice_pre_post_pagato_desc, 
   n.descr AS sistema_mittente_desc, 
   DECODE(tc.stato,1,'TRASFERITO',0,'IN TRASFERIMENTO') AS tc_stato, 
   tc.importo, 
   a.COD_PROFILO_TARIFFARIO, 
   DECODE(UPPER(a.COD_PROFILO_TARIFFARIO),'D','Y','N') AS cod_profilo_tariffario_desc,
   DECODE ( tc_ext.FLAG_VERIFICA_CREDITO_ANOMALO,1,'CA',0,DECODE((SELECT   TRUNC ( (tc.importo  - 1) / TO_NUMBER (name)) 
                   FROM   DBCGO_LOV 
                  WHERE   lov_name = 'SOGLIA_CREDITO'),0,NULL,'CSS'))
                AS trasferimento_con_sblocco, 
	NULL AS nome_file_sblocco  ,
	decode( e.richiestaadhoc,1,'Y','N') 
   FROM 
  DBCGO_GEST_RICH_DON_VIRT a, 
  DBCGO_GEST_RIC_DON_VIRT_TC tc, 
  MNP_DWH_TC_ANOMALO tc_ext, 
  DBCGO_STATO_DON_VIRT statoDV, 
  DBCGO_STATO_MAPPING_DON_MVNO s, 
  DBCGO_LOV f, 
  DBCGO_LOV g, 
  DBCGO_LOV h, 
  DBCGO_LOV n,
  MNP_DWH_RICH_DON_VIRT_EXT e
  WHERE a.stato = statoDV.id_stato 
  AND statoDV.id_stato=s.id_stato_don_virt 
  AND a.nome_ot = f.NAME(+) 
  AND f.lov_name(+) = 'OT_REC' 
  AND a.tipo_cliente = g.NAME 
  AND g.lov_name = 'CUST_TYPE' 
  AND a.codice_pre_post_pagato = h.NAME 
  AND h.lov_name = 'TIPO_CONTRATTO' 
  AND a.sistema_mitt = n.NAME(+) 
  AND n.lov_name(+) = 'SIST_MITTENTE' 
  AND a.id_richiesta = tc.id_richiesta(+) 
  AND tc.id_richiesta = tc_ext.id_richiesta(+) 
	and a.id_richiesta=e.id_richiesta(+) 
  UNION ALL
  SELECT 
   a.ID_RICHIESTA, 
   s.id_STATO, 
   a.TIPO_CLIENTE, 
   a.DATA_CUT_OVER_CALC, 
   a.DATA_VALIDAZIONE_MAX, 
   a.DATARICEZIONERICHIESTA, 
   a.DATA_CUT_OVER, 
   a.CODICE_OPERATORE_V_DONOR, -- a.CODICE_OPERATORE_DONATING, 
   a.MSISDN, 
   a.CODICE_FISCALE_PARTITA_IVA, 
   a.CODICE_PRE_POST_PAGATO, 
   a.NOME_CLIENTE, 
   a.COGNOME_CLIENTE, 
   a.RAGIONE_SOCIALE, 
   a.ICCD_SERIAL_NUMBER, 
   DECODE(a.nome_ot_leg,NULL,NULL,NVL(f.name,'NN')) AS NOME_OT, 
   a.NUMERO_DOCUMENTO, 
   a.TIPO_DOCUMENTO, 
   a.DATA_TRANSIZIONE_STATO, 
     case when a.CODICE_OPERATORE_V_RECIPIENT is not null
     then  a.CODICE_OPERATORE_V_RECIPIENT 
     else a.CODICE_OPERATORE_RECIPIENT
     end case, 
   NULL AS SISTEMA_MITT, 
   a.FLAG_TC, 
   DECODE(aext.FLAG_ESP,1,'Y','N') AS FLAG_ESP, 
   aext.DATA_VALIDAZIONE_EFF, 
   aext.CODICE_RIFIUTO_VALIDAZIONE AS CODICERIFIUTOVALIDAZIONE, 
   a.FLAG_FURTO, 
   a.FLAG_PREVALIDAZIONE, 
   a.PREVALIDAZIONE, 
   aext.BUSINESS_ID AS BUSINESS_ID, 
   s.descr AS descr_stato, 
    statoD.vis_day_num AS vis_day_num, 
   NVL(f.descr,'Non disponibile') AS nome_ot_desc, 
   f.order_by AS nome_ot_order_by, 
   g.descr AS tipo_cliente_desc, 
   h.descr AS codice_pre_post_pagato_desc, 
   NULL AS sistema_mittente_desc, 
   DECODE(tc.stato,1,'TRASFERITO',0,'IN TRASFERIMENTO') AS tc_stato, 
   tc.importo, 
   NULL AS COD_PROFILO_TARIFFARIO, 
   'N' AS cod_profilo_tariffario_desc,
   DECODE ( tc_ext.FLAG_VERIFICA_CREDITO_ANOMALO,1,'CA',0,DECODE((SELECT   TRUNC ( (tc.importo  - 1) / TO_NUMBER (name)) 
                   FROM   DBCGO_LOV 
                  WHERE   lov_name = 'SOGLIA_CREDITO'),0,NULL,'CSS')) 
                AS trasferimento_con_sblocco, 
	getNomeFileSbloccoOUT(a.id_richiesta)  AS nome_file_sblocco,
	CASE when (a.richiestaadhocaom = 1 or a.richiestaadhoc = 1) THEN 'Y' ELSE 'N' END CASE  
   FROM 
   DBCGO_GESTIONE_RICHIESTA a, 
   MNP_DWH_gest_rich_don_ext aext, 
  DBCGO_GESTIONE_RICHIESTA_TC tc, 
   MNP_DWH_TC_ANOMALO tc_ext, 
  DBCGO_STATO statoD, 
  DBCGO_STATO_MAPPING_DON_MVNO s, 
  DBCGO_LOV f, 
  DBCGO_LOV g, 
  DBCGO_LOV h 
   WHERE 
    ( a.CODICE_OPERATORE_V_DONOR IS  not NULL 
            AND (a.CODICE_OPERATORE_DONATING = 'TIMG' OR a.CODICE_OPERATORE_DONATING = 'TIMT') ) 
  AND a.stato = s.id_stato_don 
  AND s.id_stato_don=statoD.id_stato 
  AND a.nome_ot_leg = f.NAME(+) 
  AND f.lov_name(+) = 'OT' 
  AND a.tipo_cliente = g.NAME 
  AND g.lov_name = 'CUST_TYPE' 
  AND a.codice_pre_post_pagato = h.NAME 
  AND h.lov_name = 'TIPO_CONTRATTO' 
  AND a.id_richiesta = tc.id_richiesta(+) 
  AND a.id_richiesta = aext.id_richiesta(+) 
   AND tc.id_richiesta = tc_ext.id_richiesta(+) 
  UNION ALL
  SELECT 
    a.ID_RICHIESTA, 
    s.id_stato, 
    a.TIPO_CLIENTE, 
    a.DATA_CUT_OVER_CALC, 
    a.DATA_VALIDAZIONE_MAX, 
    a.DATARICEZIONERICHIESTA, 
    a.DATA_CUT_OVER, 
    a.CODICE_OPERATORE_DONATING, 
  a.MSISDN, 
  a.CODICE_FISCALE_PARTITA_IVA, 
  a.CODICE_PRE_POST_PAGATO, 
  a.NOME_CLIENTE, 
  a.COGNOME_CLIENTE, 
  a.RAGIONE_SOCIALE, 
  a.ICCD_SERIAL_NUMBER, 
   DECODE(e.nome_ot ,NULL,NULL,NVL(i.name,'NN')) AS NOME_OT, 
  a.NUMERO_DOCUMENTO, 
  a.TIPO_DOCUMENTO, 
  a.DATA_TRANSIZIONE_STATO, 
  a.CODICE_OPERATORE_RECIPIENT, 
  NULL AS sistema_mitt, 
  a.flag_tc, 
 DECODE(e.FLAG_ESP,1,'Y','N') AS FLAG_ESP, 
  a.DATA_VALIDAZIONE_EFF, 
  a.CODICERIFIUTOVALIDAZIONE, 
   a.FLAG_FURTO, 
   a.FLAG_PREVALIDAZIONE, 
   a.PREVALIDAZIONE, 
  a.BUSINESS_ID_don AS business_id, 
  s.DESCR AS descr_stato, 
  statoM2M.vis_day_num AS vis_day_num, 
   NVL(i.descr,'Non disponibile') AS nome_ot_desc, 
  i.order_by AS nome_ot_order_by , 
  j.descr AS tipo_cliente_desc, 
    k.descr AS codice_pre_post_pagato_desc, 
   k.descr AS sistema_mittente_desc, 
  DECODE(tc.stato,1,'TRASFERITO',0,'IN TRASFERIMENTO') AS tc_stato, 
  tc.importo, 
  NULL AS COD_PROFILO_TARIFFARIO, 
     'N' AS cod_profilo_tariffario_desc,
	  DECODE ( tc_ext.FLAG_VERIFICA_CREDITO_ANOMALO,1,'CA',0,DECODE((SELECT   TRUNC ( (tc.importo  - 1) / TO_NUMBER (name)) 
                   FROM   DBCGO_LOV 
                  WHERE   lov_name = 'SOGLIA_CREDITO'),0,NULL,'CSS')) 
                AS trasferimento_con_sblocco, 
	NULL AS nome_file_sblocco,
	decode( e.richiestaadhoc,1,'Y','N')     
  FROM 
   DBCGO_GEST_RICH_REC_VIRT_M2M a, 
   DBCGO_STATO_MAPPING_DON_MVNO s, 
   DBCGO_STATO_REC_VIRT_M2M statoM2M, 
   DBCGO_GEST_RIC_RV_M2M_TC tc, 
   DBCGO_LOV i, 
   DBCGO_LOV j, 
   DBCGO_LOV k, 
   MNP_DWH_RICH_REC_VIRT_EXT e, 
      MNP_DWH_TC_ANOMALO tc_ext
   WHERE a.stato = s.id_stato_virt_m2m 
   AND s.id_stato_virt_m2m=statoM2M.id_stato 
   AND a.id_richiesta=e.id_richiesta(+) 
     AND e.nome_ot = i.NAME(+) 
     AND i.lov_name(+) = 'OT' 
    AND a.tipo_cliente = j.NAME 
    AND j.lov_name = 'CUST_TYPE' 
    AND a.codice_pre_post_pagato = k.NAME 
    AND k.lov_name = 'TIPO_CONTRATTO' 
    AND a.id_richiesta = tc.id_richiesta(+) 
      AND tc.id_richiesta= tc_ext.id_richiesta(+) 
);


CREATE OR REPLACE VIEW DBCGO_GEST_RIC_RV_M2M_VIEW
(ID_RICHIESTA, DATA_INSERIMENTO, DATA_TRANSIZIONE_STATO, STATO, TIPO_CLIENTE, 
 DATA_CUT_OVER_CALC, DATA_VALIDAZIONE_MAX, DATARICEZIONERICHIESTA, DATA_CUT_OVER, CODICERIFIUTOVALIDAZIONE, 
 CODICE_OPERATORE_RECIPIENT, MSISDN, CODICE_FISCALE_PARTITA_IVA, CODICE_PRE_POST_PAGATO, NOME_CLIENTE, 
 COGNOME_CLIENTE, RAGIONE_SOCIALE, ICCD_SERIAL_NUMBER, NUMERO_DOCUMENTO, TIPO_DOCUMENTO, 
 CODICE_OPERATORE_DONATING, FLAG_TC, PREVALIDAZIONE, DATA_VALIDAZIONE_EFF, BUSINESS_ID_REC, 
 BUSINESS_ID_DON, DESCR_STATO, VIS_DAY_NUM, TIPO_CLIENTE_DESC, CODICE_PRE_POST_PAGATO_DESC, 
 TC_STATO, IMPORTO, FLAG_FURTO, FLAG_PREVALIDAZIONE, TRASFERIMENTO_CON_SBLOCCO, 
 NOME_FILE_SBLOCCO, FLAG_PROGETTO_ADHOC)
AS 
(SELECT
   a.ID_RICHIESTA,
   a.DATA_INSERIMENTO,
   a.DATA_TRANSIZIONE_STATO,
   a.STATO,
   a.TIPO_CLIENTE,
   a.DATA_CUT_OVER_CALC,
   a.DATA_VALIDAZIONE_MAX, a.DATARICEZIONERICHIESTA,
   a.DATA_CUT_OVER,
   a.CODICERIFIUTOVALIDAZIONE,
   a.CODICE_OPERATORE_RECIPIENT,
   a.MSISDN,
   a.CODICE_FISCALE_PARTITA_IVA,
   a.CODICE_PRE_POST_PAGATO,
   a.NOME_CLIENTE,
   a.COGNOME_CLIENTE,
   a.RAGIONE_SOCIALE,
   a.ICCD_SERIAL_NUMBER,
   a.NUMERO_DOCUMENTO,
   a.TIPO_DOCUMENTO,
   a.CODICE_OPERATORE_DONATING,
   a.FLAG_TC,
   a.PREVALIDAZIONE,
   a.DATA_VALIDAZIONE_EFF,
   a.BUSINESS_ID_REC,
   a.BUSINESS_ID_DON,
   statoM2M.descr_stato AS descr_stato,
   statoM2M.vis_day_num AS vis_day_num,
   j.descr AS tipo_cliente_desc,
   k.descr AS codice_pre_post_pagato_desc,
   decode(tc.stato,1,'TRASFERITO',0,'IN TRASFERIMENTO') as tc_stato,
   tc.importo,
   a.flag_furto,
   a.flag_prevalidazione,
   DECODE ( tc_ext.FLAG_VERIFICA_CREDITO_ANOMALO,1,'CA',0,DECODE((SELECT   TRUNC ( (tc.importo  - 1) / TO_NUMBER (name)) 
                   FROM   DBCGO_LOV 
                  WHERE   lov_name = 'SOGLIA_CREDITO'),0,NULL,'CSS'))
                AS trasferimento_con_sblocco,
	NULL AS nome_file_sblocco,
	decode(e.richiestaadhoc,1,'Y','N')
    FROM
   DBCGO_GEST_RICH_REC_VIRT_M2M a,
   dbcgo_stato_rec_virt_m2m statoM2M,
   dbcgo_gest_ric_rv_m2m_tc tc,
   MNP_DWH_TC_ANOMALO tc_ext,
   dbcgo_lov j,
   dbcgo_lov k,
   MNP_DWH_RICH_REC_VIRT_EXT e
   WHERE a.stato = statoM2M.id_stato
    AND a.tipo_cliente = j.NAME
    AND j.lov_name = 'CUST_TYPE'
    AND a.codice_pre_post_pagato = k.NAME
    AND k.lov_name = 'TIPO_CONTRATTO'
    AND a.id_richiesta = tc.id_richiesta(+)
	AND tc.id_richiesta = tc_ext.id_richiesta(+)
	AND a.id_richiesta = e.id_richiesta(+)
);