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.

726 lines
56 KiB

1 month ago
  1. USE [FastMoneyPro_Remit]
  2. GO
  3. /****** Object: StoredProcedure [dbo].[proc_ApproveHoldedTxnMobile] Script Date: 7/22/2024 11:13:59 AM ******/
  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. --------------------------------------------------------------------
  57. BEGIN TRY
  58. DECLARE
  59. @table VARCHAR(MAX)
  60. ,@sql VARCHAR(MAX)
  61. ,@sqlSelfTxn VARCHAR(MAX)
  62. ,@sRouteId VARCHAR(5)
  63. ,@collMode VARCHAR(100)
  64. SET NOCOUNT ON;
  65. SET XACT_ABORT ON;
  66. DECLARE
  67. @pinEncrypted VARCHAR(50) = dbo.FNAEncryptString(@pin)
  68. ,@userId INT
  69. ,@createdBy VARCHAR(50)
  70. ,@tranStatus VARCHAR(50)
  71. ,@message VARCHAR(200)
  72. ,@sBranch BIGINT
  73. ,@invicePrintMethod VARCHAR(50)
  74. ,@parentId BIGINT
  75. ,@tablesql AS VARCHAR(MAX)
  76. ,@branchList VARCHAR(MAX)
  77. ,@denyAmt MONEY
  78. ,@C2CAgentID VARCHAR(30) = '1045'
  79. ,@REAgentID VARCHAR(30) = '1100'
  80. IF @pin IS NULL
  81. BEGIN
  82. SELECT @pin = dbo.FNADecryptString(controlNo), @pinEncrypted = controlNo FROM remitTranTemp WITH(NOLOCK) WHERE id = @id
  83. END
  84. ELSE
  85. BEGIN
  86. SET @pinEncrypted = dbo.FNAEncryptString(@pin)
  87. END
  88. DECLARE @PinList TABLE(id VARCHAR(50), pin VARCHAR(50),hasProcess CHAR(1),isOFAC CHAR(1),errorMsg VARCHAR(MAX),tranId INT,createdBy VARCHAR(50))
  89. DECLARE @TempcompTable TABLE(errorCode INT,msg VARCHAR(MAX),id VARCHAR(50))
  90. DECLARE @isSelfApprove VARCHAR(1)
  91. DECLARE @cdTable VARCHAR(MAX) = ''
  92. SET @cdTable = '
  93. LEFT JOIN (
  94. SELECT
  95. DISTINCT
  96. tranId
  97. ,cb.bankName
  98. ,cd.countryBankId
  99. FROM collectionDetails cd WITH(NOLOCK)
  100. LEFT JOIN countryBanks cb WITH(NOLOCK) ON cd.countryBankId = cb.countryBankId
  101. INNER JOIN remitTranTemp trn WITH(NOLOCK) ON cd.tranId = trn.id
  102. AND (trn.tranStatus = ''Hold'' OR trn.tranStatus = ''Compliance Hold'' OR trn.tranStatus = ''OFAC Hold'' )
  103. AND trn.payStatus = ''Unpaid''
  104. AND trn.approvedBy IS NULL
  105. ) cd ON cd.tranId = trn.id '
  106. IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[#collModeList]') AND type = 'D')
  107. BEGIN
  108. DROP TABLE #collModeList
  109. END
  110. CREATE TABLE #collModeList(tranId INT, hasProcess CHAR(1), proMode varchar(50))
  111. DECLARE @tranId1 INT
  112. IF @flag = 's-unverified-txn'
  113. BEGIN
  114. SET @table = '
  115. SELECT DISTINCT
  116. trn.id
  117. ,controlNo = ''<a href="/Remit/Transaction/Reports/SearchTransaction.aspx?commentFlag=N&showBankDetail=N&tranId=''+CAST(trn.id AS VARCHAR)+''">''+DBO.FNADECRYPTSTRING(trn.CONTROLNO)+''</a>''
  118. ,tranType = CASE
  119. WHEN (trn.tranType = ''M'' AND trn.isOnlineTxn = ''M'') THEN ''Mobile''
  120. WHEN (trn.tranType = ''M'' AND trn.isOnlineTxn = ''O'') THEN ''Web''
  121. WHEN trn.tranType = ''I'' THEN ''CR Panel''
  122. ELSE trn.tranType END
  123. ,branchName = am.agentName
  124. ,country = trn.pCountry
  125. ,senderId = sen.customerId
  126. ,sender = sen.firstName + ISNULL( '' '' + sen.middleName, '''') + ISNULL( '' '' + sen.lastName1, '''') + ISNULL( '' '' + sen.lastName2, '''')
  127. ,receiverId = rec.customerId
  128. ,receiver = rec.firstName + ISNULL( '' '' + rec.middleName, '''') + ISNULL( '' '' + rec.lastName1, '''') + ISNULL( '' '' + rec.lastName2, '''')
  129. ,cm.email as email
  130. ,amt = CAST(trn.cAmt AS DECIMAL(18, 2))
  131. --,paymentMethod = case when trn.collMode = ''Bank Deposit'' then ''JP Post'' ELSE trn.collMode END
  132. ,voucherNo = trn.voucherNo
  133. ,txnDate = CAST(trn.createdDate AS DATE)
  134. ,txncreatedBy = trn.createdBy
  135. ,trn.paymentMethod collMode
  136. ,CM.membershipId
  137. ,CM.mobile sMobile
  138. ,CM.customerId
  139. ,CAST(trn.pAmt AS DECIMAL(10,2)) AS pAmt
  140. ,CAST(trn.cAmt AS DECIMAL(10,2)) AS cAmt
  141. ,cAmtByUser = ISNULL(CAST(CASE WHEN TRN.COLLMODE = ''Cash Collect'' THEN trn.cAmt
  142. ELSE dbo.FNAGetCustomerAvailableBalance_New(cm.customerId) END AS VArchar),''N/A'')
  143. --ELSE X.depositAmount END AS VArchar),''N/A'')
  144. --,mappedDetail = ISNULL(CAST(CASE WHEN TRN.COLLMODE = ''Cash Collect'' THEN TCC.COLLECTED_BY
  145. -- ELSE X.particulars END AS NVARCHAR) ,''N/A'')
  146. ,REFERRAL_DETAIL = RA.REFERRAL_NAME + ''|'' + RA.REFERRAL_CODE
  147. ,ISNULL(depositType,'''') depositType
  148. ,controlNum = DBO.FNADECRYPTSTRING(trn.CONTROLNO)
  149. ,trn.schemeId
  150. ,trn.rewardType
  151. FROM remitTranTemp trn WITH(NOLOCK)
  152. LEFT JOIN apiRoutingTable art WITH(NOLOCK) ON trn.pAgent = art.agentId
  153. INNER JOIN agentMaster am WITH(NOLOCK) ON trn.sBranch = am.agentId
  154. INNER JOIN tranSendersTemp sen WITH(NOLOCK) ON trn.id = sen.tranId
  155. INNER JOIN tranReceiversTemp rec WITH(NOLOCK) ON trn.id = rec.tranId
  156. INNER JOIN CUSTOMERMASTER CM WITH(NOLOCK) ON CM.CUSTOMERID = SEN.CUSTOMERID
  157. LEFT JOIN REFERRAL_AGENT_WISE RA(NOLOCK) ON RA.REFERRAL_CODE = TRN.PROMOTIONCODE
  158. --LEFT JOIN
  159. --(
  160. -- SELECT CDL.CUSTOMERID,PARTICULARS,depositAmount FROM remitTranTemp trn (NOLOCK)
  161. -- INNER JOIN tranSendersTemp sen WITH(NOLOCK) ON trn.id = sen.tranId
  162. -- LEFT JOIN CUSTOMER_DEPOSIT_LOGS CDL WITH(NOLOCK) ON CDL.CUSTOMERID = SEN.CUSTOMERID
  163. -- WHERE CDL.APPROVEDBY IS NULL
  164. --)X ON X.CUSTOMERID = SEN.CUSTOMERiD
  165. WHERE trn.tranStatus IN (''Hold'') AND
  166. trn.payStatus = ''Unpaid'' AND
  167. trn.approvedBy IS NULL AND
  168. trn.depositType IN (''ONLINE'',''EBANKING'')
  169. --AND trn.tranType=''M''
  170. and trn.verifiedBy IS NULL
  171. --AND trn.pcountry in (''vietnam'',''nepal'')
  172. '
  173. IF @id IS NOT NULL
  174. SET @table = @table + ' AND trn.id = ''' + @id + ''''
  175. IF @branch IS NOT NULL
  176. SET @table = @table + ' AND am.agentId = ''' + @branch + ''''
  177. IF @country IS NOT NULL
  178. SET @table = @table + ' AND trn.pCountry LIKE ''' + @country + '%'''
  179. --IF @sendCountry IS NOT NULL
  180. -- SET @table = @table + ' AND trn.sCountry LIKE ''' + @sendCountry + '%'''
  181. IF @amt IS NOT NULL
  182. SET @table = @table + ' AND trn.pAmt = ' + CAST(@amt AS VARCHAR(20))+ ''
  183. IF @voucherNo IS NOT NULL
  184. SET @table = @table + ' AND trn.voucherNo = ''' + @voucherNo + ''''
  185. IF @txncreatedBy IS NOT NULL
  186. SET @table = @table + ' AND trn.createdBy = '''+@txncreatedBy+''''
  187. IF @txnDate IS NOT NULL
  188. SET @table = @table + ' AND CAST(trn.createdDate AS DATE)='''+@txnDate +''''
  189. IF @ControlNo IS NOT NULL
  190. SET @table = @table + ' AND trn.controlNo = dbo.fnaEncryptString('''+@ControlNo+''')'
  191. IF @sendAgent IS NOT NULL
  192. SET @table = @table + ' AND trn.sAgent = '''+@sendAgent+''''
  193. IF @sendBranch IS NOT NULL
  194. SET @table = @table + ' AND trn.sBranch = '''+@sendBranch+''''
  195. IF @email IS NOT NULL
  196. SET @table = @table + ' AND cm.email LIKE ''%' + @email + '%'''
  197. SET @sql = '
  198. SELECT
  199. *
  200. FROM (
  201. ' + @table + '
  202. ) x
  203. WHERE 1 = 1 '
  204. IF @sender IS NOT NULL
  205. SET @sql = @sql + ' AND sender LIKE ''' + @sender + '%'''
  206. IF @receiver IS NOT NULL
  207. SET @sql = @sql + ' AND receiver LIKE ''' + @receiver + '%'''
  208. PRINT @sql
  209. EXEC (@sql)
  210. RETURN
  211. END
  212. IF @flag = 's-verified-txn'
  213. BEGIN
  214. SET @table = '
  215. SELECT DISTINCT
  216. trn.id
  217. ,controlNo = ''<a href="/Remit/Transaction/Reports/SearchTransaction.aspx?commentFlag=N&showBankDetail=N&tranId=''+CAST(trn.id AS VARCHAR)+''">''+DBO.FNADECRYPTSTRING(trn.CONTROLNO)+''</a>''
  218. ,branchName = am.agentName
  219. ,tranType = CASE
  220. WHEN (trn.tranType = ''M'' AND trn.isOnlineTxn = ''M'') THEN ''Mobile''
  221. WHEN (trn.tranType = ''M'' AND trn.isOnlineTxn = ''O'') THEN ''Web Online''
  222. WHEN trn.tranType = ''I'' THEN ''CR Panel''
  223. ELSE trn.tranType END
  224. ,country = trn.pCountry
  225. ,senderId = sen.customerId
  226. ,sender = sen.firstName + ISNULL( '' '' + sen.middleName, '''') + ISNULL( '' '' + sen.lastName1, '''') + ISNULL( '' '' + sen.lastName2, '''')
  227. ,receiverId = rec.customerId
  228. ,receiver = rec.firstName + ISNULL( '' '' + rec.middleName, '''') + ISNULL( '' '' + rec.lastName1, '''') + ISNULL( '' '' + rec.lastName2, '''')
  229. ,amt = CAST(trn.cAmt AS DECIMAL(18, 2))
  230. ,paymentMethod = UPPER(trn.paymentMethod)
  231. ,depositType = UPPER(trn.depositType)
  232. ,txnDate = CAST(trn.createdDate AS DATE)
  233. ,txncreatedBy = trn.createdBy
  234. ,trn.collMode collMode
  235. ,cm.email
  236. ,CAST(trn.pAmt AS DECIMAL(10,2)) AS pAmt
  237. ,schemeId = trn.schemeId
  238. ,rewardType = trn.rewardType
  239. FROM remitTranTemp trn WITH(NOLOCK) ' + @cdTable + '
  240. LEFT JOIN apiRoutingTable art WITH(NOLOCK) ON trn.pAgent = art.agentId
  241. INNER JOIN agentMaster am WITH(NOLOCK) ON trn.sBranch = am.agentId
  242. INNER JOIN tranSendersTemp sen WITH(NOLOCK) ON trn.id = sen.tranId
  243. INNER JOIN tranReceiversTemp rec WITH(NOLOCK) ON trn.id = rec.tranId
  244. INNER JOIN CUSTOMERMASTER CM WITH(NOLOCK) ON CM.CUSTOMERID = SEN.CUSTOMERID
  245. WHERE trn.tranStatus IN (''Hold'') AND
  246. trn.payStatus = ''Unpaid'' AND
  247. trn.approvedBy IS NULL
  248. AND trn.tranType=''M''
  249. -- and trn.verifiedBy IS NOT NULL
  250. and trn.transactionreference 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.transactionreference IS NULL AND
  471. trn.approvedBy IS NULL
  472. --AND trn.tranType=''M''
  473. and trn.verifiedBy IS NULL
  474. --AND trn.pcountry in (''vietnam'',''nepal'')
  475. '
  476. IF @id IS NOT NULL
  477. SET @table = @table + ' AND trn.id = ''' + @id + ''''
  478. IF @branch IS NOT NULL
  479. SET @table = @table + ' AND am.agentId = ''' + @branch + ''''
  480. IF @country IS NOT NULL
  481. SET @table = @table + ' AND trn.pCountry LIKE ''' + @country + '%'''
  482. --IF @sendCountry IS NOT NULL
  483. -- SET @table = @table + ' AND trn.sCountry LIKE ''' + @sendCountry + '%'''
  484. IF @amt IS NOT NULL
  485. SET @table = @table + ' AND trn.pAmt = ' + CAST(@amt AS VARCHAR(20))+ ''
  486. IF @voucherNo IS NOT NULL
  487. SET @table = @table + ' AND trn.voucherNo = ''' + @voucherNo + ''''
  488. IF @txncreatedBy IS NOT NULL
  489. SET @table = @table + ' AND trn.createdBy = '''+@txncreatedBy+''''
  490. IF @txnDate IS NOT NULL
  491. SET @table = @table + ' AND CAST(trn.createdDate AS DATE)='''+@txnDate +''''
  492. IF @ControlNo IS NOT NULL
  493. SET @table = @table + ' AND trn.controlNo = dbo.fnaEncryptString('''+@ControlNo+''')'
  494. IF @sendAgent IS NOT NULL
  495. SET @table = @table + ' AND trn.sAgent = '''+@sendAgent+''''
  496. IF @sendBranch IS NOT NULL
  497. SET @table = @table + ' AND trn.sBranch = '''+@sendBranch+''''
  498. IF @email IS NOT NULL
  499. SET @table = @table + ' AND cm.email LIKE ''%' + @email + '%'''
  500. SET @sql = '
  501. SELECT
  502. *
  503. FROM (
  504. ' + @table + '
  505. ) x
  506. WHERE 1 = 1 '
  507. IF @sender IS NOT NULL
  508. SET @sql = @sql + ' AND sender LIKE ''' + @sender + '%'''
  509. IF @receiver IS NOT NULL
  510. SET @sql = @sql + ' AND receiver LIKE ''' + @receiver + '%'''
  511. PRINT @sql
  512. EXEC (@sql)
  513. RETURN
  514. END
  515. IF @flag = 's-unverified-inward-txn'
  516. BEGIN
  517. SET @table = '
  518. SELECT DISTINCT
  519. trn.id
  520. ,controlNo = ''<a href="/Remit/Transaction/Reports/SearchTransaction.aspx?commentFlag=N&showBankDetail=N&tranId=''+CAST(trn.id AS VARCHAR)+''">''+DBO.FNADECRYPTSTRING(trn.CONTROLNO)+''</a>''
  521. ,tranType = CASE
  522. WHEN (trn.tranType = ''M'' AND trn.isOnlineTxn = ''M'') THEN ''Mobile''
  523. WHEN (trn.tranType = ''M'' AND trn.isOnlineTxn = ''O'') THEN ''Web''
  524. WHEN trn.tranType = ''I'' THEN ''CR Panel''
  525. ELSE trn.tranType END
  526. ,branchName = am.agentName
  527. ,country = trn.pCountry
  528. ,senderId = sen.customerId
  529. ,sender = sen.firstName + ISNULL( '' '' + sen.middleName, '''') + ISNULL( '' '' + sen.lastName1, '''') + ISNULL( '' '' + sen.lastName2, '''')
  530. ,receiverId = rec.customerId
  531. ,receiver = rec.firstName + ISNULL( '' '' + rec.middleName, '''') + ISNULL( '' '' + rec.lastName1, '''') + ISNULL( '' '' + rec.lastName2, '''')
  532. ,sen.email as email
  533. ,amt = CAST(trn.cAmt AS DECIMAL(18, 2))
  534. --,paymentMethod = case when trn.collMode = ''Bank Deposit'' then ''JP Post'' ELSE trn.collMode END
  535. ,voucherNo = trn.voucherNo
  536. ,txnDate = CAST(trn.createdDate AS DATE)
  537. ,txncreatedBy = trn.createdBy
  538. ,trn.paymentMethod collMode
  539. --,CM.membershipId
  540. ,sen.mobile sMobile
  541. --,CM.customerId
  542. ,CAST(trn.pAmt AS DECIMAL(10,2)) AS pAmt
  543. ,CAST(trn.cAmt AS DECIMAL(10,2)) AS cAmt
  544. --,cAmtByUser = ISNULL(CAST(CASE WHEN TRN.COLLMODE = ''Cash Collect'' THEN trn.cAmt
  545. -- ELSE dbo.FNAGetCustomerAvailableBalance_New(cm.customerId) END AS VArchar),''N/A'')
  546. --ELSE X.depositAmount END AS VArchar),''N/A'')
  547. --,mappedDetail = ISNULL(CAST(CASE WHEN TRN.COLLMODE = ''Cash Collect'' THEN TCC.COLLECTED_BY
  548. -- ELSE X.particulars END AS NVARCHAR) ,''N/A'')
  549. ,REFERRAL_DETAIL = RA.REFERRAL_NAME + ''|'' + RA.REFERRAL_CODE
  550. ,ISNULL(depositType,'''') depositType
  551. ,controlNum = DBO.FNADECRYPTSTRING(trn.CONTROLNO)
  552. ,trn.schemeId
  553. ,trn.rewardType
  554. FROM remitTranTemp trn WITH(NOLOCK)
  555. LEFT JOIN apiRoutingTable art WITH(NOLOCK) ON trn.pAgent = art.agentId
  556. INNER JOIN agentMaster am WITH(NOLOCK) ON trn.sBranch = am.agentId
  557. INNER JOIN tranSendersTemp sen WITH(NOLOCK) ON trn.id = sen.tranId
  558. INNER JOIN tranReceiversTemp rec WITH(NOLOCK) ON trn.id = rec.tranId
  559. --INNER JOIN CUSTOMERMASTER CM WITH(NOLOCK) ON CM.CUSTOMERID = SEN.CUSTOMERID
  560. LEFT JOIN REFERRAL_AGENT_WISE RA(NOLOCK) ON RA.REFERRAL_CODE = TRN.PROMOTIONCODE
  561. WHERE trn.tranStatus IN (''Hold'') AND
  562. trn.payStatus = ''Unpaid'' AND
  563. trn.approvedBy IS NULL AND
  564. -- trn.depositType IN (''ONLINE'',''EBANKING'') AND
  565. trn.sRouteId = ''IN''
  566. and trn.verifiedBy IS NULL
  567. '
  568. IF @id IS NOT NULL
  569. SET @table = @table + ' AND trn.id = ''' + @id + ''''
  570. IF @branch IS NOT NULL
  571. SET @table = @table + ' AND am.agentId = ''' + @branch + ''''
  572. IF @country IS NOT NULL
  573. SET @table = @table + ' AND trn.pCountry LIKE ''' + @country + '%'''
  574. --IF @sendCountry IS NOT NULL
  575. -- SET @table = @table + ' AND trn.sCountry LIKE ''' + @sendCountry + '%'''
  576. IF @amt IS NOT NULL
  577. SET @table = @table + ' AND trn.pAmt = ' + CAST(@amt AS VARCHAR(20))+ ''
  578. IF @voucherNo IS NOT NULL
  579. SET @table = @table + ' AND trn.voucherNo = ''' + @voucherNo + ''''
  580. IF @txncreatedBy IS NOT NULL
  581. SET @table = @table + ' AND trn.createdBy = '''+@txncreatedBy+''''
  582. IF @txnDate IS NOT NULL
  583. SET @table = @table + ' AND CAST(trn.createdDate AS DATE)='''+@txnDate +''''
  584. IF @ControlNo IS NOT NULL
  585. SET @table = @table + ' AND trn.controlNo = dbo.fnaEncryptString('''+@ControlNo+''')'
  586. IF @sendAgent IS NOT NULL
  587. SET @table = @table + ' AND trn.sAgent = '''+@sendAgent+''''
  588. IF @sendBranch IS NOT NULL
  589. SET @table = @table + ' AND trn.sBranch = '''+@sendBranch+''''
  590. IF @email IS NOT NULL
  591. SET @table = @table + ' AND sen.email LIKE ''%' + @email + '%'''
  592. SET @sql = '
  593. SELECT
  594. *
  595. FROM (
  596. ' + @table + '
  597. ) x
  598. WHERE 1 = 1 '
  599. IF @sender IS NOT NULL
  600. SET @sql = @sql + ' AND sender LIKE ''' + @sender + '%'''
  601. IF @receiver IS NOT NULL
  602. SET @sql = @sql + ' AND receiver LIKE ''' + @receiver + '%'''
  603. PRINT @sql
  604. EXEC (@sql)
  605. RETURN
  606. END
  607. IF @flag = 'verify-inward-txn'
  608. BEGIN
  609. --DECLARE @cAmtByCustomer MONEY,@cAmtByUser MONEY,@customerId BIGINT, @USERNAME VARCHAR(100)
  610. SELECT @cAmtByCustomer= cAmt,
  611. @collMode = collMode ,
  612. @customerId = tsTmp.customerId,
  613. @USERNAME = tsTmp.email
  614. from REMITTRANTEMP rtTmp(nolock)
  615. inner join transenderstemp tsTmp (nolock) on tsTmp.tranid = rtTmp.id
  616. WHERE rtTmp.id = @tranId
  617. IF @customerId IS NULL
  618. BEGIN
  619. EXEC proc_errorHandler 1,'No txn found!', NULL;
  620. RETURN;
  621. END
  622. INSERT INTO pushNotificationHistroy(customerId,body,title,createDate,imageURL,sentId,Type,isReservation,isRead,isSend,category)
  623. select @customerid,'This is send Txn body Msg','SendTxn',getdate(),'',@tranId,1,0,0,0,'INFO'
  624. UPDATE REMITTRANTEMP SET verifiedby = @user,verifiedDate = getDate() where id = @tranId
  625. EXEC proc_errorHandler 0,'Transaction verified successfully', NULL;
  626. END
  627. END TRY
  628. BEGIN CATCH
  629. IF @@TRANCOUNT > 0
  630. ROLLBACK TRANSACTION
  631. SELECT 1 error_code, ERROR_MESSAGE() msg, NULL id
  632. END CATCH