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
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
|