-- insert donor in stato attivo
insert into dbcgo_pp(id_richiesta, data_operazione, codice_operatore_donating,codice_operatore_recipient, msisdn, processo, terminato)
select id_richiesta,data_transizione_stato,codice_operatore_donating,codice_operatore_recipient,msisdn,'D',0
from DBCGO_GESTIONE_RICHIESTA d1    
where stato not in (4,10,12,16,22)
and msisdn in (
  SELECT msisdn FROM dbcgo_pp_view v where v.msisdn=d1.msisdn
)
/
commit;
-- insert recipient in stato attivo
insert into dbcgo_pp(id_richiesta, data_operazione, codice_operatore_donating,codice_operatore_recipient, msisdn, processo, terminato)
select id_richiesta,data_transizione_stato,codice_operatore_donating,codice_operatore_recipient,msisdn,'R',0
from DBCGO_GESTIONE_RICHIESTA_REC r1
where stato not in (1,5,7,9,12,14,16,17)
and msisdn in (
  SELECT msisdn FROM dbcgo_pp_view v where v.msisdn=r1.msisdn
)
/
commit;
-- insert dbcgo_pp_view da stato attivo
insert into dbcgo_pp(id_richiesta, data_operazione, codice_operatore_donating,codice_operatore_recipient, msisdn, processo, terminato)
SELECT id_richiesta,data_operazione,codice_operatore_donating,codice_operatore_recipient,msisdn,processo,1
FROM dbcgo_pp_view v
where exists (
select 1
from dbcgo_pp p
where p.msisdn=v.msisdn
)
/
commit;
-- insert da dbcgo_view_pp con almeno 2 richieste e nessuna richiesta in stato attivo
insert into dbcgo_pp(id_richiesta, data_operazione, codice_operatore_donating,codice_operatore_recipient, msisdn, processo, terminato)
SELECT id_richiesta,data_operazione,codice_operatore_donating,codice_operatore_recipient,msisdn,processo,1
FROM dbcgo_pp_view v
where msisdn in (
select msisdn
from dbcgo_pp_view
group by msisdn
having count(msisdn)>1
)
and not exists(
select 1
from dbcgo_pp p
where p.msisdn=v.msisdn
)
/
commit;
