-- Stored procedure
-- =============================================
-- Author:		<Author,,Name>
-- Create date: <Create Date,,>
-- Description:	<Description,,>
-- =============================================
CREATE procedure [C6MartPeriodico].[GESTIONE_INSERT_PDF_FTP_04082015] 
	@Rete char(1), 
	@CodiceFiscale varchar(16),
	@IDReport int,
	@NomeFile varchar(50),
	@TipoReport varchar(1),
	@NumeroPagine int,
	@RFA decimal(18,2) = 0,
	@CodiceContratto   varchar(11)
AS  
BEGIN
		DECLARE @ID_ELAB INT
		SET @ID_ELAB = C6Martperiodico.GETIDELAB()
BEGIN TRY
        DELETE C6MartPeriodico.GESTIONE_PDF_FTP WHERE 
        rete=@Rete and  codicefiscale=@CodiceFiscale
        and TipoReport = @TipoReport
        --IDReport = @IDReport
		insert into C6MartPeriodico.GESTIONE_PDF_FTP
		(
			Rete,
			CodiceFiscale,
			IDReport,
			DataGenerazione,
			DataInvio,
			FlagInvio,
			NomeFile,
			TipoReport,
			numeroPagine,
			RFA,
			id_Fk_zip,
			ID_ELAB,
			Definitivo,
			codicecontratto
		)
		values
		(
			@Rete,
			@CodiceFiscale,
			@IDReport,
			Getdate(),
			null,
			'N',
			@NomeFile,
			@TipoReport,
			@NumeroPagine,
			@RFA,
			-1,
			@ID_ELAB,
			0,
			@CodiceContratto
			)
-- FC 05022015
-- IdReport temporaneo per gestione Parallelizzazione
-- L'idReport verrà aggiornato una volta generato in fase di inserimento del PDF su ReportManager
-- ToDo ...togliere la select e gestire la variabile @@identity
		declare @appIdReport int
		-- Recupero id appena creato 
		--where condition per nomefile ( r e cf possono dare id sbagliati ( Mon-Diag) )
		select @appIdReport=identityReport
		from C6MartPeriodico.GESTIONE_PDF_FTP
		where rete=@Rete and  codicefiscale=@CodiceFiscale
		and tiporeport=@TipoReport
		--where nomefile=@NomeFile;
	if @appIDReport > 0  Begin
		--aggiorno id report per mantenere la gestione in tutto il progetto
		update C6MartPeriodico.GESTIONE_PDF_FTP
		set idReport=@appIdReport
		where rete=@Rete and  codicefiscale=@CodiceFiscale
		and identityReport=@appIdReport and tiporeport=@TipoReport
		set @IdReport = @appIdReport
-- COLAIANNI-CONSOLI - 28.06.2011
-- SETTA NELLA CONTROLLO_TRIMESTRALE LO STATO REPORT CORRISPONDENTE ALLA PRODUZIONE DEL REPORT:
-- DI DIAGNOSI (STATO: SEMILAVORATO) O DI MONITORAGGIO (STATO: STAMPATO)
		IF (@TipoReport = 'D')
			BEGIN
				UPDATE c6martperiodico.controllo_trimestrale 
				SET stato_report=10, id_report_d=@IDReport, DATA_TRANSIZIONE=GETDATE() 
				WHERE  stato_report = 1
					   AND Rete = @Rete
					   AND Cod_Fiscale = @CodiceFiscale
			END
		ELSE IF (@TipoReport = 'M')
			BEGIN
				UPDATE c6martperiodico.controllo_trimestrale 
				SET  stato_report=4, id_report_m=@IDReport, DATA_TRANSIZIONE=GETDATE() 
				WHERE  ( (stato_report = 1 and flag_diagnosi=0) OR (stato_report = 10) )
					   AND Rete = @Rete
					   AND Cod_Fiscale = @CodiceFiscale
			END
	    --return @numeroRighe
	   -- return  @@ROWCOUNT
	 update C6MartPeriodico.CRUSCOTTO_CONTRATTISEI 
	set
	dtstamp = getdate()
	,elab = 10
	from C6MartPeriodico.CRUSCOTTO_CONTRATTISEI  
	where 	 Rete = @Rete
					   AND CodiceFiscale = @CodiceFiscale	
	END 
-- FC 05022015
-- IdReport temporaneo per gestione Parallelizzazione
-- L'idReport verrà aggiornato una volta generato in fase di inserimento del PDF su ReportManager
   if @IDReport > 0 Begin
	   select @IdReport
	   from C6MartPeriodico.GESTIONE_PDF_FTP
	   where rete=@Rete and  codicefiscale=@CodiceFiscale
	   and tiporeport=@TipoReport
   end
   else
       Begin
         set @IDReport=-1
         select @IDReport
       END
END TRY
BEGIN CATCH
  Declare @CodiceErrore int
	Declare @DescirzioneErrore varchar	
	declare @dataTime datetime
	Declare @nomePackage varchar
	select @CodiceErrore=error_number(),
			@nomePackage=ERROR_PROCEDURE() ,
			@DescirzioneErrore=ERROR_MESSAGE() ,
			@dataTime = getdate()
 exec  [C6Mart].[UT_INSERT_ERROR] @CodiceErrore,@DescirzioneErrore,@dataTime,null,null,@nomePackage
END CATCH
END