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.

249 lines
18 KiB

1 year ago
  1. USE [FastMoneyPro_Remit]
  2. GO
  3. /****** Object: StoredProcedure [dbo].[PROC_STATUS_SYNC_TP_API] Script Date: 9/27/2019 1:30:14 PM ******/
  4. SET ANSI_NULLS ON
  5. GO
  6. SET QUOTED_IDENTIFIER ON
  7. GO
  8. --EXEC PROC_STATUS_SYNC_TP_API @flag='mark-cancel',@PROVIDER = 'contact',@TRANID=100379466
  9. CREATE PROC [dbo].[PROC_STATUS_SYNC_TP_API]
  10. (
  11. @FLAG VARCHAR(30)
  12. ,@PROVIDER VARCHAR(50)
  13. ,@TRANID BIGINT = NULL
  14. ,@TranStatus VARCHAR(30) = NULL
  15. ,@PayStatus VARCHAR(30) = NULL
  16. ,@ControlNo VARCHAR(20) = NULL
  17. )
  18. AS
  19. SET NOCOUNT ON;
  20. SET XACT_ABORT ON;
  21. BEGIN
  22. DECLARE @AgentId BIGINT,@ref_num VARCHAR(20),@sRouteId varchar(5),@message varchar(500),@refund CHAR(1)
  23. DECLARE @tempTbl TABLE (errorcode VARCHAR(5), msg VARCHAR(MAX), id VARCHAR(50))
  24. SET @AgentId = CASE WHEN @PROVIDER ='wing' THEN '221226'
  25. WHEN @PROVIDER ='commercial' THEN '221271'
  26. WHEN @PROVIDER ='globalbank' THEN '1056'
  27. WHEN @PROVIDER ='contact' THEN '393228'
  28. WHEN @PROVIDER ='vcbr' THEN '393229'
  29. WHEN @PROVIDER ='donga' THEN '2090'
  30. WHEN @PROVIDER ='mtrade' THEN '2129'
  31. WHEN @PROVIDER ='bni' THEN '392227'
  32. WHEN @PROVIDER ='sbr' THEN '393862'
  33. WHEN @PROVIDER ='dbbl' THEN '393864'
  34. WHEN @PROVIDER ='Agrani' THEN '404526'
  35. WHEN @PROVIDER ='xpress' THEN '415208'
  36. WHEN @PROVIDER ='ria' THEN '393866'
  37. WHEN @PROVIDER ='islamibank' THEN '566853'
  38. END
  39. IF @FLAG = 'mark-paid'
  40. BEGIN
  41. UPDATE remitTran SET
  42. payStatus = 'Paid',
  43. tranStatus = 'Paid',
  44. paidBy = 'system',
  45. paidDate = GETDATE(),
  46. paidDateLocal = GETUTCDATE()
  47. WHERE id = @TRANID
  48. AND payStatus = 'Post' AND pAgent = @AgentId
  49. END
  50. ELSE IF @FLAG = 'mark-cancel'
  51. BEGIN
  52. SET @message = 'Transaction cancel at partner end'
  53. IF @PROVIDER = 'wing'
  54. BEGIN
  55. SELECT @controlNo = DBO.FNADecryptString(CONTROLNO),@sRouteId = sRouteId FROM remitTran(NOLOCK)
  56. WHERE id = @TRANID AND pAgent = @AgentId AND controlNo2 = DBO.FNAEncryptString(@ControlNo)
  57. SET @refund = 'D'
  58. END
  59. ELSE IF @PROVIDER IN('dbbl','xpress','ria','contact','islamibank')
  60. BEGIN
  61. SELECT @controlNo = DBO.FNADecryptString(CONTROLNO),@sRouteId = sRouteId FROM remitTran(NOLOCK)
  62. WHERE id = @TRANID AND pAgent = @AgentId
  63. ----AND controlNo = DBO.FNAEncryptString(@ControlNo)
  64. SET @refund = 'N'
  65. END
  66. ----ELSE IF @PROVIDER IN('contact')
  67. ----BEGIN
  68. ---- SELECT @controlNo = DBO.FNADecryptString(CONTROLNO),@sRouteId = sRouteId FROM remitTran(NOLOCK)
  69. ---- WHERE id = @TRANID AND pAgent = @AgentId
  70. ---- SET @refund = 'D'
  71. ----END
  72. --INSERT INTO @tempTbl(errorcode, msg, id)
  73. EXEC [proc_cancelTran] @flag = 'cancel',@controlNo = @controlNo,@user = 'system',@cancelReason = @message,@refund = @refund
  74. EXEC [proc_cancelTran] @flag = 'cancelReceipt',@tranId = @TRANID,@user = 'system'
  75. END
  76. ELSE IF @FLAG = 'sync-list'
  77. BEGIN
  78. IF @PROVIDER = 'mtrade'
  79. BEGIN
  80. SELECT TOP 50
  81. trn.id,[uploadLogId] = ISNULL(ContNo,uploadLogId),controlNo = dbo.FNADecryptString(trn.controlNo)
  82. FROM remitTran trn WITH(NOLOCK)
  83. WHERE
  84. trn.approvedBy IS NOT NULL AND trn.payStatus ='Post'
  85. AND tranStatus = 'payment' AND trn.pAgent = @AgentId
  86. AND Approveddate < dateadd(day,-1,getdate())
  87. ORDER BY NEWID()
  88. END
  89. ELSE IF @PROVIDER = 'donga'
  90. BEGIN
  91. SELECT TOP 30 controlNo = dbo.FNADecryptString(controlNo),id
  92. FROM remitTran (NOLOCK)
  93. WHERE
  94. payStatus = 'Post' AND tranStatus = 'Payment'
  95. AND pCountry = 'VIETNAM' AND pAgent = @AgentId
  96. AND Approveddate < dateadd(hour,-2,getdate())
  97. ORDER BY NEWID()
  98. END
  99. ELSE IF @PROVIDER = 'wing'
  100. BEGIN
  101. SELECT TOP 1 controlNo = errorcode,id,paymentMethod = errorcode from @tempTbl
  102. --SELECT TOP 100 controlNo = ContNo,id,paymentMethod
  103. --FROM remitTran (NOLOCK)
  104. --WHERE payStatus = 'Post' AND tranStatus = 'Payment'
  105. --AND pCountry = 'Cambodia' AND pAgent = @AgentId
  106. --AND Approveddate < dateadd(hour,-4,getdate())
  107. --ORDER BY NEWID()
  108. END
  109. ELSE IF @PROVIDER = 'commercial'
  110. BEGIN
  111. SELECT TOP 1 controlNo = errorcode,id,paymentMethod = errorcode from @tempTbl
  112. --SELECT TOP 50 controlNo = dbo.FNADecryptString(controlNo) ,id,paymentMethod
  113. --FROM remitTran (NOLOCK)
  114. --WHERE
  115. --payStatus = 'Post' AND tranStatus = 'Payment'
  116. --AND pCountry = 'Sri Lanka' AND pAgent = @AgentId
  117. --AND Approveddate < DATEADD(HOUR,-2,GETDATE())
  118. --ORDER BY NEWID()
  119. END
  120. ELSE IF @PROVIDER = 'bni'
  121. BEGIN
  122. SELECT TOP 30
  123. trn.id, controlNo = dbo.FNADecryptString(trn.controlNo)
  124. , trxDate = FORMAT(approvedDate,'yyyy-MM-ddTHH:mm:ss')
  125. FROM remitTran trn WITH(NOLOCK)
  126. WHERE trn.approvedBy IS NOT NULL AND trn.payStatus ='Post'
  127. AND tranStatus = 'Payment' AND trn.pAgent = @AgentId
  128. AND pCountry = 'Indonesia'
  129. ORDER BY NEWID()
  130. END
  131. ELSE IF @PROVIDER = 'contact'
  132. BEGIN
  133. SELECT TOP 50
  134. trn.id, controlNo = dbo.FNADecryptString(trn.controlNo)
  135. ,DocId = ContNo
  136. ,trxDate = CAST(CAST(trn.approvedDate AS DATE) AS VARCHAR) +'T'+ CAST(CAST(trn.approvedDate AS TIME) AS VARCHAR(8))
  137. FROM remitTran trn WITH(NOLOCK)
  138. WHERE trn.approvedBy IS NOT NULL AND trn.payStatus ='Post'
  139. AND tranStatus IN( 'Payment','CancelRequested') AND trn.pAgent = @AgentId
  140. AND Approveddate < DATEADD(HOUR,-2,GETDATE())
  141. ORDER BY NEWID()
  142. END
  143. ELSE IF @PROVIDER = 'vcbr'
  144. BEGIN
  145. SELECT TOP 20 id,trn.id AS TxId, controlNo = dbo.FNADecryptString(trn.controlNo)
  146. FROM remitTran trn WITH(NOLOCK)
  147. WHERE trn.approvedBy IS NOT NULL AND trn.payStatus ='Post'
  148. AND tranStatus = 'Payment' AND trn.pAgent = @AgentId
  149. AND Approveddate < DATEADD(HOUR,-2,GETDATE())
  150. ORDER BY NEWID()
  151. END
  152. ELSE IF @PROVIDER = 'sbr'
  153. BEGIN
  154. SELECT TOP 20
  155. id,trn.id AS TxId, controlNo = dbo.FNADecryptString(trn.controlNo), DocId=dbo.FNADecryptString(trn.controlNo2)
  156. ,trxDate = CAST(CAST(trn.approvedDate AS DATE) AS VARCHAR) +'T'+ CAST(CAST(trn.approvedDate AS TIME) AS VARCHAR(8))
  157. FROM remitTran trn WITH(NOLOCK)
  158. WHERE trn.approvedBy IS NOT NULL AND trn.payStatus ='Post'
  159. AND tranStatus = 'Payment' AND trn.pAgent = @AgentId
  160. AND Approveddate < DATEADD(HOUR,-2,GETDATE())
  161. ORDER BY NEWID()
  162. END
  163. ELSE IF @PROVIDER='dbbl'
  164. BEGIN
  165. SELECT TOP 30
  166. trn.id,
  167. partnerTxnId = dbo.FNADecryptString(trn.controlNo)
  168. FROM remitTran trn WITH(NOLOCK)
  169. WHERE trn.approvedBy IS NOT NULL AND trn.payStatus ='Post'
  170. AND tranStatus = 'Payment' AND trn.pAgent = @AgentId
  171. AND Approveddate < DATEADD(HOUR,-2,GETDATE())
  172. ORDER BY NEWID()
  173. END
  174. ELSE IF @PROVIDER='Agrani'
  175. BEGIN
  176. SELECT TOP 30
  177. trn.id AS TranId,dbo.FNADecryptString(trn.controlNo) AS ControlNo
  178. FROM remitTran trn WITH(NOLOCK)
  179. WHERE trn.approvedBy IS NOT NULL AND trn.payStatus = 'Post'
  180. AND tranStatus = 'Payment' AND trn.pAgent = @AgentId
  181. AND Approveddate < DATEADD(HOUR,-2,GETDATE())
  182. ORDER BY NEWID()
  183. END
  184. ELSE IF @PROVIDER='xpress'
  185. BEGIN
  186. SELECT TOP 120
  187. id,
  188. xpin = dbo.FNADecryptString(trn.controlNo)
  189. FROM remitTran trn WITH(NOLOCK)
  190. WHERE trn.approvedBy IS NOT NULL AND trn.payStatus ='Post'
  191. AND tranStatus IN('Payment','CancelRequest') AND trn.pAgent = @AgentId
  192. AND Approveddate < DATEADD(HOUR,-2,GETDATE())
  193. ORDER BY NEWID()
  194. END
  195. ELSE IF @PROVIDER='ria'
  196. BEGIN
  197. SELECT TOP 50
  198. id,
  199. TransactionID = dbo.FNADecryptString(trn.controlNo2)
  200. FROM remitTran trn WITH(NOLOCK)
  201. WHERE trn.approvedBy IS NOT NULL AND trn.payStatus ='Post'
  202. AND tranStatus IN( 'Payment','CancelRequested','CancelRequest') AND trn.pAgent = @AgentId
  203. AND Approveddate < DATEADD(HOUR,-2,GETDATE())
  204. ORDER BY NEWID()
  205. END
  206. END
  207. ELSE IF @FLAG='cancel-requested-list'
  208. BEGIN
  209. SELECT
  210. TransactionId = RT.id
  211. ,GmeControlNo = CASE WHEN RT.pAgent =393866 THEN dbo.FNADecryptString(RT.controlNo2) ELSE dbo.FNADecryptString(RT.controlNo) END
  212. ,PartnerPin = rt.ContNo----dbo.FNADecryptString(RT.controlNo2)
  213. ,DocId = rt.ContNo
  214. ,Provider = CASE WHEN RT.pAgent = 393228 THEN 'contact'
  215. WHEN RT.pAgent = 393864 THEN 'dbbl'
  216. WHEN RT.pAgent = 415208 THEN 'xpress'
  217. WHEN RT.pAgent = 393866 THEN 'ria'
  218. ELSE 'other' END
  219. ,RequestFor = CASE WHEN RT.pAgent IN(393228,393866) THEN 'CancelRequest' WHEN RT.pAgent IN(393864,415208) THEN 'Cancel' ELSE 'other' END
  220. ,cancelReason = ISNULL(rt.cancelReason,'Customer requested to cancel the transaction.')
  221. FROM dbo.remitTran AS RT(NOLOCK)
  222. WHERE RT.tranStatus = 'CancelRequest'
  223. AND RT.payStatus = 'Post'
  224. and 1=2
  225. END
  226. ELSE IF @FLAG='update-status' ----'update-cancel-requested'
  227. BEGIN
  228. UPDATE dbo.remitTran SET
  229. tranStatus = ' CancelRequested'
  230. ,cancelRequestBy = 'system'
  231. ,cancelRequestDate = GETDATE()
  232. ,cancelReason = CASE WHEN cancelReason IS NULL THEN 'Customer requested to cancel the transaction.' ELSE cancelReason END
  233. WHERE id = @TRANID AND pAgent IN(393228,393866)
  234. SELECT '0' ErrorCode,'Cancel Requested Successfully' Msg, NULL Id
  235. END
  236. END
  237. GO