You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 

79 lines
4.5 KiB

USE [FastMoneyPro_Remit]
GO
/****** Object: StoredProcedure [dbo].[proc_tranViewAttempt] Script Date: 9/27/2019 1:30:14 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE proc [dbo].[proc_tranViewAttempt]
@flag VARCHAR(50)
,@user VARCHAR(30) = NULL
,@isNewAttempt CHAR(1) = NULL
,@sortBy VARCHAR(50) = NULL
,@sortOrder VARCHAR(5) = NULL
,@pageSize INT = NULL
,@pageNumber INT = NULL
AS
/*
@flag,
i = Insert
*/
DECLARE @sql VARCHAR(MAX), @lockReason VARCHAR(500)
IF @flag = 'i'
BEGIN
IF NOT EXISTS(SELECT 'X' FROM tranViewAttempt WHERE userName = @user)
BEGIN
INSERT INTO tranViewAttempt (
userName
,continuosAttempt
,wholeDayAttempt
)
SELECT
@user
,1
,1
END
ELSE
BEGIN
UPDATE tranViewAttempt SET
continuosAttempt = CASE WHEN @isNewAttempt = 'Y' THEN 1 ELSE continuosAttempt + 1 END
,wholeDayAttempt = CASE WHEN @isNewAttempt = 'Y' THEN ISNULL(wholeDayAttempt, 0) ELSE ISNULL(wholeDayAttempt, 0) + 1 END
WHERE userName = @user
END
DELETE FROM tranViewAttempt WHERE userName IS NULL
DECLARE
@continuosAttempt INT
,@wholeDayAttempt INT
SELECT @continuosAttempt = continuosAttempt, @wholeDayAttempt = wholeDayAttempt FROM tranViewAttempt WHERE userName = @user
IF EXISTS(SELECT 'X' FROM passwordFormat WHERE invControlNoContinous <= @continuosAttempt)
BEGIN
UPDATE tranViewAttempt SET
continuosAttempt = 0
WHERE userName = @user
SET @lockReason = 'Your account has been locked by system due to continuous Invalid Control Number Input Attempt'
EXEC proc_errorHandler 1, @lockReason, NULL
EXEC [proc_applicationUsers] @flag = 'loc', @userName = @user, @lockReason = @lockReason
RETURN
END
IF EXISTS(SELECT 'X' FROM passwordFormat WHERE invControlNoForDay <= @wholeDayAttempt)
BEGIN
UPDATE tranViewAttempt SET
wholeDayAttempt = 0
WHERE userName = @user
SET @lockReason = 'Your account has been locked by system. Invalid Control Number Input Attempt has reached its limit.'
EXEC proc_errorHandler 2, @lockReason, NULL
EXEC [proc_applicationUsers] @flag = 'loc', @userName = @user, @lockReason = @lockReason
RETURN
END
EXEC proc_errorHandler 0, '', NULL
END
GO