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.

642 lines
24 KiB

1 year ago
  1. ALTER PROC [dbo].[proc_online_approve_Customer]
  2. @flag VARCHAR(50) = NULL
  3. ,@user VARCHAR(30) = NULL
  4. ,@customerId VARCHAR(30) = NULL
  5. ,@searchCriteria VARCHAR(30) = NULL
  6. ,@searchValue VARCHAR(50) = NULL
  7. ,@fromDate DATETIME = NULL
  8. ,@toDate DATETIME = NULL
  9. ,@cusType VARCHAR(50) = NULL
  10. ,@accountNumber VARCHAR(100) = NULL
  11. ,@CustomerBankName NVARCHAR(100) = NULL
  12. ,@obpId VARCHAR(50) =NULL
  13. --grid parameters
  14. ,@pageSize VARCHAR(50) = NULL
  15. ,@pageNumber VARCHAR(50) = NULL
  16. ,@sortBy VARCHAR(50) = NULL
  17. ,@sortOrder VARCHAR(50) = NULL
  18. ,@virtualAccountNo VARCHAR(50) = NULL
  19. ,@primaryAccountNo VARCHAR(50) = NULL
  20. ,@isKftcOnly VARChar(2) = NULL
  21. AS
  22. SET NOCOUNT ON;
  23. SET XACT_ABORT ON;
  24. BEGIN TRY
  25. DECLARE @table VARCHAR(MAX)
  26. ,@select_field_list VARCHAR(MAX)
  27. ,@extra_field_list VARCHAR(MAX)
  28. ,@sql_filter VARCHAR(MAX)
  29. DECLARE @email VARCHAR(200)
  30. ,@username VARCHAR(50)
  31. ,@pwd VARCHAR(50)
  32. ,@channel VARCHAR(20)=NULL
  33. IF @flag='vl' --verified list/approve pending list
  34. BEGIN
  35. SET @sortBy = 'createdDate'
  36. SET @sortOrder = 'desc'
  37. SET @table ='(
  38. SELECT SN=ROW_NUMBER() over(ORDER BY cm.customerId asc)
  39. ,customerId=cm.customerId
  40. ,email=cm.email
  41. ,fullName= REPLACE(ISNULL(cm.firstName, '''') + ISNULL('' '' + cm.middleName, '''') + ISNULL('' '' + cm.lastName1, ''''), '' '', '' '')
  42. ,dob=CONVERT(VARCHAR,cm.dob,101)
  43. ,address=cm.[address]
  44. ,nativeCountry=com.countryName
  45. ,idtype=sdv.detailTitle
  46. ,idNumber=cm.idNumber
  47. ,createdDate=CAST(cm.createdDate AS DATE)
  48. ,verifiedBy=cm.verifiedBy
  49. ,branchName=''''
  50. ,verifiedDate=CAST(cm.verifiedDate AS DATE)
  51. ,ipAddress=cm.ipAddress
  52. ,mobile=cm.mobile
  53. ,bankAccountNo
  54. ,bankName=bl.bankName
  55. FROM customerMaster cm(NOLOCK)
  56. LEFT JOIN countryMaster com(NOLOCK) ON cm.nativeCountry=com.countryId
  57. INNER JOIN staticDataValue sdv (NOLOCK) ON sdv.valueId=cm.idType AND sdv.typeID=1300
  58. LEFT JOIN vwBankLists bl (NOLOCK) ON cm.bankName = bl.rowId
  59. WHERE cm.verifiedDate IS NOT NULL AND cm.approvedDate IS NULL'
  60. IF ISNULL(@fromDate,'')<>'' AND ISNULL(@toDate,'')<>''
  61. SET @table=@table + ' AND cm.createdDate BETWEEN ''' +CAST(@fromDate AS VARCHAR)+''' AND ''' +CAST(@toDate AS VARCHAR)+''''
  62. SET @table = @table + ')x'
  63. SET @sql_filter = ''
  64. IF ISNULL(@searchCriteria,'')<>'' AND ISNULL(@searchValue,'')<>''
  65. BEGIN
  66. IF @searchCriteria='idNumber'
  67. BEGIN
  68. --IF ISNUMERIC(@searchValue)<>1
  69. -- SET @searchValue='-1' --to ignore string value for datatype integer/customerID
  70. --SET @sql_Filter=@sql_Filter + ' AND customerId = ''' +@searchValue+''''
  71. SET @sql_Filter=@sql_Filter + ' AND REPLACE(idNumber, ''-'', '''') = ''' +REPLACE(@searchValue, '-', '')+''''
  72. END
  73. ELSE IF @searchCriteria='emailId'
  74. SET @sql_Filter=@sql_Filter + ' AND email like ''' +@searchValue+'%'''
  75. ELSE IF @searchCriteria='customerName'
  76. SET @sql_Filter=@sql_Filter + ' AND fullName like ''' +@searchValue+'%'''
  77. ELSE IF @searchCriteria='mobile'
  78. SET @sql_Filter=@sql_Filter + ' AND mobile = ''' +@searchValue+''''
  79. ELSE IF @searchCriteria='walletAccountNo'
  80. SET @sql_Filter=@sql_Filter + ' AND walletAccountNo = ''' +@searchValue+''''
  81. ELSE IF @searchCriteria='bankAccountNo'
  82. SET @sql_Filter=@sql_Filter + ' AND bankAccountNo = ''' +@searchValue+''''
  83. ELSE IF @searchCriteria='nativeCountry'
  84. SET @sql_Filter=@sql_Filter + ' AND nativeCountry = ''' +@searchValue+''''
  85. ELSE IF @searchCriteria='uniqueid'
  86. SET @sql_Filter=@sql_Filter + ' AND customerId = ''' +@searchValue+''''
  87. END
  88. SET @select_field_list ='
  89. SN,customerId,email,fullName,dob,address,nativeCountry,idtype,idNumber
  90. ,createdDate,verifiedBy,branchName,verifiedDate,bankAccountNo,bankName
  91. '
  92. EXEC dbo.proc_paging
  93. @table,@sql_filter,@select_field_list,@extra_field_list
  94. ,@sortBy,@sortOrder,@pageSize,@pageNumber
  95. RETURN
  96. END
  97. ELSE IF @flag='al' --approved list
  98. BEGIN
  99. IF @sortBy IS NULL
  100. SET @sortBy = 'customerId'
  101. IF @sortOrder IS NULL
  102. SET @sortOrder = 'ASC'
  103. SET @table ='(
  104. SELECT SN=ROW_NUMBER() over(ORDER BY cm.customerId asc)
  105. ,customerId=cm.customerId
  106. ,cm.membershipId
  107. ,email=cm.email
  108. ,fullName= cm.firstName
  109. ,idtype=sdv.detailTitle
  110. ,idNumber=cm.idNumber
  111. ,mobile=cm.mobile
  112. ,bankName=bl.bankName
  113. ,cm.bankAccountNo
  114. ,CM.walletAccountNo
  115. ,cm.availableBalance
  116. ,cm.dob,cm.address
  117. ,country = ''South Korea''
  118. ,nativeCountry = com.CountryName
  119. ,cm.createdDate
  120. FROM customerMaster cm(NOLOCK)
  121. INNER JOIN staticDataValue sdv (NOLOCK) ON sdv.valueId=cm.idType
  122. LEFT JOIN countryMaster com(NOLOCK) ON cm.nativeCountry=com.countryId
  123. LEFT JOIN KoreanBankList bl (NOLOCK) ON cm.bankName = bl.rowId
  124. WHERE cm.approvedDate is not null '
  125. IF (SELECT DATEDIFF(DAY,@fromDate,@toDate)) >10
  126. SET @table=@table + ' AND 1=2 '
  127. IF ISNULL(@fromDate,'')<>'' AND ISNULL(@toDate,'')<>''
  128. 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'+''''
  129. SET @table = @table + ')x'
  130. SET @sql_filter = ''
  131. IF ISNULL(@searchCriteria,'')<>'' AND ISNULL(@searchValue,'')<>''
  132. BEGIN
  133. IF @searchCriteria='idNumber'
  134. BEGIN
  135. --IF ISNUMERIC(@searchValue)<>1
  136. -- SET @searchValue='-1' --to ignore string value for datatype integer/customerID
  137. --SET @sql_Filter=@sql_Filter + ' AND customerId = ''' +@searchValue+''''
  138. SET @sql_Filter=@sql_Filter + ' AND REPLACE(idNumber, ''-'', '''') = ''' +REPLACE(@searchValue, '-', '')+''''
  139. END
  140. ELSE IF @searchCriteria='emailId'
  141. SET @sql_Filter=@sql_Filter + ' AND email = ''' +@searchValue+''''
  142. ELSE IF @searchCriteria='customerName'
  143. SET @sql_Filter=@sql_Filter + ' AND fullName like ''%' +@searchValue+'%'''
  144. ELSE IF @searchCriteria='mobile'
  145. SET @sql_Filter=@sql_Filter + ' AND mobile = ''' +@searchValue+''''
  146. ELSE IF @searchCriteria='walletAccountNo'
  147. SET @sql_Filter=@sql_Filter + ' AND walletAccountNo = ''' +@searchValue+''''
  148. ELSE IF @searchCriteria='bankAccountNo'
  149. SET @sql_Filter=@sql_Filter + ' AND bankAccountNo = ''' +@searchValue+''''
  150. ELSE IF @searchCriteria='bankAccountNo'
  151. SET @sql_Filter=@sql_Filter + ' AND bankAccountNo = ''' +@searchValue+''''
  152. ELSE IF @searchCriteria='goldCardNumber'
  153. SET @sql_Filter=@sql_Filter + ' AND membershipId = ''' +@searchValue+''''
  154. ELSE IF @searchCriteria='nativeCountry'
  155. SET @sql_Filter=@sql_Filter + ' AND nativeCountry = ''' +@searchValue+''''
  156. ELSE IF @searchCriteria='uniqueid'
  157. SET @sql_Filter=@sql_Filter + ' AND customerId = ''' +@searchValue+''''
  158. END
  159. SET @select_field_list ='
  160. SN,customerId,email,fullName,idtype,idNumber,mobile,bankName,bankAccountNo,walletAccountNo,availableBalance
  161. ,dob,address,country,nativeCountry,createdDate'
  162. EXEC dbo.proc_paging
  163. @table,@sql_filter,@select_field_list,@extra_field_list,@sortBy,@sortOrder,@pageSize,@pageNumber
  164. RETURN
  165. END
  166. ELSE IF @flag ='IL' -- inactive customer list
  167. BEGIN
  168. IF @sortBy IS NULL
  169. SET @sortBy = 'customerId'
  170. IF @sortOrder IS NULL
  171. SET @sortOrder = 'ASC'
  172. SET @table ='(
  173. SELECT SN=ROW_NUMBER() over(ORDER BY cm.customerId asc)
  174. ,customerId=cm.customerId
  175. ,email=cm.email
  176. ,fullName= cm.firstName
  177. ,idtype=sdv.detailTitle
  178. ,idNumber=cm.idNumber
  179. ,mobile=cm.mobile
  180. ,bankName=bl.bankName
  181. ,cm.bankAccountNo
  182. ,CM.walletAccountNo
  183. ,cm.availableBalance
  184. ,cm.dob,cm.address
  185. ,country = ''South Korea''
  186. ,nativeCountry = com.CountryName
  187. ,cm.createdDate
  188. ,cm.modifiedDate
  189. ,cm.modifiedBy
  190. FROM customerMaster cm(NOLOCK)
  191. INNER JOIN staticDataValue sdv (NOLOCK) ON sdv.valueId=cm.idType
  192. LEFT JOIN countryMaster com(NOLOCK) ON cm.nativeCountry=com.countryId
  193. LEFT JOIN KoreanBankList bl (NOLOCK) ON cm.bankName = bl.rowId
  194. WHERE ISNULL(cm.isActive,''N'') =''N'' '
  195. IF ISNULL(@fromDate,'')<>'' AND ISNULL(@toDate,'')<>''
  196. SET @table=@table + ' AND cm.createdDate BETWEEN ''' +CAST(CAST(@fromDate AS DATE) AS VARCHAR)+''' AND ''' +CAST(CAST(@toDate AS DATE) AS VARCHAR)+' 23:59:59'+''''
  197. SET @table = @table + ')x'
  198. SET @sql_filter = ''
  199. IF ISNULL(@searchCriteria,'')<>'' AND ISNULL(@searchValue,'')<>''
  200. BEGIN
  201. IF @searchCriteria='idNumber'
  202. BEGIN
  203. --IF ISNUMERIC(@searchValue)<>1
  204. -- SET @searchValue='-1' --to ignore string value for datatype integer/customerID
  205. --SET @sql_Filter=@sql_Filter + ' AND customerId = ''' +@searchValue+''''
  206. SET @sql_Filter=@sql_Filter + ' AND REPLACE(idNumber, ''-'', '''') = ''' +REPLACE(@searchValue, '-', '')+''''
  207. END
  208. ELSE IF @searchCriteria='emailId'
  209. SET @sql_Filter=@sql_Filter + ' AND email like ''' +@searchValue+'%'''
  210. ELSE IF @searchCriteria='customerName'
  211. SET @sql_Filter=@sql_Filter + ' AND fullName like ''' +@searchValue+'%'''
  212. ELSE IF @searchCriteria='mobile'
  213. SET @sql_Filter=@sql_Filter + ' AND mobile = ''' +@searchValue+''''
  214. ELSE IF @searchCriteria='walletAccountNo'
  215. SET @sql_Filter=@sql_Filter + ' AND walletAccountNo = ''' +@searchValue+''''
  216. ELSE IF @searchCriteria='bankAccountNo'
  217. SET @sql_Filter=@sql_Filter + ' AND bankAccountNo = ''' +@searchValue+''''
  218. ELSE IF @searchCriteria='nativeCountry'
  219. SET @sql_Filter=@sql_Filter + ' AND nativeCountry = ''' +@searchValue+''''
  220. ELSE IF @searchCriteria='uniqueid'
  221. SET @sql_Filter=@sql_Filter + ' AND customerId = ''' +@searchValue+''''
  222. END
  223. SET @select_field_list ='
  224. SN,customerId,email,fullName,idtype,idNumber,mobile,bankName,bankAccountNo,walletAccountNo,availableBalance
  225. ,dob,address,country,nativeCountry,createdDate,modifiedDate,modifiedBy'
  226. EXEC dbo.proc_paging
  227. @table,@sql_filter,@select_field_list,@extra_field_list,@sortBy,@sortOrder,@pageSize,@pageNumber
  228. RETURN
  229. END
  230. ELSE IF @flag='p' --pending list
  231. BEGIN
  232. IF @sortBy IS NULL
  233. SET @sortBy = 'customerId'
  234. IF @sortOrder IS NULL
  235. SET @sortOrder = 'ASC'
  236. SET @table ='(
  237. SELECT SN=ROW_NUMBER() over(ORDER BY cm.customerId asc)
  238. ,customerId=cm.customerId
  239. ,email=cm.email
  240. ,fullName= REPLACE(ISNULL(cm.firstName, '''') + ISNULL('' '' + cm.middleName, '''') + ISNULL('' '' + cm.lastName1, ''''), '' '', '' '')
  241. ,dob=CONVERT(VARCHAR,cm.dob,101)
  242. ,address=cm.[address]
  243. ,country=c.countryName
  244. ,ipAddress=isnull(cm.ipAddress,'''')
  245. ,nativeCountry=com.countryName
  246. ,idtype=sdv.detailTitle
  247. ,idNumber=cm.idNumber
  248. ,telNo=isnull(cm.telNo,'''')
  249. ,mobile=cm.mobile
  250. ,createdDate=CAST(cm.createdDate AS DATE)
  251. ,bankName=bl.bankName
  252. ,cm.bankAccountNo
  253. FROM customerMaster cm(NOLOCK)
  254. LEFT JOIN countryMaster com(NOLOCK) ON cm.nativeCountry=com.countryId
  255. LEFT JOIN countryMaster c(NOLOCK) ON cm.country=c.countryId
  256. INNER JOIN staticDataValue sdv (NOLOCK) ON sdv.valueId=cm.idType AND sdv.typeID=1300
  257. LEFT JOIN vwBankLists bl (NOLOCK) ON cm.bankName = bl.rowId
  258. WHERE cm.verifiedDate IS NULL'
  259. IF ISNULL(@fromDate,'')<>'' AND ISNULL(@toDate,'')<>''
  260. SET @table=@table + ' AND cm.createdDate BETWEEN ''' +CAST(@fromDate AS VARCHAR)+''' AND ''' +CAST(@toDate AS VARCHAR)+''''
  261. SET @table = @table + ')x'
  262. SET @sql_filter = ''
  263. IF ISNULL(@searchCriteria,'')<>'' AND ISNULL(@searchValue,'')<>''
  264. BEGIN
  265. IF @searchCriteria='idNumber'
  266. BEGIN
  267. SET @sql_Filter=@sql_Filter + ' AND REPLACE(idNumber, ''-'', '''') = ''' +REPLACE(@searchValue, '-', '')+''''
  268. END
  269. ELSE IF @searchCriteria='emailId'
  270. SET @sql_Filter=@sql_Filter + ' AND email like ''' +@searchValue+'%'''
  271. ELSE IF @searchCriteria='customerName'
  272. SET @sql_Filter=@sql_Filter + ' AND fullName like ''' +@searchValue+'%'''
  273. ELSE IF @searchCriteria='mobile'
  274. SET @sql_Filter=@sql_Filter + ' AND mobile = ''' +@searchValue+''''
  275. ELSE IF @searchCriteria='bankAccountNo'
  276. SET @sql_Filter=@sql_Filter + ' AND bankAccountNo = ''' +@searchValue+''''
  277. ELSE IF @searchCriteria='nativeCountry'
  278. SET @sql_Filter=@sql_Filter + ' AND nativeCountry = ''' +@searchValue+''''
  279. ELSE IF @searchCriteria='uniqueid'
  280. SET @sql_Filter=@sql_Filter + ' AND customerid = ''' +@searchValue+''''
  281. END
  282. SET @select_field_list ='
  283. SN
  284. ,customerId
  285. ,email
  286. ,fullName
  287. ,dob
  288. ,address
  289. ,country
  290. --,ipAddress
  291. ,nativeCountry
  292. ,idtype
  293. ,idNumber
  294. --,telNo
  295. ,mobile
  296. ,createdDate
  297. ,bankName
  298. ,bankAccountNo
  299. '
  300. EXEC dbo.proc_paging
  301. @table
  302. ,@sql_filter
  303. ,@select_field_list
  304. ,@extra_field_list
  305. ,@sortBy
  306. ,@sortOrder
  307. ,@pageSize
  308. ,@pageNumber
  309. RETURN
  310. END
  311. ELSE IF @flag='searchCriteria'
  312. BEGIN
  313. SELECT '' value, 'Select' [text] UNION ALL
  314. SELECT 'emailId', 'User ID' UNION ALL
  315. SELECT 'IdNumber', 'ID - Number' UNION ALL
  316. --SELECT 'nativeCountry', 'Native Country' UNION ALL
  317. SELECT 'customerName', 'Customer Name' UNION ALL
  318. SELECT 'walletAccountNo', 'Virtual Account No' UNION ALL
  319. SELECT 'bankAccountNo', 'Registered Bank Account No' UNION ALL
  320. SELECT 'mobile', 'Mobile No' UNION ALL
  321. SELECT 'goldCardNumber', 'Gold Card Number' UNION all
  322. SELECT 'uniqueid', 'Unique Id'
  323. RETURN
  324. END
  325. ELSE IF @flag='UnApprovesearch'
  326. BEGIN
  327. SELECT '' value, 'Select' [text] UNION ALL
  328. SELECT 'emailId', 'User ID' UNION ALL
  329. SELECT 'IdNumber', 'ID - Number' UNION ALL
  330. SELECT 'nativeCountry', 'Native Country' UNION ALL
  331. SELECT 'customerName', 'Customer Name' UNION ALL
  332. SELECT 'walletAccountNo', 'Virtual Account No' UNION ALL
  333. SELECT 'bankAccountNo', 'Registered Bank Account No' UNION ALL
  334. SELECT 'mobile', 'Mobile No' UNION ALL
  335. SELECT 'goldCardNumber', 'Gold Card Number' UNION ALl
  336. SELECT 'uniqueid', 'Unique Id'
  337. RETURN
  338. END
  339. ELSE IF @flag='ddlCustomerType'
  340. BEGIN
  341. SELECT '' value, 'Select' [text] UNION ALL
  342. SELECT 'n', 'Newly Registered' UNION ALL
  343. SELECT 'y', 'Existing'
  344. RETURN
  345. END
  346. ELSE IF @flag='verify-pending'
  347. BEGIN
  348. UPDATE dbo.customerMaster SET verifiedDate=GETDATE(),verifiedBy=@user WHERE customerId=@customerId
  349. SELECT '0' ErrorCode , 'Customer verified successfully.' Msg , @customerId id
  350. RETURN
  351. END
  352. ELSE IF @flag='approve-pending'
  353. BEGIN
  354. DECLARE @custIdNumber VARCHAR(50),@AlreadyExistCustomer VARCHAR(100),@bankName VARCHAR(100)
  355. SELECT @custIdNumber = idNumber , @bankName=bankName , @accountNumber=bankAccountNo
  356. FROM dbo.customerMaster (NOLOCK)
  357. WHERE customerId = @customerId
  358. select @cusType = userType from applicationUsers(nolock) where userName = @user
  359. SELECT TOP 1 @AlreadyExistCustomer=email FROM dbo.customerMaster (NOLOCK) WHERE bankName=@bankName AND bankAccountNo=@accountNumber AND approvedBy IS NOT NULL
  360. IF EXISTS (SELECT 'X' FROM dbo.customerMaster (NOLOCK) WHERE replace(idNumber,'-','') = replace(@custIdNumber, '-', '')
  361. GROUP BY replace(idNumber,'-','') having count(1)>1)
  362. BEGIN
  363. SELECT '1' ErrorCode , 'Duplicate id number found for customer' Msg ,null
  364. RETURN
  365. END
  366. IF EXISTS (SELECT 'X' FROM dbo.customerMaster (NOLOCK) WHERE replace(idNumber,'-','') = replace(@custIdNumber, '-', '') AND approvedBy IS NOT NULL)
  367. BEGIN
  368. SELECT '1' ErrorCode , 'Customer with same id number already approved.' Msg ,null
  369. RETURN
  370. END
  371. IF EXISTS (SELECT 'X' FROM dbo.customerMaster (NOLOCK) WHERE bankName=@bankName AND bankAccountNo=@accountNumber AND approvedBy IS NOT NULL)
  372. BEGIN
  373. SELECT '1' ErrorCode , 'Customer with same bank details already exists. Already Exists Customer : '+ISNULL(@AlreadyExistCustomer,'') Msg ,null
  374. RETURN
  375. END
  376. IF NOT EXISTS ( SELECT TOP 1 virtualAccNumber from VirtualAccountMapping WITH (NOLOCK) )
  377. BEGIN
  378. SELECT '1' ErrorCode , 'No stock Virtual account found, please upload ! Warning ' Msg ,null
  379. RETURN
  380. END
  381. IF @cusType <> 'HO'
  382. BEGIN
  383. --UPDATE customerMaster
  384. --SET dob = dbo.FNAGETDOB_FROM_ALIENCARD(LEFT(idNumber,6),RIGHT(LEFT(idNumber,8),1))
  385. --WHERE DOB IS NULL AND idNumber LIKE '%-%'
  386. UPDATE customerMaster SET verifiedBy = @user,verifiedDate = GETDATE(),customerStatus ='S' where customerId = @customerId
  387. INSERT INTO SuspiciousRegisteredCustomer(OrgCustomerId,MatchedCustomerId)
  388. EXEC [Proc_ValidateDuplicateCustomer] @customerId = @customerId
  389. if exists(select 'a' from SuspiciousRegisteredCustomer(nolock) where OrgCustomerId = @customerId)
  390. begin
  391. SELECT '1' ErrorCode , 'Suspicious customer verified but can not approve,please contact HO ' Msg ,null
  392. return
  393. end
  394. END
  395. IF EXISTS(SELECT 'A' FROM customerMaster(NOLOCK) WHERE customerId = @customerId AND walletAccountNo IS NULL)
  396. BEGIN
  397. IF ISNULL(@isKftcOnly,'N') = 'Y'
  398. BEGIN
  399. DECLARE @dummyWallet BIGINT
  400. SELECT TOP 1 @dummyWallet = VirtualWalletNo from FastMoneyPro_Account.dbo.billSetting WITH (NOLOCK)
  401. SET @accountNumber = CONVERT(VARCHAR,@dummyWallet + 1)
  402. UPDATE FastMoneyPro_Account.dbo.billSetting SET VirtualWalletNo = @dummyWallet + 1 WHERE rowid = 1
  403. END
  404. ELSE
  405. BEGIN
  406. SELECT TOP 1 @accountNumber = virtualAccNumber from VirtualAccountMapping WITH (NOLOCK) where customerId is null
  407. UPDATE VirtualAccountMapping SET customerId = @customerId WHERE virtualAccNumber = @accountNumber
  408. END
  409. UPDATE dbo.customerMaster SET walletAccountNo=@accountNumber , CustomerBankName = @CustomerBankName
  410. ,DOB = CASE WHEN DOB IS NULL AND idType IN(1302,8008) THEN dbo.FNAGETDOB_FROM_ALIENCARD(LEFT(@custIdNumber,6),RIGHT(LEFT(@custIdNumber,8),1))
  411. ELSE DOB END,IsKftcOnly = @isKftcOnly
  412. WHERE customerId = @customerId
  413. END
  414. DECLARE @newPassword varchar(20) = RIGHT('0000000' + CAST(CHECKSUM(NEWID()) AS VARCHAR), 7)
  415. IF EXISTS(SELECT 'A' FROM customerMaster(NOLOCK) WHERE customerId = @customerId and customerPassword is not null)
  416. SELECT @newPassword = dbo.FNAencryptString(customerPassword) FROM customerMaster(NOLOCK) WHERE customerId = @customerId and customerPassword is not null
  417. ELSE
  418. BEGIN
  419. UPDATE dbo.customerMaster SET customerPassword = dbo.FNAencryptString(@newPassword) WHERE customerId = @customerId
  420. END
  421. -- @Max
  422. -- 2018.09
  423. SELECT username = ISNULL(cm.email,''),
  424. [password] = dbo.FNADecryptString(cm.customerPassword),
  425. [channel] = 'registration',
  426. [account] = ISNULL(cm.membershipId,''),
  427. walletAccountNo,
  428. bankAccountNo,
  429. fullName,
  430. CustomerBankName,
  431. k.bankCode,
  432. cm.idType,
  433. REPLACE(cm.idNumber, ' ', '') AS [idNumber],
  434. CONVERT(VARCHAR(6), cm.dob, 12) AS [dobYMD],
  435. CASE WHEN cm.gender='97' THEN '7'
  436. WHEN cm.gender='98' THEN '8' END AS [genderCode],
  437. CASE WHEN cm.nativeCountry = '238' THEN '1'
  438. WHEN cm.nativeCountry = '113' THEN '2'
  439. WHEN cm.nativeCountry = '45' THEN '3'
  440. ELSE '4' END AS [nativeCountryCode]
  441. FROM dbo.customerMaster cm(NOLOCK)
  442. INNER JOIN KoreanBankList k (nolock) on k.rowId = cm.bankName
  443. WHERE cm.customerId = @customerId
  444. SELECT '0' ErrorCode , 'Customer verified successfully.' Msg ,@customerId id
  445. RETURN
  446. END
  447. ELSE IF @flag='update-obpId'
  448. BEGIN
  449. BEGIN TRAN
  450. UPDATE dbo.customerMaster SET
  451. obpId = @obpId
  452. ,approvedDate = GETDATE(),approvedBy=@user ,customerStatus= 'V'
  453. ,verifiedBy = case when verifiedBy is null then @user else verifiedBy end
  454. ,verifiedDate = case when verifiedDate is null then GETDATE() else verifiedDate end
  455. ,isActive = 'Y'
  456. WHERE customerId = @customerId
  457. DECLARE @Mobile VARCHAR(20)
  458. select @virtualAccountNo = walletAccountNo
  459. ,@CustomerBankName = firstName+'- Principle'
  460. ,@Mobile = mobile
  461. from customerMaster(nolock)
  462. WHERE customerId = @customerId
  463. ----#### SEND NOTIFICATION TO CUSTOMER
  464. DECLARE @SMSBody VARCHAR(90) = 'Dear '+LEFT(@CustomerBankName,14)+' You are successfully registered with GME.Thank you for choosing GME.'
  465. exec FastMoneyPro_Remit.dbo.proc_CallToSendSMS @FLAG = 'I',@SMSBody = @SMSBody,@MobileNo = @Mobile
  466. IF not EXISTS(SELECT 'A' FROM FastMoneyPro_Account.dbo.ac_master (NOLOCK) WHERE acct_num = @virtualAccountNo)
  467. begin
  468. DECLARE @GL INT = 79
  469. insert into FastMoneyPro_Account.dbo.ac_master
  470. (acct_num, acct_name,gl_code, branch_id,acct_ownership,acct_rpt_code
  471. , acct_opn_date,clr_bal_amt, system_reserved_amt,lien_amt, utilised_amt, available_amt,created_date,created_by,company_id)
  472. select @virtualAccountNo,@CustomerBankName,@GL,@customerId,'c' ,'CP'
  473. ,getdate(),0,0,0,0,0,getdate(),@user,1
  474. end
  475. ----coupon id '100% coupon-1 time'= 100% service free
  476. IF NOT EXISTS(SELECT 'A' FROM CouponIssue(NOLOCK) WHERE customerId = @customerId)
  477. BEGIN
  478. insert into CouponIssue(customerId,couponId,startDate,endDate,createdDate,createdBy,isActive,usedCount)
  479. select @customerId,'21',GETDATE(),'2021-01-01 00:00:00.000',GETDATE(),'system','Y',0
  480. END
  481. commit tran
  482. SELECT '0' ErrorCode , 'Customer registered successfully.' Msg , @customerId id
  483. --EXEC PROC_GOLDCARD_ACCOUNT_ENTRY @customerId
  484. END
  485. ELSE IF @flag='checkVirtualNo'
  486. BEGIN
  487. IF NOT EXISTS (SELECT 'X' FROM dbo.customerMaster WHERE walletAccountNo=@virtualAccountNo)
  488. SELECT '1' ErrorCode , 'Invalid Virtual AccountNo' Msg , NULL id
  489. RETURN;
  490. END
  491. ELSE IF @flag='checkPrimaryAccountNo'
  492. BEGIN
  493. IF NOT EXISTS (SELECT 'X' FROM dbo.customerMaster WHERE bankAccountNo=@primaryAccountNo)
  494. SELECT '1' ErrorCode , 'Invalid Primary AccountNo' Msg , NULL id
  495. END
  496. ELSE IF @flag='AuditList' --AUDITED DOC LIST
  497. BEGIN
  498. SET @sortBy = 'createdDate'
  499. SET @sortOrder = 'desc'
  500. SET @table ='(
  501. SELECT SN=ROW_NUMBER() over(ORDER BY cm.customerId asc)
  502. ,customerId=cm.customerId
  503. ,email=cm.email
  504. ,fullName= REPLACE(ISNULL(cm.firstName, '''') + ISNULL('' '' + cm.middleName, '''') + ISNULL('' '' + cm.lastName1, ''''), '' '', '' '')
  505. ,dob=CONVERT(VARCHAR,cm.dob,101)
  506. ,address=cm.[address]
  507. ,nativeCountry=com.countryName
  508. ,idtype=sdv.detailTitle
  509. ,idNumber=cm.idNumber
  510. ,createdDate=CAST(cm.createdDate AS DATE)
  511. ,verifiedBy=cm.verifiedBy
  512. ,branchName=''''
  513. ,verifiedDate=CAST(cm.verifiedDate AS DATE)
  514. ,ipAddress=cm.ipAddress
  515. ,mobile=cm.mobile
  516. ,bankAccountNo
  517. ,bankName=bl.bankName
  518. ,cm.AuditBy,cm.AuditDate
  519. FROM customerMaster cm(NOLOCK)
  520. LEFT JOIN countryMaster com(NOLOCK) ON cm.nativeCountry=com.countryId
  521. INNER JOIN staticDataValue sdv (NOLOCK) ON sdv.valueId=cm.idType AND sdv.typeID=1300
  522. LEFT JOIN vwBankLists bl (NOLOCK) ON cm.bankName = bl.rowId
  523. WHERE cm.verifiedDate IS NOT NULL AND cm.AuditDate IS NOT NULL'
  524. IF ISNULL(@fromDate,'')<>'' AND ISNULL(@toDate,'')<>''
  525. SET @table=@table + ' AND cm.createdDate BETWEEN ''' +CAST(@fromDate AS VARCHAR)+''' AND ''' +CAST(@toDate AS VARCHAR)+''''
  526. SET @table = @table + ')x'
  527. SET @sql_filter = ''
  528. IF ISNULL(@searchCriteria,'')<>'' AND ISNULL(@searchValue,'')<>''
  529. BEGIN
  530. IF @searchCriteria='idNumber'
  531. BEGIN
  532. --IF ISNUMERIC(@searchValue)<>1
  533. -- SET @searchValue='-1' --to ignore string value for datatype integer/customerID
  534. --SET @sql_Filter=@sql_Filter + ' AND customerId = ''' +@searchValue+''''
  535. SET @sql_Filter=@sql_Filter + ' AND REPLACE(idNumber, ''-'', '''') = ''' +REPLACE(@searchValue, '-', '')+''''
  536. END
  537. ELSE IF @searchCriteria='emailId'
  538. SET @sql_Filter=@sql_Filter + ' AND email like ''' +@searchValue+'%'''
  539. ELSE IF @searchCriteria='customerName'
  540. SET @sql_Filter=@sql_Filter + ' AND fullName like ''' +@searchValue+'%'''
  541. ELSE IF @searchCriteria='mobile'
  542. SET @sql_Filter=@sql_Filter + ' AND mobile = ''' +@searchValue+''''
  543. ELSE IF @searchCriteria='walletAccountNo'
  544. SET @sql_Filter=@sql_Filter + ' AND walletAccountNo = ''' +@searchValue+''''
  545. ELSE IF @searchCriteria='bankAccountNo'
  546. SET @sql_Filter=@sql_Filter + ' AND bankAccountNo = ''' +@searchValue+''''
  547. ELSE IF @searchCriteria='nativeCountry'
  548. SET @sql_Filter=@sql_Filter + ' AND nativeCountry = ''' +@searchValue+''''
  549. ELSE IF @searchCriteria='uniqueid'
  550. SET @sql_Filter=@sql_Filter + ' AND customerId = ''' +@searchValue+''''
  551. END
  552. SET @select_field_list ='
  553. SN,customerId,email,fullName,dob,address,nativeCountry,idtype,idNumber
  554. ,createdDate,verifiedBy,branchName,verifiedDate,bankAccountNo,bankName,AuditBy,AuditDate
  555. '
  556. EXEC dbo.proc_paging
  557. @table,@sql_filter,@select_field_list,@extra_field_list
  558. ,@sortBy,@sortOrder,@pageSize,@pageNumber
  559. RETURN
  560. END
  561. END TRY
  562. BEGIN CATCH
  563. IF @@TRANCOUNT > 0
  564. ROLLBACK TRANSACTION
  565. DECLARE @errorMessage VARCHAR(MAX)
  566. SET @errorMessage = ERROR_MESSAGE()
  567. EXEC proc_errorHandler 1, @errorMessage, NULL
  568. END CATCH