


-- GENERA TABELLE PER GESTIONE RECIPIENT VIRTUALE--

CREATE TABLE MNP_GEST_RICH_REC_VIRT
    (
    id_richiesta                   VARCHAR2(23) NOT NULL,
    stato                          NUMBER(2,0) NOT NULL,
    tipo_cliente                   VARCHAR2(2),
    data_cut_over_calc             DATE NOT NULL,
    data_validazione_max           DATE NOT NULL,
    dataricezionerichiesta         DATE NOT NULL,
    codicerifiutovalidazione       NUMBER(2,0),
    data_cut_over                  DATE,
    ora_cut_over                   VARCHAR2(8) DEFAULT '14:00:00'  NOT NULL,
    codice_operatore_recipient     VARCHAR2(4) NOT NULL,
    codice_operatore_donating      VARCHAR2(4) NOT NULL,
    msisdn                         VARCHAR2(15) NOT NULL,
    codice_fiscale_partita_iva     VARCHAR2(16),
    codice_pre_post_pagato         VARCHAR2(3) NOT NULL,
    nome_cliente                   VARCHAR2(30),
    cognome_cliente                VARCHAR2(50),
    ragione_sociale                VARCHAR2(80),
    tipo_documento                 VARCHAR2(3) NOT NULL,
    numero_documento               VARCHAR2(30) NOT NULL,
    imsi                           VARCHAR2(15),
    iccid_serial_number             VARCHAR2(30),
    nome_ot                        VARCHAR2(5) DEFAULT NULL,
    data_validazione_eff           DATE,
    abbonato_prepagato             VARCHAR2(50),
    sist_comp                      VARCHAR2(5),
    iccid_serial_number_ccrm        VARCHAR2(30),
    tipo_porting_out               NUMBER(1,0),
    utenza_dual                    VARCHAR2(15),
    business_consumer              NUMBER(1,0) DEFAULT 0,
    marcaggio                      VARCHAR2(2),
    ipotesi_rifiuto                NUMBER(2,0) DEFAULT 0,
    sottomarcaggio                 VARCHAR2(1),
    operatore_interno_donating     VARCHAR2(10) DEFAULT 'TIM'  NOT NULL,
    business_id                    VARCHAR2(36),
    profilo_rete		   VARCHAR2(4) NOT NULL,
    codice_analogico_digitale	   	 VARCHAR2(1) NOT NULL,
    version												 NUMBER
    )
	PARTITION BY RANGE (DATARICEZIONERICHIESTA)
  (
  PARTITION MNP_GEST_RICH_REC_VIRT1 VALUES LESS THAN (TO_DATE('20080401','YYYYMMDD'))
	NOLOGGING
	TABLESPACE TAB_HUGE,
  PARTITION MNP_GEST_RICH_REC_VIRT2 VALUES LESS THAN (TO_DATE('20081001','YYYYMMDD'))
	NOLOGGING
	TABLESPACE TAB_HUGE,
  PARTITION MNP_GEST_RICH_REC_VIRT3 VALUES LESS THAN (TO_DATE('20090401','YYYYMMDD'))
	NOLOGGING
	TABLESPACE TAB_HUGE,
  PARTITION MNP_GEST_RICH_REC_VIRT4 VALUES LESS THAN (TO_DATE('20091001','YYYYMMDD'))
	NOLOGGING
	TABLESPACE TAB_HUGE,
  PARTITION MNP_GEST_RICH_REC_VIRT5_MAX VALUES LESS THAN (MAXVALUE)
	NOLOGGING
	TABLESPACE TAB_HUGE
 )
/ 
CREATE UNIQUE INDEX PK_MNP_GEST_RICH_REC_VIRT ON MNP_GEST_RICH_REC_VIRT
(id_richiesta)
TABLESPACE TAB_IDX_BIG
/

ALTER TABLE MNP_GEST_RICH_REC_VIRT ADD 
  CONSTRAINT PK_MNP_GEST_RICH_REC_VIRT
 PRIMARY KEY
 (id_richiesta)
    USING INDEX 
    TABLESPACE TAB_IDX_BIG
/

CREATE INDEX IDX_MNP_GEST_RICH_REC_VIRT1 ON MNP_GEST_RICH_REC_VIRT
(STATO  ASC)
LOGGING
TABLESPACE TAB_IDX_BIG
/

CREATE SEQUENCE SEQ_RICH_REC_VIRT
  INCREMENT BY 1
  START WITH 1
  MINVALUE 1
  MAXVALUE 99999999999
  NOCYCLE
  NOORDER
  CACHE 20
/

