ALTER PROCEDURE [dbo].[sp_TestSetupsInsert]
            @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
		   ,@NumberOfEvents                 int
           ,@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
           ,@DoStreaming					bit
		   ,@ClockSyncProfileMaster			nvarchar(50)
		   ,@ClockSyncProfileSlave			nvarchar(50)
		   ,@ExtraProperties				nvarchar(max)
		   ,@MeasureSquibResistancesStep	bit
		   ,@TestSetupUniqueId				nvarchar(max)
		   ,@TestSetup						varbinary(MAX)
		   ,@LowgLVLTrigOn                  bit
		   ,@LowgLVLTrigOnX                 bit
		   ,@LowgLVLTrigOnY                 bit
		   ,@LowgLVLTrigOnZ                 bit
		   ,@HighgLVLTrigOn                 bit
		   ,@HighgLVLTrigOnX                bit
		   ,@HighgLVLTrigOnY                bit
		   ,@HighgLVLTrigOnZ                bit
		   ,@AngAccelLVLTrigOn              bit
		   ,@AngAccelLVLTrigOnX             bit
		   ,@AngAccelLVLTrigOnY             bit
		   ,@AngAccelLVLTrigOnZ             bit
		   ,@ARSLVLTrigOn                   bit
		   ,@ARSLVLTrigOnX                  bit
		   ,@ARSLVLTrigOnY                  bit
		   ,@ARSLVLTrigOnZ                  bit
		   ,@LowgLVLTrigX                   float
		   ,@LowgLVLTrigY                   float
		   ,@LowgLVLTrigZ                   float
		   ,@HighgLVLTrigX                  float
		   ,@HighgLVLTrigY                  float
		   ,@HighgLVLTrigZ                  float
		   ,@AngAccelLVLTrigX               float
		   ,@AngAccelLVLTrigY               float
		   ,@AngAccelLVLTrigZ               float
		   ,@ARSLVLTrigX                    float
		   ,@ARSLVLTrigY                    float
		   ,@ARSLVLTrigZ                    float
		   ,@HumidityLVLTrigOn              bit
		   ,@PressureLVLTrigOn              bit
		   ,@TemperatureLVLTrigOn           bit
		   ,@HumidityLVLTrigBelow           float
		   ,@HumidityLVLTrigAbove           float
		   ,@PressureLVLTrigBelow           float
		   ,@PressureLVLTrigAbove           float
		   ,@TemperatureLVLTrigBelow        float
		   ,@TemperatureLVLTrigAbove        float
		   ,@LowgRate                       int
		   ,@HighgRate                      int
		   ,@AngularRate                    int
		   ,@TempHumidPressRate             int
		   ,@BatterySaverModeOn             bit
		   ,@WakeupAndTriggerOn             bit
		   ,@WakeupTrigger                  smallint
		   ,@WakeUpMotionTimeout			int
		   ,@WakeUpMagnetTimeout			int
		   ,@WakeUpTimeSessionStart			datetime
		   ,@WakeUpTimeDuration				bigint
		   ,@TimedIntervalTrigOn			bit
		   ,@TimedIntervalDuration			int
		   ,@TimedIntervalEvents			int
		   ,@TimedIntervalFrequency			int
		   ,@TimedIntervalUnits				smallint
		   ,@RTCScheduleTrigOn				bit
		   ,@RTCScheduleStartDateTime		datetime
		   ,@RTCScheduleDuration			bigint
		   ,@new_id							int output
		   ,@errorNumber					int				output
		   ,@errorMessage					nvarchar(250)	output 
AS
BEGIN
set @errorNumber = 0; 	set @errorMessage = space(0);

