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.

235 lines
10 KiB

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