CREATE TABLE MNP_STATO_REC_VIRT
(
	ID_STATO	  NUMBER(5)  NOT NULL ,
	DESCR_STATO	  VARCHAR2(20)  NOT NULL ,
	FINALE		  NUMBER(1)  NOT NULL 
)TABLESPACE TAB_DESC;

CREATE UNIQUE INDEX PKMNP_STATO_REC_VIRT ON MNP_STATO_REC_VIRT
(ID_STATO  ASC)
TABLESPACE TAB_DESC;

ALTER TABLE MNP_STATO_REC_VIRT
	ADD CONSTRAINT  PKMNP_STATO_REC_VIRT PRIMARY KEY (ID_STATO)
/


-- FINE TABELLE PER GESTIONE RECIPIENT VIRTUALE--
-- GENERA TABELLE PER RECIPIENT DONOR VIRTUALE--
CREATE TABLE MNP_STORICO_RICH_REC_VIRT
    (
		id_prog                        NUMBER(18,0) NOT NULL,
		id_richiesta                   VARCHAR2(23) NOT NULL,
		NOTE		                       VARCHAR2(100),
		stato_da                       NUMBER(2,0) DEFAULT -1,
    stato_a                        NUMBER(2,0) NOT NULL,
    data_i_o                       DATE DEFAULT SYSDATE                NOT NULL,
    data_lavorazione               DATE DEFAULT TRUNC(SYSDATE),
    dataricezionerichiesta         DATE NOT NULL
	)
   	PARTITION BY RANGE (DATARICEZIONERICHIESTA)
  (
  PARTITION MNP_STORICO_RICH_REC_VIRT1 VALUES LESS THAN (TO_DATE('20080401','YYYYMMDD'))
	NOLOGGING
	TABLESPACE TAB_HUGE_2,
  PARTITION MNP_STORICO_RICH_REC_VIRT2 VALUES LESS THAN (TO_DATE('20081001','YYYYMMDD'))
	NOLOGGING
	TABLESPACE TAB_HUGE_2,
  PARTITION MNP_STORICO_RICH_REC_VIRT3 VALUES LESS THAN (TO_DATE('20090401','YYYYMMDD'))
	NOLOGGING
	TABLESPACE TAB_HUGE_2,
  PARTITION MNP_STORICO_RICH_REC_VIRT4 VALUES LESS THAN (TO_DATE('20091001','YYYYMMDD'))
	NOLOGGING
	TABLESPACE TAB_HUGE_2,
  PARTITION MNP_STORICO_RICH_REC_VIRT5_MAX VALUES LESS THAN (MAXVALUE)   
	NOLOGGING
	TABLESPACE TAB_HUGE_2
  )
/

CREATE UNIQUE INDEX PK_MNP_STORICO_RICH_REC_VIRT ON MNP_STORICO_RICH_REC_VIRT
(id_prog)
TABLESPACE TAB_IDX_HUGE_2_1
/

ALTER TABLE MNP_STORICO_RICH_REC_VIRT ADD 
  CONSTRAINT PK_MNP_STORICO_RICH_REC_VIRT
 PRIMARY KEY
 (id_prog)
    USING INDEX 
    TABLESPACE TAB_IDX_HUGE_2_1
/

CREATE INDEX IDX_MNP_STORICO_RICH_REC_VIRT1 ON MNP_STORICO_RICH_REC_VIRT
(id_richiesta  ASC)
LOGGING
TABLESPACE TAB_IDX_HUGE_2_1
/

CREATE INDEX IDX_MNP_STORICO_RICH_REC_VIRT2 ON MNP_STORICO_RICH_REC_VIRT
(data_lavorazione  ASC)
LOGGING
TABLESPACE TAB_IDX_HUGE_2_1
/

CREATE OR REPLACE TRIGGER PRE_INS_STORICO_RICH_REC_VIRT
  before insert on  MNP_STORICO_RICH_REC_VIRT
  for each row
begin
  select dataricezionerichiesta
    into :new.dataricezionerichiesta
    from MNP_GEST_RICH_REC_VIRT
   where id_richiesta=:new.id_richiesta;
   exception when no_data_found
       then :new.dataricezionerichiesta:= sysdate;
end;
/

ALTER TABLE MNP_STORICO_RICH_REC_VIRT
ADD CONSTRAINT FK_MNP_STORICO_RICH_REC_VIRT_1 FOREIGN KEY (id_richiesta)
REFERENCES MNP_GEST_RICH_REC_VIRT (id_richiesta)
/

