--da eseguire come utente DBCGO

-------------------------------------------------------------------------
--TABLES

ALTER TABLE SAP_ANAG_FV
ADD (CANALE_ACQUISIZIONE VARCHAR2(4));

CREATE INDEX SAP_ANAG_FV_IDX01 ON SAP_ANAG_FV
(CANALE_ACQUISIZIONE)
TABLESPACE DBCGO_IDX_BIG;

-------------------------------------------------------------------------
--VIEW

-- aggiornare dopo rilascio in esercizio dell'ultima versione

CREATE OR REPLACE VIEW DBCGO_GESTIONE_RIC_REC_V00
(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, CAUSALE_ACCODAMENTO, 
 RICHIESTAADHOC, RICHIESTAADHOCAOM, ID_PRIORITA, INSERT_DATE, UPDATE_DATE, 
 ICCD_SERIAL_NUMBER, IMSI, NOME_OT, NUMERO_DOCUMENTO, TIPO_DOCUMENTO, 
 NUMERO_INVII, TIMESTAMP, DATA_TRANSIZIONE_STATO, ID_PRIORITA_MNP, DATA_TRANSIZIONE_STATO_GRP, 
 CODICE_DEALER, CAR1, CAR2, CODICE_OPERATORE_RECIPIENT, CODICE_GRUPPO, 
 SISTEMA_MITTENTE, COD_PROFILO_TARIFFARIO, COD_OFFERTA, COD_ACCORDO, DESCR_STATO, 
 VIS_DAY_NUM, ID_STATO_GRP, PRIORITY_TYPE, PRIORITA, PRIORITA_MNP, 
 NOME_OT_DESC, NOME_OT_ORDER_BY, TIPO_CLIENTE_DESC, CODICE_PRE_POST_PAGATO_DESC, CAR1_DESC, 
 CAR2_DESC, SISTEMA_MITTENTE_DESC, DESC_PROFILO_TARIFFARIO, DESC_OFFERTA, DESC_ACCORDO,
 CANALE_ACQUISIZIONE, PP_NUM)
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.CAUSALE_ACCODAMENTO,
			a.RICHIESTAADHOC,
			a.RICHIESTAADHOCAOM,
			a.ID_PRIORITA,
			a.INSERT_DATE,
			a.UPDATE_DATE,
			a.ICCD_SERIAL_NUMBER,
			a.IMSI,
			a.NOME_OT,
			a.NUMERO_DOCUMENTO,
			a.TIPO_DOCUMENTO,
			a.NUMERO_INVII,
			a.TIMESTAMP,
			a.DATA_TRANSIZIONE_STATO,
			a.ID_PRIORITA_MNP,
			a.DATA_TRANSIZIONE_STATO_GRP,
			a.CODICE_DEALER,
			a.CAR1,
			a.CAR2,
			a.CODICE_OPERATORE_RECIPIENT,
			a.CODICE_GRUPPO,
			a.SISTEMA_MITTENTE,
			a.COD_PROFILO_TARIFFARIO,
			a.COD_OFFERTA,
			a.COD_ACCORDO,
			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.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,
			i.descr AS car1_desc,
			l.descr AS car2_desc,
			n.descr AS sistema_mittente_desc,
			PTP.DESC_PROFILO_TARIFFARIO,
			PTO.DESC_OFFERTA,
			PTA.DESC_ACCORDO,
			saf.CANALE_ACQUISIZIONE,
			pp.pp_num AS pp_num
	FROM 
		dbcgo_gestione_richiesta_rec a,
		dbcgo_pp_mv00 pp,
		dbcgo_stato_rec b,
		dbcgo_stato_rec_grp d,
		dbcgo_priorita_rec c,
		dbcgo_priorita_rec e,
		dbcgo_lov f,
		dbcgo_lov g,
		dbcgo_lov h,
		dbcgo_lov i,
		dbcgo_lov l,
		dbcgo_lov n,		
		dbcgo_profilo_tariffario PTP,
		dbcgo_offerta	PTO,
		dbcgo_accordo	PTA	,
		sap_anag_fv saf	
	WHERE a.msisdn=pp.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.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.car1 = i.NAME
		AND i.lov_name = 'VALORE_CLIENTE'
		AND a.car2 = l.NAME
		AND l.lov_name = 'VALORE_SPESA'
		AND a.sistema_mittente = n.NAME(+)
		AND n.lov_name(+) = 'SIST_MITTENTE'		
		AND a.SISTEMA_MITTENTE = PTP.SISTEMA_MITTENTE(+) 
		AND a.COD_PROFILO_TARIFFARIO = PTP.COD_PROFILO_TARIFFARIO(+)
		AND a.SISTEMA_MITTENTE = PTO.SISTEMA_MITTENTE(+)
		AND a.COD_OFFERTA = PTO.COD_OFFERTA(+)
		AND a.SISTEMA_MITTENTE = PTA.SISTEMA_MITTENTE(+)
		AND a.COD_ACCORDO = PTA.COD_ACCORDO(+)	
		AND a.CODICE_DEALER=saf.cod_id(+)	
);


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
) 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.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.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
      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					 
     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'       
);
