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.

225 lines
9.7 KiB

4 years ago
  1. -- =============================================
  2. -- Author: <Author,,Name>
  3. -- Create date: <Create Date,,>
  4. -- Description: <Description,,>
  5. -- =============================================
  6. alter PROCEDURE PROC_JME_AGENT_SYSTEM_ACCOUNT
  7. -- Add the parameters for the stored procedure here
  8. @flag VARCHAR(200) ,
  9. @user VARCHAR(100) = NULL,
  10. @referralCode VARCHAR(100) = NULL,
  11. @password VARCHAR(100) = NULL,
  12. @IpAddress VARCHAR(100) = NULL,
  13. @userDetails VARCHAR(MAX) = NULL,
  14. @newPassword VARCHAR(100) = NULL,
  15. @isForceChangePwd CHAR(1) = NULL
  16. AS
  17. BEGIN
  18. -- SET NOCOUNT ON added to prevent extra result sets from
  19. -- interfering with SELECT statements.
  20. SET NOCOUNT ON;
  21. DECLARE
  22. @_IsExist BIT = 0,
  23. @_IsActive BIT = 0,
  24. @_IsError BIT = 0,
  25. @_IsLocked BIT = 0,
  26. @_IsDelete BIT = 0,
  27. @_isforceChangePwd BIT = 0,
  28. @_pwdChangeDays INT = NULL,
  29. @_pwdChangeWarningDays INT = NULL,
  30. @_lastLoginDate DATETIME = NULL,
  31. @_userData VARCHAR(200) = NULL,
  32. @_Reasion VARCHAR(2000) = NULL,
  33. @_referralId BIGINT = NULL,
  34. @_username VARCHAR(100) = NULL,
  35. @_address VARCHAR(200) = NULL,
  36. @_mobile VARCHAR(50) = NULL,
  37. @_email VARCHAR(150) = NULL,
  38. @_referralType VARCHAR(150) = NULL,
  39. @_errorMessage VARCHAR(MAX) = NULL,
  40. @_invalidPwdCount TINYINT = NULL
  41. CREATE TABLE #TEMP_ERROR_CODE (ERROR_CODE VARCHAR(20), MSG VARCHAR(250), ID VARCHAR(20))
  42. IF @flag='l'
  43. BEGIN
  44. SELECT
  45. @_IsExist = 1,
  46. @_referralId = RAU.rowId,
  47. @_IsLocked = RAU.isLocked,
  48. @_IsActive = RAU.IsActive,
  49. @_IsDelete = RAU.IsDeleted,
  50. @_isforceChangePwd = RAU.isforceChangePwd,
  51. @_pwdChangeDays = RAU.pwdChangeDays,
  52. @_pwdChangeWarningDays = RAU.pwdChangeWarningDays,
  53. @_lastLoginDate = RAU.lastLoginDate,
  54. @_invalidPwdCount = ISNULL(RAU.wrongPwdCount, 0)
  55. FROM dbo.REFERRAL_APPLICATION_USER (NOLOCK) RAU
  56. WHERE RAU.referalCode=@referralCode
  57. AND RAU.pwd = dbo.fnaencryptstring(@password)
  58. SET @_UserData ='User:' + ISNULL(@user,'') + ', ReferralCode:' + CAST(@referralCode AS VARCHAR(20)) + ', Ip Address:' + CAST(@IpAddress AS VARCHAR(20))
  59. IF EXISTS(SELECT 1 FROM REFERRAL_APPLICATION_USER (NOLOCK) WHERE referalCode = @referralCode AND (wrongPwdCount >= 4 OR isLocked = 1))
  60. BEGIN
  61. SET @_Reasion='User locked: Due to invalid login Attempts'
  62. SET @userDetails = 'Reason = User Locked due to Invalid login attempts.-:::-' + @userDetails
  63. EXEC proc_errorHandler 1, 'Sorry you are locked at this time, due to invalid login attempts. Contact JME for more information.', @referralCode
  64. EXEC PROC_APPLICATION_LOGS_REFERRAL @agentId=@_referralId,@logType='Login',@IP=@IpAddress,@Reason=@_Reasion,@fieldValue=@userDetails,@user=@user,@UserData=@_userData
  65. RETURN
  66. END
  67. IF @_IsExist = 0 AND EXISTS (SELECT 1 FROM REFERRAL_APPLICATION_USER (NOLOCK) WHERE referalCode = @referralCode)
  68. BEGIN
  69. SELECT @_invalidPwdCount = ISNULL(wrongPwdCount, 0)
  70. FROM REFERRAL_APPLICATION_USER(NOLOCK)
  71. WHERE referalCode = @referralCode
  72. IF @_invalidPwdCount >= 4
  73. BEGIN
  74. SET @_Reasion='User locked: Invalid username or password'
  75. SET @userDetails = 'Reason = User Locked due to Invalid login attempts.-:::-' + @userDetails
  76. EXEC proc_errorHandler 1, 'Sorry you are locked at this time, due to invalid login attempts. Contact JME for more information.', @referralCode
  77. EXEC PROC_APPLICATION_LOGS_REFERRAL @agentId=@_referralId,@logType='Login',@IP=@IpAddress,@Reason=@_Reasion,@fieldValue=@userDetails,@user=@user,@UserData=@_userData
  78. UPDATE REFERRAL_APPLICATION_USER
  79. SET isLocked = 1, lockedDate = GETDATE()
  80. WHERE referalCode = @referralCode
  81. RETURN
  82. END
  83. SET @_Reasion='User Name Or Password Not Match, you have ' + CAST((4 - ISNULL(@_invalidPwdCount, 1)) AS VARCHAR) + ' attempts left!'
  84. SET @userDetails = 'Reason = Login fails, Incorrect user name or password.-:::-' + @userDetails
  85. INSERT INTO #TEMP_ERROR_CODE
  86. EXEC proc_errorHandler 1, @_Reasion, @referralCode
  87. UPDATE REFERRAL_APPLICATION_USER SET wrongPwdCount = ISNULL(wrongPwdCount, 0) + 1
  88. WHERE referalCode = @referralCode
  89. END
  90. ELSE IF @_IsExist = 0 AND NOT EXISTS (SELECT 1 FROM REFERRAL_APPLICATION_USER (NOLOCK) WHERE referalCode = @referralCode)
  91. BEGIN
  92. SET @_Reasion='User Name Or Password Not Match !'
  93. SET @userDetails = 'Reason = Login fails, Incorrect user name or password.-:::-' + @userDetails
  94. INSERT INTO #TEMP_ERROR_CODE
  95. EXEC proc_errorHandler 1, 'User Name Or Password Not Match !', @referralCode
  96. UPDATE REFERRAL_APPLICATION_USER SET wrongPwdCount = ISNULL(wrongPwdCount, 0) + 1
  97. WHERE referalCode = @referralCode
  98. END
  99. ELSE IF @_IsLocked=1
  100. BEGIN
  101. SET @_Reasion='user data is locked by system'
  102. SET @userDetails = 'Reason = User data is locked by system.-:::-' + @userDetails
  103. INSERT INTO #TEMP_ERROR_CODE
  104. EXEC proc_errorHandler 1, 'You Are Locked By The Jme System. Please Contact JME Office !', @referralCode
  105. END
  106. ELSE IF @_IsActive=0
  107. BEGIN
  108. SET @_Reasion='User Data Not Active '
  109. SET @userDetails = 'Reason = User Data Not Active.-:::-' + @userDetails
  110. INSERT INTO #TEMP_ERROR_CODE
  111. EXEC proc_errorHandler 1, 'You Are Not A Active User. Please Contact JME Office !', @referralCode
  112. END
  113. ELSE IF @_IsDelete=1
  114. BEGIN
  115. SET @_Reasion='User Data Is Deleted By System'
  116. SET @userDetails = 'Reason = User Data Is Deleted By System.-:::-' + @userDetails
  117. INSERT INTO #TEMP_ERROR_CODE
  118. EXEC proc_errorHandler 1, 'Your Data Is Blocked By System. Please Contact JME Office !', @referralCode
  119. END
  120. ELSE
  121. BEGIN
  122. SET @_Reasion='Login Successful'
  123. SET @userDetails = 'Reason = Login Successful.-:::-' + @userDetails
  124. INSERT INTO #TEMP_ERROR_CODE
  125. EXEC proc_errorHandler 0, 'Login Success', @referralCode
  126. END
  127. EXEC PROC_APPLICATION_LOGS_REFERRAL @agentId=@_referralId,@logType='Login',@IP=@IpAddress,@Reason=@_Reasion,@fieldValue=@userDetails,@user=@user,@UserData=@_userData
  128. IF NOT EXISTS(SELECT * FROM #TEMP_ERROR_CODE WHERE ERROR_CODE = 1)
  129. BEGIN
  130. SELECT * FROM #TEMP_ERROR_CODE
  131. SELECT ROW_ID, REFERRAL_CODE, REFERRAL_NAME, ISNULL(REFERRAL_ADDRESS,'N/A') REFERRAL_ADDRESS, REFERRAL_MOBILE, REFERRAL_EMAIL
  132. , AM.AGENTNAME, REFERRAL_TYPE_CODE, REFERRAL_LIMIT, @_isforceChangePwd FORCE_CHANGE_PWD ,'' BRANCH_ID
  133. FROM REFERRAL_AGENT_WISE R(NOLOCK)
  134. LEFT JOIN AGENTMASTER AM(NOLOCK) ON AM.AGENTID = R.BRANCH_ID
  135. WHERE REFERRAL_CODE = @referralCode
  136. UPDATE REFERRAL_APPLICATION_USER SET wrongPwdCount = 0
  137. WHERE referalCode = @referralCode
  138. RETURN
  139. END
  140. SELECT * FROM #TEMP_ERROR_CODE
  141. END
  142. IF @flag='changepassword'
  143. BEGIN
  144. SELECT
  145. @_IsExist = 1,
  146. @_IsLocked = RAU.isLocked,
  147. @_IsActive = RAU.IsActive,
  148. @_IsDelete = RAU.IsDeleted
  149. FROM dbo.REFERRAL_APPLICATION_USER (NOLOCK) RAU
  150. INNER JOIN REFERRAL_AGENT_WISE (NOLOCK) RA ON RA.REFERRAL_CODE=RAU.referalCode
  151. WHERE RAU.referalCode=@referralCode
  152. AND RAU.pwd=dbo.fnaencryptstring(@password)
  153. IF ISNULL(@_IsExist, 0) = 0
  154. BEGIN
  155. SET @_Reasion='User Name Or Password Not Match !'
  156. SET @userDetails = 'Reason = Login fails, Incorrect user name or password.-:::-' + @userDetails
  157. INSERT INTO #TEMP_ERROR_CODE
  158. EXEC proc_errorHandler 1, 'Old password did not match !', @referralCode
  159. END
  160. ELSE IF ISNULL(@_IsLocked, 0) = 1
  161. BEGIN
  162. SET @_Reasion='user data is locked by system'
  163. SET @userDetails = 'Reason = User data is locked by system.-:::-' + @userDetails
  164. INSERT INTO #TEMP_ERROR_CODE
  165. EXEC proc_errorHandler 1, 'You Are Locked By The Jme System. Please Contact JME Office !', @referralCode
  166. END
  167. ELSE IF ISNULL(@_IsActive, 1) = 0
  168. BEGIN
  169. SET @_Reasion='User Data Not Active '
  170. SET @userDetails = 'Reason = User Data Not Active.-:::-' + @userDetails
  171. INSERT INTO #TEMP_ERROR_CODE
  172. EXEC proc_errorHandler 1, 'You Are Not A Active User. Please Contact JME Office !', @referralCode
  173. END
  174. IF ISNULL(@_IsDelete, 0) = 1
  175. BEGIN
  176. SET @_Reasion='User Data Is Deleted By System'
  177. SET @userDetails = 'Reason = User Data Is Deleted By System.-:::-' + @userDetails
  178. INSERT INTO #TEMP_ERROR_CODE
  179. EXEC proc_errorHandler 1, 'Your Data Is Blocked By System. Please Contact JME Office !', @referralCode
  180. END
  181. IF NOT EXISTS(SELECT 1 FROM #TEMP_ERROR_CODE WHERE ERROR_CODE=1)
  182. BEGIN
  183. UPDATE REFERRAL_APPLICATION_USER SET pwd=dbo.encryptDb(@newPassword), LastPwdChangedDate = GETDATE(), isforceChangePwd = 0
  184. WHERE referalCode=@referralCode AND pwd=dbo.encryptDb(@password)
  185. SET @_Reasion='Change Password Successful'
  186. SET @userDetails = 'Reason = Change Password Successful.-:::-' + @userDetails
  187. INSERT INTO #TEMP_ERROR_CODE
  188. EXEC proc_errorHandler 0, 'Password Change Successful', @referralCode
  189. END
  190. EXEC PROC_APPLICATION_LOGS_REFERRAL @agentId=@_referralId,@logType='Change Password',@IP=@IpAddress,@Reason=@_Reasion,@fieldValue=@userDetails,@user=@user,@UserData=@_userData
  191. SELECT * FROM #TEMP_ERROR_CODE
  192. END
  193. END