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.

418 lines
24 KiB

1 year ago
  1. USE [FastMoneyPro_Remit]
  2. GO
  3. /****** Object: StoredProcedure [dbo].[proc_externalBankSetup] 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_externalBankSetup]
  9. @flag VARCHAR(50) = NULL
  10. ,@user VARCHAR(30) = NULL
  11. ,@agentId VARCHAR(30) = NULL
  12. ,@parentId VARCHAR(30) = NULL
  13. ,@agentName VARCHAR(100) = NULL
  14. ,@agentCode VARCHAR(50) = NULL
  15. ,@agentAddress VARCHAR(200) = NULL
  16. ,@agentCountryId INT = NULL
  17. ,@agentCountry VARCHAR(100) = NULL
  18. ,@agentLocation VARCHAR(200) = NULL
  19. ,@agentPhone VARCHAR(20) = NULL
  20. ,@agentFax VARCHAR(20) = NULL
  21. ,@agentType INT = NULL
  22. ,@mapCodeInt VARCHAR(20) = NULL
  23. ,@mapCodeDom VARCHAR(20) = NULL
  24. ,@agentDetails VARCHAR(MAX) = NULL
  25. ,@parentName VARCHAR(100) = NULL
  26. ,@haschanged CHAR(1) = NULL
  27. ,@isActive CHAR(1) = NULL
  28. ,@extCode VARCHAR(200) = NULL
  29. ,@swiftCode VARCHAR(200) = NULL
  30. ,@routingCode VARCHAR(200) = NULL
  31. ,@isHeadOffice CHAR(1) = NULL
  32. ,@isDeleted CHAR(1) = NULL
  33. ,@sortBy VARCHAR(50) = NULL
  34. ,@sortOrder VARCHAR(5) = NULL
  35. ,@pageSize INT = NULL
  36. ,@pageNumber INT = NULL
  37. ,@isBlocked VARCHAR(20) = NULL
  38. AS
  39. SET NOCOUNT ON
  40. DECLARE @glcode VARCHAR(10), @acct_num VARCHAR(20);
  41. CREATE TABLE #tempACnum (acct_num VARCHAR(20));
  42. if @flag='s'
  43. begin
  44. SET @agentType='2905'
  45. --SET @parentId='3'
  46. end
  47. if @flag='t'
  48. begin
  49. SET @agentType='2906'
  50. end
  51. SET XACT_ABORT ON
  52. BEGIN TRY
  53. CREATE TABLE #msg(errorCode INT, msg VARCHAR(100), id INT)
  54. DECLARE
  55. @sql VARCHAR(MAX)
  56. ,@oldValue VARCHAR(MAX)
  57. ,@newValue VARCHAR(MAX)
  58. ,@tableName VARCHAR(50)
  59. ,@logIdentifier VARCHAR(100)
  60. ,@logParamMain VARCHAR(100)
  61. ,@tableAlias VARCHAR(100)
  62. ,@modType VARCHAR(6)
  63. ,@module INT
  64. ,@select_field_list VARCHAR(MAX)
  65. ,@extra_field_list VARCHAR(MAX)
  66. ,@table VARCHAR(MAX)
  67. ,@sql_filter VARCHAR(MAX)
  68. ,@ApprovedFunctionId INT
  69. SELECT
  70. @logIdentifier = 'agentId'
  71. ,@logParamMain = 'agentMaster'
  72. ,@tableAlias = 'External Bank'
  73. ,@module = 20
  74. ,@ApprovedFunctionId = 20101030
  75. IF @flag = 'a'
  76. BEGIN
  77. SELECT isBlocked = agentBlock,* FROM agentMaster where agentId = @agentId
  78. END
  79. ELSE IF @flag = 'i'
  80. BEGIN
  81. IF EXISTS(SELECT 'X' FROM agentMaster
  82. WHERE agentName = @agentName AND agentType IN (2905, 2906)
  83. AND ISNULL(isDeleted, 'N') <> 'Y' AND ISNULL(isActive, 'N') = 'Y')
  84. BEGIN
  85. EXEC proc_errorHandler 1, 'Agent with this name already exists', NULL
  86. RETURN
  87. END
  88. BEGIN TRANSACTION
  89. INSERT INTO agentMaster (
  90. parentId
  91. ,agentName
  92. ,agentCode
  93. ,agentAddress
  94. ,agentCountryId
  95. ,agentCountry
  96. ,agentLocation
  97. ,agentPhone1
  98. ,agentType
  99. ,mapCodeInt
  100. ,mapCodeIntAc
  101. ,mapCodeDom
  102. ,extCode
  103. ,swiftCode
  104. ,routingCode
  105. ,isHeadOffice
  106. ,payOption
  107. ,isActive
  108. ,createdDate
  109. ,createdBy
  110. ,agentBlock
  111. )
  112. SELECT
  113. @parentId
  114. ,@agentName
  115. ,@agentCode
  116. ,@agentAddress
  117. ,@agentCountryId
  118. ,@agentCountry
  119. ,@agentLocation
  120. ,@agentPhone
  121. ,@agentType
  122. ,@mapCodeInt
  123. ,@mapCodeInt
  124. ,@mapCodeDom
  125. ,@extCode
  126. ,@swiftCode
  127. ,@routingCode
  128. ,@isHeadOffice
  129. ,40
  130. ,'Y'
  131. ,GETDATE()
  132. ,@user
  133. ,@isBlocked
  134. SET @agentId = SCOPE_IDENTITY()
  135. UPDATE dbo.agentMaster SET
  136. mapCodeInt = @agentId
  137. ,mapCodeDom = @agentId
  138. ,mapCodeDomAC = @agentId -- used for a/c pay domestic
  139. ,mapCodeIntAc = @agentId
  140. WHERE agentId = @agentId
  141. SET @modType = 'Insert'
  142. EXEC [dbo].proc_GetColumnToRow @logParamMain, @logIdentifier, @agentId, @newValue OUTPUT
  143. INSERT INTO #msg(errorCode, msg, id)
  144. EXEC proc_applicationLogs 'i', NULL, @modType, @tableAlias, @agentId, @user, @oldValue, @newValue
  145. IF EXISTS (SELECT 'x' FROM #msg WHERE errorCode <> '0')
  146. BEGIN
  147. IF @@TRANCOUNT > 0
  148. ROLLBACK TRANSACTION
  149. EXEC proc_errorHandler 1, 'Failed to add new record.', @agentId
  150. RETURN
  151. END
  152. IF @@TRANCOUNT > 0
  153. COMMIT TRANSACTION
  154. EXEC proc_errorHandler 0, 'Record has been added successfully.', @agentId
  155. END
  156. ELSE IF @flag = 'u'
  157. BEGIN
  158. /*
  159. IF EXISTS(SELECT 'X' FROM agentMaster WITH(NOLOCK)
  160. WHERE agentName = @agentName AND agentType IN (2905, 2906) AND agentId <> @agentId
  161. AND ISNULL(isDeleted, 'N') <> 'Y' AND ISNULL(isActive, 'N') = 'Y')
  162. BEGIN
  163. EXEC proc_errorHandler 1, 'Agent with this name already exists', NULL
  164. RETURN
  165. END*/
  166. BEGIN TRANSACTION
  167. UPDATE agentMaster SET
  168. agentName = @agentName
  169. ,agentCode = @agentCode
  170. ,agentAddress = @agentAddress
  171. ,agentCountryId = @agentCountryId
  172. ,agentCountry = @agentCountry
  173. ,agentLocation = @agentLocation
  174. ,agentPhone1 = @agentPhone
  175. ,agentType = @agentType
  176. ,mapCodeInt = @mapCodeInt
  177. ,mapCodeDom = @mapCodeDom
  178. ,mapCodeDomAc = @mapCodeDom
  179. ,extCode = @extCode
  180. ,swiftCode = @swiftCode
  181. ,routingCode = @routingCode
  182. ,isHeadOffice = @isHeadOffice
  183. ,agentBlock = @isBlocked
  184. WHERE agentId = @agentId
  185. SET @modType = 'Update'
  186. EXEC [dbo].proc_GetColumnToRow @logParamMain, @logIdentifier, @agentId, @newValue OUTPUT
  187. INSERT INTO #msg(errorCode, msg, id)
  188. EXEC proc_applicationLogs 'i', NULL, @modType, @tableAlias, @agentId, @user, @oldValue, @newValue
  189. IF EXISTS (SELECT 'x' FROM #msg WHERE errorCode <> '0')
  190. BEGIN
  191. IF @@TRANCOUNT > 0
  192. ROLLBACK TRANSACTION
  193. EXEC proc_errorHandler 1, 'Failed to update record.', @agentId
  194. RETURN
  195. END
  196. IF @@TRANCOUNT > 0
  197. COMMIT TRANSACTION
  198. EXEC proc_errorHandler 0, 'Record updated successfully.', @agentId
  199. END
  200. ELSE IF @flag = 'd'
  201. BEGIN
  202. BEGIN TRANSACTION
  203. UPDATE agentMaster SET
  204. isDeleted = 'Y'
  205. ,modifiedDate = GETDATE()
  206. ,modifiedBy = @user
  207. WHERE agentId = @agentId
  208. SET @modType = 'Delete'
  209. EXEC [dbo].proc_GetColumnToRow @logParamMain, @logIdentifier, @agentId, @oldValue OUTPUT
  210. INSERT INTO #msg(errorCode, msg, id)
  211. EXEC proc_applicationLogs 'i', NULL, @modType, @tableAlias, @agentId, @user, @oldValue, @newValue
  212. IF EXISTS (SELECT 'x' FROM #msg WHERE errorCode <> '0')
  213. BEGIN
  214. IF @@TRANCOUNT > 0
  215. ROLLBACK TRANSACTION
  216. EXEC proc_errorHandler 1, 'Failed to delete record.', @agentId
  217. RETURN
  218. END
  219. IF @@TRANCOUNT > 0
  220. COMMIT TRANSACTION
  221. EXEC proc_errorHandler 0, 'Record deleted successfully.', @agentId
  222. END
  223. ELSE IF @flag ='t'
  224. BEGIN
  225. IF @sortBy IS NULL
  226. SET @sortBy = 'agentId'
  227. IF @sortOrder IS NULL
  228. SET @sortOrder = 'ASC'
  229. SET @table = '(
  230. SELECT
  231. main.parentId
  232. ,main.agentId
  233. ,main.agentName
  234. ,main.agentAddress
  235. ,countryName = main.agentCountry
  236. ,main.agentLocation
  237. ,location = adl.districtName
  238. ,main.agentPhone1
  239. ,main.agentType
  240. ,bankMapCode = main.mapCodeDom
  241. ,main.mapCodeInt
  242. ,main.extCode
  243. ,main.swiftCode
  244. ,main.routingCode
  245. ,main.isHeadOffice
  246. ,main.createdBy
  247. ,isBlocked=ISNULL(main.agentBlock,''N'')
  248. FROM agentMaster main
  249. LEFT JOIN api_districtList adl WITH(NOLOCK) ON main.agentLocation = adl.districtCode
  250. WHERE main.agentType = 2906 AND main.parentId='+CAST(@parentId as varchar)+'
  251. AND isnull(main.isDeleted,''N'') = ''N''
  252. ) x'
  253. SET @sql_filter = ''
  254. IF @haschanged IS NOT NULL
  255. SET @sql_filter = @sql_filter + ' AND haschanged = ''' + CAST(@haschanged AS VARCHAR) + ''''
  256. IF @agentCountry IS NOT NULL
  257. SET @sql_filter = @sql_filter + ' AND ISNULL(countryName, '''') = ''' + CAST(@agentCountry AS VARCHAR) + ''''
  258. IF @agentType IS NOT NULL
  259. SET @sql_filter = @sql_filter + ' AND ISNULL(agentType, '''') = ' + CAST(@agentType AS VARCHAR)
  260. IF @agentName IS NOT NULL
  261. SET @sql_filter = @sql_filter + ' AND ISNULL(agentName, '''') LIKE ''%' + @agentName + '%'''
  262. IF @parentName IS NOT NULL
  263. SET @sql_filter = @sql_filter + ' AND ISNULL(parentName, '''') LIKE ''%' + @parentName + '%'''
  264. IF @isBlocked IS NOT NULL
  265. SET @sql_filter = @sql_filter + ' AND isBlocked LIKE ''%' + @isBlocked + '%'''
  266. SET @select_field_list ='
  267. parentId
  268. ,agentId
  269. ,agentName
  270. ,agentAddress
  271. ,countryName
  272. ,agentLocation
  273. ,location
  274. ,agentPhone1
  275. ,agentType
  276. ,bankMapCode
  277. ,mapCodeInt
  278. ,extCode
  279. ,swiftCode
  280. ,routingCode
  281. ,isHeadOffice
  282. ,createdBy
  283. ,isBlocked
  284. '
  285. --PRINT @table
  286. EXEC dbo.proc_paging
  287. @table
  288. ,@sql_filter
  289. ,@select_field_list
  290. ,@extra_field_list
  291. ,@sortBy
  292. ,@sortOrder
  293. ,@pageSize
  294. ,@pageNumber
  295. END
  296. ELSE IF @flag ='s'
  297. BEGIN
  298. --IF @sortBy IS NULL
  299. SET @sortBy = 'agentName'
  300. IF @sortOrder IS NULL
  301. SET @sortOrder = 'ASC'
  302. SET @table = '(
  303. SELECT
  304. main.agentId
  305. ,main.agentName
  306. ,main.agentAddress
  307. ,countryName = main.agentCountry
  308. ,main.agentLocation
  309. ,main.agentPhone1
  310. ,main.agentType
  311. ,main.mapCodeInt
  312. ,main.mapCodeDom
  313. ,main.extCode
  314. ,main.swiftCode
  315. ,main.routingCode
  316. ,main.isHeadOffice
  317. ,agentType1 = sdv.detailTitle
  318. ,main.createdBy
  319. ,isBlocked=ISNULL(main.agentBlock,''N'')
  320. FROM agentMaster main
  321. LEFT JOIN staticDataValue sdv WITH(NOLOCK) ON main.agentType = sdv.valueId
  322. WHERE main.agentType=2905
  323. and isnull(main.isDeleted,''N'')<>''Y''
  324. ) x'
  325. SET @sql_filter = ''
  326. IF @haschanged IS NOT NULL
  327. SET @sql_filter = @sql_filter + ' AND haschanged = ''' + CAST(@haschanged AS VARCHAR) + ''''
  328. IF @agentCountry IS NOT NULL
  329. SET @sql_filter = @sql_filter + ' AND ISNULL(countryName, '''') = ''' + CAST(@agentCountry AS VARCHAR) + ''''
  330. IF @agentType IS NOT NULL
  331. SET @sql_filter = @sql_filter + ' AND ISNULL(agentType, '''') = ' + CAST(@agentType AS VARCHAR)
  332. IF @agentName IS NOT NULL
  333. SET @sql_filter = @sql_filter + ' AND ISNULL(agentName, '''') LIKE ''%' + @agentName + '%'''
  334. IF @isBlocked IS NOT NULL
  335. SET @sql_filter = @sql_filter + ' AND isBlocked LIKE ''%' + @isBlocked + '%'''
  336. ----print @table
  337. SET @select_field_list ='
  338. agentId
  339. ,agentName
  340. ,agentAddress
  341. ,countryName
  342. ,agentLocation
  343. ,agentPhone1
  344. ,agentType
  345. ,mapCodeInt
  346. ,mapCodeDom
  347. ,extCode
  348. ,swiftCode
  349. ,routingCode
  350. ,isHeadOffice
  351. ,agentType1
  352. ,createdBy
  353. ,isBlocked
  354. '
  355. --SELECT @table
  356. EXEC dbo.proc_paging
  357. @table
  358. ,@sql_filter
  359. ,@select_field_list
  360. ,@extra_field_list
  361. ,@sortBy
  362. ,@sortOrder
  363. ,@pageSize
  364. ,@pageNumber
  365. END
  366. END TRY
  367. BEGIN CATCH
  368. IF @@TRANCOUNT > 0
  369. ROLLBACK TRANSACTION
  370. SELECT 1 error_code, ERROR_MESSAGE() mes, null id
  371. END CATCH
  372. GO