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.

228 lines
4.8 KiB

  1. SET ANSI_NULLS ON
  2. GO
  3. SET QUOTED_IDENTIFIER ON
  4. GO
  5. ALTER PROCEDURE [dbo].[proc_countryRateMaster] @flag VARCHAR(50) = NULL
  6. ,@user VARCHAR(30) = NULL
  7. ,@depositType VARCHAR(200) = NULL
  8. ,@countryId INT = NULL
  9. ,@actualrate FLOAT = NULL
  10. ,@promRate FLOAT = NULL
  11. ,@countryName VARCHAR(200) = NULL
  12. ,@activeStatus CHAR(1) = NULL
  13. ,@sortBy VARCHAR(50) = NULL
  14. ,@sortOrder VARCHAR(5) = NULL
  15. ,@pageSize INT = NULL
  16. ,@pageNumber INT = NULL
  17. ,@receiverId BIGINT = NULL
  18. AS
  19. SET NOCOUNT ON
  20. SET XACT_ABORT ON
  21. BEGIN TRY
  22. SET NOCOUNT ON;
  23. CREATE TABLE #msg (
  24. errorCode INT
  25. ,msg VARCHAR(100)
  26. ,id INT
  27. )
  28. DECLARE @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. ,@logType VARCHAR(10)
  41. ,@oldRate FLOAT
  42. ,@oldPromRate FLOAT
  43. SELECT @logIdentifier = 'depositType'
  44. ,@logParamMain = 'countryRateMaster'
  45. ,@logParamMod = 'countryRateMasterMod'
  46. ,@module = '20'
  47. ,@tableAlias = ''
  48. IF @flag = 'i-rate'
  49. BEGIN
  50. BEGIN TRANSACTION
  51. IF NOT EXISTS (
  52. SELECT 'X'
  53. FROM dbo.countryWiseExchangeRate
  54. WHERE countryId = @countryId
  55. AND depositType = @depositType
  56. )
  57. BEGIN
  58. INSERT INTO countryWiseExchangeRate (
  59. countryId
  60. ,depositType
  61. ,margin
  62. ,purchaseRate
  63. ,isActive
  64. ,createdBy
  65. ,createdDate
  66. )
  67. SELECT @countryId
  68. ,@depositType
  69. ,@actualrate
  70. ,ISNULL(@promRate, '')
  71. ,@activeStatus
  72. ,@user
  73. ,GETDATE()
  74. IF @@TRANCOUNT > 0
  75. COMMIT TRANSACTION
  76. EXEC proc_errorHandler 0
  77. ,'Record has been added successfully.'
  78. ,@depositType
  79. END
  80. ELSE IF EXISTS (
  81. SELECT 'X'
  82. FROM dbo.countryWiseExchangeRate
  83. WHERE countryId = @countryId
  84. AND depositType = @depositType
  85. )
  86. BEGIN
  87. INSERT INTO dbo.countryWiseExchangeRateHistory (
  88. countryId
  89. ,margin
  90. ,purchaseRate
  91. ,modType
  92. ,createdBy
  93. ,createdDate
  94. )
  95. SELECT countryId
  96. ,margin
  97. ,purchaseRate
  98. ,'UPDATE'
  99. ,@user
  100. ,GETDATE()
  101. FROM dbo.countryWiseExchangeRate
  102. WHERE countryId = @countryId
  103. AND depositType = @depositType
  104. UPDATE countryWiseExchangeRate
  105. SET depositType = @depositType
  106. ,margin = @actualrate
  107. ,purchaseRate = ISNULL(@promRate, '')
  108. ,isActive = @activeStatus
  109. WHERE countryId = @countryId
  110. AND depositType = @depositType
  111. IF @@TRANCOUNT > 0
  112. COMMIT TRANSACTION
  113. EXEC proc_errorHandler 0
  114. ,'Record has been added successfully.'
  115. ,@depositType
  116. END
  117. END
  118. ELSE IF @flag = 'get-list'
  119. BEGIN
  120. --SELECT * FROM countryWiseExchangeRate WITH(NOLOCK) WHERE countryId = @countryId
  121. IF @sortBy IS NULL
  122. SET @sortBy = 'depositType'
  123. IF @sortOrder IS NULL
  124. SET @sortOrder = 'ASC'
  125. SET @table = '(
  126. SELECT
  127. main.countryId
  128. ,main.depositType
  129. ,main.margin
  130. ,main.purchaseRate
  131. ,main.createdBy
  132. ,main.createdDate
  133. ,main.isActive
  134. FROM countryWiseExchangeRate main WITH(NOLOCK)
  135. WHERE 1 = 1 AND main.countryId = ' + CAST(@countryId AS VARCHAR) + '
  136. ) x'
  137. SET @sql_filter = ''
  138. SET @sql_filter = @sql_filter + ' AND ISNULL(isActive, '''') <> ''N'''
  139. IF @depositType IS NOT NULL
  140. SET @sql_filter = @sql_filter + ' AND depositType LIKE ''' + @depositType + '%'''
  141. SET @select_field_list = '
  142. countryId
  143. ,depositType
  144. ,margin
  145. ,purchaseRate
  146. ,createdBy
  147. ,createdDate
  148. ,isActive '
  149. EXEC dbo.proc_paging @table
  150. ,@sql_filter
  151. ,@select_field_list
  152. ,@extra_field_list
  153. ,@sortBy
  154. ,@sortOrder
  155. ,@pageSize
  156. ,@pageNumber
  157. END
  158. ELSE IF @flag = 'getById'
  159. BEGIN
  160. SELECT *
  161. FROM dbo.countryWiseExchangeRate
  162. WHERE countryId = @countryId
  163. AND depositType = @depositType
  164. END
  165. ELSE IF @flag = 'payment-method'
  166. BEGIN
  167. SELECT depositType AS detailTitle
  168. ,ISNULL(margin, 0) AS valueId
  169. FROM countryWiseExchangeRate
  170. WHERE countryId = @countryId
  171. END
  172. ELSE IF @flag = 'getListById'
  173. BEGIN
  174. SELECT CR.depositType AS detailTitle
  175. ,CR.margin AS detailDesc
  176. FROM dbo.countryWiseExchangeRate CR(NOLOCK)
  177. INNER JOIN countryMaster CM(NOLOCK) ON CM.countryId = CR.countryId
  178. INNER JOIN receiverInformation RI(NOLOCK) ON RI.country = CM.countryName
  179. WHERE RI.receiverId = @receiverId
  180. END
  181. ELSE IF @flag = 'delete'
  182. BEGIN
  183. BEGIN TRANSACTION
  184. UPDATE countryWiseExchangeRate
  185. SET isDeleted = 'Y'
  186. ,isActive = 'N'
  187. ,modifiedBy = @user
  188. ,modifiedDate = GETDATE()
  189. WHERE countryId = @countryId
  190. AND depositType = @depositType
  191. IF @@TRANCOUNT > 0
  192. COMMIT TRANSACTION
  193. SELECT 0 error_code
  194. ,'Record deleted successfully.' mes
  195. ,@countryId id
  196. END
  197. END TRY
  198. BEGIN CATCH
  199. IF @@TRANCOUNT > 0
  200. ROLLBACK TRANSACTION
  201. DECLARE @errorMessage VARCHAR(MAX)
  202. SET @errorMessage = ERROR_MESSAGE()
  203. EXEC proc_errorHandler 1
  204. ,@errorMessage
  205. ,@depositType
  206. END CATCH