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.

344 lines
24 KiB

  1. USE [FastMoneyPro_Remit]
  2. GO
  3. /****** Object: StoredProcedure [dbo].[JsonRx_Proc_UserRegistration_V2] Script Date: 4/15/2024 5:34:02 PM ******/
  4. SET ANSI_NULLS ON
  5. GO
  6. SET QUOTED_IDENTIFIER ON
  7. GO
  8. ALTER PROCEDURE [dbo].[JsonRx_Proc_UserRegistration_V2](
  9. @language VARCHAR(100) = 'en'
  10. ,@customerId VARCHAR(100) = NULL
  11. ,@username VARCHAR(100) = NULL
  12. ,@flag VARCHAR(100) = NULL
  13. ,@password VARCHAR(100) = NULL
  14. ,@txnPin VARCHAR(100) = NULL
  15. ,@idNumber VARCHAR(100) = NULL
  16. ,@clientId VARCHAR(100) = NULL
  17. ,@IMEI VARCHAR(100) = NULL
  18. ,@appVersion VARCHAR(100) = NULL
  19. ,@phoneBrand VARCHAR(100) = NULL
  20. ,@phoneOs VARCHAR(100) = NULL
  21. ,@osVersion VARCHAR(100) = NULL
  22. ,@deviceId VARCHAR(100) = NULL
  23. ,@dob VARCHAR(100) = NULL
  24. ,@uuid VARCHAR(100) = NULL
  25. ,@fcmId VARCHAR(250) = NULL
  26. ,@mobile VARCHAR(100) = NULL
  27. ,@nativeCountry VARCHAR(5) = NULL
  28. ,@referralCode VARCHAR(100) = NULL
  29. ,@referenceId BIGINT = NULL
  30. ,@fullName VARCHAR(50) = NULL
  31. ,@FirstName VARCHAR(100) = NULL
  32. ,@LastName VARCHAR(100) = NULL
  33. ,@MiddleName VARCHAR(100) = NULL
  34. ,@postalCode VARCHAR(100) = NULL
  35. ,@address1 NVARCHAR(200) = NULL
  36. ,@address2 NVARCHAR(200) = NULL
  37. ,@city VARCHAR(100) = NULL
  38. ,@gender VARCHAR(10) = NULL
  39. )AS
  40. ---------------------------------------------------
  41. -- #101 - Mobile Changes , #361 - Multi-Language
  42. -- Remove customerAgreeDocumentTbl
  43. -- SEt mobileUser='Y' for @flag='sign-up-v2-old-cust'
  44. --#684 Referral code not working for Existing Customer
  45. -- #11394 - Addition of DOB & Full name in New registration Page
  46. -- #24439 - Addition of Duplicate Mobile Number Validation in @flag='sign-up-v2-old-cust' and @flag='sign-up-v2-new-cust'
  47. ---------------------------------------------------
  48. BEGIN TRY
  49. DECLARE @dobDB VARCHAR(200),@code VARCHAR(100),@_errorMsg VARCHAR(300),@verifiedDate DATETIME, @customerIdNo VARCHAR(50), @customerIdOld BIGINT = NULL,
  50. @userNameRandom VARCHAR(100), @mobileNumberCompare VARCHAR(30)
  51. IF @flag = 'sign-up-pre-old-cust'
  52. BEGIN
  53. SET @mobileNumberCompare = substring(@mobile, 4, len(@mobile)-3)
  54. IF (SELECT COUNT(0)
  55. FROM CUSTOMERMASTER (NOLOCK)
  56. WHERE IDNUMBER = @idNumber
  57. AND mobile LIKE '%' + @mobileNumberCompare
  58. AND CAST(dob AS DATE) = @dob
  59. AND ISNULL(isDeleted, 'N') = 'N'
  60. AND ISNULL(ISACTIVE, 'Y') = 'Y') > 1
  61. BEGIN
  62. SELECT 1 ErrorCode,'Duplicate data found, please contact JME Support' Msg, NULL Id
  63. RETURN
  64. END
  65. SELECT @customerIdOld = CUSTOMERID, @firstName = ISNULL(firstName, '')
  66. FROM CUSTOMERMASTER (NOLOCK)
  67. WHERE IDNUMBER = @idNumber
  68. AND mobile LIKE '%' + @mobileNumberCompare
  69. AND CAST(dob AS DATE) = @dob
  70. AND ISNULL(isDeleted, 'N') = 'N'
  71. AND ISNULL(ISACTIVE, 'Y') = 'Y'
  72. AND isExistingCustomer = 1
  73. AND USERNAME IS NULL
  74. IF @customerIdOld IS NULL
  75. BEGIN
  76. SELECT 2 ErrorCode,'No records match with provided details, please contact JME Support' Msg, NULL Id
  77. RETURN
  78. END
  79. --already registered
  80. IF EXISTS(SELECT 'x' FROM dbo.mobile_userRegistration(NOLOCK) AS MUR WHERE customerId = @customerIdOld)
  81. BEGIN
  82. SELECT 3 ErrorCode,'You are already registered with JME!' Msg, NULL Id
  83. RETURN
  84. END
  85. IF EXISTS (SELECT * FROM CustomerMasterTemp (NOLOCK) WHERE customerId = @customerIdOld AND createdBy IS NOT NULL)
  86. BEGIN
  87. SELECT 3 ErrorCode,'You are already registered with JME!' Msg, NULL Id
  88. RETURN
  89. END
  90. IF EXISTS (SELECT * FROM CustomerMaster (NOLOCK) WHERE customerId = @customerIdOld AND username IS NOT NULL)
  91. BEGIN
  92. SELECT 3 ErrorCode,'You are already registered with JME!' Msg, NULL Id
  93. RETURN
  94. END
  95. DELETE FROM dbo.CustomerMasterTemp WHERE OldCustomerId = @customerIdOld
  96. SELECT @userNameRandom = DBO.GetRandomUsername(@firstName)
  97. IF EXISTS(SELECT TOP 1 1 FROM CustomerMasterTemp (NOLOCK) WHERE USERNAME = @userNameRandom)
  98. BEGIN
  99. SET @userNameRandom = DBO.GetRandomUsername(@firstName)
  100. END
  101. INSERT INTO dbo.CustomerMasterTemp(
  102. OldCustomerId,dob,mobile,isActive, idNumber
  103. )
  104. SELECT
  105. @customerIdOld,@dob,@mobile,'N', @idNumber
  106. SET @customerId=SCOPE_IDENTITY()
  107. SELECT 0 ErrorCode, 'Success' Msg, @customerId Id, '' userName
  108. END
  109. ELSE IF @flag = 'sign-up-v2-old-cust'
  110. BEGIN
  111. IF ISNULL(@username, '') = ''
  112. BEGIN
  113. SELECT 1 ErrorCode,'Username can not be blank!' Msg, NULL Id
  114. RETURN
  115. END
  116. --user already registered
  117. IF EXISTS(SELECT 'x' FROM dbo.customerMaster AS CM(NOLOCK) WHERE CM.username = @username)
  118. BEGIN
  119. SELECT 2 ErrorCode,'Customer already registered, with this username!' Msg, NULL Id
  120. RETURN
  121. END
  122. --email already registered
  123. IF EXISTS(SELECT 'x' FROM dbo.customerMaster AS CM(NOLOCK) WHERE CM.email = @username)
  124. BEGIN
  125. SELECT 2 ErrorCode,'Customer already registered, with this email!' Msg, NULL Id
  126. RETURN
  127. END
  128. -- duplicate mobile number
  129. IF EXISTS (
  130. SELECT 1
  131. FROM customermaster
  132. WHERE
  133. (LEN(@mobile) = 10 AND (
  134. mobile = @mobile OR
  135. '+44' + mobile = @mobile
  136. ))
  137. OR
  138. (LEN(@mobile) = 13 AND (
  139. mobile = @mobile OR
  140. SUBSTRING(@mobile, 4, 10) = mobile
  141. ))
  142. )
  143. BEGIN
  144. SELECT '1' AS ErrorCode
  145. ,'Mobile No. ''' + @mobile + ''' is already used' AS Msg
  146. ,@mobile AS id;
  147. RETURN
  148. END
  149. --invalid referenceid
  150. IF NOT EXISTS(SELECT 'x' FROM dbo.CustomerMasterTemp AS CM(NOLOCK) WHERE customerId = @referenceId)
  151. BEGIN
  152. SELECT 3 ErrorCode,'You can not modify email once created, please contact JME!' Msg, NULL Id
  153. RETURN
  154. END
  155. --invalid referenceid
  156. IF NOT EXISTS(SELECT 'x' FROM dbo.CustomerMasterTemp AS CM(NOLOCK) WHERE customerId = @referenceId AND createdBy IS NULL)
  157. BEGIN
  158. SELECT 4 ErrorCode,'Invalid data!' Msg, NULL Id
  159. RETURN
  160. END
  161. --user already registered
  162. IF EXISTS(SELECT 'x' FROM dbo.customerMasterTemp AS CM(NOLOCK) WHERE username = @username)
  163. BEGIN
  164. SELECT 5 ErrorCode,'User already registered!' Msg, NULL Id
  165. RETURN
  166. END
  167. --Username already taken
  168. IF EXISTS(SELECT 'x' FROM dbo.mobile_userRegistration(NOLOCK) AS MUR WHERE username = @username)
  169. BEGIN
  170. SELECT 6 ErrorCode,'Username already taken!' Msg, NULL Id
  171. RETURN
  172. END
  173. BEGIN TRAN
  174. SELECT @customerIdOld = OldCustomerId
  175. FROM CustomerMasterTemp (NOLOCK)
  176. WHERE customerId = @referenceId
  177. UPDATE CustomerMaster SET username = @username, customerPassword = dbo.FNAEncryptString(@password)
  178. ,MODIFIEDBY = @username, MODIFIEDDate = GETDATE(), isActive = 'Y', txnPin = @txnPin
  179. ,email = @username, customerEmail = @username, createdFrom = 'C', mobileUser='Y', referelCode=@referralCode
  180. WHERE customerId = @customerIdOld
  181. INSERT INTO dbo.mobile_userRegistration(
  182. clientId,username,createdDate,IMEI,appVersion,phoneBrand,phoneOs,osVersion,deviceId,customerId,cmRegistrationId
  183. )
  184. SELECT
  185. @clientId,@username,GETDATE(),@IMEI,@appVersion,@phoneBrand,@phoneOs,@osVersion,@fcmId,@customerIdOld,@uuid
  186. DELETE FROM CustomerMasterTemp WHERE customerId = @referenceId
  187. COMMIT TRAN
  188. IF @@TRANCOUNT=0
  189. BEGIN
  190. --successful registered
  191. SELECT 0 ErrorCode,'Thank you for your registration. Please complete your profile or you can skip and start sending money using IME London.' Msg, NULL Id
  192. --rowId, PdfName, AgreePdfPath, *
  193. --FROM customerAgreeDocumentTbl
  194. --WHERE targetObj = 'STAGING'
  195. RETURN
  196. END
  197. END
  198. IF @flag='sign-up-v2-new-cust'
  199. BEGIN
  200. DECLARE @COUNTRYID INT
  201. --user already registered
  202. IF EXISTS(SELECT 'x' FROM dbo.customerMaster AS CM(NOLOCK) WHERE CM.userName = @username )
  203. BEGIN
  204. SELECT 1 ErrorCode,'Customer already registered, with this username!' Msg, NULL Id
  205. RETURN
  206. END
  207. IF EXISTS (
  208. SELECT 1
  209. FROM customermaster
  210. WHERE
  211. (LEN(@mobile) = 10 AND (
  212. mobile = @mobile OR
  213. '+44' + mobile = @mobile
  214. ))
  215. OR
  216. (LEN(@mobile) = 13 AND (
  217. mobile = @mobile OR
  218. SUBSTRING(@mobile, 4, 10) = mobile
  219. ))
  220. )
  221. BEGIN
  222. SELECT '1' AS ErrorCode
  223. ,'Mobile No. ''' + @mobile + ''' is already used' AS Msg
  224. ,@mobile AS id;
  225. RETURN
  226. END
  227. --user already registered
  228. IF EXISTS(SELECT 'x' FROM dbo.customerMasterTemp AS CM(NOLOCK) WHERE username=@username)
  229. BEGIN
  230. SELECT 2 ErrorCode,'User already registered!' Msg, NULL Id
  231. RETURN
  232. END
  233. --Username already taken
  234. IF EXISTS(SELECT 'x' FROM dbo.mobile_userRegistration(NOLOCK) AS MUR WHERE username=@username)
  235. BEGIN
  236. SELECT 3 ErrorCode,'Username already taken!' Msg, NULL Id
  237. RETURN
  238. END
  239. IF @referralCode IS NOT NULL
  240. BEGIN
  241. IF NOT EXISTS (SELECT 1 FROM dbo.customerMaster(NOLOCK) WHERE membershipId = @referralCode)
  242. AND NOT EXISTS (SELECT 1 FROM dbo.REFERRAL_AGENT_WISE(NOLOCK) WHERE REFERRAL_CODE = @referralCode)
  243. BEGIN
  244. SELECT 8 ErrorCode,'Invalid Referral Code! Please enter valid referral code.' Msg, @referralCode Id
  245. RETURN
  246. END
  247. END
  248. SELECT @COUNTRYID = countryId
  249. FROM countryMaster (NOLOCK)
  250. WHERE COUNTRYCODE = @nativeCountry
  251. if(@COUNTRYID IS NULL)
  252. BEGIN
  253. SET @COUNTRYID=@nativeCountry;
  254. END
  255. BEGIN TRAN
  256. INSERT INTO dbo.CustomerMasterTemp(
  257. username,customerPassword,createdBy,createdDate,isActive,nativeCountry, referelCode, idNumber, mobile , email, customerEmail, mobileUser , fullName, dob, firstName, middleName, lastName1
  258. ,city,address,gender, isEmailVerified,zipCode,ADDITIONALADDRESS
  259. )
  260. SELECT
  261. @username,dbo.FNAEncryptString(@password),@username,GETDATE(),'Y', @COUNTRYID, @referralCode, @idNumber, @mobile, @username, @username , 'Y' , @fullName, @dob,@FirstName,@MiddleName, @LastName
  262. ,@city,@address1,@gender,'0',@postalCode,@address2
  263. SET @customerId=SCOPE_IDENTITY()
  264. INSERT INTO dbo.mobile_userRegistration(
  265. clientId,username,createdDate,appVersion,phoneBrand,phoneOs,osVersion,deviceId,customerId, cmRegistrationId
  266. )
  267. SELECT
  268. @clientId,@username,GETDATE(),@appVersion,@phoneBrand,@phoneOs,@osVersion,@fcmId,@customerId, @uuid
  269. COMMIT TRAN
  270. IF @@TRANCOUNT=0
  271. BEGIN
  272. --successful registered
  273. SELECT 0 ErrorCode,'Thank you for your registration. Please complete your profile or you can skip and start sending money using IME London.' Msg, NULL Id
  274. RETURN
  275. END
  276. END
  277. IF @flag = 'chk-valid-referralCode'
  278. BEGIN
  279. IF NOT EXISTS (SELECT 1 FROM dbo.customerMaster(NOLOCK) WHERE membershipId = @referralCode)
  280. AND NOT EXISTS (SELECT 1 FROM dbo.REFERRAL_AGENT_WISE(NOLOCK) WHERE REFERRAL_CODE = @referralCode)
  281. BEGIN
  282. SELECT 1 ErrorCode,'Invalid Referral Code!' Msg, @referralCode Id
  283. RETURN
  284. END
  285. ELSE
  286. BEGIN
  287. SELECT 0 ErrorCode,'SUCCESS' Msg, @referralCode Id
  288. END
  289. END
  290. END TRY
  291. BEGIN CATCH
  292. IF @@TRANCOUNT<>0
  293. ROLLBACK TRAN
  294. --Execption
  295. SELECT 1 ErrorCode,dbo.GetMessage(@language,'9999')+CONVERT(VARCHAR,ERROR_LINE())+ERROR_MESSAGE() Msg, NULL Id
  296. RETURN
  297. END CATCH