CREATE SEQUENCE SEQ_RICH_REC_VIRT_STORICO
  INCREMENT BY 1
  START WITH 1
  MINVALUE 1
  MAXVALUE 1000000000000000000000000000
  NOCYCLE
  NOORDER
  CACHE 200
/
-- FINE TABELLE PER STORICO RECIPIENT VIRTUALE--
-- GENERA TABELLE PER GESTIONE DONOR VIRTUALE--

CREATE TABLE MNP_GEST_RICH_DONOR_VIRT
    (
    id_richiesta                   VARCHAR2(18) NOT NULL,
    stato                          NUMBER(2,0) NOT NULL,
    tipo_cliente                   VARCHAR2(2) NOT NULL,
    data_cut_over_calc             DATE NOT NULL,
    data_validazione_max           DATE,
    dataricezionerichiesta         DATE NOT NULL,
    codice_operatore_recipient     VARCHAR2(4) NOT NULL,
    codice_operatore_donating      VARCHAR2(4) NOT NULL,
    codice_gruppo                  VARCHAR2(12),
    msisdn                         VARCHAR2(15) NOT NULL,
    codice_fiscale_partita_iva     VARCHAR2(16),
    codice_pre_post_pagato         VARCHAR2(3) NOT NULL,
    codice_analogico_digitale      VARCHAR2(1) NOT NULL,
    data_cut_over                  DATE,
    ora_cut_over                   VARCHAR2(8) DEFAULT '14:00:00'             NOT NULL,
    nome_cliente                   VARCHAR2(30),
    cognome_cliente                VARCHAR2(50),
    ragione_sociale                VARCHAR2(80),
    tipo_documento                 VARCHAR2(3) NOT NULL,
    numero_documento               VARCHAR2(30) NOT NULL,
    imsi                           VARCHAR2(15) NOT NULL,
    iccid_serial_number            VARCHAR2(30),
    nome_ot                        VARCHAR2(2),
    codice_richiesta_bit           VARCHAR2(18),
    codicerifiutovalidazione       NUMBER(2,0),
    data_validazione_eff           DATE,
    msisdn_tim                     VARCHAR2(16),
    causale_accodamento            VARCHAR2(100),
    operatore_interno_recipient              VARCHAR2(10) NOT NULL,
    sistema_mittente               VARCHAR2(10),
    tipo_servizio_sistema_mitt     VARCHAR2(10),
    business_id                    VARCHAR2(36),
    ipotesi_rifiuto                NUMBER(2,0) DEFAULT 0,
    codice_dealer                  VARCHAR2(10),
    cod_profilo_tariffario         VARCHAR2(10),
    desc_profilo_tariffario        VARCHAR2(50),
    cod_offerta                    VARCHAR2(5),
    desc_offerta                   VARCHAR2(50),
    cod_accordo                    VARCHAR2(10),
    desc_accordo                   VARCHAR2(150),
    descanale_vendita              VARCHAR2(50),
    codice_ordine                  VARCHAR2(15),
    tipo_operazione                VARCHAR2(3),
    idreq_infobus									 VARCHAR2(24),
    version												 NUMBER
    )
 	PARTITION BY RANGE (DATARICEZIONERICHIESTA)
  (
  PARTITION MNP_GEST_RICH_DONOR_VIRT1 VALUES LESS THAN (TO_DATE('20080401','YYYYMMDD'))
	NOLOGGING
	TABLESPACE TAB_HUGE,
  PARTITION MNP_GEST_RICH_DONOR_VIRT2 VALUES LESS THAN (TO_DATE('20081001','YYYYMMDD'))
	NOLOGGING
	TABLESPACE TAB_HUGE,
  PARTITION MNP_GEST_RICH_DONOR_VIRT3 VALUES LESS THAN (TO_DATE('20090401','YYYYMMDD'))
	NOLOGGING
	TABLESPACE TAB_HUGE,
  PARTITION MNP_GEST_RICH_DONOR_VIRT4 VALUES LESS THAN (TO_DATE('20091001','YYYYMMDD'))
	NOLOGGING
	TABLESPACE TAB_HUGE,
  PARTITION MNP_GEST_RICH_DONOR_VIRT5_MAX VALUES LESS THAN (MAXVALUE)
	NOLOGGING
	TABLESPACE TAB_HUGE
 )
/

CREATE UNIQUE INDEX PK_MNP_GEST_RICH_DONOR_VIRT ON MNP_GEST_RICH_DONOR_VIRT
(id_richiesta)
TABLESPACE TAB_IDX_BIG
/

ALTER TABLE MNP_GEST_RICH_DONOR_VIRT ADD 
  CONSTRAINT PK_MNP_GEST_RICH_DONOR_VIRT
 PRIMARY KEY
 (id_richiesta)
    USING INDEX 
    TABLESPACE TAB_IDX_BIG
