-- flag_stato=1 completato (verde)
-- flag_stato=2 in esecuzione (giallo)
-- flag_stato=3 non lavorato (rosso)
--truncate table C6MartPeriodico.tab_semaforo
--C6MartPeriodico.SP_Valorizza_Stati_semaforo_TRIM quad_end,SEI
  --select * from C6MartPeriodico.tab_semaforo
-- Stored procedure  
-- =============================================  
-- Author:  <Author,,Name>  
-- Create date: <Create Date,,>  
-- Description: <Description,,>  
-- =============================================  
CREATE   procedure [C6MartPeriodico].[SP_Valorizza_Stati_semaforo_TRIM] @param1 varchar(20),@tipo varchar(20)
AS  
BEGIN  
 -- SET NOCOUNT ON added to prevent extra result sets from  
 -- interfering with SELECT statements.  
 declare 
 @intero  int,
 @trimestrale varchar(3),
 @lotto_zero varchar(3),
 @quadratura varchar(3),
 @lotto varchar(3),
 @congelamento varchar(3),
 @sm1 varchar(3),
 @position varchar(3),
 @adeguatezza varchar(3),
 @post_ade varchar(3),
 @sm2 varchar(3),
 @certificazione varchar(3),
 @zipping varchar(3),
 @approval varchar(3),
 @invio varchar(3),
 @postalizzazione varchar(3),
 --descrizioni
 @desc_trimestrale varchar(256),
 @desc_lotto_zero varchar(256),
 @desc_quadratura varchar(256),
 @desc_lotto varchar(256),
 @desc_congelamento varchar(256),
 @desc_sm1 varchar(256),
 @desc_position varchar(256),
 @desc_adeguatezza varchar(256),
 @desc_post_ade varchar(256),
 @desc_sm2 varchar(256),
 @desc_certificazione varchar(256),
 @desc_zipping varchar(256),
 @desc_approval varchar(256),
 @desc_invio varchar(256),
 @desc_postalizzazione varchar(256)
 set @intero='0'
 set @trimestrale='1'
 set @lotto_zero='2'
 set @quadratura='3'
 set @lotto='2'
 set @congelamento='4'
 set @sm1='5'
 set @position='6'
 --set @adeguatezza='7'
 --set @post_ade='8'
 set @sm2='7'
 set @certificazione='8'
 set @zipping='9'
 set @approval='10'
 set @invio='11'
 set @postalizzazione='12'
  set @desc_trimestrale='Rendicontazioni sugli investimenti per i clienti con contratto di consulenza "SEI". '
 set @lotto_zero=''
 set @desc_quadratura='Fase di Quadratura per i clienti tra le varie fonti db.'
 set @desc_lotto='Preparazione delle rendicontazioni in corso.'
 set @desc_congelamento='Fase di congelamento per il database di marketing.'
 set @desc_sm1='Preparazione ed elaborazione dati da Staging & Mart Fase 1.'
 set @desc_position='Elaborazione Position Data ed Adeguatezza.'
 --set @adeguatezza='7'
 --set @post_ade='8'
 set @desc_sm2='Preparazione ed elaborazione dati da Staging & Mart Fase 2.'
 set @desc_certificazione='Certificazione sul campione dei PDF dei Clienti.'
 set @desc_zipping='Fase di zip per l''invio dei report.'
 set @desc_approval='Approvazione del lotto corrente.'
 set @desc_invio='Invio dei file generati.'
 set @desc_postalizzazione='Conferma di avvenuta postalizzazione dei PDF dei clienti.'
 --select * from C6MartPeriodico.tab_semaforo
 --inserimento
 --select * from C6MartPeriodico.tab_semaforo
 --insert into C6MartPeriodico.tab_semaforo values
 --avvio_trimestre
 --update C6MartPeriodico.tab_semaforo
 --set descrizione='Fase di congelamento per il database di marketing'
 --from C6MartPeriodico.tab_semaforo
 --where id_milestone=4
