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.

395 lines
22 KiB

6 months ago
  1. USE [FastMoneyPro_Remit]
  2. GO
  3. /****** Object: StoredProcedure [dbo].[PROC_TP_TXN_PUSH] Script Date: 4/5/2024 9:40:46 AM ******/
  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. EXEC proc_InsertRewardPoints @Flag = 'TRANSACTION', @CustomerId = @senderId, @TranId = @TRAN_ID
  131. EXEC FASTMONEYPRO_ACCOUNT.DBO.PROC_TRANSACTION_PAID_VOUCHER_ENTRY @controlNo = @CONTROLNO
  132. ,@tranDate = @TRANDATE
  133. --IF EXISTS(SELECT 1 FROM FASTMONEYPRO_ACCOUNT.DBO.TRAN_MASTER (NOLOCK) WHERE FIELD1 = @controlNo AND tran_type = 'j' AND FIELD2 = 'Remittance Voucher'
  134. -- AND ISNULL(ACCT_TYPE_CODE, 'Send') = 'Paid')
  135. --BEGIN
  136. -- UPDATE FASTMONEYPRO_ACCOUNT.DBO.TRAN_MASTER SET TRAN_DATE = @TRANDATE
  137. -- WHERE FIELD1 = @controlNo
  138. -- AND tran_type = 'j'
  139. -- AND FIELD2 = 'Remittance Voucher'
  140. -- AND ISNULL(ACCT_TYPE_CODE, 'Send') = 'Paid'
  141. --END
  142. END
  143. ELSE IF @FLAG = 'sync-list'
  144. BEGIN
  145. IF ISNULL(@doSyncAll, 'N') = 'N'
  146. BEGIN
  147. IF @PROVIDER = 'gccremit'
  148. BEGIN
  149. SELECT TOP 75 id
  150. ,controlNo = DBO.DECRYPTDB(CONTROLNO)
  151. ,pSuperAgent
  152. ,PCOUNTRY
  153. ,partnerPin = DBO.DECRYPTDB(CONTROLNO2)
  154. ,createdDate
  155. ,paymentMethod
  156. FROM REMITTRAN(NOLOCK)
  157. WHERE 1 = 1
  158. AND CREATEDDATE >= '2020-02-15'
  159. AND payStatus = 'Post'
  160. AND TRANSTATUS = 'Payment'
  161. AND PSUPERAGENT = 394449
  162. ORDER BY ID DESC
  163. --AND id=dbo.fnaencryptstring('211517849')
  164. END
  165. ELSE IF @PROVIDER = 'transfast'
  166. BEGIN
  167. SELECT TOP 50 id
  168. ,controlNo = DBO.DECRYPTDB(CONTROLNO)
  169. ,pSuperAgent
  170. ,PCOUNTRY
  171. ,partnerPin = DBO.DECRYPTDB(CONTROLNO)
  172. ,createdDate
  173. ,paymentMethod
  174. FROM REMITTRAN(NOLOCK)
  175. WHERE 1 = 1
  176. AND CREATEDDATE >= '2020-02-15'
  177. --AND PCOUNTRY NOT IN ('NEPAL','VIETNAM')
  178. AND payStatus = 'Post'
  179. AND TRANSTATUS = 'Payment'
  180. AND PSUPERAGENT = 394130
  181. --AND ID NOT IN (SELECT TRAN_ID FROM NEW_PAID_TRACK_NEW)
  182. --AND id = 100466789
  183. --AND CONTROLNO = DBO.FNAENCRYPTSTRING('33TF001950961')
  184. ORDER BY ID DESC
  185. END
  186. ELSE IF @PROVIDER = 'gmenepal'
  187. BEGIN
  188. SELECT TOP 75 id
  189. ,controlNo = DBO.DECRYPTDB(CONTROLNO)
  190. ,pSuperAgent
  191. ,PCOUNTRY
  192. ,partnerPin = DBO.DECRYPTDB(CONTROLNO)
  193. ,createdDate
  194. ,paymentMethod
  195. FROM REMITTRAN(NOLOCK)
  196. WHERE 1 = 1
  197. AND CREATEDDATE >= '2020-02-15'
  198. AND payStatus = 'Post'
  199. AND TRANSTATUS = 'Payment'
  200. AND PSUPERAGENT = 394397
  201. ORDER BY ID DESC
  202. END
  203. END
  204. ELSE
  205. BEGIN
  206. IF @PROVIDER = 'transfast'
  207. BEGIN
  208. SELECT id
  209. ,controlNo = DBO.DECRYPTDB(CONTROLNO)
  210. ,pSuperAgent
  211. ,PCOUNTRY
  212. ,partnerPin = DBO.DECRYPTDB(CONTROLNO)
  213. ,paymentMethod
  214. FROM REMITTRAN(NOLOCK)
  215. WHERE 1 = 1
  216. AND CREATEDDATE >= '2020-03-31'
  217. AND payStatus = 'Post'
  218. AND TRANSTATUS = 'Payment'
  219. AND PSUPERAGENT = 394130
  220. END
  221. ELSE IF @PROVIDER = 'gmenepal'
  222. BEGIN
  223. SELECT id
  224. ,controlNo = DBO.DECRYPTDB(CONTROLNO)
  225. ,pSuperAgent
  226. ,PCOUNTRY
  227. ,partnerPin = DBO.DECRYPTDB(CONTROLNO)
  228. ,createdDate
  229. ,paymentMethod
  230. FROM REMITTRAN(NOLOCK)
  231. WHERE 1 = 1
  232. AND CREATEDDATE >= '2020-02-15'
  233. AND payStatus = 'Post'
  234. AND TRANSTATUS = 'Payment'
  235. AND PSUPERAGENT = 394397
  236. ORDER BY ID DESC
  237. END
  238. END
  239. END
  240. ELSE IF @Flag = 'GET-RELEASE-LIST'
  241. BEGIN
  242. SELECT ID
  243. ,CONTROLNO = DBO.DECRYPTDB(CONTROLNO)
  244. ,CONTROLNO2 = DBO.DECRYPTDB(CONTROLNO2)
  245. ,PAYMENTMETHOD
  246. ,PCOUNTRY
  247. ,CREATEDDATE
  248. ,pbankname
  249. ,pbank
  250. ,sSuperAgent = pSuperAgent
  251. ,[partner] = 'gccremit'
  252. ,pagentcomm
  253. FROM REMITTRAN(NOLOCK)
  254. WHERE 1 = 1
  255. AND CREATEDDATE >= '2020-03-31'
  256. AND payStatus = 'POST'
  257. AND tranStatus = 'Payment'
  258. AND PSUPERAGENT = 394449
  259. and downloadedDate IS NULL
  260. ORDER BY ID DESC
  261. END
  262. ELSE IF @Flag = 'INSTANT-PAID'
  263. BEGIN
  264. --UPDATE dbo.remitTran SET tranStatus = 'Paid',
  265. -- payStatus = 'Paid',
  266. -- paidBy = 'Scheduler',
  267. -- paidDate = GETDATE(),
  268. -- paidDateLocal = DATEADD(HOUR, -9, GETDATE()) -- GMT FORMAT
  269. --WHERE id = @TRAN_ID
  270. --SELECT @CONTROLNO = DBO.DECRYPTDB(CONTROLNO),
  271. -- @TRANDATE = PAIDDATE
  272. --FROM dbo.remitTran (NOLOCK)
  273. --WHERE id = @TRAN_ID
  274. --EXEC FASTMONEYPRO_ACCOUNT.DBO.PROC_TRANSACTION_PAID_VOUCHER_ENTRY @controlNo = @CONTROLNO, @tranDate = @TRANDATE
  275. UPDATE dbo.remitTran
  276. SET payStatus = 'POST'
  277. ,postedBy = 'Scheduler'
  278. ,postedDate = GETDATE()
  279. ,postedDateLocal = GETDATE()
  280. WHERE id = @TRAN_ID
  281. END
  282. --ELSE IF @Flag = 'INSTANT-PAID'
  283. --BEGIN
  284. -- --UPDATE dbo.remitTran SET tranStatus = 'Paid',
  285. -- UPDATE dbo.remitTran
  286. -- SET payStatus = 'POST'
  287. -- ,postedBy = 'Scheduler'
  288. -- ,postedDate = GETDATE()
  289. -- ,postedDateLocal = GETDATE()
  290. -- WHERE id = @TRAN_ID
  291. --END
  292. ELSE IF @Flag = 'add-api-comment'
  293. BEGIN
  294. SELECT @CONTROLNO = (CONTROLNO)
  295. ----,@TRANDATE = PAIDDATE
  296. FROM dbo.remitTran(NOLOCK)
  297. WHERE id = @TRAN_ID
  298. IF NOT EXISTS (
  299. SELECT *
  300. FROM tranModifyLog
  301. WHERE tranId = @TRAN_ID
  302. AND fieldName = 'STATUS_SYNC'
  303. AND ISNULL(oldValue,'') = @status
  304. )
  305. BEGIN
  306. INSERT INTO tranModifyLog (
  307. tranId
  308. ,controlNo
  309. ,message
  310. ,createdBy
  311. ,createdDate
  312. ,MsgType
  313. ,STATUS
  314. ,needToSync
  315. ,fieldName
  316. ,oldValue
  317. )
  318. SELECT @TRAN_ID
  319. ,@CONTROLNO
  320. ,@message
  321. ,ISNULL(@user,'syncApi')
  322. ,GETDATE()
  323. ,'C'
  324. ,'Not Resolved'
  325. ,1
  326. ,'STATUS_SYNC'
  327. ,@status
  328. END
  329. ELSE
  330. BEGIN
  331. UPDATE tranModifyLog set message= @message, createdDate= GETDATE() WHERE tranId = @TRAN_ID AND fieldName = 'STATUS_SYNC'
  332. AND ISNULL(oldValue,'') = @status
  333. END
  334. SELECT '0' ErrorCode, 'Comment Added' Msg, 0 Id
  335. END
  336. ELSE IF @Flag = 'INSTANT-PAID_V2'
  337. BEGIN
  338. IF EXISTS ( SELECT 'X' FROM remitTran where id = @TRAN_ID and tranStatus in ('Cancel','Paid'))
  339. BEGIN
  340. SELECT '0' ErrorCode, 'Invalid Transaction Status!' Msg, 0 Id
  341. RETURN
  342. END
  343. SELECT @customerId = customerId FROM tranSenders WHERE tranId = @TRAN_ID
  344. UPDATE dbo.remitTran SET tranStatus = 'Paid',
  345. payStatus = 'Paid',
  346. paidBy = 'Manual',
  347. paidDate =GETDATE(),
  348. paidDateLocal = DATEADD(HOUR, 1, GETDATE()) -- GMT FORMAT
  349. WHERE id = @TRAN_ID and (tranStatus <> 'CANCEL' OR payStatus <> 'PAID')
  350. EXEC proc_InsertRewardPoints @Flag = 'TRANSACTION', @CustomerId = @customerId, @TranId = @TRAN_ID
  351. SELECT '0' ErrorCode, 'Transaction paid successfully' Msg, 0 Id
  352. END
  353. END
  354. --CREATE TABLE NEW_PAID_TRACK
  355. --(
  356. -- TRAN_ID BIGINT
  357. -- ,PARTNER_NAME VARCHAR(50)
  358. -- ,PAIDDATE DATETIME
  359. -- ,PAIDDATE_LOCAL DATETIME
  360. -- ,ORIGINAL_DATE DATETIME
  361. --)