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

USE [FastMoneyPro_Remit]
GO
/****** Object: StoredProcedure [dbo].[proc_SMSData] Script Date: 9/27/2019 1:30:14 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
/*
EXEC proc_SMSData @flag = 'SMSToSender',@controlNo= '99266917270',@branchId = '4681', @user = 'admin',@sAgent ='4672'
*/
CREATE proc [dbo].[proc_SMSData]
(
@flag VARCHAR(50)
,@controlNo VARCHAR(50) = NULL
,@user VARCHAR(50) = NULL
,@branchId INT = NULL
,@sAgent INT = NULL
,@senderMobile VARCHAR(50) = NULL
,@sCountry VARCHAR(100) = NULL
)
AS
SET NOCOUNT ON
SET XACT_ABORT ON
DECLARE @controlNoEncrypted VARCHAR(20), @msg VARCHAR(MAX),@code varchar(10),@length int
select @code = countryMobCode,@length = countryMobLength
from countryMaster with(nolock) where countryName = @sCountry
if @code is null or @length is null
return;
if len(@senderMobile) <> @length
begin
if left(@senderMobile,len(@code)) <> @code
set @senderMobile = @code+@senderMobile
end
if len(@senderMobile)<> @length
return;
SELECT @controlNoEncrypted = dbo.FNAEncryptString(@controlNo)
IF OBJECT_ID('tempdb..#TEMP1') IS NOT NULL
DROP TABLE #TEMP1
IF OBJECT_ID('tempdb..#letterKeyword') IS NOT NULL
DROP TABLE #letterKeyword
CREATE TABLE #letterKeyword(id INT IDENTITY(1,1), keyword VARCHAR(MAX), VALUE VARCHAR(MAX))
CREATE TABLE #TEMP1(
#CURRENT_DATE# VARCHAR(MAX)
,#SEND_AGENT_NAME# VARCHAR(MAX)
,#SEND_COUNTRY# VARCHAR(MAX)
,#TRAN_ID# VARCHAR(MAX)
,#SEND_USER# VARCHAR(MAX)
,#PAID_USER# VARCHAR(MAX)
,#CANCEL_USER# VARCHAR(MAX)
,#CONTROL_NO# VARCHAR(MAX)
,#COMPLAIN# VARCHAR(MAX)
,#USER_NAME# VARCHAR(MAX)
,#PAID_AGENT_NAME# VARCHAR(MAX)
,#PAID_COUNTRY# VARCHAR(MAX)
,#SEND_DATE# VARCHAR(MAX)
,#PAID_DATE# VARCHAR(MAX)
,#CANCEL_DATE# VARCHAR(MAX)
,#SEND_AMT# VARCHAR(MAX)
,#PAID_AMT# VARCHAR(MAX)
,#USER_FULL_NAME# VARCHAR(MAX)
,#AGENT_NAME# VARCHAR(MAX)
,#BRANCH_NAME# VARCHAR(MAX)
,#RETURN_AMT# VARCHAR(MAX)
,#RECEIVER_NAME# VARCHAR(MAX)
,#SENDER_NAME# VARCHAR(MAX)
,#ACCOUNT_NO# VARCHAR(MAX)
)
INSERT INTO #TEMP1
SELECT
#CURRENT_DATE# = CAST(GETDATE() AS VARCHAR)
,#SEND_AGENT_NAME# = ISNULL(sAgentName + ' - ' + sBranchName, '')
,#SEND_COUNTRY# = sCountry
,#TRAN_ID# = CAST(rt.id AS VARCHAR)
,#SEND_USER# = createdBy
,#PAID_USER# = ISNULL(paidBy, '')
,#CANCEL_USER# = ISNULL(cancelApprovedBy, '')
,#CONTROL_NO# = @controlNo
,#COMPLAIN# = ''
,#USER_NAME# = @user
,#PAID_AGENT_NAME# = ISNULL(pAgentName + ' - ' + pBranchName, '')
,#PAID_COUNTRY# = pCountry
,#SEND_DATE# = CAST(approvedDate AS VARCHAR)
,#PAID_DATE# = CAST(paidDate AS VARCHAR)
,#CANCEL_DATE# = CAST(cancelApprovedDate AS VARCHAR)
,#SEND_AMT# = dbo.ShowDecimal(cAmt)
,#PAID_AMT# = dbo.ShowDecimal(pAmt)
,#USER_FULL_NAME# = (SELECT firstName + ISNULL(' ' + middleName, '') + ISNULL(' ' + lastName, '') FROM applicationUsers WITH(NOLOCK) WHERE userName = @user)
,#AGENT_NAME# = (
SELECT CASE WHEN am.agentId = dbo.FNAGetHOAgentId() THEN 'IME Head Office' ELSE pam.agentName END FROM applicationUsers au WITH(NOLOCK)
INNER JOIN agentMaster am WITH(NOLOCK) ON au.agentId = am.agentId
INNER JOIN agentMaster pam WITH(NOLOCK) ON am.parentId = pam.agentId
WHERE userName = @user
)
,#BRANCH_NAME# = (
SELECT am.agentName FROM applicationUsers au WITH(NOLOCK)
INNER JOIN agentMaster am WITH(NOLOCK) ON au.agentId = am.agentId
WHERE userName = @user
)
,#RETURN_AMT# = cAmt - ISNULL(cancelCharge, 0)
,#RECEIVER_NAME# = ISNULL(rec.firstName, '') + ISNULL(' ' + rec.middleName, '') + ISNULL(' ' + rec.lastName1, '') + ISNULL(' ' + rec.lastName2, '')
,#SENDER_NAME# = ISNULL(sen.firstName, '') + ISNULL(' ' + sen.middleName, '') + ISNULL(' ' + sen.lastName1, '') + ISNULL(' ' + sen.lastName2, '')
,#ACCOUNT_NO# = rt.accountNo
FROM vwRemitTran rt WITH(NOLOCK) inner join vwTranSenders sen with(nolock) on rt.id = sen.tranId
inner join vwTranReceivers rec with(nolock) on rt.id = rec.tranId
WHERE controlNo = @controlNoEncrypted
INSERT INTO #letterKeyWord
SELECT
col, VALUE
FROM
(
SELECT
t.#CURRENT_DATE#
,t.#SEND_AGENT_NAME#
,t.#SEND_COUNTRY#
,t.#TRAN_ID#
,t.#SEND_USER#
,t.#PAID_USER#
,t.#CANCEL_USER#
,t.#CONTROL_NO#
,t.#COMPLAIN#
,t.#USER_NAME#
,t.#PAID_AGENT_NAME#
,t.#PAID_COUNTRY#
,t.#SEND_DATE#
,t.#PAID_DATE#
,t.#CANCEL_DATE#
,t.#SEND_AMT#
,t.#PAID_AMT#
,t.#USER_FULL_NAME#
,t.#AGENT_NAME#
,t.#BRANCH_NAME#
,t.#RETURN_AMT#
,t.#RECEIVER_NAME#
,t.#SENDER_NAME#
,t.#ACCOUNT_NO#
FROM #TEMP1 AS t
) AS SourceTable
UNPIVOT
(
VALUE FOR Col IN
(
#CURRENT_DATE#
,#SEND_AGENT_NAME#
,#SEND_COUNTRY#
,#TRAN_ID#
,#SEND_USER#
,#PAID_USER#
,#CANCEL_USER#
,#CONTROL_NO#
,#COMPLAIN#
,#USER_NAME#
,#PAID_AGENT_NAME#
,#PAID_COUNTRY#
,#SEND_DATE#
,#PAID_DATE#
,#CANCEL_DATE#
,#SEND_AMT#
,#PAID_AMT#
,#USER_FULL_NAME#
,#AGENT_NAME#
,#BRANCH_NAME#
,#RETURN_AMT#
,#RECEIVER_NAME#
,#SENDER_NAME#
,#ACCOUNT_NO#
)
) AS unpvt
SELECT
@msg = emailFormat
FROM emailTemplate WITH(NOLOCK)
WHERE templateFor = @flag
AND ISNULL(isEnabled, 'N') = 'Y'
AND ISNULL(isDeleted, 'N') = 'N'
DECLARE @totalRows INT, @count INT = 1
SELECT @totalRows = COUNT(*) FROM #letterKeyword
WHILE(@count <= @totalRows)
BEGIN
SELECT
@msg = REPLACE(@msg, keyword, ISNULL(VALUE, ''))
FROM #letterKeyword WHERE id = @count
SET @count = @count + 1
END
insert into SMSQueue(mobileNo,msg,createdDate,createdBy,country,agentId,branchId,controlNo)
select @senderMobile,@msg,getdate(),@user,@sCountry,@sAgent,@branchId,@controlNoEncrypted
GO