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.

314 lines
11 KiB

1 year ago
  1. USE [FastMoneyPro_Remit]
  2. GO
  3. /****** Object: StoredProcedure [dbo].[proc_modifyTranRequest] Script Date: 7/4/2019 11:35:48 AM ******/
  4. DROP PROCEDURE [dbo].[proc_modifyTranRequest]
  5. GO
  6. /****** Object: StoredProcedure [dbo].[proc_modifyTranRequest] Script Date: 7/4/2019 11:35:48 AM ******/
  7. SET ANSI_NULLS ON
  8. GO
  9. SET QUOTED_IDENTIFIER ON
  10. GO
  11. CREATE PROC [dbo].[proc_modifyTranRequest]
  12. @flag VARCHAR(50) = NULL
  13. ,@controlNo VARCHAR(20) = NULL
  14. ,@rowId INT = NULL
  15. ,@newValue VARCHAR(500) = NULL
  16. ,@oldValue VARCHAR(500) = NULL
  17. ,@changeType VARCHAR(200) = NULL
  18. ,@user VARCHAR(100) = NULL
  19. ,@ScChargeMod MONEY = NULL
  20. ,@createdBy VARCHAR(100) = NULL
  21. ,@fieldValue VARCHAR(MAX) = NULL
  22. ,@fieldName VARCHAR(MAX) = NULL
  23. ,@sortBy VARCHAR(50) = NULL
  24. ,@sortOrder VARCHAR(5) = NULL
  25. ,@pageSize INT = NULL
  26. ,@pageNumber INT = NULL
  27. ,@branchId INT = NULL
  28. ,@tranId BIGINT = NULL
  29. AS
  30. BEGIN TRY
  31. DECLARE
  32. @table VARCHAR(MAX)
  33. ,@sql_filter VARCHAR(200)
  34. ,@select_field_list VARCHAR(MAX)
  35. ,@encryptedControlNo VARCHAR(100)
  36. IF @controlNo IS NOT NULL
  37. SELECT @encryptedControlNo = dbo.FNAEncryptString(@controlNo)
  38. IF @flag='i' -->> TXN modification Rquest part
  39. BEGIN
  40. IF (@fieldName ='accountNo' AND LEN(@newValue) > 30)
  41. BEGIN
  42. EXEC proc_errorHandler 0,'Account number field is out of range. Max Size 20 characters.',NULL
  43. RETURN
  44. END
  45. IF (@fieldName ='senderName' AND LEN(@newValue) > 100)
  46. BEGIN
  47. EXEC proc_errorHandler 0,'Sender name field is out of range. Max Size 100 characters.',NULL
  48. RETURN
  49. END
  50. IF (@fieldName ='receiverName' AND LEN(@newValue) > 100)
  51. BEGIN
  52. EXEC proc_errorHandler 0,'Receiver name field is out of range. Max Size 100 characters.',NULL
  53. RETURN
  54. END
  55. IF (@fieldName ='rAddress' AND LEN(@newValue) > 100)
  56. BEGIN
  57. EXEC proc_errorHandler 0,'Receiver address field is out of range. Max Size 100 characters.',NULL
  58. RETURN
  59. END
  60. IF (@fieldName ='rContactNo' AND LEN(@newValue) > 20)
  61. BEGIN
  62. EXEC proc_errorHandler 0,'Receiver contact field is out of range. Max Size 20 characters.',NULL
  63. RETURN
  64. END
  65. IF (@fieldName ='rIdNo' AND LEN(@newValue) > 50)
  66. BEGIN
  67. EXEC proc_errorHandler 0,'Receiver id number field is out of range. Max Size 50 characters.',NULL
  68. RETURN
  69. END
  70. IF EXISTS(
  71. SELECT 'X' FROM tranModifyLog
  72. WHERE fieldName = @fieldName
  73. AND [status] = 'Request'
  74. AND controlNo=dbo.FNAEncryptString(@controlNo)
  75. )
  76. BEGIN
  77. EXEC proc_errorHandler 0,'Cannot Insert Duplicate Request',NULL
  78. RETURN
  79. END
  80. ----## direct update the temp transactions modification details
  81. IF EXISTS(SELECT 'A' FROM remitTranTemp(nolock) where controlNo=dbo.FNAEncryptString(@controlNo))
  82. BEGIN
  83. SELECT @tranId = rt.id, @oldValue = CASE
  84. WHEN @fieldName ='rIdType' THEN ISNULL(c.idType, c.idType2)
  85. WHEN @fieldName ='rAddress' THEN c.address
  86. WHEN @fieldName ='rContactNo' THEN c.mobile
  87. WHEN @fieldName ='rIdNo' THEN c.idNumber
  88. WHEN @fieldName ='accountNo' THEN rt.accountNo
  89. WHEN @fieldName ='senderName' THEN b.firstName + ISNULL(' ' + b.middleName, '') + ISNULL(' ' + b.lastName1, '') + ISNULL(' ' + b.lastName2, '')
  90. WHEN @fieldName ='receiverName' THEN c.firstName + ISNULL(' ' + c.middleName, '') + ISNULL(' ' + c.lastName1, '') + ISNULL(' ' + c.lastName2, '')
  91. END
  92. FROM remitTranTemp rt WITH(NOLOCK)
  93. INNER JOIN tranSendersTemp b WITH(NOLOCK) ON rt.id=b.tranId
  94. INNER JOIN tranReceiversTemp c WITH(NOLOCK) ON rt.id=c.tranId
  95. WHERE rt.controlNo=dbo.FNAEncryptString(@controlNo)
  96. IF @fieldName = 'rIdType'
  97. UPDATE tranReceiversTemp SET IdType = @fieldValue WHERE tranId = @tranId
  98. ELSE IF @fieldName = 'rAddress'
  99. UPDATE tranReceiversTemp SET [address] = @fieldValue WHERE tranId = @tranId
  100. ELSE IF @fieldName = 'rContactNo'
  101. UPDATE tranReceiversTemp SET mobile = @fieldValue,homePhone = CASE WHEN homePhone IS NULL THEN @fieldValue ELSE homePhone END WHERE tranId = @tranId
  102. ELSE IF @fieldName = 'rIdNo'
  103. UPDATE tranReceiversTemp SET idNumber = @fieldValue WHERE tranId = @tranId
  104. ELSE IF @fieldName = 'receiverName'
  105. UPDATE tranReceiversTemp SET firstName = @fieldValue WHERE tranId = @tranId
  106. ELSE IF @fieldName = 'accountNo'
  107. UPDATE remitTranTemp SET accountNo = @fieldValue WHERE id = @tranId
  108. ELSE IF @fieldName = 'senderName'
  109. UPDATE tranSendersTemp SET firstName = @fieldValue WHERE tranId = @tranId
  110. INSERT INTO tranModifyLog(tranId,controlNo, MESSAGE, createdBy, createdDate,status ,fieldName , fieldValue,msgType,oldValue
  111. ,resolvedBy,resolvedDate)
  112. SELECT @tranId,dbo.FNAEncryptString(@controlNo),ISNULL(@changeType, 'NULL')+' [<b>'+isnull(@oldValue,'')+'</b>] has been requested to change by [<b>' + ISNULL(@newValue, 'NULL')+'</b>]', @user, GETDATE(),'approved',@fieldName,@fieldValue,'MODIFY',@oldValue
  113. ,@user,getdate()
  114. -->> ## SELECTING REQUESTED LIST
  115. SELECT message,ScChargeMod,rowId FROM tranModifyLog
  116. WHERE [status]='approved' AND controlNo = dbo.FNAEncryptString(@controlNo)
  117. END
  118. ELSE
  119. BEGIN
  120. SELECT @tranId = rt.id, @oldValue = CASE
  121. WHEN @fieldName ='rIdType' THEN ISNULL(c.idType, c.idType2)
  122. WHEN @fieldName ='rAddress' THEN c.address
  123. WHEN @fieldName ='rContactNo' THEN c.mobile
  124. WHEN @fieldName ='rIdNo' THEN c.idNumber
  125. WHEN @fieldName ='accountNo' THEN rt.accountNo
  126. WHEN @fieldName ='senderName' THEN b.firstName + ISNULL(' ' + b.middleName, '') + ISNULL(' ' + b.lastName1, '') + ISNULL(' ' + b.lastName2, '')
  127. WHEN @fieldName ='receiverName' THEN c.firstName + ISNULL(' ' + c.middleName, '') + ISNULL(' ' + c.lastName1, '') + ISNULL(' ' + c.lastName2, '')
  128. END
  129. FROM remitTran rt WITH(NOLOCK)
  130. INNER JOIN tranSenders b WITH(NOLOCK) ON rt.id=b.tranId
  131. INNER JOIN tranReceivers c WITH(NOLOCK) ON rt.id=c.tranId
  132. WHERE rt.controlNo=dbo.FNAEncryptString(@controlNo)
  133. -->> ## INSERTING REQUESTED LIST
  134. INSERT INTO tranModifyLog(tranId,controlNo, MESSAGE, createdBy, createdDate,status ,fieldName , fieldValue,msgType,oldValue)
  135. SELECT @tranId,dbo.FNAEncryptString(@controlNo),ISNULL(@changeType, 'NULL')+' [<b>'+isnull(@oldValue,'')+'</b>] has been requested to change by [<b>' + ISNULL(@newValue, 'NULL')+'</b>]', @user, GETDATE(),'Request',@fieldName,@fieldValue,'MODIFY',@oldValue
  136. -->> ## SELECTING REQUESTED LIST
  137. SELECT message,ScChargeMod,rowId FROM tranModifyLog
  138. WHERE [status]='Request' AND controlNo = dbo.FNAEncryptString(@controlNo)
  139. END
  140. END
  141. IF @flag='showModifiedLog'
  142. BEGIN
  143. set @controlNo = dbo.FNAEncryptString(@controlNo)
  144. SELECT
  145. ROW_NUMBER() OVER(ORDER BY ROWID) [SN],
  146. message [Message - New Modification],
  147. oldValue [Old Data]
  148. FROM tranModifyLog WITH(NOLOCK)
  149. WHERE [status] ='Request'
  150. AND controlNo = @controlNo
  151. END
  152. ELSE IF @flag = 'getApprovedModificationLog'
  153. BEGIN
  154. SET @controlNo = dbo.FNAEncryptString(@controlNo)
  155. SELECT
  156. ROW_NUMBER() OVER(ORDER BY ROWID) [SN],
  157. message [Message - New Modification],
  158. oldValue [Old Data]
  159. FROM tranModifyLog WITH(NOLOCK)
  160. WHERE [status]='Approved' AND MsgType = 'MODIFY'
  161. AND controlNo = @controlNo
  162. END
  163. ELSE IF @flag='uSC' -- change SC charge
  164. BEGIN
  165. IF NOT EXISTS(SELECT 'X' FROM tranModifyLog WHERE [status]='Request'
  166. AND controlNo = dbo.FNAEncryptString(@controlNo) AND createdBy = @user)
  167. BEGIN
  168. EXEC proc_errorHandler 1,'Please add the modification detail!',@controlNo
  169. RETURN;
  170. END
  171. -->> UPDATE LOCAL DB STATUS AS ModificationRequest
  172. UPDATE remitTran
  173. SET tranStatus ='ModificationRequest'
  174. WHERE controlNo=@encryptedControlNo
  175. EXEC proc_errorHandler 0,'Transaction Modification Requested successfully',@controlNo
  176. END
  177. ELSE IF @flag='refundSC' -- SC CHARGE REFUND for main table
  178. BEGIN
  179. UPDATE TL SET TL.status='Approve'
  180. ,TL.resolvedBy=@user
  181. ,TL.resolvedDate=GETDATE()
  182. FROM remitTran RT
  183. INNER JOIN tranModifyLog TL ON RT.controlNo=TL.controlNo
  184. WHERE TL.[status]='Request' AND TL.controlNo = dbo.FNAEncryptString(@controlNo)
  185. EXEC proc_errorHandler 0,'Transaction Modification Approved successfully',@controlNo
  186. END
  187. ELSE IF @flag='Reqtxn' --== TXN modification Rquest part
  188. BEGIN
  189. SELECT * FROM tranModifyLog
  190. WHERE [status]='Request' AND controlNo = dbo.FNAEncryptString(@controlNo)
  191. END
  192. ELSE IF @flag='d'
  193. BEGIN
  194. DELETE FROM tranModifyLog WHERE rowId= @rowId
  195. SELECT message,ScChargeMod,rowId FROM tranModifyLog (NOLOCK)
  196. WHERE [status]='Request' AND controlNo = dbo.FNAEncryptString(@controlNo)
  197. AND createdBy=@user
  198. END
  199. ELSE IF @flag='a'
  200. BEGIN
  201. SELECT * FROM tranModifyLog
  202. WHERE [status]='Request' AND controlNo = dbo.FNAEncryptString(@controlNo)
  203. --AND createdBy=@user
  204. END
  205. ELSE IF @flag='reqUser' --- TXN MODIFICATION REQUESTED USER LIST FOR FILTER
  206. BEGIN
  207. SELECT null [value],'ALL' [text] UNION ALL
  208. SELECT DISTINCT createdBy,createdBy FROM tranModifyLog
  209. WHERE [status]='Request'
  210. END
  211. ELSE IF @flag='s'
  212. BEGIN
  213. SET @sortBy = 'createdDate'
  214. SET @sortOrder = 'DESC'
  215. SET @table = '(
  216. SELECT
  217. DISTINCT
  218. RT.sCountry
  219. ,RT.sAgentName
  220. ,RT.sBranchName
  221. ,TL.createdBy
  222. ,controlNo = ''<a href="#" onclick="OpenInNewWindow('''''+dbo.FNAGetURL()+'AgentPanel/Utilities/ModifyRequest/TxnDetail.aspx?searchBy=controlNo&searchValue='' + dbo.FNADecryptString(TL.controlNo) + '''''')">'' + dbo.FNADecryptString(TL.controlNo) + ''</a>''
  223. ,RT.cAmt
  224. ,CONVERT(VARCHAR,TL.createdDate,100) requestedDate
  225. ,TL.createdDate
  226. ,sBranch
  227. ,filterControlNo = dbo.FNADecryptString(TL.controlNo)
  228. ,pCountry
  229. ,pAgentName
  230. ,RT.payStatus
  231. FROM tranModifyLog TL WITH (NOLOCK)
  232. INNER JOIN remitTran RT WITH (NOLOCK) ON TL.controlNo=RT.controlNo
  233. WHERE TL.status=''Request''
  234. ) x'
  235. SET @sql_filter = ''
  236. IF @controlNo IS NOT NULL
  237. SET @sql_filter = @sql_filter+ ' AND filterControlNo ='''+ UPPER(LTRIM(RTRIM(@controlNo))) +''''
  238. IF @branchId IS NOT NULL
  239. SET @sql_filter = @sql_filter+ ' AND sBranch ='''+CAST(@branchId AS VARCHAR)+''''
  240. IF @createdBy IS NOT NULL
  241. SET @sql_filter= @sql_filter + ' AND createdBy='''+@createdBy+''''
  242. SET @select_field_list ='
  243. sCountry
  244. ,sAgentName
  245. ,sBranchName
  246. ,createdBy
  247. ,controlNo
  248. ,cAmt
  249. ,createdDate
  250. ,filterControlNo
  251. ,requestedDate
  252. ,pCountry
  253. ,pAgentName
  254. ,payStatus
  255. '
  256. EXEC dbo.proc_paging
  257. @table
  258. ,@sql_filter
  259. ,@select_field_list
  260. ,''
  261. ,@sortBy
  262. ,@sortOrder
  263. ,@pageSize
  264. END
  265. --## TXN modification Rquest END
  266. END TRY
  267. BEGIN CATCH
  268. IF @@TRANCOUNT > 0
  269. ROLLBACK TRANSACTION
  270. DECLARE @errorMessage VARCHAR(MAX)
  271. SET @errorMessage = ERROR_MESSAGE()
  272. EXEC proc_errorHandler 1, @errorMessage, @rowId
  273. END CATCH
  274. GO