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

USE [FastMoneyPro_Remit]
GO
/****** Object: StoredProcedure [dbo].[JsonRx_Proc_UserRegistration_V2] Script Date: 6/14/2024 12:04:00 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
ALTER PROCEDURE [dbo].[JsonRx_Proc_UserRegistration_V2](
@language VARCHAR(100) = 'en'
,@customerId VARCHAR(100) = NULL
,@username VARCHAR(100) = NULL
,@flag VARCHAR(100) = NULL
,@password VARCHAR(100) = NULL
,@txnPin VARCHAR(100) = NULL
,@idNumber VARCHAR(100) = NULL
,@clientId VARCHAR(100) = NULL
,@IMEI VARCHAR(100) = NULL
,@appVersion VARCHAR(100) = NULL
,@phoneBrand VARCHAR(100) = NULL
,@phoneOs VARCHAR(100) = NULL
,@osVersion VARCHAR(100) = NULL
,@deviceId VARCHAR(100) = NULL
,@dob VARCHAR(100) = NULL
,@uuid VARCHAR(100) = NULL
,@fcmId VARCHAR(250) = NULL
,@mobile VARCHAR(100) = NULL
,@nativeCountry VARCHAR(5) = NULL
,@referralCode VARCHAR(100) = NULL
,@referenceId BIGINT = NULL
,@fullName VARCHAR(50) = NULL
,@FirstName VARCHAR(100) = NULL
,@LastName VARCHAR(100) = NULL
,@MiddleName VARCHAR(100) = NULL
,@postalCode VARCHAR(100) = NULL
,@address1 NVARCHAR(200) = NULL
,@address2 NVARCHAR(200) = NULL
,@city VARCHAR(100) = NULL
,@gender VARCHAR(10) = NULL
)AS
---------------------------------------------------
-- #101 - Mobile Changes , #361 - Multi-Language
-- Remove customerAgreeDocumentTbl
-- SEt mobileUser='Y' for @flag='sign-up-v2-old-cust'
--#684 Referral code not working for Existing Customer
-- #11394 - Addition of DOB & Full name in New registration Page
-- #24439 - Addition of Duplicate Mobile Number Validation in @flag='sign-up-v2-old-cust' and @flag='sign-up-v2-new-cust'
-- #31930 - removed referal Code Validation
---------------------------------------------------
BEGIN TRY
DECLARE @dobDB VARCHAR(200),@code VARCHAR(100),@_errorMsg VARCHAR(300),@verifiedDate DATETIME, @customerIdNo VARCHAR(50), @customerIdOld BIGINT = NULL,
@userNameRandom VARCHAR(100), @mobileNumberCompare VARCHAR(30)
IF @flag = 'sign-up-pre-old-cust'
BEGIN
SET @mobileNumberCompare = substring(@mobile, 4, len(@mobile)-3)
IF (SELECT COUNT(0)
FROM CUSTOMERMASTER (NOLOCK)
WHERE IDNUMBER = @idNumber
AND mobile LIKE '%' + @mobileNumberCompare
AND CAST(dob AS DATE) = @dob
AND ISNULL(isDeleted, 'N') = 'N'
AND ISNULL(ISACTIVE, 'Y') = 'Y') > 1
BEGIN
SELECT 1 ErrorCode,'Duplicate data found, please contact JME Support' Msg, NULL Id
RETURN
END
SELECT @customerIdOld = CUSTOMERID, @firstName = ISNULL(firstName, '')
FROM CUSTOMERMASTER (NOLOCK)
WHERE IDNUMBER = @idNumber
AND mobile LIKE '%' + @mobileNumberCompare
AND CAST(dob AS DATE) = @dob
AND ISNULL(isDeleted, 'N') = 'N'
AND ISNULL(ISACTIVE, 'Y') = 'Y'
AND isExistingCustomer = 1
AND USERNAME IS NULL
IF @customerIdOld IS NULL
BEGIN
SELECT 2 ErrorCode,'No records match with provided details, please contact JME Support' Msg, NULL Id
RETURN
END
--already registered
IF EXISTS(SELECT 'x' FROM dbo.mobile_userRegistration(NOLOCK) AS MUR WHERE customerId = @customerIdOld)
BEGIN
SELECT 3 ErrorCode,'You are already registered with JME!' Msg, NULL Id
RETURN
END
IF EXISTS (SELECT * FROM CustomerMasterTemp (NOLOCK) WHERE customerId = @customerIdOld AND createdBy IS NOT NULL)
BEGIN
SELECT 3 ErrorCode,'You are already registered with JME!' Msg, NULL Id
RETURN
END
IF EXISTS (SELECT * FROM CustomerMaster (NOLOCK) WHERE customerId = @customerIdOld AND username IS NOT NULL)
BEGIN
SELECT 3 ErrorCode,'You are already registered with JME!' Msg, NULL Id
RETURN
END
DELETE FROM dbo.CustomerMasterTemp WHERE OldCustomerId = @customerIdOld
SELECT @userNameRandom = DBO.GetRandomUsername(@firstName)
IF EXISTS(SELECT TOP 1 1 FROM CustomerMasterTemp (NOLOCK) WHERE USERNAME = @userNameRandom)
BEGIN
SET @userNameRandom = DBO.GetRandomUsername(@firstName)
END
INSERT INTO dbo.CustomerMasterTemp(
OldCustomerId,dob,mobile,isActive, idNumber
)
SELECT
@customerIdOld,@dob,@mobile,'N', @idNumber
SET @customerId=SCOPE_IDENTITY()
SELECT 0 ErrorCode, 'Success' Msg, @customerId Id, '' userName
END
ELSE IF @flag = 'sign-up-v2-old-cust'
BEGIN
IF ISNULL(@username, '') = ''
BEGIN
SELECT 1 ErrorCode,'Username can not be blank!' Msg, NULL Id
RETURN
END
--user already registered
IF EXISTS(SELECT 'x' FROM dbo.customerMaster AS CM(NOLOCK) WHERE CM.username = @username)
BEGIN
SELECT 2 ErrorCode,'Customer already registered, with this username!' Msg, NULL Id
RETURN
END
--email already registered
IF EXISTS(SELECT 'x' FROM dbo.customerMaster AS CM(NOLOCK) WHERE CM.email = @username)
BEGIN
SELECT 2 ErrorCode,'Customer already registered, with this email!' Msg, NULL Id
RETURN
END
-- duplicate mobile number
IF EXISTS (
SELECT 1
FROM customermaster
WHERE
(LEN(@mobile) = 10 AND (
mobile = @mobile OR
'+44' + mobile = @mobile
))
OR
(LEN(@mobile) = 13 AND (
mobile = @mobile OR
SUBSTRING(@mobile, 4, 10) = mobile
))
)
BEGIN
SELECT '1' AS ErrorCode
,'Mobile No. ''' + @mobile + ''' is already used' AS Msg
,@mobile AS id;
RETURN
END
--invalid referenceid
IF NOT EXISTS(SELECT 'x' FROM dbo.CustomerMasterTemp AS CM(NOLOCK) WHERE customerId = @referenceId)
BEGIN
SELECT 3 ErrorCode,'You can not modify email once created, please contact JME!' Msg, NULL Id
RETURN
END
--invalid referenceid
IF NOT EXISTS(SELECT 'x' FROM dbo.CustomerMasterTemp AS CM(NOLOCK) WHERE customerId = @referenceId AND createdBy IS NULL)
BEGIN
SELECT 4 ErrorCode,'Invalid data!' Msg, NULL Id
RETURN
END
--user already registered
IF EXISTS(SELECT 'x' FROM dbo.customerMasterTemp AS CM(NOLOCK) WHERE username = @username)
BEGIN
SELECT 5 ErrorCode,'User already registered!' Msg, NULL Id
RETURN
END
--Username already taken
IF EXISTS(SELECT 'x' FROM dbo.mobile_userRegistration(NOLOCK) AS MUR WHERE username = @username)
BEGIN
SELECT 6 ErrorCode,'Username already taken!' Msg, NULL Id
RETURN
END
BEGIN TRAN
SELECT @customerIdOld = OldCustomerId
FROM CustomerMasterTemp (NOLOCK)
WHERE customerId = @referenceId
UPDATE CustomerMaster SET username = @username, customerPassword = dbo.FNAEncryptString(@password)
,MODIFIEDBY = @username, MODIFIEDDate = GETDATE(), isActive = 'Y', txnPin = @txnPin
,email = @username, customerEmail = @username, createdFrom = 'C', mobileUser='Y', referelCode=@referralCode
WHERE customerId = @customerIdOld
INSERT INTO dbo.mobile_userRegistration(
clientId,username,createdDate,IMEI,appVersion,phoneBrand,phoneOs,osVersion,deviceId,customerId,cmRegistrationId
)
SELECT
@clientId,@username,GETDATE(),@IMEI,@appVersion,@phoneBrand,@phoneOs,@osVersion,@fcmId,@customerIdOld,@uuid
DELETE FROM CustomerMasterTemp WHERE customerId = @referenceId
COMMIT TRAN
IF @@TRANCOUNT=0
BEGIN
--successful registered
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
--rowId, PdfName, AgreePdfPath, *
--FROM customerAgreeDocumentTbl
--WHERE targetObj = 'STAGING'
RETURN
END
END
IF @flag='sign-up-v2-new-cust'
BEGIN
DECLARE @COUNTRYID INT
--user already registered
IF EXISTS(SELECT 'x' FROM dbo.customerMaster AS CM(NOLOCK) WHERE CM.userName = @username )
BEGIN
SELECT 1 ErrorCode,'Customer already registered, with this username!' Msg, NULL Id
RETURN
END
IF EXISTS (
SELECT 1
FROM customermaster
WHERE
(LEN(@mobile) = 10 AND (
mobile = @mobile OR
'+44' + mobile = @mobile
))
OR
(LEN(@mobile) = 13 AND (
mobile = @mobile OR
SUBSTRING(@mobile, 4, 10) = mobile
))
)
BEGIN
SELECT '1' AS ErrorCode
,'Mobile No. ''' + @mobile + ''' is already used' AS Msg
,@mobile AS id;
RETURN
END
--user already registered
IF EXISTS(SELECT 'x' FROM dbo.customerMasterTemp AS CM(NOLOCK) WHERE username=@username)
BEGIN
SELECT 2 ErrorCode,'User already registered!' Msg, NULL Id
RETURN
END
--Username already taken
IF EXISTS(SELECT 'x' FROM dbo.mobile_userRegistration(NOLOCK) AS MUR WHERE username=@username)
BEGIN
SELECT 3 ErrorCode,'Username already taken!' Msg, NULL Id
RETURN
END
IF @referralCode IS NOT NULL
BEGIN
IF NOT EXISTS (SELECT 1 FROM dbo.customerMaster(NOLOCK) WHERE membershipId = @referralCode)
AND NOT EXISTS (SELECT 1 FROM dbo.REFERRAL_AGENT_WISE(NOLOCK) WHERE REFERRAL_CODE = @referralCode)
BEGIN
SET @referralCode = NULL
END
END
SELECT @COUNTRYID = countryId
FROM countryMaster (NOLOCK)
WHERE COUNTRYCODE = @nativeCountry
if(@COUNTRYID IS NULL)
BEGIN
SET @COUNTRYID=@nativeCountry;
END
BEGIN TRAN
INSERT INTO dbo.CustomerMasterTemp(
username,customerPassword,createdBy,createdDate,isActive,nativeCountry, referelCode, idNumber, mobile , email, customerEmail, mobileUser , fullName, dob, firstName, middleName, lastName1
,city,address,gender, isEmailVerified,zipCode,ADDITIONALADDRESS
)
SELECT
@username,dbo.FNAEncryptString(@password),@username,GETDATE(),'Y', @COUNTRYID, @referralCode, @idNumber, @mobile, @username, @username , 'Y' , @fullName, @dob,@FirstName,@MiddleName, @LastName
,@city,@address1,@gender,'0',@postalCode,@address2
SET @customerId=SCOPE_IDENTITY()
INSERT INTO dbo.mobile_userRegistration(
clientId,username,createdDate,appVersion,phoneBrand,phoneOs,osVersion,deviceId,customerId, cmRegistrationId
)
SELECT
@clientId,@username,GETDATE(),@appVersion,@phoneBrand,@phoneOs,@osVersion,@fcmId,@customerId, @uuid
COMMIT TRAN
IF @@TRANCOUNT=0
BEGIN
--successful registered
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
RETURN
END
END
IF @flag = 'chk-valid-referralCode'
BEGIN
--IF NOT EXISTS (SELECT 1 FROM dbo.customerMaster(NOLOCK) WHERE membershipId = @referralCode)
-- AND NOT EXISTS (SELECT 1 FROM dbo.REFERRAL_AGENT_WISE(NOLOCK) WHERE REFERRAL_CODE = @referralCode)
--BEGIN
-- SELECT 1 ErrorCode,'Invalid Referral Code!' Msg, @referralCode Id
-- RETURN
--END
--ELSE
BEGIN
SELECT 0 ErrorCode,'SUCCESS' Msg, @referralCode Id
END
END
END TRY
BEGIN CATCH
IF @@TRANCOUNT<>0
ROLLBACK TRAN
--Execption
SELECT 1 ErrorCode,dbo.GetMessage(@language,'9999')+CONVERT(VARCHAR,ERROR_LINE())+ERROR_MESSAGE() Msg, NULL Id
RETURN
END CATCH