if ((select COUNT(*) from C6MartPeriodico.tab_semaforo)=0)
begin
insert into C6MartPeriodico.tab_semaforo values 
([C6MartPeriodico].[getTrimestre](GETDATE(),0),@tipo,@trimestrale,'TRIMESTRALE',@desc_trimestrale,'','',3,@intero,'','',0),
([C6MartPeriodico].[getTrimestre](GETDATE(),0),@tipo,@lotto_zero,'LOTTO 0','','','',3,@intero,'','',0),
([C6MartPeriodico].[getTrimestre](GETDATE(),0),@tipo,@quadratura,'QUADRATURA',@desc_quadratura,'','',3,@intero,'','',0),
([C6MartPeriodico].[getTrimestre](GETDATE(),0),@tipo,@lotto,'LOTTO'+' '+ cast(@intero+1 as varchar),@desc_lotto,'','',3,@intero+1,'','',0),
([C6MartPeriodico].[getTrimestre](GETDATE(),0),@tipo,@congelamento,'CONGELAMENTO DB MK',@desc_congelamento,'','',3,@intero+1,'','',0),
([C6MartPeriodico].[getTrimestre](GETDATE(),0),@tipo,@sm1,'STAGING & MART (FASE 1)'+' '+ cast(@intero+1 as varchar),@desc_sm1,'','',3,@intero+1,'','',0),
([C6MartPeriodico].[getTrimestre](GETDATE(),0),@tipo,@position,'CHIAMATA ALADDIN'+' '+ cast(@intero+1 as varchar),@desc_position,'','',3,@intero+1,'','',0),
--([C6MartPeriodico].[getTrimestre](GETDATE(),0),@tipo,@adeguatezza,'ADEGUATEZZA'+' '+ cast(@intero+1 as varchar),'','','',3,@intero+1),
--([C6MartPeriodico].[getTrimestre](GETDATE(),0),@tipo,@post_ade,'POST_ADE'+' '+ cast(@intero+1 as varchar),'','','',3,@intero+1),
([C6MartPeriodico].[getTrimestre](GETDATE(),0),@tipo,@sm2,'STAGING & MART (FASE 2)'+' '+ cast(@intero+1 as varchar),@desc_sm2,'','',3,@intero+1,'','',0),
([C6MartPeriodico].[getTrimestre](GETDATE(),0),@tipo,@certificazione,'CERTIFICAZIONE',@desc_certificazione,'','',3,@intero+1,'','',0),
([C6MartPeriodico].[getTrimestre](GETDATE(),0),@tipo,@zipping,'ZIPPING'+' '+ cast(@intero+1 as varchar),@desc_zipping,'','',3,@intero+1,'','',0),
([C6MartPeriodico].[getTrimestre](GETDATE(),0),@tipo,@approval,'APPROVAL',@desc_approval,'','',3,@intero+1,'','',0),
([C6MartPeriodico].[getTrimestre](GETDATE(),0),@tipo,@invio,'INVIO PDF'+' '+ cast(@intero+1 as varchar),@desc_invio,'','',3,@intero+1,'','',0),
([C6MartPeriodico].[getTrimestre](GETDATE(),0),@tipo,@postalizzazione,'POSTALIZZAZIONE'+' '+ cast(@intero+1 as varchar),@desc_postalizzazione,'','',3,@intero+1,'','',0)
end
--insert into C6MartPeriodico.tab_semaforo values 
--([C6MartPeriodico].[getTrimestre](GETDATE(),0),@tipo,@trimestrale,'TRIMESTRALE',@desc_trimestrale,'','',3,@intero,'','',0),
--([C6MartPeriodico].[getTrimestre](GETDATE(),0),@tipo,@lotto_zero,'LOTTO 0','','','',3,@intero,'','',0),
--([C6MartPeriodico].[getTrimestre](GETDATE(),0),@tipo,@quadratura,'QUADRATURA',@desc_quadratura,getdate()+1,getdate()+4,3,@intero,'','',0),
--([C6MartPeriodico].[getTrimestre](GETDATE(),0),@tipo,@lotto,'LOTTO'+' '+ cast(@intero+1 as varchar),@desc_lotto,getdate()+5,getdate()+30,3,@intero+1,getdate()+5,getdate()+30,0),
--([C6MartPeriodico].[getTrimestre](GETDATE(),0),@tipo,@congelamento,'CONGELAMENTO DB MK',@desc_congelamento,getdate()+6,getdate()+8,3,@intero+1,'','',0),
--([C6MartPeriodico].[getTrimestre](GETDATE(),0),@tipo,@sm1,'STAGING & MART (FASE 1)'+' '+ cast(@intero+1 as varchar),@desc_sm1,getdate()+6,getdate()+8,3,@intero+1,'','',0),
--([C6MartPeriodico].[getTrimestre](GETDATE(),0),@tipo,@position,'CHIAMATA ALADDIN'+' '+ cast(@intero+1 as varchar),@desc_position,getdate()+9,getdate()+11,3,@intero+1,'','',0),
----([C6MartPeriodico].[getTrimestre](GETDATE(),0),@tipo,@adeguatezza,'ADEGUATEZZA'+' '+ cast(@intero+1 as varchar),'','','',3,@intero+1),
----([C6MartPeriodico].[getTrimestre](GETDATE(),0),@tipo,@post_ade,'POST_ADE'+' '+ cast(@intero+1 as varchar),'','','',3,@intero+1),
--([C6MartPeriodico].[getTrimestre](GETDATE(),0),@tipo,@sm2,'STAGING & MART (FASE 2)'+' '+ cast(@intero+1 as varchar),@desc_sm2,getdate()+12,getdate()+14,3,@intero+1,'','',0),
--([C6MartPeriodico].[getTrimestre](GETDATE(),0),@tipo,@certificazione,'CERTIFICAZIONE',@desc_certificazione,getdate()+13,getdate()+17,3,@intero+1,'','',0),
--([C6MartPeriodico].[getTrimestre](GETDATE(),0),@tipo,@zipping,'ZIPPING'+' '+ cast(@intero+1 as varchar),@desc_zipping,getdate()+18,getdate()+21,3,@intero+1,'','',0),
--([C6MartPeriodico].[getTrimestre](GETDATE(),0),@tipo,@approval,'APPROVAL',@desc_approval,getdate()+23,getdate()+25,3,@intero+1,'','',0),
--([C6MartPeriodico].[getTrimestre](GETDATE(),0),@tipo,@invio,'INVIO PDF'+' '+ cast(@intero+1 as varchar),@desc_invio,getdate()+25,getdate()+27,3,@intero+1,'','',0),
--([C6MartPeriodico].[getTrimestre](GETDATE(),0),@tipo,@postalizzazione,'POSTALIZZAZIONE'+' '+ cast(@intero+1 as varchar),@desc_postalizzazione,getdate()+27,getdate()+30,3,@intero+1,'','',0)
if (@param1='TRIM_START')
begin
if ((select COUNT(*) from C6MartPeriodico.tab_semaforo where milestone='TRIMESTRALE' and  tipo_reportistica=@tipo and flg_stato=1)>0)
begin
truncate table C6MartPeriodico.tab_semaforo 
--;throw 51014,'Presente una trimestrale conclusa, per continuare fai una truncate su questa tabella',0
end
select @intero= COUNT(*) from C6MartPeriodico.tab_semaforo where milestone='TRIMESTRALE' and  tipo_reportistica=@tipo
if(@intero>0)
begin
update C6MartPeriodico.tab_semaforo
set inizio_milestone= case when inizio_milestone like '%1900%' then GETDATE() else inizio_milestone end,
inizio_lotto= case when inizio_lotto like '%1900%' then GETDATE() else inizio_lotto end,
trim_corrente=[C6MartPeriodico].[getTrimestre](GETDATE(),0),
--fine_milestone=GETDATE()+50,
--fine_lotto=GETDATE()+50,
flg_stato=2
where milestone='TRIMESTRALE' and tipo_reportistica=@tipo;
exec C6MartPeriodico.SP_Valorizza_Stati_semaforo_TRIM LOTTO0_START,@tipo
end
--else
--begin
--insert into C6MartPeriodico.tab_semaforo 
--values ([C6MartPeriodico].[getTrimestre](GETDATE(),0),@tipo,'TRIMESTRALE','',GETDATE(),GETDATE()+50,2,@intero)
--end
end
if(@param1='LOTTO0_START')
begin
if((select COUNT(*) from C6MartPeriodico.tab_semaforo where milestone='TRIMESTRALE' and flg_stato=2 and tipo_reportistica=@tipo)<>0)
begin
update C6MartPeriodico.tab_semaforo
set inizio_lotto= case when inizio_lotto like '%1900%' then GETDATE() else inizio_lotto end,
inizio_milestone= case when inizio_milestone like '%1900%' then GETDATE() else inizio_milestone end,
flg_stato=2
--fine_milestone=GETDATE()+4,
--fine_lotto=GETDATE()+4
from C6MartPeriodico.tab_semaforo
where milestone='lotto 0' and tipo_reportistica=@tipo
end
else
begin
;throw 50003,'Nessuna fase di Trimestrale in corso',0
end
end
if(@param1='LOTTO0_END')
begin
if((select COUNT(*) from C6MartPeriodico.tab_semaforo where milestone like '%LOTTO 0%' and flg_stato=2 and tipo_reportistica=@tipo)<>0) 
begin
update C6MartPeriodico.tab_semaforo 
set fine_lotto=GETDATE(),flg_stato=1,
fine_milestone=GETDATE()
from C6MartPeriodico.tab_semaforo
where milestone = 'LOTTO 0' and tipo_reportistica=@tipo
end
else 
begin
;throw 50003,'Nessuna fase di Lotto avviata',0
end
end
--if((select COUNT(*) from C6MartPeriodico.tab_semaforo where milestone='Trimestrale' and tipo_reportistica=@tipo and flg_stato=2)=1)
--begin
--inizio quadratura
if(@param1='QUAD_START')
begin
if((select COUNT(*) from C6MartPeriodico.tab_semaforo where milestone like '%Certificazione%' and flg_stato=1 and tipo_reportistica=@tipo)<>0)
begin
;throw 51012,'Fase di Certificazione già avviata non puoi avviare un altra quadratura',0
end
if ((select COUNT(*) from C6MartPeriodico.tab_semaforo where milestone='trimestrale' and tipo_reportistica=@tipo)=0)
begin
;throw 51000,'NESSUNA FASE DI TRIMESTRALE PRECEDENTE',0
end
select @intero= COUNT(*) from C6MartPeriodico.tab_semaforo where milestone='QUADRATURA' and flg_stato<>1 and  tipo_reportistica=@tipo
if(@intero>0)
begin
update C6MartPeriodico.tab_semaforo
set trim_corrente=[C6MartPeriodico].[getTrimestre](GETDATE(),0),
 inizio_milestone= case when flg_stato<>2 then GETDATE() else inizio_milestone end,
 inizio_lotto=getdate(),
