USP_DATAFORMTEMPLATE_ADD_APPEALMAILINGSETUP_APPEALMAILINGSETUP_MINIMAL
The save procedure used by the add dataform template "Appeal Mailing Add Data Form For Minimal Data Ext".
Parameters
Parameter | Parameter Type | Mode | Description |
---|---|---|---|
@ID | uniqueidentifier | INOUT | The output parameter indicating the ID of the record added. |
@CURRENTAPPUSERID | uniqueidentifier | IN | Input parameter indicating the ID of the current user. |
@CHANGEAGENTID | uniqueidentifier | IN | Input parameter indicating the ID of the change agent invoking the procedure. |
@NAME | nvarchar(100) | IN | Name |
@DESCRIPTION | nvarchar(255) | IN | Description |
@MAILDATE | datetime | IN | Mail date |
@MAILINGBUDGET | money | IN | Budget |
@APPEALID | uniqueidentifier | IN | Appeal |
@SELECTEDSELECTIONS | xml | IN | |
@EXCLUDESELECTIONS | xml | IN | Exclude records in these selections |
@EXCLUSIONDATETYPECODE | tinyint | IN | Consider exclusions as of |
@EXCLUSIONASOFDATE | datetime | IN | Consider exclusions as of |
@CHANNELCODE | tinyint | IN | |
@CHANNELPREFERENCECODE | tinyint | IN | If the constituent does not have a preference, attempt to send... |
@MAILPACKAGEID | uniqueidentifier | IN | Mail package |
@EMAILPACKAGEID | uniqueidentifier | IN | Email package |
@ADDRESSPROCESSINGOPTIONID | uniqueidentifier | IN | Address processing |
@NAMEFORMATPARAMETERID | uniqueidentifier | IN | Name format |
@HOUSEHOLDINGTYPECODE | tinyint | IN | Include |
@HOUSEHOLDINGINCLUDEINDIVIDUALSWITHNOHOUSEHOLD | bit | IN | Also include qualifying individuals who are not members of any household |
@HOUSEHOLDINGINCLUDEHOUSEHOLDSWITHNOMEMBERS | bit | IN | Also include qualifying households which do not have any members |
@HOUSEHOLDINGONERECORDPERHOUSEHOLD | bit | IN | Send to one person per household |
@CREATEOUTPUTIDSET | bit | IN | Create selection from results |
@OUTPUTIDSETNAME | nvarchar(100) | IN | Selection name |
@OVERWRITEOUTPUTIDSET | bit | IN | Overwrite existing selection |
@FINALSAVECODE | tinyint | IN | |
@OUTPUTPATH | nvarchar(256) | IN | |
@TASKS | xml | IN | |
@SELECTIONS | xml | IN | Selection |
Definition
Copy
CREATE procedure dbo.USP_DATAFORMTEMPLATE_ADD_APPEALMAILINGSETUP_APPEALMAILINGSETUP_MINIMAL
(
@ID uniqueidentifier = null output,
@CURRENTAPPUSERID uniqueidentifier,
@CHANGEAGENTID uniqueidentifier = null,
@NAME nvarchar(100),
@DESCRIPTION nvarchar(255) = '',
@MAILDATE datetime = null,
@MAILINGBUDGET money = 0,
@APPEALID uniqueidentifier,
@SELECTEDSELECTIONS xml = null,
@EXCLUDESELECTIONS xml = null,
@EXCLUSIONDATETYPECODE tinyint = 0,
@EXCLUSIONASOFDATE datetime = null,
@CHANNELCODE tinyint = 0,
@CHANNELPREFERENCECODE tinyint = 0,
@MAILPACKAGEID uniqueidentifier = null,
@EMAILPACKAGEID uniqueidentifier = null,
@ADDRESSPROCESSINGOPTIONID uniqueidentifier = null,
@NAMEFORMATPARAMETERID uniqueidentifier = null,
@HOUSEHOLDINGTYPECODE tinyint = 1,
@HOUSEHOLDINGINCLUDEINDIVIDUALSWITHNOHOUSEHOLD bit = 0,
@HOUSEHOLDINGINCLUDEHOUSEHOLDSWITHNOMEMBERS bit = 0,
@HOUSEHOLDINGONERECORDPERHOUSEHOLD bit = 0 ,
@CREATEOUTPUTIDSET bit = 0,
@OUTPUTIDSETNAME nvarchar(100) = '',
@OVERWRITEOUTPUTIDSET bit = 0,
@FINALSAVECODE tinyint = 0,
@OUTPUTPATH nvarchar(256) = '',
@TASKS xml = null,
@SELECTIONS xml = null
)
as
begin
declare @EXCLUSIONS xml = null;
declare @MKTASKLADDERID uniqueidentifier = null;
declare @TempTbl table ([ID] uniqueidentifier);
declare @TaskTempTbl table ([TASKID] uniqueidentifier, [SUBJECT] nvarchar(100), [NOTES] nvarchar(256), [STATUSCODE] tinyint,
[DATEDUE] UDT_FUZZYDATE, [DATECOMPLETED] datetime, [OWNERID] uniqueidentifier);
declare @RemindersTempTbl table ([TASKID] uniqueidentifier, [NAME] nvarchar(100),[SENDDATE] datetime);
declare @REMINDERS xml;
declare @count int;
begin try
insert into @TempTbl
select
T.c.value('(SELECTIONID)[1]', 'uniqueidentifier') as ID
from
@SELECTIONS.nodes('/SELECTIONS/ITEM') T(c);
set @SELECTEDSELECTIONS = (
select newID() as ID,
temp.ID as SELECTIONID,
IDSETREGISTER.NAME as SELECTIONLABEL
from @TempTbl as temp
inner join dbo.IDSETREGISTER on IDSETREGISTER.ID = temp.ID
for xml raw('ITEM'),type,elements,root('SELECTIONS'),BINARY BASE64);
exec USP_DATAFORMTEMPLATE_ADD_APPEALMAILINGSETUP @ID output, @CURRENTAPPUSERID, @CHANGEAGENTID, @NAME, @DESCRIPTION,
@MAILDATE, @MAILINGBUDGET, @APPEALID, @SELECTEDSELECTIONS, @EXCLUSIONS, @EXCLUDESELECTIONS, @EXCLUSIONDATETYPECODE,
@EXCLUSIONASOFDATE, @CHANNELCODE, @CHANNELPREFERENCECODE, @MAILPACKAGEID, @EMAILPACKAGEID, @ADDRESSPROCESSINGOPTIONID,
@NAMEFORMATPARAMETERID, @HOUSEHOLDINGTYPECODE, @HOUSEHOLDINGINCLUDEINDIVIDUALSWITHNOHOUSEHOLD, @HOUSEHOLDINGINCLUDEHOUSEHOLDSWITHNOMEMBERS,
@HOUSEHOLDINGONERECORDPERHOUSEHOLD, @CREATEOUTPUTIDSET, @OUTPUTIDSETNAME, @OVERWRITEOUTPUTIDSET, @FINALSAVECODE,
@OUTPUTPATH, @MKTASKLADDERID;
insert into @TaskTempTbl
select
T.c.value('(TASKID)[1]', 'uniqueidentifier') as 'TASKID',
T.c.value('(SUBJECT)[1]', 'nvarchar(100)') as 'SUBJECT',
T.c.value('(NOTES)[1]', 'nvarchar(256)') as 'NOTES',
T.c.value('(STATUSCODE)[1]', 'tinyint') as 'STATUSCODE',
T.c.value('(DATEDUE)[1]', 'UDT_FUZZYDATE') as 'DATEDUE',
T.c.value('(DATECOMPLETED)[1]', 'datetime') as 'DATECOMPLETED',
T.c.value('(OWNERID)[1]', 'uniqueidentifier') as 'OWNERID'
from @TASKS.nodes('/TASKS/ITEM') T(c);
update @TaskTempTbl
set TASKID = newID()
where TASKID is null;
select @count = count(*) from @TaskTempTbl
if @count > 0
begin
declare @SUBJECT nvarchar(100);
declare @NOTES nvarchar(256) = '';
declare @DATEDUE dbo.UDT_FUZZYDATE;
declare @STATUSCODE tinyint;
declare @OWNERID uniqueidentifier;
declare @TASKID uniqueidentifier;
declare @CURSORID uniqueidentifier;
declare TASKCURSOR cursor local fast_forward for
select TASKID from @TaskTempTbl
insert into @RemindersTempTbl
select
t.c.value('(TASKID)[1]', 'uniqueidentifier') as 'TASKID',
t.c.value('(NAME)[1]', 'nvarchar(max)') as 'NAME',
t.c.value('(SENDDATE)[1]', 'datetime') as 'SENDDATE'
from @TASKS.nodes('/TASKS/ITEM/REMINDERS/ITEM') t(c);
open TASKCURSOR;
fetch next from TASKCURSOR into @CURSORID
while (@@FETCH_STATUS = 0)
begin
set @REMINDERS = (
select NAME as NAME,
SENDDATE as SENDDATE
from @RemindersTempTbl as REMINDERS
left join @TaskTempTbl as TASKS
on REMINDERS.TASKID = TASKS.TASKID
where REMINDERS.TASKID = @CURSORID
for xml raw('ITEM'),type,elements,root('REMINDERS'),BINARY BASE64);
select @SUBJECT = SUBJECT,
@NOTES = coalesce(NOTES,''),
@DATEDUE = coalesce(DATEDUE,''),
@STATUSCODE = coalesce(STATUSCODE,0),
@OWNERID = coalesce(OWNERID,null)
from @TaskTempTbl as TASKS
where (TASKS.TASKID = @CURSORID)
exec USP_DATAFORMTEMPLATE_ADD_APPEALMAILINGTASK @TASKID output,@ID,@SUBJECT,@NOTES,@DATEDUE,null,@STATUSCODE,@OWNERID,null,@CURRENTAPPUSERID,null,@REMINDERS;
set @TASKID = null;
fetch next from TASKCURSOR into @CURSORID
end
close TASKCURSOR;
deallocate TASKCURSOR;
end
end try
begin catch
exec dbo.[USP_RAISE_ERROR];
return 1;
end catch
return 0;
end