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.

422 lines
29 KiB

  1. USE [FastMoneyPro_Remit]
  2. GO
  3. /****** Object: StoredProcedure [dbo].[JsonRx_Proc_UserRegistration_V2] Script Date: 8/26/2024 10:33:17 AM ******/
  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. ,@tempCustId INT = NULL
  40. )AS
  41. ---------------------------------------------------
  42. -- #101 - Mobile Changes , #361 - Multi-Language
  43. -- Remove customerAgreeDocumentTbl
  44. -- SEt mobileUser='Y' for @flag='sign-up-v2-old-cust'
  45. --#684 Referral code not working for Existing Customer
  46. -- #11394 - Addition of DOB & Full name in New registration Page
  47. -- #24439 - Addition of Duplicate Mobile Number Validation in @flag='sign-up-v2-old-cust' and @flag='sign-up-v2-new-cust'
  48. -- #31930 - removed referal Code Validation
  49. -- #32535 - Addition of mobile number length validation in @flag='sign-up-v2-new-cust'
  50. -- #34182 - Added new @flag = 'sign-up-temp-cust' for registration tracker
  51. ---------------------------------------------------
  52. BEGIN TRY
  53. DECLARE @dobDB VARCHAR(200),@code VARCHAR(100),@_errorMsg VARCHAR(300),@verifiedDate DATETIME, @customerIdNo VARCHAR(50), @customerIdOld BIGINT = NULL,
  54. @userNameRandom VARCHAR(100), @mobileNumberCompare VARCHAR(30)
  55. IF @flag = 'sign-up-pre-old-cust'
  56. BEGIN
  57. SET @mobileNumberCompare = substring(@mobile, 4, len(@mobile)-3)
  58. IF (SELECT COUNT(0)
  59. FROM CUSTOMERMASTER (NOLOCK)
  60. WHERE IDNUMBER = @idNumber
  61. AND mobile LIKE '%' + @mobileNumberCompare
  62. AND CAST(dob AS DATE) = @dob
  63. AND ISNULL(isDeleted, 'N') = 'N'
  64. AND ISNULL(ISACTIVE, 'Y') = 'Y') > 1
  65. BEGIN
  66. SELECT 1 ErrorCode,'Duplicate data found, please contact JME Support' Msg, NULL Id
  67. RETURN
  68. END
  69. SELECT @customerIdOld = CUSTOMERID, @firstName = ISNULL(firstName, '')
  70. FROM CUSTOMERMASTER (NOLOCK)
  71. WHERE IDNUMBER = @idNumber
  72. AND mobile LIKE '%' + @mobileNumberCompare
  73. AND CAST(dob AS DATE) = @dob
  74. AND ISNULL(isDeleted, 'N') = 'N'
  75. AND ISNULL(ISACTIVE, 'Y') = 'Y'
  76. AND isExistingCustomer = 1
  77. AND USERNAME IS NULL
  78. IF @customerIdOld IS NULL
  79. BEGIN
  80. SELECT 2 ErrorCode,'No records match with provided details, please contact JME Support' Msg, NULL Id
  81. RETURN
  82. END
  83. --already registered
  84. IF EXISTS(SELECT 'x' FROM dbo.mobile_userRegistration(NOLOCK) AS MUR WHERE customerId = @customerIdOld)
  85. BEGIN
  86. SELECT 3 ErrorCode,'You are already registered with JME!' Msg, NULL Id
  87. RETURN
  88. END
  89. IF EXISTS (SELECT * FROM CustomerMasterTemp (NOLOCK) WHERE customerId = @customerIdOld AND createdBy IS NOT NULL)
  90. BEGIN
  91. SELECT 3 ErrorCode,'You are already registered with JME!' Msg, NULL Id
  92. RETURN
  93. END
  94. IF EXISTS (SELECT * FROM CustomerMaster (NOLOCK) WHERE customerId = @customerIdOld AND username IS NOT NULL)
  95. BEGIN
  96. SELECT 3 ErrorCode,'You are already registered with JME!' Msg, NULL Id
  97. RETURN
  98. END
  99. DELETE FROM dbo.CustomerMasterTemp WHERE OldCustomerId = @customerIdOld
  100. SELECT @userNameRandom = DBO.GetRandomUsername(@firstName)
  101. IF EXISTS(SELECT TOP 1 1 FROM CustomerMasterTemp (NOLOCK) WHERE USERNAME = @userNameRandom)
  102. BEGIN
  103. SET @userNameRandom = DBO.GetRandomUsername(@firstName)
  104. END
  105. INSERT INTO dbo.CustomerMasterTemp(
  106. OldCustomerId,dob,mobile,isActive, idNumber
  107. )
  108. SELECT
  109. @customerIdOld,@dob,@mobile,'N', @idNumber
  110. SET @customerId=SCOPE_IDENTITY()
  111. SELECT 0 ErrorCode, 'Success' Msg, @customerId Id, '' userName
  112. END
  113. ELSE IF @flag = 'sign-up-v2-old-cust'
  114. BEGIN
  115. IF ISNULL(@username, '') = ''
  116. BEGIN
  117. SELECT 1 ErrorCode,'Username can not be blank!' Msg, NULL Id
  118. RETURN
  119. END
  120. --user already registered
  121. IF EXISTS(SELECT 'x' FROM dbo.customerMaster AS CM(NOLOCK) WHERE CM.username = @username)
  122. BEGIN
  123. SELECT 2 ErrorCode,'Customer already registered, with this username!' Msg, NULL Id
  124. RETURN
  125. END
  126. --email already registered
  127. IF EXISTS(SELECT 'x' FROM dbo.customerMaster AS CM(NOLOCK) WHERE CM.email = @username)
  128. BEGIN
  129. SELECT 2 ErrorCode,'Customer already registered, with this email!' Msg, NULL Id
  130. RETURN
  131. END
  132. -- duplicate mobile number
  133. IF EXISTS (
  134. SELECT 1
  135. FROM customermaster
  136. WHERE
  137. (LEN(@mobile) = 10 AND (
  138. mobile = @mobile OR
  139. '+44' + mobile = @mobile
  140. ))
  141. OR
  142. (LEN(@mobile) = 13 AND (
  143. mobile = @mobile OR
  144. SUBSTRING(@mobile, 4, 10) = mobile
  145. ))
  146. )
  147. BEGIN
  148. SELECT '1' AS ErrorCode
  149. ,'Mobile No. ''' + @mobile + ''' is already used' AS Msg
  150. ,@mobile AS id;
  151. RETURN
  152. END
  153. --invalid referenceid
  154. IF NOT EXISTS(SELECT 'x' FROM dbo.CustomerMasterTemp AS CM(NOLOCK) WHERE customerId = @referenceId)
  155. BEGIN
  156. SELECT 3 ErrorCode,'You can not modify email once created, please contact JME!' Msg, NULL Id
  157. RETURN
  158. END
  159. --invalid referenceid
  160. IF NOT EXISTS(SELECT 'x' FROM dbo.CustomerMasterTemp AS CM(NOLOCK) WHERE customerId = @referenceId AND createdBy IS NULL)
  161. BEGIN
  162. SELECT 4 ErrorCode,'Invalid data!' Msg, NULL Id
  163. RETURN
  164. END
  165. --user already registered
  166. IF EXISTS(SELECT 'x' FROM dbo.customerMasterTemp AS CM(NOLOCK) WHERE username = @username)
  167. BEGIN
  168. SELECT 5 ErrorCode,'User already registered!' Msg, NULL Id
  169. RETURN
  170. END
  171. --Username already taken
  172. IF EXISTS(SELECT 'x' FROM dbo.mobile_userRegistration(NOLOCK) AS MUR WHERE username = @username)
  173. BEGIN
  174. SELECT 6 ErrorCode,'Username already taken!' Msg, NULL Id
  175. RETURN
  176. END
  177. BEGIN TRAN
  178. SELECT @customerIdOld = OldCustomerId
  179. FROM CustomerMasterTemp (NOLOCK)
  180. WHERE customerId = @referenceId
  181. UPDATE CustomerMaster SET username = @username, customerPassword = dbo.FNAEncryptString(@password)
  182. ,MODIFIEDBY = @username, MODIFIEDDate = GETDATE(), isActive = 'Y', txnPin = @txnPin
  183. ,email = @username, customerEmail = @username, createdFrom = 'C', mobileUser='Y', referelCode=@referralCode
  184. WHERE customerId = @customerIdOld
  185. INSERT INTO dbo.mobile_userRegistration(
  186. clientId,username,createdDate,IMEI,appVersion,phoneBrand,phoneOs,osVersion,deviceId,customerId,cmRegistrationId
  187. )
  188. SELECT
  189. @clientId,@username,GETDATE(),@IMEI,@appVersion,@phoneBrand,@phoneOs,@osVersion,@fcmId,@customerIdOld,@uuid
  190. DELETE FROM CustomerMasterTemp WHERE customerId = @referenceId
  191. COMMIT TRAN
  192. IF @@TRANCOUNT=0
  193. BEGIN
  194. --successful registered
  195. 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
  196. --rowId, PdfName, AgreePdfPath, *
  197. --FROM customerAgreeDocumentTbl
  198. --WHERE targetObj = 'STAGING'
  199. RETURN
  200. END
  201. END
  202. IF @flag = 'sign-up-v2-new-cust'
  203. BEGIN
  204. DECLARE @COUNTRYID INT;
  205. -- User already registered
  206. IF EXISTS(SELECT 'x' FROM dbo.customerMaster AS CM(NOLOCK) WHERE CM.userName = @username)
  207. BEGIN
  208. SELECT 1 AS ErrorCode, 'Customer already registered, with this username!' AS Msg, NULL AS Id;
  209. RETURN;
  210. END
  211. IF EXISTS (
  212. SELECT 1
  213. FROM customermaster
  214. WHERE
  215. (LEN(@mobile) = 10 AND (
  216. mobile = @mobile OR
  217. '+44' + mobile = @mobile
  218. ))
  219. OR
  220. (LEN(@mobile) = 13 AND (
  221. mobile = @mobile OR
  222. SUBSTRING(@mobile, 4, 10) = mobile
  223. ))
  224. )
  225. BEGIN
  226. SELECT 9 AS ErrorCode,
  227. 'Mobile No. ''' + @mobile + ''' is already used' AS Msg,
  228. @mobile AS Id;
  229. RETURN;
  230. END
  231. DECLARE @mobileLen INT;
  232. SET @mobileLen = LEN(@mobile);
  233. IF((@mobile LIKE '+44%' AND @mobileLen != 13) OR (@mobile NOT LIKE '+44%' AND @mobileLen != 10))
  234. BEGIN
  235. SELECT 9 AS ErrorCode,
  236. 'The mobile number must be 13 digits long if it starts with ''+44'', or 10 digits if it does not' AS Msg,
  237. @mobile AS Id;
  238. RETURN;
  239. END
  240. -- User already registered in temp table
  241. IF EXISTS(SELECT 'x' FROM dbo.customerMasterTemp AS CM(NOLOCK) WHERE username = @username)
  242. BEGIN
  243. SELECT 2 AS ErrorCode, 'User already registered!' AS Msg, NULL AS Id;
  244. RETURN;
  245. END
  246. -- Username already taken
  247. IF EXISTS(SELECT 'x' FROM dbo.mobile_userRegistration(NOLOCK) AS MUR WHERE username = @username)
  248. BEGIN
  249. SELECT 3 AS ErrorCode, 'Username already taken!' AS Msg, NULL AS Id;
  250. RETURN;
  251. END
  252. IF @referralCode IS NOT NULL
  253. BEGIN
  254. IF NOT EXISTS (SELECT 1 FROM dbo.customerMaster(NOLOCK) WHERE membershipId = @referralCode)
  255. AND NOT EXISTS (SELECT 1 FROM dbo.REFERRAL_AGENT_WISE(NOLOCK) WHERE REFERRAL_CODE = @referralCode)
  256. BEGIN
  257. SET @referralCode = NULL;
  258. END
  259. END
  260. SELECT @COUNTRYID = countryId
  261. FROM countryMaster (NOLOCK)
  262. WHERE COUNTRYCODE = @nativeCountry;
  263. IF @COUNTRYID IS NULL
  264. BEGIN
  265. SET @COUNTRYID = @nativeCountry;
  266. END
  267. BEGIN TRAN;
  268. BEGIN TRY
  269. INSERT INTO dbo.CustomerMasterTemp(
  270. username, customerPassword, createdBy, createdDate, isActive, nativeCountry, referelCode, idNumber, mobile, email, customerEmail, mobileUser, fullName, dob, firstName, middleName, lastName1,
  271. city, address, gender, isEmailVerified, zipCode, ADDITIONALADDRESS
  272. )
  273. SELECT
  274. @username, dbo.FNAEncryptString(@password), @username, GETDATE(), 'Y', @COUNTRYID, @referralCode, @idNumber, @mobile, @username, @username, 'Y', @fullName, @dob, @FirstName, @MiddleName, @LastName,
  275. @city, @address1, @gender, '0', @postalCode, @address2
  276. SET @customerId = SCOPE_IDENTITY();
  277. INSERT INTO dbo.mobile_userRegistration(
  278. clientId, username, createdDate, appVersion, phoneBrand, phoneOs, osVersion, deviceId, customerId, cmRegistrationId
  279. )
  280. SELECT
  281. @clientId, @username, GETDATE(), @appVersion, @phoneBrand, @phoneOs, @osVersion, @fcmId, @customerId, @uuid;
  282. IF @tempCustId IS NOT NULL
  283. BEGIN
  284. UPDATE TempUserRegister SET isActive = 'N' WHERE tempCustId = @tempCustId;
  285. END
  286. COMMIT TRAN;
  287. SELECT 0 AS ErrorCode, 'Thank you for your registration. Please complete your profile or you can skip and start sending money using IME London.' AS Msg, NULL AS Id;
  288. END TRY
  289. BEGIN CATCH
  290. ROLLBACK TRAN;
  291. SELECT -1 AS ErrorCode, ERROR_MESSAGE() AS Msg, NULL AS Id;
  292. END CATCH;
  293. END
  294. IF @flag = 'chk-valid-referralCode'
  295. BEGIN
  296. --IF NOT EXISTS (SELECT 1 FROM dbo.customerMaster(NOLOCK) WHERE membershipId = @referralCode)
  297. -- AND NOT EXISTS (SELECT 1 FROM dbo.REFERRAL_AGENT_WISE(NOLOCK) WHERE REFERRAL_CODE = @referralCode)
  298. --BEGIN
  299. -- SELECT 1 ErrorCode,'Invalid Referral Code!' Msg, @referralCode Id
  300. -- RETURN
  301. --END
  302. --ELSE
  303. BEGIN
  304. SELECT 0 ErrorCode,'SUCCESS' Msg, @referralCode Id
  305. END
  306. END
  307. IF @flag = 'sign-up-temp-cust'
  308. BEGIN
  309. --IF EXISTS (
  310. -- SELECT 1
  311. -- FROM TempUserRegister
  312. -- WHERE
  313. -- (LEN(@mobile) = 10 AND (
  314. -- mobile = @mobile OR
  315. -- '+44' + mobile = @mobile
  316. -- ))
  317. -- OR
  318. -- (LEN(@mobile) = 13 AND (
  319. -- mobile = @mobile OR
  320. -- SUBSTRING(@mobile, 4, 10) = mobile
  321. -- ))
  322. --)
  323. --BEGIN
  324. -- SELECT '9' AS ErrorCode
  325. -- ,'Mobile No. ''' + @mobile + ''' is already used' AS Msg
  326. -- ,@mobile AS id;
  327. -- RETURN
  328. --END
  329. --SET @mobileLen = LEN(@mobile)
  330. --IF((@mobile LIKE '+44%' AND @mobileLen != 13) OR (@mobile NOT LIKE '+44%' AND @mobileLen != 10))
  331. --BEGIN
  332. -- SELECT '9' AS ErrorCode
  333. -- ,'The mobile number must be 13 digits long if it starts with ''+44'', or 10 digits if it does not' AS Msg
  334. -- ,@mobile AS id;
  335. -- RETURN
  336. --END
  337. BEGIN TRAN
  338. INSERT INTO dbo.TempUserRegister(
  339. tempCustId,fullName, mobile, email, appVersion, phoneBrand, phoneOs, fcmId, osVersion, createdDate, isOtpVerified, isActive
  340. )
  341. SELECT @tempCustId, @fullName, @mobile, @username, @appVersion, @phoneBrand, @phoneOs, @fcmId, @osVersion, GETDATE(), NULL, 'Y'
  342. SET @TempCustId = SCOPE_IDENTITY();
  343. COMMIT TRAN
  344. IF @@TRANCOUNT=0
  345. BEGIN
  346. SELECT 0 ErrorCode,'Customer data inserted successfully.' Msg, @TempCustId Id
  347. END
  348. END
  349. IF @flag = 'update-temp-cust'
  350. BEGIN
  351. UPDATE TempUserRegister SET email = @username WHERE tempCustId = @tempCustId
  352. SELECT 0 ErrorCode,'Customer data updated successfully.' Msg, @TempCustId Id
  353. END
  354. IF @flag = 'get-id'
  355. BEGIN
  356. SELECT TOP 1 tempCustId FROM TempUserRegister ORDER BY tempCustId DESC
  357. RETURN
  358. END
  359. END TRY
  360. BEGIN CATCH
  361. IF @@TRANCOUNT<>0
  362. ROLLBACK TRAN
  363. --Execption
  364. SELECT 1 ErrorCode,dbo.GetMessage(@language,'9999')+CONVERT(VARCHAR,ERROR_LINE())+ERROR_MESSAGE() Msg, NULL Id
  365. RETURN
  366. END CATCH