41 lines
1.8 KiB
Transact-SQL
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 |