USP_DATAFORMTEMPLATE_EDIT_ASSIGNPLANNEDGIFTLETTERCODESPROCESS_2
The save procedure used by the edit dataform template "Assign Planned Gift Letters Process Edit Form".
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 |
@PLANNEDGIFTLETTERCODES | xml | IN | |
@CREATEOUTPUTIDSET | bit | IN | Create output selection |
@OUTPUTIDSETNAME | nvarchar(100) | IN | Selection name |
@OVERWRITEOUTPUTIDSET | bit | IN | Overwrite existing selection |
@ASSIGNALLLETTERCODES | bit | IN | Assign all letter codes |
@USEDATEFILTER | bit | IN | Only consider planned gifts added since last run |
@OUTPUTIDSETRECORDTYPEID | uniqueidentifier | IN | Selection type |
@CURRENTAPPUSERID | uniqueidentifier | IN | Input parameter indicating the ID of the current user. |
@SITEID | uniqueidentifier | IN | Site |
Definition
Copy
CREATE procedure dbo.USP_DATAFORMTEMPLATE_EDIT_ASSIGNPLANNEDGIFTLETTERCODESPROCESS_2
(
@ID uniqueidentifier,
@CHANGEAGENTID uniqueidentifier,
@NAME nvarchar(100),
@DESCRIPTION nvarchar(255),
@IDSETREGISTERID uniqueidentifier,
@PLANNEDGIFTLETTERCODES xml,
@CREATEOUTPUTIDSET bit,
@OUTPUTIDSETNAME nvarchar(100),
@OVERWRITEOUTPUTIDSET bit,
@ASSIGNALLLETTERCODES bit,
@USEDATEFILTER bit,
@OUTPUTIDSETRECORDTYPEID uniqueidentifier,
@CURRENTAPPUSERID uniqueidentifier,
@SITEID uniqueidentifier
)
as
set nocount on;
declare @CURRENTDATE datetime;
set @CURRENTDATE = getdate();
declare @BUSINESSPROCESSCATALOGID uniqueidentifier = '37910A93-C849-4B83-8664-BB22BD12EAFC';
begin try
if (@SITEID is not null)
begin
if dbo.UFN_SITEALLOWEDFORUSER(@CURRENTAPPUSERID, @SITEID) = 0 begin
raiserror ('ERR_SITE_NOACCESS',13,1);
return 1;
end
end
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_ASSIGNPLANNEDGIFTLETTERCODESPROCESS_GETLETTERCODES_FROMITEMLISTXML(@PLANNEDGIFTLETTERCODES)) = 0
raiserror('Please enter at least one letter code.', 13, 1);
update
dbo.ASSIGNPLANNEDGIFTLETTERCODESPROCESS
set
NAME = @NAME,
DESCRIPTION = @DESCRIPTION,
IDSETREGISTERID = @IDSETREGISTERID,
CREATEOUTPUTIDSET = @CREATEOUTPUTIDSET,
OUTPUTIDSETNAME = @OUTPUTIDSETNAME,
OVERWRITEOUTPUTIDSET = @OVERWRITEOUTPUTIDSET,
ASSIGNALLLETTERCODES = @ASSIGNALLLETTERCODES,
USEDATEFILTER = @USEDATEFILTER,
OUTPUTIDSETRECORDTYPEID = @OUTPUTIDSETRECORDTYPEID,
CHANGEDBYID = @CHANGEAGENTID,
DATECHANGED = @CURRENTDATE
where
ID = @ID;
if @ASSIGNALLLETTERCODES = 0
exec dbo.USP_ASSIGNPLANNEDGIFTLETTERCODESPROCESS_GETLETTERCODES_UPDATEFROMXML @ID, @PLANNEDGIFTLETTERCODES, @CHANGEAGENTID, @CURRENTDATE;
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
end try
begin catch
exec dbo.USP_RAISE_ERROR;
return 1;
end catch
return 0;