Files
DP44/DataPRO/Modules/Database/DatabaseMigrationScripts/.svn/pristine/08/08a89cb3199d63aa5ca018bf53d7c37215e3d517.svn-base
2026-04-17 14:55:32 -04:00

224 lines
11 KiB
Plaintext

CREATE PROCEDURE [dbo].[sp_SensorsAnalogUpdateInsert_98]
@UserSerialNumber NVARCHAR (50),
@Model NVARCHAR (50),
@SensorModelId INT,
@Manufacturer NVARCHAR (50),
@Status NVARCHAR (50),
@MeasurementUnit NVARCHAR (50),
@OffsetToleranceLow FLOAT,
@OffsetToleranceHigh FLOAT,
@eId NVARCHAR (50),
@Capacity FLOAT,
@Comment NVARCHAR (50),
@BridgeType SMALLINT,
@BridgeLegMode SMALLINT,
@Shunt SMALLINT,
@Invert BIT,
@UserValue1 NVARCHAR (50),
@UserValue2 NVARCHAR (50),
@UserValue3 NVARCHAR (50),
@FilterClass NVARCHAR (50),
@BridgeResistance FLOAT,
@IsoCode NVARCHAR (50),
@IsoChannelName NVARCHAR (255),
@UserCode NVARCHAR (50),
@UserChannelName NVARCHAR (255),
@CheckOffset BIT,
@SupportedExcitation NVARCHAR (50),
@InitialEU FLOAT,
@CalInterval INT,
@CalibrationSignal BIT,
@InternalShuntResistance FLOAT,
@ExternalShuntResistance FLOAT,
@UniPolar BIT,
@RangeLow FLOAT,
@RangeAve FLOAT,
@RangeHigh FLOAT,
@Created DATETIME,
@TimesUsed BIGINT,
@SensorCategory INT,
@BypassFilter BIT,
@CouplingMode SMALLINT,
@Version INT,
@LastModified DATETIME,
@ModifiedBy NVARCHAR (50),
@LocalOnly BIT,
@AxisNumber SMALLINT,
@NumberOfAxes SMALLINT,
@UserTags VARBINARY (MAX),
@DoNotUse BIT,
@Broken BIT,
@DiagnosticsMode BIT,
@SerialNumber NVARCHAR (255),
@FirstUseDate DateTime NULL,
@LatestCalibrationId INT NULL,
@ACCouplingModeEnabled BIT,
@SensitivityTolerancePercent FLOAT NULL,
@AssemblyName NVARCHAR (50) NULL,
@UsageCount INT NULL,
@MaximumUsage INT NULL,
@new_id INT OUTPUT,
@errorNumber INT OUTPUT,
@errorMessage NVARCHAR (255) OUTPUT
AS
BEGIN
BEGIN TRY
SET NOCOUNT ON
SET @errorNumber = 0
SET @errorMessage = ''
DECLARE @SensorType AS TINYINT
DECLARE @SensorId AS INT
DECLARE @MaxCalIntervalDays AS INT
-- FB14622 Maximum allowed interval days. When updating this value please update the _maxCalIntervalDays variable in SensitivityControl.xaml.cs
SET @MaxCalIntervalDays = 365 * 10
SELECT @SensorType = [TypeId] FROM [dbo].[SensorsType] WHERE [SensorType]='Analog'
SELECT @SensorId = A.[Id] from [dbo].[Sensors] AS A INNER JOIN [dbo].SensorsType AS B ON A.SensorType=B.TypeId WHERE B.SensorType='Analog' AND A.SerialNumber=@SerialNumber
-- FB14622 Validate the range of calibration intervals
IF(@CalInterval > @MaxCalIntervalDays OR @CalInterval <= 0 )
BEGIN
RAISERROR ('Invalid calibration inteval',16,1)
END
IF( @SensorId IS NULL)
BEGIN
INSERT INTO [dbo].[Sensors] (SensorType, SerialNumber) VALUES (@SensorType, @SerialNumber)
SELECT @SensorId = SCOPE_IDENTITY()
SET @new_id = @SensorId
exec dbo.sp_SensorsAnalogInsert_98
@SensorId,
@UserSerialNumber,
@Model,
@SensorModelId,
@Manufacturer,
@Status,
@MeasurementUnit,
@OffsetToleranceLow,
@OffsetToleranceHigh,
@eId,
@Capacity,
@Comment,
@BridgeType,
@BridgeLegMode,
@Shunt,
@Invert,
@UserValue1,
@UserValue2,
@UserValue3,
@FilterClass,
@BridgeResistance,
@IsoCode,
@IsoChannelName,
@UserCode,
@UserChannelName,
@CheckOffset,
@SupportedExcitation,
@InitialEU,
@CalInterval,
@CalibrationSignal,
@InternalShuntResistance,
@ExternalShuntResistance,
@UniPolar,
@RangeLow,
@RangeAve,
@RangeHigh,
@Created,
@TimesUsed,
@SensorCategory,
@BypassFilter,
@CouplingMode,
@Version,
@LastModified,
@ModifiedBy,
@LocalOnly,
@AxisNumber,
@NumberOfAxes,
@UserTags,
@DoNotUse,
@Broken,
@DiagnosticsMode,
@SerialNumber,
@FirstUseDate,
@LatestCalibrationId,
@ACCouplingModeEnabled,
@SensitivityTolerancePercent,
@AssemblyName,
@UsageCount,
@MaximumUsage,
@errorNumber,
@errorMessage
END
ELSE
BEGIN
SET @new_id = @SensorId
exec dbo.sp_SensorsAnalogUpdate_98
@SensorId,
@UserSerialNumber,
@Model,
@SensorModelId,
@Manufacturer,
@Status,
@MeasurementUnit,
@OffsetToleranceLow,
@OffsetToleranceHigh,
@eId,
@Capacity,
@Comment,
@BridgeType,
@BridgeLegMode,
@Shunt,
@Invert,
@UserValue1,
@UserValue2,
@UserValue3,
@FilterClass,
@BridgeResistance,
@IsoCode,
@IsoChannelName,
@UserCode,
@UserChannelName,
@CheckOffset,
@SupportedExcitation,
@InitialEU,
@CalInterval,
@CalibrationSignal,
@InternalShuntResistance,
@ExternalShuntResistance,
@UniPolar,
@RangeLow,
@RangeAve,
@RangeHigh,
@Created,
@TimesUsed,
@SensorCategory,
@BypassFilter,
@CouplingMode,
@Version,
@LastModified,
@ModifiedBy,
@LocalOnly,
@AxisNumber,
@NumberOfAxes,
@UserTags,
@DoNotUse,
@Broken,
@DiagnosticsMode,
@FirstUseDate,
@LatestCalibrationId,
@ACCouplingModeEnabled,
@SensitivityTolerancePercent,
@AssemblyName,
@UsageCount,
@MaximumUsage,
@errorNumber,
@errorMessage
END
END TRY
BEGIN CATCH
SET @errorNumber = error_number()
SET @errorMessage = error_message()
END CATCH
END