-- Schema: C6MartPeriodicoImmobiliare
-- Stored Procedure: Insert_Immobiliare_GestionePDF

-- ==================================================================================
-- Author:		<Ernesto Serfilippi>
-- Create date: <15.02.2019>
-- Description:	<Inserimento riga di Immobiliare_GestionePDF>
-- ==================================================================================
 
 
CREATE PROCEDURE [C6MartPeriodicoImmobiliare].[Insert_Immobiliare_GestionePDF]
  
  @IDReport int,
  @IDReportSemestrale int,
  @IDChiaveRichiesta bigint,
  @Rete varchar(1),
  @ChiaveAgente varchar(8),
  @NominativoAgente varchar(255),
  @CodiceFiscale varchar(16),
  @ChiaveCliente int,
  @NominativoCliente varchar(255),
  @DataRichiestaCatasto datetime,
  @DataRicezioneCatasto datetime,
  @DataRichiestaRischio datetime,
  @DataRicezioneRischio datetime,
  @Utente varchar(50),
  @Rfa decimal(19, 7),
  @Diversificazione decimal(19, 7),
  @Var decimal(19, 7),
  @DataRiferimento varchar(8),
  @CodiceContratto varchar(11),
  @TipoContratto varchar(1),
  @TipoReport varchar(2),
  @DataReport datetime,
  @DataReportUpdate datetime,
  @DataZip datetime,
  @DataZipUpdate datetime,
  @DataInvio datetime,
  @DataInvioUpdate datetime,
  @FlagInvio varchar(1),
  @NomeFile varchar(50),
  @IDZip int,

  
  @Return int OUTPUT

 
/*
SP Parameter Comment 
*/
WITH EXEC AS CALLER 
AS
 
/*
SP Body Comment
*/
 
	BEGIN TRANSACTION
    BEGIN TRY
    
    SELECT @IdReport = (SELECT ISNULL(MAX([IDReport]),0) + 1 FROM [Immobiliare_GestionePDF] with (tablockx, holdlock, updlock))
    SELECT @IdReportSemestrale = (SELECT ISNULL(MAX([IDReportSemestrale]),0) + 1 FROM [Immobiliare_GestionePDF] WHERE [DataRiferimento] = @DataRiferimento)
		  
    INSERT INTO [C6MartPeriodicoImmobiliare].[Immobiliare_GestionePDF](
       [IDReport]
      ,[IDReportSemestrale]
      ,[IDChiaveRichiesta]
      ,[Rete]
      ,[ChiaveAgente]
      ,[NominativoAgente]
      ,[CodiceFiscale]
      ,[ChiaveCliente]
      ,[NominativoCliente]
      ,[DataRichiestaCatasto]
      ,[DataRicezioneCatasto]
      ,[DataRichiestaRischio]
      ,[DataRicezioneRischio]
      ,[Utente]
      ,[Rfa]
      ,[Diversificazione]
      ,[Var]
      ,[DataRiferimento]
      ,[CodiceContratto]
      ,[TipoContratto]
      ,[TipoReport]
      ,[DataReport]
      ,[DataReportUpdate]
      ,[DataZip]
      ,[DataZipUpdate]
      ,[DataInvio]
      ,[DataInvioUpdate]
      ,[FlagInvio]
      ,[NomeFile]
      ,[IDZip]) 
      
      VALUES (
      @IDReport,
      @IDReportSemestrale,
      @IDChiaveRichiesta,
      @Rete,
      @ChiaveAgente,
      @NominativoAgente,
      @CodiceFiscale,
      @ChiaveCliente,
      @NominativoCliente,
      @DataRichiestaCatasto,
      @DataRicezioneCatasto,
      @DataRichiestaRischio,
      @DataRicezioneRischio,
      @Utente,
      @Rfa,
      @Diversificazione,
      @Var,
      @DataRiferimento,
      @CodiceContratto,
      @TipoContratto,
      @TipoReport,
      @DataReport,
      @DataReportUpdate,
      @DataZip,
      @DataZipUpdate,
      @DataInvio,
      @DataInvioUpdate,
      @FlagInvio,
      @NomeFile,
      @IDZip )
  
      Set @Return=@IdReport;
       
    END TRY
    
	BEGIN CATCH
      IF ERROR_NUMBER()=2601 
      BEGIN
        Set @Return=-2601;
      END
       IF @@TRANCOUNT > 0
        ROLLBACK TRANSACTION;
     END CATCH
   
    IF @@TRANCOUNT > 0
      COMMIT TRANSACTION;
