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.

258 lines
15 KiB

1 year ago
  1. USE [FastMoneyPro_Remit]
  2. GO
  3. /****** Object: StoredProcedure [dbo].[proc_emailTemplate] 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_emailTemplate]
  9. @flag VARCHAR(50) = NULL
  10. ,@user VARCHAR(30) = NULL
  11. ,@id VARCHAR(30) = NULL
  12. ,@templateName VARCHAR(200) = NULL
  13. ,@emailSubject VARCHAR(500) = NULL
  14. ,@templateFor VARCHAR(500) = NULL
  15. ,@isEnabled VARCHAR(1) = NULL
  16. ,@isResponseToAgent VARCHAR(1) = NULL
  17. ,@emailFormat NVARCHAR(MAX) = NULL
  18. ,@replyTo VARCHAR(20) = NULL
  19. ,@sortBy VARCHAR(50) = NULL
  20. ,@sortOrder VARCHAR(5) = NULL
  21. ,@pageSize INT = NULL
  22. ,@pageNumber INT = NULL
  23. AS
  24. SET NOCOUNT ON
  25. SET XACT_ABORT ON
  26. BEGIN TRY
  27. CREATE TABLE #msg(errorCode INT, msg VARCHAR(100), id INT)
  28. DECLARE
  29. @sql VARCHAR(MAX)
  30. ,@oldValue VARCHAR(MAX)
  31. ,@newValue VARCHAR(MAX)
  32. ,@module VARCHAR(10)
  33. ,@tableAlias VARCHAR(100)
  34. ,@logIdentifier VARCHAR(50)
  35. ,@logParamMod VARCHAR(100)
  36. ,@logParamMain VARCHAR(100)
  37. ,@table VARCHAR(MAX)
  38. ,@select_field_list VARCHAR(MAX)
  39. ,@extra_field_list VARCHAR(MAX)
  40. ,@sql_filter VARCHAR(MAX)
  41. ,@modType VARCHAR(6)
  42. SELECT
  43. @logIdentifier = 'id'
  44. ,@logParamMain = 'emailTemplate'
  45. ,@module = '10'
  46. ,@tableAlias = 'Email Template'
  47. IF @flag = 'i'
  48. BEGIN
  49. IF EXISTS(SELECT 'A' FROM emailTemplate WHERE ISNULL(isEnabled,'Y')='Y' AND templateFor = @templateFor AND replyTo = 'Both')
  50. BEGIN
  51. EXEC proc_errorHandler 1, 'Tepmlate already contain replyTo : Both.', @id
  52. RETURN
  53. END
  54. IF EXISTS(SELECT 'A' FROM emailTemplate WHERE ISNULL(isEnabled,'Y')='Y' AND templateFor = @templateFor AND replyTo = @replyTo)
  55. BEGIN
  56. EXEC proc_errorHandler 1, 'Tepmlate already contain replyTo.', @id
  57. RETURN
  58. END
  59. IF EXISTS(SELECT 'A' FROM emailTemplate WHERE ISNULL(isEnabled,'Y')='Y' AND templateFor = @templateFor AND @replyTo = 'Both')
  60. BEGIN
  61. EXEC proc_errorHandler 1, 'ReplyTo already contain for Tepmlate.', @id
  62. RETURN
  63. END
  64. BEGIN TRANSACTION
  65. -- select * from emailTemplate
  66. INSERT INTO emailTemplate
  67. (
  68. templateName
  69. ,emailSubject
  70. ,templateFor
  71. ,isEnabled
  72. ,isResponseToAgent
  73. ,emailFormat
  74. ,replyTo
  75. ,createdBy
  76. ,createdDate
  77. )
  78. SELECT
  79. @templateName
  80. ,@emailSubject
  81. ,@templateFor
  82. ,@isEnabled
  83. ,@isResponseToAgent
  84. ,@emailFormat
  85. ,@replyTo
  86. ,@user
  87. ,GETDATE()
  88. SET @id = SCOPE_IDENTITY()
  89. SET @modType = 'Insert'
  90. EXEC [dbo].proc_GetColumnToRow @logParamMain, @logIdentifier, @id , @newValue OUTPUT
  91. INSERT INTO #msg(errorCode, msg, id)
  92. EXEC proc_applicationLogs 'i', NULL, @modType, @tableAlias, @id, @user, @oldValue, @newValue, @module
  93. IF EXISTS (SELECT 'x' FROM #msg WHERE errorCode <> '0')
  94. BEGIN
  95. IF @@TRANCOUNT > 0
  96. ROLLBACK TRANSACTION
  97. EXEC proc_errorHandler 1, 'Failed to add new record.', @id
  98. RETURN
  99. END
  100. IF @@TRANCOUNT > 0
  101. COMMIT TRANSACTION
  102. EXEC proc_errorHandler 0, 'Record has been added successfully.', @id
  103. END
  104. ELSE IF @flag = 'a'
  105. BEGIN
  106. SELECT * FROM emailTemplate WITH(NOLOCK) WHERE id = @id
  107. END
  108. ELSE IF @flag = 'keyword'
  109. BEGIN
  110. SELECT letter_key_words [Key Word],key_desc [Key Description] FROM letterKeywordSetting WHERE 1=1
  111. END
  112. ELSE IF @flag = 'u'
  113. BEGIN
  114. IF EXISTS(SELECT 'A' FROM emailTemplate WHERE ISNULL(isEnabled,'Y')='Y' AND templateFor = @templateFor AND replyTo = 'Both' AND id <> @id)
  115. BEGIN
  116. EXEC proc_errorHandler 1, 'Tepmlate already contain replyTo : Both.', @id
  117. RETURN
  118. END
  119. IF EXISTS(SELECT 'A' FROM emailTemplate WHERE ISNULL(isEnabled,'Y')='Y' AND templateFor = @templateFor AND replyTo = @replyTo AND id <> @id)
  120. BEGIN
  121. EXEC proc_errorHandler 1, 'Tepmlate already contain replyTo.', @id
  122. RETURN
  123. END
  124. IF EXISTS(SELECT 'A' FROM emailTemplate WHERE ISNULL(isEnabled,'Y')='Y' AND templateFor = @templateFor AND @replyTo = 'Both' AND id<> @id)
  125. BEGIN
  126. EXEC proc_errorHandler 1, 'ReplyTo already contain for Tepmlate.', @id
  127. RETURN
  128. END
  129. BEGIN TRANSACTION
  130. EXEC [dbo].proc_GetColumnToRow @logParamMain, @logIdentifier,@id, @oldValue OUTPUT
  131. UPDATE emailTemplate SET
  132. templateName = @templateName
  133. ,emailSubject = @emailSubject
  134. ,templateFor=@templateFor
  135. ,isEnabled = @isEnabled
  136. ,isResponseToAgent = @isResponseToAgent
  137. ,emailFormat = @emailFormat
  138. ,modifiedBy = @user
  139. ,modifiedDate = GETDATE()
  140. ,replyTo = @replyTo
  141. WHERE id = @id
  142. EXEC [dbo].proc_GetColumnToRow @logParamMain, @logIdentifier, @id, @newValue OUTPUT
  143. INSERT INTO #msg(errorCode, msg, id)
  144. EXEC proc_applicationLogs 'i', NULL, @modType, @tableAlias, @id, @user, @oldValue, @newValue, @module
  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 update record.', @id
  150. RETURN
  151. END
  152. IF @@TRANCOUNT > 0
  153. COMMIT TRANSACTION
  154. EXEC proc_errorHandler 0, 'Record updated successfully.', @id
  155. END
  156. ELSE IF @flag = 'd'
  157. BEGIN
  158. BEGIN TRANSACTION
  159. UPDATE emailTemplate SET
  160. isDeleted = 'Y'
  161. ,modifiedDate = GETDATE()
  162. ,modifiedBy = @user
  163. WHERE id = @id
  164. SET @modType = 'Delete'
  165. EXEC [dbo].proc_GetColumnToRow @logParamMain, @logIdentifier,@id, @oldValue OUTPUT
  166. INSERT INTO #msg(errorCode, msg, id)
  167. EXEC proc_applicationLogs 'i', NULL, @modType, @tableAlias, @id, @user, @oldValue, @newValue, @module
  168. IF EXISTS (SELECT 'x' FROM #msg WHERE errorCode <> '0')
  169. BEGIN
  170. IF @@TRANCOUNT > 0
  171. ROLLBACK TRANSACTION
  172. EXEC proc_errorHandler 1, 'Failed to delete record.', @id
  173. RETURN
  174. END
  175. IF @@TRANCOUNT > 0
  176. COMMIT TRANSACTION
  177. EXEC proc_errorHandler 0, 'Record deleted successfully.', @id
  178. END
  179. ELSE IF @flag IN ('s')
  180. BEGIN
  181. IF @sortBy IS NULL
  182. SET @sortBy = 'id'
  183. IF @sortOrder IS NULL
  184. SET @sortOrder = 'ASC'
  185. SET @table = '(
  186. SELECT
  187. id
  188. ,templateName
  189. ,emailSubject
  190. ,templateFor
  191. ,isEnabled =case when isEnabled=''Y'' then ''Yes'' else ''No'' end
  192. ,isResponseToAgent =case when isResponseToAgent=''Y'' then ''Yes'' else ''No'' end
  193. ,emailFormat
  194. ,replyTo
  195. ,createdBy
  196. ,createdDate
  197. ,isDeleted
  198. FROM emailTemplate WITH(NOLOCK)
  199. WHERE isnull(isDeleted,''N'')<>''Y''
  200. ) x'
  201. END
  202. IF @flag IN('s')
  203. BEGIN
  204. set @sql_filter=''
  205. IF @templateName IS NOT NULL
  206. SET @sql_filter = @sql_filter + ' AND templateName LIKE ''%' + @templateName + '%'''
  207. IF @emailSubject IS NOT NULL
  208. SET @sql_filter = @sql_filter + ' AND emailSubject LIKE ''%' + @emailSubject + '%'''
  209. SET @select_field_list ='
  210. id
  211. ,templateName
  212. ,emailSubject
  213. ,templateFor
  214. ,isEnabled
  215. ,isResponseToAgent
  216. ,emailFormat
  217. ,replyTo
  218. ,createdBy
  219. ,createdDate
  220. ,isDeleted
  221. '
  222. EXEC dbo.proc_paging
  223. @table
  224. ,@sql_filter
  225. ,@select_field_list
  226. ,@extra_field_list
  227. ,@sortBy
  228. ,@sortOrder
  229. ,@pageSize
  230. ,@pageNumber
  231. END
  232. END TRY
  233. BEGIN CATCH
  234. IF @@TRANCOUNT > 0
  235. ROLLBACK TRANSACTION
  236. DECLARE @errorMessage VARCHAR(MAX)
  237. SET @errorMessage = ERROR_MESSAGE()
  238. EXEC proc_errorHandler 1, @errorMessage, @id
  239. END CATCH
  240. GO