USP_DATAFORMTEMPLATE_EDIT_ASSIGNLETTERCODESPROCESS_3
The save procedure used by the edit dataform template "Assign Letters Process Edit Form 2".
Parameters
Parameter | Parameter Type | Mode | Description |
---|---|---|---|
@ID | uniqueidentifier | IN | The input ID parameter indicating the ID of the record being edited. |
@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 |
@IDSETREGISTERID | uniqueidentifier | IN | Selection |
@LETTERCODES | xml | IN | |
@CREATEOUTPUTIDSET | bit | IN | Create selection from results |
@OUTPUTIDSETNAME | nvarchar(100) | IN | Selection name |
@OVERWRITEOUTPUTIDSET | bit | IN | Overwrite existing Selection |
@ASSIGNALLLETTERCODES | bit | IN | Assign all letters |
@USEDATEFILTER | bit | IN | Only consider revenue or recognition credit added since last run |
@OUTPUTIDSETRECORDTYPEID | uniqueidentifier | IN | Selection type |
@INCLUDEDONORASACKNOWLEDGEE | bit | IN | Include donor |
@INCLUDERECOGNITIONRECIPIENTSASACKNOWLEDGEE | bit | IN | Include recognition recipients |
@CURRENTAPPUSERID | uniqueidentifier | IN | Input parameter indicating the ID of the current user. |
@SITEID | uniqueidentifier | IN | Site |
Definition
Copy
CREATE procedure dbo.USP_DATAFORMTEMPLATE_EDIT_ASSIGNLETTERCODESPROCESS_3
(
@ID uniqueidentifier,
@CHANGEAGENTID uniqueidentifier = null,
@NAME nvarchar(100),
@DESCRIPTION nvarchar(255),
@IDSETREGISTERID uniqueidentifier,
@LETTERCODES xml,
@CREATEOUTPUTIDSET bit,
@OUTPUTIDSETNAME nvarchar(100),
@OVERWRITEOUTPUTIDSET bit,
@ASSIGNALLLETTERCODES bit,
@USEDATEFILTER bit,
@OUTPUTIDSETRECORDTYPEID uniqueidentifier,
@INCLUDEDONORASACKNOWLEDGEE bit,
@INCLUDERECOGNITIONRECIPIENTSASACKNOWLEDGEE bit,
@CURRENTAPPUSERID uniqueidentifier,
@SITEID uniqueidentifier
)
as
set nocount on;
declare @CURRENTDATE datetime;
set @CURRENTDATE = getdate();
if coalesce(@INCLUDEDONORASACKNOWLEDGEE, 0) = 0 and
coalesce(@INCLUDERECOGNITIONRECIPIENTSASACKNOWLEDGEE, 0) = 0
begin
raiserror('MUST_INCLUDE_ACKNOWLEDGEES', 13, 1)
return 1
end
declare @BUSINESSPROCESSCATALOGID uniqueidentifier = 'a3a2d937-b5ff-4b2e-8a1b-640f895c2183';
begin try
if @ID is null
set @ID = NewID();
if @CHANGEAGENTID is null
exec dbo.USP_CHANGEAGENT_GETORCREATECHANGEAGENT @CHANGEAGENTID output;
if @ASSIGNALLLETTERCODES = 0
if (select count(*) from dbo.UFN_ASSIGNLETTERCODESPROCESS_GETLETTERCODES_FROMITEMLISTXML(@LETTERCODES)) = 0
raiserror('Please enter at least one letter.', 13, 1);
if exists(select 1 from dbo.[BUSINESSPROCESSSTATUS] where [STATUSCODE] = 4 and [BUSINESSPROCESSPARAMETERSETID] = @ID)
raiserror('ERR_ENQUEUED', 13, 1);
update
dbo.ASSIGNLETTERCODESPROCESS
set
NAME = @NAME,
DESCRIPTION = @DESCRIPTION,
IDSETREGISTERID = @IDSETREGISTERID,
CREATEOUTPUTIDSET = @CREATEOUTPUTIDSET,
OUTPUTIDSETNAME = @OUTPUTIDSETNAME,
OVERWRITEOUTPUTIDSET = @OVERWRITEOUTPUTIDSET,
ASSIGNALLLETTERCODES = @ASSIGNALLLETTERCODES,
USEDATEFILTER = @USEDATEFILTER,
OUTPUTIDSETRECORDTYPEID = @OUTPUTIDSETRECORDTYPEID,
INCLUDEDONORASACKNOWLEDGEE = @INCLUDEDONORASACKNOWLEDGEE,
INCLUDERECOGNITIONRECIPIENTSASACKNOWLEDGEE = @INCLUDERECOGNITIONRECIPIENTSASACKNOWLEDGEE,
CHANGEDBYID = @CHANGEAGENTID,
DATECHANGED = @CURRENTDATE
where
ID = @ID;
if exists(select ID from dbo.BUSINESSPROCESSINSTANCE where BUSINESSPROCESSINSTANCE.BUSINESSPROCESSPARAMETERSETID = @ID and BUSINESSPROCESSINSTANCE.BUSINESSPROCESSCATALOGID = @BUSINESSPROCESSCATALOGID)
begin
update dbo.BUSINESSPROCESSINSTANCE
set SITEID = @SITEID,
CHANGEDBYID = @CHANGEAGENTID,
DATECHANGED = @CURRENTDATE
where BUSINESSPROCESSINSTANCE.BUSINESSPROCESSPARAMETERSETID = @ID
and BUSINESSPROCESSINSTANCE.BUSINESSPROCESSCATALOGID = @BUSINESSPROCESSCATALOGID
and (BUSINESSPROCESSINSTANCE.SITEID <> @SITEID
or BUSINESSPROCESSINSTANCE.SITEID is null and @SITEID is not null
or BUSINESSPROCESSINSTANCE.SITEID is not null and @SITEID is null);
end
else
begin
exec dbo.USP_BUSINESSPROCESSINSTANCE_ADD @CHANGEAGENTID = @CHANGEAGENTID,
@BUSINESSPROCESSCATALOGID = @BUSINESSPROCESSCATALOGID,
@BUSINESSPROCESSPARAMETERSETID = @ID,
@OWNERID = @CURRENTAPPUSERID, @SITEID = @SITEID;
end
if @ASSIGNALLLETTERCODES = 0
exec dbo.USP_ASSIGNLETTERCODESPROCESS_GETLETTERCODES_UPDATEFROMXML @ID, @LETTERCODES, @CHANGEAGENTID, @CURRENTDATE;
end try
begin catch
exec dbo.USP_RAISE_ERROR;
return 1;
end catch
return 0;