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.

364 lines
20 KiB

11 months ago
  1. USE [FastMoneyPro_Remit]
  2. GO
  3. /****** Object: StoredProcedure [dbo].[proc_currencyMaster] Script Date: 10/20/2023 4:10:57 PM ******/
  4. SET ANSI_NULLS ON
  5. GO
  6. SET QUOTED_IDENTIFIER ON
  7. GO
  8. /*
  9. IF EXISTS (SELECT 'x' FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[proc_currencyMaster]') AND TYPE IN (N'P', N'PC'))
  10. DROP PROCEDURE [dbo].proc_currencyMaster
  11. GO
  12. */
  13. ALTER PROC [dbo].[proc_currencyMaster]
  14. @flag VARCHAR(50) = NULL
  15. ,@user VARCHAR(30) = NULL
  16. ,@currencyId VARCHAR(30) = NULL
  17. ,@currencyCode VARCHAR(10) = NULL
  18. ,@isoNumeric VARCHAR(5) = NULL
  19. ,@currencyName VARCHAR(50) = NULL
  20. ,@currencyDesc VARCHAR(50) = NULL
  21. ,@currencyDecimalName VARCHAR(50) = NULL
  22. ,@countAfterDecimal INT = NULL
  23. ,@roundNoDecimal INT = NULL
  24. ,@factor CHAR(1) = NULL
  25. ,@rateMin FLOAT = NULL
  26. ,@rateMax FLOAT = NULL
  27. ,@sortBy VARCHAR(50) = NULL
  28. ,@sortOrder VARCHAR(5) = NULL
  29. ,@pageSize INT = NULL
  30. ,@pageNumber INT = NULL
  31. AS
  32. SET NOCOUNT ON
  33. SET XACT_ABORT ON
  34. BEGIN TRY
  35. CREATE TABLE #msg(errorCode INT, msg VARCHAR(100), id INT)
  36. DECLARE
  37. @sql VARCHAR(MAX)
  38. ,@oldValue VARCHAR(MAX)
  39. ,@newValue VARCHAR(MAX)
  40. ,@module VARCHAR(10)
  41. ,@tableAlias VARCHAR(100)
  42. ,@logIdentifier VARCHAR(50)
  43. ,@logParamMod VARCHAR(100)
  44. ,@logParamMain VARCHAR(100)
  45. ,@table VARCHAR(MAX)
  46. ,@select_field_list VARCHAR(MAX)
  47. ,@extra_field_list VARCHAR(MAX)
  48. ,@sql_filter VARCHAR(MAX)
  49. ,@modType VARCHAR(6)
  50. SELECT
  51. @logIdentifier = 'currencyId'
  52. ,@logParamMain = 'currencyMaster'
  53. ,@logParamMod = 'currencyMasterMod'
  54. ,@module = '20'
  55. ,@tableAlias = 'Currency Master'
  56. IF @flag = 'cul' -- currency List
  57. BEGIN
  58. SELECT [0], [1] FROM (
  59. SELECT NULL [0], 'All' [1] UNION ALL
  60. SELECT
  61. TOP 100 PERCENT
  62. ccm.currencyId [0]
  63. ,ccm.currencyCode [1]
  64. FROM currencyMaster ccm WITH (NOLOCK)
  65. WHERE ISNULL(ccm.isDeleted, 'N') <> 'Y'
  66. ) x ORDER BY CASE WHEN x.[0] IS NULL THEN CAST(x.[0] AS VARCHAR) ELSE x.[1] END
  67. RETURN
  68. END
  69. ELSE IF @flag = 'bcul' --Base Currency List
  70. BEGIN
  71. SELECT [0], [1] FROM (
  72. SELECT NULL [0], 'All' [1] UNION ALL
  73. SELECT
  74. TOP 100 PERCENT
  75. ccm.currencyId [0]
  76. ,ccm.currencyCode [1]
  77. FROM currencyMaster ccm WITH (NOLOCK)
  78. WHERE ISNULL(ccm.isDeleted, 'N') <> 'Y'
  79. AND currencyId = 2
  80. ) x ORDER BY CASE WHEN x.[0] IS NULL THEN CAST(x.[0] AS VARCHAR) ELSE x.[1] END
  81. RETURN
  82. END
  83. ELSE IF @flag = 'l'
  84. BEGIN
  85. SELECT
  86. currencyId
  87. ,currencyCode = currencyCode + ISNULL(' - ' + currencyName, '')
  88. FROM currencyMaster WITH(NOLOCK)
  89. WHERE ISNULL(isDeleted, 'N') <> 'Y'
  90. ORDER BY currencyCode
  91. RETURN
  92. END
  93. ELSE IF @flag = 'l2'
  94. BEGIN
  95. SELECT DISTINCT
  96. curr.currencyCode
  97. ,currencyDesc = ISNULL(curr.currencyCode, '') + ISNULL(' - ' + curr.currencyName, '')
  98. FROM countryCurrency cc
  99. INNER JOIN currencyMaster curr ON cc.currencyId = curr.currencyId
  100. INNER JOIN countryMaster cm ON cc.countryId = cm.countryId AND ISNULL(cm.isOperativeCountry, 'N') = 'Y'
  101. WHERE ISNULL(cc.isDeleted, 'N') = 'N'
  102. --EXEC proc_countryCurrency @flag = 'lAll'
  103. --SELECT
  104. -- currencyCode
  105. -- ,currencyDesc = currencyCode + ISNULL(' - ' + currencyName, '')
  106. --FROM currencyMaster WITH(NOLOCK)
  107. --WHERE ISNULL(isDeleted, 'N') <> 'Y'
  108. --ORDER BY currencyCode
  109. RETURN
  110. END
  111. --- selecting a country id type
  112. ELSE IF @flag = 'id'
  113. BEGIN
  114. SELECT
  115. valueId
  116. ,detailTitle
  117. FROM staticDataValue WITH (NOLOCK)
  118. WHERE typeID=1300 AND ISNULL(IS_DELETE,'') <> 'Y'
  119. ORDER BY detailTitle
  120. RETURN
  121. END
  122. ELSE IF @flag = 'bc' --Base Currency
  123. BEGIN
  124. SELECT
  125. currencyId
  126. ,currencyCode
  127. FROM currencyMaster WITH(NOLOCK)
  128. WHERE ISNULL(isDeleted, 'N') <> 'Y'
  129. AND currencyCode IN ('USD', 'GBP')
  130. RETURN
  131. END
  132. ELSE IF @flag = 'bcd' --Base Currency Domestic
  133. BEGIN
  134. SELECT
  135. currencyId
  136. ,currencyCode
  137. FROM currencyMaster WITH(NOLOCK)
  138. WHERE ISNULL(isDeleted, 'N') <> 'Y'
  139. AND currencyCode IN ('NPR')
  140. RETURN
  141. END
  142. ELSE IF @flag = 'bcl'
  143. BEGIN
  144. SELECT
  145. currencyId
  146. ,currencyCode
  147. FROM currencyMaster WITH(NOLOCK)
  148. WHERE ISNULL(isDeleted, 'N') <> 'Y'
  149. AND currencyCode IN ('NPR', 'USD')
  150. END
  151. ELSE IF @flag = 'bcl1'
  152. BEGIN
  153. SELECT
  154. currencyId
  155. ,currencyCode
  156. FROM currencyMaster WITH(NOLOCK)
  157. WHERE ISNULL(isDeleted, 'N') <> 'Y'
  158. AND currencyCode IN ('USD')
  159. END
  160. IF @flag = 'i'
  161. BEGIN
  162. IF EXISTS(SELECT 'X' FROM currencyMaster WITH(NOLOCK) WHERE currencyCode = @currencyCode AND ISNULL(isDeleted, 'N') <> 'Y')
  163. BEGIN
  164. EXEC proc_errorHandler 1, 'Currency code already exists', NULL
  165. RETURN
  166. END
  167. BEGIN TRANSACTION
  168. INSERT INTO currencyMaster (
  169. currencyCode
  170. ,isoNumeric
  171. ,currencyName
  172. ,currencyDesc
  173. ,currencyDecimalName
  174. ,countAfterDecimal
  175. ,roundNoDecimal
  176. ,factor
  177. ,rateMin
  178. ,rateMax
  179. ,createdBy
  180. ,createdDate
  181. )
  182. SELECT
  183. @currencyCode
  184. ,@isoNumeric
  185. ,@currencyName
  186. ,@currencyDesc
  187. ,@currencyDecimalName
  188. ,@countAfterDecimal
  189. ,@roundNoDecimal
  190. ,@factor
  191. ,@rateMin
  192. ,@rateMax
  193. ,@user
  194. ,GETDATE()
  195. SET @modType = 'Insert'
  196. EXEC [dbo].proc_GetColumnToRow @logParamMain, @logIdentifier, @currencyId , @newValue OUTPUT
  197. INSERT INTO #msg(errorCode, msg, id)
  198. EXEC proc_applicationLogs 'i', NULL, @modType, @tableAlias, @currencyId, @user, @oldValue, @newValue, @module
  199. IF EXISTS (SELECT 'x' FROM #msg WHERE errorCode <> '0')
  200. BEGIN
  201. IF @@TRANCOUNT > 0
  202. ROLLBACK TRANSACTION
  203. EXEC proc_errorHandler 1, 'Failed to add new record.', @currencyId
  204. RETURN
  205. END
  206. IF @@TRANCOUNT > 0
  207. COMMIT TRANSACTION
  208. EXEC proc_errorHandler 0, 'Record has been added successfully.', @currencyId
  209. END
  210. ELSE IF @flag = 'a'
  211. BEGIN
  212. SELECT * FROM currencyMaster WITH(NOLOCK) WHERE currencyId = @currencyId
  213. END
  214. ELSE IF @flag = 'u'
  215. BEGIN
  216. BEGIN TRANSACTION
  217. UPDATE currencyMaster SET
  218. currencyCode = @currencyCode
  219. ,isoNumeric = @isoNumeric
  220. ,currencyName = @currencyName
  221. ,currencyDesc = @currencyDesc
  222. ,currencyDecimalName = @currencyDecimalName
  223. ,countAfterDecimal = @countAfterDecimal
  224. ,roundNoDecimal = @roundNoDecimal
  225. ,factor = @factor
  226. ,rateMin = @rateMin
  227. ,rateMax = @rateMax
  228. ,modifiedBy = @user
  229. ,modifiedDate = GETDATE()
  230. WHERE currencyId = @currencyId
  231. SET @modType = 'Update'
  232. EXEC [dbo].proc_GetColumnToRow @logParamMain, @logIdentifier, @currencyId, @newValue OUTPUT
  233. INSERT INTO #msg(errorCode, msg, id)
  234. EXEC proc_applicationLogs 'i', NULL, @modType, @tableAlias, @currencyId, @user, @oldValue, @newValue, @module
  235. IF EXISTS (SELECT 'x' FROM #msg WHERE errorCode <> '0')
  236. BEGIN
  237. IF @@TRANCOUNT > 0
  238. ROLLBACK TRANSACTION
  239. EXEC proc_errorHandler 1, 'Failed to update record.', @currencyId
  240. RETURN
  241. END
  242. IF @@TRANCOUNT > 0
  243. COMMIT TRANSACTION
  244. EXEC proc_errorHandler 0, 'Record updated successfully.', @currencyId
  245. END
  246. ELSE IF @flag = 'd'
  247. BEGIN
  248. BEGIN TRANSACTION
  249. UPDATE currencyMaster SET
  250. isDeleted = 'Y'
  251. ,modifiedDate = GETDATE()
  252. ,modifiedBy = @user
  253. WHERE currencyId = @currencyId
  254. SET @modType = 'Delete'
  255. EXEC [dbo].proc_GetColumnToRow @logParamMain, @logIdentifier, @currencyId, @oldValue OUTPUT
  256. INSERT INTO #msg(errorCode, msg, id)
  257. EXEC proc_applicationLogs 'i', NULL, @modType, @tableAlias, @currencyId, @user, @oldValue, @newValue, @module
  258. IF EXISTS (SELECT 'x' FROM #msg WHERE errorCode <> '0')
  259. BEGIN
  260. IF @@TRANCOUNT > 0
  261. ROLLBACK TRANSACTION
  262. EXEC proc_errorHandler 1, 'Failed to delete record.', @currencyId
  263. RETURN
  264. END
  265. IF @@TRANCOUNT > 0
  266. COMMIT TRANSACTION
  267. EXEC proc_errorHandler 0, 'Record deleted successfully.', @currencyId
  268. END
  269. ELSE IF @flag IN ('s')
  270. BEGIN
  271. IF @sortBy IS NULL
  272. SET @sortBy = 'currencyId'
  273. IF @sortOrder IS NULL
  274. SET @sortOrder = 'ASC'
  275. SET @table = '(
  276. SELECT
  277. main.currencyId
  278. ,main.currencyCode
  279. ,main.isoNumeric
  280. ,main.currencyName
  281. ,main.currencyDesc
  282. ,main.currencyDecimalName
  283. ,main.countAfterDecimal
  284. ,main.roundNoDecimal
  285. ,main.factor
  286. ,main.rateMin
  287. ,main.rateMax
  288. ,main.createdBy
  289. ,main.createdDate
  290. ,main.isDeleted
  291. FROM currencyMaster main WITH(NOLOCK)
  292. WHERE 1 = 1
  293. ) x'
  294. SET @sql_filter = ''
  295. SET @sql_filter = @sql_filter + ' AND ISNULL(isDeleted, '''') <> ''Y'''
  296. IF @currencyCode IS NOT NULL
  297. SET @sql_filter = @sql_filter + ' AND currencyCode = ''' + @currencyCode + ''''
  298. IF @isoNumeric IS NOT NULL
  299. SET @sql_filter = @sql_filter + ' AND isoNumeric = ''' + @isoNumeric + ''''
  300. IF @currencyName IS NOT NULL
  301. SET @sql_filter = @sql_filter + ' AND currencyName = ''%' + @currencyName + '%'''
  302. SET @select_field_list ='
  303. currencyId
  304. ,currencyCode
  305. ,isoNumeric
  306. ,currencyName
  307. ,currencyDesc
  308. ,currencyDecimalName
  309. ,countAfterDecimal
  310. ,roundNoDecimal
  311. ,factor
  312. ,rateMin
  313. ,rateMax
  314. ,createdBy
  315. ,createdDate
  316. ,isDeleted '
  317. EXEC dbo.proc_paging
  318. @table
  319. ,@sql_filter
  320. ,@select_field_list
  321. ,@extra_field_list
  322. ,@sortBy
  323. ,@sortOrder
  324. ,@pageSize
  325. ,@pageNumber
  326. END
  327. END TRY
  328. BEGIN CATCH
  329. IF @@TRANCOUNT > 0
  330. ROLLBACK TRANSACTION
  331. DECLARE @errorMessage VARCHAR(MAX)
  332. SET @errorMessage = ERROR_MESSAGE()
  333. EXEC proc_errorHandler 1, @errorMessage, @currencyId
  334. END CATCH