--fine_milestone=GETDATE()+2 ,
flg_stato=2
where milestone='QUADRATURA'
end
--else
--begin
--insert into C6MartPeriodico.tab_semaforo 
--values ([C6MartPeriodico].[getTrimestre](GETDATE(),0),@tipo,@quadratura,'QUADRATURA',@desc_quadratura,GETDATE(),GETDATE()+2,2,@intero,'','',0)
--end
end
-- certificazione start
--if ((select COUNT(*) from C6MartPeriodico.tab_semaforo where milestone='Trimestrale' and tipo_reportistica=@tipo and flg_stato=2)=1 and
--(select COUNT(*) from C6MartPeriodico.tab_semaforo where milestone='Quadratura' and tipo_reportistica=@tipo and flg_stato=2)=1)
--begin
-- certificazione start
if(@param1='CERTIFICAZIONE_START')
begin
if ((select COUNT(*) from C6MartPeriodico.tab_semaforo where milestone='trimestrale' and tipo_reportistica=@tipo)=0)
begin
;throw 51000,'NESSUNA FASE DI TRIMESTRALE PRECEDENTE',0
end
if ((select COUNT(*) from C6MartPeriodico.tab_semaforo where milestone='quadratura' and flg_stato = 2 and tipo_reportistica=@tipo)>0 or 
(select COUNT(*) from C6MartPeriodico.tab_semaforo where milestone='quadratura' and tipo_reportistica=@tipo) =0)
begin
;throw 51001,'NESSUNA FASE DI QUADRATURA PRECEDENTE',0
end
if ((select COUNT(*) from C6MartPeriodico.tab_semaforo where milestone like '%lotto%' and milestone<> 'LOTTO 0' and flg_stato <> 2 and tipo_reportistica=@tipo)>0 or 
(select COUNT(*) from C6MartPeriodico.tab_semaforo where milestone like '%lotto%' and milestone<> 'LOTTO 0' and tipo_reportistica=@tipo) =0)
begin
;throw 51001,'NESSUNA FASE DI LOTTO PRECEDENTE',0
end
select @intero= COUNT(*) from C6MartPeriodico.tab_semaforo where milestone='CERTIFICAZIONE' and  tipo_reportistica=@tipo
if(@intero>0)
--and(select COUNT(*) from C6MartPeriodico.tab_semaforo where milestone='quadratura' and flg_stato = 0 and tipo_reportistica=@tipo)=1)
begin
update C6MartPeriodico.tab_semaforo
set trim_corrente=[C6MartPeriodico].[getTrimestre](GETDATE(),0),
 inizio_milestone= case when flg_stato<>2 then GETDATE() else inizio_milestone end,
 inizio_lotto=getdate(),
--fine_milestone=GETDATE()+2 ,
flg_stato=2,
fase=@intero
where milestone='CERTIFICAZIONE'
end
else 
begin
insert into C6MartPeriodico.tab_semaforo 
values ([C6MartPeriodico].[getTrimestre](GETDATE(),0),@tipo,'10','CERTIFICAZIONE',@desc_certificazione,GETDATE(),GETDATE()+2,2,@intero,'','',0)
end
end
----lotto start
--if ((select COUNT(*) from C6MartPeriodico.tab_semaforo where milestone='Trimestrale' and tipo_reportistica=@tipo and flg_stato=2)=1 and
--(select COUNT(*) from C6MartPeriodico.tab_semaforo where milestone='Quadratura' and tipo_reportistica=@tipo and flg_stato=2)=1 and 
--(select COUNT(*) from C6MartPeriodico.tab_semaforo where milestone='Certificazione' and tipo_reportistica=@tipo and flg_stato=2)=1)
--begin
if(@param1='LOTTO_START')
begin
if((select COUNT(*) from C6MartPeriodico.tab_semaforo where milestone='Quadratura' and tipo_reportistica=@tipo)=0)
begin
;throw 51013,'Non hai avviato una fase precedente al lotto (Trimestrale,Quadratura)',0
end
if((select COUNT(*) from C6MartPeriodico.tab_semaforo where milestone='Quadratura' and flg_stato=2 and tipo_reportistica=@tipo)>0)
begin
;throw 51015,'Fase Quadratura ancora in exec',0
end
select @intero= COUNT(*) from C6MartPeriodico.tab_semaforo where milestone like '%LOTTO%' and milestone<> 'LOTTO 0' and  tipo_reportistica=@tipo 
if(@intero >=0 and (select COUNT(*) from C6MartPeriodico.tab_semaforo where milestone like '%LOTTO%' and milestone<> 'LOTTO 0' and  flg_stato = 1 and tipo_reportistica=@tipo and fase=@intero) >0 )
begin
insert into C6MartPeriodico.tab_semaforo 
values ([C6MartPeriodico].[getTrimestre](GETDATE(),0),@tipo,@lotto,'LOTTO'+' '+ cast(@intero+1 as varchar),@desc_lotto,GETDATE(),'',2,@intero+1,GETDATE(),'',0)
end
else 
if ((select COUNT(*) from C6MartPeriodico.tab_semaforo where milestone like '%lotto%' and milestone<> 'LOTTO 0' and tipo_reportistica=@tipo)>0)
begin 
update C6MartPeriodico.tab_semaforo
set 
inizio_milestone= case when flg_stato<>2 then GETDATE() else inizio_milestone end,
inizio_lotto= getdate(), 
--case when inizio_lotto like '%1900%' then GETDATE() else inizio_lotto end,
flg_stato=2
--fine_milestone=GETDATE()+10,
--fine_lotto=GETDATE()+10
from C6MartPeriodico.tab_semaforo
where milestone='lotto'+' '+cast(@intero as varchar) and tipo_reportistica=@tipo
end
else
begin
;throw 50003,'Lotto ancora in exec',0
end
end
--lotto end
if(@param1='LOTTO_END')
begin
select @intero= COUNT(*) from C6MartPeriodico.tab_semaforo where milestone like '%LOTTO%' and milestone<> 'LOTTO 0' and  tipo_reportistica=@tipo
if(@intero >0 and (select COUNT(*) from C6MartPeriodico.tab_semaforo where milestone like '%LOTTO%' and milestone<> 'LOTTO 0' and  flg_stato = 2 and tipo_reportistica=@tipo) <> 0 and 
(select COUNT(*) from C6MartPeriodico.tab_semaforo where milestone like '%zipping%' and flg_stato=1 and fase=@intero and tipo_reportistica=@tipo)<>0  and
(select COUNT(*) from C6MartPeriodico.tab_semaforo where milestone like '%invio%' and flg_stato=1 and fase=@intero and tipo_reportistica=@tipo)<>0 )
begin
update C6MartPeriodico.tab_semaforo 
set fine_milestone=GETDATE(),
fine_lotto=getdate(),flg_stato=1
from C6MartPeriodico.tab_semaforo
where milestone = 'LOTTO'+' '+ cast(@intero as varchar) and tipo_reportistica=@tipo
end
else
begin
;throw 51004,'Nessuna fase di Lotto oppure fase lotto non conclusa (INVIO)',0
end
end
----zipping start
if(@param1='ZIPPING_START')
begin
select @intero= COUNT(*) from C6MartPeriodico.tab_semaforo where milestone like '%ZIPPING%' and  tipo_reportistica=@tipo
if(@intero >=0 and 
(select COUNT(*) from C6MartPeriodico.tab_semaforo where milestone='LOTTO'+' '+cast(@intero+1 as varchar) and  flg_stato = 2 and tipo_reportistica=@tipo) =1 and 
(select COUNT(*) from C6MartPeriodico.tab_semaforo where milestone like '%zipping%' and flg_stato=2 and tipo_reportistica=@tipo )=0 )
begin
insert into C6MartPeriodico.tab_semaforo 
values ([C6MartPeriodico].[getTrimestre](GETDATE(),0),@tipo,@zipping,'ZIPPING'+' '+ cast(@intero+1 as varchar),@desc_zipping,GETDATE(),GETDATE()+1,2,@intero+1,'','',0)
end
else if ((select COUNT(*) from C6MartPeriodico.tab_semaforo where milestone like '%zipping%' and tipo_reportistica=@tipo)>0)
begin 
update C6MartPeriodico.tab_semaforo
 set inizio_milestone= case when flg_stato<>2 then GETDATE() else inizio_milestone end,
 inizio_lotto=getdate(),
