2025-03-19 15:35:57 +01:00

41 lines
1.8 KiB
Transact-SQL

UPDATE TBDD_MODULES SET DB_VERSION = '1.5.4.1' WHERE SHORT_NAME = 'SIG_ENV_CR'
GO
CREATE FUNCTION dbo.FNDD_Generate5DigitRandomCode()
RETURNS CHAR(5)
AS
BEGIN
DECLARE @Code CHAR(5), @Rand1 INT, @Rand2 INT, @Rand3 INT, @Rand4 INT, @Rand5 INT
SET @Rand1 = ABS(CHECKSUM(CONVERT(VARBINARY, CURRENT_TIMESTAMP))) % 36
SET @Rand2 = ABS(CHECKSUM(CONVERT(VARBINARY, CURRENT_TIMESTAMP) + CAST(@Rand1 AS VARBINARY))) % 36
SET @Rand3 = ABS(CHECKSUM(CONVERT(VARBINARY, CURRENT_TIMESTAMP) + CAST(@Rand2 AS VARBINARY))) % 36
SET @Rand4 = ABS(CHECKSUM(CONVERT(VARBINARY, CURRENT_TIMESTAMP) + CAST(@Rand3 AS VARBINARY))) % 36
SET @Rand5 = ABS(CHECKSUM(CONVERT(VARBINARY, CURRENT_TIMESTAMP) + CAST(@Rand4 AS VARBINARY))) % 36
SET @Code =
CHAR(CASE WHEN @Rand1 < 10 THEN 48 + @Rand1 ELSE 55 + @Rand1 END) +
CHAR(CASE WHEN @Rand2 < 10 THEN 48 + @Rand2 ELSE 55 + @Rand2 END) +
CHAR(CASE WHEN @Rand3 < 10 THEN 48 + @Rand3 ELSE 55 + @Rand3 END) +
CHAR(CASE WHEN @Rand4 < 10 THEN 48 + @Rand4 ELSE 55 + @Rand4 END) +
CHAR(CASE WHEN @Rand5 < 10 THEN 48 + @Rand5 ELSE 55 + @Rand5 END)
RETURN @Code
END
GO
CREATE TRIGGER [dbo].TBSIG_ENVELOPE_RECEIVER_AFT_UPD ON [dbo].[TBSIG_ENVELOPE_RECEIVER]
FOR INSERT
AS
BEGIN
DECLARE @ENVELOPE_ID INT,@RECEIVER_ID INT,@ACCESS_CODE NVARCHAR(64)
SELECT
@ENVELOPE_ID = ENVELOPE_ID,
@RECEIVER_ID = RECEIVER_ID,
@ACCESS_CODE = ACCESS_CODE FROM inserted
IF LEN(@ACCESS_CODE) = 0
BEGIN
SELECT @ACCESS_CODE = [dbo].[FNDD_Generate5DigitRandomCode] ();
UPDATE TBSIG_ENVELOPE_RECEIVER SET ACCESS_CODE = @ACCESS_CODE FROM INSERTED
WHERE TBSIG_ENVELOPE_RECEIVER.ENVELOPE_ID = INSERTED.ENVELOPE_ID AND TBSIG_ENVELOPE_RECEIVER.RECEIVER_ID = INSERTED.RECEIVER_ID;
END
END