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.

396 lines
17 KiB

1 year ago
  1. ALTER PROCEDURE PROC_EASYREMIT(
  2. @flag VARCHAR(50),
  3. @Country VARCHAR(50) = NULL,
  4. @NativeCountry VARCHAR(50) = NULL,
  5. @Id INT = NULL,
  6. @Name VARCHAR(200) = NULL,
  7. @Password VARCHAR(50) = NULL,
  8. @Gender VARCHAR(50) = NULL,
  9. @DOB VARCHAR(50) = NULL,
  10. @cusType VARCHAR(50) = NULL,
  11. @MobileNumber VARCHAR(50) = NULL,
  12. @isKftcOnly VARCHAR(2) = NULL,
  13. @TelephoneNo VARCHAR(50) = NULL,
  14. @Email VARCHAR(50) = NULL,
  15. @Customeremail VARCHAR(50) = NULL,
  16. @CustomerBankName VARCHAR(100) = NULL,
  17. @City VARCHAR(50) = NULL,
  18. @Address VARCHAR(50) = NULL,
  19. @Occupation VARCHAR(50) = NULL,
  20. @SOF VARCHAR(50) = NULL,
  21. @IdType VARCHAR(50) = NULL,
  22. @IdNumber VARCHAR(50) = NULL,
  23. @accountNumber VARCHAR(30) = NULL,
  24. @IssueDate VARCHAR(150) = NULL,
  25. @IdExpireDate VARCHAR(150) = NULL,
  26. @IdCardFront VARCHAR(150) = NULL,
  27. @IdCardBack VARCHAR(150) = NULL,
  28. @ReferelCode VARCHAR(50) = NULL,
  29. @createdBy VARCHAR(50) = NULL,
  30. @HasDeclare VARCHAR(1) = NULL,
  31. @createdDate VARCHAR(50) = NULL,
  32. @user VARCHAR(50) = NULL,
  33. @sortBy VARCHAR(50) = NULL,
  34. @sortOrder VARCHAR(5) = NULL,
  35. @pageSize INT = NULL,
  36. @pageNumber INT = NULL)
  37. AS
  38. SET nocount ON;
  39. SET xact_abort ON;
  40. BEGIN try
  41. DECLARE @table VARCHAR(max),
  42. @select_field_list VARCHAR(max),
  43. @extra_field_list VARCHAR(max),
  44. @sql_filter VARCHAR(max),
  45. @modType VARCHAR(6),
  46. @errorMsg VARCHAR(max),
  47. @bankName VARCHAR(100),
  48. @userType VARCHAR(5),
  49. @custIdNumber VARCHAR(50),
  50. @customerGuid VARCHAR(50)
  51. IF @flag = 'customer-list'
  52. BEGIN
  53. IF @sortBy IS NULL
  54. SET @sortBy = 'createdDate'
  55. IF @sortOrder IS NULL
  56. SET @sortOrder = 'DESC'
  57. SET @table =
  58. '( SELECT customerId as Id ,fullName = ISNULL(firstName, '''') + ISNULL('' '' + middleName, '''') + ISNULL('' '' + lastName1, '''') + ISNULL('' '' + lastName2, '''')
  59. ,sd.detailTitle as idType ,ISNULL(cm.idNumber,'''') as idNumber ,com.countryName ,cm.city ,ISNULL(cm.email,'''') as email ,ISNULL(cm.mobile,'''') as mobile
  60. ,cm.createdDate ,accountName =cm.bankAccountNo ,bankName = bl.bankName FROM dbo.customerMaster cm(nolock)
  61. LEFT JOIN dbo.staticDataValue sd(nolock) ON sd.valueId=cm.idType
  62. INNER JOIN dbo.countryMaster com(nolock) ON com.countryId = cm.nativeCountry
  63. LEFT JOIN vwBankLists bl (NOLOCK) ON cm.bankName = bl.rowId
  64. WHERE customerType =11048 and cm.approvedDate is null '
  65. IF @createdDate IS NOT NULL
  66. SET @table = @table + ' AND cm.createdDate between ''' + CONVERT(VARCHAR, @createdDate, 101) + ''' AND ''' + CONVERT(VARCHAR, @createdDate, 101) + ' 23:59:59''';
  67. SET @table=@table + ')x'
  68. SET @sql_filter = ''
  69. IF @MobileNumber IS NOT NULL
  70. SET @sql_filter = @sql_filter
  71. + ' AND REPLACE(idNumber, ''-'', '''') =''' + Replace(@MobileNumber, '-', '') + '''';
  72. IF @email IS NOT NULL
  73. SET @sql_filter += ' AND email like ''' + @email + '%''';
  74. IF @NativeCountry IS NOT NULL
  75. SET @sql_filter += ' AND countryName = ''' + @NativeCountry + '''';
  76. SET @select_field_list = 'id,fullName,idType,idNumber,countryName,city,email,mobile,createdDate,accountName,bankName'
  77. EXEC dbo.Proc_paging
  78. @table,
  79. @sql_filter,
  80. @select_field_list,
  81. @extra_field_list,
  82. @sortBy,
  83. @sortOrder,
  84. @pageSize,
  85. @pageNumber
  86. RETURN
  87. END
  88. IF @flag = 'i'
  89. BEGIN
  90. IF EXISTS(SELECT 'X' FROM customermaster WITH (nolock) WHERE email = @Email)
  91. BEGIN
  92. SELECT @errorMsg = 'Customer with email ' + @Email + ' already exist.'
  93. EXEC Proc_errorhandler 1,@errorMsg, @Id
  94. RETURN
  95. END
  96. IF EXISTS(SELECT 'x' FROM customermaster (nolock) WHERE Replace(idnumber, '-', '') = Replace(@IdNumber, '-', ''))
  97. BEGIN
  98. SELECT @errorMsg = 'Customer with idnumber ' + @IdNumber + ' already exist.'
  99. EXEC Proc_errorhandler 1, @errorMsg,@Id
  100. RETURN
  101. END
  102. IF EXISTS(SELECT 'X' FROM customermaster WITH (nolock)
  103. WHERE mobile = @MobileNumber
  104. AND Isnull(onlineuser, 'N') = 'Y'
  105. AND Isnull(isdeleted, 'N') = 'N')
  106. BEGIN
  107. SELECT @errorMsg = 'Customer with mobile number ' + @MobileNumber + ' already exist.'
  108. EXEC Proc_errorhandler 1,@errorMsg,@Id
  109. RETURN
  110. END
  111. INSERT INTO customermaster
  112. (country,nativecountry, fullname, customerpassword, email, gender, dob, mobile, homephone, customeremail, city, address, occupation,
  113. sourceoffund, idtype, idnumber, idissuedate, verifydoc1, verifydoc2, referelcode, createdby, createddate,
  114. branchid, isactive, isforcedpwdchange, customertype,
  115. firstname,idexpirydate, onlineuser,bankName)
  116. VALUES
  117. ( 118, @NativeCountry,@Name, dbo.Fnaencryptstring(@Password), @Email, @Gender, CONVERT(DATETIME, @DOB, 103),@MobileNumber, @IdNumber, @Customeremail, @City, @Address, @Occupation,
  118. @SOF, @IdType,@IdNumber, CONVERT(DATETIME, @IssueDate, 103), @IdCardFront, @IdCardBack, @ReferelCode, @createdBy, Getdate(),
  119. (SELECT agentid FROM applicationusers(nolock) WHERE username = @user), 'Y', 1, 11048 --'Easy Remit'
  120. , @Name, CONVERT(DATETIME, @IdExpireDate, 103), 'Y',27 )
  121. SET @Id = @@IDENTITY
  122. INSERT INTO tblcustomerbankverification (customerid, action,reqdate, certdate, certnumber, certlimitcount)
  123. SELECT @Id, 'SUCCESS', Getdate(),Getdate(), '', 0
  124. EXEC Proc_errorhandler 0, 'Record Save successfully', NULL
  125. RETURN
  126. END
  127. IF @flag = 'U'
  128. BEGIN
  129. SELECT @userType = usertype FROM applicationusers (nolock)
  130. WHERE username = @user
  131. IF EXISTS (SELECT 'a' FROM dbo.customermaster (nolock)
  132. WHERE customerid = @Id AND approvedby IS NOT NULL AND @userType <> 'HO')
  133. BEGIN
  134. SELECT '1' ErrorCode , 'Customer is already approved, you can not modify this customer data.' Msg , @Id id
  135. RETURN
  136. END
  137. --LOG FOR CUSTOMER UPDATE
  138. EXEC Proc_customermodifylog
  139. @flag = 'i',
  140. @email = @Email,
  141. @idNumber = @IdNumber,
  142. @bank = NULL,
  143. @accNumber = @accountNumber,
  144. @customerId = @Id,
  145. @mobileNumber = @MobileNumber,
  146. @user = @user,
  147. @idType = @IdType,
  148. @dob = @DOB,
  149. @issueDate = @IssueDate,
  150. @expiryDate =@IdExpireDate
  151. UPDATE customermaster
  152. SET nativecountry = @NativeCountry,
  153. fullname = @Name,
  154. customerpassword = dbo.Fnaencryptstring(@Password),
  155. email = @Email,
  156. gender = @Gender,
  157. dob = CONVERT(DATETIME, @DOB, 103),
  158. mobile = @MobileNumber,
  159. customeremail = @Customeremail,
  160. city = @City,
  161. address = @Address,
  162. occupation = @Occupation,
  163. sourceoffund = @SOF,
  164. idtype = @IdType,
  165. idnumber = @IdNumber,
  166. idissuedate = CONVERT(DATETIME, @IssueDate, 103),
  167. verifydoc1 = @IdCardFront,
  168. verifydoc2 = @IdCardBack,
  169. firstname = @Name,
  170. idexpirydate = CONVERT(DATETIME, @IdExpireDate, 103),
  171. hasdeclare = @HasDeclare,
  172. modifiedby = @user,
  173. modifieddate = Getdate()
  174. WHERE customerid = @Id
  175. EXEC Proc_errorhandler 0,'Record Update successfully',NULL
  176. RETURN
  177. END
  178. IF @flag = 'customer-details'
  179. BEGIN
  180. SELECT customerid,cu.walletaccountno,cu.membershipid, isTxnMade = 'N', firstname, middlename, lastname1, lastname2, country, address, zipcode, city, email,
  181. mobile = Replace(mobile, '+', ''), nativecountry, homephone, occupation,address2, fullname, postalcode, idtype, idnumber, telno, companyname, gender,
  182. ipaddress, verifydoc1, verifydoc2, verifiedby, verifieddate, bankaccountno,isApproved = CASE WHEN approvedby IS NULL THEN 'N' ELSE 'Y' END,
  183. CONVERT(VARCHAR, dob, 101) AS dob, CONVERT(VARCHAR, idissuedate, 101) AS idIssueDate, CONVERT(VARCHAR, idexpirydate, 101) AS idExpiryDate,
  184. membershipid, Isnull(cu.bonuspoint, 0) AS RewardPoint
  185. ,cu.sourceOfFund AS sourceOfFund
  186. FROM customermaster cu WITH(nolock)
  187. WHERE customerid = @Id AND customertype = 11048
  188. RETURN
  189. END
  190. IF @flag = 'approve-pending'
  191. BEGIN
  192. SELECT @custIdNumber = idnumber FROM dbo.customermaster (nolock)
  193. WHERE customerid = @Id
  194. SELECT @cusType = usertype FROM applicationusers(nolock)
  195. WHERE username = @user
  196. IF EXISTS (SELECT 'X' FROM dbo.customermaster (nolock)
  197. WHERE Replace(idnumber, '-', '') = Replace(@IdNumber, '-', '')
  198. GROUP BY Replace(idnumber, '-', '')
  199. HAVING Count(1) > 1)
  200. BEGIN
  201. SELECT '1' ErrorCode, 'Duplicate id number found for customer' Msg, NULL
  202. RETURN
  203. END
  204. IF EXISTS (SELECT 'X' FROM dbo.customermaster (nolock)
  205. WHERE Replace(idnumber, '-', '') = Replace(@IdNumber, '-', '')
  206. AND approvedby IS NOT NULL)
  207. BEGIN
  208. SELECT '1' ErrorCode,'Customer with same id number already approved.' Msg,NULL
  209. RETURN
  210. END
  211. --IF NOT EXISTS ( SELECT TOP 1 virtualAccNumber from WSBWalletList WITH (NOLOCK) )
  212. --BEGIN
  213. --SELECT '1' ErrorCode , 'No stock Virtual account found, please upload ! Warning ' Msg ,null
  214. --RETURN
  215. --END
  216. IF EXISTS(SELECT 'A' FROM customermaster(nolock)
  217. WHERE customerid = @Id AND walletaccountno IS NULL)
  218. BEGIN
  219. SELECT TOP 1 @accountNumber = virtualaccnumber
  220. FROM wsbwalletlist WITH (nolock)
  221. WHERE customerid IS NULL
  222. UPDATE wsbwalletlist
  223. SET customerid = @Id,
  224. createdby = @user,
  225. createddate = Getdate()
  226. WHERE virtualaccnumber = @accountNumber
  227. UPDATE dbo.customermaster
  228. SET walletaccountno = @accountNumber,
  229. customerbankname = @CustomerBankName,
  230. dob = CASE WHEN dob IS NULL AND idtype IN( 1302, 8008 ) THEN dbo.Fnagetdob_from_aliencard(LEFT(@custIdNumber, 6), RIGHT( LEFT(@custIdNumber, 8), 1)) ELSE dob END,
  231. iskftconly = @isKftcOnly
  232. WHERE customerid = @Id
  233. END
  234. DECLARE @newPassword VARCHAR(20) = RIGHT('0000000' + Cast(Checksum(Newid()) AS VARCHAR), 7)
  235. IF EXISTS(SELECT 'A' FROM customermaster(nolock) WHERE customerid = @Id AND customerpassword IS NOT NULL)
  236. SELECT @newPassword = dbo.Fnaencryptstring(customerpassword) FROM customermaster(nolock) WHERE customerid = @Id AND customerpassword IS NOT NULL
  237. ELSE
  238. BEGIN
  239. UPDATE dbo.customermaster
  240. SET customerpassword = dbo.Fnaencryptstring(@newPassword)
  241. WHERE customerid = @Id
  242. END
  243. DECLARE @tlgSeqNo VARCHAR(10), @NewValue VARCHAR(10)
  244. SET @NewValue= next value FOR dbo.wsb_sequence SET @tlgSeqNo=(SELECT CONVERT(VARCHAR(6), Getdate(), 12)) + @NewValue
  245. SELECT dataLen =400, orgtId='GME', srvcDs='VT0401', trxTypeCd='0200',rspsCd='0000', tlgSeqNo=@tlgSeqNo, tlgSendHur=(SELECT Format(Getdate(), 'yyyyMMddHHmmss')),
  246. filler=NULL, username = Isnull(cm.email, ''), [password] = dbo.Fnadecryptstring(cm.customerpassword),
  247. [channel] = 'registration', [account] = Isnull(cm.membershipid, ''), walletaccountno, bankaccountno, fullname, customerbankname, bankCode =NULL, cm.idtype,
  248. Replace(cm.idnumber, ' ', '') AS [idNumber], CONVERT(VARCHAR(6), cm.dob, 12) AS [dobYMD], CASE WHEN cm.gender = '97' THEN '7' WHEN cm.gender = '98' THEN '8' END AS [genderCode],
  249. CASE WHEN cm.nativecountry = '238' THEN '1' WHEN cm.nativecountry = '113' THEN '2' WHEN cm.nativecountry = '45' THEN '3' ELSE '4' END AS [nativeCountryCode],customerid
  250. FROM dbo.customermaster cm(nolock)
  251. --INNER JOIN KoreanBankList k (nolock) on k.rowId = cm.bankName
  252. WHERE cm.customerid = @Id
  253. SELECT '0' ErrorCode, 'Customer verified successfully.' Msg, @Id id
  254. RETURN
  255. END
  256. IF @flag = 'verify-customer-details'
  257. BEGIN
  258. DECLARE @duplicateCustomer VARCHAR(100)
  259. SELECT @duplicateCustomer ='Suspicious customer detail match with Old Id number :' + m.idnumber
  260. FROM suspiciousregisteredcustomer c(nolock)
  261. INNER JOIN customermaster m(nolock) ON c.matchedcustomerid = m.customerid
  262. WHERE orgcustomerid = @Id
  263. SELECT cm.walletaccountno AS [walletNumber],
  264. cm.customerid,
  265. email,
  266. membershipid AS [goldcardnumber],
  267. cm.fullname,
  268. sdg.detailtitle AS [gender],
  269. cmb.countryname AS [country],
  270. cmn.countryname AS [nativeCountry],
  271. cm.homephone,
  272. cm.postalcode,
  273. cm.[address],
  274. cm.city,
  275. cm.telno,
  276. cm.mobile,
  277. sdo.detailtitle AS [occupation],
  278. sdi.detailtitle AS [idType],
  279. cm.idtype AS [idTypeCode],
  280. cm.idnumber,
  281. cm.verifydoc1,
  282. cm.verifydoc2,
  283. cm.verifydoc3,
  284. CONVERT(VARCHAR, dob, 101) AS [dob],
  285. CONVERT(VARCHAR, idissuedate, 101) AS [idIssueDate],
  286. CONVERT(VARCHAR, idexpirydate, 101) AS [idExpiryDate],
  287. bl.bankname,
  288. bl.bankcode,
  289. cm.bankaccountno,
  290. cm.walletaccountno,
  291. cm.homephone,
  292. cm.availablebalance,
  293. verifyDoc4 = selfiedoc,
  294. cm.obpid,
  295. cm.auditdate,
  296. SuspCust = CASE
  297. WHEN cm.customerstatus = 'V' THEN
  298. 'Face to Face Customer Verified At GME Branch'
  299. ELSE @duplicateCustomer
  300. END,
  301. CustomerStatus = CASE
  302. WHEN cm.hasdeclare = 1 THEN 'S'
  303. ELSE cm.customerstatus
  304. END,
  305. CONVERT(VARCHAR(6), cm.dob, 12) AS [dobYMD],
  306. CASE
  307. WHEN gender = '97' THEN '7'
  308. WHEN gender = '98' THEN '8'
  309. END AS [genderCode],
  310. CASE
  311. WHEN nativecountry = '238' THEN '1'
  312. WHEN nativecountry = '113' THEN '2'
  313. WHEN nativecountry = '45' THEN '3'
  314. ELSE '4'
  315. END AS [nativeCountryCode],
  316. CM.approvedby,
  317. cm.approveddate,
  318. Isnull(CM.bonuspoint, 0) AS RewardPoint
  319. FROM customermaster cm (nolock)
  320. LEFT JOIN staticdatavalue sdg (nolock) ON sdg.valueid = cm.gender
  321. LEFT JOIN dbo.countrymaster cmb (nolock) ON cmb.countryid = cm.country
  322. LEFT JOIN dbo.countrymaster cmn (nolock) ON cmn.countryid = cm.nativecountry
  323. LEFT JOIN staticdatavalue sdo (nolock) ON sdo.valueid = cm.occupation
  324. LEFT JOIN staticdatavalue sdi (nolock) ON sdi.valueid = cm.idtype
  325. LEFT JOIN koreanbanklist bl (nolock) ON cm.bankname = bl.rowid
  326. WHERE customerid = @Id AND cm.customertype = 11048
  327. RETURN
  328. END
  329. IF @Flag = 'CUSTOMERINFO'
  330. BEGIN
  331. SELECT TOP 1 '0' ErrorCode,walletaccountno AS vtulAccNo,firstname AS custNm
  332. FROM dbo.customermaster(nolock)
  333. WHERE customertype = '11048'
  334. RETURN
  335. END
  336. END try
  337. BEGIN CATCH
  338. IF @@TRANCOUNT > 0
  339. ROLLBACK TRANSACTION
  340. DECLARE @errorMessage VARCHAR(max)
  341. SET @errorMessage = Error_message()
  342. EXEC Proc_errorhandler 1,@errorMessage,NULL
  343. END CATCH