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

1 year ago
  1. USE [FastMoneyPro_Remit]
  2. GO
  3. /****** Object: StoredProcedure [dbo].[proc_tranViewAttempt] Script Date: 9/27/2019 1:30:14 PM ******/
  4. SET ANSI_NULLS ON
  5. GO
  6. SET QUOTED_IDENTIFIER ON
  7. GO
  8. CREATE proc [dbo].[proc_tranViewAttempt]
  9. @flag VARCHAR(50)
  10. ,@user VARCHAR(30) = NULL
  11. ,@isNewAttempt CHAR(1) = NULL
  12. ,@sortBy VARCHAR(50) = NULL
  13. ,@sortOrder VARCHAR(5) = NULL
  14. ,@pageSize INT = NULL
  15. ,@pageNumber INT = NULL
  16. AS
  17. /*
  18. @flag,
  19. i = Insert
  20. */
  21. DECLARE @sql VARCHAR(MAX), @lockReason VARCHAR(500)
  22. IF @flag = 'i'
  23. BEGIN
  24. IF NOT EXISTS(SELECT 'X' FROM tranViewAttempt WHERE userName = @user)
  25. BEGIN
  26. INSERT INTO tranViewAttempt (
  27. userName
  28. ,continuosAttempt
  29. ,wholeDayAttempt
  30. )
  31. SELECT
  32. @user
  33. ,1
  34. ,1
  35. END
  36. ELSE
  37. BEGIN
  38. UPDATE tranViewAttempt SET
  39. continuosAttempt = CASE WHEN @isNewAttempt = 'Y' THEN 1 ELSE continuosAttempt + 1 END
  40. ,wholeDayAttempt = CASE WHEN @isNewAttempt = 'Y' THEN ISNULL(wholeDayAttempt, 0) ELSE ISNULL(wholeDayAttempt, 0) + 1 END
  41. WHERE userName = @user
  42. END
  43. DELETE FROM tranViewAttempt WHERE userName IS NULL
  44. DECLARE
  45. @continuosAttempt INT
  46. ,@wholeDayAttempt INT
  47. SELECT @continuosAttempt = continuosAttempt, @wholeDayAttempt = wholeDayAttempt FROM tranViewAttempt WHERE userName = @user
  48. IF EXISTS(SELECT 'X' FROM passwordFormat WHERE invControlNoContinous <= @continuosAttempt)
  49. BEGIN
  50. UPDATE tranViewAttempt SET
  51. continuosAttempt = 0
  52. WHERE userName = @user
  53. SET @lockReason = 'Your account has been locked by system due to continuous Invalid Control Number Input Attempt'
  54. EXEC proc_errorHandler 1, @lockReason, NULL
  55. EXEC [proc_applicationUsers] @flag = 'loc', @userName = @user, @lockReason = @lockReason
  56. RETURN
  57. END
  58. IF EXISTS(SELECT 'X' FROM passwordFormat WHERE invControlNoForDay <= @wholeDayAttempt)
  59. BEGIN
  60. UPDATE tranViewAttempt SET
  61. wholeDayAttempt = 0
  62. WHERE userName = @user
  63. SET @lockReason = 'Your account has been locked by system. Invalid Control Number Input Attempt has reached its limit.'
  64. EXEC proc_errorHandler 2, @lockReason, NULL
  65. EXEC [proc_applicationUsers] @flag = 'loc', @userName = @user, @lockReason = @lockReason
  66. RETURN
  67. END
  68. EXEC proc_errorHandler 0, '', NULL
  69. END
  70. GO