USE [FastMoneyPro_Remit] GO /****** Object: StoredProcedure [dbo].[INBOUND_PROC_ONLINE_APPROVE_CUSTOMER] Script Date: 9/27/2019 1:30:13 PM ******/ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO CREATE PROC [dbo].[INBOUND_PROC_ONLINE_APPROVE_CUSTOMER] @flag 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 ,@cusType VARCHAR(50) = NULL ,@accountNumber VARCHAR(100) = NULL ,@CustomerBankName NVARCHAR(100) = NULL ,@obpId VARCHAR(50) =NULL --grid parameters ,@pageSize VARCHAR(50) = NULL ,@pageNumber VARCHAR(50) = NULL ,@sortBy VARCHAR(50) = NULL ,@sortOrder VARCHAR(50) = NULL ,@virtualAccountNo VARCHAR(50) = NULL ,@primaryAccountNo VARCHAR(50) = NULL AS SET NOCOUNT ON; SET XACT_ABORT ON; BEGIN TRY DECLARE @table VARCHAR(MAX) ,@select_field_list VARCHAR(MAX) ,@extra_field_list VARCHAR(MAX) ,@sql_filter VARCHAR(MAX) DECLARE @email VARCHAR(200) ,@username VARCHAR(50) ,@pwd VARCHAR(50) ,@channel VARCHAR(20)=NULL IF @flag='vl' --verified list/approve pending list BEGIN SET @sortBy = 'createdDate' SET @sortOrder = 'desc' SET @table ='( SELECT SN=ROW_NUMBER() over(ORDER BY cm.customerId asc) ,customerId=cm.customerId ,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=sdv.detailTitle ,idNumber=cm.idNumber ,createdDate=CAST(cm.createdDate AS DATE) ,verifiedBy=cm.verifiedBy ,branchName='''' ,verifiedDate=CAST(cm.verifiedDate AS DATE) ,ipAddress=cm.ipAddress ,mobile=cm.mobile ,bankAccountNo ,bankName=bl.bankName 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 vwBankLists bl (NOLOCK) ON cm.bankName = bl.rowId WHERE cm.approvedDate IS NULL AND customerType=''11018'' ' IF ISNULL(@fromDate,'')<>'' AND ISNULL(@toDate,'')<>'' SET @table=@table + ' AND cm.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='idNumber' BEGIN --IF ISNUMERIC(@searchValue)<>1 -- SET @searchValue='-1' --to ignore string value for datatype integer/customerID --SET @sql_Filter=@sql_Filter + ' AND customerId = ''' +@searchValue+'''' SET @sql_Filter=@sql_Filter + ' AND REPLACE(idNumber, ''-'', '''') = ''' +REPLACE(@searchValue, '-', '')+'''' END ELSE IF @searchCriteria='emailId' SET @sql_Filter=@sql_Filter + ' AND email like ''' +@searchValue+'%''' ELSE IF @searchCriteria='customerName' SET @sql_Filter=@sql_Filter + ' AND fullName like ''' +@searchValue+'%''' ELSE IF @searchCriteria='mobile' SET @sql_Filter=@sql_Filter + ' AND mobile = ''' +@searchValue+'''' ELSE IF @searchCriteria='walletAccountNo' SET @sql_Filter=@sql_Filter + ' AND walletAccountNo = ''' +@searchValue+'''' ELSE IF @searchCriteria='bankAccountNo' SET @sql_Filter=@sql_Filter + ' AND bankAccountNo = ''' +@searchValue+'''' ELSE IF @searchCriteria='nativeCountry' SET @sql_Filter=@sql_Filter + ' AND nativeCountry = ''' +@searchValue+'''' END SET @select_field_list =' SN,customerId,email,fullName,dob,address,nativeCountry,idtype,idNumber ,createdDate,verifiedBy,branchName,verifiedDate,bankAccountNo,bankName ' EXEC dbo.proc_paging @table,@sql_filter,@select_field_list,@extra_field_list ,@sortBy,@sortOrder,@pageSize,@pageNumber RETURN END IF @flag='approve-pending' BEGIN DECLARE @custIdNumber VARCHAR(50) SELECT @custIdNumber = idNumber FROM dbo.customerMaster (NOLOCK) WHERE customerId = @customerId select @cusType = userType from applicationUsers(nolock) where userName = @user IF EXISTS (SELECT 'X' FROM dbo.customerMaster (NOLOCK) WHERE replace(idNumber,'-','') = replace(@custIdNumber, '-', '') GROUP BY replace(idNumber,'-','') having count(1)>1) BEGIN SELECT '1' ErrorCode , 'Duplicate id number found for customer' Msg ,null RETURN END IF EXISTS (SELECT 'X' FROM dbo.customerMaster (NOLOCK) WHERE replace(idNumber,'-','') = replace(@custIdNumber, '-', '') AND approvedBy IS NOT NULL) BEGIN SELECT '1' ErrorCode , 'Customer with same id number already approved.' Msg ,null RETURN END IF @cusType <> 'HO' BEGIN UPDATE customerMaster SET verifiedBy = @user,verifiedDate = GETDATE(),customerStatus ='S' where customerId = @customerId INSERT INTO SuspiciousRegisteredCustomer(OrgCustomerId,MatchedCustomerId) EXEC [Proc_ValidateDuplicateCustomer] @customerId = @customerId IF EXISTS(SELECT 'A' FROM SuspiciousRegisteredCustomer(NOLOCK) WHERE OrgCustomerId = @customerId) BEGIN SELECT '1' ErrorCode , 'Suspicious customer verified but can not approve,please contact HO ' Msg ,null RETURN END END UPDATE customerMaster SET approvedBy=@user ,approvedDate=GETDATE() ,verifiedBy = @user ,verifiedDate = GETDATE() ,isActive='Y' WHERE customerId = @customerId SELECT '0' ErrorCode , 'Customer verified successfully.' Msg ,@customerId id RETURN END IF @flag='al' --approved list BEGIN IF @sortBy IS NULL SET @sortBy = 'customerId' IF @sortOrder IS NULL SET @sortOrder = 'ASC' SET @table ='( SELECT SN=ROW_NUMBER() over(ORDER BY cm.customerId asc) ,customerId=cm.customerId ,cm.membershipId ,email=cm.email ,fullName= cm.firstName ,idtype=sdv.detailTitle ,idNumber=cm.idNumber ,mobile=cm.mobile ,bankName=bl.bankName ,cm.bankAccountNo ,CM.walletAccountNo ,cm.availableBalance ,cm.dob,cm.address ,country = ''South Korea'' ,nativeCountry = com.CountryName ,cm.createdDate FROM customerMaster cm(NOLOCK) INNER JOIN staticDataValue sdv (NOLOCK) ON sdv.valueId=cm.idType LEFT JOIN countryMaster com(NOLOCK) ON cm.nativeCountry=com.countryId LEFT JOIN KoreanBankList bl (NOLOCK) ON cm.bankName = bl.rowId WHERE cm.approvedDate is not null AND customerType=''11018'' ' IF ISNULL(@fromDate,'')<>'' AND ISNULL(@toDate,'')<>'' SET @table=@table + ' AND cm.approvedDate BETWEEN ''' +CAST(CAST(@fromDate AS DATE) AS VARCHAR)+''' AND ''' +CAST(CAST(@toDate AS DATE) AS VARCHAR)+' 23:59:59'+'''' SET @table = @table + ')x' SET @sql_filter = '' IF ISNULL(@searchCriteria,'')<>'' AND ISNULL(@searchValue,'')<>'' BEGIN IF @searchCriteria='idNumber' BEGIN --IF ISNUMERIC(@searchValue)<>1 -- SET @searchValue='-1' --to ignore string value for datatype integer/customerID --SET @sql_Filter=@sql_Filter + ' AND customerId = ''' +@searchValue+'''' SET @sql_Filter=@sql_Filter + ' AND REPLACE(idNumber, ''-'', '''') = ''' +REPLACE(@searchValue, '-', '')+'''' END ELSE IF @searchCriteria='emailId' SET @sql_Filter=@sql_Filter + ' AND email like ''' +@searchValue+'%''' ELSE IF @searchCriteria='customerName' SET @sql_Filter=@sql_Filter + ' AND fullName like ''' +@searchValue+'%''' ELSE IF @searchCriteria='mobile' SET @sql_Filter=@sql_Filter + ' AND mobile = ''' +@searchValue+'''' ELSE IF @searchCriteria='walletAccountNo' SET @sql_Filter=@sql_Filter + ' AND walletAccountNo = ''' +@searchValue+'''' ELSE IF @searchCriteria='bankAccountNo' SET @sql_Filter=@sql_Filter + ' AND bankAccountNo = ''' +@searchValue+'''' ELSE IF @searchCriteria='bankAccountNo' SET @sql_Filter=@sql_Filter + ' AND bankAccountNo = ''' +@searchValue+'''' ELSE IF @searchCriteria='goldCardNumber' SET @sql_Filter=@sql_Filter + ' AND membershipId = ''' +@searchValue+'''' END SET @select_field_list =' SN,customerId,email,fullName,idtype,idNumber,mobile,bankName,bankAccountNo,walletAccountNo,availableBalance ,dob,address,country,nativeCountry,createdDate' EXEC dbo.proc_paging @table,@sql_filter,@select_field_list,@extra_field_list,@sortBy,@sortOrder,@pageSize,@pageNumber RETURN END END TRY BEGIN CATCH IF @@TRANCOUNT > 0 ROLLBACK TRANSACTION DECLARE @errorMessage VARCHAR(MAX) SET @errorMessage = ERROR_MESSAGE() EXEC proc_errorHandler 1, @errorMessage, NULL END CATCH GO