
ALTER PROCEDURE [dbo].[sp_TestSetupsUpdate]
            @TestSetupName					nvarchar(50) = Null
           ,@SetupDescription				nvarchar(50)
           ,@AutomaticTestProgression		bit
           ,@AutomaticProgressionDelayMS	int
           ,@InvertTrigger					bit
           ,@InvertStart					bit
           ,@ViewDiagnostics				bit
           ,@VerifyChannels					bit
           ,@AutoVerifyChannels				bit
           ,@VerifyChannelsDelayMS			int
           ,@RecordingMode					smallint
           ,@SamplesPerSecond				float
           ,@PreTriggerSeconds				float
           ,@PostTriggerSeconds				float
           ,@StrictDiagnostics				bit
           ,@RequireConfirmationOnErrors	bit
           ,@ROIDownload					bit
           ,@ViewROIDownload				bit
           ,@DownloadAll					bit
           ,@ViewRealtime					bit
           ,@RealtimePlotCount				smallint
		   ,@RegionsOfInterest				nvarchar(MAX)
           ,@ROIStart						float
           ,@ROIEnd							float
           ,@ViewDownloadAll				bit
           ,@Export							bit
           ,@ExportFormat					bigint
           ,@LabDetails						nvarchar(50)
           ,@UseLabDetails					bit
           ,@CustomerDetails				nvarchar(50)
           ,@UseCustomerDetails				bit
           ,@AllowMissingSensors			bit
           ,@AllowSensorIdToBlankChannel	bit
		   ,@CalibrationBehavior			smallint
           ,@LocalOnly						bit
           ,@LastModified					datetime
           ,@LastModifiedBy					nvarchar(50)
           ,@TurnOffExcitation				bit
           ,@TriggerCheckRealtime			bit
           ,@TriggerCheckStep				bit
           ,@PostTestDiagnostics			int
           ,@ExportFolder					nvarchar(150)
           ,@DownloadFolder					nvarchar(150)
           ,@CommonStatusLine				bit
           ,@SameAsDownloadFolder			bit
           ,@UploadData						bit
           ,@UploadDataFolder				nvarchar(150)
		   ,@UploadExportsOnly				bit
           ,@Settings						nvarchar(4000)
           ,@WarnOnBatteryFail				bit
           ,@Dirty							bit
           ,@Complete						bit
           ,@Error							nvarchar(255)
           ,@TestEngineerDetails			nvarchar(50)
           ,@UseTestEngineerDetails			bit
           ,@UserTags						varbinary(max)
           ,@DoAutoArm						bit
           ,@CheckoutMode					bit
           ,@ISFFile						nvarchar(4000)
           ,@QuitTestWithoutWarning			bit
           ,@NotAllChannelsRealTime			bit
           ,@NotAllChannelsViewer			bit
           ,@SuppressMissingSensorsWarning  bit
		   ,@TestSetup						varbinary(MAX)
		   ,@new_id							int				output
		   ,@errorNumber					int				output
		   ,@errorMessage					nvarchar(250)	output 

AS
BEGIN
set @errorNumber = 0; 	set @errorMessage = space(0); set @new_id = 0;

