--da eseguire come utente DBCGO

-- GESTIONE DELLE FUNZIONI NUOVA GESTIONE KIT APRILE 09 PER MENU

CREATE TABLE dbcgo_funzione_web
    (id                             NUMBER(3,0) NOT NULL,
    id_padre                       NUMBER(3,0),
    nome                           VARCHAR2(50) NOT NULL,
    comando                        VARCHAR2(150),
    descrizione                    VARCHAR2(50),
    ordine			   NUMBER(3)) TABLESPACE DBCGO_DATA_SMALL 
/

-- Constraints for DBCGO_FUNZIONE_WEB
ALTER TABLE dbcgo_funzione_web ADD CONSTRAINT f_web_pry PRIMARY KEY (id)
/

-- Foreign Key
ALTER TABLE dbcgo_funzione_web
ADD CONSTRAINT f_web_foreign_id_padre FOREIGN KEY (id_padre)
REFERENCES dbcgo_funzione_web (id)
/

CREATE TABLE dbcgo_profilo
    (id                             NUMBER(3,0) NOT NULL,
    nome                           VARCHAR2(20),
    descrizione                    VARCHAR2(60)) TABLESPACE DBCGO_DATA_SMALL
/

-- Constraints for DBCGO_PROFILO
ALTER TABLE dbcgo_profilo ADD CONSTRAINT prof_pry_id PRIMARY KEY (id)
/


CREATE TABLE dbcgo_profilo_funzione_web
    (id_profilo                     NUMBER(3,0) NOT NULL,
    id_funzione                    NUMBER(3,0) NOT NULL) TABLESPACE DBCGO_DATA_SMALL
/

-- Constraints for DBCGO_PROFILO_FUNZIONE_WEB
ALTER TABLE dbcgo_profilo_funzione_web
ADD CONSTRAINT pry_fun_pro UNIQUE (id_profilo, id_funzione)
/

-- Foreign Key
ALTER TABLE dbcgo_profilo_funzione_web
ADD CONSTRAINT foreign_idprof FOREIGN KEY (id_profilo)
REFERENCES dbcgo_profilo (id)
/

ALTER TABLE dbcgo_profilo_funzione_web
ADD CONSTRAINT foreign_idfun FOREIGN KEY (id_funzione)
REFERENCES dbcgo_funzione_web (id)
/

-- QUADRATURA

ALTER TABLE DBCGO_GESTIONE_RICHIESTA ADD FLAG_TC  char(1);
ALTER TABLE DBCGO_GESTIONE_RICHIESTA ADD DATA_PRESA_IN_CARICO date;
ALTER TABLE DBCGO_GESTIONE_RICHIESTA ADD CODICE_OPERATORE_V_DONOR VARCHAR2(4);
ALTER TABLE DBCGO_GESTIONE_RICHIESTA ADD CODICE_OPERATORE_V_RECIPIENT VARCHAR2(4);

ALTER TABLE DBCGO_GESTIONE_RICHIESTA_REC ADD FLAG_TC  char(1);
ALTER TABLE DBCGO_GESTIONE_RICHIESTA_REC ADD DATA_PRESA_IN_CARICO date;
ALTER TABLE DBCGO_GESTIONE_RICHIESTA_REC ADD CODICE_OPERATORE_V_DONOR VARCHAR2(4);
ALTER TABLE DBCGO_GESTIONE_RICHIESTA_REC ADD CODICE_OPERATORE_V_RECIPIENT VARCHAR2(4);

CREATE TABLE dbcgo_gestione_richiesta_r_tc
    (id_richiesta                   VARCHAR2(23) NOT NULL,
    data_notifica_credito          DATE,
    ora_notifica_credito           VARCHAR2(5),
    stato                          NUMBER(2,0),
    importo                        NUMBER(7,2),
    nome_file_aom                  VARCHAR2(27),
    data_transizione_stato         DATE,
    data_ora_modifica		   TIMESTAMP(6)) TABLESPACE DBCGO_DATA_BIG
/

-- Foreign Key
ALTER TABLE dbcgo_gestione_richiesta_r_tc
ADD CONSTRAINT dbcgo_gest_richiesta_r_tc_fk FOREIGN KEY (id_richiesta)
REFERENCES dbcgo_gestione_richiesta_rec (id_richiesta)
/

CREATE TABLE dbcgo_gestione_richiesta_tc
    (id_richiesta                   VARCHAR2(23) NOT NULL,
    data_notifica_credito          DATE,
    ora_notifica_credito           VARCHAR2(5),
    stato                          NUMBER(2,0),
    importo                        NUMBER(7,2),
    nome_file_aom                  VARCHAR2(27),
    data_transizione_stato         DATE,
    data_ora_modifica              TIMESTAMP(6)) TABLESPACE DBCGO_DATA_BIG
