ALTER TABLE DBCGO_GESTIONE_RICHIESTA_REC add(
    DESCANALE_VENDITA_BU VARCHAR2(50) NULL,
    COD_CANALE VARCHAR2(40) NULL
);


CREATE INDEX IDX21_DBCGO_GESTIONE_RIC_REC ON DBCGO_GESTIONE_RICHIESTA_REC
(COD_CANALE)
NOLOGGING
TABLESPACE DBCGO_IDX_SMALL
NOPARALLEL;

CREATE OR REPLACE VIEW DBCGO_ANAG_CANALE_VENDITA
(COD_CANALE_VENDITA, DESC_CAN, TIPO_CLIENTE)
AS 
(
select NAME, DESCR, 'CO'
from DBCGO_LOV where LOV_NAME='CAN_ACQ'
union
select NAME, DESCR, 'BU'
from DBCGO_LOV where LOV_NAME='CANALEVENDITA_BU'
);

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, CANALE_ACQUISIZIONE_DESC, SOTTOCANALE_ACQUISIZIONE, SOTTOCANALE_ACQUISIZIONE_DESC, SEGMENTAZIONE_CANALE, 
 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,
			a.cod_canale,
			q.descr,
			o.name as SOTTOCANALE_ACQUISIZIONE,
			o.descr as SOTTOCANALE_ACQUISIZIONE_DESC,			
			saf.SEGMENTAZIONE_CANALE,			
			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_lov m,
		dbcgo_lov o,
		dbcgo_lov q,
		dbcgo_lov_ref p,
		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(+)	
		AND saf.SOTTOCANALE_ACQUISIZIONE=m.name (+)
		AND m.lov_name (+)='SOTTOCAN_ACQ'
		AND m.lov_id=p.lov_id (+)
		AND p.lov_id_ref=o.lov_id (+)
		AND a.cod_canale=q.name (+)
);