CREATE procedure [dbo].[HIST_getReportDaStoricizzare_BK_10092015] as
begin
declare @timeToLive as smallint
--numero di giorni in cui un report  viene mantenuto nel repository
set @timeToLive = 180
--Svuoto tabella di Selezione Report da archiviare
truncate table appoDaArchiviare
-- *************************************************
-- Da Togliere i commenti dopo test archiviazione
--insert into appoDaArchiviare
--select id as idInMetadati,idInRepository as idReport,repository,1 as flagArchiviato
--from RepositoryMetadati
--where datediff(day,dataGenerazione,getDate()) > @timeToLive
--and repository = 0 and flaglock = 0 and flagStoricizzato = 0
-- *************************************************
-- spostato nella delete dei report HIST_DELETEARCHIVIATI
--aggiornamento tabella metadati, mantengo l'informazione di quali report ho cancellato definitivamente.
--update 
--RepositoryMetadati
--set flagStoricizzato = 1
--where datediff(day,dataGenerazione,getDate()) > @timeToLive
--and repository = 0 and flaglock = 0 and flagStoricizzato = 0
insert into appoDaArchiviare
select id as idInMetadati,idInRepository as idReport,repository,0 as flagArchiviato
from RepositoryMetadati a
inner join REPORTFISICO b
on a.idInRepository = b.identificativo
where
datediff(day,dataGenerazione,getDate()) > @timeToLive
and flaglock = 1 and flagStoricizzato = 0
and repository = 0 --Report Manager
union
select id as idInMetadati,idInRepository as idReport,repository,0 as flagArchiviato
from RepositoryMetadati a
inner join C6REPORTFISICO_CAMPAGNA b
on a.idInRepository = b.identificativo
where
datediff(day,dataGenerazione,getDate()) > @timeToLive
and flaglock = 1 and flagStoricizzato = 0
and repository = 2 --Campagna
union
select id as idInMetadati,idInRepository as idReport,repository,0 as flagArchiviato
from RepositoryMetadati a
inner join C6REPORTFISICO b
on a.idInRepository = b.identificativo
where
datediff(day,dataGenerazione,getDate()) > @timeToLive
and flaglock = 1 and flagStoricizzato = 0
and repository = 1 --C6
union
select id as idInMetadati,idInRepository as idReport,repository,0 as flagArchiviato
from RepositoryMetadati a
inner join ReportFMS b
on a.idInRepository = b.identificativo
where
datediff(day,dataGenerazione,getDate()) > @timeToLive
and flaglock = 1 and flagStoricizzato = 0
and repository = 5 --FMS
insert into ScartiNonArchiviabili
select id as idInMetadati, idInRepository as idReport, getdate() as DataInserimento
from RepositoryMetadati
where
datediff(day,dataGenerazione,getDate()) > @timeToLive
and flaglock = 1 and flagStoricizzato = 0
and id not in (select idInMetadati from appoDaArchiviare)
--seleziona i report da archiviare
--select id as idInMetadati,idInRepository as idReport,repository
--from RepositoryMetadati
--where 
--1 = 1
--and datediff(day,dataGenerazione,getDate()) > @timeToLive
--and flaglock = 1 and flagStoricizzato = 0
------ TEST
----and repository = 0
select top 20000 idInMetadati, idReport,repository from appoDaArchiviare where flagArchiviato =0 --where idreport=764801--764806
end