ALTER  PROCEDURE [dbo].[sp_SensorsDigitalInInsert]
		 @SerialNumber		nvarchar(50)
		,@SettingMode		int
		,@ScaleMultiplier	nvarchar(50)
		,@LastModified		datetime
		,@LastModifiedBy	nvarchar(50)
		,@eId				nvarchar(50)
		,@UserValue1		nvarchar(255)
		,@UserValue2		nvarchar(255)
		,@UserValue3		nvarchar(255)
		,@UserTags			varbinary(max)
		,@MeasurementUnit	nvarchar(50)
		,@new_id			int				output
		,@errorNumber		int				output
		,@errorMessage		nvarchar(250)	output
AS
BEGIN
	set @errorNumber = 0 
	set @errorMessage = space(0)


	if(@SerialNumber is null)
	begin 
		set @errorNumber = 15600
		set @errorMessage = 'An invalid parameter or option was specified for procedure'
	end
	else
	begin
		if(exists(select SerialNumber from v_SensorSerialNumber where SerialNumber = @SerialNumber))
		begin
			set @errorMessage = 'The sensor serial mumber - ' + ltrim(rtrim(@SerialNumber)) + ' is not unique';
			set @errorNumber = -1
		end
		else
		begin
			INSERT INTO [dbo].[SensorsDigitalIn]
					   ([SerialNumber]
					   ,[SettingMode]
					   ,[ScaleMultiplier]
					   ,[LastModified]
					   ,[LastModifiedBy]
					   ,[eId]
					   ,[UserValue1]
					   ,[UserValue2]
					   ,[UserValue3]
					   ,[UserTags]
					   ,[MeasurementUnit])
				 VALUES
					   (@SerialNumber		
					   ,@SettingMode		
					   ,@ScaleMultiplier	
					   ,@LastModified		
					   ,@LastModifiedBy	
					   ,isnull(@eId, space(0))		
					   ,@UserValue1		
					   ,@UserValue2		
					   ,@UserValue3		
					   ,@UserTags
					   ,@MeasurementUnit)		
	
				set @new_id = scope_identity();
				exec dbo.sp_SensorInsert @new_id, 1 /* see table dbo.SensorsType */
		end
	end
end