/

CREATE INDEX IDX_MNP_GEST_RICH_DONOR_VIRT1 ON MNP_GEST_RICH_DONOR_VIRT
(STATO  ASC)
LOGGING
TABLESPACE TAB_IDX_BIG
/

CREATE SEQUENCE SEQ_RICH_DONOR_VIRT
  INCREMENT BY 1
  START WITH 1
  MINVALUE 1
  MAXVALUE 99999999999
  NOCYCLE
  NOORDER
  CACHE 20
/

CREATE TABLE MNP_STATO_DON_VIRT
(
	ID_STATO	  NUMBER(5)  NOT NULL ,
	DESCR_STATO	  VARCHAR2(20)  NOT NULL ,
	FINALE		  NUMBER(1)  NOT NULL 
)TABLESPACE TAB_DESC;

CREATE UNIQUE INDEX PKMNP_STATO_DON_VIRT ON MNP_STATO_DON_VIRT
(ID_STATO  ASC)
TABLESPACE TAB_DESC;

ALTER TABLE MNP_STATO_DON_VIRT
	ADD CONSTRAINT  PKMNP_STATO_DON_VIRT PRIMARY KEY (ID_STATO)
/

-- FINE TABELLE PER GESTIONE DONOR VIRTUALE--

-- GENERA TABELLE PER STORICO DONOR VIRTUALE--
CREATE TABLE MNP_STORICO_RICH_DON_VIRT
    (
		id_prog                        NUMBER(18,0) NOT NULL,
		id_richiesta                   VARCHAR2(18) NOT NULL,
		NOTE		                      VARCHAR2(100),
		stato_da                       NUMBER(2,0) DEFAULT -1,
    stato_a                        NUMBER(2,0) NOT NULL,
    data_i_o                       DATE DEFAULT SYSDATE                NOT NULL,
    data_lavorazione               DATE DEFAULT TRUNC(SYSDATE),
    dataricezionerichiesta         DATE NOT NULL)
   	PARTITION BY RANGE (DATARICEZIONERICHIESTA)
  (
  PARTITION MNP_STORICO_RICH_DON_VIRT1 VALUES LESS THAN (TO_DATE('20080401','YYYYMMDD'))
	NOLOGGING
	TABLESPACE TAB_HUGE_2,
  PARTITION MNP_STORICO_RICH_DON_VIRT2 VALUES LESS THAN (TO_DATE('20081001','YYYYMMDD'))
	NOLOGGING
	TABLESPACE TAB_HUGE_2,
  PARTITION MNP_STORICO_RICH_DON_VIRT3 VALUES LESS THAN (TO_DATE('20090401','YYYYMMDD'))
	NOLOGGING
	TABLESPACE TAB_HUGE_2,
  PARTITION MNP_STORICO_RICH_DON_VIRT4 VALUES LESS THAN (TO_DATE('20091001','YYYYMMDD'))
	NOLOGGING
	TABLESPACE TAB_HUGE_2,
  PARTITION MNP_STORICO_RICH_DON_VIRT5_MAX VALUES LESS THAN (MAXVALUE)
	NOLOGGING
	TABLESPACE TAB_HUGE_2
  )
/

CREATE UNIQUE INDEX PK_MNP_STORICO_RICH_DON_VIRT ON MNP_STORICO_RICH_DON_VIRT
(id_prog)
TABLESPACE TAB_IDX_HUGE_2_1
/

ALTER TABLE MNP_STORICO_RICH_DON_VIRT ADD 
  CONSTRAINT PK_MNP_STORICO_RICH_DON_VIRT
 PRIMARY KEY
 (id_prog)
    USING INDEX 
    TABLESPACE TAB_IDX_HUGE_2_1
/

CREATE INDEX IDX_MNP_STORICO_RICH_DON_VIRT1 ON MNP_STORICO_RICH_DON_VIRT
(id_richiesta  ASC)
LOGGING
TABLESPACE TAB_IDX_HUGE_2_1
/

CREATE INDEX IDX_MNP_STORICO_RICH_DON_VIRT2 ON MNP_STORICO_RICH_DON_VIRT
(data_lavorazione  ASC)
LOGGING
TABLESPACE TAB_IDX_HUGE_2_1
/

CREATE OR REPLACE TRIGGER PRE_INS_STORICO_RICH_DON_VIRT
  before insert on  MNP_STORICO_RICH_DON_VIRT
  for each row
