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.
 
 
 

239 lines
17 KiB

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