
ALTER PROCEDURE [dbo].[sp_TestSetupsUpdateInsert]
            @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);
		declare @TestSetupId int
				
		set @TestSetupId = dbo.foo_IdGetTestSetup(@TestSetupName)

		if(exists(select TestSetupId from [dbo].[TestSetups] where TestSetupId = @TestSetupId))
		begin
			set @new_id = @TestSetupId
			exec dbo.sp_TestSetupsUpdate     @TestSetupName
											,@SetupDescription				
											,@AutomaticTestProgression		
											,@AutomaticProgressionDelayMS	
											,@InvertTrigger					
											,@InvertStart					
											,@ViewDiagnostics				
											,@VerifyChannels					
											,@AutoVerifyChannels				
											,@VerifyChannelsDelayMS			
											,@RecordingMode					
											,@SamplesPerSecond				
											,@PreTriggerSeconds				
											,@PostTriggerSeconds				
											,@StrictDiagnostics				
											,@RequireConfirmationOnErrors	
											,@ROIDownload					
											,@ViewROIDownload				
											,@DownloadAll					
											,@ViewRealtime					
											,@RealtimePlotCount
											,@RegionsOfInterest				
											,@ROIStart						
											,@ROIEnd							
											,@ViewDownloadAll				
											,@Export							
											,@ExportFormat					
											,@LabDetails						
											,@UseLabDetails					
											,@CustomerDetails				
											,@UseCustomerDetails				
											,@AllowMissingSensors			
											,@AllowSensorIdToBlankChannel
											,@CalibrationBehavior	
											,@LocalOnly						
											,@LastModified					
											,@LastModifiedBy					
											,@TurnOffExcitation				
											,@TriggerCheckRealtime			
											,@TriggerCheckStep				
											,@PostTestDiagnostics			
											,@ExportFolder					
											,@DownloadFolder					
											,@CommonStatusLine				
											,@SameAsDownloadFolder			
											,@UploadData						
											,@UploadDataFolder
											,@UploadExportsOnly				
											,@Settings						
											,@WarnOnBatteryFail				
											,@Dirty							
											,@Complete						
											,@Error					
											,@TestEngineerDetails			
											,@UseTestEngineerDetails			
											,@UserTags						
											,@DoAutoArm						
											,@CheckoutMode					
											,@ISFFile						
											,@QuitTestWithoutWarning			
											,@NotAllChannelsRealTime			
											,@NotAllChannelsViewer			
											,@SuppressMissingSensorsWarning
											,@TestSetup
											,@new_id						output
										    ,@errorNumber					output
										    ,@errorMessage					output 
		end
		else
		begin
			exec dbo.sp_TestSetupsInsert     @TestSetupName
											,@SetupDescription				
											,@AutomaticTestProgression		
											,@AutomaticProgressionDelayMS	
											,@InvertTrigger					
											,@InvertStart					
											,@ViewDiagnostics				
											,@VerifyChannels					
											,@AutoVerifyChannels				
											,@VerifyChannelsDelayMS			
											,@RecordingMode					
											,@SamplesPerSecond				
											,@PreTriggerSeconds				
											,@PostTriggerSeconds				
											,@StrictDiagnostics				
											,@RequireConfirmationOnErrors	
											,@ROIDownload					
											,@ViewROIDownload				
											,@DownloadAll					
											,@ViewRealtime					
											,@RealtimePlotCount
											,@RegionsOfInterest				
											,@ROIStart						
											,@ROIEnd							
											,@ViewDownloadAll				
											,@Export							
											,@ExportFormat					
											,@LabDetails						
											,@UseLabDetails					
											,@CustomerDetails				
											,@UseCustomerDetails				
											,@AllowMissingSensors			
											,@AllowSensorIdToBlankChannel
											,@CalibrationBehavior	
											,@LocalOnly						
											,@LastModified					
											,@LastModifiedBy					
											,@TurnOffExcitation				
											,@TriggerCheckRealtime			
											,@TriggerCheckStep				
											,@PostTestDiagnostics			
											,@ExportFolder					
											,@DownloadFolder					
											,@CommonStatusLine				
											,@SameAsDownloadFolder			
											,@UploadData						
											,@UploadDataFolder
											,@UploadExportsOnly				
											,@Settings						
											,@WarnOnBatteryFail				
											,@Dirty							
											,@Complete						
											,@Error					
											,@TestEngineerDetails			
											,@UseTestEngineerDetails			
											,@UserTags						
											,@DoAutoArm						
											,@CheckoutMode					
											,@ISFFile						
											,@QuitTestWithoutWarning			
											,@NotAllChannelsRealTime			
											,@NotAllChannelsViewer			
											,@SuppressMissingSensorsWarning
											,@TestSetup		
											,@new_id						output
										    ,@errorNumber					output
										    ,@errorMessage					output 
		end
END

