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.

209 lines
5.6 KiB

1 year ago
  1. USE [FastMoneyPro_Remit]
  2. GO
  3. /****** Object: StoredProcedure [dbo].[proc_crossRateDecimalMask] Script Date: 7/4/2019 11:35:48 AM ******/
  4. DROP PROCEDURE [dbo].[proc_crossRateDecimalMask]
  5. GO
  6. /****** Object: StoredProcedure [dbo].[proc_crossRateDecimalMask] Script Date: 7/4/2019 11:35:48 AM ******/
  7. SET ANSI_NULLS ON
  8. GO
  9. SET QUOTED_IDENTIFIER ON
  10. GO
  11. ALTER PROC [dbo].[proc_crossRateDecimalMask]
  12. @flag VARCHAR(50) = NULL
  13. ,@user VARCHAR(30) = NULL
  14. ,@crdmId INT = NULL
  15. ,@cCurrency VARCHAR(3) = NULL
  16. ,@pCurrency VARCHAR(3) = NULL
  17. ,@rateMaskAd INT = NULL
  18. ,@displayUnit INT = NULL
  19. ,@sortBy VARCHAR(50) = NULL
  20. ,@sortOrder VARCHAR(5) = NULL
  21. ,@pageSize INT = NULL
  22. ,@pageNumber INT = NULL
  23. AS
  24. SET NOCOUNT ON
  25. SET XACT_ABORT ON
  26. BEGIN TRY
  27. CREATE TABLE #msg(errorCode INT, msg VARCHAR(100), id INT)
  28. DECLARE
  29. @sql VARCHAR(MAX)
  30. ,@oldValue VARCHAR(MAX)
  31. ,@newValue VARCHAR(MAX)
  32. ,@module VARCHAR(10)
  33. ,@tableAlias VARCHAR(100)
  34. ,@logIdentifier VARCHAR(50)
  35. ,@logParamMod VARCHAR(100)
  36. ,@logParamMain VARCHAR(100)
  37. ,@table VARCHAR(MAX)
  38. ,@select_field_list VARCHAR(MAX)
  39. ,@extra_field_list VARCHAR(MAX)
  40. ,@sql_filter VARCHAR(MAX)
  41. ,@modType VARCHAR(6)
  42. SELECT
  43. @logIdentifier = 'crdmId'
  44. ,@logParamMain = 'crossRateDecimalMask'
  45. ,@logParamMod = 'crossRateDecimalMaskMod'
  46. ,@module = '20'
  47. ,@tableAlias = 'Cross Rate Decimal Masking'
  48. IF @flag IN ('i')
  49. BEGIN
  50. IF EXISTS(SELECT 'X' FROM crossRateDecimalMask WHERE ISNULL(cCurrency, ISNULL(@cCurrency, '')) = ISNULL(@cCurrency, '') AND pCurrency = @pCurrency)
  51. BEGIN
  52. EXEC proc_errorHandler 1, 'Record already exists', NULL
  53. RETURN
  54. END
  55. BEGIN TRANSACTION
  56. --DELETE FROM rsList WHERE agentId = @agentId AND agentRole = @agentRole
  57. INSERT INTO crossRateDecimalMask (
  58. cCurrency
  59. ,pCurrency
  60. ,rateMaskAd
  61. ,displayUnit
  62. ,createdBy
  63. ,createdDate
  64. )
  65. SELECT
  66. @cCurrency
  67. ,@pCurrency
  68. ,@rateMaskAd
  69. ,@displayUnit
  70. ,@user
  71. ,GETDATE()
  72. SET @crdmId = SCOPE_IDENTITY()
  73. SET @modType = 'Insert'
  74. EXEC [dbo].proc_GetColumnToRow @logParamMain, @logIdentifier, @crdmId , @newValue OUTPUT
  75. INSERT INTO #msg(errorCode, msg, id)
  76. EXEC proc_applicationLogs 'i', NULL, @modType, @tableAlias, @crdmId, @user, @oldValue, @newValue
  77. IF EXISTS (SELECT 'x' FROM #msg WHERE errorCode <> '0')
  78. BEGIN
  79. IF @@TRANCOUNT > 0
  80. ROLLBACK TRANSACTION
  81. EXEC proc_errorHandler 1, 'Failed to add new record.', @crdmId
  82. RETURN
  83. END
  84. IF @@TRANCOUNT > 0
  85. COMMIT TRANSACTION
  86. EXEC proc_errorHandler 0, 'Record has been added successfully.', @crdmId
  87. END
  88. ELSE IF @flag = 'u'
  89. BEGIN
  90. BEGIN TRANSACTION
  91. UPDATE crossRateDecimalMask SET
  92. rateMaskAd = @rateMaskAd
  93. ,displayUnit = @displayUnit
  94. ,modifiedBy = @user
  95. ,modifiedDate = GETDATE()
  96. WHERE crdmId = @crdmId
  97. EXEC [dbo].proc_GetColumnToRow @logParamMain, @logIdentifier, @crdmId, @newValue OUTPUT
  98. INSERT INTO #msg(errorCode, msg, id)
  99. EXEC proc_applicationLogs 'i', NULL, @modType, @tableAlias, @crdmId, @user, @oldValue, @newValue
  100. IF EXISTS (SELECT 'x' FROM #msg WHERE errorCode <> '0')
  101. BEGIN
  102. IF @@TRANCOUNT > 0
  103. ROLLBACK TRANSACTION
  104. EXEC proc_errorHandler 1, 'Failed to update record.', @crdmId
  105. RETURN
  106. END
  107. IF @@TRANCOUNT > 0
  108. COMMIT TRANSACTION
  109. EXEC proc_errorHandler 0, 'Record updated successfully.', @crdmId
  110. END
  111. ELSE IF @flag = 'd'
  112. BEGIN
  113. BEGIN TRANSACTION
  114. SET @modType = 'Delete'
  115. EXEC [dbo].proc_GetColumnToRow @logParamMain, @logIdentifier, @crdmId, @oldValue OUTPUT
  116. INSERT INTO #msg(errorCode, msg, id)
  117. EXEC proc_applicationLogs 'i', NULL, @modType, @tableAlias, @crdmId, @user, @oldValue, @newValue
  118. IF EXISTS (SELECT 'x' FROM #msg WHERE errorCode <> '0')
  119. BEGIN
  120. IF @@TRANCOUNT > 0
  121. ROLLBACK TRANSACTION
  122. EXEC proc_errorHandler 1, 'Failed to delete record.', @crdmId
  123. RETURN
  124. END
  125. DELETE FROM crossRateDecimalMask WHERE crdmId = @crdmId
  126. IF @@TRANCOUNT > 0
  127. COMMIT TRANSACTION
  128. EXEC proc_errorHandler 0, 'Record deleted successfully.', @crdmId
  129. END
  130. ELSE IF @flag = 'a'
  131. BEGIN
  132. SELECT * FROM crossRateDecimalMask WITH(NOLOCK) WHERE crdmId = @crdmId
  133. END
  134. ELSE IF @flag IN ('s')
  135. BEGIN
  136. --IF @sortBy IS NULL
  137. SET @sortBy = 'pCurrency,cCurrency'
  138. --IF @sortOrder IS NULL
  139. --SET @sortOrder = 'ASC'
  140. SET @table = '(
  141. SELECT
  142. main.crdmId
  143. ,cCurrency = ISNULL(main.cCurrency, ''Any'')
  144. ,main.pCurrency
  145. ,main.rateMaskAd
  146. ,main.displayUnit
  147. ,main.createdBy
  148. ,main.createdDate
  149. ,modifiedBy = ISNULL(modifiedBy, createdBy)
  150. ,modifiedDate = ISNULL(modifiedDate, createdDate)
  151. FROM crossRateDecimalMask main WITH(NOLOCK)
  152. WHERE 1 = 1
  153. ) x'
  154. SET @sql_filter = ''
  155. IF @cCurrency IS NOT NULL
  156. SET @sql_filter = @sql_filter + ' AND cCurrency = ''' + @cCurrency + ''''
  157. IF @pCurrency IS NOT NULL
  158. SET @sql_filter = @sql_filter + ' AND pCurrency = ''' + @pCurrency + ''''
  159. SET @select_field_list ='
  160. crdmId
  161. ,cCurrency
  162. ,pCurrency
  163. ,rateMaskAd
  164. ,displayUnit
  165. ,createdBy
  166. ,createdDate
  167. ,modifiedBy
  168. ,modifiedDate
  169. '
  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. END TRY
  181. BEGIN CATCH
  182. IF @@TRANCOUNT > 0
  183. ROLLBACK TRANSACTION
  184. DECLARE @errorMessage VARCHAR(MAX)
  185. SET @errorMessage = ERROR_MESSAGE()
  186. EXEC proc_errorHandler 1, @errorMessage, @crdmId
  187. END CATCH