﻿ALTER PROCEDURE [dbo].[sp_DASUpdateInsert]
			 @DASId					int			= 0
			,@SerialNumber			nvarchar(50) = null
			,@Type					int
			,@MaxModules			int
			,@MaxMemory				bigint
			,@MaxSampleRate			decimal(18,0)
			,@MinSampleRate			decimal(18,0)
			,@FirmwareVersion		nvarchar(50)
			,@CalDate				datetime
			,@ProtocolVersion		int
			,@LastModified			datetime
			,@LastModifiedBy		nvarchar(50)
			,@Version				int
			,@LocalOnly				bit
			,@LastUsed				datetime
			,@LastUsedBy			nvarchar(50)
			,@Connection			nvarchar(50)
			,@Channels				int
			,@Position				nvarchar(50)
			,@ChannelTypes			nvarchar(255)
			,@Reprogramable			bit
			,@Reconfigurable		bit
			,@IsModule				bit
			,@PositionOnDistributor	smallint
			,@PositionOnChain		smallint	
			,@Port					smallint	
			,@ParentDAS				nvarchar(50)
			,@FirstUseDate          datetime null
			,@TestId                int null
			,@GroupId               int null
			,@StandIn               bit null
			,@new_id				int				OUTPUT
			,@errorNumber			int				output
			,@errorMessage			nvarchar(250)	output 

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

	SET NOCOUNT ON;
	if(@DASId = 0)
	begin
		set @DASId = dbo.foo_IdGetDAS(@SerialNumber)
	end

	if(@DASId != 0) 
	begin
		exec dbo.sp_DASUpdate	 @DASId
								,@SerialNumber
								,@Type				
								,@MaxModules		
								,@MaxMemory			
								,@MaxSampleRate		
								,@MinSampleRate		
								,@FirmwareVersion	
								,@CalDate			
								,@ProtocolVersion	
								,@LastModified		
								,@LastModifiedBy	
								,@Version			
								,@LocalOnly			
								,@LastUsed			
								,@LastUsedBy		
								,@Connection		
								,@Channels			
								,@Position			
								,@ChannelTypes		
								,@Reprogramable		
								,@Reconfigurable	
								,@IsModule
								,@PositionOnDistributor	
								,@PositionOnChain		
								,@Port					
								,@ParentDAS
								,@FirstUseDate
								,@TestId
								,@GroupId
								,@StandIn
								,@new_id
							    ,@errorNumber output, @errorMessage output
		SET @new_id = @DASId
	end
	else
	begin
		exec dbo.sp_DASInsert	@SerialNumber
								,@Type				
								,@MaxModules		
								,@MaxMemory			
								,@MaxSampleRate		
								,@MinSampleRate		
								,@FirmwareVersion	
								,@CalDate			
								,@ProtocolVersion	
								,@LastModified		
								,@LastModifiedBy	
								,@Version			
								,@LocalOnly			
								,@LastUsed			
								,@LastUsedBy		
								,@Connection		
								,@Channels			
								,@Position			
								,@ChannelTypes		
								,@Reprogramable		
								,@Reconfigurable	
								,@IsModule
								,@PositionOnDistributor	
								,@PositionOnChain		
								,@Port					
								,@ParentDAS
								,@FirstUseDate
								,@TestId
								,@GroupId
								,@StandIn
								,@new_id output
								,@errorNumber output, @errorMessage output
	end
END