flg_stato=2
--fine_milestone=GETDATE()+1
from C6MartPeriodico.tab_semaforo
where milestone='zipping'+' '+cast(@intero as varchar) and tipo_reportistica=@tipo
end
else
begin
;throw 51005,'Fasi precedenti a zipping non avviati',0
end
end
--zipping end
if(@param1='ZIPPING_END')
begin
select @intero= COUNT(*) from C6MartPeriodico.tab_semaforo where milestone like '%zipping%' and  tipo_reportistica=@tipo
if(@intero >0 and (select COUNT(*) from C6MartPeriodico.tab_semaforo where milestone like '%zipping%' and  flg_stato = 2 and tipo_reportistica=@tipo) <> 0 
--and (select COUNT(*) from C6MartPeriodico.tab_semaforo where milestone like '%invio%' and flg_stato=0 and fase=@intero)<>0
)
begin
update C6MartPeriodico.tab_semaforo 
set fine_milestone=GETDATE(),flg_stato=1
from C6MartPeriodico.tab_semaforo
where milestone = 'zipping'+' '+ cast(@intero as varchar) and tipo_reportistica=@tipo
end
else
begin
;throw 51006,'Nessuna fase di Zipping avviata',0
end
end
--invio start
if(@param1='INVIO_START')
begin
select @intero= COUNT(*) from C6MartPeriodico.tab_semaforo where milestone like '%invio%' and  tipo_reportistica=@tipo
if(@intero >=0 and 
(select COUNT(*) from C6MartPeriodico.tab_semaforo where milestone='LOTTO'+' '+cast(@intero+1 as varchar) and  flg_stato = 2 and tipo_reportistica=@tipo) <>0 and 
(select COUNT(*) from C6MartPeriodico.tab_semaforo where milestone='ZIPPING'+' '+cast(@intero+1 as varchar) and flg_stato=1 and tipo_reportistica=@tipo)<>0 and
--(select COUNT(*) from C6MartPeriodico.tab_semaforo where milestone='APPROVAL'+' '+cast(@intero+1 as varchar) and flg_stato=1 and tipo_reportistica=@tipo)<>0 and
(select COUNT(*) from C6MartPeriodico.tab_semaforo where milestone like '%invio%' and flg_stato=2 and tipo_reportistica=@tipo)=0 )
begin
insert into C6MartPeriodico.tab_semaforo 
values ([C6MartPeriodico].[getTrimestre](GETDATE(),0),@tipo,@invio,'INVIO PDF'+' '+ cast(@intero+1 as varchar),@desc_invio,GETDATE(),GETDATE()+2,2,@intero+1,'','',0)
end
else if ((select COUNT(*) from C6MartPeriodico.tab_semaforo where milestone like '%invio%' and tipo_reportistica=@tipo)>0)
begin 
update C6MartPeriodico.tab_semaforo
set  inizio_milestone= case when flg_stato<>2 then GETDATE() else inizio_milestone end,
 inizio_lotto=getdate(),
flg_stato=2
--fine_milestone=GETDATE()+1
from C6MartPeriodico.tab_semaforo
where milestone='invio pdf'+' '+cast(@intero as varchar) and tipo_reportistica=@tipo
end
else
begin
;throw 51007,'Fase precedente ancora in exec o non avviata',0
end
end
--invio end
if(@param1='INVIO_END')
begin
select @intero= COUNT(*) from C6MartPeriodico.tab_semaforo where milestone like '%invio%' and  tipo_reportistica=@tipo
if(@intero >0 and (select COUNT(*) from C6MartPeriodico.tab_semaforo where milestone like '%invio%' and  flg_stato = 2 and tipo_reportistica=@tipo) <> 0)
begin
update C6MartPeriodico.tab_semaforo 
set fine_milestone=GETDATE(),flg_stato=1
from C6MartPeriodico.tab_semaforo
where milestone = 'INVIO pdf'+' '+ cast(@intero as varchar) and tipo_reportistica=@tipo
end
else
begin
;throw 51008,'Nessuna fase di invio',0
end
end
--end --if controllo certificazione
--else 
--begin 
--throw('NESSUNA CERTIFICAZIONE AVVIATA 2 CONTROLLO')
--end
--end --if controllo quadratura
--else 
--begin
--if((select COUNT(*) from C6MartPeriodico.tab_semaforo where milestone='TRIMESTRALE' and flg_stato=2)=0)
--throw('NESSUNA QUADRATURA AVVIATA 2 CONTROLLO')
--end
--end --if controllo trimestrale
--else
--begin
--throw('NESSUNA TRIMESTRALE AVVIATA 2 CONTROLLO')
--end
-- approval inizio
if(@param1='APPROVAL_START')
begin
select @intero= COUNT(*) from C6MartPeriodico.tab_semaforo where milestone like '%invio%' and  tipo_reportistica=@tipo
if(@intero >=0 and 
(select COUNT(*) from C6MartPeriodico.tab_semaforo where milestone='LOTTO'+' '+'1' and  flg_stato = 2 and tipo_reportistica=@tipo) =1 and 
(select COUNT(*) from C6MartPeriodico.tab_semaforo where milestone='ZIPPING'+' '+'1' and flg_stato=1 and tipo_reportistica=@tipo)=1 and
(select COUNT(*) from C6MartPeriodico.tab_semaforo where milestone like '%approval%' and flg_stato=2 and tipo_reportistica=@tipo)=0 )
begin
--insert into C6MartPeriodico.tab_semaforo 
--values ([C6MartPeriodico].[getTrimestre](GETDATE(),0),@tipo,@approval,'APPROVAL',@desc_approval,GETDATE(),GETDATE()+2,2,@intero+1,'','',0)
--end
--else if ((select COUNT(*) from C6MartPeriodico.tab_semaforo where milestone like '%APPROVAL%' and tipo_reportistica=@tipo)>0)
--begin 
update C6MartPeriodico.tab_semaforo
set   inizio_milestone= case when flg_stato<>2 then GETDATE() else inizio_milestone end,
 inizio_lotto=getdate(),
