USE [FastMoneyPro_Remit] GO /****** Object: StoredProcedure [dbo].[proc_change_customer_email] Script Date: 11/21/2023 11:03:35 PM ******/ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO ALTER PROCEDURE [dbo].[proc_change_customer_email] @flag VARCHAR(50) = NULL ,@newEmail VARCHAR(50) = NULL ,@oldEmail VARCHAR(50) = NULL ,@user VARCHAR(30) = NULL ,@customerId VARCHAR(30) = NULL ,@searchCriteria VARCHAR(30) = NULL ,@searchValue VARCHAR(50) = NULL ,@fromDate DATETIME = NULL ,@toDate DATETIME = NULL ,@agentId BIGINT = NULL ,@obpId VARCHAR(50) = NULL --grid parameters ,@pageSize VARCHAR(50) = NULL ,@pageNumber VARCHAR(50) = NULL ,@sortBy VARCHAR(50) = NULL ,@sortOrder VARCHAR(50) = NULL ,@modifiedBy VARCHAR(50) = NULL ,@modifiedDate DATETIME = NULL AS BEGIN -- SET NOCOUNT ON added to prevent extra result sets from -- interfering with SELECT statements. SET NOCOUNT ON; DECLARE @table VARCHAR(MAX) ,@select_field_list VARCHAR(MAX) ,@extra_field_list VARCHAR(MAX) ,@sql_filter VARCHAR(MAX) DECLARE @email VARCHAR(200) SET @toDate = @toDate + ' 23:59:59' IF @flag = 'searchByEmail' BEGIN SELECT '' value ,'Select' [text] UNION ALL SELECT 'email' ,'Email ID' UNION ALL SELECT 'IdNumber' ,'ID - Number' UNION ALL SELECT 'mobile' ,'Mobile No' RETURN END --IF @flag = 'updateEmailold' --update new email address --BEGIN -- DECLARE @userName VARCHAR(50) -- SELECT @userName = username -- FROM CUSTOMERMASTER -- WHERE customerId = @customerId --email=@oldEmail -- --to check when username is null and new email != old email -- IF @userName IS NULL -- OR @userName <> @oldEmail -- BEGIN -- IF EXISTS ( -- SELECT 'X' -- FROM dbo.customerMaster cm(NOLOCK) -- left join mobile_userRegistration mr ON cm.email = mr.username -- WHERE (cm.email = @newEmail or mr.username = @newEmail) AND cm.customerId <> @customerId -- --AND approvedBy IS NOT NULL -- ) -- BEGIN -- SELECT '1' ErrorCode -- ,'Customer with same email already exists.' Msg -- ,NULL -- RETURN -- END -- ELSE -- BEGIN -- EXEC PROC_CUSTOMERMODIFYLOG @flag = 'i-update' -- ,@email = @newEmail -- ,@customerId = @customerId -- ,@user = @user -- ,@username = @newEmail -- UPDATE customerMaster -- SET username = @newEmail -- ,email = @newEmail -- WHERE customerId = @customerId -- SELECT '0' ErrorCode -- ,'Customer username updated.' Msg -- ,@email id -- ,'Y' extra -- RETURN -- END -- END -- ELSE IF EXISTS ( -- SELECT 'X' -- FROM dbo.mobile_userRegistration(NOLOCK) -- WHERE username = @newEmail -- ) -- BEGIN -- SELECT '1' ErrorCode -- ,'Customer with same username already exists.' Msg -- ,NULL -- RETURN -- END -- ELSE -- BEGIN -- EXEC PROC_CUSTOMERMODIFYLOG @flag = 'i-update' -- ,@email = @newEmail -- ,@customerId = @customerId -- ,@user = @user -- ,@username = @newEmail -- UPDATE dbo.mobile_userRegistration -- SET -- username = @newEmail -- ,modifiedBy = @user -- ,modifiedDate = GETDATE() -- WHERE customerId = @customerId -- SELECT '0' ErrorCode -- ,'Username updated successfully.' Msg -- ,@email id -- ,'Y' extra -- --,'verified' EXTRA2 -- RETURN -- END --END -- ELSE IF EXISTS ( -- SELECT 'X' -- FROM dbo.customerMaster(NOLOCK) cm -- INNER JOIN dbo.mobile_userRegistration(NOLOCK) mr ON cm.email = mr.username -- WHERE cm.email <> @newEmail -- ) -- BEGIN -- EXEC PROC_CUSTOMERMODIFYLOG @flag = 'i-update' -- ,@email = @newEmail -- ,@customerId = @customerId -- ,@user = @user -- ,@userName = @newEmail -- UPDATE customerMaster -- SET email = @newEmail -- ,username = @newEmail -- ,modifiedBy = @user -- ,modifiedDate = GETDATE() -- ,approvedDate = NULL -- ,approvedBy = NULL -- ,customerEmail = @email -- WHERE customerId = @customerId -- UPDATE mobile_userRegistration -- SET username = @newEmail -- ,modifiedBy = @user -- ,modifiedDate = GETDATE() -- WHERE customerId = @customerId -- UPDATE TBL_MOBILE_OTP_REQUEST -- SET is_expired = '1' -- WHERE USER_ID = @oldEmail -- AND REQUEST_FOR = 'REGISTER' -- SELECT '0' ErrorCode -- ,'Username updated successfully.' Msg -- ,@email id -- ,'Y' extra -- RETURN -- END --END IF @flag = 'updateEmail' BEGIN DECLARE @userName VARCHAR(50) SELECT @userName = username FROM CUSTOMERMASTER WHERE customerId = @customerId --IF @userName IS NOT NULL BEGIN IF EXISTS ( SELECT 'X' FROM dbo.customerMaster cm(NOLOCK) LEFT JOIN mobile_userRegistration mr ON cm.email = mr.username --WHERE (email = @newEmail OR mr.username = @newEmail) AND cm.customerId <> @customerId WHERE email = @newEmail AND cm.customerId <> @customerId ) BEGIN SELECT '1' ErrorCode ,'Customer with same username already exists.' Msg ,NULL RETURN END ELSE IF EXISTS ( SELECT 'X' FROM dbo.customerMaster cm(NOLOCK) LEFT JOIN mobile_userRegistration mr ON cm.email = mr.username --WHERE (email = @newEmail OR mr.username = @newEmail) AND cm.customerId = @customerId WHERE email = @newEmail AND cm.customerId = @customerId ) BEGIN EXEC PROC_CUSTOMERMODIFYLOG @flag = 'i-update' ,@email = @newEmail ,@customerId = @customerId ,@user = @user ,@username = @newEmail UPDATE customerMaster SET username = @newEmail ,email = @newEmail ,isEmailVerified = 0 ,modifiedBy = @user ,modifiedDate = GETDATE() WHERE customerId = @customerId UPDATE dbo.mobile_userRegistration SET username = @newEmail ,modifiedBy = @user ,modifiedDate = GETDATE() WHERE customerId = @customerId UPDATE TBL_MOBILE_OTP_REQUEST SET is_expired = '1' WHERE USER_ID = @oldEmail AND REQUEST_FOR = 'REGISTER' SELECT '0' ErrorCode ,'Customer username updated.' Msg ,@email id ,'Y' extra RETURN END ELSE IF EXISTS ( SELECT 'X' FROM dbo.customerMaster cm(NOLOCK) LEFT JOIN mobile_userRegistration mr ON cm.email = mr.username WHERE email <> @newEmail --AND cm.customerId = @customerId ) BEGIN EXEC PROC_CUSTOMERMODIFYLOG @flag = 'i-update' ,@email = @newEmail ,@customerId = @customerId ,@user = @user ,@username = @newEmail UPDATE customerMaster SET username = @newEmail ,email = @newEmail ,isEmailVerified = 0 ,modifiedBy = @user ,modifiedDate = GETDATE() WHERE customerId = @customerId UPDATE dbo.mobile_userRegistration SET username = @newEmail ,modifiedBy = @user ,modifiedDate = GETDATE() WHERE customerId = @customerId UPDATE TBL_MOBILE_OTP_REQUEST SET is_expired = '1' WHERE USER_ID = @oldEmail AND REQUEST_FOR = 'REGISTER' SELECT '0' ErrorCode ,'Customer username updated.' Msg ,@email id ,'Y' extra RETURN END END END --ELSE IF @userName IS NULL --BEGIN -- IF EXISTS ( -- SELECT 'X' -- FROM dbo.customerMaster cm(NOLOCK) -- left join mobile_userRegistration mr ON cm.email = mr.username -- WHERE (email = @newEmail OR mr.username = @newEmail) AND cm.customerId <> @customerId -- ) -- BEGIN -- SELECT '1' ErrorCode -- ,'Customer with same username already exists.' Msg -- ,NULL -- RETURN -- END -- ELSE IF EXISTS ( -- SELECT 'X' -- FROM dbo.customerMaster cm(NOLOCK) -- left join mobile_userRegistration mr ON cm.email = mr.username -- WHERE (email = @newEmail OR mr.username = @newEmail) AND cm.customerId = @customerId -- ) -- BEGIN -- EXEC PROC_CUSTOMERMODIFYLOG @flag = 'i-update' -- ,@email = @newEmail -- ,@customerId = @customerId -- ,@user = @user -- ,@username = @newEmail -- UPDATE customerMaster -- SET username = @newEmail -- ,email = @newEmail -- ,isEmailVerified ='0' -- WHERE customerId = @customerId -- UPDATE dbo.mobile_userRegistration -- SET -- username = @newEmail -- ,modifiedBy = @user -- ,modifiedDate = GETDATE() -- WHERE customerId = @customerId -- UPDATE TBL_MOBILE_OTP_REQUEST -- SET is_expired = '1' -- WHERE USER_ID = @oldEmail -- AND REQUEST_FOR = 'REGISTER' -- SELECT '0' ErrorCode -- ,'Customer username updated.' Msg -- ,@email id -- ,'Y' extra -- RETURN -- END --END /*old*/ --BEGIN -- IF EXISTS ( -- SELECT 'X' -- FROM dbo.customerMaster cm(NOLOCK) -- left join mobile_userRegistration mr ON cm.email = mr.username -- WHERE email = @newEmail OR mr.username = @newEmail) AND cm.customerId = @customerId -- --AND approvedBy IS NOT NULL -- ) -- BEGIN -- EXEC PROC_CUSTOMERMODIFYLOG @flag = 'i-update' -- ,@email = @newEmail -- ,@customerId = @customerId -- ,@user = @user -- ,@username = @newEmail -- UPDATE customerMaster -- SET username = @newEmail -- ,email = @newEmail -- ,isEmailVerified ='0' -- WHERE customerId = @customerId -- UPDATE dbo.mobile_userRegistration -- SET -- username = @newEmail -- ,modifiedBy = @user -- ,modifiedDate = GETDATE() -- WHERE customerId = @customerId -- UPDATE TBL_MOBILE_OTP_REQUEST -- SET is_expired = '1' -- WHERE USER_ID = @oldEmail -- AND REQUEST_FOR = 'REGISTER' -- SELECT '0' ErrorCode -- ,'Customer username updated.' Msg -- ,@email id -- ,'Y' extra -- END --END -- ELSE IF EXISTS ( -- SELECT 'X' -- FROM dbo.customerMaster cm(NOLOCK) -- left join mobile_userRegistration mr ON cm.email = mr.username -- WHERE (cm.email = @newEmail or mr.username = @newEmail) AND cm.customerId <> @customerId -- --AND approvedBy IS NOT NULL -- ) -- BEGIN -- SELECT '1' ErrorCode -- ,'Customer with same email already exists.' Msg -- ,NULL -- RETURN -- END -- ELSE -- BEGIN -- EXEC PROC_CUSTOMERMODIFYLOG @flag = 'i-update' -- ,@email = @newEmail -- ,@customerId = @customerId -- ,@user = @user -- ,@username = @newEmail -- UPDATE customerMaster -- SET username = @newEmail -- ,email = @newEmail -- ,isEmailVerified ='0' -- --, approvedBy = null -- --, approvedDate = null -- --, mobileApprovedBy = null -- --, mobileApprovedDate = null -- --, mobileverifiedby = null -- --, mobileVerificationtype = null -- --,modifiedBy = @user -- -- ,modifiedDate = GETDATE() -- WHERE customerId = @customerId -- IF EXISTS ( -- SELECT 'X' -- FROM dbo.mobile_userRegistration -- WHERE customerId = @customerId --AND username = @oldemail -- ) -- BEGIN -- UPDATE dbo.mobile_userRegistration -- SET -- username = @newEmail -- ,modifiedBy = @user -- ,modifiedDate = GETDATE() -- WHERE customerId = @customerId -- UPDATE TBL_MOBILE_OTP_REQUEST -- SET is_expired = '1' -- WHERE USER_ID = @oldEmail -- AND REQUEST_FOR = 'REGISTER' -- END -- SELECT '0' ErrorCode -- ,'Customer username updated.' Msg -- ,@email id -- ,'Y' extra -- RETURN -- END IF @flag = 'pending-cust-from-mobile' BEGIN DECLARE @searchEmail VARCHAR(50) SELECT @searchEmail = email FROM dbo.customerMaster(NOLOCK) WHERE customerId = @customerId SET @sortBy = 'createdDate' SET @sortOrder = 'desc' SET @table = '( SELECT customerId=cm.customerId ,CM.membershipid ,cm.userName ,email=cm.email ,fullName= REPLACE(ISNULL(cm.firstName, '''') + ISNULL('' '' + cm.middleName, '''') + ISNULL('' '' + cm.lastName1, ''''), '' '', '' '') ,dob=CONVERT(VARCHAR,cm.dob,101) ,address=cm.[address] ,nativeCountry=com.countryName ,idtype= ''''--case when cm.idtype=''11402'' then ISNULL(sdv.detailTitle, '''') + (''-'') + ISNULL('' '' + cm.otherIdNumber, '''') else sdv.detailTitle end ,idNumber=cm.idNumber ,createdDate=CAST(cm.createdDate AS DATE) ,createdBy=cm.createdBy ,verifiedBy=cm.verifiedBy ,verifiedDate=CAST(cm.verifiedDate AS DATE) ,mobile=cm.mobile ,cm.agentId ,case when isnull(cm.isExistingCustomer,0) = 1 then ''Yes'' ELSE ''No'' End isExistingCustomer ,createdUserFrom = ''mobile'' ,mobileApprovedBy = cm.mobileApprovedBy ,mobileApprovedDate = cm.mobileApprovedDate ,mobileverifiedby = cm.mobileverifiedby ,mobileverifieddate = cm.mobileverifieddate ,OTP_Verified=case when isnull(x.IS_SUCCESS,0) = 1 then ''Yes'' ELSE ''No'' End FROM customerMaster cm(NOLOCK) LEFT JOIN countryMaster com(NOLOCK) ON cm.nativeCountry=com.countryId -- INNER JOIN staticDataValue sdv (NOLOCK) ON sdv.valueId=cm.idType AND sdv.typeID=1300 --LEFT JOIN TBL_MOBILE_OTP_REQUEST otp(NOLOCK) ON cm.email=otp.USER_ID LEFT JOIN (select top 1 USER_ID , IS_SUCCESS from TBL_MOBILE_OTP_REQUEST where REQUEST_FOR=''REGISTER'' and USER_ID=''' + @searchEmail + ''')x on x.user_id = cm.email --AND CM.ISACTIVE = ''Y'' WHERE customerId = ''' + @customerId + ''' --AND USERNAME IS NOT NULL and cm.membershipId is not null )X' --IF ISNULL(@fromDate, '') <> '' -- AND ISNULL(@toDate, '') <> '' -- SET @table = @table + ' AND createdDate BETWEEN ''' + CAST(@fromDate AS VARCHAR) + ''' AND ''' + CAST(@toDate AS VARCHAR) + '''' --SET @table = @table + ')x' --SET @sql_filter = '' --IF ISNULL(@searchCriteria, '') <> '' -- AND ISNULL(@searchValue, '') <> '' --BEGIN -- IF @searchCriteria = 'emailId' -- BEGIN -- SET @sql_Filter = @sql_Filter + ' AND email like ''' + @searchValue + '%''' -- END --END --PRINT @table; SET @select_field_list = ' customerId,userName,isExistingCustomer,membershipid,email,fullName,dob,address,nativeCountry,idtype,idNumber ,createdDate,createdBy,verifiedBy,verifiedDate,createdUserFrom,mobileApprovedBy,mobileApprovedDate,mobileverifiedby,mobileverifieddate,OTP_Verified ' EXEC dbo.proc_paging @table ,@sql_filter ,@select_field_list ,@extra_field_list ,@sortBy ,@sortOrder ,@pageSize ,@pageNumber --,@action RETURN END END