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.

468 lines
26 KiB

1 year ago
  1. USE [FastMoneyPro_Remit]
  2. GO
  3. /****** Object: StoredProcedure [dbo].[proc_fileFormat] 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_fileFormat]
  9. @flag VARCHAR(50) = NULL
  10. ,@user VARCHAR(30) = NULL
  11. ,@flFormatId VARCHAR(30) = NULL
  12. ,@formatCode VARCHAR(10) = NULL
  13. ,@formatType VARCHAR(50) = NULL
  14. ,@flDescription VARCHAR(500) = NULL
  15. ,@fldSeperator VARCHAR(20) = NULL
  16. ,@fixDataLength CHAR(1) = NULL
  17. ,@dataSourceCode VARCHAR(50) = NULL
  18. ,@sourceType VARCHAR(50) = NULL
  19. ,@includeColHeader CHAR(1) = NULL
  20. ,@recordSeperator VARCHAR(10) = NULL
  21. ,@filterClause VARCHAR(MAX) = NULL
  22. ,@includeSerialNo CHAR(1) = NULL
  23. ,@headerFormatCode INT = NULL
  24. ,@isActive CHAR(1) = NULL
  25. ,@agentId INT = NULL
  26. ,@fileFormatIds VARCHAR(MAX) = NULL
  27. ,@agentFfId BIGINT = NULL
  28. ,@agentCountryId INT = NULL
  29. ,@sortBy VARCHAR(50) = NULL
  30. ,@sortOrder VARCHAR(5) = NULL
  31. ,@pageSize INT = NULL
  32. ,@pageNumber INT = NULL
  33. AS
  34. /*
  35. EXEC proc_fileFormat @flag = 'sfl', @dataSourceCode = 'tran' -- vw_Export_tran
  36. @flag,
  37. rs - Displays row serperator in a list
  38. sfl - Displays Field List From a Data source (generally View)
  39. ft - File Format Type List
  40. */
  41. SET NOCOUNT ON
  42. SET XACT_ABORT ON
  43. BEGIN TRY
  44. IF @filterClause IS NOT NULL
  45. SET @filterClause = REPLACE(@filterClause,'"','''')
  46. CREATE TABLE #msg(errorCode INT, msg VARCHAR(100), id INT)
  47. DECLARE
  48. @sql VARCHAR(MAX)
  49. ,@oldValue VARCHAR(MAX)
  50. ,@newValue VARCHAR(MAX)
  51. ,@module VARCHAR(10)
  52. ,@tableAlias VARCHAR(100)
  53. ,@logIdentifier VARCHAR(50)
  54. ,@logParamMod VARCHAR(100)
  55. ,@logParamMain VARCHAR(100)
  56. ,@table VARCHAR(MAX)
  57. ,@select_field_list VARCHAR(MAX)
  58. ,@extra_field_list VARCHAR(MAX)
  59. ,@sql_filter VARCHAR(MAX)
  60. ,@modType VARCHAR(6)
  61. SELECT
  62. @logIdentifier = 'flFormatId'
  63. ,@logParamMain = 'fileFormat'
  64. ,@logParamMod = 'fileFormatMod'
  65. ,@module = '10'
  66. ,@tableAlias = 'fileFormat'
  67. IF @formatType IN ('csv')
  68. BEGIN
  69. SELECT
  70. @fldSeperator = ','
  71. END
  72. IF @flag = 'sfl'
  73. BEGIN
  74. SELECT
  75. dataTypeGroup + '-' + columnName AS value
  76. ,columnName f --title
  77. ,columnName title
  78. FROM (
  79. SELECT
  80. COLUMN_NAME columnName
  81. ,CASE
  82. WHEN data_type IN ('real', 'money', 'decimal', 'float') THEN 'n'
  83. WHEN data_type IN ('date', 'datetime') THEN 'd'
  84. ELSE 'o'
  85. END dataTypeGroup
  86. FROM INFORMATION_SCHEMA.COLUMNS
  87. WHERE table_name = 'vw_Export_' + @dataSourceCode
  88. AND COLUMN_NAME NOT IN ('filterDate', 'tranId', 'filterAgent')
  89. ) x
  90. ORDER BY value
  91. RETURN
  92. END
  93. ELSE IF @flag = 'rs' -- Row Seperator
  94. BEGIN
  95. SELECT
  96. '
  97. ' AS rowSeperatorId, 'New Line' AS rowSeperatorName UNION ALL
  98. SELECT '', 'No Seperator' UNION ALL
  99. SELECT '|', 'Pipe (|)' UNION ALL
  100. SELECT ';', 'Semi-Colon (;)' UNION ALL
  101. SELECT ',', 'Comma (,)'
  102. END
  103. ELSE IF @flag = 'fdsp' --File format data source
  104. BEGIN
  105. SELECT
  106. Name dataSourceCodeId
  107. ,Name dataSourceCodeName
  108. FROM (
  109. SELECT name
  110. FROM sys.objects
  111. WHERE [type] = 'P'
  112. AND name like 'proc_exportFile_%'
  113. ) vw
  114. --select * FROM INFORMATION_SCHEMA.COLUMNS
  115. RETURN
  116. END
  117. ELSE IF @flag = 'fds' --File format data source
  118. BEGIN
  119. SELECT
  120. Name dataSourceCodeId
  121. ,Name dataSourceCodeName
  122. FROM (
  123. SELECT DISTINCT
  124. SUBSTRING(t.TABLE_NAME,11 ,800) Name
  125. FROM INFORMATION_SCHEMA.VIEWS t
  126. INNER JOIN INFORMATION_SCHEMA.COLUMNS c ON t.TABLE_NAME = c.TABLE_NAME
  127. WHERE t.TABLE_NAME LIKE 'vw_Export_%' AND c.COLUMN_NAME IN ('filterDate', 'filterAgent')
  128. ) vw
  129. --select * FROM INFORMATION_SCHEMA.COLUMNS
  130. RETURN
  131. END
  132. ELSE IF @flag = 'ft' --File Format Type
  133. BEGIN
  134. SELECT 'csv' AS formatTypeId, 'CSV' AS formatTypeName UNION ALL
  135. SELECT 'html', 'HTML' UNION ALL
  136. SELECT 'xls', 'Excel (.xls)' UNION ALL
  137. SELECT 'txt', 'Text' UNION ALL
  138. SELECT 'xml', 'XML'
  139. RETURN
  140. END
  141. ELSE IF @flag = 'ff-list-d' --File format for agent list for drop down
  142. BEGIN
  143. SELECT
  144. aff.flFormatId
  145. ,ff.formatCode + ' ( ' + ff.formatType + ')' formatCode
  146. FROM fileFormat ff WITH(NOLOCK)
  147. INNER JOIN agentFileFormat aff WITH(NOLOCK) ON ff.flFormatId = aff.flFormatId
  148. WHERE aff.agentId = @agentId
  149. ORDER BY formatCode ASC
  150. RETURN;
  151. END
  152. ELSE IF @flag = 'al' --Agent List
  153. BEGIN
  154. SELECT distinct am.agentId, am.agentName AS agentName
  155. FROM agentMaster am
  156. INNER JOIN agentFileFormat F on am.agentId = F.agentId
  157. WHERE am.agentType = '2903'
  158. AND am.agentCountryId = @agentCountryId
  159. RETURN
  160. END
  161. ELSE IF @flag = 'ff-list' -- File format for agent list
  162. BEGIN
  163. SELECT 1 totalRow, 1 pageNumber, 1 totalPage, 0 pageSize
  164. SET @table = '
  165. SELECT
  166. aff.agentFfId
  167. ,aff.agentId
  168. ,ff.formatCode
  169. ,ff.formatType
  170. ,ff.flDescription
  171. FROM fileFormat ff WITH(NOLOCK)
  172. INNER JOIN agentFileFormat aff WITH(NOLOCK) ON ff.flFormatId = aff.flFormatId
  173. WHERE aff.agentId =' + CAST(@agentId AS VARCHAR(50)) +
  174. ' ORDER BY ' + ISNULL(@sortBy, 'formatCode') + ' ' + ISNULL(@sortOrder, '')
  175. EXEC(@table)
  176. RETURN
  177. END
  178. ELSE IF @flag = 'ff-list-show' -- File format for agent list
  179. BEGIN
  180. SELECT 1 totalRow, 1 pageNumber, 1 totalPage, 0 pageSize
  181. SET @table =
  182. '
  183. SELECT * FROM fileFormat
  184. WHERE flFormatId NOT IN (SELECT flFormatId FROM agentFileFormat WHERE agentId =' + CAST(@agentId AS VARCHAR(50)) + ')' +
  185. ' ORDER BY ' + ISNULL(@sortBy, 'formatCode') + ' ' + ISNULL(@sortOrder, '')
  186. print @table
  187. EXEC(@table)
  188. END
  189. ELSE IF @flag = 'ff-insert' --Insert file format for agent
  190. BEGIN
  191. SET @sql = '
  192. INSERT INTO agentFileFormat(agentId, flFormatId, createdBy, createdDate)
  193. SELECT agentId=' + CAST(@agentId AS VARCHAR(50)) + ', flFormatId, ''' + @user + ''', GETDATE()
  194. FROM fileFormat
  195. WHERE flFormatId IN (' + ISNULL(NULLIF(@fileFormatIds,''), '0') + ')
  196. AND flFormatId NOT IN(SELECT flFormatId FROM agentFileFormat WHERE agentId =' + CAST(@agentId AS VARCHAR(50)) + ')
  197. '
  198. BEGIN TRY
  199. EXEC(@sql)
  200. SELECT 0 errorCode, 'File format has been added successfully.' msg, @agentId id
  201. END TRY
  202. BEGIN CATCH
  203. SELECT 1 errorCode, ERROR_MESSAGE() msg, @agentId id
  204. END CATCH
  205. RETURN
  206. END
  207. ELSE IF @flag = 'ff-delete' --delete agent file format
  208. BEGIN
  209. DELETE FROM agentFileFormat WHERE agentFfId = @agentFfId
  210. SELECT 0 errorCode, 'File format has been deleted successfully.' msg, @agentFfId id
  211. RETURN
  212. END
  213. ELSE IF @flag = 'ifl' --IS fixed Length
  214. BEGIN
  215. SELECT ISNULL(fixDataLength, 'N') fixDataLength FROM fileFormat WHERE flFormatId = @flFormatId
  216. RETURN
  217. END
  218. ELSE IF @flag = 'i'
  219. BEGIN
  220. IF EXISTS (SELECT 'x' FROM fileFormat WHERE formatCode = @formatCode AND ISNULL(isDeleted, '') <> 'Y')
  221. BEGIN
  222. EXEC proc_errorHandler 1, 'Please check the Format code. Format code already exists.', @flFormatId
  223. RETURN
  224. END
  225. -- alter table fileFormat add sourceType varchar(200)
  226. -- @sourceType
  227. BEGIN TRANSACTION
  228. INSERT INTO fileFormat (
  229. formatCode
  230. ,formatType
  231. ,flDescription
  232. ,fldSeperator
  233. ,fixDataLength
  234. ,dataSourceCode
  235. ,includeColHeader
  236. ,recordSeperator
  237. ,filterClause
  238. ,headerFormatCode
  239. ,includeSerialNo
  240. ,isActive
  241. ,createdBy
  242. ,createdDate
  243. ,sourceType
  244. )
  245. SELECT
  246. @formatCode
  247. ,@formatType
  248. ,@flDescription
  249. ,@fldSeperator
  250. ,@fixDataLength
  251. ,@dataSourceCode
  252. ,@includeColHeader
  253. ,@recordSeperator
  254. ,@filterClause
  255. ,@headerFormatCode
  256. ,@includeSerialNo
  257. ,@isActive
  258. ,@user
  259. ,GETDATE()
  260. ,@sourceType
  261. SET @modType = 'I'
  262. EXEC [dbo].proc_GetColumnToRow @logParamMain, @logIdentifier, @flFormatId , @newValue OUTPUT
  263. INSERT INTO #msg(errorCode, msg, id)
  264. EXEC proc_applicationLogs 'i', NULL, @modType, @tableAlias, @flFormatId, @user, @oldValue, @newValue
  265. IF EXISTS (SELECT 'x' FROM #msg WHERE errorCode <> '0')
  266. BEGIN
  267. IF @@TRANCOUNT > 0
  268. ROLLBACK TRANSACTION
  269. EXEC proc_errorHandler 1, 'Failed to add new record.', @flFormatId
  270. RETURN
  271. END
  272. IF @@TRANCOUNT > 0
  273. COMMIT TRANSACTION
  274. EXEC proc_errorHandler 0, 'Record has been added successfully.', @flFormatId
  275. END
  276. ELSE IF @flag = 'a'
  277. BEGIN
  278. SELECT * FROM fileFormat WITH(NOLOCK) WHERE flFormatId = @flFormatId
  279. END
  280. ELSE IF @flag = 'sourceType'
  281. BEGIN
  282. SELECT sourceType formatType, dataSourceCode FROM fileFormat WITH(NOLOCK) WHERE flFormatId = @flFormatId
  283. END
  284. ELSE IF @flag = 'u'
  285. BEGIN
  286. IF EXISTS (SELECT 'x' FROM fileFormat WHERE formatCode = @formatCode AND ISNULL(isDeleted, '') <> 'Y' AND flFormatId <> @flFormatId)
  287. BEGIN
  288. EXEC proc_errorHandler 1, 'Please check the Format code. Format code already exists.', @flFormatId
  289. RETURN
  290. END
  291. EXEC [dbo].proc_GetColumnToRow @logParamMain, @logIdentifier, @flFormatId, @oldValue OUTPUT
  292. BEGIN TRANSACTION
  293. UPDATE fileFormat SET
  294. formatCode = @formatCode
  295. ,formatType = @formatType
  296. ,flDescription = @flDescription
  297. ,fldSeperator = @fldSeperator
  298. ,fixDataLength = @fixDataLength
  299. ,dataSourceCode = @dataSourceCode
  300. ,includeColHeader = @includeColHeader
  301. ,recordSeperator = @recordSeperator
  302. ,filterClause = @filterClause
  303. ,headerFormatCode = @headerFormatCode
  304. ,isActive = @isActive
  305. ,includeSerialNo = @includeSerialNo
  306. ,modifiedBy = @user
  307. ,modifiedDate = GETDATE()
  308. ,sourceType=@sourceType
  309. WHERE flFormatId = @flFormatId
  310. IF @fixDataLength = 'N'
  311. BEGIN
  312. UPDATE fileFormatDetails SET
  313. size = NULL
  314. WHERE flFormatId = @flFormatId
  315. END
  316. SET @modType = 'U'
  317. EXEC [dbo].proc_GetColumnToRow @logParamMain, @logIdentifier, @flFormatId, @newValue OUTPUT
  318. INSERT INTO #msg(errorCode, msg, id)
  319. EXEC proc_applicationLogs 'i', NULL, @modType, @tableAlias, @flFormatId, @user, @oldValue, @newValue
  320. IF EXISTS (SELECT 'x' FROM #msg WHERE errorCode <> '0')
  321. BEGIN
  322. IF @@TRANCOUNT > 0
  323. ROLLBACK TRANSACTION
  324. EXEC proc_errorHandler 1, 'Failed to update record.', @flFormatId
  325. RETURN
  326. END
  327. IF @@TRANCOUNT > 0
  328. COMMIT TRANSACTION
  329. EXEC proc_errorHandler 0, 'Record updated successfully.', @flFormatId
  330. END
  331. ELSE IF @flag = 'd'
  332. BEGIN
  333. IF EXISTS (SELECT 'x' FROM fileFormatDetails WHERE flFormatId = @flFormatId)
  334. BEGIN
  335. SELECT 1 errorCode, 'Can not delete this File Format. File Format is in use.' Msg, @flFormatId id
  336. RETURN
  337. END
  338. BEGIN TRANSACTION
  339. UPDATE fileFormat SET
  340. isDeleted = 'Y'
  341. ,modifiedDate = GETDATE()
  342. ,modifiedBy = @user
  343. WHERE flFormatId = @flFormatId
  344. SET @modType = 'D'
  345. EXEC [dbo].proc_GetColumnToRow @logParamMain, @logIdentifier, @flFormatId, @oldValue OUTPUT
  346. INSERT INTO #msg(errorCode, msg, id)
  347. EXEC proc_applicationLogs 'i', NULL, @modType, @tableAlias, @flFormatId, @user, @oldValue, @newValue
  348. IF EXISTS (SELECT 'x' FROM #msg WHERE errorCode <> '0')
  349. BEGIN
  350. IF @@TRANCOUNT > 0
  351. ROLLBACK TRANSACTION
  352. EXEC proc_errorHandler 1, 'Failed to delete record.', @flFormatId
  353. RETURN
  354. END
  355. IF @@TRANCOUNT > 0
  356. COMMIT TRANSACTION
  357. EXEC proc_errorHandler 0, 'Record deleted successfully.', @flFormatId
  358. END
  359. ELSE IF @flag IN ('s')
  360. BEGIN
  361. IF @sortBy IS NULL
  362. SET @sortBy = 'flFormatId'
  363. IF @sortOrder IS NULL
  364. SET @sortOrder = 'ASC'
  365. SET @table = '(
  366. SELECT
  367. main.flFormatId
  368. ,main.formatCode
  369. ,main.formatType
  370. ,main.flDescription
  371. ,main.fldSeperator
  372. ,main.fixDataLength
  373. ,main.dataSourceCode
  374. ,main.includeColHeader
  375. ,main.recordSeperator
  376. ,main.headerFormatCode
  377. ,main.createdBy
  378. ,main.createdDate
  379. ,main.isDeleted
  380. FROM fileFormat main WITH(NOLOCK)
  381. WHERE ISNULL(isDeleted, '''') <> ''Y''
  382. ) x'
  383. SET @sql_filter = ''
  384. IF @formatCode IS NOT NULL
  385. SET @sql_filter = @sql_filter + ' AND ISNULL(formatCode, '''') LIKE ''' + @formatCode + '%'''
  386. IF @flDescription IS NOT NULL
  387. SET @sql_filter = @sql_filter + ' AND ISNULL(formatCode, '''') LIKE ''' + @flDescription + '%'''
  388. SET @select_field_list ='
  389. flFormatId
  390. ,formatCode
  391. ,formatType
  392. ,flDescription
  393. ,fldSeperator
  394. ,fixDataLength
  395. ,dataSourceCode
  396. ,includeColHeader
  397. ,recordSeperator
  398. ,headerFormatCode
  399. ,createdBy
  400. ,createdDate
  401. ,isDeleted
  402. '
  403. EXEC dbo.proc_paging
  404. @table
  405. ,@sql_filter
  406. ,@select_field_list
  407. ,@extra_field_list
  408. ,@sortBy
  409. ,@sortOrder
  410. ,@pageSize
  411. ,@pageNumber
  412. END
  413. END TRY
  414. BEGIN CATCH
  415. IF @@TRANCOUNT > 0
  416. ROLLBACK TRANSACTION
  417. DECLARE @errorMessage VARCHAR(MAX)
  418. SET @errorMessage = ERROR_MESSAGE()
  419. EXEC proc_errorHandler 1, @errorMessage, @flFormatId
  420. END CATCH
  421. GO