flg_stato=2--fine_milestone=GETDATE()+1
from C6MartPeriodico.tab_semaforo
where milestone='APPROVAL' and tipo_reportistica=@tipo
end
else
begin
;throw 51007,'Fase precedente ancora in exec o non avviata',0
end
end
--approval end
if(@param1='APPROVAL_END')
begin
select @intero= COUNT(*) from C6MartPeriodico.tab_semaforo where milestone like '%approval%' and  tipo_reportistica=@tipo
if(@intero >0 and (select COUNT(*) from C6MartPeriodico.tab_semaforo where milestone like '%approval%' and  flg_stato = 2 and tipo_reportistica=@tipo) <> 0)
begin
update C6MartPeriodico.tab_semaforo 
set fine_milestone=GETDATE(),flg_stato=1
from C6MartPeriodico.tab_semaforo
where milestone = 'APPROVAL' and tipo_reportistica=@tipo
end
else
begin
;throw 51008,'Nessuna fase di APPROVAL',0
end
end
--fine_trimestre
if (@param1='TRIM_END')
begin
if ((select COUNT(*) from C6MartPeriodico.tab_semaforo where milestone like '%Lotto%' and milestone<> 'LOTTO 0' and flg_stato=2 and tipo_reportistica=@tipo)<>0)
begin
;throw 51002,'Lotto ancora in Corso',0
end
select @intero= COUNT(*) from C6MartPeriodico.tab_semaforo where milestone='TRIMESTRALE' and  tipo_reportistica=@tipo
if(@intero>0 and (select flg_stato from C6MartPeriodico.tab_semaforo where milestone='TRIMESTRALE' and  tipo_reportistica=@tipo) <>0 and 
(select COUNT (*) from C6MartPeriodico.tab_semaforo where milestone like '%lotto%' and milestone<> 'LOTTO 0'  and  flg_stato=1) <> 0)
begin
update C6MartPeriodico.tab_semaforo
set fine_milestone=GETDATE(),flg_stato=1
from C6MartPeriodico.tab_semaforo
where milestone='TRIMESTRALE' and tipo_reportistica=@tipo
end
else
begin
;throw 51009,'Nessuna trimestrale avviata oppure fase di Lotto non avviata/conclusa',0
end
end
--fine quadratura
if(@param1='QUAD_END')
begin
select @intero= COUNT(*) from C6MartPeriodico.tab_semaforo where milestone='QUADRATURA' and  tipo_reportistica=@tipo
if(@intero>0 and (select flg_stato from C6MartPeriodico.tab_semaforo where milestone='QUADRATURA' and  tipo_reportistica=@tipo) <>0)
begin
update C6MartPeriodico.tab_semaforo
set fine_milestone=GETDATE(),flg_stato=1
from C6MartPeriodico.tab_semaforo
where milestone='QUADRATURA' and tipo_reportistica=@tipo;
exec C6MartPeriodico.SP_Valorizza_Stati_semaforo_TRIM LOTTO0_end,@tipo
end
else
begin
;throw 51010,'Nessuna quadratura',0
end
end
--certificazione end
if(@param1='CERTIFICAZIONE_END')
begin
select @intero= COUNT(*) from C6MartPeriodico.tab_semaforo where milestone='CERTIFICAZIONE' and  tipo_reportistica=@tipo
if(@intero>0 and (select flg_stato from C6MartPeriodico.tab_semaforo where milestone='CERTIFICAZIONE' and  tipo_reportistica=@tipo) <>0)
begin
update C6MartPeriodico.tab_semaforo
set fine_milestone=GETDATE(),flg_stato=1
from C6MartPeriodico.tab_semaforo
where milestone='CERTIFICAZIONE' and tipo_reportistica=@tipo
end
else
begin
;throw 51011,'Nessuna Certificazione avviata',0
end
end
if(@param1='CONGELAMENTO_START')
begin
select @intero= COUNT(*) from C6MartPeriodico.tab_semaforo where milestone like '%congelamento%' and  tipo_reportistica=@tipo
if(@intero >=0 and 
(select COUNT(*) from C6MartPeriodico.tab_semaforo where milestone='LOTTO'+' '+cast(@intero+1 as varchar) and  flg_stato = 2 and tipo_reportistica=@tipo) =1 and 
(select COUNT(*) from C6MartPeriodico.tab_semaforo where milestone like '%congelamento%' and flg_stato=2 and tipo_reportistica=@tipo )=0 )
begin
insert into C6MartPeriodico.tab_semaforo 
values ([C6MartPeriodico].[getTrimestre](GETDATE(),0),@tipo,@congelamento,'CONGELAMENTO DB MK',@desc_congelamento,GETDATE(),GETDATE()+1,2,@intero+1,'','',0)
end
else if ((select COUNT(*) from C6MartPeriodico.tab_semaforo where milestone like '%CONGELAMENTO%' and tipo_reportistica=@tipo)>0)
begin 
update C6MartPeriodico.tab_semaforo
set 
 inizio_milestone= case when flg_stato<>2 then GETDATE() else inizio_milestone end,
 inizio_lotto=getdate(),
 --fine_lotto=getdate()+1,
flg_stato=2
--fine_milestone=GETDATE()+1
from C6MartPeriodico.tab_semaforo
where milestone='CONGELAMENTO DB MK' and tipo_reportistica=@tipo
end
else
begin
;throw 51005,'Fasi precedenti a congelamento non avviati',0
end
end
if(@param1='CONGELAMENTO_END')
begin
select @intero= COUNT(*) from C6MartPeriodico.tab_semaforo where milestone like '%CONGELAMENTO%' and  tipo_reportistica=@tipo
if(@intero >0 and (select COUNT(*) from C6MartPeriodico.tab_semaforo where milestone like '%CONGELAMENTO%' and  flg_stato = 2 and tipo_reportistica=@tipo) <> 0 
--and (select COUNT(*) from C6MartPeriodico.tab_semaforo where milestone like '%invio%' and flg_stato=0 and fase=@intero)<>0
)
begin
update C6MartPeriodico.tab_semaforo 
set fine_milestone=GETDATE(),flg_stato=1
from C6MartPeriodico.tab_semaforo
where milestone = 'CONGELAMENTO DB MK' and tipo_reportistica=@tipo
end
else
begin
;throw 51006,'Nessuna fase di Congelamento avviata',0
end
end
if(@param1='SM1_START')
begin
select @intero= COUNT(*) from C6MartPeriodico.tab_semaforo where milestone like '%STAGING & MART (FASE 1)%' and  tipo_reportistica=@tipo
if(@intero >=0 and 
(select COUNT(*) from C6MartPeriodico.tab_semaforo where milestone='LOTTO'+' '+cast(@intero+1 as varchar) and  flg_stato = 2 and tipo_reportistica=@tipo) =1 and 
(select COUNT(*) from C6MartPeriodico.tab_semaforo where milestone='CONGELAMENTO DB MK' and  flg_stato = 1 and tipo_reportistica=@tipo) =1 and 
(select COUNT(*) from C6MartPeriodico.tab_semaforo where milestone like '%STAGING & MART (FASE 1)%' and flg_stato=2 and tipo_reportistica=@tipo )=0 )
begin
insert into C6MartPeriodico.tab_semaforo 
values ([C6MartPeriodico].[getTrimestre](GETDATE(),0),@tipo,@sm1,'STAGING & MART (FASE 1)'+' '+ cast(@intero+1 as varchar),@desc_sm1,GETDATE(),'',2,@intero+1,'','',0)
end
else if ((select COUNT(*) from C6MartPeriodico.tab_semaforo where milestone like '%STAGING & MART (FASE 1)%' and tipo_reportistica=@tipo)>0)
begin 
update C6MartPeriodico.tab_semaforo
set 
 inizio_milestone= case when flg_stato<>2 then GETDATE() else inizio_milestone end,
 inizio_lotto=getdate(),
flg_stato=2
--fine_milestone=GETDATE()+1
from C6MartPeriodico.tab_semaforo
where milestone='STAGING & MART (FASE 1)'+' '+cast(@intero as varchar) and tipo_reportistica=@tipo
end
else
begin
;throw 51005,'Fasi precedenti a SM non avviati',0
end
end
--zipping end
if(@param1='SM1_END')
begin
select @intero= COUNT(*) from C6MartPeriodico.tab_semaforo where milestone like '%STAGING & MART (FASE 1)%' and  tipo_reportistica=@tipo
if(@intero >0 and (select COUNT(*) from C6MartPeriodico.tab_semaforo where milestone like '%STAGING & MART (FASE 1)%' and  flg_stato = 2 and tipo_reportistica=@tipo) <> 0 
--and (select COUNT(*) from C6MartPeriodico.tab_semaforo where milestone like '%invio%' and flg_stato=0 and fase=@intero)<>0
)
begin
update C6MartPeriodico.tab_semaforo 
set fine_milestone=GETDATE(),flg_stato=1
from C6MartPeriodico.tab_semaforo
where milestone = 'STAGING & MART (FASE 1)'+' '+ cast(@intero as varchar) and tipo_reportistica=@tipo
end
else
begin
;throw 51006,'Nessuna fase di SM avviata',0
end
end
if(@param1='POSITION_START')
begin
select @intero= COUNT(*) from C6MartPeriodico.tab_semaforo where milestone like '%CHIAMATA ALADDIN%' and  tipo_reportistica=@tipo
if(@intero >=0 and 
(select COUNT(*) from C6MartPeriodico.tab_semaforo where milestone='LOTTO'+' '+cast(@intero+1 as varchar) and  flg_stato = 2 and tipo_reportistica=@tipo) =1 and 
--(select COUNT(*) from C6MartPeriodico.tab_semaforo where milestone='CONGELAMENTO' and  flg_stato = 1 and tipo_reportistica=@tipo) =1 and 
(select COUNT(*) from C6MartPeriodico.tab_semaforo where milestone like '%STAGING & MART (FASE 1)%' and  flg_stato = 1 and tipo_reportistica=@tipo) <>0 and 
(select COUNT(*) from C6MartPeriodico.tab_semaforo where milestone like '%CHIAMATA ALADDIN%' and flg_stato=2 and tipo_reportistica=@tipo )=0 )
begin
insert into C6MartPeriodico.tab_semaforo 
values ([C6MartPeriodico].[getTrimestre](GETDATE(),0),@tipo,@position,'CHIAMATA ALADDIN'+' '+ cast(@intero+1 as varchar),@desc_position,GETDATE(),'',2,@intero+1,'','',0)
end
else if ((select COUNT(*) from C6MartPeriodico.tab_semaforo where milestone like '%CHIAMATA ALADDIN%' and tipo_reportistica=@tipo)>0)
begin 
update C6MartPeriodico.tab_semaforo
set 
 inizio_milestone= case when flg_stato<>2 then GETDATE() else inizio_milestone end,
 inizio_lotto=getdate(),
