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.

289 lines
16 KiB

1 year ago
  1. USE [FastMoneyPro_Remit]
  2. GO
  3. /****** Object: StoredProcedure [dbo].[proc_agentContactPerson] 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_agentContactPerson]
  9. @flag VARCHAR(50) = NULL
  10. ,@user VARCHAR(30) = NULL
  11. ,@acpId VARCHAR(30) = NULL
  12. ,@agentId INT = NULL
  13. ,@name VARCHAR(50) = NULL
  14. ,@country INT = NULL
  15. ,@state INT = NULL
  16. ,@city VARCHAR(30) = NULL
  17. ,@zip VARCHAR(10) = NULL
  18. ,@address VARCHAR(100) = NULL
  19. ,@phone VARCHAR(20) = NULL
  20. ,@mobile1 VARCHAR(20) = NULL
  21. ,@mobile2 VARCHAR(20) = NULL
  22. ,@fax VARCHAR(20) = NULL
  23. ,@email VARCHAR(50) = NULL
  24. ,@post VARCHAR(50) = NULL
  25. ,@contactPersonType INT = NULL
  26. ,@isPrimary CHAR(1) = 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 = 'acpId'
  52. ,@logParamMain = 'agentContactPerson'
  53. ,@logParamMod = 'agentContactPersonMod'
  54. ,@module = '20'
  55. ,@tableAlias = 'Agent Contact Person'
  56. IF @flag = 'i'
  57. BEGIN
  58. IF (@isPrimary = 'Y')
  59. BEGIN
  60. IF EXISTS(SELECT 'X' FROM agentContactPerson WHERE agentId = @agentId AND contactPersonType = @contactPersonType AND isPrimary = 'Y')
  61. BEGIN
  62. EXEC proc_errorHandler 1, 'Cannot insert record. Primary Contact Person has already been set', @agentId
  63. RETURN
  64. END
  65. END
  66. BEGIN TRANSACTION
  67. INSERT INTO agentContactPerson (
  68. agentId
  69. ,name
  70. ,country
  71. ,state
  72. ,city
  73. ,zip
  74. ,address
  75. ,phone
  76. ,mobile1
  77. ,mobile2
  78. ,fax
  79. ,email
  80. ,post
  81. ,contactPersonType
  82. ,isPrimary
  83. ,createdBy
  84. ,createdDate
  85. )
  86. SELECT
  87. @agentId
  88. ,@name
  89. ,@country
  90. ,@state
  91. ,@city
  92. ,@zip
  93. ,@address
  94. ,@phone
  95. ,@mobile1
  96. ,@mobile2
  97. ,@fax
  98. ,@email
  99. ,@post
  100. ,@contactPersonType
  101. ,@isPrimary
  102. ,@user
  103. ,GETDATE()
  104. SET @modType = 'Insert'
  105. EXEC [dbo].proc_GetColumnToRow @logParamMain, @logIdentifier, @acpId , @newValue OUTPUT
  106. INSERT INTO #msg(errorCode, msg, id)
  107. EXEC proc_applicationLogs 'i', NULL, @modType, @tableAlias, @acpId, @user, @oldValue, @newValue
  108. IF EXISTS (SELECT 'x' FROM #msg WHERE errorCode <> '0')
  109. BEGIN
  110. IF @@TRANCOUNT > 0
  111. ROLLBACK TRANSACTION
  112. EXEC proc_errorHandler 1, 'Failed to add new record.', @acpId
  113. RETURN
  114. END
  115. IF @@TRANCOUNT > 0
  116. COMMIT TRANSACTION
  117. EXEC proc_errorHandler 0, 'Record has been added successfully.', @acpId
  118. END
  119. ELSE IF @flag = 'a'
  120. BEGIN
  121. SELECT *, isPrimary1 = ISNULL(isPrimary, 'N') FROM agentContactPerson WITH(NOLOCK) WHERE acpId = @acpId
  122. END
  123. ELSE IF @flag = 'pullDefault'
  124. BEGIN
  125. --SELECT top 1 *, isPrimary1 = ISNULL(isPrimary, 'N') FROM agentContactPerson WITH(NOLOCK) WHERE agentId = @agentId
  126. SELECT TOP 1
  127. city = agentCity
  128. ,countryId = agentCountryId
  129. ,[state] = agentState
  130. ,[district] = agentDistrict
  131. ,zip = agentZip
  132. ,[address] = agentAddress
  133. ,phone1 = agentPhone1
  134. ,phone2 = agentPhone2
  135. ,mobile1 = agentMobile1
  136. ,mobile2 = agentMobile2
  137. ,email = agentEmail1
  138. FROM agentMaster WITH(NOLOCK) WHERE agentId = @agentId
  139. END
  140. ELSE IF @flag = 'u'
  141. BEGIN
  142. IF (@isPrimary = 'Y')
  143. BEGIN
  144. IF EXISTS(SELECT 'X' FROM agentContactPerson WHERE acpId <> @acpId AND agentId = @agentId AND contactPersonType = @contactPersonType AND isPrimary = 'Y')
  145. BEGIN
  146. EXEC proc_errorHandler 1, 'Cannot update record. Primary Contact Person has already been set', @agentId
  147. RETURN
  148. END
  149. END
  150. BEGIN TRANSACTION
  151. UPDATE agentContactPerson SET
  152. agentId = @agentId
  153. ,name = @name
  154. ,country = @country
  155. ,state = @state
  156. ,city = @city
  157. ,zip = @zip
  158. ,address = @address
  159. ,phone = @phone
  160. ,mobile1 = @mobile1
  161. ,mobile2 = @mobile2
  162. ,fax = @fax
  163. ,email = @email
  164. ,post = @post
  165. ,contactPersonType = @contactPersonType
  166. ,isPrimary = @isPrimary
  167. ,modifiedBy = @user
  168. ,modifiedDate = GETDATE()
  169. WHERE acpId = @acpId
  170. EXEC [dbo].proc_GetColumnToRow @logParamMain, @logIdentifier, @acpId, @newValue OUTPUT
  171. INSERT INTO #msg(errorCode, msg, id)
  172. EXEC proc_applicationLogs 'i', NULL, @modType, @tableAlias, @acpId, @user, @oldValue, @newValue
  173. IF EXISTS (SELECT 'x' FROM #msg WHERE errorCode <> '0')
  174. BEGIN
  175. IF @@TRANCOUNT > 0
  176. ROLLBACK TRANSACTION
  177. EXEC proc_errorHandler 1, 'Failed to update record.', @acpId
  178. RETURN
  179. END
  180. IF @@TRANCOUNT > 0
  181. COMMIT TRANSACTION
  182. EXEC proc_errorHandler 0, 'Record updated successfully.', @acpId
  183. END
  184. ELSE IF @flag = 'd'
  185. BEGIN
  186. BEGIN TRANSACTION
  187. UPDATE agentContactPerson SET
  188. isDeleted = 'Y'
  189. ,modifiedDate = GETDATE()
  190. ,modifiedBy = @user
  191. WHERE acpId = @acpId
  192. SET @modType = 'Delete'
  193. EXEC [dbo].proc_GetColumnToRow @logParamMain, @logIdentifier, @acpId, @oldValue OUTPUT
  194. INSERT INTO #msg(errorCode, msg, id)
  195. EXEC proc_applicationLogs 'i', NULL, @modType, @tableAlias, @acpId, @user, @oldValue, @newValue
  196. IF EXISTS (SELECT 'x' FROM #msg WHERE errorCode <> '0')
  197. BEGIN
  198. IF @@TRANCOUNT > 0
  199. ROLLBACK TRANSACTION
  200. EXEC proc_errorHandler 1, 'Failed to delete record.', @acpId
  201. RETURN
  202. END
  203. IF @@TRANCOUNT > 0
  204. COMMIT TRANSACTION
  205. EXEC proc_errorHandler 0, 'Record deleted successfully.', @acpId
  206. END
  207. ELSE IF @flag IN ('s')
  208. BEGIN
  209. IF @sortBy IS NULL
  210. SET @sortBy = 'acpId'
  211. IF @sortOrder IS NULL
  212. SET @sortOrder = 'ASC'
  213. SET @table = '(
  214. SELECT
  215. main.acpId
  216. ,main.agentId
  217. ,name = CASE WHEN main.isPrimary = ''Y'' THEN ''<b>'' + main.name + ''</b>'' + ''<img src="../../../../Images/primary.png" title="Primary Id" />'' ELSE main.name END
  218. ,country = cm.countryName
  219. ,main.state
  220. ,main.city
  221. ,main.zip
  222. ,main.address
  223. ,main.phone
  224. ,main.mobile1
  225. ,main.mobile2
  226. ,main.fax
  227. ,main.email
  228. ,main.post
  229. ,contactPersonType = sdv.detailTitle
  230. ,main.isPrimary
  231. ,main.createdBy
  232. ,main.createdDate
  233. ,main.isDeleted
  234. FROM agentContactPerson main WITH(NOLOCK)
  235. LEFT JOIN countryMaster cm WITH(NOLOCK) ON main.country = cm.countryId
  236. LEFT JOIN staticDataValue sdv WITH(NOLOCK) ON main.contactPersonType = sdv.valueId
  237. WHERE agentId = ' + CAST(@agentId AS VARCHAR) + '
  238. ) x'
  239. SET @sql_filter = ''
  240. SET @sql_filter = @sql_filter + ' AND ISNULL(isDeleted, '''') <> ''Y'''
  241. SET @select_field_list ='
  242. acpId
  243. ,agentId
  244. ,name
  245. ,country
  246. ,state
  247. ,city
  248. ,zip
  249. ,address
  250. ,phone
  251. ,mobile1
  252. ,mobile2
  253. ,fax
  254. ,email
  255. ,post
  256. ,contactPersonType
  257. ,isPrimary
  258. ,createdBy
  259. ,createdDate
  260. ,isDeleted '
  261. EXEC dbo.proc_paging
  262. @table
  263. ,@sql_filter
  264. ,@select_field_list
  265. ,@extra_field_list
  266. ,@sortBy
  267. ,@sortOrder
  268. ,@pageSize
  269. ,@pageNumber
  270. END
  271. END TRY
  272. BEGIN CATCH
  273. IF @@TRANCOUNT > 0
  274. ROLLBACK TRANSACTION
  275. DECLARE @errorMessage VARCHAR(MAX)
  276. SET @errorMessage = ERROR_MESSAGE()
  277. EXEC proc_errorHandler 1, @errorMessage, @acpId
  278. END CATCH
  279. GO