/* Table (and 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
			SET NOCOUNT ON;
			declare @TestEngineerId	int
			declare @LabratoryId	int 
			declare @CustomerId		int

			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);
			IF @TestEngineerId <= 0
			BEGIN
				SET @TestEngineerId = null
			END

			insert into [dbo].[TestSetups]
				([TestSetupName]
				,[SetupDescription]
				,[AutomaticTestProgression]
				,[AutomaticProgressionDelayMS]
				,[InvertTrigger]
				,[InvertStart]
				,[ViewDiagnostics]
				,[VerifyChannels]
				,[AutoVerifyChannels]
				,[VerifyChannelsDelayMS]
				,[RecordingMode]
				,[SamplesPerSecond]
				,[PreTriggerSeconds]
				,[PostTriggerSeconds]
				,[NumberOfEvents]
				,[StrictDiagnostics]
				,[RequireConfirmationOnErrors]
				,[ROIDownload]
				,[ViewROIDownload]
				,[DownloadAll]
				,[ViewRealtime]
				,[RealtimePlotCount]
				,[RegionsOfInterest]
				,[ROIStart]
				,[ROIEnd]
				,[ViewDownloadAll]
				,[Export]
				,[ExportFormat]

				,[CustomerId]
				,[LabratoryId]
				,[TestEngineerId]
				,[LabDetails]
				,[UseLabDetails]
				,[CustomerDetails]
				,[UseCustomerDetails]
				,[TestEngineerDetails]
				,[UseTestEngineerDetails]
           
				,[AllowMissingSensors]
				,[AllowSensorIdToBlankChannel]
				,[CalibrationBehavior]
				,[LocalOnly]
				,[LastModified]
				,[LastModifiedBy]
				,[TurnOffExcitation]
				,[TriggerCheckRealtime]
				,[TriggerCheckStep]
				,[PostTestDiagnostics]
				,[ExportFolder]
				,[DownloadFolder]
				,[CommonStatusLine]
				,[SameAsDownloadFolder]
				,[UploadData]
				,[UploadDataFolder]
				,[UploadExportsOnly]
				,[Settings]
				,[WarnOnBatteryFail]
				,[Dirty]
				,[Complete]
				,[ErrorMessage]
				,[UserTags]
				,[DoAutoArm]
				,[CheckoutMode]
				,[ISFFile]
				,[QuitTestWithoutWarning]
				,[NotAllChannelsRealTime]
				,[NotAllChannelsViewer]
				,[SuppressMissingSensorsWarning]
				,[DoStreaming]
				,[ClockSyncProfileMaster]
				,[ClockSyncProfileSlave]
				,[ExtraProperties]
				,[MeasureSquibResistancesStep]
				,[TestSetupUniqueId]
				,[TestSetup]
				,[LowgLVLTrigOn]
				,[LowgLVLTrigOnX]
				,[LowgLVLTrigOnY]
				,[LowgLVLTrigOnZ]
				,[HighgLVLTrigOn]
				,[HighgLVLTrigOnX]
				,[HighgLVLTrigOnY]
				,[HighgLVLTrigOnZ]
				,[AngAccelLVLTrigOn]
				,[AngAccelLVLTrigOnX]
				,[AngAccelLVLTrigOnY]
				,[AngAccelLVLTrigOnZ]
				,[ARSLVLTrigOn]
				,[ARSLVLTrigOnX]
				,[ARSLVLTrigOnY]
				,[ARSLVLTrigOnZ]
				,[LowgLVLTrigX]
				,[LowgLVLTrigY]
				,[LowgLVLTrigZ]
				,[HighgLVLTrigX]
				,[HighgLVLTrigY]
				,[HighgLVLTrigZ]
				,[AngAccelLVLTrigX]
				,[AngAccelLVLTrigY]
				,[AngAccelLVLTrigZ]
				,[ARSLVLTrigX]
				,[ARSLVLTrigY]
				,[ARSLVLTrigZ]
				,[HumidityLVLTrigOn]
				,[PressureLVLTrigOn]
				,[TemperatureLVLTrigOn]
				,[HumidityLVLTrigBelow]
				,[HumidityLVLTrigAbove]
				,[PressureLVLTrigBelow]
				,[PressureLVLTrigAbove]
				,[TemperatureLVLTrigBelow]
				,[TemperatureLVLTrigAbove]
				,[LowgRate]
				,[HighgRate]
				,[AngularRate]
				,[TempHumidPressRate]
				,[BatterySaverModeOn]
				,[WakeupAndTriggerOn]
				,[WakeupTrigger]
				,[WakeUpMotionTimeout]
				,[WakeUpMagnetTimeout]
				,[WakeUpTimeSessionStart]
				,[WakeUpTimeDuration]
				,[TimedIntervalTrigOn]
				,[TimedIntervalDuration]
				,[TimedIntervalEvents]
				,[TimedIntervalFrequency]	
				,[TimedIntervalUnits]
				,[RTCScheduleTrigOn]
				,[RTCScheduleStartDateTime]
				,[RTCScheduleDuration])
		 VALUES
			   ( @TestSetupName						
				,@SetupDescription				
				,@AutomaticTestProgression		
				,@AutomaticProgressionDelayMS	
				,@InvertTrigger					
				,@InvertStart					
				,@ViewDiagnostics				
				,@VerifyChannels					
				,@AutoVerifyChannels				
				,@VerifyChannelsDelayMS			
				,@RecordingMode					
				,@SamplesPerSecond				
				,@PreTriggerSeconds				
				,@PostTriggerSeconds
				,@NumberOfEvents				
				,@StrictDiagnostics				
				,@RequireConfirmationOnErrors	
				,@ROIDownload					
				,@ViewROIDownload				
				,@DownloadAll					
				,@ViewRealtime					
				,@RealtimePlotCount
				,@RegionsOfInterest				
				,@ROIStart						
				,@ROIEnd							
				,@ViewDownloadAll				
				,@Export							
				,@ExportFormat	

				,@CustomerId
				,@LabratoryId
				,@TestEngineerId
				,@LabDetails						
				,@UseLabDetails					
				,@CustomerDetails				
				,@UseCustomerDetails				
				,@TestEngineerDetails			
				,@UseTestEngineerDetails	

				,@AllowMissingSensors			
				,@AllowSensorIdToBlankChannel
				,@CalibrationBehavior	
				,@LocalOnly						
				,@LastModified					
				,@LastModifiedBy					
				,@TurnOffExcitation				
				,@TriggerCheckRealtime			
				,@TriggerCheckStep				
				,@PostTestDiagnostics			
				,@ExportFolder					
				,@DownloadFolder					
				,@CommonStatusLine				
				,@SameAsDownloadFolder			
				,@UploadData						
				,@UploadDataFolder
				,@UploadExportsOnly				
				,@Settings						
				,@WarnOnBatteryFail				
				,@Dirty							
				,@Complete						
				,@Error					
		
				,@UserTags						
				,@DoAutoArm						
				,@CheckoutMode					
				,@ISFFile						
				,@QuitTestWithoutWarning			
				,@NotAllChannelsRealTime			
				,@NotAllChannelsViewer			
				,@SuppressMissingSensorsWarning
				,@DoStreaming
				,@ClockSyncProfileMaster
				,@ClockSyncProfileSlave
				,@ExtraProperties
				,@MeasureSquibResistancesStep
				,@TestSetupUniqueId
				,@TestSetup
				,@LowgLVLTrigOn
				,@LowgLVLTrigOnX
				,@LowgLVLTrigOnY
				,@LowgLVLTrigOnZ
				,@HighgLVLTrigOn
				,@HighgLVLTrigOnX
				,@HighgLVLTrigOnY
				,@HighgLVLTrigOnZ
				,@AngAccelLVLTrigOn
				,@AngAccelLVLTrigOnX
				,@AngAccelLVLTrigOnY
				,@AngAccelLVLTrigOnZ
				,@ARSLVLTrigOn
				,@ARSLVLTrigOnX
				,@ARSLVLTrigOnY
				,@ARSLVLTrigOnZ
				,@LowgLVLTrigX
				,@LowgLVLTrigY
				,@LowgLVLTrigZ
				,@HighgLVLTrigX
				,@HighgLVLTrigY
				,@HighgLVLTrigZ
				,@AngAccelLVLTrigX
				,@AngAccelLVLTrigY
				,@AngAccelLVLTrigZ
				,@ARSLVLTrigX
				,@ARSLVLTrigY
				,@ARSLVLTrigZ
				,@HumidityLVLTrigOn
				,@PressureLVLTrigOn
				,@TemperatureLVLTrigOn
				,@HumidityLVLTrigBelow
				,@HumidityLVLTrigAbove
				,@PressureLVLTrigBelow
				,@PressureLVLTrigAbove
				,@TemperatureLVLTrigBelow
				,@TemperatureLVLTrigAbove
				,@LowgRate
				,@HighgRate
				,@AngularRate
				,@TempHumidPressRate
				,@BatterySaverModeOn
				,@WakeupAndTriggerOn
				,@WakeupTrigger
				,@WakeUpMotionTimeout
				,@WakeUpMagnetTimeout
				,@WakeUpTimeSessionStart
				,@WakeUpTimeDuration
				,@TimedIntervalTrigOn
				,@TimedIntervalDuration	
				,@TimedIntervalEvents	
				,@TimedIntervalFrequency	
				,@TimedIntervalUnits
				,@RTCScheduleTrigOn
				,@RTCScheduleStartDateTime
				,@RTCScheduleDuration)
		
			set @new_id = scope_identity()
		end
		end try
		begin catch
			set @errorMessage	= error_message()
			set @errorNumber	= error_number()
		end catch;
END