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.

245 lines
14 KiB

1 year ago
  1. USE [FastMoneyPro_Remit]
  2. GO
  3. /****** Object: StoredProcedure [dbo].[proc_txnThresholdLimit] Script Date: 9/27/2019 1:30:14 PM ******/
  4. SET ANSI_NULLS ON
  5. GO
  6. SET QUOTED_IDENTIFIER ON
  7. GO
  8. CREATE proc [dbo].[proc_txnThresholdLimit]
  9. @flag VARCHAR(50) = NULL
  10. ,@user VARCHAR(30) = NULL
  11. ,@ttlId VARCHAR(30) = NULL
  12. ,@controlNo VARCHAR(30) = NULL
  13. ,@pAgent INT = NULL
  14. ,@sortBy VARCHAR(50) = NULL
  15. ,@sortOrder VARCHAR(5) = NULL
  16. ,@pageSize INT = NULL
  17. ,@pageNumber INT = NULL
  18. ,@chkE VARCHAR(50) = NULL
  19. ,@chkT VARCHAR(50) = NULL
  20. AS
  21. SET NOCOUNT ON
  22. SET XACT_ABORT ON
  23. BEGIN TRY
  24. CREATE TABLE #msg(errorCode INT, msg VARCHAR(100), id INT)
  25. DECLARE
  26. @sql VARCHAR(MAX)
  27. ,@oldValue VARCHAR(MAX)
  28. ,@newValue VARCHAR(MAX)
  29. ,@module VARCHAR(10)
  30. ,@tableAlias VARCHAR(100)
  31. ,@logIdentifier VARCHAR(50)
  32. ,@logParamMod VARCHAR(100)
  33. ,@logParamMain VARCHAR(100)
  34. ,@table VARCHAR(MAX)
  35. ,@select_field_list VARCHAR(MAX)
  36. ,@extra_field_list VARCHAR(MAX)
  37. ,@sql_filter VARCHAR(MAX)
  38. ,@modType VARCHAR(6)
  39. ,@remarks VARCHAR(MAX)
  40. SELECT
  41. @logIdentifier = 'ttlId'
  42. ,@logParamMain = 'txnThresholdLimit'
  43. ,@logParamMod = 'txnThresholdLimitMod'
  44. ,@module = '20'
  45. ,@tableAlias = ''
  46. IF @flag = 'i'
  47. BEGIN
  48. /*
  49. EXEC proc_txnThresholdLimit @flag = 'i', @user = 'admin', @ttlId = '0', @controlNo = '90801761047', @pAgent = '4616', @chkE = 'True', @chkT = 'False'
  50. */
  51. IF @chkE ='True' AND @chkT = 'True'
  52. SET @remarks ='More than 30 days old txn & Payout limit exceeded.'
  53. IF @chkE ='True' AND @chkT ='False'
  54. SET @remarks ='More than 30 days old txn.'
  55. IF @chkE ='False' AND @chkT = 'True'
  56. SET @remarks ='Payout limit exceeded.'
  57. BEGIN TRANSACTION
  58. --alter table txnThresholdLimit add remarks varchar(max)
  59. INSERT INTO txnThresholdLimit (
  60. controlNo
  61. ,pAgent
  62. ,createdBy
  63. ,createdDate
  64. ,remarks
  65. )
  66. SELECT
  67. dbo.FNAEncryptString(@controlNo)
  68. ,@pAgent
  69. ,@user
  70. ,GETDATE()
  71. ,@remarks
  72. SET @modType = 'Insert'
  73. EXEC [dbo].proc_GetColumnToRow @logParamMain, @logIdentifier, @ttlId , @newValue OUTPUT
  74. INSERT INTO #msg(errorCode, msg, id)
  75. EXEC proc_applicationLogs 'i', NULL, @modType, @tableAlias, @ttlId, @user, @oldValue, @newValue
  76. IF EXISTS (SELECT 'x' FROM #msg WHERE errorCode <> '0')
  77. BEGIN
  78. IF @@TRANCOUNT > 0
  79. ROLLBACK TRANSACTION
  80. EXEC proc_errorHandler 1, 'Failed to add new record.', @ttlId
  81. RETURN
  82. END
  83. IF @@TRANCOUNT > 0
  84. COMMIT TRANSACTION
  85. EXEC proc_errorHandler 0, 'Record has been added successfully.', @ttlId
  86. END
  87. IF @flag = 'a'
  88. BEGIN
  89. SELECT * FROM txnThresholdLimit WITH(NOLOCK) WHERE ttlId = @ttlId
  90. END
  91. IF @flag = 'u'
  92. BEGIN
  93. BEGIN TRANSACTION
  94. UPDATE txnThresholdLimit SET
  95. controlNo = @controlNo
  96. ,pAgent = @pAgent
  97. WHERE ttlId = @ttlId
  98. EXEC [dbo].proc_GetColumnToRow @logParamMain, @logIdentifier, @ttlId, @newValue OUTPUT
  99. INSERT INTO #msg(errorCode, msg, id)
  100. EXEC proc_applicationLogs 'i', NULL, @modType, @tableAlias, @ttlId, @user, @oldValue, @newValue
  101. IF EXISTS (SELECT 'x' FROM #msg WHERE errorCode <> '0')
  102. BEGIN
  103. IF @@TRANCOUNT > 0
  104. ROLLBACK TRANSACTION
  105. EXEC proc_errorHandler 1, 'Failed to update record.', @ttlId
  106. RETURN
  107. END
  108. IF @@TRANCOUNT > 0
  109. COMMIT TRANSACTION
  110. EXEC proc_errorHandler 0, 'Record updated successfully.', @ttlId
  111. END
  112. IF @flag = 'd'
  113. BEGIN
  114. BEGIN TRANSACTION
  115. UPDATE txnThresholdLimit SET
  116. isDeleted = 'Y'
  117. WHERE ttlId = @ttlId
  118. SET @modType = 'Delete'
  119. EXEC [dbo].proc_GetColumnToRow @logParamMain, @logIdentifier, @ttlId, @oldValue OUTPUT
  120. INSERT INTO #msg(errorCode, msg, id)
  121. EXEC proc_applicationLogs 'i', NULL, @modType, @tableAlias, @ttlId, @user, @oldValue, @newValue
  122. IF EXISTS (SELECT 'x' FROM #msg WHERE errorCode <> '0')
  123. BEGIN
  124. IF @@TRANCOUNT > 0
  125. ROLLBACK TRANSACTION
  126. EXEC proc_errorHandler 1, 'Failed to delete record.', @ttlId
  127. RETURN
  128. END
  129. IF @@TRANCOUNT > 0
  130. COMMIT TRANSACTION
  131. EXEC proc_errorHandler 0, 'Record deleted successfully.', @ttlId
  132. END
  133. IF @flag = 's'
  134. BEGIN
  135. IF @sortBy IS NULL
  136. SET @sortBy = 'ttlId'
  137. IF @sortOrder IS NULL
  138. SET @sortOrder = 'ASC'
  139. SET @table = '(
  140. SELECT
  141. main.ttlId
  142. ,controlNo = ''<a href = "Manage.aspx?controlNo='' + dbo.FNADecryptString(main.controlNo) + ''">'' + dbo.FNADecryptString(main.controlNo) + ''</a>''
  143. ,main.pAgent
  144. ,pAgentName = am.agentName
  145. ,main.createdBy
  146. ,main.createdDate
  147. ,modifiedBy = main.createdBy
  148. ,modifiedDate = main.createdDate
  149. ,haschanged = CASE WHEN main.approvedBy IS NULL THEN ''Y'' ELSE ''N'' END
  150. ,main.isDeleted
  151. ,main.remarks
  152. FROM txnThresholdLimit main WITH(NOLOCK)
  153. LEFT JOIN agentMaster am WITH(NOLOCK) ON main.pAgent = am.agentId
  154. WHERE main.approvedBy IS NULL
  155. ) x'
  156. SET @sql_filter = ''
  157. SET @sql_filter = @sql_filter + ' AND ISNULL(isDeleted, '''') <> ''Y'''
  158. SET @select_field_list ='
  159. ttlId
  160. ,controlNo
  161. ,pAgent
  162. ,pAgentName
  163. ,createdBy
  164. ,createdDate
  165. ,modifiedBy
  166. ,modifiedDate
  167. ,haschanged
  168. ,isDeleted
  169. ,remarks '
  170. EXEC dbo.proc_paging
  171. @table
  172. ,@sql_filter
  173. ,@select_field_list
  174. ,@extra_field_list
  175. ,@sortBy
  176. ,@sortOrder
  177. ,@pageSize
  178. ,@pageNumber
  179. END
  180. IF @flag = 'approve'
  181. BEGIN
  182. IF NOT EXISTS(SELECT 'X' FROM txnThresholdLimit WITH(NOLOCK) WHERE ttlId = @ttlId AND createdBy <> @user)
  183. BEGIN
  184. EXEC proc_errorHandler 1, 'Illegal Operation! You are not allowed to approve this record', @ttlId
  185. RETURN
  186. END
  187. UPDATE txnThresholdLimit SET
  188. isActive = 'Y'
  189. ,approvedBy = @user
  190. ,approvedDate = GETDATE()
  191. WHERE ttlId = @ttlId
  192. EXEC proc_errorHandler 0, 'Changes Approved Successfully', @ttlId
  193. END
  194. IF @flag = 'reject'
  195. BEGIN
  196. IF NOT EXISTS(SELECT 'X' FROM txnThresholdLimit WITH(NOLOCK) WHERE ttlId = @ttlId AND createdBy <> @user)
  197. BEGIN
  198. EXEC proc_errorHandler 1, 'Illegal Operation! You are not allowed to reject this record', @ttlId
  199. RETURN
  200. END
  201. DELETE FROM txnThresholdLimit WHERE ttlId = @ttlId
  202. EXEC proc_errorHandler 0, 'Changes Rejected Successfully', @ttlId
  203. END
  204. IF @flag = 'check-type'
  205. BEGIN
  206. DECLARE @days INT,@pAmt MONEY
  207. SELECT @days = DATEDIFF(DAY,createdDateLocal,GETDATE()),
  208. @pAmt = pAmt
  209. FROM remitTran rt WITH(NOLOCK) WHERE controlNo = dbo.FNAEncryptString(@controlNo)
  210. IF @days > 30 AND @pAmt > = 300000
  211. SELECT '1' chkE,'1' chkT
  212. ELSE IF @days > 30 AND @pAmt < 300000
  213. SELECT '1' chkE,'0' chkT
  214. ELSE IF @days <= 30 AND @pAmt > = 300000
  215. SELECT '0' chkE,'1' chkT
  216. ELSE
  217. SELECT '0' chkE,'0' chkT
  218. END
  219. END TRY
  220. BEGIN CATCH
  221. IF @@TRANCOUNT > 0
  222. ROLLBACK TRANSACTION
  223. DECLARE @errorMessage VARCHAR(MAX)
  224. SET @errorMessage = ERROR_MESSAGE()
  225. EXEC proc_errorHandler 1, @errorMessage, @ttlId
  226. END CATCH
  227. GO