-- eseguire come utente DBCGO

--- campo per PCN

ALTER TABLE DBCGO_GESTIONE_RICHIESTA
 ADD(ABBONATO_PREPAGATO VARCHAR2(50) NULL);

ALTER TABLE DBCGO_GEST_RICH_DON_VIRT ADD(
	COD_PROFILO_TARIFFARIO VARCHAR2(10) NULL,
	DESC_PROFILO_TARIFFARIO VARCHAR2(50) NULL
);

ALTER TABLE DBCGO_GEST_RICH_REC_VIRT ADD(
	ABBONATO_PREPAGATO VARCHAR2(50) NULL
);


-- Creazione vista Donor
 
	CREATE OR REPLACE VIEW DBCGO_GESTIONE_RIC_V00
	(ID_RICHIESTA, 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, 
	 RICHIESTAADHOCAOM, RICHIESTAADHOC, MARCAGGIO, SOTTOMARCAGGIO, ID_PRIORITA, 
	 INSERT_DATE, UPDATE_DATE, CODICE_GRUPPO, ICCD_SERIAL_NUMBER, IMSI, 
	 IPOTESI_RIFIUTO, NUMERO_DOCUMENTO, TIPO_DOCUMENTO, TIMESTAMP, DATA_TRANSIZIONE_STATO, 
	 NOME_OT_GEO, NOME_OT_LEG, ID_PRIORITA_MNP, DATA_TRANSIZIONE_STATO_GRP, CODICE_OPERATORE_DONATING, 
	 DESCR_STATO, VIS_DAY_NUM, ID_STATO_GRP, PRIORITY_TYPE, PRIORITA, 
	 PRIORITA_MNP, MARCAGGIO_DESC, SOTTOMARCAGGIO_DESC, NOME_OT_GEO_DESC, NOME_OT_LEG_DESC, 
	 NOME_OT_LEG_ORDER_BY, TIPO_CLIENTE_DESC, CODICE_PRE_POST_PAGATO_DESC, PP_NUM, OPERATORE_VIRTUALE, 
	 STATO_LINEA, FLAG_TC, DATA_PRESA_IN_CARICO, NOME_FILE_AOM, IMPORTO, 
	 TC_STATO, CODICE_OPERATORE_V_DONOR, CODICE_OPERATORE_V_RECIPIENT, PREVALIDAZIONE, FLAG_FURTO, 
	 FLAG_PREVALIDAZIONE, ABBONATO_PREPAGATO)
	AS 
	(/* Formatted on 2009/07/09 15:20 (Formatter Plus v4.8.7) */
	((SELECT a.id_richiesta, a.stato, a.tipo_cliente, a.data_cut_over_calc,
	         a.data_validazione_max, a.dataricezionerichiesta, a.data_cut_over,
	         a.codice_rifiuto_validazione, 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.richiestaadhocaom, a.richiestaadhoc, a.marcaggio, a.sottomarcaggio,
	         a.id_priorita, a.insert_date, a.update_date, a.codice_gruppo,
	         a.iccd_serial_number, a.imsi, a.ipotesi_rifiuto, a.numero_documento,
	         a.tipo_documento, a.TIMESTAMP, a.data_transizione_stato,
	         a.nome_ot_geo, a.nome_ot_leg, a.id_priorita_mnp,
	         a.data_transizione_stato_grp, a.codice_operatore_donating,
	         d.descr AS descr_stato, d.vis_day_num AS vis_day_num,
	         d.id_stato_grp AS id_stato_grp, b.priority_type AS priority_type,
	         c.descr AS priorita, e.descr AS priorita_mnp,
	         f.desc_mar AS marcaggio_desc, g.desc_clu AS sottomarcaggio_desc,
	         h.descr AS nome_ot_geo_desc, i.descr AS nome_ot_leg_desc,
	         i.order_by AS nome_ot_leg_order_by, j.descr AS tipo_cliente_desc,
	         k.descr AS codice_pre_post_pagato_desc, l.pp_num AS pp_num,
	         m.descr AS operatore_virtuale, a.stato_linea, a.flag_tc,
	         a.data_presa_in_carico, tc.nome_file_aom, tc.importo,
	         DECODE (tc.stato,
	                 1, 'TRASFERITO',
	                 0, 'IN TRASFERIMENTO'
	                ) AS tc_stato, a.codice_operatore_v_donor,
	         a.codice_operatore_v_recipient, a.prevalidazione,
	         a.flag_furto,
	         a.flag_prevalidazione,
	         a.abbonato_prepagato
	    FROM dbcgo_gestione_richiesta a,
	         dbcgo_pp_mv00 l,
	         dbcgo_stato b,
	         dbcgo_stato_grp d,
	         dbcgo_priorita c,
	         dbcgo_priorita e,
	         dbm_anag_mar f,
	         dbm_anag_clu g,
	         dbcgo_lov h,
	         dbcgo_lov i,
	         dbcgo_lov j,
	         dbcgo_lov k,
	         dbcgo_lov m,
	         dbcgo_gestione_richiesta_tc tc
	   WHERE a.msisdn = l.msisdn(+)
	     AND a.stato = b.id_stato
	     AND b.id_stato_grp = d.id_stato
	     AND a.id_priorita = c.id_priorita
	     AND a.id_priorita_mnp = e.id_priorita
	     AND a.marcaggio = f.cod_mar(+)
	     AND a.sottomarcaggio = g.cod_clu(+)
	     AND a.nome_ot_geo = h.NAME(+)
	     AND h.lov_name(+) = 'OT'
	     AND a.nome_ot_leg = 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.codice_operatore_v_donor = m.NAME(+)
	     AND m.lov_name(+) = 'OPERATORE_VIRTUALE'
	     AND a.id_richiesta = tc.id_richiesta(+)))
	)
