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.
120 lines
7.7 KiB
120 lines
7.7 KiB
USE [FastMoneyPro_Remit]
|
|
GO
|
|
/****** Object: StoredProcedure [dbo].[proc_parseEmailTemplate] Script Date: 9/27/2019 1:30:14 PM ******/
|
|
SET ANSI_NULLS ON
|
|
GO
|
|
SET QUOTED_IDENTIFIER ON
|
|
GO
|
|
/*
|
|
DECLARE @subject VARCHAR(MAX), @body VARCHAR(MAX), @controlNoEncrypted VARCHAR(20)
|
|
SELECT @controlNoEncrypted = dbo.FNAEncryptString('7908628867D')
|
|
EXEC proc_parseEmailTemplate 10004, @controlNoEncrypted, 'admin', 'Cancel', @subject OUTPUT, @body OUTPUT
|
|
SELECT * FROM remitTran
|
|
*/
|
|
CREATE proc [dbo].[proc_parseEmailTemplate](
|
|
@agentFilterId VARCHAR(100)
|
|
,@controlNo VARCHAR(30)
|
|
,@username VARCHAR(30)
|
|
,@templateFor VARCHAR(20)
|
|
,@subject VARCHAR(MAX) = NULL OUTPUT
|
|
,@body VARCHAR(MAX) = NULL OUTPUT
|
|
,@complain VARCHAR(200) = NULL
|
|
)
|
|
AS
|
|
SET NOCOUNT ON;
|
|
DECLARE @variableList TABLE(variable_name VARCHAR(50), table_name VARCHAR(MAX), field_name VARCHAR(100), field_condition VARCHAR(100), letter_type VARCHAR(50), field_names VARCHAR(MAX) )
|
|
|
|
INSERT INTO @variableList(variable_name, table_name, field_name, field_condition, letter_type, field_names)
|
|
SELECT
|
|
letter_key_words, table_name, field_name, field_condition,letter_type, field_names
|
|
FROM letterKeywordSetting lks WHERE ISNULL(lks.letter_type, '') IN('f', 't', 'd')
|
|
|
|
DECLARE
|
|
@variable_name VARCHAR(100)
|
|
,@variable_value VARCHAR(MAX)
|
|
,@table_name VARCHAR(MAX)
|
|
,@field_name VARCHAR(100)
|
|
,@field_condition VARCHAR(100)
|
|
,@letter_type VARCHAR(10)
|
|
,@field_names VARCHAR(MAX)
|
|
,@sql VARCHAR(MAX)
|
|
|
|
|
|
DECLARE @value TABLE(value VARCHAR(MAX))
|
|
SELECT @subject = emailSubject, @body = emailFormat from emailTemplate WHERE templateFor = @templateFor
|
|
--SELECT * FROM emailTemplate WHERE templateFor = 'Cancel'
|
|
--SELECT letter_key_words, table_name, field_name, field_condition,letter_type, field_names FROM letterKeywordSetting lks WHERE ISNULL(lks.letter_type, '') IN('f', 't', 'd')
|
|
|
|
WHILE EXISTS (SELECT 'X' FROM @variableList)
|
|
BEGIN
|
|
SELECT TOP 1
|
|
@variable_name = variable_name
|
|
,@table_name = table_name
|
|
,@field_name = field_name
|
|
,@field_names = field_names
|
|
,@letter_type = letter_type
|
|
,@field_condition = field_condition
|
|
FROM @variableList
|
|
|
|
IF CHARINDEX('{filter_id}', @table_name) > 0
|
|
BEGIN
|
|
SELECT @sql = REPLACE(
|
|
@table_name
|
|
,'{filter_id}'
|
|
,CASE
|
|
WHEN @field_condition = 'controlNo' THEN ISNULL(@controlNo, '')
|
|
WHEN @field_condition = 'username' THEN @username ELSE CAST(@agentFilterId AS VARCHAR) END)
|
|
END
|
|
ELSE
|
|
BEGIN
|
|
SET @sql = @table_name + ' WHERE ' + @field_condition + ' = '''
|
|
IF @field_condition = 'controlNo'
|
|
SET @sql = @sql + ISNULL(@controlNo, '') + ''''
|
|
ELSE IF @field_condition = 'username'
|
|
SET @sql = @sql + ISNULL(@username, '') + ''''
|
|
ELSE
|
|
SET @sql = @sql + CAST(@agentFilterId AS VARCHAR) + ''''
|
|
END
|
|
IF @letter_type = 'f' --single data from one or more table
|
|
BEGIN
|
|
DELETE FROM @value
|
|
INSERT @value(value)
|
|
EXEC (@sql)
|
|
|
|
SET @variable_value = ''
|
|
SELECT @variable_value = ISNULL(value, '') FROM @value
|
|
END
|
|
|
|
ELSE IF @letter_type = 'd' --current date
|
|
BEGIN
|
|
DECLARE @format INT
|
|
IF ISNUMERIC(@table_name) = 1
|
|
SET @format = CAST(@table_name AS INT)
|
|
ELSE
|
|
SET @format = 107
|
|
|
|
SET @variable_value = CONVERT(VARCHAR, GETDATE(), @format)
|
|
|
|
END
|
|
|
|
ELSE IF @letter_type = 't'
|
|
BEGIN
|
|
SET @variable_value = ISNULL(@complain, '')
|
|
END
|
|
|
|
IF @letter_type IN ('f', 'd', 't')
|
|
BEGIN
|
|
SET @subject = REPLACE(@subject, @variable_name, @variable_value)
|
|
SET @body = REPLACE(@body, @variable_name, @variable_value)
|
|
END
|
|
|
|
DELETE FROM @variableList WHERE variable_name = @variable_name
|
|
|
|
END
|
|
SET @subject = REPLACE(@subject, ' ', ' ')
|
|
SET @body = REPLACE(@body, ' ', ' ')
|
|
|
|
SELECT @subject, @body
|
|
|
|
|
|
GO
|