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.

406 lines
22 KiB

1 year ago
  1. USE [FastMoneyPro_Remit]
  2. GO
  3. /****** Object: StoredProcedure [dbo].[proc_emailData] 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_emailData] (
  9. @flag VARCHAR(50)
  10. ,@controlNo VARCHAR(50) = NULL
  11. ,@complain VARCHAR(MAX) = NULL
  12. ,@user VARCHAR(50) = NULL
  13. ,@branchId INT = NULL
  14. )
  15. AS
  16. SET NOCOUNT ON
  17. SET XACT_ABORT ON
  18. insert into emailHistory(flag,controlno,complain,createdBy,branchId)
  19. select @flag,@controlNo,@complain,@user,@branchId
  20. DECLARE @controlNoEncrypted VARCHAR(20)
  21. ,@id INT
  22. ,@replyTo VARCHAR(5)
  23. ,@agentEmail VARCHAR(100)
  24. ,@subject VARCHAR(MAX)
  25. ,@body VARCHAR(MAX)
  26. ,@agentName VARCHAR(200)
  27. ,@branch INT
  28. ,@agent INT
  29. SET @controlNo = UPPER(LTRIM(RTRIM(@controlNo)))
  30. SELECT @controlNoEncrypted = dbo.FNAEncryptString(@controlNo)
  31. IF @branchId IS NULL
  32. SELECT @branchId = agentId FROM applicationUsers WITH(NOLOCK) WHERE username=@user
  33. CREATE TABLE #letterKeyword(id INT IDENTITY(1,1), keyword VARCHAR(MAX), VALUE VARCHAR(MAX))
  34. CREATE TABLE #TEMP1(
  35. #CURRENT_DATE# VARCHAR(MAX)
  36. ,#SEND_AGENT_NAME# VARCHAR(MAX)
  37. ,#SEND_COUNTRY# VARCHAR(MAX)
  38. ,#TRAN_ID# VARCHAR(MAX)
  39. ,#SEND_USER# VARCHAR(MAX)
  40. ,#PAID_USER# VARCHAR(MAX)
  41. ,#CANCEL_USER# VARCHAR(MAX)
  42. ,#CONTROL_NO# VARCHAR(MAX)
  43. ,#COMPLAIN# VARCHAR(MAX)
  44. ,#USER_NAME# VARCHAR(MAX)
  45. ,#PAID_AGENT_NAME# VARCHAR(MAX)
  46. ,#PAID_COUNTRY# VARCHAR(MAX)
  47. ,#SEND_DATE# VARCHAR(MAX)
  48. ,#PAID_DATE# VARCHAR(MAX)
  49. ,#CANCEL_DATE# VARCHAR(MAX)
  50. ,#SEND_AMT# VARCHAR(MAX)
  51. ,#PAID_AMT# VARCHAR(MAX)
  52. ,#USER_FULL_NAME# VARCHAR(MAX)
  53. ,#AGENT_NAME# VARCHAR(MAX)
  54. ,#BRANCH_NAME# VARCHAR(MAX)
  55. ,#RETURN_AMT# VARCHAR(MAX)
  56. )
  57. IF EXISTS(SELECT 'X' FROM vwRemitTran WITH(NOLOCK) WHERE controlNo = @controlNoEncrypted)
  58. BEGIN
  59. INSERT INTO #TEMP1
  60. SELECT
  61. #CURRENT_DATE# = CAST(GETDATE() AS VARCHAR)
  62. ,#SEND_AGENT_NAME# = ISNULL(sAgentName + ' - ' + sBranchName, '')
  63. ,#SEND_COUNTRY# = sCountry
  64. ,#TRAN_ID# = CAST(id AS VARCHAR)
  65. ,#SEND_USER# = createdBy
  66. ,#PAID_USER# = ISNULL(paidBy, '')
  67. ,#CANCEL_USER# = ISNULL(cancelApprovedBy, '')
  68. ,#CONTROL_NO# = @controlNo
  69. ,#COMPLAIN# = ISNULL(@complain, '')
  70. ,#USER_NAME# = @user
  71. ,#PAID_AGENT_NAME# = ISNULL(pAgentName + ' - ' + pBranchName, '')
  72. ,#PAID_COUNTRY# = pCountry
  73. ,#SEND_DATE# = CAST(approvedDate AS VARCHAR)
  74. ,#PAID_DATE# = CAST(paidDate AS VARCHAR)
  75. ,#CANCEL_DATE# = CAST(cancelApprovedDate AS VARCHAR)
  76. ,#SEND_AMT# = dbo.ShowDecimal(cAmt)
  77. ,#PAID_AMT# = dbo.ShowDecimal(pAmt)
  78. ,#USER_FULL_NAME# = (SELECT firstName + ISNULL(' ' + middleName, '') + ISNULL(' ' + lastName, '') FROM applicationUsers WITH(NOLOCK) WHERE userName = @user)
  79. ,#AGENT_NAME# = (
  80. SELECT CASE WHEN @branchId = dbo.FNAGetHOAgentId() THEN 'IME Head Office' ELSE sAgentName END
  81. )
  82. ,#BRANCH_NAME# = (
  83. SELECT CASE WHEN @branchId = dbo.FNAGetHOAgentId() THEN 'IME Head Office' ELSE sBranchName END
  84. )
  85. ,#RETURN_AMT# = cAmt - ISNULL(cancelCharge, 0)
  86. FROM vwRemitTran WITH(NOLOCK)
  87. WHERE controlNo = @controlNoEncrypted
  88. END
  89. ELSE
  90. BEGIN
  91. INSERT INTO #TEMP1
  92. SELECT
  93. #CURRENT_DATE# = CAST(GETDATE() AS VARCHAR)
  94. ,#SEND_AGENT_NAME# = ISNULL(sAgentName + ' - ' + sBranchName, '')
  95. ,#SEND_COUNTRY# = sCountry
  96. ,#TRAN_ID# = CAST(id AS VARCHAR)
  97. ,#SEND_USER# = createdBy
  98. ,#PAID_USER# = ISNULL(paidBy, '')
  99. ,#CANCEL_USER# = ISNULL(cancelApprovedBy, '')
  100. ,#CONTROL_NO# = @controlNo
  101. ,#COMPLAIN# = ISNULL(@complain, '')
  102. ,#USER_NAME# = @user
  103. ,#PAID_AGENT_NAME# = ISNULL(pAgentName + ' - ' + pBranchName, '')
  104. ,#PAID_COUNTRY# = pCountry
  105. ,#SEND_DATE# = CAST(approvedDate AS VARCHAR)
  106. ,#PAID_DATE# = CAST(paidDate AS VARCHAR)
  107. ,#CANCEL_DATE# = CAST(cancelApprovedDate AS VARCHAR)
  108. ,#SEND_AMT# = dbo.ShowDecimal(cAmt)
  109. ,#PAID_AMT# = dbo.ShowDecimal(pAmt)
  110. ,#USER_FULL_NAME# = (SELECT firstName + ISNULL(' ' + middleName, '') + ISNULL(' ' + lastName, '') FROM applicationUsers WITH(NOLOCK) WHERE userName = @user)
  111. ,#AGENT_NAME# = (
  112. SELECT CASE WHEN @branchId = dbo.FNAGetHOAgentId() THEN 'IME Head Office' ELSE sAgentName END
  113. )
  114. ,#BRANCH_NAME# = (
  115. SELECT CASE WHEN @branchId = dbo.FNAGetHOAgentId() THEN 'IME Head Office' ELSE sBranchName END
  116. )
  117. ,#RETURN_AMT# = cAmt - ISNULL(cancelCharge, 0)
  118. FROM cancelTranHistory WITH(NOLOCK)
  119. WHERE controlNo = @controlNoEncrypted
  120. END
  121. IF @controlNoEncrypted=''
  122. BEGIN
  123. INSERT INTO #TEMP1(#BRANCH_NAME#,#CURRENT_DATE#)
  124. SELECT agentName,GETDATE() FROM applicationUsers U WITH(NOLOCK)
  125. INNER JOIN agentMaster A WITH(NOLOCK) ON U.agentId=A.agentId
  126. WHERE U.USERNAME=@USER
  127. END
  128. INSERT INTO #letterKeyWord
  129. SELECT col, VALUE
  130. FROM
  131. (
  132. SELECT
  133. t.#CURRENT_DATE#
  134. ,t.#SEND_AGENT_NAME#
  135. ,t.#SEND_COUNTRY#
  136. ,t.#TRAN_ID#
  137. ,t.#SEND_USER#
  138. ,t.#PAID_USER#
  139. ,t.#CANCEL_USER#
  140. ,t.#CONTROL_NO#
  141. ,t.#COMPLAIN#
  142. ,t.#USER_NAME#
  143. ,t.#PAID_AGENT_NAME#
  144. ,t.#PAID_COUNTRY#
  145. ,t.#SEND_DATE#
  146. ,t.#PAID_DATE#
  147. ,t.#CANCEL_DATE#
  148. ,t.#SEND_AMT#
  149. ,t.#PAID_AMT#
  150. ,t.#USER_FULL_NAME#
  151. ,t.#AGENT_NAME#
  152. ,t.#BRANCH_NAME#
  153. ,t.#RETURN_AMT#
  154. FROM #TEMP1 AS t
  155. ) AS SourceTable
  156. UNPIVOT
  157. (
  158. VALUE FOR Col IN
  159. (
  160. #CURRENT_DATE#
  161. ,#SEND_AGENT_NAME#
  162. ,#SEND_COUNTRY#
  163. ,#TRAN_ID#
  164. ,#SEND_USER#
  165. ,#PAID_USER#
  166. ,#CANCEL_USER#
  167. ,#CONTROL_NO#
  168. ,#COMPLAIN#
  169. ,#USER_NAME#
  170. ,#PAID_AGENT_NAME#
  171. ,#PAID_COUNTRY#
  172. ,#SEND_DATE#
  173. ,#PAID_DATE#
  174. ,#CANCEL_DATE#
  175. ,#SEND_AMT#
  176. ,#PAID_AMT#
  177. ,#USER_FULL_NAME#
  178. ,#AGENT_NAME#
  179. ,#BRANCH_NAME#
  180. ,#RETURN_AMT#
  181. )
  182. ) AS unpvt
  183. IF @flag = 'Trouble'
  184. BEGIN
  185. /*
  186. EXEC proc_emailData @flag = 'Trouble', @user = 'admin',
  187. @controlNo = '7644176864D', @complain = 'Test Message'
  188. */
  189. SELECT
  190. smtpServer
  191. ,smtpPort
  192. ,sendID
  193. ,sendPSW
  194. ,enableSsl
  195. FROM emailServerSetup WITH(NOLOCK)
  196. IF NOT EXISTS(SELECT 'X' FROM #letterKeyword)
  197. BEGIN
  198. SELECT name = NULL, email = NULL
  199. END
  200. ELSE
  201. BEGIN
  202. SELECT
  203. name
  204. ,email
  205. FROM SystemEmailSetup WITH(NOLOCK)
  206. WHERE ISNULL(isTrouble, 'No') = 'Yes' AND (agent = dbo.FNAGetHOAgentId()) AND ISNULL(isDeleted, 'N') = 'N'
  207. END
  208. END
  209. ELSE IF @flag = 'Modification Approve'
  210. BEGIN
  211. if not exists(
  212. SELECT 'x'
  213. FROM emailTemplate WITH(NOLOCK)
  214. WHERE templateFor = @flag
  215. AND ISNULL(replyTo, 'Both') IN ('Both', 'Admin')
  216. AND ISNULL(isEnabled, 'N') = 'Y'
  217. AND ISNULL(isDeleted, 'N') = 'N')
  218. begin
  219. return;
  220. end
  221. SELECT
  222. smtpServer
  223. ,smtpPort
  224. ,sendID
  225. ,sendPSW
  226. ,enableSsl
  227. FROM emailServerSetup WITH(NOLOCK)
  228. SELECT
  229. name
  230. ,email
  231. FROM SystemEmailSetup WITH(NOLOCK)
  232. WHERE ISNULL(isTrouble, 'No') = 'Yes' AND (agent = dbo.FNAGetHOAgentId()) AND ISNULL(isDeleted, 'N') = 'N'
  233. END
  234. ELSE IF @flag = 'Modification Request'
  235. BEGIN
  236. if not exists(
  237. SELECT 'x'
  238. FROM emailTemplate WITH(NOLOCK)
  239. WHERE templateFor = @flag
  240. AND ISNULL(replyTo, 'Both') IN ('Both', 'Admin')
  241. AND ISNULL(isEnabled, 'N') = 'Y'
  242. AND ISNULL(isDeleted, 'N') = 'N')
  243. begin
  244. return;
  245. end
  246. SELECT
  247. smtpServer
  248. ,smtpPort
  249. ,sendID
  250. ,sendPSW
  251. ,enableSsl
  252. FROM emailServerSetup WITH(NOLOCK)
  253. SELECT
  254. name
  255. ,email
  256. FROM SystemEmailSetup WITH(NOLOCK)
  257. WHERE ISNULL(isTrouble, 'No') = 'Yes' AND (agent = dbo.FNAGetHOAgentId()) AND ISNULL(isDeleted, 'N') = 'N'
  258. END
  259. ELSE IF @flag = 'Cancel'
  260. BEGIN
  261. SELECT
  262. smtpServer
  263. ,smtpPort
  264. ,sendID
  265. ,sendPSW
  266. ,enableSsl
  267. FROM emailServerSetup WITH(NOLOCK)
  268. SELECT
  269. name
  270. ,email
  271. FROM SystemEmailSetup WITH(NOLOCK)
  272. WHERE ISNULL(isCancel, 'No') = 'Yes' AND (agent = dbo.FNAGetHOAgentId()) AND ISNULL(isDeleted, 'N') = 'N'
  273. END
  274. ELSE IF @flag = 'Cancel Request'
  275. BEGIN
  276. SELECT
  277. smtpServer
  278. ,smtpPort
  279. ,sendID
  280. ,sendPSW
  281. ,enableSsl
  282. FROM emailServerSetup WITH(NOLOCK)
  283. SELECT
  284. name
  285. ,email
  286. FROM SystemEmailSetup WITH(NOLOCK)
  287. WHERE ISNULL(isCancel, 'No') = 'Yes' AND (agent = dbo.FNAGetHOAgentId()) AND ISNULL(isDeleted, 'N') = 'N'
  288. END
  289. ELSE IF @flag = 'Bonus'
  290. BEGIN
  291. SELECT
  292. smtpServer
  293. ,smtpPort
  294. ,sendID
  295. ,sendPSW
  296. ,enableSsl
  297. FROM emailServerSetup WITH(NOLOCK)
  298. SELECT
  299. name
  300. ,email
  301. FROM SystemEmailSetup WITH(NOLOCK)
  302. WHERE ISNULL(isBonus, 'No') = 'Yes'
  303. AND (agent = dbo.FNAGetHOAgentId()) AND ISNULL(isDeleted, 'N') = 'N'
  304. END
  305. ELSE
  306. BEGIN
  307. SELECT
  308. smtpServer
  309. ,smtpPort
  310. ,sendID
  311. ,sendPSW
  312. ,enableSsl
  313. FROM emailServerSetup WITH(NOLOCK)
  314. SELECT
  315. name
  316. ,email
  317. FROM SystemEmailSetup WITH(NOLOCK)
  318. WHERE (agent = dbo.FNAGetHOAgentId()) AND ISNULL(isDeleted, 'N') = 'N'
  319. END
  320. -- ## Email subject and body - admin
  321. SELECT
  322. @subject = emailSubject,
  323. @body = emailFormat,
  324. @replyTo = replyTo
  325. FROM emailTemplate WITH(NOLOCK)
  326. WHERE templateFor = @flag
  327. AND ISNULL(replyTo, 'Both') IN ('Both', 'Admin')
  328. AND ISNULL(isEnabled, 'N') = 'Y'
  329. AND ISNULL(isDeleted, 'N') = 'N'
  330. IF @replyTo IN ('Both')
  331. BEGIN
  332. SELECT @branch = sBranch FROM vwRemitTran WITH(NOLOCK) WHERE controlNo = @controlNoEncrypted
  333. SELECT @agentEmail = agentEmail1 FROM agentMaster WITH(NOLOCK) WHERE agentId = @branch
  334. --select @branch
  335. END
  336. DECLARE @totalRows INT, @count INT = 1
  337. SELECT @totalRows = COUNT(*) FROM #letterKeyword
  338. WHILE(@count <= @totalRows)
  339. BEGIN
  340. SELECT
  341. @subject = REPLACE(@subject, keyword, ISNULL(VALUE, ''))
  342. ,@body = REPLACE(@body, keyword, ISNULL(VALUE, ''))
  343. ,@id = id
  344. FROM #letterKeyword WHERE id = @count
  345. SET @count = @count + 1
  346. END
  347. SELECT @subject [subject], @body [body], @agentEmail [agentEmail]
  348. -- ## Email subject and body - Agent
  349. IF EXISTS(SELECT 'X' FROM emailTemplate WITH(NOLOCK)
  350. WHERE templateFor = @flag
  351. AND ISNULL(replyTo, 'Both') IN ('Both', 'Agent')
  352. AND ISNULL(isEnabled, 'N') = 'Y'
  353. AND ISNULL(isDeleted, 'N') = 'N')
  354. BEGIN
  355. SELECT @subject = emailSubject, @body = emailFormat
  356. FROM emailTemplate WITH(NOLOCK) WHERE templateFor = @flag
  357. AND ISNULL(replyTo, 'Both') IN ('Both', 'Agent')
  358. AND ISNULL(isEnabled, 'N') = 'Y' AND ISNULL(isDeleted, 'N') = 'N'
  359. SET @count = 1
  360. WHILE(@count <= @totalRows)
  361. BEGIN
  362. SELECT
  363. @subject = REPLACE(@subject, keyword, ISNULL(VALUE, ''))
  364. ,@body = REPLACE(@body, keyword, ISNULL(VALUE, ''))
  365. ,@id = id
  366. FROM #letterKeyword WHERE id = @count
  367. SET @count = @count + 1
  368. END
  369. SELECT @agentEmail = agentEmail1 FROM agentMaster WITH(NOLOCK) WHERE agentId = @branch
  370. /*SELECT @agentEmail = agentEmail1 FROM
  371. agentMaster am WITH(NOLOCK)
  372. INNER JOIN applicationUsers au WITH(NOLOCK) ON am.agentId = au.agentId WHERE au.userName = @user
  373. */
  374. SELECT @subject [subject], @body [body], @agentEmail [agentEmail]
  375. END
  376. GO