/

-- Creazione vista Recipient Virtuale ---


CREATE OR REPLACE VIEW DBCGO_GEST_RIC_REC_VIRT_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, MARCAGGIO, SOTTOMARCAGGIO, ICCD_SERIAL_NUMBER, 
 NUMERO_DOCUMENTO, TIPO_DOCUMENTO, NOME_OT_GEO, NOME_OT_LEG, CODICE_OPERATORE_DONATING, 
 FLAG_TC, PREVALIDAZIONE, DATA_VALIDAZIONE_EFF, BUSINESS_ID_REC, FLAG_ESP, 
 TC_STATO, IMPORTO, DESCR_STATO, VIS_DAY_NUM, TIPO_CLIENTE_DESC, 
 CODICE_PRE_POST_PAGATO_DESC, MARCAGGIO_DESC, SOTTOMARCAGGIO_DESC, NOME_OT_GEO_DESC, NOME_OT_LEG_DESC, 
 NOME_OT_LEG_ORDER_BY, FLAG_FURTO, FLAG_PREVALIDAZIONE, ABBONATO_PREPAGATO, ABBONATO_PREPAGATO_DESC)
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.MARCAGGIO,
  a.SOTTOMARCAGGIO,
  a.ICCD_SERIAL_NUMBER,
  a.NUMERO_DOCUMENTO,
  a.TIPO_DOCUMENTO,
  a.NOME_OT_GEO,
  a.NOME_OT_LEG,
  a.CODICE_OPERATORE_DONATING,
  a.FLAG_TC,
  a.PREVALIDAZIONE,
  a.DATA_VALIDAZIONE_EFF,
  a.BUSINESS_ID_REC,
  DECODE(a.FLAG_ESP,1,'Y','N') as FLAG_ESP,
  decode(tc.stato,1,'TRASFERITO',0,'IN TRASFERIMENTO') as tc_stato,
  tc.importo,
  statoRV.DESCR_STATO AS descr_stato,
  statoRV.vis_day_num AS vis_day_num,
  j.descr AS tipo_cliente_desc,
  k.descr AS codice_pre_post_pagato_desc,
  f.desc_mar AS marcaggio_desc,
  g.desc_clu AS sottomarcaggio_desc,
  h.descr AS nome_ot_geo_desc,
  i.descr AS nome_ot_leg_desc,
  i.order_by AS nome_ot_leg_order_by ,
  a.flag_furto,
  a.flag_prevalidazione,
  a.abbonato_prepagato,
  decode(upper(a.abbonato_prepagato),'D','Y','N') AS abbonato_prepagato_desc  
  FROM DBCGO_GEST_RICH_REC_VIRT a,
         dbcgo_stato_rec_virt statoRV,
         dbm_anag_mar f,
         dbm_anag_clu g,
         dbcgo_lov h,
         dbcgo_lov i,
         dbcgo_lov j,
         dbcgo_lov k,
         dbcgo_gest_ric_rec_virt_tc tc
   WHERE a.stato = statoRV.id_stato
     AND a.marcaggio = f.cod_mar(+)
     AND a.sottomarcaggio = g.cod_clu(+)
     AND a.nome_ot_geo = h.NAME(+)
     AND h.lov_name(+) = 'OT'
     AND a.nome_ot_leg = 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(+)
)
/



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)
AS 
(SELECT
   a.ID_RICHIESTA,
   a.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,
   a.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,
   statoDV.descr_stato AS descr_stato,
   statoDV.vis_day_num AS vis_day_num,
   f.descr 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,
   (case when upper(a.COD_PROFILO_TARIFFARIO) = 'U' AND
              upper(a.DESC_PROFILO_TARIFFARIO) = 'RICARICABILE BUSINESS' then 'Y'
    ELSE 'N' END) AS cod_profilo_tariffario_desc 
   FROM
  DBCGO_GEST_RICH_DON_VIRT a,
  dbcgo_gest_ric_don_virt_tc tc,
  dbcgo_stato_don_virt statoDV,
  dbcgo_lov f,
  dbcgo_lov g,
  dbcgo_lov h,
  dbcgo_lov n
  WHERE a.stato = statoDV.id_stato
  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(+)
)
/

-- creazione vista per SLA 3gg. --
 

CREATE OR REPLACE FORCE VIEW mnp_dw_sla_3gg_out_view (id_richiesta,
                                                      tipo_messaggio,
                                                      data_messaggio,
                                                      data_messaggio_show,
                                                      donor_effettivo,
                                                      recipient_effettivo,
                                                      terza_parte,
                                                      nome_file,
                                                      numero_giorni_ritardo,
                                                      importo_penale,
                                                      data_iniziale,
                                                      data_finale,
                                                      tipo_processo,
                                                      numero_riga
                                                       )
AS
   ((SELECT "ID_RICHIESTA", "TIPO_MESSAGGIO",
            TO_CHAR (data_messaggio, 'MM/yyyy') AS data_messaggio,"DATA_MESSAGGIO",
            "DONOR_EFFETTIVO", "RECIPIENT_EFFETTIVO", "TERZA_PARTE",
            "NOME_FILE", "NUMERO_GIORNI_RITARDO", "PENALE",
            t_iniziale AS data_iniziale, t_finale AS data_finale, "PROCESSO",
            ROWNUM
       FROM dwh.mnp_dw_sla_3gg_out@MNP));
