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.

399 lines
24 KiB

1 year ago
  1. USE [FastMoneyPro_Remit]
  2. GO
  3. /****** Object: StoredProcedure [dbo].[INBOUND_PROC_TRANSACTION_VIEW] Script Date: 9/27/2019 1:30:13 PM ******/
  4. SET ANSI_NULLS ON
  5. GO
  6. SET QUOTED_IDENTIFIER ON
  7. GO
  8. CREATE PROC [dbo].[INBOUND_PROC_TRANSACTION_VIEW] (
  9. @flag VARCHAR(50)
  10. ,@user VARCHAR(30) = NULL
  11. ,@controlNo VARCHAR(30) = NULL
  12. ,@tranId BIGINT = NULL
  13. ,@message VARCHAR(500) = NULL
  14. ,@messageComplaince VARCHAR(500) = NULL
  15. ,@messageOFAC VARCHAR(500) = NULL
  16. ,@lockMode CHAR(1) = NULL
  17. ,@viewType VARCHAR(50) = NULL
  18. ,@viewMsg VARCHAR(MAX) = NULL
  19. ,@branch INT = NULL
  20. ,@sortBy VARCHAR(50) = NULL
  21. ,@sortOrder VARCHAR(5) = NULL
  22. ,@pageSize INT = NULL
  23. ,@pageNumber INT = NULL
  24. ,@ip VARCHAR(MAX) = NULL
  25. ,@dcInfo VARCHAR(MAX) = NULL
  26. )
  27. AS
  28. DECLARE @controlNoEncrypted VARCHAR(100)
  29. ,@tranStatus VARCHAR(50)
  30. SET NOCOUNT ON;
  31. SET XACT_ABORT ON;
  32. IF @controlNo IS NOT NULL
  33. BEGIN
  34. SET @controlNo = UPPER(@controlNo)
  35. SELECT @controlNoEncrypted = dbo.FNAEncryptString(@controlNo)
  36. SELECT @tranId = id, @tranStatus = tranStatus FROM dbo.INBOUND_VIEW_REMIT_TRAN WITH(NOLOCK) WHERE controlNo = @controlNoEncrypted
  37. END
  38. ELSE IF @tranId IS NOT NULL
  39. BEGIN
  40. SELECT @controlNoEncrypted = controlNo, @tranStatus = tranStatus ,@controlNo = dbo.FNADecryptString(controlNo)
  41. FROM INBOUND_VIEW_REMIT_TRAN WITH(NOLOCK) WHERE id = @tranId
  42. END
  43. IF @flag = 's'
  44. BEGIN
  45. EXEC proc_tranViewHistory 'i', @user, @tranId, @controlNo, NULL,@viewType,@viewMsg
  46. --Transaction Details
  47. SELECT
  48. tranId = trn.id
  49. ,controlNo = dbo.FNADecryptString(trn.controlNo)
  50. --Sender Information
  51. ,sCustomerId = sen.customerId
  52. ,senderName = sen.firstName + ISNULL( ' ' + sen.middleName, '') + ISNULL( ' ' + sen.lastName, '')
  53. ,sCity = isnull(sen.city,'')
  54. ,sAddress = sen.address
  55. ,sContactNo = sen.mobile
  56. ,sIdType = ISNULL(sdv.detailTitle,sen.idType)
  57. ,sIdNo = sen.idNumber
  58. ,sValidDate = sen.validDate
  59. ,sEmail = sen.email
  60. ,extCustomerId = ''
  61. --Receiver Information
  62. ,rMemId = ''
  63. ,rCustomerId = rec.customerId
  64. ,receiverName = rec.firstName + ISNULL( ' ' + rec.middleName, '') + ISNULL( ' ' + rec.lastName, '')
  65. ,rCountryName = rec.nativeCountry
  66. ,rCity = isnull(rec.city,'')
  67. ,rAddress = rec.address
  68. ,rContactNo = rec.mobile
  69. ,rIdType = rec.idType
  70. ,rIdNo = rec.idNumber
  71. --Sending Agent Information
  72. ,sAgentName = trn.sAgentName
  73. ,sAgentCountry = sa.agentCountry
  74. ,sCountryName = trn.sCountry
  75. ,sAgentEmail = ISNULL(sa.agentEmail1,sa.agentEmail2)
  76. --Payout Agent Information
  77. ,pAgentName =trn.pAgentName
  78. ,pAgentCountry = trn.pCountry
  79. ,trn.tAmt
  80. ,trn.serviceCharge
  81. ,handlingFee = 0
  82. ,sAgentComm = 0
  83. ,sAgentCommCurrency ='USD'
  84. ,pAgentComm = ISNULL(pAgentComm,0)
  85. ,pAgentCommCurrency = ISNULL(pAgentCommCurrency,0)
  86. ,exRate = 0
  87. ,cAmt= ISNULL(trn.tAmt,0) + ISNULL(trn.serviceCharge,0)
  88. ,pAmt = trn.pAmt
  89. ,relationship = ISNULL(sdv1.detailTitle, ' ')
  90. ,purpose = ISNULL(trn.purposeOfRemit, '-')
  91. ,sourceOfFund = ISNULL(trn.sourceOfFund, '-')
  92. ,collMode = ''
  93. ,trn.collCurr
  94. ,paymentMethod = CASE WHEN trn.paymentMethod = '1' THEN 'CASH PAYMENT'
  95. WHEN trn.paymentMethod = '2' THEN 'BANK DEPOSIT'
  96. ELSE '' END
  97. ,trn.payoutCurr
  98. ,trn.chargeCurrency
  99. ,accountNo = trn.accountNo
  100. ,BankName = trn.pBankName
  101. ,trn.payStatus
  102. ,payoutMsg = ''
  103. ,trn.createdBy
  104. ,trn.createdDate
  105. ,approvedBy = au.userName
  106. ,trn.approvedDate
  107. ,trn.paidBy
  108. ,trn.paidDate
  109. ,trn.cancelRequestBy
  110. ,trn.cancelRequestDate
  111. ,trn.cancelApprovedBy
  112. ,trn.cancelApprovedDate
  113. ,lockedBy= '' --trn.lockedBy
  114. ,lockedDate='' --trn.lockedDate
  115. ,payTokenId='' --trn.payTokenId
  116. ,trn.tranStatus
  117. ,tranType='' --trn.tranType
  118. ,holdTranId=''--trn.holdTranId
  119. ,sTelNo = ''
  120. ,rTelNo = ''
  121. ,CashOrBank = CASE WHEN UPPER(trn.paymentMethod) = '2' THEN 'BANK'
  122. ELSE 'CASH' END
  123. ,purposeOfRemit = ISNULL(trn.purposeOfRemit, '-')
  124. ,custRate = 0
  125. ,settRate = 0
  126. ,nativeCountry = sen.nativeCountry
  127. FROM dbo.INBOUND_VIEW_REMIT_TRAN trn WITH(NOLOCK)
  128. LEFT JOIN dbo.INBOUND_VIEW_TRAN_SENDERS sen WITH(NOLOCK) ON trn.id = sen.tranId
  129. LEFT JOIN dbo.INBOUND_VIEW_TRAN_RECEIVERS rec WITH(NOLOCK) ON trn.id = rec.tranId
  130. LEFT JOIN agentMaster sa WITH(NOLOCK) ON trn.sAgent = sa.agentId
  131. LEFT JOIN dbo.applicationUsers au WITH(NOLOCK) ON trn.approvedBy = au.agentCode
  132. LEFT JOIN staticDataValue sdv WITH(NOLOCK) ON sen.idType=CAST(sdv.valueId AS VARCHAR)
  133. LEFT JOIN staticDataValue sdv1 WITH(NOLOCK) ON sdv1.valueId =trn.relWithSender AND sdv1.typeID='2100'
  134. WHERE
  135. trn.controlNo = @controlNoEncrypted OR
  136. trn.id = @tranId
  137. --## Log Details
  138. SELECT
  139. id
  140. ,[MESSAGE]
  141. ,msgType
  142. ,itt.createdBy
  143. ,itt.createdDate
  144. ,fileType = ''
  145. FROM INBOUND_TROUBLE_TICKET itt WITH(NOLOCK)
  146. LEFT JOIN applicationUsers au WITH(NOLOCK) ON itt.createdBy = au.userName
  147. WHERE itt.controlNo = @controlNoEncrypted OR tranId = @tranId
  148. ORDER BY itt.createdDate DESC
  149. END
  150. IF @flag = 'showLog' --Add Comment
  151. BEGIN
  152. --Log Details---------------------------------------------------------------------------
  153. SELECT
  154. rowId= Id
  155. ,message
  156. ,trn.createdBy
  157. ,trn.createdDate
  158. FROM INBOUND_TROUBLE_TICKET trn WITH(NOLOCK)
  159. LEFT JOIN applicationUsers au WITH(NOLOCK) ON trn.createdBy = au.userName
  160. WHERE trn.tranId = @tranId
  161. ORDER BY trn.createdDate DESC
  162. END
  163. ELSE IF @flag='OFAC'
  164. BEGIN
  165. SELECT @controlNoEncrypted = dbo.FNAEncryptString(@controlNo)
  166. IF @controlNoEncrypted IS NOT NULL
  167. SELECT @tranId = id FROM dbo.INBOUND_VIEW_REMIT_TRAN WITH(NOLOCK) WHERE controlNo = @controlNoEncrypted
  168. IF OBJECT_ID('tempdb..#tempMaster') IS NOT NULL
  169. DROP TABLE #tempMaster
  170. IF OBJECT_ID('tempdb..#tempDataTable') IS NOT NULL
  171. DROP TABLE #tempDataTable
  172. CREATE TABLE #tempDataTable
  173. (
  174. DATA VARCHAR(MAX) NULL
  175. )
  176. DECLARE @ofacKeyIds VARCHAR(MAX)
  177. SELECT @ofacKeyIds=blackListId FROM dbo.INBOUND_TRAN_OFAC
  178. WHERE TranId = @tranId
  179. SELECT distinct A.val ofacKeyId
  180. INTO #tempMaster
  181. FROM
  182. (
  183. SELECT * FROM dbo.SplitXML(',',@ofacKeyIds)
  184. )A
  185. INNER JOIN
  186. (
  187. SELECT ofacKey FROM blacklistHistory WITH(NOLOCK)
  188. )B ON A.val=B.ofacKey
  189. ALTER TABLE #tempMaster ADD ROWID INT IDENTITY(1,1)
  190. DECLARE @TNA_ID AS INT
  191. ,@MAX_ROW_ID AS INT
  192. ,@ROW_ID AS INT=1
  193. ,@ofacKeyId VARCHAR(100)
  194. ,@SDN VARCHAR(MAX)=''
  195. ,@ADDRESS VARCHAR(MAX)=''
  196. ,@REMARKS AS VARCHAR(MAX)=''
  197. ,@ALT AS VARCHAR(MAX)=''
  198. ,@DATA AS VARCHAR(MAX)=''
  199. ,@DATA_SOURCE AS VARCHAR(200)=''
  200. SELECT @MAX_ROW_ID=MAX(ROWID) FROM #tempMaster
  201. WHILE @MAX_ROW_ID >= @ROW_ID
  202. BEGIN
  203. SELECT @ofacKeyId=ofacKeyId FROM #tempMaster WHERE ROWID=@ROW_ID
  204. SELECT @SDN='<b>'+ISNULL(entNum,'')+'</b>, <b>Name:</b> '+ ISNULL(name,''),@DATA_SOURCE='<b>Data Source:</b> '+ISNULL(dataSource,'')
  205. FROM blacklistHistory with(nolock) WHERE ofacKey = @ofacKeyId AND vesselType='sdn'
  206. SELECT @ADDRESS=ISNULL(address,'')+', '+ISNULL(city,'')+', '+ISNULL(STATE,'')+', '+ISNULL(zip,'')+', '+ISNULL(country,'')
  207. FROM blacklistHistory with(nolock) WHERE ofacKey = @ofacKeyId AND vesselType='add'
  208. SELECT @ALT = COALESCE(@ALT + ', ', '') +CAST(ISNULL(NAME,'') AS VARCHAR(MAX))
  209. FROM blacklistHistory with(nolock) WHERE ofacKey = @ofacKeyId AND vesselType IN ('alt','aka')
  210. SELECT @REMARKS=ISNULL(remarks,'')+isnull('<br/> ID Type:'+idType,'')+isnull(':'+idNumber,'')+isnull('|DOB:'+dob,'')+isnull(' |Father Name: '+FatherName,'')
  211. FROM blacklistHistory with(nolock) WHERE ofacKey = @ofacKeyId AND vesselType='sdn'
  212. SET @SDN=RTRIM(LTRIM(@SDN))
  213. SET @ADDRESS=RTRIM(LTRIM(@ADDRESS))
  214. SET @ALT=RTRIM(LTRIM(@ALT))
  215. SET @REMARKS=RTRIM(LTRIM(@REMARKS))
  216. SET @SDN=REPLACE(@SDN,', ,','')
  217. SET @ADDRESS=REPLACE(@ADDRESS,', ,','')
  218. SET @ALT=REPLACE(@ALT,', ,','')
  219. SET @REMARKS=REPLACE(@REMARKS,', ,','')
  220. SET @SDN=REPLACE(@SDN,'-0-','')
  221. SET @ADDRESS=REPLACE(@ADDRESS,'-0-','')
  222. SET @ALT=REPLACE(@ALT,'-0-','')
  223. SET @REMARKS=REPLACE(@REMARKS,'-0-','')
  224. SET @SDN=REPLACE(@SDN,',,','')
  225. SET @ADDRESS=REPLACE(@ADDRESS,',,','')
  226. SET @ALT=REPLACE(@ALT,',,','')
  227. SET @REMARKS=REPLACE(@REMARKS,',,','')
  228. IF @DATA_SOURCE IS NOT NULL AND @DATA_SOURCE<>''
  229. SET @DATA=@DATA_SOURCE
  230. IF @SDN IS NOT NULL AND @SDN<>''
  231. SET @DATA=@DATA+'<BR>'+@SDN
  232. IF @ADDRESS IS NOT NULL AND @ADDRESS<>''
  233. SET @DATA=@DATA+'<BR><b>Address: </b>'+@ADDRESS
  234. IF @ALT IS NOT NULL AND @ALT<>'' AND @ALT<>' '
  235. SET @DATA=@DATA+'<BR>'+'<b>a.k.a :</b>'+@ALT+''
  236. IF @REMARKS IS NOT NULL AND @REMARKS<>''
  237. SET @DATA=@DATA+'<BR><b>Other Info :</b>'+@REMARKS
  238. IF @DATA IS NOT NULL OR @DATA <>''
  239. BEGIN
  240. INSERT INTO #tempDataTable
  241. SELECT REPLACE(@DATA,'<BR><BR>','')
  242. END
  243. SET @ROW_ID=@ROW_ID+1
  244. END
  245. ALTER TABLE #tempDataTable ADD ROWID INT IDENTITY(1,1)
  246. SELECT ROWID [S.N.],DATA [Remarks] FROM #tempDataTable
  247. END
  248. IF @flag='Compliance'
  249. BEGIN
  250. SELECT @tranId = id FROM dbo.INBOUND_VIEW_REMIT_TRAN WITH(NOLOCK) WHERE controlNo = dbo.FNAEncryptString(@controlNo)
  251. SELECT
  252. rowId=Id
  253. ,[S.N.] = ROW_NUMBER()OVER(ORDER BY ID)
  254. ,[Remarks] = rtc.complianceReason
  255. ,[Matched TRAN ID] = @controlNo
  256. FROM dbo.INBOUND_COMPLIANCE_LOG rtc WITH(NOLOCK)
  257. WHERE holdTranId = @tranId
  258. END
  259. ELSE IF @flag = 'saveComplainceRmks' --Add Approve Remarks
  260. BEGIN
  261. IF EXISTS (SELECT 1 FROM INBOUND_TROUBLE_TICKET WHERE tranId =@tranId AND status='RESOLVED')
  262. BEGIN
  263. EXEC proc_errorHandler 1, 'Transaction has been resolved already', @tranId
  264. RETURN
  265. END
  266. DECLARE @troubleTicketmsg varchar(MAX),@msgType VARCHAR(30)
  267. BEGIN TRANSACTION
  268. IF (@messageComplaince IS NOT NULL AND @messageOFAC IS NOT NULL)
  269. BEGIN
  270. SET @troubleTicketmsg = @messageComplaince + '/' + @messageOFAC
  271. SET @msgType = 'C/O'
  272. END
  273. ELSE IF (@messageComplaince IS NOT NULL AND @messageOFAC IS NULL)
  274. BEGIN
  275. SET @troubleTicketmsg = @messageComplaince
  276. SET @msgType = 'COMPLAINCE'
  277. END
  278. ELSE IF (@messageComplaince IS NULL AND @messageOFAC IS NOT NULL)
  279. BEGIN
  280. SET @troubleTicketmsg = @messageOFAC
  281. SET @msgType = 'OFAC'
  282. END
  283. INSERT INTO dbo.INBOUND_TROUBLE_TICKET
  284. ( tranId ,controlNo ,message ,msgType ,status ,createdBy ,createdDate)
  285. VALUES ( @tranId,@controlNo,ISNULL(@troubleTicketmsg,''),@msgType ,'RESOLVED' ,@user,GETDATE() )
  286. UPDATE INBOUND_TRAN_OFAC SET
  287. approvedRemarks = @messageOFAC
  288. ,approvedBy = @user
  289. ,approvedDate = GETDATE()
  290. WHERE TranId = @tranId AND approvedBy IS NULL
  291. UPDATE dbo.INBOUND_REMIT_TRAN SET tranStatus= 'PAYMENT' WHERE id = @tranId
  292. COMMIT TRANSACTION
  293. EXEC proc_errorHandler 0, 'Release remarks has been saved successfully.', @tranId
  294. END
  295. ELSE IF @flag = 'ac' --Add Comment
  296. BEGIN
  297. IF @message IS NULL
  298. BEGIN
  299. EXEC proc_errorHandler 1, 'Message can not be blank.', @tranId
  300. RETURN
  301. END
  302. IF @user IS NULL
  303. BEGIN
  304. EXEC proc_errorHandler 1, 'Your session has expired. Cannot add complain.', NULL
  305. RETURN
  306. END
  307. IF @tranId IS NULL
  308. BEGIN
  309. EXEC proc_errorHandler 1, 'Transaction No can not be blank.', @tranId
  310. RETURN
  311. END
  312. INSERT INTO dbo.INBOUND_TROUBLE_TICKET
  313. ( tranId , controlNo , message , msgType , status , createdBy , createdDate)
  314. VALUES ( @tranId ,@controlNo ,@message ,'TROUBLE' ,'NOT RESOLVED' ,@user,GETDATE() )
  315. SELECT '0' AS errorCode,'Comments has been added successfully.' AS Msg,@tranId AS Id,'Inbound' AS Extra ,'' AS Extra2
  316. END
  317. ELSE IF @flag = 'chkFlagOFAC'
  318. BEGIN
  319. SELECT CASE WHEN approvedDate IS NULL THEN 'N' ELSE 'Y' END AS Compliance_FLAG
  320. FROM dbo.INBOUND_TRAN_OFAC WITH(NOLOCK) WHERE TranId = @tranId
  321. END
  322. ELSE IF @flag = 'chkFlagCOMPLAINCE'
  323. BEGIN
  324. SELECT CASE WHEN status='RESOLVED' THEN 'Y' ELSE 'N' END AS Compliance_FLAG
  325. FROM dbo.INBOUND_TROUBLE_TICKET WITH(NOLOCK) WHERE TranId = @tranId
  326. END
  327. GO