/* Table (ans stored procedure) is too big... */

	begin try
		if(@TestSetupName is null)
		begin 
			set @errorMessage	= 'An invalid parameter or option was specified for procedure'
			set @errorNumber	= 15600
		end	
		else
		begin

			declare @TestSetupId int
			declare @TestEngineerId	int
			declare @LabratoryId	int 
			declare @CustomerId		int

			set @TestSetupId	= dbo.foo_IdGetTestSetup(@TestSetupName)
			set @CustomerId		= dbo.foo_IdGetCustomer(@CustomerDetails)
			IF @CustomerId <= 0
			BEGIN
				SET @CustomerId = null
			END
			set @LabratoryId	= dbo.foo_IdGetLabratory(@LabDetails)
			IF @LabratoryId <= 0
			BEGIN
				SET @LabratoryId = null
			END
			set @TestEngineerId	= dbo.foo_IdGetEngineer(@TestEngineerDetails);
			BEGIN
				SET @TestEngineerId = null
			END

			set @new_id = @TestSetupId

			UPDATE [dbo].[TestSetups]
			   SET [SetupDescription]					= @SetupDescription				
					,[AutomaticTestProgression] 		= @AutomaticTestProgression		
					,[AutomaticProgressionDelayMS] 		= @AutomaticProgressionDelayMS	
					,[InvertTrigger] 					= @InvertTrigger					
					,[InvertStart] 						= @InvertStart					
					,[ViewDiagnostics] 					= @ViewDiagnostics				
					,[VerifyChannels] 					= @VerifyChannels					
					,[AutoVerifyChannels] 				= @AutoVerifyChannels				
					,[VerifyChannelsDelayMS] 			= @VerifyChannelsDelayMS			
					,[RecordingMode] 					= @RecordingMode					
					,[SamplesPerSecond] 				= @SamplesPerSecond				
					,[PreTriggerSeconds] 				= @PreTriggerSeconds				
					,[PostTriggerSeconds] 				= @PostTriggerSeconds				
					,[StrictDiagnostics] 				= @StrictDiagnostics				
					,[RequireConfirmationOnErrors] 		= @RequireConfirmationOnErrors	
					,[ROIDownload] 						= @ROIDownload					
					,[ViewROIDownload] 					= @ViewROIDownload				
					,[DownloadAll] 						= @DownloadAll					
					,[ViewRealtime] 					= @ViewRealtime					
					,[RealtimePlotCount] 				= @RealtimePlotCount
					,[RegionsOfInterest]				= @RegionsOfInterest				
					,[ROIStart] 						= @ROIStart						
					,[ROIEnd] 							= @ROIEnd							
					,[ViewDownloadAll] 					= @ViewDownloadAll				
					,[Export] 							= @Export							
					,[ExportFormat] 					= @ExportFormat					
					,[CustomerId]						= @CustomerId		
					,[LabratoryId] 						= @LabratoryId
					,[TestEngineerId]					= @TestEngineerId	
					,[LabDetails] 						= @LabDetails						
					,[UseLabDetails] 					= @UseLabDetails					
					,[CustomerDetails] 					= @CustomerDetails				
					,[UseCustomerDetails] 				= @UseCustomerDetails				
					,[AllowMissingSensors] 				= @AllowMissingSensors			
					,[AllowSensorIdToBlankChannel] 		= @AllowSensorIdToBlankChannel
					,[CalibrationBehavior]				= @CalibrationBehavior	
					,[LocalOnly] 						= @LocalOnly						
					,[LastModified] 					= @LastModified					
					,[LastModifiedBy] 					= @LastModifiedBy					
					,[TurnOffExcitation] 				= @TurnOffExcitation				
					,[TriggerCheckRealtime] 			= @TriggerCheckRealtime			
					,[TriggerCheckStep] 				= @TriggerCheckStep				
					,[PostTestDiagnostics] 				= @PostTestDiagnostics			
					,[ExportFolder] 					= @ExportFolder					
					,[DownloadFolder] 					= @DownloadFolder					
					,[CommonStatusLine] 				= @CommonStatusLine				
					,[SameAsDownloadFolder] 			= @SameAsDownloadFolder			
					,[UploadData] 						= @UploadData						
					,[UploadDataFolder] 				= @UploadDataFolder
					,[UploadExportsOnly]				= @UploadExportsOnly				
					,[Settings] 						= @Settings						
					,[WarnOnBatteryFail] 				= @WarnOnBatteryFail				
					,[Dirty] 							= @Dirty							
					,[Complete] 						= @Complete						
					,[ErrorMessage] 					= @Error
					,[TestEngineerDetails] 				= @TestEngineerDetails			
					,[UseTestEngineerDetails] 			= @UseTestEngineerDetails			
					,[UserTags] 						= @UserTags						
					,[DoAutoArm] 						= @DoAutoArm						
					,[CheckoutMode] 					= @CheckoutMode					
					,[ISFFile] 							= @ISFFile						
					,[QuitTestWithoutWarning] 			= @QuitTestWithoutWarning			
					,[NotAllChannelsRealTime] 			= @NotAllChannelsRealTime			
					,[NotAllChannelsViewer] 			= @NotAllChannelsViewer			
					,[SuppressMissingSensorsWarning] 	= @SuppressMissingSensorsWarning 
					,[TestSetup]						= @TestSetup
			 WHERE [TestSetupId]						= @TestSetupId
		end
		end try
		begin catch
			set @errorMessage	= error_message()
			set @errorNumber	= error_number()
		end catch;
END
