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.

306 lines
7.4 KiB

1 year ago
  1. USE [FastMoneyPro_Remit]
  2. GO
  3. /****** Object: StoredProcedure [dbo].[Proc_OFACRuleSetup] Script Date: 7/4/2019 11:35:48 AM ******/
  4. DROP PROCEDURE [dbo].[Proc_OFACRuleSetup]
  5. GO
  6. /****** Object: StoredProcedure [dbo].[Proc_OFACRuleSetup] 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_OFACRuleSetup] (
  12. @flag VARCHAR(50) = NULL
  13. ,@user VARCHAR(30) = NULL
  14. ,@RuleId VARCHAR(30) = NULL
  15. ,@amount MONEY = NULL
  16. ,@period INT = NULL
  17. ,@sortBy VARCHAR(50) = NULL
  18. ,@sortOrder VARCHAR(5) = NULL
  19. ,@pageSize INT = NULL
  20. ,@pageNumber INT = NULL
  21. ,@isPerTransaction VARCHAR(5) = NULL
  22. )
  23. AS
  24. BEGIN
  25. SET NOCOUNT ON;
  26. BEGIN TRY
  27. DECLARE
  28. @sql VARCHAR(MAX)
  29. ,@oldValue VARCHAR(MAX)
  30. ,@newValue VARCHAR(MAX)
  31. ,@module VARCHAR(10)
  32. ,@tableAlias VARCHAR(100)
  33. ,@logIdentifier VARCHAR(50)
  34. ,@logParamMod VARCHAR(100)
  35. ,@logParamMain VARCHAR(100)
  36. ,@table VARCHAR(MAX)
  37. ,@select_field_list VARCHAR(MAX)
  38. ,@extra_field_list VARCHAR(MAX)
  39. ,@sql_filter VARCHAR(MAX)
  40. ,@id VARCHAR(10)
  41. ,@modType VARCHAR(6)
  42. ,@ApprovedFunctionId INT
  43. SELECT @ApprovedFunctionId = 20602030
  44. IF @flag='i' -- insert Rule setup
  45. BEGIN
  46. IF EXISTS( SELECT 'x' FROM csSafelistRuleDetail WHERE ISNULL(period, 0) = ISNULL(@period, 0) )
  47. -- AND ISNULL(condition, 0) = ISNULL(@condition, 0) AND
  48. -- ANDISNULL(tranCount, 0) = ISNULL(@tranCount, 0) AND
  49. -- AND ISNULL(nextAction, 0) = ISNULL(@nextAction, 0)
  50. -- AND ISNULL(ruleScope, 0) = ISNULL(@ruleScope, 0)
  51. BEGIN
  52. EXEC proc_errorHandler 1, 'Record already exist.', NULL
  53. RETURN
  54. END
  55. BEGIN TRANSACTION
  56. INSERT INTO csSafelistRuleDetail (
  57. Amount
  58. ,period
  59. ,createdBy
  60. ,createdDate
  61. ,IsPerTransaction
  62. ,IsActive
  63. )
  64. SELECT
  65. @amount
  66. ,@period
  67. ,@user
  68. ,GETDATE()
  69. ,@isPerTransaction
  70. ,'Y'
  71. SET @RuleId = SCOPE_IDENTITY()
  72. IF @@TRANCOUNT > 0
  73. COMMIT TRANSACTION
  74. EXEC proc_errorHandler 0, 'Record has been added successfully.', @RuleId
  75. END
  76. ELSE IF @flag = 'u' -- update rule detail (done) : (urd_v2)
  77. BEGIN
  78. IF EXISTS (
  79. SELECT 'X' FROM csSafelistRuleDetail WITH(NOLOCK)
  80. WHERE RuleId = @RuleId AND ( createdBy <> @user AND approvedBy IS NULL)
  81. )
  82. BEGIN
  83. EXEC proc_errorHandler 1, '<center>You can not modify this record. <br /> You are trying to perform an illegal operation.</center>', @RuleId
  84. RETURN
  85. END
  86. IF EXISTS (
  87. SELECT 'X' FROM csSafelistRuleDetail WITH(NOLOCK)
  88. WHERE RuleId = @RuleId AND (createdBy<> @user OR ISNULL(isDeleted,'N') <> 'N') AND approvedBy IS NULL
  89. )
  90. BEGIN
  91. EXEC proc_errorHandler 1, '<center>You can not modify this record. <br /> You are trying to perform an illegal operation.</center>', @RuleId
  92. RETURN
  93. END
  94. IF EXISTS(
  95. SELECT 'x' FROM csSafelistRuleDetail (NOLOCK) WHERE ISNULL(period, 0) = ISNULL(@period, 0) AND RuleId <> @RuleId)
  96. BEGIN
  97. EXEC proc_errorHandler 1, 'Record already exist.', NULL
  98. RETURN
  99. END
  100. BEGIN TRANSACTION
  101. IF EXISTS (SELECT 'X' FROM csSafelistRuleDetail (NOLOCK) WHERE approvedBy IS NULL AND RuleId = @RuleId)
  102. BEGIN
  103. UPDATE csSafelistRuleDetail SET
  104. amount = @amount
  105. ,period = @period
  106. ,createdBy = @user
  107. ,createdDate = GETDATE()
  108. ,IsActive = 'Y'
  109. ,ModifiedBy = @user
  110. ,ModifiedDate = GETDATE()
  111. WHERE RuleId = @RuleId
  112. END
  113. ELSE
  114. BEGIN
  115. INSERT INTO
  116. csSafelistRuleDetailHistory
  117. (
  118. ruleId
  119. ,amount
  120. ,period
  121. ,isDeleted
  122. ,approvedBy
  123. ,approvedDate
  124. ,createdBy
  125. ,createdDate
  126. ,modifiedBy
  127. ,modifiedDate
  128. ,IsActive
  129. )
  130. SELECT RuleId
  131. ,amount
  132. ,period
  133. ,isDeleted
  134. ,approvedBy
  135. ,ApprovedDate
  136. ,createdBy
  137. ,createdDate
  138. ,modifiedBy
  139. ,modifiedDate
  140. ,IsActive
  141. FROM csSafelistRuleDetail
  142. WHERE RuleId = @RuleId
  143. UPDATE csSafelistRuleDetail SET
  144. amount = @amount
  145. ,period = @period
  146. ,createdBy = @user
  147. ,createdDate = GETDATE()
  148. ,IsActive = 'Y'
  149. ,modifiedBy = @user
  150. ,modifiedDate = GETDATE()
  151. WHERE RuleId = @RuleId
  152. END
  153. IF @@TRANCOUNT > 0
  154. COMMIT TRANSACTION
  155. EXEC proc_errorHandler 0, 'Record updated successfully.', @RuleId
  156. END
  157. ELSE IF @flag ='s' -- (rdGrid_v2)
  158. BEGIN
  159. IF @sortBy IS NULL
  160. SET @sortBy = 'condition'
  161. IF @sortOrder IS NULL
  162. SET @sortOrder = 'ASC'
  163. SET @pageNumber = 1
  164. SET @pageSize = 10000
  165. SET @table = '(
  166. SELECT
  167. main.RuleId
  168. ,main.Amount
  169. ,main.Period
  170. ,isDisabled=CASE WHEN ISNULL(main.IsActive,''n'')=''y'' then ''Enabled'' else ''Disabled'' END
  171. ,main.CreatedBy
  172. ,main.CreatedDate
  173. ,main.ModifiedBy
  174. ,main.ModifiedDate
  175. ,CASE WHEN main.ApprovedBy IS NULL THEN '''' ELSE ''none'' END as isApproved
  176. FROM csSafeListRuleDetail main WITH(NOLOCK)
  177. LEFT JOIN staticDataValue con WITH(NOLOCK) ON 1=1 --main.condition = con.valueId
  178. WHERE ISNULL(main.isDeleted, ''N'') <> ''Y''
  179. )x'
  180. SET @sql_filter = ''
  181. IF @amount IS NOT NULL AND @amount<>0
  182. SET @sql_filter = @sql_filter + ' AND x.amount = ''' + CAST(@amount AS VARCHAR(50))+''''
  183. IF @period IS NOT NULL AND @period<>0
  184. SET @sql_filter = @sql_filter + ' AND x.period = ''' + CAST(@period AS VARCHAR(50))+''''
  185. SET @select_field_list ='
  186. RuleID
  187. ,amount
  188. ,period
  189. ,isDisabled
  190. ,createdBy
  191. ,createdDate
  192. ,modifiedBy
  193. ,modifiedDate
  194. ,isApproved
  195. '
  196. EXEC dbo.proc_paging
  197. @table
  198. ,@sql_filter
  199. ,@select_field_list
  200. ,@extra_field_list
  201. ,@sortBy
  202. ,@sortOrder
  203. ,@pageSize
  204. ,@pageNumber
  205. END
  206. ELSE IF @flag ='s1'--(rdGrid)
  207. BEGIN
  208. IF @sortBy IS NULL
  209. SET @sortBy = 'condition'
  210. IF @sortOrder IS NULL
  211. SET @sortOrder = 'ASC'
  212. SET @pageNumber = 1
  213. SET @pageSize = 10000
  214. SET @table = '(
  215. SELECT
  216. main.RuleId
  217. ,main.amount
  218. ,main.period
  219. ,isDisabled=CASE WHEN ISNULL(main.IsActive,''n'')=''y'' then ''Enabled'' else ''Disabled'' END
  220. ,main.CreatedBy
  221. ,main.CreatedDate
  222. ,main.ModifiedBy
  223. ,main.ModifiedDate
  224. ,CASE WHEN main.ApprovedBy IS NULL THEN '''' ELSE ''none'' END as isApproved
  225. FROM csSafeListRuleDetail main WITH(NOLOCK)
  226. LEFT JOIN staticDataValue con WITH(NOLOCK) ON main.condition = con.valueId
  227. LEFT JOIN staticDataValue cm WITH(NOLOCK) ON main.collMode = cm.valueId
  228. LEFT JOIN serviceTypeMaster pm WITH(NOLOCK) ON main.paymentMode = pm.serviceTypeId
  229. WHERE --main.csMasterId = + CAST (@csMasterId AS VARCHAR)
  230. ISNULL(main.IsDeleted, ''N'') <> ''Y''
  231. --AND (
  232. -- main.ApprovedBy IS NOT NULL
  233. -- OR main.CreatedBy = ''' + ISNULL(@user,'') + '''
  234. -- )
  235. )x'
  236. SET @sql_filter = ''
  237. SET @select_field_list ='
  238. RuleID
  239. ,Amount
  240. ,period
  241. ,isDisabled
  242. ,AreatedBy
  243. ,CreatedDate
  244. ,ModifiedBy
  245. ,ModifiedDate
  246. ,IsApproved
  247. '
  248. EXEC dbo.proc_paging
  249. @table
  250. ,@sql_filter
  251. ,@select_field_list
  252. ,@extra_field_list
  253. ,@sortBy
  254. ,@sortOrder
  255. ,@pageSize
  256. ,@pageNumber
  257. END
  258. END TRY
  259. BEGIN CATCH
  260. IF @@TRANCOUNT > 0
  261. ROLLBACK TRANSACTION
  262. DECLARE @errorMessage VARCHAR(MAX)
  263. SET @errorMessage = ERROR_MESSAGE()
  264. EXEC proc_errorHandler 1, @errorMessage, NULL
  265. END CATCH
  266. END
  267. GO