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.

213 lines
12 KiB

1 year ago
  1. USE [FastMoneyPro_Remit]
  2. GO
  3. /****** Object: StoredProcedure [dbo].[proc_SMSData] Script Date: 9/27/2019 1:30:14 PM ******/
  4. SET ANSI_NULLS ON
  5. GO
  6. SET QUOTED_IDENTIFIER ON
  7. GO
  8. /*
  9. EXEC proc_SMSData @flag = 'SMSToSender',@controlNo= '99266917270',@branchId = '4681', @user = 'admin',@sAgent ='4672'
  10. */
  11. CREATE proc [dbo].[proc_SMSData]
  12. (
  13. @flag VARCHAR(50)
  14. ,@controlNo VARCHAR(50) = NULL
  15. ,@user VARCHAR(50) = NULL
  16. ,@branchId INT = NULL
  17. ,@sAgent INT = NULL
  18. ,@senderMobile VARCHAR(50) = NULL
  19. ,@sCountry VARCHAR(100) = NULL
  20. )
  21. AS
  22. SET NOCOUNT ON
  23. SET XACT_ABORT ON
  24. DECLARE @controlNoEncrypted VARCHAR(20), @msg VARCHAR(MAX),@code varchar(10),@length int
  25. select @code = countryMobCode,@length = countryMobLength
  26. from countryMaster with(nolock) where countryName = @sCountry
  27. if @code is null or @length is null
  28. return;
  29. if len(@senderMobile) <> @length
  30. begin
  31. if left(@senderMobile,len(@code)) <> @code
  32. set @senderMobile = @code+@senderMobile
  33. end
  34. if len(@senderMobile)<> @length
  35. return;
  36. SELECT @controlNoEncrypted = dbo.FNAEncryptString(@controlNo)
  37. IF OBJECT_ID('tempdb..#TEMP1') IS NOT NULL
  38. DROP TABLE #TEMP1
  39. IF OBJECT_ID('tempdb..#letterKeyword') IS NOT NULL
  40. DROP TABLE #letterKeyword
  41. CREATE TABLE #letterKeyword(id INT IDENTITY(1,1), keyword VARCHAR(MAX), VALUE VARCHAR(MAX))
  42. CREATE TABLE #TEMP1(
  43. #CURRENT_DATE# VARCHAR(MAX)
  44. ,#SEND_AGENT_NAME# VARCHAR(MAX)
  45. ,#SEND_COUNTRY# VARCHAR(MAX)
  46. ,#TRAN_ID# VARCHAR(MAX)
  47. ,#SEND_USER# VARCHAR(MAX)
  48. ,#PAID_USER# VARCHAR(MAX)
  49. ,#CANCEL_USER# VARCHAR(MAX)
  50. ,#CONTROL_NO# VARCHAR(MAX)
  51. ,#COMPLAIN# VARCHAR(MAX)
  52. ,#USER_NAME# VARCHAR(MAX)
  53. ,#PAID_AGENT_NAME# VARCHAR(MAX)
  54. ,#PAID_COUNTRY# VARCHAR(MAX)
  55. ,#SEND_DATE# VARCHAR(MAX)
  56. ,#PAID_DATE# VARCHAR(MAX)
  57. ,#CANCEL_DATE# VARCHAR(MAX)
  58. ,#SEND_AMT# VARCHAR(MAX)
  59. ,#PAID_AMT# VARCHAR(MAX)
  60. ,#USER_FULL_NAME# VARCHAR(MAX)
  61. ,#AGENT_NAME# VARCHAR(MAX)
  62. ,#BRANCH_NAME# VARCHAR(MAX)
  63. ,#RETURN_AMT# VARCHAR(MAX)
  64. ,#RECEIVER_NAME# VARCHAR(MAX)
  65. ,#SENDER_NAME# VARCHAR(MAX)
  66. ,#ACCOUNT_NO# VARCHAR(MAX)
  67. )
  68. INSERT INTO #TEMP1
  69. SELECT
  70. #CURRENT_DATE# = CAST(GETDATE() AS VARCHAR)
  71. ,#SEND_AGENT_NAME# = ISNULL(sAgentName + ' - ' + sBranchName, '')
  72. ,#SEND_COUNTRY# = sCountry
  73. ,#TRAN_ID# = CAST(rt.id AS VARCHAR)
  74. ,#SEND_USER# = createdBy
  75. ,#PAID_USER# = ISNULL(paidBy, '')
  76. ,#CANCEL_USER# = ISNULL(cancelApprovedBy, '')
  77. ,#CONTROL_NO# = @controlNo
  78. ,#COMPLAIN# = ''
  79. ,#USER_NAME# = @user
  80. ,#PAID_AGENT_NAME# = ISNULL(pAgentName + ' - ' + pBranchName, '')
  81. ,#PAID_COUNTRY# = pCountry
  82. ,#SEND_DATE# = CAST(approvedDate AS VARCHAR)
  83. ,#PAID_DATE# = CAST(paidDate AS VARCHAR)
  84. ,#CANCEL_DATE# = CAST(cancelApprovedDate AS VARCHAR)
  85. ,#SEND_AMT# = dbo.ShowDecimal(cAmt)
  86. ,#PAID_AMT# = dbo.ShowDecimal(pAmt)
  87. ,#USER_FULL_NAME# = (SELECT firstName + ISNULL(' ' + middleName, '') + ISNULL(' ' + lastName, '') FROM applicationUsers WITH(NOLOCK) WHERE userName = @user)
  88. ,#AGENT_NAME# = (
  89. SELECT CASE WHEN am.agentId = dbo.FNAGetHOAgentId() THEN 'IME Head Office' ELSE pam.agentName END FROM applicationUsers au WITH(NOLOCK)
  90. INNER JOIN agentMaster am WITH(NOLOCK) ON au.agentId = am.agentId
  91. INNER JOIN agentMaster pam WITH(NOLOCK) ON am.parentId = pam.agentId
  92. WHERE userName = @user
  93. )
  94. ,#BRANCH_NAME# = (
  95. SELECT am.agentName FROM applicationUsers au WITH(NOLOCK)
  96. INNER JOIN agentMaster am WITH(NOLOCK) ON au.agentId = am.agentId
  97. WHERE userName = @user
  98. )
  99. ,#RETURN_AMT# = cAmt - ISNULL(cancelCharge, 0)
  100. ,#RECEIVER_NAME# = ISNULL(rec.firstName, '') + ISNULL(' ' + rec.middleName, '') + ISNULL(' ' + rec.lastName1, '') + ISNULL(' ' + rec.lastName2, '')
  101. ,#SENDER_NAME# = ISNULL(sen.firstName, '') + ISNULL(' ' + sen.middleName, '') + ISNULL(' ' + sen.lastName1, '') + ISNULL(' ' + sen.lastName2, '')
  102. ,#ACCOUNT_NO# = rt.accountNo
  103. FROM vwRemitTran rt WITH(NOLOCK) inner join vwTranSenders sen with(nolock) on rt.id = sen.tranId
  104. inner join vwTranReceivers rec with(nolock) on rt.id = rec.tranId
  105. WHERE controlNo = @controlNoEncrypted
  106. INSERT INTO #letterKeyWord
  107. SELECT
  108. col, VALUE
  109. FROM
  110. (
  111. SELECT
  112. t.#CURRENT_DATE#
  113. ,t.#SEND_AGENT_NAME#
  114. ,t.#SEND_COUNTRY#
  115. ,t.#TRAN_ID#
  116. ,t.#SEND_USER#
  117. ,t.#PAID_USER#
  118. ,t.#CANCEL_USER#
  119. ,t.#CONTROL_NO#
  120. ,t.#COMPLAIN#
  121. ,t.#USER_NAME#
  122. ,t.#PAID_AGENT_NAME#
  123. ,t.#PAID_COUNTRY#
  124. ,t.#SEND_DATE#
  125. ,t.#PAID_DATE#
  126. ,t.#CANCEL_DATE#
  127. ,t.#SEND_AMT#
  128. ,t.#PAID_AMT#
  129. ,t.#USER_FULL_NAME#
  130. ,t.#AGENT_NAME#
  131. ,t.#BRANCH_NAME#
  132. ,t.#RETURN_AMT#
  133. ,t.#RECEIVER_NAME#
  134. ,t.#SENDER_NAME#
  135. ,t.#ACCOUNT_NO#
  136. FROM #TEMP1 AS t
  137. ) AS SourceTable
  138. UNPIVOT
  139. (
  140. VALUE FOR Col IN
  141. (
  142. #CURRENT_DATE#
  143. ,#SEND_AGENT_NAME#
  144. ,#SEND_COUNTRY#
  145. ,#TRAN_ID#
  146. ,#SEND_USER#
  147. ,#PAID_USER#
  148. ,#CANCEL_USER#
  149. ,#CONTROL_NO#
  150. ,#COMPLAIN#
  151. ,#USER_NAME#
  152. ,#PAID_AGENT_NAME#
  153. ,#PAID_COUNTRY#
  154. ,#SEND_DATE#
  155. ,#PAID_DATE#
  156. ,#CANCEL_DATE#
  157. ,#SEND_AMT#
  158. ,#PAID_AMT#
  159. ,#USER_FULL_NAME#
  160. ,#AGENT_NAME#
  161. ,#BRANCH_NAME#
  162. ,#RETURN_AMT#
  163. ,#RECEIVER_NAME#
  164. ,#SENDER_NAME#
  165. ,#ACCOUNT_NO#
  166. )
  167. ) AS unpvt
  168. SELECT
  169. @msg = emailFormat
  170. FROM emailTemplate WITH(NOLOCK)
  171. WHERE templateFor = @flag
  172. AND ISNULL(isEnabled, 'N') = 'Y'
  173. AND ISNULL(isDeleted, 'N') = 'N'
  174. DECLARE @totalRows INT, @count INT = 1
  175. SELECT @totalRows = COUNT(*) FROM #letterKeyword
  176. WHILE(@count <= @totalRows)
  177. BEGIN
  178. SELECT
  179. @msg = REPLACE(@msg, keyword, ISNULL(VALUE, ''))
  180. FROM #letterKeyword WHERE id = @count
  181. SET @count = @count + 1
  182. END
  183. insert into SMSQueue(mobileNo,msg,createdDate,createdBy,country,agentId,branchId,controlNo)
  184. select @senderMobile,@msg,getdate(),@user,@sCountry,@sAgent,@branchId,@controlNoEncrypted
  185. GO