flg_stato=2
--fine_milestone=GETDATE()+1
from C6MartPeriodico.tab_semaforo
where milestone='CHIAMATA ALADDIN'+' '+cast(@intero as varchar) and tipo_reportistica=@tipo
end
else
begin
;throw 51005,'Fasi precedenti a CHIAMATA ALADDIN non avviati',0
end
end
--zipping end
if(@param1='POSITION_END')
begin
select @intero= COUNT(*) from C6MartPeriodico.tab_semaforo where milestone like '%CHIAMATA ALADDIN%' and  tipo_reportistica=@tipo
if(@intero >0 and (select COUNT(*) from C6MartPeriodico.tab_semaforo where milestone like '%CHIAMATA ALADDIN%' and  flg_stato = 2 and tipo_reportistica=@tipo) <> 0 
--and (select COUNT(*) from C6MartPeriodico.tab_semaforo where milestone like '%invio%' and flg_stato=0 and fase=@intero)<>0
)
begin
update C6MartPeriodico.tab_semaforo 
set fine_milestone=GETDATE(),flg_stato=1
from C6MartPeriodico.tab_semaforo
where milestone = 'CHIAMATA ALADDIN'+' '+ cast(@intero as varchar) and tipo_reportistica=@tipo
end
else
begin
;throw 51006,'Nessuna fase di CHIAMATA ALADDIN avviata',0
end
end
--if(@param1='ADEGUATEZZA_START')
--begin
--select @intero= COUNT(*) from C6MartPeriodico.tab_semaforo where milestone like '%ADEGUATEZZA%' and  tipo_reportistica=@tipo
--if(@intero >=0 and 
--(select COUNT(*) from C6MartPeriodico.tab_semaforo where milestone='LOTTO'+' '+cast(@intero+1 as varchar) and  flg_stato = 2 and tipo_reportistica=@tipo) =1 and 
--(select COUNT(*) from C6MartPeriodico.tab_semaforo where milestone='CONGELAMENTO' and  flg_stato = 2 and tipo_reportistica=@tipo) =1 and 
--(select COUNT(*) from C6MartPeriodico.tab_semaforo where milestone='STAGING & MART (FASE 1)' and  flg_stato = 2 and tipo_reportistica=@tipo) =1 and 
--(select COUNT(*) from C6MartPeriodico.tab_semaforo where milestone='POSITION' and  flg_stato = 2 and tipo_reportistica=@tipo) =1 and 
--(select COUNT(*) from C6MartPeriodico.tab_semaforo where milestone like '%ADEGUATEZZA%' and flg_stato=2 and tipo_reportistica=@tipo )=0 )
--begin
--insert into C6MartPeriodico.tab_semaforo 
--values ([C6MartPeriodico].[getTrimestre](GETDATE(),0),@tipo,@adeguatezza,'ADEGUATEZZA'+' '+ cast(@intero+1 as varchar),'',GETDATE(),GETDATE()+1,2,@intero+1)
--end
--else if ((select COUNT(*) from C6MartPeriodico.tab_semaforo where milestone like '%ADEGUATEZZA%' and tipo_reportistica=@tipo)>0)
--begin 
--update C6MartPeriodico.tab_semaforo
--set 
--inizio_milestone= case when inizio_milestone like '%1900%' then GETDATE() else inizio_milestone end,
--flg_stato=2,
--fine_milestone=GETDATE()+1
--from C6MartPeriodico.tab_semaforo
--where milestone='ADEGUATEZZA'+' '+cast(@intero as varchar) and tipo_reportistica=@tipo
--end
--else
--begin
--;throw 51005,'Fasi precedenti a ADEGUATEZZA non avviati',0
--end
--end
--zipping end
--if(@param1='ADEGUATEZZA_END')
--begin
--select @intero= COUNT(*) from C6MartPeriodico.tab_semaforo where milestone like '%ADEGUATEZZA%' and  tipo_reportistica=@tipo
--if(@intero >0 and (select COUNT(*) from C6MartPeriodico.tab_semaforo where milestone like '%ADEGUATEZZA%' and  flg_stato = 2 and tipo_reportistica=@tipo) <> 0 
----and (select COUNT(*) from C6MartPeriodico.tab_semaforo where milestone like '%invio%' and flg_stato=0 and fase=@intero)<>0
--)
--begin
--update C6MartPeriodico.tab_semaforo 
--set fine_milestone=GETDATE(),flg_stato=1
--from C6MartPeriodico.tab_semaforo
--where milestone = 'ADEGUATEZZA'+' '+ cast(@intero as varchar) and tipo_reportistica=@tipo
--end
--else
--begin
--;throw 51006,'Nessuna fase di ADEGUATEZZA avviata',0
--end
--end
--if(@param1='POST_ADE_START')
--begin
--select @intero= COUNT(*) from C6MartPeriodico.tab_semaforo where milestone like '%POST_ADE%' and  tipo_reportistica=@tipo
--if(@intero >=0 and 
--(select COUNT(*) from C6MartPeriodico.tab_semaforo where milestone='LOTTO'+' '+cast(@intero+1 as varchar) and  flg_stato = 2 and tipo_reportistica=@tipo) =1 and 
--(select COUNT(*) from C6MartPeriodico.tab_semaforo where milestone='CONGELAMENTO' and  flg_stato = 2 and tipo_reportistica=@tipo) =1 and 
--(select COUNT(*) from C6MartPeriodico.tab_semaforo where milestone='STAGING & MART (FASE 1)' and  flg_stato = 2 and tipo_reportistica=@tipo) =1 and 
--(select COUNT(*) from C6MartPeriodico.tab_semaforo where milestone='POSITION' and  flg_stato = 2 and tipo_reportistica=@tipo) =1 and 
--(select COUNT(*) from C6MartPeriodico.tab_semaforo where milestone='ADEGUATEZZA' and  flg_stato = 2 and tipo_reportistica=@tipo) =1 and 
--(select COUNT(*) from C6MartPeriodico.tab_semaforo where milestone like '%POST_ADE%' and flg_stato=2 and tipo_reportistica=@tipo )=0 )
--begin
--insert into C6MartPeriodico.tab_semaforo 
--values ([C6MartPeriodico].[getTrimestre](GETDATE(),0),@tipo,@post_ade,'POST_ADE'+' '+ cast(@intero+1 as varchar),'',GETDATE(),GETDATE()+1,2,@intero+1)
--end
--else if ((select COUNT(*) from C6MartPeriodico.tab_semaforo where milestone like '%POST_ADE%' and tipo_reportistica=@tipo)>0 )
----and (select COUNT(*) from C6MartPeriodico.tab_semaforo where milestone='ADEGUATEZZA' and  flg_stato = 1 and tipo_reportistica=@tipo) =1  )
--begin 
--update C6MartPeriodico.tab_semaforo
--set 
--inizio_milestone= case when inizio_milestone like '%1900%' then GETDATE() else inizio_milestone end,
--flg_stato=2,
--fine_milestone=GETDATE()+1
--from C6MartPeriodico.tab_semaforo
--where milestone='POST_ADE'+' '+cast(@intero as varchar) and tipo_reportistica=@tipo
--end
--else
--begin
--;throw 51005,'Fasi precedenti a POST_ADEGUATEZZA non avviati',0
--end
--end
----zipping end
--if(@param1='POST_ADE_END')
--begin
--select @intero= COUNT(*) from C6MartPeriodico.tab_semaforo where milestone like '%POST_ADE%' and  tipo_reportistica=@tipo
--if(@intero >0 and (select COUNT(*) from C6MartPeriodico.tab_semaforo where milestone like '%POST_ADE%' and  flg_stato = 2 and tipo_reportistica=@tipo) <> 0 
----and (select COUNT(*) from C6MartPeriodico.tab_semaforo where milestone like '%invio%' and flg_stato=0 and fase=@intero)<>0
--)
--begin
--update C6MartPeriodico.tab_semaforo 
--set fine_milestone=GETDATE(),flg_stato=1
--from C6MartPeriodico.tab_semaforo
--where milestone = 'POST_ADE'+' '+ cast(@intero as varchar) and tipo_reportistica=@tipo
--end
--else
--begin
--;throw 51006,'Nessuna fase di POST_ADEGUATEZZA avviata',0
--end
--end
if(@param1='SM2_START')
begin
select @intero= COUNT(*) from C6MartPeriodico.tab_semaforo where milestone like '%STAGING & MART (FASE 2)%' and  tipo_reportistica=@tipo
if(@intero >=0 and 
(select COUNT(*) from C6MartPeriodico.tab_semaforo where milestone='LOTTO'+' '+cast(@intero+1 as varchar) and  flg_stato = 2 and tipo_reportistica=@tipo) =1 and 
--(select COUNT(*) from C6MartPeriodico.tab_semaforo where milestone='CONGELAMENTO DB MK' and  flg_stato = 1 and tipo_reportistica=@tipo) =1 and 
--(select COUNT(*) from C6MartPeriodico.tab_semaforo where milestone like '%STAGING & MART (FASE 1)%' and  flg_stato = 2 and tipo_reportistica=@tipo) =0 and 
--(select COUNT(*) from C6MartPeriodico.tab_semaforo where milestone like '%CHIAMATA ALADDIN%' and  flg_stato = 2 and tipo_reportistica=@tipo) =0 and 
--(select COUNT(*) from C6MartPeriodico.tab_semaforo where milestone='ADEGUATEZZA' and  flg_stato = 2 and tipo_reportistica=@tipo) =1 and 
--(select COUNT(*) from C6MartPeriodico.tab_semaforo where milestone='POST_ADE' and  flg_stato = 2 and tipo_reportistica=@tipo) =1 and 
(select COUNT(*) from C6MartPeriodico.tab_semaforo where milestone like '%STAGING & MART (FASE 2)%' and flg_stato=2 and tipo_reportistica=@tipo )=0 )
begin
insert into C6MartPeriodico.tab_semaforo 
values ([C6MartPeriodico].[getTrimestre](GETDATE(),0),@tipo,@sm2,'STAGING & MART (FASE 2)'+' '+ cast(@intero+1 as varchar),@desc_sm2,GETDATE(),'',2,@intero+1,'','',0)
end
else if ((select COUNT(*) from C6MartPeriodico.tab_semaforo where milestone like '%STAGING & MART (FASE 2)%' and tipo_reportistica=@tipo)>0)
begin 
update C6MartPeriodico.tab_semaforo
set 
 inizio_milestone= case when flg_stato<>2 then GETDATE() else inizio_milestone end,
 inizio_lotto=getdate(),
