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.

595 lines
45 KiB

1 month ago
  1. USE [FastMoneyPro_Remit]
  2. GO
  3. /****** Object: StoredProcedure [dbo].[proc_ApproveHoldedTxnMobile] Script Date: 6/26/2024 1:26:51 PM ******/
  4. SET ANSI_NULLS ON
  5. GO
  6. SET QUOTED_IDENTIFIER ON
  7. GO
  8. ALTER PROC [dbo].[proc_ApproveHoldedTxnMobile]
  9. @flag VARCHAR(50)
  10. ,@user VARCHAR(130)
  11. ,@userType VARCHAR(10) = NULL
  12. ,@branch VARCHAR(50) = NULL
  13. ,@id VARCHAR(40) = NULL
  14. ,@country VARCHAR(50) = NULL
  15. ,@sender VARCHAR(50) = NULL
  16. ,@receiver VARCHAR(50) = NULL
  17. ,@amt MONEY = NULL
  18. ,@bank VARCHAR(50) = NULL
  19. ,@voucherNo VARCHAR(50) = NULL
  20. ,@branchId INT = NULL
  21. ,@pin VARCHAR(50) = NULL
  22. ,@errorCode VARCHAR(10) = NULL
  23. ,@msg VARCHAR(500) = NULL
  24. ,@idList XML = NULL
  25. ,@txnDate VARCHAR(20) = NULL
  26. ,@txncreatedBy VARCHAR(50) = NULL
  27. ,@xml VARCHAR(MAX) = NULL
  28. ,@remarks VARCHAR(MAX) = NULL
  29. ,@settlingAgentId INT = NULL
  30. ,@ControlNo VARCHAR(50) = NULL
  31. ,@txnType VARCHAR(1) = NULL
  32. ,@sendCountry VARCHAR(50) = NULL
  33. ,@sendAgent VARCHAR(50) = NULL
  34. ,@sendBranch VARCHAR(50) = NULL
  35. ,@approvedFrom VARCHAR(10) = NULL
  36. ,@tpControlNo1 VARCHAR(30) = NULL
  37. ,@tpControlNo2 VARCHAR(30) = NULL
  38. ,@isTxnRealtime BIT = NULL
  39. ,@cAmt MONEY = NULL
  40. ,@collectedBy VARCHAR(20) = NULL
  41. ,@tranId VARCHAR(20) = NULL
  42. ,@email VARCHAR(1000) = NULL
  43. ,@collectedByName varchar(50) = null
  44. AS
  45. --------------------------------------------------------------------
  46. -- #101 - Mobile Changes
  47. -- #418 - Add Email Filter
  48. -- #618 add FNAGetCustomerAvailableBalanceVerify
  49. -- #652 - collected by ddl in verify transaction
  50. -- Remove logic to allow same user to approve
  51. -- #651 cash collet logic to clear downloadby & promotion
  52. -- #1135 pushNotificationHistroy
  53. -- #18970 - change in @flag = 'verify' to hold txn from verifying if kyc is not completed
  54. -- added trantype in @flag = 's-unverified-txn' to show txn channel in UI
  55. -- change in @flag = 's-unverified-txn' to show all txn
  56. -- #31895 added new @flag = 's-unverified-card-txn' to get debit card txn
  57. --------------------------------------------------------------------
  58. BEGIN TRY
  59. DECLARE
  60. @table VARCHAR(MAX)
  61. ,@sql VARCHAR(MAX)
  62. ,@sqlSelfTxn VARCHAR(MAX)
  63. ,@sRouteId VARCHAR(5)
  64. ,@collMode VARCHAR(100)
  65. SET NOCOUNT ON;
  66. SET XACT_ABORT ON;
  67. DECLARE
  68. @pinEncrypted VARCHAR(50) = dbo.FNAEncryptString(@pin)
  69. ,@userId INT
  70. ,@createdBy VARCHAR(50)
  71. ,@tranStatus VARCHAR(50)
  72. ,@message VARCHAR(200)
  73. ,@sBranch BIGINT
  74. ,@invicePrintMethod VARCHAR(50)
  75. ,@parentId BIGINT
  76. ,@tablesql AS VARCHAR(MAX)
  77. ,@branchList VARCHAR(MAX)
  78. ,@denyAmt MONEY
  79. ,@C2CAgentID VARCHAR(30) = '1045'
  80. ,@REAgentID VARCHAR(30) = '1100'
  81. IF @pin IS NULL
  82. BEGIN
  83. SELECT @pin = dbo.FNADecryptString(controlNo), @pinEncrypted = controlNo FROM remitTranTemp WITH(NOLOCK) WHERE id = @id
  84. END
  85. ELSE
  86. BEGIN
  87. SET @pinEncrypted = dbo.FNAEncryptString(@pin)
  88. END
  89. DECLARE @PinList TABLE(id VARCHAR(50), pin VARCHAR(50),hasProcess CHAR(1),isOFAC CHAR(1),errorMsg VARCHAR(MAX),tranId INT,createdBy VARCHAR(50))
  90. DECLARE @TempcompTable TABLE(errorCode INT,msg VARCHAR(MAX),id VARCHAR(50))
  91. DECLARE @isSelfApprove VARCHAR(1)
  92. DECLARE @cdTable VARCHAR(MAX) = ''
  93. SET @cdTable = '
  94. LEFT JOIN (
  95. SELECT
  96. DISTINCT
  97. tranId
  98. ,cb.bankName
  99. ,cd.countryBankId
  100. FROM collectionDetails cd WITH(NOLOCK)
  101. LEFT JOIN countryBanks cb WITH(NOLOCK) ON cd.countryBankId = cb.countryBankId
  102. INNER JOIN remitTranTemp trn WITH(NOLOCK) ON cd.tranId = trn.id
  103. AND (trn.tranStatus = ''Hold'' OR trn.tranStatus = ''Compliance Hold'' OR trn.tranStatus = ''OFAC Hold'' )
  104. AND trn.payStatus = ''Unpaid''
  105. AND trn.approvedBy IS NULL
  106. ) cd ON cd.tranId = trn.id '
  107. IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[#collModeList]') AND type = 'D')
  108. BEGIN
  109. DROP TABLE #collModeList
  110. END
  111. CREATE TABLE #collModeList(tranId INT, hasProcess CHAR(1), proMode varchar(50))
  112. DECLARE @tranId1 INT
  113. IF @flag = 's-unverified-txn'
  114. BEGIN
  115. SET @table = '
  116. SELECT DISTINCT
  117. trn.id
  118. ,controlNo = ''<a href="/Remit/Transaction/Reports/SearchTransaction.aspx?commentFlag=N&showBankDetail=N&tranId=''+CAST(trn.id AS VARCHAR)+''">''+DBO.FNADECRYPTSTRING(trn.CONTROLNO)+''</a>''
  119. ,tranType = CASE
  120. WHEN (trn.tranType = ''M'' AND trn.isOnlineTxn = ''M'') THEN ''Mobile''
  121. WHEN (trn.tranType = ''M'' AND trn.isOnlineTxn = ''O'') THEN ''Web''
  122. WHEN trn.tranType = ''I'' THEN ''CR Panel''
  123. ELSE trn.tranType END
  124. ,branchName = am.agentName
  125. ,country = trn.pCountry
  126. ,senderId = sen.customerId
  127. ,sender = sen.firstName + ISNULL( '' '' + sen.middleName, '''') + ISNULL( '' '' + sen.lastName1, '''') + ISNULL( '' '' + sen.lastName2, '''')
  128. ,receiverId = rec.customerId
  129. ,receiver = rec.firstName + ISNULL( '' '' + rec.middleName, '''') + ISNULL( '' '' + rec.lastName1, '''') + ISNULL( '' '' + rec.lastName2, '''')
  130. ,cm.email as email
  131. ,amt = CAST(trn.cAmt AS DECIMAL(18, 2))
  132. --,paymentMethod = case when trn.collMode = ''Bank Deposit'' then ''JP Post'' ELSE trn.collMode END
  133. ,voucherNo = trn.voucherNo
  134. ,txnDate = CAST(trn.createdDate AS DATE)
  135. ,txncreatedBy = trn.createdBy
  136. ,trn.paymentMethod collMode
  137. ,CM.membershipId
  138. ,CM.mobile sMobile
  139. ,CM.customerId
  140. ,CAST(trn.pAmt AS DECIMAL(10,2)) AS pAmt
  141. ,CAST(trn.cAmt AS DECIMAL(10,2)) AS cAmt
  142. ,cAmtByUser = ISNULL(CAST(CASE WHEN TRN.COLLMODE = ''Cash Collect'' THEN trn.cAmt
  143. ELSE dbo.FNAGetCustomerAvailableBalance_New(cm.customerId) END AS VArchar),''N/A'')
  144. --ELSE X.depositAmount END AS VArchar),''N/A'')
  145. --,mappedDetail = ISNULL(CAST(CASE WHEN TRN.COLLMODE = ''Cash Collect'' THEN TCC.COLLECTED_BY
  146. -- ELSE X.particulars END AS NVARCHAR) ,''N/A'')
  147. ,REFERRAL_DETAIL = RA.REFERRAL_NAME + ''|'' + RA.REFERRAL_CODE
  148. ,ISNULL(depositType,'''') depositType
  149. ,controlNum = DBO.FNADECRYPTSTRING(trn.CONTROLNO)
  150. ,trn.schemeId
  151. ,trn.rewardType
  152. FROM remitTranTemp trn WITH(NOLOCK)
  153. LEFT JOIN apiRoutingTable art WITH(NOLOCK) ON trn.pAgent = art.agentId
  154. INNER JOIN agentMaster am WITH(NOLOCK) ON trn.sBranch = am.agentId
  155. INNER JOIN tranSendersTemp sen WITH(NOLOCK) ON trn.id = sen.tranId
  156. INNER JOIN tranReceiversTemp rec WITH(NOLOCK) ON trn.id = rec.tranId
  157. INNER JOIN CUSTOMERMASTER CM WITH(NOLOCK) ON CM.CUSTOMERID = SEN.CUSTOMERID
  158. LEFT JOIN REFERRAL_AGENT_WISE RA(NOLOCK) ON RA.REFERRAL_CODE = TRN.PROMOTIONCODE
  159. --LEFT JOIN
  160. --(
  161. -- SELECT CDL.CUSTOMERID,PARTICULARS,depositAmount FROM remitTranTemp trn (NOLOCK)
  162. -- INNER JOIN tranSendersTemp sen WITH(NOLOCK) ON trn.id = sen.tranId
  163. -- LEFT JOIN CUSTOMER_DEPOSIT_LOGS CDL WITH(NOLOCK) ON CDL.CUSTOMERID = SEN.CUSTOMERID
  164. -- WHERE CDL.APPROVEDBY IS NULL
  165. --)X ON X.CUSTOMERID = SEN.CUSTOMERiD
  166. WHERE trn.tranStatus IN (''Hold'') AND
  167. trn.payStatus = ''Unpaid'' AND
  168. trn.approvedBy IS NULL AND
  169. trn.depositType IN (''ONLINE'',''EBANKING'')
  170. --AND trn.tranType=''M''
  171. and trn.verifiedBy IS NULL
  172. --AND trn.pcountry in (''vietnam'',''nepal'')
  173. '
  174. IF @id IS NOT NULL
  175. SET @table = @table + ' AND trn.id = ''' + @id + ''''
  176. IF @branch IS NOT NULL
  177. SET @table = @table + ' AND am.agentId = ''' + @branch + ''''
  178. IF @country IS NOT NULL
  179. SET @table = @table + ' AND trn.pCountry LIKE ''' + @country + '%'''
  180. --IF @sendCountry IS NOT NULL
  181. -- SET @table = @table + ' AND trn.sCountry LIKE ''' + @sendCountry + '%'''
  182. IF @amt IS NOT NULL
  183. SET @table = @table + ' AND trn.pAmt = ' + CAST(@amt AS VARCHAR(20))+ ''
  184. IF @voucherNo IS NOT NULL
  185. SET @table = @table + ' AND trn.voucherNo = ''' + @voucherNo + ''''
  186. IF @txncreatedBy IS NOT NULL
  187. SET @table = @table + ' AND trn.createdBy = '''+@txncreatedBy+''''
  188. IF @txnDate IS NOT NULL
  189. SET @table = @table + ' AND CAST(trn.createdDate AS DATE)='''+@txnDate +''''
  190. IF @ControlNo IS NOT NULL
  191. SET @table = @table + ' AND trn.controlNo = dbo.fnaEncryptString('''+@ControlNo+''')'
  192. IF @sendAgent IS NOT NULL
  193. SET @table = @table + ' AND trn.sAgent = '''+@sendAgent+''''
  194. IF @sendBranch IS NOT NULL
  195. SET @table = @table + ' AND trn.sBranch = '''+@sendBranch+''''
  196. IF @email IS NOT NULL
  197. SET @table = @table + ' AND cm.email LIKE ''%' + @email + '%'''
  198. SET @sql = '
  199. SELECT
  200. *
  201. FROM (
  202. ' + @table + '
  203. ) x
  204. WHERE 1 = 1 '
  205. IF @sender IS NOT NULL
  206. SET @sql = @sql + ' AND sender LIKE ''' + @sender + '%'''
  207. IF @receiver IS NOT NULL
  208. SET @sql = @sql + ' AND receiver LIKE ''' + @receiver + '%'''
  209. PRINT @sql
  210. EXEC (@sql)
  211. RETURN
  212. END
  213. IF @flag = 's-verified-txn'
  214. BEGIN
  215. SET @table = '
  216. SELECT DISTINCT
  217. trn.id
  218. ,controlNo = ''<a href="/Remit/Transaction/Reports/SearchTransaction.aspx?commentFlag=N&showBankDetail=N&tranId=''+CAST(trn.id AS VARCHAR)+''">''+DBO.FNADECRYPTSTRING(trn.CONTROLNO)+''</a>''
  219. ,branchName = am.agentName
  220. ,tranType = CASE
  221. WHEN (trn.tranType = ''M'' AND trn.isOnlineTxn = ''M'') THEN ''Mobile''
  222. WHEN (trn.tranType = ''M'' AND trn.isOnlineTxn = ''O'') THEN ''Web Online''
  223. WHEN trn.tranType = ''I'' THEN ''CR Panel''
  224. ELSE trn.tranType END
  225. ,country = trn.pCountry
  226. ,senderId = sen.customerId
  227. ,sender = sen.firstName + ISNULL( '' '' + sen.middleName, '''') + ISNULL( '' '' + sen.lastName1, '''') + ISNULL( '' '' + sen.lastName2, '''')
  228. ,receiverId = rec.customerId
  229. ,receiver = rec.firstName + ISNULL( '' '' + rec.middleName, '''') + ISNULL( '' '' + rec.lastName1, '''') + ISNULL( '' '' + rec.lastName2, '''')
  230. ,amt = CAST(trn.cAmt AS DECIMAL(18, 2))
  231. ,paymentMethod = UPPER(trn.paymentMethod)
  232. ,depositType = UPPER(trn.depositType)
  233. ,txnDate = CAST(trn.createdDate AS DATE)
  234. ,txncreatedBy = trn.createdBy
  235. ,trn.collMode collMode
  236. ,cm.email
  237. ,CAST(trn.pAmt AS DECIMAL(10,2)) AS pAmt
  238. ,schemeId = trn.schemeId
  239. ,rewardType = trn.rewardType
  240. FROM remitTranTemp trn WITH(NOLOCK) ' + @cdTable + '
  241. LEFT JOIN apiRoutingTable art WITH(NOLOCK) ON trn.pAgent = art.agentId
  242. INNER JOIN agentMaster am WITH(NOLOCK) ON trn.sBranch = am.agentId
  243. INNER JOIN tranSendersTemp sen WITH(NOLOCK) ON trn.id = sen.tranId
  244. INNER JOIN tranReceiversTemp rec WITH(NOLOCK) ON trn.id = rec.tranId
  245. INNER JOIN CUSTOMERMASTER CM WITH(NOLOCK) ON CM.CUSTOMERID = SEN.CUSTOMERID
  246. WHERE trn.tranStatus IN (''Hold'') AND
  247. trn.payStatus = ''Unpaid'' AND
  248. trn.approvedBy IS NULL
  249. AND trn.tranType=''M''
  250. and trn.verifiedBy IS NOT NULL
  251. '
  252. IF @id IS NOT NULL
  253. SET @table = @table + ' AND trn.id = ''' + @id + ''''
  254. IF @branch IS NOT NULL
  255. SET @table = @table + ' AND am.agentId = ''' + @branch + ''''
  256. IF @country IS NOT NULL
  257. SET @table = @table + ' AND trn.pCountry LIKE ''' + @country + '%'''
  258. --IF @sendCountry IS NOT NULL
  259. -- SET @table = @table + ' AND trn.sCountry LIKE ''' + @sendCountry + '%'''
  260. IF @amt IS NOT NULL
  261. SET @table = @table + ' AND trn.pAmt = ' + CAST(@amt AS VARCHAR(20))+ ''
  262. IF @voucherNo IS NOT NULL
  263. SET @table = @table + ' AND trn.voucherNo = ''' + @voucherNo + ''''
  264. IF @txncreatedBy IS NOT NULL
  265. SET @table = @table + ' AND trn.createdBy = '''+@txncreatedBy+''''
  266. IF @txnDate IS NOT NULL
  267. SET @table = @table + ' AND CAST(trn.createdDate AS DATE)='''+@txnDate +''''
  268. IF @ControlNo IS NOT NULL
  269. SET @table = @table + ' AND trn.controlNo = dbo.fnaEncryptString('''+@ControlNo+''')'
  270. IF @sendAgent IS NOT NULL
  271. SET @table = @table + ' AND trn.sAgent = '''+@sendAgent+''''
  272. IF @sendBranch IS NOT NULL
  273. SET @table = @table + ' AND trn.sBranch = '''+@sendBranch+''''
  274. IF @email IS NOT NULL
  275. SET @table = @table + ' AND cm.email LIKE ''%' + @email + '%'''
  276. SET @sql = '
  277. SELECT
  278. *
  279. FROM (
  280. ' + @table + '
  281. ) x
  282. WHERE 1 = 1 '
  283. IF @sender IS NOT NULL
  284. SET @sql = @sql + ' AND sender LIKE ''' + @sender + '%'''
  285. IF @receiver IS NOT NULL
  286. SET @sql = @sql + ' AND receiver LIKE ''' + @receiver + '%'''
  287. PRINT @sql
  288. EXEC (@sql)
  289. RETURN
  290. END
  291. IF @flag = 'i'
  292. BEGIN
  293. IF NOT EXISTS(SELECT * FROM REFERRAL_AGENT_WISE (NOLOCK) WHERE REFERRAL_CODE = @collectedBy)
  294. BEGIN
  295. --EXEC proc_errorHandler 1,'Invalid value is selected.', NULL;
  296. --RETURN;
  297. DECLARE @u_agentid VARCHAR(30);
  298. select @u_agentid = agentId FROM applicationUsers where userName=@collectedByName;
  299. IF @u_agentid='394392' --Tokyo Main-Head Office
  300. SET @collectedBy='JME0051' --Head Office Tokyo Branch
  301. ELSE IF @u_agentid='394389' --Chiba Funabashi Branch
  302. SET @collectedBy='JME0021' --Funabashi Branch,Office
  303. ELSE IF @u_agentid='394390' --Fukuoka Branch
  304. SET @collectedBy='JME0061' --Counter fukuoka
  305. ELSE IF @u_agentid='394391' --Nagoya Branch
  306. SET @collectedBy='JME0105' --Nagoya Branch,Office
  307. ELSE IF @u_agentid='394396' --New Office Shin Okubo
  308. SET @collectedBy='JME0151' --New Shin Okubo,Branch Office
  309. UPDATE remitTranTemp SET promotionCode = @collectedBy, collMode = 'Cash Collect' , downloadedBy = @collectedByName WHERE id = @tranId
  310. END
  311. ELSE
  312. BEGIN
  313. UPDATE remitTranTemp SET promotionCode = @collectedBy, collMode = 'Cash Collect' , downloadedBy = '' WHERE id = @tranId
  314. END
  315. EXEC proc_errorHandler 0,'Cash collected data saved successfully.', NULL;
  316. END
  317. IF @flag = 'update-as-bank'
  318. BEGIN
  319. IF NOT EXISTS(SELECT * FROM remitTranTemp (NOLOCK) WHERE id = @tranId)
  320. BEGIN
  321. EXEC proc_errorHandler 1,'Invalid data is selected.', NULL;
  322. RETURN;
  323. END
  324. UPDATE remitTranTemp SET promotionCode = null, collMode = 'Bank Deposit' WHERE id = @tranId
  325. EXEC proc_errorHandler 0,'Bank Deposit data saved successfully.', NULL;
  326. END
  327. IF @flag = 'u'
  328. BEGIN
  329. IF EXISTS(SELECT * FROM TBL_CASH_COLLECTED WHERE TRAN_ID = @tranId)
  330. BEGIN
  331. UPDATE TBL_CASH_COLLECTED SET COLLECTED_AMOUNT = @cAmt
  332. ,COLLECTED_BY = @collectedBy
  333. ,MODIFIED_BY = @user
  334. ,MODIFIED_DATE = GETDATE()
  335. WHERE TRAN_ID = @tranId
  336. EXEC proc_errorHandler 0,'Cash collect updated successfully', NULL;
  337. RETURN;
  338. END
  339. END
  340. IF @flag = 'verify'
  341. BEGIN
  342. DECLARE @cAmtByCustomer MONEY,@cAmtByUser MONEY,@customerId BIGINT, @USERNAME VARCHAR(100)
  343. SELECT @cAmtByCustomer= cAmt,
  344. @collMode = collMode ,
  345. @customerId = tsTmp.customerId,
  346. @USERNAME = CM.USERNAME
  347. from REMITTRANTEMP rtTmp(nolock)
  348. inner join transenderstemp tsTmp (nolock) on tsTmp.tranid = rtTmp.id
  349. INNER JOIN CUSTOMERMASTER CM(NOLOCK) ON CM.CUSTOMERID = tsTmp.CUSTOMERID
  350. WHERE rtTmp.id = @tranId
  351. IF @customerId IS NULL
  352. BEGIN
  353. EXEC proc_errorHandler 1,'No txn found!', NULL;
  354. RETURN;
  355. END
  356. -- 11th march, 2022
  357. IF @collMode = 'Bank Deposit'
  358. BEGIN
  359. --IF EXISTS (SELECT 1 FROM CUSTOMER_DEPOSIT_LOGS (NOLOCK) WHERE CUSTOMERID = @customerId AND APPROVEDBY IS NULL)
  360. --BEGIN
  361. -- EXEC proc_errorHandler 1, 'Customer Deposit Mapping pending for Approval!!', @id
  362. -- RETURN;
  363. --END
  364. SET @cAmtByUser = 0;
  365. SELECT @cAmtByUser = DBO.FNAGetCustomerAvailableBalanceVerify(@customerId)
  366. -- print @cAmtByUser;
  367. -- print @cAmtByCustomer;
  368. --IF @cAmtByUser < @cAmtByCustomer
  369. --BEGIN
  370. -- EXEC proc_errorHandler 1, 'Customer do not have sufficient balance for this transaction!!', @id
  371. -- RETURN;
  372. --END
  373. DECLARE @cAmtByUserAc MONEY=0;
  374. DECLARE @kycStatus INT
  375. SELECT @kycStatus = kycStatus
  376. FROM TBL_CUSTOMER_KYC(NOLOCK)
  377. WHERE CUSTOMERID = @customerId
  378. AND ISDELETED = 0
  379. --AND kycStatus=11044
  380. ORDER BY KYC_DATE
  381. IF ISNULL(@kycStatus, 0) <> 11044
  382. BEGIN
  383. IF @kycStatus IS NOT NULL
  384. SELECT @MSG = 'KYC for selected customer is not completed, it is in status:' + detailTitle
  385. FROM staticDataValue(NOLOCK)
  386. WHERE valueId = @kycStatus
  387. ELSE
  388. SELECT @MSG = 'Please complete KYC status first'
  389. EXEC proc_errorHandler 2
  390. ,@MSG
  391. ,NULL;
  392. RETURN
  393. END
  394. -- SELECT @cAmtByUserAc = DBO.FNAGetCustomerACBalById(@customerId);
  395. ---- print @@cAmtByUserAc;
  396. ---- print @cAmtByCustomer;
  397. -- IF @cAmtByUserAc < @cAmtByCustomer
  398. -- BEGIN
  399. -- EXEC proc_errorHandler 1, 'Customer do not have sufficient ac balance for this transaction!!', @id
  400. -- RETURN;
  401. -- END
  402. UPDATE remitTranTemp SET promotionCode = null, downloadedBy = '' WHERE id = @tranId
  403. --IF ISNULL(@cAmtByUser, -1) < @cAmtByCustomer
  404. --BEGIN
  405. -- EXEC proc_errorHandler 1, 'Customer do not have sufficient balance for this transaction!!', @id
  406. -- RETURN;
  407. --END
  408. END
  409. INSERT INTO pushNotificationHistroy(customerId,body,title,createDate,imageURL,sentId,Type,isReservation,isRead,isSend,category)
  410. select @customerid,'This is send Txn body Msg','SendTxn',getdate(),'',@tranId,1,0,0,0,'INFO'
  411. UPDATE REMITTRANTEMP SET verifiedby = @user,verifiedDate = getDate() where id = @tranId
  412. EXEC proc_errorHandler 0,'Transaction verified successfully', NULL;
  413. END
  414. IF @flag = 's-unverified-card-txn'
  415. BEGIN
  416. SET @table = '
  417. SELECT DISTINCT
  418. trn.id
  419. ,controlNo = ''<a href="/Remit/Transaction/Reports/SearchTransaction.aspx?commentFlag=N&showBankDetail=N&tranId=''+CAST(trn.id AS VARCHAR)+''">''+DBO.FNADECRYPTSTRING(trn.CONTROLNO)+''</a>''
  420. ,tranType = CASE
  421. WHEN (trn.tranType = ''M'' AND trn.isOnlineTxn = ''M'') THEN ''Mobile''
  422. WHEN (trn.tranType = ''M'' AND trn.isOnlineTxn = ''O'') THEN ''Web''
  423. WHEN trn.tranType = ''I'' THEN ''CR Panel''
  424. ELSE trn.tranType END
  425. ,branchName = am.agentName
  426. ,country = trn.pCountry
  427. ,senderId = sen.customerId
  428. ,sender = sen.firstName + ISNULL( '' '' + sen.middleName, '''') + ISNULL( '' '' + sen.lastName1, '''') + ISNULL( '' '' + sen.lastName2, '''')
  429. ,receiverId = rec.customerId
  430. ,receiver = rec.firstName + ISNULL( '' '' + rec.middleName, '''') + ISNULL( '' '' + rec.lastName1, '''') + ISNULL( '' '' + rec.lastName2, '''')
  431. ,cm.email as email
  432. ,amt = CAST(trn.cAmt AS DECIMAL(18, 2))
  433. --,paymentMethod = case when trn.collMode = ''Bank Deposit'' then ''JP Post'' ELSE trn.collMode END
  434. ,voucherNo = trn.voucherNo
  435. ,txnDate = CAST(trn.createdDate AS DATE)
  436. ,txncreatedBy = trn.createdBy
  437. ,trn.paymentMethod collMode
  438. ,CM.membershipId
  439. ,CM.mobile sMobile
  440. ,CM.customerId
  441. ,CAST(trn.pAmt AS DECIMAL(10,2)) AS pAmt
  442. ,CAST(trn.cAmt AS DECIMAL(10,2)) AS cAmt
  443. ,cAmtByUser = ISNULL(CAST(CASE WHEN TRN.COLLMODE = ''Cash Collect'' THEN trn.cAmt
  444. ELSE dbo.FNAGetCustomerAvailableBalance_New(cm.customerId) END AS VArchar),''N/A'')
  445. --ELSE X.depositAmount END AS VArchar),''N/A'')
  446. --,mappedDetail = ISNULL(CAST(CASE WHEN TRN.COLLMODE = ''Cash Collect'' THEN TCC.COLLECTED_BY
  447. -- ELSE X.particulars END AS NVARCHAR) ,''N/A'')
  448. ,REFERRAL_DETAIL = RA.REFERRAL_NAME + ''|'' + RA.REFERRAL_CODE
  449. ,ISNULL(depositType,'''') depositType
  450. ,controlNum = DBO.FNADECRYPTSTRING(trn.CONTROLNO)
  451. ,trn.schemeId
  452. ,trn.rewardType
  453. FROM remitTranTemp trn WITH(NOLOCK)
  454. LEFT JOIN apiRoutingTable art WITH(NOLOCK) ON trn.pAgent = art.agentId
  455. INNER JOIN agentMaster am WITH(NOLOCK) ON trn.sBranch = am.agentId
  456. INNER JOIN tranSendersTemp sen WITH(NOLOCK) ON trn.id = sen.tranId
  457. INNER JOIN tranReceiversTemp rec WITH(NOLOCK) ON trn.id = rec.tranId
  458. INNER JOIN CUSTOMERMASTER CM WITH(NOLOCK) ON CM.CUSTOMERID = SEN.CUSTOMERID
  459. LEFT JOIN REFERRAL_AGENT_WISE RA(NOLOCK) ON RA.REFERRAL_CODE = TRN.PROMOTIONCODE
  460. --LEFT JOIN
  461. --(
  462. -- SELECT CDL.CUSTOMERID,PARTICULARS,depositAmount FROM remitTranTemp trn (NOLOCK)
  463. -- INNER JOIN tranSendersTemp sen WITH(NOLOCK) ON trn.id = sen.tranId
  464. -- LEFT JOIN CUSTOMER_DEPOSIT_LOGS CDL WITH(NOLOCK) ON CDL.CUSTOMERID = SEN.CUSTOMERID
  465. -- WHERE CDL.APPROVEDBY IS NULL
  466. --)X ON X.CUSTOMERID = SEN.CUSTOMERiD
  467. WHERE trn.tranStatus IN (''Hold'') AND
  468. trn.payStatus = ''Unpaid'' AND
  469. trn.depositType = ''DEBIT_CARD''AND
  470. trn.approvedBy IS NULL
  471. --AND trn.tranType=''M''
  472. and trn.verifiedBy IS NULL
  473. --AND trn.pcountry in (''vietnam'',''nepal'')
  474. '
  475. IF @id IS NOT NULL
  476. SET @table = @table + ' AND trn.id = ''' + @id + ''''
  477. IF @branch IS NOT NULL
  478. SET @table = @table + ' AND am.agentId = ''' + @branch + ''''
  479. IF @country IS NOT NULL
  480. SET @table = @table + ' AND trn.pCountry LIKE ''' + @country + '%'''
  481. --IF @sendCountry IS NOT NULL
  482. -- SET @table = @table + ' AND trn.sCountry LIKE ''' + @sendCountry + '%'''
  483. IF @amt IS NOT NULL
  484. SET @table = @table + ' AND trn.pAmt = ' + CAST(@amt AS VARCHAR(20))+ ''
  485. IF @voucherNo IS NOT NULL
  486. SET @table = @table + ' AND trn.voucherNo = ''' + @voucherNo + ''''
  487. IF @txncreatedBy IS NOT NULL
  488. SET @table = @table + ' AND trn.createdBy = '''+@txncreatedBy+''''
  489. IF @txnDate IS NOT NULL
  490. SET @table = @table + ' AND CAST(trn.createdDate AS DATE)='''+@txnDate +''''
  491. IF @ControlNo IS NOT NULL
  492. SET @table = @table + ' AND trn.controlNo = dbo.fnaEncryptString('''+@ControlNo+''')'
  493. IF @sendAgent IS NOT NULL
  494. SET @table = @table + ' AND trn.sAgent = '''+@sendAgent+''''
  495. IF @sendBranch IS NOT NULL
  496. SET @table = @table + ' AND trn.sBranch = '''+@sendBranch+''''
  497. IF @email IS NOT NULL
  498. SET @table = @table + ' AND cm.email LIKE ''%' + @email + '%'''
  499. SET @sql = '
  500. SELECT
  501. *
  502. FROM (
  503. ' + @table + '
  504. ) x
  505. WHERE 1 = 1 '
  506. IF @sender IS NOT NULL
  507. SET @sql = @sql + ' AND sender LIKE ''' + @sender + '%'''
  508. IF @receiver IS NOT NULL
  509. SET @sql = @sql + ' AND receiver LIKE ''' + @receiver + '%'''
  510. PRINT @sql
  511. EXEC (@sql)
  512. RETURN
  513. END
  514. END TRY
  515. BEGIN CATCH
  516. IF @@TRANCOUNT > 0
  517. ROLLBACK TRANSACTION
  518. SELECT 1 error_code, ERROR_MESSAGE() msg, NULL id
  519. END CATCH