begin
  select dataricezionerichiesta
    into :new.dataricezionerichiesta
    from MNP_GEST_RICH_DONOR_VIRT
   where id_richiesta=:new.id_richiesta;
   exception when no_data_found
       then :new.dataricezionerichiesta:= sysdate;
end;
/
ALTER TABLE MNP_STORICO_RICH_DON_VIRT
ADD CONSTRAINT FK_MNP_STORICO_RICH_DON_VIRT_1 FOREIGN KEY (id_richiesta)
REFERENCES MNP_GEST_RICH_DONOR_VIRT (id_richiesta)
/

CREATE SEQUENCE SEQ_RICH_DON_VIRT_STORICO
  INCREMENT BY 1
  START WITH 1
  MINVALUE 1
  MAXVALUE 1000000000000000000000000000
  NOCYCLE
  NOORDER
  CACHE 200
/
-- FINE TABELLE PER STORICO DONOR VIRTUALE--


-- INIZIO TABELLE PER NOTIFICHE DA GISP

CREATE TABLE MNP_GISP_NOTIFICA_IN
(
	UNIQUE_ID NUMBER NOT NULL,
	ID_RICHIESTA VARCHAR2(23) NOT NULL,
	DATA_RICEZIONE DATE DEFAULT SYSDATE NOT NULL,
	DA_SCODARE NUMBER(1) NOT NULL,
	DATA_INVIO_NOTIFICA DATE NOT NULL,
	MSISDN VARCHAR2(13) NOT NULL,
	TIPO_EVENTO VARCHAR2(3) NOT NULL
)
TABLESPACE TAB_HUGE_2
/

CREATE UNIQUE INDEX PK_MNP_GISP_NOTIFICA_IN ON MNP_GISP_NOTIFICA_IN
(UNIQUE_ID)
TABLESPACE TAB_IDX_HUGE_2_2
/

ALTER TABLE MNP_GISP_NOTIFICA_IN ADD 
 CONSTRAINT PK_MNP_GISP_NOTIFICA_IN
 PRIMARY KEY
 (UNIQUE_ID)
    USING INDEX 
    TABLESPACE TAB_IDX_HUGE_2_2
/


CREATE TABLE MNP_GISP_SCARTO_NOTIFICA_IN
(
	UNIQUE_ID       NUMBER                        NOT NULL,
  TRACCIATO       VARCHAR2(4000) NULL,
  DATA_RICEZIONE  DATE                          DEFAULT SYSDATE,
  CAUSALE_SCARTO  VARCHAR2(255) NULL
)
TABLESPACE TAB_HUGE_2
/

CREATE UNIQUE INDEX PK_MNP_GISP_SCARTO_NOTIFICA_IN ON MNP_GISP_SCARTO_NOTIFICA_IN
(UNIQUE_ID)
TABLESPACE TAB_IDX_HUGE_2_2
/

ALTER TABLE MNP_GISP_SCARTO_NOTIFICA_IN ADD 
 CONSTRAINT PK_MNP_GISP_SCARTO_NOTIFICA_IN
 PRIMARY KEY
 (UNIQUE_ID)
    USING INDEX 
    TABLESPACE TAB_IDX_HUGE_2_2
/

-- FINE TABELLE PER NOTIFICHE DA GISP


--  GENERA TABELLA OPERATORE GISP --


CREATE TABLE MNP_OPERATORE_GISP
(
	ID_OPERATORE_GISP  NUMBER  NOT NULL ,
	ID_OPERATORE_INTERNO NUMBER NOT NULL ,
	NOME_OPERATORE	  VARCHAR2(20)  NOT NULL 
)
TABLESPACE TAB_DESC
/

CREATE UNIQUE INDEX IDX_MNP_OPERATORE_GISP_1 ON MNP_OPERATORE_GISP
(ID_OPERATORE_INTERNO  ASC)
TABLESPACE TAB_IDX_HUGE_2_2
/
CREATE UNIQUE INDEX PK_MNP_OPERATORE_GISP ON MNP_OPERATORE_GISP
(ID_OPERATORE_GISP  ASC)
TABLESPACE TAB_IDX_HUGE_2_2
/

ALTER TABLE MNP_OPERATORE_GISP
	ADD CONSTRAINT  PK_MNP_OPERATORE_GISP PRIMARY KEY (ID_OPERATORE_GISP)
/

ALTER TABLE MNP_OPERATORE_GISP ADD CONSTRAINT FK_MNP_OPERATORE_GISP FOREIGN KEY (ID_OPERATORE_INTERNO)
REFERENCES MNP_OPERATORE_INTERNO (ID_OPERATORE_INTERNO)
/

-- FINE GENERAZIONE TABELLA OPERATORE GISP --