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.

432 lines
25 KiB

6 months ago
6 months ago
6 months ago
6 months ago
6 months ago
6 months ago
  1. USE [FastMoneyPro_Remit]
  2. GO
  3. /****** Object: StoredProcedure [dbo].[PROC_TP_TXN_PUSH] Script Date: 4/2/2024 3:53:24 PM ******/
  4. SET ANSI_NULLS ON
  5. GO
  6. SET QUOTED_IDENTIFIER ON
  7. GO
  8. --EXEC PROC_TP_TXN_PUSH @FLAG = 'GET-LIST'
  9. ALTER PROC [dbo].[PROC_TP_TXN_PUSH] (
  10. @FLAG VARCHAR(30)
  11. ,@TRAN_ID BIGINT = NULL
  12. ,@PROVIDER VARCHAR(30) = NULL
  13. ,@doSyncAll CHAR(1) = NULL
  14. ,@statusDate DATETIME = NULL
  15. ,@message VARCHAR(500) = NULL
  16. ,@status VARCHAR(100) = NULL
  17. ,@user VARCHAR(20) = NULL
  18. ,@pCurrCostRate float =NULL
  19. ,@control2 VARCHAR(30) = NULL
  20. )
  21. AS
  22. SET NOCOUNT ON;
  23. SET XACT_ABORT ON;
  24. -- =============================================
  25. --Modified on: 2021/08/03 -> status date for Dongav2
  26. -- remove NEW_PAID_TRACK
  27. --Change Request #394 ->Remove Instant Pay for during ProcessBank Deposit
  28. -- Add BOC
  29. -- Brac
  30. --EXEC PROC_TP_TXN_PUSH @flag='add-api-comment',@PROVIDER = 'bracBank',@TRANID = '100644605',@ControlNo = '211298008',@message = 'Cancellation Completed',@status = '407'
  31. --Added new @Flag = 'INSTANT-PAID_V2' for manual pay
  32. -- =============================================
  33. BEGIN
  34. IF ISDATE(@statusDate) = 0
  35. SET @statusDate = NULL
  36. DECLARE @CONTROLNO VARCHAR(30)
  37. ,@TRANDATE VARCHAR(30)
  38. ,@customerId VARCHAR(200)
  39. IF @FLAG = 'GET-LIST'
  40. BEGIN
  41. SELECT ID
  42. ,CONTROLNO = DBO.DECRYPTDB(rt.CONTROLNO) --+ DATEPART(SS,GETDATE())
  43. INTO #REMIT_TT
  44. FROM REMITTRAN(NOLOCK) rt
  45. LEFT JOIN tranModifyLog (NOLOCK) tml ON tml.tranId = rt.id
  46. WHERE 1 = 1
  47. AND payStatus = 'unpaid'
  48. AND tranStatus = 'Payment'
  49. AND rt.CREATEDDATE >= '2020-02-15'
  50. AND PSUPERAGENT IN (
  51. 394397,394449
  52. )
  53. AND rt.pCountry in('NEPAL','INDIA', 'PAKISTAN')
  54. AND (tml.status <> 'Resolved' AND tml.fieldName ='STATUS_SYNC')
  55. SELECT ID
  56. ,CONTROLNO = DBO.DECRYPTDB(rt.CONTROLNO) --+ DATEPART(SS,GETDATE())
  57. INTO #remit_unpaid
  58. FROM REMITTRAN(NOLOCK) rt
  59. WHERE 1 = 1
  60. AND payStatus = 'unpaid'
  61. AND tranStatus = 'Payment'
  62. AND rt.CREATEDDATE >= '2020-02-15'
  63. AND PSUPERAGENT IN (
  64. 394397,394449
  65. )
  66. AND rt.pCountry in('NEPAL','INDIA', 'PAKISTAN')
  67. DELETE FROM #remit_unpaid WHERE id in(
  68. select id FROM #REMIT_TT)
  69. SELECT rt.ID
  70. ,CONTROLNO = DBO.DECRYPTDB(rt.CONTROLNO) --+ DATEPART(SS,GETDATE())
  71. ,PAYMENTMETHOD
  72. ,PCOUNTRY
  73. ,rt.CREATEDDATE
  74. ,pbankname
  75. ,pbank
  76. ,pAmt
  77. FROM REMITTRAN(NOLOCK) rt
  78. INNER JOIN #remit_unpaid u on rt.id = u.id
  79. ORDER BY rt.ID DESC
  80. -- update remitTran set tranStatus='Payment', payStatus='unpaid' where controlNo = dbo.FNAEncryptString('211744466')
  81. END
  82. ELSE IF @FLAG = 'UPDATE-POST'
  83. BEGIN
  84. UPDATE dbo.remitTran
  85. SET payStatus = 'POST'
  86. ,postedBy = 'Scheduler'
  87. ,postedDate = GETDATE()
  88. ,postedDateLocal = GETDATE()
  89. ,pDateCostRate=@pCurrCostRate
  90. ,controlno2= CASE WHEN @control2 IS NOT NULL THEN dbo.encryptdb(@control2) ELSE controlno2 END
  91. WHERE id = @TRAN_ID
  92. END
  93. ELSE IF @FLAG = 'UPDATE-POST_RELEASE'
  94. BEGIN
  95. UPDATE dbo.remitTran
  96. SET
  97. --controlno2= CASE WHEN @control2 IS NOT NULL THEN dbo.encryptdb(@control2) ELSE controlno2 END
  98. downloadedDate=GETDATE()
  99. WHERE id = @TRAN_ID
  100. END
  101. ELSE IF @FLAG = 'mark-paid'
  102. BEGIN
  103. DECLARE @statusDateOld DATETIME = CAST(@statusDate AS DATETIME)
  104. --IF @PROVIDER = 'jmenepal'
  105. -- AND @statusDate IS NOT NULL
  106. -- SET @statusDate = DATEADD(HOUR, - 5, DATEADD(MINUTE, - 45, @statusDate))
  107. IF @PROVIDER = 'gmenepal'
  108. AND @statusDate IS NOT NULL
  109. SET @statusDate = DATEADD(HOUR, - 5, DATEADD(MINUTE, - 45, @statusDate))
  110. ELSE IF @PROVIDER = 'gccremit'
  111. AND @statusDate IS NOT NULL
  112. SET @statusDate = DATEADD(HOUR, - 5, DATEADD(MINUTE, - 45, @statusDate))
  113. UPDATE dbo.remitTran
  114. SET tranStatus = 'Paid'
  115. ,payStatus = 'Paid'
  116. ,paidBy = 'SchedulerJob'
  117. ,paidDate = GETDATE()
  118. ,paidDateLocal = ISNULL(@statusDate, DATEADD(HOUR, - 9, GETDATE())) -- GMT FORMAT
  119. WHERE id = @TRAN_ID
  120. SELECT @CONTROLNO = DBO.DECRYPTDB(CONTROLNO)
  121. ,@TRANDATE = PAIDDATE
  122. FROM dbo.remitTran(NOLOCK)
  123. WHERE id = @TRAN_ID
  124. UPDATE tranModifyLog set resolvedBy='Scheduler', resolvedDate=GETDATE(), status='Resolved' WHERE tranId=@TRAN_ID and fieldname='STATUS_SYNC'
  125. DECLARE @senderId INT;
  126. SELECT @senderId=customerId FROM dbo.transenders (NOLOCK)
  127. WHERE tranId = @TRAN_ID
  128. PRINT @senderId
  129. PRINT @TRAN_ID
  130. DECLARE @referralId VARCHAR(100)
  131. SELECT @referralId = ISNULL(referralId, referelCode) FROM customerMaster WHERE @customerId = @senderId
  132. IF (LEFT(@referralId, 3) NOT IN ('MOB', 'ADM', 'CRP', 'ONL'))
  133. BEGIN
  134. EXEC proc_InsertRewardPoints @Flag = 'TRANSACTION', @CustomerId = @senderId, @TranId = @TRAN_ID
  135. END
  136. ELSE
  137. BEGIN
  138. EXEC proc_InsertReferralRewardPoints @Flag = 'TRANSACTION', @CustomerId = @senderId, @TranId = @TRAN_ID
  139. IF NOT EXISTS (
  140. (SELECT 'X' FROM tranSenders WHERE customerId = @senderId) UNION (SELECT 'X' FROM tranSendersTemp WHERE customerId = @senderId))
  141. BEGIN
  142. EXEC proc_InsertRewardPoints @Flag = 'TRANSACTION', @CustomerId = @senderId, @TranId = @TRAN_ID
  143. END
  144. END
  145. EXEC FASTMONEYPRO_ACCOUNT.DBO.PROC_TRANSACTION_PAID_VOUCHER_ENTRY @controlNo = @CONTROLNO
  146. ,@tranDate = @TRANDATE
  147. --IF EXISTS(SELECT 1 FROM FASTMONEYPRO_ACCOUNT.DBO.TRAN_MASTER (NOLOCK) WHERE FIELD1 = @controlNo AND tran_type = 'j' AND FIELD2 = 'Remittance Voucher'
  148. -- AND ISNULL(ACCT_TYPE_CODE, 'Send') = 'Paid')
  149. --BEGIN
  150. -- UPDATE FASTMONEYPRO_ACCOUNT.DBO.TRAN_MASTER SET TRAN_DATE = @TRANDATE
  151. -- WHERE FIELD1 = @controlNo
  152. -- AND tran_type = 'j'
  153. -- AND FIELD2 = 'Remittance Voucher'
  154. -- AND ISNULL(ACCT_TYPE_CODE, 'Send') = 'Paid'
  155. --END
  156. END
  157. ELSE IF @FLAG = 'sync-list'
  158. BEGIN
  159. IF ISNULL(@doSyncAll, 'N') = 'N'
  160. BEGIN
  161. IF @PROVIDER = 'gccremit'
  162. BEGIN
  163. SELECT TOP 75 id
  164. ,controlNo = DBO.DECRYPTDB(CONTROLNO)
  165. ,pSuperAgent
  166. ,PCOUNTRY
  167. ,partnerPin = DBO.DECRYPTDB(CONTROLNO2)
  168. ,createdDate
  169. ,paymentMethod
  170. FROM REMITTRAN(NOLOCK)
  171. WHERE 1 = 1
  172. AND CREATEDDATE >= '2020-02-15'
  173. AND payStatus = 'Post'
  174. AND TRANSTATUS = 'Payment'
  175. AND PSUPERAGENT = 394449
  176. ORDER BY ID DESC
  177. --AND id=dbo.fnaencryptstring('211517849')
  178. END
  179. ELSE IF @PROVIDER = 'transfast'
  180. BEGIN
  181. SELECT TOP 50 id
  182. ,controlNo = DBO.DECRYPTDB(CONTROLNO)
  183. ,pSuperAgent
  184. ,PCOUNTRY
  185. ,partnerPin = DBO.DECRYPTDB(CONTROLNO)
  186. ,createdDate
  187. ,paymentMethod
  188. FROM REMITTRAN(NOLOCK)
  189. WHERE 1 = 1
  190. AND CREATEDDATE >= '2020-02-15'
  191. --AND PCOUNTRY NOT IN ('NEPAL','VIETNAM')
  192. AND payStatus = 'Post'
  193. AND TRANSTATUS = 'Payment'
  194. AND PSUPERAGENT = 394130
  195. --AND ID NOT IN (SELECT TRAN_ID FROM NEW_PAID_TRACK_NEW)
  196. --AND id = 100466789
  197. --AND CONTROLNO = DBO.FNAENCRYPTSTRING('33TF001950961')
  198. ORDER BY ID DESC
  199. END
  200. ELSE IF @PROVIDER = 'gmenepal'
  201. BEGIN
  202. SELECT TOP 75 id
  203. ,controlNo = DBO.DECRYPTDB(CONTROLNO)
  204. ,pSuperAgent
  205. ,PCOUNTRY
  206. ,partnerPin = DBO.DECRYPTDB(CONTROLNO)
  207. ,createdDate
  208. ,paymentMethod
  209. FROM REMITTRAN(NOLOCK)
  210. WHERE 1 = 1
  211. AND CREATEDDATE >= '2020-02-15'
  212. AND payStatus = 'Post'
  213. AND TRANSTATUS = 'Payment'
  214. AND PSUPERAGENT = 394397
  215. ORDER BY ID DESC
  216. END
  217. END
  218. ELSE
  219. BEGIN
  220. IF @PROVIDER = 'transfast'
  221. BEGIN
  222. SELECT id
  223. ,controlNo = DBO.DECRYPTDB(CONTROLNO)
  224. ,pSuperAgent
  225. ,PCOUNTRY
  226. ,partnerPin = DBO.DECRYPTDB(CONTROLNO)
  227. ,paymentMethod
  228. FROM REMITTRAN(NOLOCK)
  229. WHERE 1 = 1
  230. AND CREATEDDATE >= '2020-03-31'
  231. AND payStatus = 'Post'
  232. AND TRANSTATUS = 'Payment'
  233. AND PSUPERAGENT = 394130
  234. END
  235. ELSE IF @PROVIDER = 'gmenepal'
  236. BEGIN
  237. SELECT id
  238. ,controlNo = DBO.DECRYPTDB(CONTROLNO)
  239. ,pSuperAgent
  240. ,PCOUNTRY
  241. ,partnerPin = DBO.DECRYPTDB(CONTROLNO)
  242. ,createdDate
  243. ,paymentMethod
  244. FROM REMITTRAN(NOLOCK)
  245. WHERE 1 = 1
  246. AND CREATEDDATE >= '2020-02-15'
  247. AND payStatus = 'Post'
  248. AND TRANSTATUS = 'Payment'
  249. AND PSUPERAGENT = 394397
  250. ORDER BY ID DESC
  251. END
  252. END
  253. END
  254. ELSE IF @Flag = 'GET-RELEASE-LIST'
  255. BEGIN
  256. SELECT ID
  257. ,CONTROLNO = DBO.DECRYPTDB(CONTROLNO)
  258. ,CONTROLNO2 = DBO.DECRYPTDB(CONTROLNO2)
  259. ,PAYMENTMETHOD
  260. ,PCOUNTRY
  261. ,CREATEDDATE
  262. ,pbankname
  263. ,pbank
  264. ,sSuperAgent = pSuperAgent
  265. ,[partner] = 'gccremit'
  266. ,pagentcomm
  267. FROM REMITTRAN(NOLOCK)
  268. WHERE 1 = 1
  269. AND CREATEDDATE >= '2020-03-31'
  270. AND payStatus = 'POST'
  271. AND tranStatus = 'Payment'
  272. AND PSUPERAGENT = 394449
  273. and downloadedDate IS NULL
  274. ORDER BY ID DESC
  275. END
  276. ELSE IF @Flag = 'INSTANT-PAID'
  277. BEGIN
  278. --UPDATE dbo.remitTran SET tranStatus = 'Paid',
  279. -- payStatus = 'Paid',
  280. -- paidBy = 'Scheduler',
  281. -- paidDate = GETDATE(),
  282. -- paidDateLocal = DATEADD(HOUR, -9, GETDATE()) -- GMT FORMAT
  283. --WHERE id = @TRAN_ID
  284. --SELECT @CONTROLNO = DBO.DECRYPTDB(CONTROLNO),
  285. -- @TRANDATE = PAIDDATE
  286. --FROM dbo.remitTran (NOLOCK)
  287. --WHERE id = @TRAN_ID
  288. --EXEC FASTMONEYPRO_ACCOUNT.DBO.PROC_TRANSACTION_PAID_VOUCHER_ENTRY @controlNo = @CONTROLNO, @tranDate = @TRANDATE
  289. UPDATE dbo.remitTran
  290. SET payStatus = 'POST'
  291. ,postedBy = 'Scheduler'
  292. ,postedDate = GETDATE()
  293. ,postedDateLocal = GETDATE()
  294. WHERE id = @TRAN_ID
  295. END
  296. --ELSE IF @Flag = 'INSTANT-PAID'
  297. --BEGIN
  298. -- --UPDATE dbo.remitTran SET tranStatus = 'Paid',
  299. -- UPDATE dbo.remitTran
  300. -- SET payStatus = 'POST'
  301. -- ,postedBy = 'Scheduler'
  302. -- ,postedDate = GETDATE()
  303. -- ,postedDateLocal = GETDATE()
  304. -- WHERE id = @TRAN_ID
  305. --END
  306. ELSE IF @Flag = 'add-api-comment'
  307. BEGIN
  308. SELECT @CONTROLNO = (CONTROLNO)
  309. ----,@TRANDATE = PAIDDATE
  310. FROM dbo.remitTran(NOLOCK)
  311. WHERE id = @TRAN_ID
  312. IF NOT EXISTS (
  313. SELECT *
  314. FROM tranModifyLog
  315. WHERE tranId = @TRAN_ID
  316. AND fieldName = 'STATUS_SYNC'
  317. AND ISNULL(oldValue,'') = @status
  318. )
  319. BEGIN
  320. INSERT INTO tranModifyLog (
  321. tranId
  322. ,controlNo
  323. ,message
  324. ,createdBy
  325. ,createdDate
  326. ,MsgType
  327. ,STATUS
  328. ,needToSync
  329. ,fieldName
  330. ,oldValue
  331. )
  332. SELECT @TRAN_ID
  333. ,@CONTROLNO
  334. ,@message
  335. ,ISNULL(@user,'syncApi')
  336. ,GETDATE()
  337. ,'C'
  338. ,'Not Resolved'
  339. ,1
  340. ,'STATUS_SYNC'
  341. ,@status
  342. END
  343. ELSE
  344. BEGIN
  345. UPDATE tranModifyLog set message= @message, createdDate= GETDATE() WHERE tranId = @TRAN_ID AND fieldName = 'STATUS_SYNC'
  346. AND ISNULL(oldValue,'') = @status
  347. END
  348. SELECT '0' ErrorCode, 'Comment Added' Msg, 0 Id
  349. END
  350. ELSE IF @Flag = 'INSTANT-PAID_V2'
  351. BEGIN
  352. IF EXISTS ( SELECT 'X' FROM remitTran where id = @TRAN_ID and tranStatus in ('Cancel','Paid'))
  353. BEGIN
  354. SELECT '0' ErrorCode, 'Invalid Transaction Status!' Msg, 0 Id
  355. RETURN
  356. END
  357. SELECT @customerId = customerId FROM tranSenders WHERE tranId = @TRAN_ID
  358. DECLARE @refId VARCHAR(100)
  359. SELECT @customerId = customerId FROM vwTranSenders WHERE tranId = @TRAN_ID OR holdTranId = @TRAN_ID
  360. SELECT @refId = ISNULL(referralId,referelCode) FROM customerMaster WHERE customerId = @customerId
  361. UPDATE dbo.remitTran SET tranStatus = 'Paid',
  362. payStatus = 'Paid',
  363. paidBy = 'Manual',
  364. paidDate =GETDATE(),
  365. paidDateLocal = DATEADD(HOUR, 1, GETDATE()) -- GMT FORMAT
  366. WHERE id = @TRAN_ID and (tranStatus <> 'CANCEL' OR payStatus <> 'PAID')
  367. IF (LEFT(@referralId, 3) NOT IN ('MOB', 'ADM', 'CRP', 'ONL'))
  368. BEGIN
  369. EXEC proc_InsertRewardPoints @Flag = 'TRANSACTION', @CustomerId = @customerId, @TranId = @TRAN_ID
  370. END
  371. ELSE
  372. BEGIN
  373. EXEC proc_InsertReferralRewardPoints @Flag = 'TRANSACTION', @CustomerId = @customerId, @TranId = @TRAN_ID, @ReferralId = @refId
  374. IF NOT EXISTS (
  375. (SELECT 'X' FROM tranSenders WHERE customerId = @customerId) UNION (SELECT 'X' FROM tranSendersTemp WHERE customerId = @customerId))
  376. BEGIN
  377. EXEC proc_InsertRewardPoints @Flag = 'TRANSACTION', @CustomerId = @customerId, @TranId = @TRAN_ID
  378. END
  379. END
  380. EXEC proc_InsertRewardPoints @Flag = 'TRANSACTION', @CustomerId = @customerId, @TranId = @TRAN_ID
  381. SELECT '0' ErrorCode, 'Transaction paid successfully' Msg, 0 Id
  382. END
  383. END
  384. --CREATE TABLE NEW_PAID_TRACK
  385. --(
  386. -- TRAN_ID BIGINT
  387. -- ,PARTNER_NAME VARCHAR(50)
  388. -- ,PAIDDATE DATETIME
  389. -- ,PAIDDATE_LOCAL DATETIME
  390. -- ,ORIGINAL_DATE DATETIME
  391. --)