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

1 year ago
  1. USE [FastMoneyPro_Remit]
  2. GO
  3. /****** Object: StoredProcedure [dbo].[INBOUND_PROC_ONLINE_APPROVE_CUSTOMER] Script Date: 9/27/2019 1:30:13 PM ******/
  4. SET ANSI_NULLS ON
  5. GO
  6. SET QUOTED_IDENTIFIER ON
  7. GO
  8. CREATE PROC [dbo].[INBOUND_PROC_ONLINE_APPROVE_CUSTOMER]
  9. @flag VARCHAR(50) = NULL
  10. ,@user VARCHAR(30) = NULL
  11. ,@customerId VARCHAR(30) = NULL
  12. ,@searchCriteria VARCHAR(30) = NULL
  13. ,@searchValue VARCHAR(50) = NULL
  14. ,@fromDate DATETIME = NULL
  15. ,@toDate DATETIME = NULL
  16. ,@cusType VARCHAR(50) = NULL
  17. ,@accountNumber VARCHAR(100) = NULL
  18. ,@CustomerBankName NVARCHAR(100) = NULL
  19. ,@obpId VARCHAR(50) =NULL
  20. --grid parameters
  21. ,@pageSize VARCHAR(50) = NULL
  22. ,@pageNumber VARCHAR(50) = NULL
  23. ,@sortBy VARCHAR(50) = NULL
  24. ,@sortOrder VARCHAR(50) = NULL
  25. ,@virtualAccountNo VARCHAR(50) = NULL
  26. ,@primaryAccountNo VARCHAR(50) = NULL
  27. AS
  28. SET NOCOUNT ON;
  29. SET XACT_ABORT ON;
  30. BEGIN TRY
  31. DECLARE @table VARCHAR(MAX)
  32. ,@select_field_list VARCHAR(MAX)
  33. ,@extra_field_list VARCHAR(MAX)
  34. ,@sql_filter VARCHAR(MAX)
  35. DECLARE @email VARCHAR(200)
  36. ,@username VARCHAR(50)
  37. ,@pwd VARCHAR(50)
  38. ,@channel VARCHAR(20)=NULL
  39. IF @flag='vl' --verified list/approve pending list
  40. BEGIN
  41. SET @sortBy = 'createdDate'
  42. SET @sortOrder = 'desc'
  43. SET @table ='(
  44. SELECT SN=ROW_NUMBER() over(ORDER BY cm.customerId asc)
  45. ,customerId=cm.customerId
  46. ,email=cm.email
  47. ,fullName= REPLACE(ISNULL(cm.firstName, '''') + ISNULL('' '' + cm.middleName, '''') + ISNULL('' '' + cm.lastName1, ''''), '' '', '' '')
  48. ,dob=CONVERT(VARCHAR,cm.dob,101)
  49. ,address=cm.[address]
  50. ,nativeCountry=com.countryName
  51. ,idtype=sdv.detailTitle
  52. ,idNumber=cm.idNumber
  53. ,createdDate=CAST(cm.createdDate AS DATE)
  54. ,verifiedBy=cm.verifiedBy
  55. ,branchName=''''
  56. ,verifiedDate=CAST(cm.verifiedDate AS DATE)
  57. ,ipAddress=cm.ipAddress
  58. ,mobile=cm.mobile
  59. ,bankAccountNo
  60. ,bankName=bl.bankName
  61. FROM customerMaster cm(NOLOCK)
  62. LEFT JOIN countryMaster com(NOLOCK) ON cm.nativeCountry=com.countryId
  63. INNER JOIN staticDataValue sdv (NOLOCK) ON sdv.valueId=cm.idType AND sdv.typeID=1300
  64. LEFT JOIN vwBankLists bl (NOLOCK) ON cm.bankName = bl.rowId
  65. WHERE cm.approvedDate IS NULL AND customerType=''11018'' '
  66. IF ISNULL(@fromDate,'')<>'' AND ISNULL(@toDate,'')<>''
  67. SET @table=@table + ' AND cm.createdDate BETWEEN ''' +CAST(@fromDate AS VARCHAR)+''' AND ''' +CAST(@toDate AS VARCHAR)+''''
  68. SET @table = @table + ')x'
  69. SET @sql_filter = ''
  70. IF ISNULL(@searchCriteria,'')<>'' AND ISNULL(@searchValue,'')<>''
  71. BEGIN
  72. IF @searchCriteria='idNumber'
  73. BEGIN
  74. --IF ISNUMERIC(@searchValue)<>1
  75. -- SET @searchValue='-1' --to ignore string value for datatype integer/customerID
  76. --SET @sql_Filter=@sql_Filter + ' AND customerId = ''' +@searchValue+''''
  77. SET @sql_Filter=@sql_Filter + ' AND REPLACE(idNumber, ''-'', '''') = ''' +REPLACE(@searchValue, '-', '')+''''
  78. END
  79. ELSE IF @searchCriteria='emailId'
  80. SET @sql_Filter=@sql_Filter + ' AND email like ''' +@searchValue+'%'''
  81. ELSE IF @searchCriteria='customerName'
  82. SET @sql_Filter=@sql_Filter + ' AND fullName like ''' +@searchValue+'%'''
  83. ELSE IF @searchCriteria='mobile'
  84. SET @sql_Filter=@sql_Filter + ' AND mobile = ''' +@searchValue+''''
  85. ELSE IF @searchCriteria='walletAccountNo'
  86. SET @sql_Filter=@sql_Filter + ' AND walletAccountNo = ''' +@searchValue+''''
  87. ELSE IF @searchCriteria='bankAccountNo'
  88. SET @sql_Filter=@sql_Filter + ' AND bankAccountNo = ''' +@searchValue+''''
  89. ELSE IF @searchCriteria='nativeCountry'
  90. SET @sql_Filter=@sql_Filter + ' AND nativeCountry = ''' +@searchValue+''''
  91. END
  92. SET @select_field_list ='
  93. SN,customerId,email,fullName,dob,address,nativeCountry,idtype,idNumber
  94. ,createdDate,verifiedBy,branchName,verifiedDate,bankAccountNo,bankName
  95. '
  96. EXEC dbo.proc_paging
  97. @table,@sql_filter,@select_field_list,@extra_field_list
  98. ,@sortBy,@sortOrder,@pageSize,@pageNumber
  99. RETURN
  100. END
  101. IF @flag='approve-pending'
  102. BEGIN
  103. DECLARE @custIdNumber VARCHAR(50)
  104. SELECT @custIdNumber = idNumber
  105. FROM dbo.customerMaster (NOLOCK)
  106. WHERE customerId = @customerId
  107. select @cusType = userType from applicationUsers(nolock) where userName = @user
  108. IF EXISTS (SELECT 'X' FROM dbo.customerMaster (NOLOCK) WHERE replace(idNumber,'-','') = replace(@custIdNumber, '-', '')
  109. GROUP BY replace(idNumber,'-','') having count(1)>1)
  110. BEGIN
  111. SELECT '1' ErrorCode , 'Duplicate id number found for customer' Msg ,null
  112. RETURN
  113. END
  114. IF EXISTS (SELECT 'X' FROM dbo.customerMaster (NOLOCK) WHERE replace(idNumber,'-','') = replace(@custIdNumber, '-', '') AND approvedBy IS NOT NULL)
  115. BEGIN
  116. SELECT '1' ErrorCode , 'Customer with same id number already approved.' Msg ,null
  117. RETURN
  118. END
  119. IF @cusType <> 'HO'
  120. BEGIN
  121. UPDATE customerMaster SET verifiedBy = @user,verifiedDate = GETDATE(),customerStatus ='S' where customerId = @customerId
  122. INSERT INTO SuspiciousRegisteredCustomer(OrgCustomerId,MatchedCustomerId)
  123. EXEC [Proc_ValidateDuplicateCustomer] @customerId = @customerId
  124. IF EXISTS(SELECT 'A' FROM SuspiciousRegisteredCustomer(NOLOCK) WHERE OrgCustomerId = @customerId)
  125. BEGIN
  126. SELECT '1' ErrorCode , 'Suspicious customer verified but can not approve,please contact HO ' Msg ,null
  127. RETURN
  128. END
  129. END
  130. UPDATE customerMaster SET
  131. approvedBy=@user
  132. ,approvedDate=GETDATE()
  133. ,verifiedBy = @user
  134. ,verifiedDate = GETDATE()
  135. ,isActive='Y'
  136. WHERE customerId = @customerId
  137. SELECT '0' ErrorCode , 'Customer verified successfully.' Msg ,@customerId id
  138. RETURN
  139. END
  140. IF @flag='al' --approved list
  141. BEGIN
  142. IF @sortBy IS NULL
  143. SET @sortBy = 'customerId'
  144. IF @sortOrder IS NULL
  145. SET @sortOrder = 'ASC'
  146. SET @table ='(
  147. SELECT SN=ROW_NUMBER() over(ORDER BY cm.customerId asc)
  148. ,customerId=cm.customerId
  149. ,cm.membershipId
  150. ,email=cm.email
  151. ,fullName= cm.firstName
  152. ,idtype=sdv.detailTitle
  153. ,idNumber=cm.idNumber
  154. ,mobile=cm.mobile
  155. ,bankName=bl.bankName
  156. ,cm.bankAccountNo
  157. ,CM.walletAccountNo
  158. ,cm.availableBalance
  159. ,cm.dob,cm.address
  160. ,country = ''South Korea''
  161. ,nativeCountry = com.CountryName
  162. ,cm.createdDate
  163. FROM customerMaster cm(NOLOCK)
  164. INNER JOIN staticDataValue sdv (NOLOCK) ON sdv.valueId=cm.idType
  165. LEFT JOIN countryMaster com(NOLOCK) ON cm.nativeCountry=com.countryId
  166. LEFT JOIN KoreanBankList bl (NOLOCK) ON cm.bankName = bl.rowId
  167. WHERE cm.approvedDate is not null AND customerType=''11018'' '
  168. IF ISNULL(@fromDate,'')<>'' AND ISNULL(@toDate,'')<>''
  169. 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'+''''
  170. SET @table = @table + ')x'
  171. SET @sql_filter = ''
  172. IF ISNULL(@searchCriteria,'')<>'' AND ISNULL(@searchValue,'')<>''
  173. BEGIN
  174. IF @searchCriteria='idNumber'
  175. BEGIN
  176. --IF ISNUMERIC(@searchValue)<>1
  177. -- SET @searchValue='-1' --to ignore string value for datatype integer/customerID
  178. --SET @sql_Filter=@sql_Filter + ' AND customerId = ''' +@searchValue+''''
  179. SET @sql_Filter=@sql_Filter + ' AND REPLACE(idNumber, ''-'', '''') = ''' +REPLACE(@searchValue, '-', '')+''''
  180. END
  181. ELSE IF @searchCriteria='emailId'
  182. SET @sql_Filter=@sql_Filter + ' AND email like ''' +@searchValue+'%'''
  183. ELSE IF @searchCriteria='customerName'
  184. SET @sql_Filter=@sql_Filter + ' AND fullName like ''' +@searchValue+'%'''
  185. ELSE IF @searchCriteria='mobile'
  186. SET @sql_Filter=@sql_Filter + ' AND mobile = ''' +@searchValue+''''
  187. ELSE IF @searchCriteria='walletAccountNo'
  188. SET @sql_Filter=@sql_Filter + ' AND walletAccountNo = ''' +@searchValue+''''
  189. ELSE IF @searchCriteria='bankAccountNo'
  190. SET @sql_Filter=@sql_Filter + ' AND bankAccountNo = ''' +@searchValue+''''
  191. ELSE IF @searchCriteria='bankAccountNo'
  192. SET @sql_Filter=@sql_Filter + ' AND bankAccountNo = ''' +@searchValue+''''
  193. ELSE IF @searchCriteria='goldCardNumber'
  194. SET @sql_Filter=@sql_Filter + ' AND membershipId = ''' +@searchValue+''''
  195. END
  196. SET @select_field_list ='
  197. SN,customerId,email,fullName,idtype,idNumber,mobile,bankName,bankAccountNo,walletAccountNo,availableBalance
  198. ,dob,address,country,nativeCountry,createdDate'
  199. EXEC dbo.proc_paging
  200. @table,@sql_filter,@select_field_list,@extra_field_list,@sortBy,@sortOrder,@pageSize,@pageNumber
  201. RETURN
  202. END
  203. END TRY
  204. BEGIN CATCH
  205. IF @@TRANCOUNT > 0
  206. ROLLBACK TRANSACTION
  207. DECLARE @errorMessage VARCHAR(MAX)
  208. SET @errorMessage = ERROR_MESSAGE()
  209. EXEC proc_errorHandler 1, @errorMessage, NULL
  210. END CATCH
  211. GO