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.

833 lines
31 KiB

1 year ago
  1. USE FastMoneyPro_Remit
  2. GO
  3. ALTER PROC [dbo].[proc_ApproveHoldedTXN] (
  4. @flag VARCHAR(50)
  5. ,@user VARCHAR(130)
  6. ,@userType VARCHAR(10) = NULL
  7. ,@branch VARCHAR(50) = NULL
  8. ,@id VARCHAR(40) = NULL
  9. ,@country VARCHAR(50) = NULL
  10. ,@sender VARCHAR(50) = NULL
  11. ,@receiver VARCHAR(50) = NULL
  12. ,@amt MONEY = NULL
  13. ,@bank VARCHAR(50) = NULL
  14. ,@voucherNo VARCHAR(50) = NULL
  15. ,@branchId INT = NULL
  16. ,@pin VARCHAR(50) = NULL
  17. ,@errorCode VARCHAR(10) = NULL
  18. ,@msg VARCHAR(500) = NULL
  19. ,@idList XML = NULL
  20. ,@txnDate VARCHAR(20) = NULL
  21. ,@txncreatedBy VARCHAR(50) = NULL
  22. ,@xml VARCHAR(MAX) = NULL
  23. ,@remarks VARCHAR(MAX) = NULL
  24. ,@settlingAgentId INT = NULL
  25. ,@ControlNo VARCHAR(50) = NULL
  26. ,@txnType VARCHAR(1) = NULL
  27. ,@sendCountry VARCHAR(50) = NULL
  28. ,@sendAgent VARCHAR(50) = NULL
  29. ,@sendBranch VARCHAR(50) = NULL
  30. )
  31. AS
  32. BEGIN TRY
  33. DECLARE
  34. @table VARCHAR(MAX)
  35. ,@sql VARCHAR(MAX)
  36. ,@sqlSelfTxn VARCHAR(MAX)
  37. ,@sRouteId VARCHAR(5)
  38. SET NOCOUNT ON;
  39. SET XACT_ABORT ON;
  40. DECLARE
  41. @pinEncrypted VARCHAR(50) = dbo.FNAEncryptString(@pin)
  42. ,@cAmt MONEY
  43. ,@userId INT
  44. ,@createdBy VARCHAR(50)
  45. ,@tranStatus VARCHAR(50)
  46. ,@message VARCHAR(200)
  47. ,@sBranch BIGINT
  48. ,@invicePrintMethod VARCHAR(50)
  49. ,@parentId BIGINT
  50. ,@tablesql AS VARCHAR(MAX)
  51. ,@branchList VARCHAR(MAX)
  52. ,@denyAmt MONEY
  53. IF @pin IS NULL
  54. BEGIN
  55. SELECT @pin = dbo.FNADecryptString(controlNo), @pinEncrypted = controlNo FROM remitTranTemp WITH(NOLOCK) WHERE id = @id
  56. END
  57. ELSE
  58. BEGIN
  59. SET @pinEncrypted = dbo.FNAEncryptString(@pin)
  60. END
  61. DECLARE @PinList TABLE(id VARCHAR(50), pin VARCHAR(50),hasProcess CHAR(1),isOFAC CHAR(1),errorMsg VARCHAR(MAX),tranId INT,createdBy VARCHAR(50))
  62. DECLARE @TempcompTable TABLE(errorCode INT,msg VARCHAR(MAX),id VARCHAR(50))
  63. DECLARE @isSelfApprove VARCHAR(1)
  64. IF @flag = 'provider'
  65. BEGIN
  66. DECLARE @pAgent INT
  67. SELECT
  68. @pAgent = pAgent
  69. FROM remitTranTemp WITH(NOLOCK)
  70. WHERE id = @id
  71. IF @pAgent IS NULL
  72. BEGIN
  73. SELECT
  74. @pAgent = pAgent
  75. FROM vwremitTran WITH(NOLOCK)
  76. WHERE id = @id
  77. END
  78. SELECT @pAgent pAgent
  79. RETURN
  80. END
  81. IF @flag = 'reject'
  82. BEGIN
  83. SELECT @tranStatus = transtatus,
  84. @denyAmt = ISNULL(cAmt,0) - ISNULL(sAgentComm,0) - ISNULL(agentFxGain,0),
  85. @sRouteId = sRouteId,
  86. @pinEncrypted = controlNo,
  87. @ControlNo = dbo.fnaDecryptstring(controlNo),
  88. @txncreatedBy = createdBy
  89. FROM remitTranTemp WITH(NOLOCK) WHERE id=@id
  90. IF LEN(@pinEncrypted)<7
  91. BEGIN
  92. select TOP 1 @ControlNo = controlNo from Application_Log.dbo.vwtpapilogs(nolock) where requestedby=@txncreatedBy AND ERRORCODE='999' order by rowid desc
  93. END
  94. IF LEN(@ControlNo) < 7
  95. BEGIN
  96. EXEC proc_errorHandler 1, 'Sorry,Cannot Reject Transaction', @id
  97. RETURN
  98. END
  99. BEGIN TRANSACTION
  100. INSERT INTO tranCancelrequest(tranId,controlNo,cancelReason,cancelStatus,
  101. createdBy,createdDate,tranStatus,approvedBy,approvedDate,scRefund,isScRefund)
  102. SELECT id,controlNo,@remarks,'Approved',@user,GETDATE(),tranStatus,@user,GETDATE(),
  103. cAmt,'Y' FROM remitTranTemp WITH(NOLOCK) WHERE id=@id
  104. UPDATE remitTranTemp SET
  105. tranStatus = 'Cancel'
  106. ,cancelApprovedBy = @user
  107. ,cancelApprovedDate = GETDATE()
  108. ,cancelApprovedDateLocal = dbo.FNAGetDateInNepalTZ()
  109. ,cancelRequestBy = @user
  110. ,cancelRequestDate = GETDATE()
  111. ,cancelRequestDateLocal = dbo.FNADateFormatTZ(GETDATE(), @user)
  112. ,trnStatusBeforeCnlReq = @tranStatus
  113. ,controlNo = dbo.fnaEncryptstring(@ControlNo)
  114. WHERE id = @id
  115. --IF @sRouteId = 'w'
  116. --BEGIN
  117. EXEC proc_UpdateCustomerBalance @controlNo=@pinEncrypted
  118. --END
  119. INSERT INTO cancelTranHistory(
  120. tranId,controlNo,sCurrCostRate,sCurrHoMargin,sCurrSuperAgentMargin,sCurrAgentMargin,pCurrCostRate
  121. ,pCurrHoMargin,pCurrSuperAgentMargin,pCurrAgentMargin,agentCrossSettRate,customerRate,sAgentSettRate,pDateCostRate,agentFxGain
  122. ,treasuryTolerance,customerPremium,schemePremium,sharingValue,sharingType,serviceCharge,handlingFee,sAgentComm,sAgentCommCurrency
  123. ,sSuperAgentComm,sSuperAgentCommCurrency,pAgentComm,pAgentCommCurrency,pSuperAgentComm,pSuperAgentCommCurrency,promotionCode
  124. ,promotionType,pMessage,sCountry,sSuperAgent,sSuperAgentName,sAgent,sAgentName,sBranch,sBranchName,pCountry,pSuperAgent,pSuperAgentName
  125. ,pAgent,pAgentName,pBranch,pBranchName,paymentMethod,pBank,pBankName,pBankBranch,pBankBranchName,accountNo,externalBankCode,collMode
  126. ,collCurr,tAmt,cAmt,pAmt,payoutCurr,relWithSender,purposeOfRemit,sourceOfFund,tranStatus,payStatus,createdDate,createdDateLocal
  127. ,createdBy,modifiedDate,modifiedDateLocal,modifiedBy,approvedDate,approvedDateLocal,approvedBy,paidDate,paidDateLocal,paidBy
  128. ,cancelRequestDate,cancelRequestDateLocal,cancelRequestBy,cancelReason,refund,cancelCharge,cancelApprovedDate,cancelApprovedDateLocal
  129. ,cancelApprovedBy,blockedDate,blockedBy,lockedDate,lockedDateLocal,lockedBy,payTokenId,tranType,ContNo
  130. ,uploadLogId,voucherNo,controlNo2,pBankType,trnStatusBeforeCnlReq,sRouteId
  131. )
  132. SELECT
  133. id,controlNo,sCurrCostRate,sCurrHoMargin,sCurrSuperAgentMargin,sCurrAgentMargin,pCurrCostRate
  134. ,pCurrHoMargin,pCurrSuperAgentMargin,pCurrAgentMargin,agentCrossSettRate,customerRate,sAgentSettRate,pDateCostRate,agentFxGain
  135. ,treasuryTolerance,customerPremium,schemePremium,sharingValue,sharingType,serviceCharge,handlingFee,sAgentComm,sAgentCommCurrency
  136. ,sSuperAgentComm,sSuperAgentCommCurrency,pAgentComm,pAgentCommCurrency,pSuperAgentComm,pSuperAgentCommCurrency,promotionCode
  137. ,promotionType,pMessage,sCountry,sSuperAgent,sSuperAgentName,sAgent,sAgentName,sBranch,sBranchName,pCountry,pSuperAgent,pSuperAgentName
  138. ,pAgent,pAgentName,pBranch,pBranchName,paymentMethod,pBank,pBankName,pBankBranch,pBankBranchName,accountNo,externalBankCode,collMode
  139. ,collCurr,tAmt,cAmt,pAmt,payoutCurr,relWithSender,purposeOfRemit,sourceOfFund,tranStatus,payStatus,createdDate,createdDateLocal
  140. ,createdBy,modifiedDate,modifiedDateLocal,modifiedBy,approvedDate,approvedDateLocal,approvedBy,paidDate,paidDateLocal,paidBy
  141. ,cancelRequestDate,cancelRequestDateLocal,cancelRequestBy,@remarks,refund,cancelCharge,GETDATE(),dbo.FNADateFormatTZ(GETDATE(), @user)
  142. ,@user,blockedDate,blockedBy,lockedDate,lockedDateLocal,lockedBy,payTokenId,tranType,ContNo
  143. ,uploadLogId,voucherNo,controlNo2,pBankType,trnStatusBeforeCnlReq,sRouteId
  144. FROM remitTranTemp WHERE id = @id
  145. INSERT INTO cancelTranSendersHistory
  146. (tranId,customerId,membershipId,firstName,middleName,lastName1,lastName2,fullName,country,address,STATE,district,
  147. zipCode,city,email,homePhone,workPhone,mobile,nativeCountry,dob,placeOfIssue,customerType,occupation,idType,
  148. idNumber,idPlaceOfIssue,issuedDate,validDate,extCustomerId,cwPwd,ttName,isFirstTran,customerRiskPoint,countryRiskPoint,
  149. gender,salary,companyName,address2,dcInfo,ipAddress,notifySms,txnTestQuestion,txnTestAnswer)
  150. SELECT tranId,customerId,membershipId,firstName,middleName,lastName1,lastName2,fullName,country,address,STATE,district,
  151. zipCode,city,email,homePhone,workPhone,mobile,nativeCountry,dob,placeOfIssue,customerType,occupation,idType,
  152. idNumber,idPlaceOfIssue,issuedDate,validDate,extCustomerId,cwPwd,ttName,isFirstTran,customerRiskPoint,countryRiskPoint,
  153. gender,salary,companyName,address2,dcInfo,ipAddress,notifySms,txnTestQuestion,txnTestAnswer
  154. FROM transenderstemp WITH(NOLOCK) WHERE tranId = @id
  155. INSERT INTO cancelTranReceiversHistory
  156. (tranId,customerId,membershipId,firstName,middleName,lastName1,lastName2,fullName,country,address,
  157. state,district,zipCode,city,email,homePhone,workPhone,mobile,nativeCountry,dob,placeOfIssue,customerType,
  158. occupation,idType,idNumber,idPlaceOfIssue,issuedDate,validDate,idType2,idNumber2,idPlaceOfIssue2,issuedDate2,
  159. validDate2,relationType,relativeName,gender,address2,dcInfo,ipAddress)
  160. SELECT tranId,customerId,membershipId,firstName,middleName,lastName1,lastName2,fullName,country,address,
  161. state,district,zipCode,city,email,homePhone,workPhone,mobile,nativeCountry,dob,placeOfIssue,customerType,
  162. occupation,idType,idNumber,idPlaceOfIssue,issuedDate,validDate,idType2,idNumber2,idPlaceOfIssue2,issuedDate2,
  163. validDate2,relationType,relativeName,gender,address2,dcInfo,ipAddress
  164. FROM tranReceiversTemp WITH(NOLOCK) WHERE tranId = @id
  165. DELETE FROM remitTranTemp WHERE id = @id
  166. DELETE FROM tranSendersTemp WHERE tranId = @id
  167. DELETE FROM tranReceiversTemp WHERE tranId = @id
  168. SELECT @message = 'Transaction cancel has been done successfully.'
  169. EXEC proc_transactionLogs @flag='i', @user=@user, @tranId=@id, @message=@message,@msgType='Cancel'
  170. IF @@TRANCOUNT > 0
  171. COMMIT TRANSACTION
  172. EXEC proc_errorHandler 0, 'Transaction Rejected Successfully', @id
  173. RETURN
  174. END
  175. IF @flag = 'approve'
  176. BEGIN
  177. DECLARE @pBank INT,@paymentMethod VARCHAR(50),@tranType CHAR(1),@Mobile VARCHAR(15),@controlNo2 VARCHAR(20)
  178. IF @createdBy = @user
  179. BEGIN
  180. EXEC proc_errorHandler 1, 'Same user cannot approve the Transaction', @id
  181. RETURN
  182. END
  183. IF EXISTS (select 'X' FROM remitTranTemp(nolock) where id = @id AND isOnlineTxn = 'Y')
  184. BEGIN
  185. SELECT
  186. @cAmt = cAmt
  187. ,@userId = cm.customerId
  188. ,@createdBy = r.createdBy
  189. ,@controlNo = dbo.FNADecryptString(controlNo)
  190. ,@controlNo2= controlNo2
  191. ,@sBranch = sBranch
  192. ,@pBank = pBank
  193. ,@paymentMethod = paymentMethod
  194. ,@tranType = tranType
  195. ,@sRouteId = sRouteId
  196. ,@Mobile = CM.mobile
  197. FROM remitTranTemp r WITH(NOLOCK)
  198. INNER JOIN customerMaster cm WITH(NOLOCK) ON r.createdBy = cm.email
  199. WHERE r.id = @id
  200. END
  201. ELSE
  202. BEGIN
  203. SELECT
  204. @cAmt = cAmt
  205. ,@userId = au.userId
  206. ,@createdBy = r.createdBy
  207. ,@controlNo = dbo.FNADecryptString(controlNo)
  208. ,@controlNo2= controlNo2
  209. ,@sBranch = sBranch
  210. FROM remitTranTemp r WITH(NOLOCK)
  211. INNER JOIN applicationUsers au WITH(NOLOCK) ON r.createdBy = au.userName
  212. WHERE r.id = @id
  213. END
  214. IF @sRouteId = 'w'
  215. BEGIN
  216. SELECT @denyAmt = availableBalance FROM customerMaster(NOLOCK) WHERE email = @createdBy
  217. IF ISNULL(@denyAmt,0) < 0
  218. BEGIN
  219. INSERT INTO tranCancelrequest(tranId,controlNo,cancelReason,cancelStatus,
  220. createdBy,createdDate,tranStatus,approvedBy,approvedDate,scRefund,isScRefund)
  221. SELECT id,controlNo,'Auto rejected due to invalid amount','Approved',@user,GETDATE(),tranStatus,@user,GETDATE(),cAmt,'Y'
  222. FROM remitTranTemp WITH(NOLOCK) WHERE id=@id
  223. UPDATE remitTranTemp SET tranStatus='Hold' WHERE id = @id
  224. EXEC proc_errorHandler 1, 'Auto rejected due to invalid amount', @id
  225. return
  226. END
  227. END
  228. --SELECT @parentId = parentId FROM agentMaster WITH(NOLOCK) WHERE agentId=@sBranch
  229. --SELECT @invicePrintMethod = invoicePrintMethod FROM agentMaster A WITH(NOLOCK)
  230. --INNER JOIN agentBusinessFunction B WITH(NOLOCK) ON A.agentId=B.agentId
  231. --WHERE A.agentId=@parentId
  232. BEGIN TRANSACTION
  233. UPDATE remitTranTemp SET
  234. tranStatus = CASE tranStatus
  235. WHEN 'Hold' THEN 'Payment'
  236. WHEN 'Compliance Hold' THEN 'Compliance'
  237. WHEN 'OFAC Hold' THEN 'OFAC'
  238. WHEN 'OFAC/Compliance Hold' THEN 'OFAC/Compliance'
  239. ELSE 'Payment'
  240. END
  241. ,approvedBy = @user
  242. ,approvedDate = GETDATE()
  243. ,approvedDateLocal = GETUTCDATE()
  244. WHERE id = @id
  245. IF @sRouteId = 'w'
  246. BEGIN
  247. SELECT @denyAmt = availableBalance FROM customerMaster(NOLOCK) WHERE email = @createdBy
  248. IF ISNULL(@denyAmt,0)<0
  249. UPDATE remitTranTemp SET tranStatus = 'HOLD' WHERE id = @id
  250. END
  251. --send email to customers
  252. INSERT INTO tempTransactionMailQueue(controlNo, createdDate, [status])--tranType is used to know either mail is sent or not, we put 'N' for not sent
  253. SELECT rt.controlNo, GETDATE(), 'N' FROM remitTranTemp rt (NOLOCK) where rt.id = @id
  254. ----## pish temp into main table
  255. EXEC proc_remitTranTempToMain @id
  256. INSERT INTO PinQueueList(ICN)
  257. SELECT @pinEncrypted
  258. IF ISNULL(@controlNo2,'a') <> 'a'
  259. BEGIN
  260. IF NOT EXISTS(SELECT 'A' FROM PinQueueList(NOLOCK) WHERE icn = @controlNo2)
  261. BEGIN
  262. INSERT INTO PinQueueList(ICN)
  263. SELECT @controlNo2
  264. END
  265. END
  266. --UPDATE userWiseTxnLimit SET
  267. -- sendTodays = ISNULL(sendTodays, 0) + @cAmt
  268. --WHERE userId = @userId AND ISNULL(isActive, 'N') = 'Y'
  269. IF @@TRANCOUNT > 0
  270. COMMIT TRANSACTION
  271. EXEC proc_errorHandler 0, 'Transaction Approved Successfully', @controlNo
  272. DECLARE @SMSBody VARCHAR(90) = 'Your transaction GME No: '+@controlNo+' is successfully sent. Thank you for using GME.'
  273. ----## SMS TO IDENTIFY EVERY CUSTOMRE
  274. ----IF NOT EXISTS(SELECT TOP 1 'A' FROM KT_SMS.DBO.SDK_SMS_REPORT(nolock) WHERE SMS_MSG LIKE '%'+@controlNo+'%')
  275. IF @Mobile IS NOT NULL
  276. EXEC FastMoneyPro_Remit.dbo.proc_CallToSendSMS @FLAG = 'I',@SMSBody = @SMSBody,@MobileNo = @Mobile
  277. --IF @invicePrintMethod = 'aa'
  278. -- EXEC proc_errorHandler 11, 'Transaction Approved Successfully', @controlNo
  279. --ELSE IF (@pBank = 1056 AND @paymentMethod = 'BANK DEPOSIT' OR @paymentMethod ='CASH PAYMENT')
  280. -- EXEC proc_errorHandler 5, 'Transaction Approved Successfully', @controlNo
  281. --ELSE
  282. -- EXEC proc_errorHandler 0, 'Transaction Approved Successfully', @controlNo
  283. --## generate voucher entry
  284. --EXEC FastMoneyPro_Account.dbo.proc_transactionVoucherEntry @controlNo= @controlNo
  285. RETURN
  286. END
  287. IF @flag = 'approve-all'
  288. BEGIN
  289. EXEC proc_ApproveHoldedTXN_Sub @user = @user, @idList = @idList
  290. RETURN
  291. END
  292. DECLARE @cdTable VARCHAR(MAX) = ''
  293. SET @cdTable = '
  294. LEFT JOIN (
  295. SELECT
  296. DISTINCT
  297. tranId
  298. ,cb.bankName
  299. ,cd.countryBankId
  300. FROM collectionDetails cd WITH(NOLOCK)
  301. LEFT JOIN countryBanks cb WITH(NOLOCK) ON cd.countryBankId = cb.countryBankId
  302. INNER JOIN remitTranTemp trn WITH(NOLOCK) ON cd.tranId = trn.id
  303. AND (trn.tranStatus = ''Hold'' OR trn.tranStatus = ''Compliance Hold'' OR trn.tranStatus = ''OFAC Hold'' )
  304. AND trn.payStatus = ''Unpaid''
  305. AND trn.approvedBy IS NULL
  306. ) cd ON cd.tranId = trn.id '
  307. IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[#collModeList]') AND type = 'D')
  308. BEGIN
  309. DROP TABLE #collModeList
  310. END
  311. CREATE TABLE #collModeList(tranId INT, hasProcess CHAR(1), proMode varchar(50))
  312. DECLARE @tranId1 INT,@collMode VARCHAR(100)
  313. IF @flag = 's-admin'
  314. BEGIN
  315. SET @table = '
  316. SELECT DISTINCT
  317. trn.id
  318. ,controlNo = dbo.fnadecryptstring(controlNo)
  319. ,branch = am.agentName
  320. ,country = trn.pCountry
  321. ,senderId = sen.customerId
  322. ,sender = sen.firstName + ISNULL( '' '' + sen.middleName, '''') + ISNULL( '' '' + sen.lastName1, '''') + ISNULL( '' '' + sen.lastName2, '''')
  323. ,receiverId = rec.customerId
  324. ,receiver = rec.firstName + ISNULL( '' '' + rec.middleName, '''') + ISNULL( '' '' + rec.lastName1, '''') + ISNULL( '' '' + rec.lastName2, '''')
  325. ,amt = CAST(trn.cAmt AS DECIMAL(18, 2))
  326. ,trn.paymentMethod
  327. ,voucherNo = trn.voucherNo
  328. ,txnDate = CAST(trn.createdDate AS DATE)
  329. ,txncreatedBy = trn.createdBy
  330. FROM remitTranTemp trn WITH(NOLOCK) ' + @cdTable + '
  331. LEFT JOIN apiRoutingTable art WITH(NOLOCK) ON trn.pAgent = art.agentId
  332. INNER JOIN agentMaster am WITH(NOLOCK) ON trn.sBranch = am.agentId
  333. INNER JOIN tranSendersTemp sen WITH(NOLOCK) ON trn.id = sen.tranId
  334. INNER JOIN tranReceiversTemp rec WITH(NOLOCK) ON trn.id = rec.tranId
  335. WHERE trn.tranStatus IN (''Hold'',''Compliance Hold'',''OFAC Hold'',''OFAC/Compliance Hold'') AND
  336. trn.payStatus = ''Unpaid'' AND
  337. trn.approvedBy IS NULL AND
  338. ISNULL(trn.isOnlineTxn,''N'') <>''Y'' AND trn.tranType<>''O''
  339. '
  340. IF @id IS NOT NULL
  341. SET @table = @table + ' AND trn.id = ''' + @id + ''''
  342. IF @branch IS NOT NULL
  343. SET @table = @table + ' AND am.agentId = ''' + @branch + ''''
  344. IF @country IS NOT NULL
  345. SET @table = @table + ' AND trn.pCountry LIKE ''' + @country + '%'''
  346. IF @sendCountry IS NOT NULL
  347. SET @table = @table + ' AND trn.sCountry LIKE ''' + @sendCountry + '%'''
  348. IF @amt IS NOT NULL
  349. SET @table = @table + ' AND trn.pAmt = ' + CAST(@amt AS VARCHAR(20))+ ''
  350. IF @voucherNo IS NOT NULL
  351. SET @table = @table + ' AND trn.voucherNo = ''' + @voucherNo + ''''
  352. IF @txncreatedBy IS NOT NULL
  353. SET @table = @table + ' AND trn.createdBy = '''+@txncreatedBy+''''
  354. IF @txnDate IS NOT NULL
  355. SET @table = @table + ' AND CAST(trn.createdDate AS DATE)='''+@txnDate +''''
  356. IF @ControlNo IS NOT NULL
  357. SET @table = @table + ' AND trn.controlNo = dbo.fnaEncryptString('''+@ControlNo+''')'
  358. IF @sendAgent IS NOT NULL
  359. SET @table = @table + ' AND trn.sAgent = '''+@sendAgent+''''
  360. IF @sendBranch IS NOT NULL
  361. SET @table = @table + ' AND trn.sBranch = '''+@sendBranch+''''
  362. SET @sql = '
  363. SELECT
  364. *
  365. FROM (
  366. ' + @table + '
  367. ) x
  368. WHERE 1 = 1 '
  369. IF @sender IS NOT NULL
  370. SET @sql = @sql + ' AND sender LIKE ''' + @sender + '%'''
  371. IF @receiver IS NOT NULL
  372. SET @sql = @sql + ' AND receiver LIKE ''' + @receiver + '%'''
  373. PRINT @sql
  374. EXEC (@sql)
  375. RETURN
  376. END
  377. IF @flag = 's-admin-online'
  378. BEGIN
  379. SET @table = '
  380. SELECT DISTINCT
  381. trn.id
  382. ,branch = am.agentName
  383. ,country = trn.pCountry
  384. ,senderId = sen.customerId
  385. ,sender = sen.firstName + ISNULL( '' '' + sen.middleName, '''') + ISNULL( '' '' + sen.lastName1, '''') + ISNULL( '' '' + sen.lastName2, '''')
  386. ,receiverId = rec.customerId
  387. ,receiver = rec.firstName + ISNULL( '' '' + rec.middleName, '''') + ISNULL( '' '' + rec.lastName1, '''') + ISNULL( '' '' + rec.lastName2, '''')
  388. ,amt = CAST(trn.cAmt AS DECIMAL(18, 2))
  389. ,txnDate = CAST(trn.createdDate AS DATE)
  390. ,txncreatedBy = trn.createdBy
  391. ,CASE WHEN trn.pAgent=1100 OR trn.pAgent = 1043 THEN 1 ELSE 0 END isThirdPartyTran
  392. FROM remitTranTemp trn WITH(NOLOCK) ' + @cdTable + '
  393. LEFT JOIN apiRoutingTable art WITH(NOLOCK) ON trn.pAgent = art.agentId
  394. INNER JOIN agentMaster am WITH(NOLOCK) ON trn.sBranch = am.agentId
  395. INNER JOIN tranSendersTemp sen WITH(NOLOCK) ON trn.id = sen.tranId
  396. INNER JOIN tranReceiversTemp rec WITH(NOLOCK) ON trn.id = rec.tranId
  397. WHERE trn.tranStatus IN (''Hold'',''Compliance Hold'',''OFAC Hold'',''OFAC/Compliance Hold'') AND
  398. trn.payStatus = ''Unpaid'' AND
  399. trn.approvedBy IS NULL AND ISNULL(trn.isOnlineTxn,''N'') =''Y''
  400. '
  401. IF @id IS NOT NULL
  402. SET @table = @table + ' AND trn.id = ''' + @id + ''''
  403. IF @branch IS NOT NULL
  404. SET @table = @table + ' AND am.agentId = ''' + @branch + ''''
  405. IF @country IS NOT NULL
  406. SET @table = @table + ' AND trn.pCountry LIKE ''' + @country + '%'''
  407. IF @sendCountry IS NOT NULL
  408. SET @table = @table + ' AND trn.sCountry LIKE ''' + @sendCountry + '%'''
  409. IF @amt IS NOT NULL
  410. SET @table = @table + ' AND trn.pAmt = ' + CAST(@amt AS VARCHAR(20))+ ''
  411. IF @voucherNo IS NOT NULL
  412. SET @table = @table + ' AND trn.voucherNo = ''' + @voucherNo + ''''
  413. IF @txncreatedBy IS NOT NULL
  414. SET @table = @table + ' AND trn.createdBy = '''+@txncreatedBy+''''
  415. IF @txnDate IS NOT NULL
  416. SET @table = @table + ' AND CAST(trn.createdDate AS DATE)='''+@txnDate +''''
  417. IF @ControlNo IS NOT NULL
  418. SET @table = @table + ' AND trn.controlNo = dbo.fnaEncryptString('''+@ControlNo+''')'
  419. IF @sendAgent IS NOT NULL
  420. SET @table = @table + ' AND trn.sAgent = '''+@sendAgent+''''
  421. IF @sendBranch IS NOT NULL
  422. SET @table = @table + ' AND trn.sBranch = '''+@sendBranch+''''
  423. SET @sql = '
  424. SELECT
  425. * , STUFF((SELECT '''' + US.voucherNo +'' - ''+ CONVERT(VARCHAR(11),US.voucherDate,6) +'' - ''+ CAST(US.voucherAmt AS VARCHAR)+'' || ''
  426. FROM bankCollectionVoucherDetail US
  427. WHERE US.tempTranId = x.id
  428. FOR XML PATH('''')), 1, 1, '''') [voucherDetail]
  429. FROM (
  430. ' + @table + '
  431. ) x
  432. WHERE 1 = 1 '
  433. IF @sender IS NOT NULL
  434. SET @sql = @sql + ' AND sender LIKE ''' + @sender + '%'''
  435. IF @receiver IS NOT NULL
  436. SET @sql = @sql + ' AND receiver LIKE ''' + @receiver + '%'''
  437. PRINT @sql
  438. EXEC (@sql)
  439. RETURN
  440. END
  441. IF @flag = 's-agent'
  442. BEGIN
  443. SELECT
  444. @isSelfApprove = ISNULL(b.isSelfTxnApprove,'N')
  445. FROM agentmaster a WITH(NOLOCK)
  446. LEFT JOIN agentBusinessFunction b WITH(NOLOCK) ON a.parentId=b.agentId
  447. WHERE a.agentId= @branchId
  448. SET @branchList = '
  449. INNER JOIN (
  450. SELECT ' + CAST(@branchId AS VARCHAR) + ' agentId '
  451. IF @userType = 'RH'
  452. BEGIN
  453. SET @branchList = @branchList + '
  454. UNION ALL
  455. SELECT
  456. am.agentId
  457. FROM agentMaster am WITH(NOLOCK)
  458. INNER JOIN regionalBranchAccessSetup rba ON am.agentId = rba.memberAgentId
  459. WHERE rba.agentId = ' + CAST(@branchId AS VARCHAR) + '
  460. AND ISNULL(rba.isDeleted, ''N'') = ''N''
  461. AND ISNULL(rba.isActive, ''N'') = ''Y''
  462. AND memberAgentId <> ' + CAST(@branchId AS VARCHAR) + ''
  463. END
  464. IF @userType = 'AH'
  465. BEGIN
  466. SET @branchList = @branchList + '
  467. UNION ALL
  468. select agentId from agentMaster with(nolock) where parentId =
  469. (select parentId from agentmaster with(nolock) where agentId=' + CAST(@branchId AS VARCHAR) + ')
  470. and agentId <> ' + CAST(@branchId AS VARCHAR) + ''
  471. END
  472. SET @branchList = @branchList + '
  473. ) bl ON trn.sBranch = bl.agentId
  474. '
  475. SET @table = '
  476. SELECT DISTINCT
  477. trn.id
  478. ,branch = am.agentName
  479. ,country = trn.pCountry
  480. ,senderId = sen.customerId
  481. ,sender = sen.firstName + ISNULL( '' '' + sen.middleName, '''') + ISNULL( '' '' + sen.lastName1, '''') + ISNULL( '' '' + sen.lastName2, '''')
  482. ,receiverId = rec.customerId
  483. ,receiver = rec.firstName + ISNULL( '' '' + rec.middleName, '''') + ISNULL( '' '' + rec.lastName1, '''') + ISNULL( '' '' + rec.lastName2, '''')
  484. ,amt = CAST(trn.cAmt AS DECIMAL(18, 3))
  485. ,voucherNo = trn.voucherNo
  486. ,trn.createdBy
  487. ,collMode = ''Cash''
  488. ,txnDate = CAST(trn.createdDate AS DATE)
  489. ,txncreatedBy = trn.createdBy
  490. ,CASE WHEN trn.pAgent = 1100 OR trn.pAgent = 1043 THEN 1 ELSE 0 END isThirdPartyTran
  491. FROM remitTranTemp trn WITH(NOLOCK)
  492. LEFT JOIN apiRoutingTable art WITH(NOLOCK) ON trn.pAgent = art.agentId
  493. ' + @branchList + '
  494. INNER JOIN agentMaster am WITH(NOLOCK) ON trn.sBranch = am.agentId
  495. INNER JOIN tranSendersTemp sen WITH(NOLOCK) ON trn.id = sen.tranId
  496. INNER JOIN tranReceiversTemp rec WITH(NOLOCK) ON trn.id = rec.tranId
  497. WHERE trn.tranStatus IN (''Hold'',''Compliance Hold'',''OFAC Hold'',''OFAC/Compliance Hold'') AND
  498. trn.payStatus = ''Unpaid'' AND
  499. trn.approvedBy IS NULL
  500. '
  501. IF @txnType IS NOT NULL
  502. SET @table = @table + ' AND trn.tranType = ''' + @txnType + ''''
  503. else
  504. SET @table = @table + ' AND trn.tranType=''I'''
  505. IF @id IS NOT NULL
  506. SET @table = @table + ' AND trn.id = ''' + @id + ''''
  507. IF @branch IS NOT NULL
  508. SET @table = @table + ' AND am.agentId = ''' + @branch + ''''
  509. IF @country IS NOT NULL
  510. SET @table = @table + ' AND trn.pCountry LIKE ''' + @country + '%'''
  511. IF @amt IS NOT NULL
  512. SET @table = @table + ' AND trn.cAmt = ' + CAST(@amt AS VARCHAR(50))
  513. IF @voucherNo IS NOT NULL
  514. SET @table = @table + ' AND trn.voucherNo = ''' + @voucherNo + ''''
  515. IF @txnDate IS NOT NULL
  516. SET @table = @table + ' AND CAST(trn.createdDate AS DATE)='''+@txnDate +''''
  517. if @isSelfApprove = 'N'
  518. SET @table = @table + ' AND trn.createdBy <> '''+ @user +''''
  519. SET @sql = '
  520. SELECT
  521. *
  522. FROM (
  523. ' + @table + '
  524. ) x
  525. WHERE 1 = 1 '
  526. IF @txncreatedBy IS NOT NULL
  527. SET @sql = @sql + ' AND txncreatedBy = '''+@txncreatedBy+''''
  528. IF @sender IS NOT NULL
  529. SET @sql = @sql + ' AND sender LIKE ''' + @sender + '%'''
  530. IF @receiver IS NOT NULL
  531. SET @sql = @sql + ' AND receiver LIKE ''' + @receiver + '%'''
  532. --PRINT @sql
  533. EXEC (@sql)
  534. RETURN
  535. END
  536. IF @flag = 's-agent-self-txn'
  537. BEGIN
  538. SET @branchList = '
  539. INNER JOIN (
  540. SELECT ' + CAST(@branchId AS VARCHAR) + ' agentId '
  541. IF @userType = 'RH'
  542. BEGIN
  543. SET @branchList = @branchList + '
  544. UNION ALL
  545. SELECT
  546. am.agentId
  547. FROM agentMaster am WITH(NOLOCK)
  548. INNER JOIN regionalBranchAccessSetup rba ON am.agentId = rba.memberAgentId
  549. WHERE rba.agentId = ' + CAST(@branchId AS VARCHAR) + '
  550. AND ISNULL(rba.isDeleted, ''N'') = ''N''
  551. AND ISNULL(rba.isActive, ''N'') = ''Y'''
  552. END
  553. SET @branchList = @branchList + '
  554. ) bl ON trn.sBranch = bl.agentId
  555. '
  556. SET @table = '
  557. SELECT DISTINCT
  558. trn.id
  559. ,branch = am.agentName
  560. ,country = trn.pCountry
  561. ,senderId = sen.customerId
  562. ,sender = sen.firstName + ISNULL( '' '' + sen.middleName, '''') + ISNULL( '' '' + sen.lastName1, '''') + ISNULL( '' '' + sen.lastName2, '''')
  563. ,receiverId = rec.customerId
  564. ,receiver = rec.firstName + ISNULL( '' '' + rec.middleName, '''') + ISNULL( '' '' + rec.lastName1, '''') + ISNULL( '' '' + rec.lastName2, '''')
  565. ,amt = CAST(trn.cAmt AS DECIMAL(18, 3))
  566. ,voucherNo = trn.voucherNo
  567. ,trn.createdBy
  568. ,collMode = ''''
  569. ,txnDate = CAST(trn.createdDate AS DATE)
  570. ,txncreatedBy = trn.createdBy
  571. FROM remitTranTemp trn WITH(NOLOCK)
  572. LEFT JOIN apiRoutingTable art WITH(NOLOCK) ON trn.pAgent = art.agentId
  573. ' + @branchList + '
  574. INNER JOIN agentMaster am WITH(NOLOCK) ON trn.sBranch = am.agentId
  575. INNER JOIN tranSendersTemp sen WITH(NOLOCK) ON trn.id = sen.tranId
  576. INNER JOIN tranReceiversTemp rec WITH(NOLOCK) ON trn.id = rec.tranId
  577. --INNER JOIN #collModeList T ON T.tranId = trn.id
  578. WHERE trn.tranStatus IN (''Hold'',''Compliance Hold'',''OFAC Hold'',''OFAC/Compliance Hold'') AND
  579. trn.payStatus = ''Unpaid'' AND
  580. trn.approvedBy IS NULL
  581. '
  582. IF @txnType IS NOT NULL
  583. SET @table = @table + ' AND trn.tranType = ''' + @txnType + ''''
  584. else
  585. SET @table = @table + ' AND trn.tranType=''I'''
  586. IF @id IS NOT NULL
  587. SET @table = @table + ' AND trn.id = ''' + @id + ''''
  588. IF @branch IS NOT NULL
  589. SET @table = @table + ' AND am.agentId = ''' + @branch + ''''
  590. IF @country IS NOT NULL
  591. SET @table = @table + ' AND trn.pCountry LIKE ''' + @country + '%'''
  592. IF @amt IS NOT NULL
  593. SET @table = @table + ' AND trn.cAmt = ' + CAST(@amt AS VARCHAR(50))
  594. IF @voucherNo IS NOT NULL
  595. SET @table = @table + ' AND trn.voucherNo = ''' + @voucherNo + ''''
  596. IF @txnDate IS NOT NULL
  597. SET @table = @table + ' AND CAST(trn.createdDate AS DATE)='''+@txnDate +''''
  598. SET @sqlSelfTxn = '
  599. SELECT
  600. *
  601. FROM (
  602. ' + @table + ' AND trn.createdBy = '''+@user+'''
  603. ) x
  604. WHERE 1 = 1 '
  605. IF @sender IS NOT NULL
  606. SET @sqlSelfTxn = @sqlSelfTxn + ' AND sender LIKE ''' + @sender + '%'''
  607. IF @receiver IS NOT NULL
  608. SET @sqlSelfTxn = @sqlSelfTxn + ' AND receiver LIKE ''' + @receiver + '%'''
  609. EXEC (@sqlSelfTxn)
  610. RETURN
  611. END
  612. IF @flag = 's_txn_summary'
  613. BEGIN
  614. SET @branchList = '
  615. INNER JOIN (
  616. SELECT ' + CAST(@branchId AS VARCHAR) + ' agentId '
  617. IF @userType = 'RH'
  618. BEGIN
  619. SET @branchList = @branchList + '
  620. UNION ALL
  621. SELECT
  622. am.agentId
  623. FROM agentMaster am WITH(NOLOCK)
  624. INNER JOIN regionalBranchAccessSetup rba ON am.agentId = rba.memberAgentId
  625. WHERE rba.agentId = ' + CAST(@branchId AS VARCHAR) + '
  626. AND ISNULL(rba.isDeleted, ''N'') = ''N''
  627. AND ISNULL(rba.isActive, ''N'') = ''Y'''
  628. END
  629. IF @userType = 'AH'
  630. BEGIN
  631. SET @branchList = @branchList + '
  632. UNION ALL
  633. select agentId from agentMaster with(nolock) where parentId =
  634. (select parentId from agentmaster with(nolock) where agentId=' + CAST(@branchId AS VARCHAR) + ')
  635. and agentId <> ' + CAST(@branchId AS VARCHAR) + ''
  636. END
  637. SET @branchList = @branchList + '
  638. ) bl ON trn.sBranch = bl.agentId
  639. '
  640. SET @tablesql = '
  641. select country,sum(txnCount) txnCount,sum(txnHoldCount) txnHoldCount from
  642. (
  643. select country,txnCount,txnHoldCount from
  644. (
  645. SELECT
  646. country = CASE WHEN trn.tranType = ''B'' then pCountry+''(B2B)'' else pCountry end
  647. ,txnCount = case when trn.createdBy <> '''+@user+''' then 1 else 0 end
  648. ,txnHoldCount = case when trn.createdBy = '''+@user+''' then 1 else 0 end
  649. FROM remitTranTemp trn WITH(NOLOCK)
  650. LEFT JOIN apiRoutingTable art WITH(NOLOCK) ON trn.pAgent = art.agentId
  651. ' + @branchList + '
  652. INNER JOIN agentMaster am WITH(NOLOCK) ON trn.sBranch = am.agentId
  653. INNER JOIN tranSendersTemp sen WITH(NOLOCK) ON trn.id = sen.tranId
  654. INNER JOIN tranReceiversTemp rec WITH(NOLOCK) ON trn.id = rec.tranId
  655. WHERE trn.tranStatus IN (''Hold'',''Compliance Hold'',''OFAC Hold'',''OFAC/Compliance Hold'') AND
  656. trn.payStatus = ''Unpaid'' AND
  657. trn.approvedBy IS NULL
  658. )z
  659. )x group by country'
  660. --print(@tablesql)
  661. EXEC(@tablesql)
  662. END
  663. IF @flag = 's_admin_txn_summary'
  664. BEGIN
  665. SET @tablesql = '
  666. SELECT
  667. sn = row_number() over(order by trn.sCountry)
  668. ,country = upper(trn.sCountry)
  669. ,txnCount = count(''x'')
  670. FROM remitTranTemp trn WITH(NOLOCK)
  671. LEFT JOIN apiRoutingTable art WITH(NOLOCK) ON trn.pAgent = art.agentId
  672. INNER JOIN agentMaster am WITH(NOLOCK) ON trn.sBranch = am.agentId
  673. INNER JOIN tranSendersTemp sen WITH(NOLOCK) ON trn.id = sen.tranId
  674. INNER JOIN tranReceiversTemp rec WITH(NOLOCK) ON trn.id = rec.tranId
  675. WHERE trn.tranStatus IN (''Hold'',''Compliance Hold'',''OFAC Hold'',''OFAC/Compliance Hold'') AND
  676. trn.payStatus = ''Unpaid'' AND
  677. trn.approvedBy IS NULL AND trn.tranType=''I'' AND
  678. trn.tranType <> ''O'' AND isOnlineTxn <> ''Y''
  679. group by trn.sCountry
  680. '
  681. EXEC(@tablesql)
  682. --print @tablesql
  683. END
  684. IF @flag = 'OnlineTxn-waitingList'
  685. BEGIN
  686. SET @tablesql = '
  687. SELECT
  688. sn = row_number() over(order by trn.sCountry)
  689. ,country = upper(trn.sCountry)
  690. ,txnCount = count(''x'')
  691. FROM remitTranTemp trn WITH(NOLOCK)
  692. LEFT JOIN apiRoutingTable art WITH(NOLOCK) ON trn.pAgent = art.agentId
  693. INNER JOIN agentMaster am WITH(NOLOCK) ON trn.sBranch = am.agentId
  694. INNER JOIN tranSendersTemp sen WITH(NOLOCK) ON trn.id = sen.tranId
  695. INNER JOIN tranReceiversTemp rec WITH(NOLOCK) ON trn.id = rec.tranId
  696. --WHERE trn.tranStatus IN (''Hold'',''Compliance Hold'',''OFAC Hold'',''OFAC/Compliance Hold'') AND
  697. -- trn.payStatus = ''Unpaid'' AND
  698. -- trn.approvedBy IS NULL AND trn.tranType=''O'' AND isOnlineTxn =''Y''
  699. group by trn.sCountry
  700. '
  701. EXEC(@tablesql)
  702. --print @tablesql
  703. END
  704. END TRY
  705. BEGIN CATCH
  706. IF @@TRANCOUNT > 0
  707. ROLLBACK TRANSACTION
  708. SELECT 1 error_code, ERROR_MESSAGE() mes, NULL id
  709. END CATCH