flg_stato=2
--fine_milestone=GETDATE()+1
from C6MartPeriodico.tab_semaforo
where milestone='STAGING & MART (FASE 2)'+' '+cast(@intero as varchar) and tipo_reportistica=@tipo
end
else
begin
;throw 51005,'Fasi precedenti a STAGING & MART 2 non avviati',0
end
end
--zipping end
if(@param1='SM2_END')
begin
select @intero= COUNT(*) from C6MartPeriodico.tab_semaforo where milestone like '%STAGING & MART (FASE 2)%' and  tipo_reportistica=@tipo
if(@intero >0 and (select COUNT(*) from C6MartPeriodico.tab_semaforo where milestone like '%STAGING & MART (FASE 2)%' and  flg_stato = 2 and tipo_reportistica=@tipo) <> 0 
--and (select COUNT(*) from C6MartPeriodico.tab_semaforo where milestone like '%invio%' and flg_stato=0 and fase=@intero)<>0
)
begin
update C6MartPeriodico.tab_semaforo 
set fine_milestone=GETDATE(),flg_stato=1
from C6MartPeriodico.tab_semaforo
where milestone = 'STAGING & MART (FASE 2)'+' '+ cast(@intero as varchar) and tipo_reportistica=@tipo
end
else
begin
;throw 51006,'Nessuna fase di STAGING & MART 2 avviata',0
end
END
--if(@param1='START')
--BEGIN
--update C6MartPeriodico.tab_semaforo
--set inizio_milestone= case when inizio_milestone like '%1900%' then GETDATE() else inizio_milestone end,
--flg_stato=2,
--fine_milestone=GETDATE()+1
--from C6MartPeriodico.tab_semaforo
--where milestone LIKE '%POSTALIZZAZIONE%' 
----'POSTALIZZAZIONE'+' '+cast(@intero as varchar) and tipo_reportistica=@tipo
--end
if(@param1='P_START')
begin
select @intero= COUNT(*) from C6MartPeriodico.tab_semaforo where milestone like '%POSTALIZZAZIONE%' and  tipo_reportistica=@tipo
if(@intero >=0 and 
--(select COUNT(*) from C6MartPeriodico.tab_semaforo where milestone='LOTTO'+' '+cast(@intero+1 as varchar) and  flg_stato = 2 and tipo_reportistica=@tipo) =1 and 
--(select COUNT(*) from C6MartPeriodico.tab_semaforo where milestone='ZIPPING'+' '+cast(@intero+1 as varchar) and flg_stato=1 and tipo_reportistica=@tipo)=1 and
--(select COUNT(*) from C6MartPeriodico.tab_semaforo where milestone='APPROVAL'+' '+cast(@intero+1 as varchar) and flg_stato=2 and tipo_reportistica=@tipo)=1 and
--(select COUNT(*) from C6MartPeriodico.tab_semaforo where milestone='INVIO pdf'+' '+cast(@intero+1 as varchar) and flg_stato=1 and tipo_reportistica=@tipo)=1 and
(select COUNT(*) from C6MartPeriodico.tab_semaforo where milestone like '%POSTALIZZAZIONE%' and flg_stato=2 and tipo_reportistica=@tipo)=0 )
begin
insert into C6MartPeriodico.tab_semaforo 
values ([C6MartPeriodico].[getTrimestre](GETDATE(),0),@tipo,@postalizzazione,'POSTALIZZAZIONE'+' '+ cast(@intero+1 as varchar),@desc_postalizzazione,GETDATE(),'',2,@intero+1,'','',0)
end
else if ((select COUNT(*) from C6MartPeriodico.tab_semaforo where milestone like '%POSTALIZZAZIONE%' and tipo_reportistica=@tipo)>0)
begin 
update C6MartPeriodico.tab_semaforo
set 
 inizio_milestone= case when inizio_lotto like '%1900%' then GETDATE() else inizio_milestone end,
 inizio_lotto=getdate(),