/

-- Foreign Key
ALTER TABLE dbcgo_gestione_richiesta_tc
ADD CONSTRAINT dbcgo_gestione_richiesta_tc_fk FOREIGN KEY (id_richiesta)
REFERENCES dbcgo_gestione_richiesta (id_richiesta)
/

-- Combo Nuova gestione e Vecchia

CREATE TABLE dbcgo_vo_aom_donor
    (id                             NUMBER(2,0),
    label                          VARCHAR2(60),
    value                          VARCHAR2(100),
    ordine                         NUMBER(2,0)) TABLESPACE DBCGO_DATA_SMALL
/

ALTER TABLE dbcgo_vo_aom_donor ADD CONSTRAINT [REDACTED]PRIMARY KEY (id)
/
CREATE TABLE dbcgo_vo_aom_recipient
    (id                             NUMBER(2,0),
    label                          VARCHAR2(60),
    value                          VARCHAR2(100),
    ordine                         NUMBER(2,0)) TABLESPACE DBCGO_DATA_SMALL
/
ALTER TABLE dbcgo_vo_aom_recipient ADD CONSTRAINT [REDACTED]PRIMARY KEY (id)
/

CREATE TABLE dbcgo_vo_elenco_combo
    (nome_tabella                   VARCHAR2(40)) TABLESPACE DBCGO_DATA_SMALL
/

ALTER TABLE dbcgo_vo_elenco_combo ADD CONSTRAINT [REDACTED]PRIMARY KEY (nome_tabella)
/

CREATE TABLE dbcgo_vo_OPERATORE_VIRTUALE
    (id                             NUMBER(2,0),
    label                          VARCHAR2(60),
    value                          VARCHAR2(100),
    ordine                         NUMBER(2,0)) TABLESPACE DBCGO_DATA_SMALL
/

ALTER TABLE dbcgo_vo_OPERATORE_VIRTUALE ADD CONSTRAINT [REDACTED]PRIMARY KEY (id)
/

CREATE TABLE dbcgo_vo_TIPO_CONTRATTO
    (id                             NUMBER(2,0),
    label                          VARCHAR2(60),
    value                          VARCHAR2(100),
    ordine                         NUMBER(2,0)) TABLESPACE DBCGO_DATA_SMALL
/

ALTER TABLE dbcgo_vo_TIPO_CONTRATTO ADD CONSTRAINT [REDACTED]PRIMARY KEY (id)
/

CREATE TABLE dbcgo_vo_TIPO_REPORT
    (id                            NUMBER(2,0),
    label                          VARCHAR2(60),
    value                          VARCHAR2(100),
    ordine                         NUMBER(2,0)) TABLESPACE DBCGO_DATA_SMALL
/

ALTER TABLE dbcgo_vo_TIPO_REPORT ADD CONSTRAINT [REDACTED]PRIMARY KEY (id)
/

CREATE TABLE dbcgo_vo_flag_trasferimento
    (id                            NUMBER(2,0) NOT NULL,
    label                          VARCHAR2(60),
    value                          VARCHAR2(100),
    ordine                         NUMBER(2,0)) TABLESPACE DBCGO_DATA_SMALL
/

ALTER TABLE dbcgo_vo_flag_trasferimento ADD CONSTRAINT [REDACTED]PRIMARY KEY (id)
/

CREATE TABLE dbcgo_vo_tipo_cliente
    (id                             NUMBER(2,0) NOT NULL,
    label                          VARCHAR2(60),
    value                          VARCHAR2(100),
    ordine                         NUMBER(2,0)) TABLESPACE DBCGO_DATA_SMALL
/

ALTER TABLE dbcgo_vo_tipo_cliente ADD CONSTRAINT [REDACTED]PRIMARY KEY (id)
/

-- GESTIONE PRIORITA'
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,
   tipo_operazione,
   tipo_operazione_desc,
   codice_ordine,
   flag_tc,
   data_presa_in_carico,
   nome_file_aom,
   importo,
   tc_stato,
   CODICE_OPERATORE_V_DONOR   )
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 , 
   a.TIPO_OPERAZIONE, 
   r.descr as TIPO_OPERAZIONE_DESC,
   a.CODICE_ORDINE,
   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
 FROM 
  dbcgo_gestione_richiesta_rec a, 
  dbcgo_gestione_richiesta_r_tc tc,
  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 r, ---PER TIPO_OPERAZIONE KIT DICEMBRE 07 
  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.id_richiesta = tc.id_richiesta(+)
  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 (+) 
  AND r.lov_name (+)='TIPO_OPERAZIONE'
  AND a.TIPO_OPERAZIONE=r.name (+)
)
/


CREATE OR REPLACE FORCE 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
                                                             )
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,
            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
       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(+)))
/







