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

USE [FastMoneyPro_Remit]
GO
/****** Object: StoredProcedure [dbo].[JsonRx_Proc_UserRegistration_V2] Script Date: 8/26/2024 10:33:17 AM ******/
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
,@tempCustId INT = 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
-- #32535 - Addition of mobile number length validation in @flag='sign-up-v2-new-cust'
-- #34182 - Added new @flag = 'sign-up-temp-cust' for registration tracker
---------------------------------------------------
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 AS ErrorCode, 'Customer already registered, with this username!' AS Msg, NULL AS 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 9 AS ErrorCode,
'Mobile No. ''' + @mobile + ''' is already used' AS Msg,
@mobile AS Id;
RETURN;
END
DECLARE @mobileLen INT;
SET @mobileLen = LEN(@mobile);
IF((@mobile LIKE '+44%' AND @mobileLen != 13) OR (@mobile NOT LIKE '+44%' AND @mobileLen != 10))
BEGIN
SELECT 9 AS ErrorCode,
'The mobile number must be 13 digits long if it starts with ''+44'', or 10 digits if it does not' AS Msg,
@mobile AS Id;
RETURN;
END
-- User already registered in temp table
IF EXISTS(SELECT 'x' FROM dbo.customerMasterTemp AS CM(NOLOCK) WHERE username = @username)
BEGIN
SELECT 2 AS ErrorCode, 'User already registered!' AS Msg, NULL AS Id;
RETURN;
END
-- Username already taken
IF EXISTS(SELECT 'x' FROM dbo.mobile_userRegistration(NOLOCK) AS MUR WHERE username = @username)
BEGIN
SELECT 3 AS ErrorCode, 'Username already taken!' AS Msg, NULL AS 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;
BEGIN TRY
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;
IF @tempCustId IS NOT NULL
BEGIN
UPDATE TempUserRegister SET isActive = 'N' WHERE tempCustId = @tempCustId;
END
COMMIT TRAN;
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;
END TRY
BEGIN CATCH
ROLLBACK TRAN;
SELECT -1 AS ErrorCode, ERROR_MESSAGE() AS Msg, NULL AS Id;
END CATCH;
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
IF @flag = 'sign-up-temp-cust'
BEGIN
--IF EXISTS (
-- SELECT 1
-- FROM TempUserRegister
-- 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 '9' AS ErrorCode
-- ,'Mobile No. ''' + @mobile + ''' is already used' AS Msg
-- ,@mobile AS id;
-- RETURN
--END
--SET @mobileLen = LEN(@mobile)
--IF((@mobile LIKE '+44%' AND @mobileLen != 13) OR (@mobile NOT LIKE '+44%' AND @mobileLen != 10))
--BEGIN
-- SELECT '9' AS ErrorCode
-- ,'The mobile number must be 13 digits long if it starts with ''+44'', or 10 digits if it does not' AS Msg
-- ,@mobile AS id;
-- RETURN
--END
BEGIN TRAN
INSERT INTO dbo.TempUserRegister(
tempCustId,fullName, mobile, email, appVersion, phoneBrand, phoneOs, fcmId, osVersion, createdDate, isOtpVerified, isActive
)
SELECT @tempCustId, @fullName, @mobile, @username, @appVersion, @phoneBrand, @phoneOs, @fcmId, @osVersion, GETDATE(), NULL, 'Y'
SET @TempCustId = SCOPE_IDENTITY();
COMMIT TRAN
IF @@TRANCOUNT=0
BEGIN
SELECT 0 ErrorCode,'Customer data inserted successfully.' Msg, @TempCustId Id
END
END
IF @flag = 'update-temp-cust'
BEGIN
UPDATE TempUserRegister SET email = @username WHERE tempCustId = @tempCustId
SELECT 0 ErrorCode,'Customer data updated successfully.' Msg, @TempCustId Id
END
IF @flag = 'get-id'
BEGIN
SELECT TOP 1 tempCustId FROM TempUserRegister ORDER BY tempCustId DESC
RETURN
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