flg_stato=2,
fine_milestone=GETDATE()+1
from C6MartPeriodico.tab_semaforo
where milestone='POSTALIZZAZIONE'+' '+cast(@intero as varchar) and tipo_reportistica=@tipo
end
else
begin
;throw 51007,'Fase precedente a POSTALIZZAZIONE ancora in exec o non avviata',0
end
end
--invio end
if(@param1='P_END')
begin
select @intero= COUNT(*) from C6MartPeriodico.tab_semaforo where milestone like '%POSTALIZZAZIONE%' and  tipo_reportistica=@tipo
if(@intero >0 and (select COUNT(*) from C6MartPeriodico.tab_semaforo where milestone like '%POSTALIZZAZIONE%' and  flg_stato = 2 and tipo_reportistica=@tipo) <> 0)
begin
update C6MartPeriodico.tab_semaforo 
set fine_milestone=GETDATE(),flg_stato=1
from C6MartPeriodico.tab_semaforo
where milestone = 'POSTALIZZAZIONE'+' '+ cast(@intero as varchar) and tipo_reportistica=@tipo
end
else
begin
;throw 51008,'Nessuna fase di POSTALIZZAZIONE',0
end
update C6MartPeriodico.tab_semaforo 
set fine_lotto=GETDATE(),flg_stato=1
from C6MartPeriodico.tab_semaforo
where milestone = 'LOTTO'+' '+ cast(@intero as varchar) and tipo_reportistica=@tipo
end
----truncate table C6MartPeriodico.tab_semaforo 
--select * from C6MartPeriodico.tab_semaforo order by inizio_milestone desc
--C6MartPeriodico.SP_Valorizza_Stati_semaforo_TRIM trim_start,SEI
--C6MartPeriodico.SP_Valorizza_Stati_semaforo_TRIM trim_end,SEI
--C6MartPeriodico.SP_Valorizza_Stati_semaforo_TRIM quad_start,SEI
--C6MartPeriodico.SP_Valorizza_Stati_semaforo_TRIM quad_end,SEI
--C6MartPeriodico.SP_Valorizza_Stati_semaforo_TRIM lotto_start,SEI
--C6MartPeriodico.SP_Valorizza_Stati_semaforo_TRIM congelamento_start,SEI
--C6MartPeriodico.SP_Valorizza_Stati_semaforo_TRIM congelamento_end,SEI
--C6MartPeriodico.SP_Valorizza_Stati_semaforo_TRIM sm1_start,SEI
--C6MartPeriodico.SP_Valorizza_Stati_semaforo_TRIM sm1_end,SEI
--C6MartPeriodico.SP_Valorizza_Stati_semaforo_TRIM position_start,SEI
--C6MartPeriodico.SP_Valorizza_Stati_semaforo_TRIM position_end,SEI
--C6MartPeriodico.SP_Valorizza_Stati_semaforo_TRIM adeguatezza_start,SEI
--C6MartPeriodico.SP_Valorizza_Stati_semaforo_TRIM adeguatezza_end,SEI
--C6MartPeriodico.SP_Valorizza_Stati_semaforo_TRIM post_ade_start,SEI
--C6MartPeriodico.SP_Valorizza_Stati_semaforo_TRIM post_ade_end,SEI
--C6MartPeriodico.SP_Valorizza_Stati_semaforo_TRIM sm2_start,SEI
--C6MartPeriodico.SP_Valorizza_Stati_semaforo_TRIM sm2_end,SEI
--C6MartPeriodico.SP_Valorizza_Stati_semaforo_TRIM certificazione_start,SEI
--C6MartPeriodico.SP_Valorizza_Stati_semaforo_TRIM certificazione_end,SEI
--C6MartPeriodico.SP_Valorizza_Stati_semaforo_TRIM zipping_start,SEI
--C6MartPeriodico.SP_Valorizza_Stati_semaforo_TRIM zipping_end,SEI
--C6MartPeriodico.SP_Valorizza_Stati_semaforo_TRIM approval_start,SEI
--C6MartPeriodico.SP_Valorizza_Stati_semaforo_TRIM approval_end,SEI
--C6MartPeriodico.SP_Valorizza_Stati_semaforo_TRIM invio_start,SEI
--C6MartPeriodico.SP_Valorizza_Stati_semaforo_TRIM invio_end,SEI
--C6MartPeriodico.SP_Valorizza_Stati_semaforo_TRIM lotto_end,SEI
--C6MartPeriodico.SP_Valorizza_Stati_semaforo_TRIM p_START,SEI
--C6MartPeriodico.SP_Valorizza_Stati_semaforo_TRIM p_end,SEI
--fase
--delete from C6MartPeriodico.tab_semaforo  where milestone='LOTTO 2'
--select * from C6MartPeriodico.tab_semaforo order by inizio_milestone desc
--C6MartPeriodico.SP_Valorizza_Stati_semaforo_TRIM trim_start,SEI
--C6MartPeriodico.SP_Valorizza_Stati_semaforo_TRIM quad_start,SEI
--C6MartPeriodico.SP_Valorizza_Stati_semaforo_TRIM quad_end,SEI
--C6MartPeriodico.SP_Valorizza_Stati_semaforo_TRIM lotto_start,SEI
--C6MartPeriodico.SP_Valorizza_Stati_semaforo_TRIM certificazione_start,SEI
--C6MartPeriodico.SP_Valorizza_Stati_semaforo_TRIM certificazione_end,SEI
--C6MartPeriodico.SP_Valorizza_Stati_semaforo_TRIM zipping_start,SEI
--C6MartPeriodico.SP_Valorizza_Stati_semaforo_TRIM zipping_end,SEI
--C6MartPeriodico.SP_Valorizza_Stati_semaforo_TRIM invio_start,SEI
--C6MartPeriodico.SP_Valorizza_Stati_semaforo_TRIM invio_end,SEI
--C6MartPeriodico.SP_Valorizza_Stati_semaforo_TRIM lotto_end,SEI
----truncate table C6MartPeriodico.tab_semaforo
--select * from C6MartPeriodico.tab_semaforo order by inizio_milestone desc
--C6MartPeriodico.SP_Valorizza_Stati_semaforo_TRIM trim_start,IMM
--C6MartPeriodico.SP_Valorizza_Stati_semaforo_TRIM trim_end,IMM
--C6MartPeriodico.SP_Valorizza_Stati_semaforo_TRIM quad_start,IMM
--C6MartPeriodico.SP_Valorizza_Stati_semaforo_TRIM quad_end,IMM
--C6MartPeriodico.SP_Valorizza_Stati_semaforo_TRIM certificazione_start,IMM
--C6MartPeriodico.SP_Valorizza_Stati_semaforo_TRIM certificazione_end,IMM
--C6MartPeriodico.SP_Valorizza_Stati_semaforo_TRIM lotto_start,IMM
--C6MartPeriodico.SP_Valorizza_Stati_semaforo_TRIM lotto_end,IMM
--C6MartPeriodico.SP_Valorizza_Stati_semaforo_TRIM zipping_start,IMM
--C6MartPeriodico.SP_Valorizza_Stati_semaforo_TRIM zipping_end,IMM
--C6MartPeriodico.SP_Valorizza_Stati_semaforo_TRIM invio_start,IMM
--C6MartPeriodico.SP_Valorizza_Stati_semaforo_TRIM invio_end,IMM
end