USP_DATAFORMTEMPLATE_ADD_RECOGNITIONPROGRAM

The save procedure used by the add dataform template "Recognition Program Add Data Form".

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
@SITEID uniqueidentifier IN Site
@TYPECODE tinyint IN Type
@ALLOWINDIVIDUAL bit IN Individuals
@ALLOWHOUSEHOLD bit IN Households
@ALLOWGROUP bit IN Groups
@ALLOWORGANIZATION bit IN Organizations
@EXPIRESONCODE tinyint IN Expiration date
@BACKDATEMEMBERSHIPS bit IN Set expiration to the end of the following year when starting after cutoff day
@CUTOFFDATEFORYEAR char(4) IN Cutoff date
@SELECTIONID uniqueidentifier IN Additional revenue selection
@STARTDATE datetime IN Recognition effective date
@GIFTTYPESFILTER xml IN Transaction and application type
@DESIGNATIONS xml IN Filter designations by
@MAXIMUMAMOUNT money IN Maximum recognition amount
@REVENUECODE tinyint IN
@PLANNEDGIFTCODE tinyint IN
@RECOGNITIONCREDITTYPES xml IN Recognition credit types
@INCLUDECREDITWITHOUTTYPE tinyint IN Include recognition credits without specified type
@USEGROSSAMOUNT bit IN

Definition

Copy


                    CREATE procedure dbo.USP_DATAFORMTEMPLATE_ADD_RECOGNITIONPROGRAM
                    (
                        @ID uniqueidentifier = null output,
                        @CURRENTAPPUSERID uniqueidentifier,                                          
                        @CHANGEAGENTID uniqueidentifier = null,
                        @NAME nvarchar(100) = '',
                        @DESCRIPTION nvarchar(255) = '',
                        @SITEID uniqueidentifier = null,
                        @TYPECODE tinyint = 0,
                        @ALLOWINDIVIDUAL bit = 1,
                        @ALLOWHOUSEHOLD bit = 1,
                        @ALLOWGROUP bit = 1,
                        @ALLOWORGANIZATION bit = 1,
                        @EXPIRESONCODE tinyint = 0,
                        @BACKDATEMEMBERSHIPS bit = null,
                        @CUTOFFDATEFORYEAR char(4) = '',
                        @SELECTIONID uniqueidentifier = null,
                        @STARTDATE datetime = null,
                        @GIFTTYPESFILTER xml = null,
                        @DESIGNATIONS xml = null,
                        @MAXIMUMAMOUNT money = 0,
                        @REVENUECODE tinyint = 0,
                        @PLANNEDGIFTCODE tinyint = 0,
            @RECOGNITIONCREDITTYPES xml = null,
            @INCLUDECREDITWITHOUTTYPE tinyint = 1,
            @USEGROSSAMOUNT bit = 0 
                    )
                    as

                    set nocount on;

                    if @SITEID is null
                        begin 
                        if dbo.UFN_SITEREQUIREDFORUSER(@CURRENTAPPUSERID) = 1 
                            begin
                            raiserror('Site is required.',13,1)
                            return
                            end
                        end

                    if @TYPECODE <> 0
                        begin
                        set @BACKDATEMEMBERSHIPS = 0;
                        set @CUTOFFDATEFORYEAR = '0000';
                        end

                    if @ID is null
                        set @ID = newid()

                    if @CHANGEAGENTID is null  
                        exec dbo.USP_CHANGEAGENT_GETORCREATECHANGEAGENT @CHANGEAGENTID output

                    declare @CURRENTDATE datetime
                    set @CURRENTDATE = getdate()

                    begin try
                        declare @BASECURRENCYID uniqueidentifier;
                        declare @ORGANIZATIONMAXIMUMAMOUNT money;
                        declare @ORGANIZATIONEXCHANGERATEID uniqueidentifier;
                        declare @ORGANIZATIONCURRENCYID uniqueidentifier;
                        set @ORGANIZATIONCURRENCYID = dbo.UFN_CURRENCY_GETORGANIZATIONCURRENCY();

                        select @BASECURRENCYID = 
                            (select CURRENCYSET.BASECURRENCYID from dbo.CURRENCYSET where ID = dbo.UFN_CURRENCYSET_GETAPPUSERCURRENCYSET(@CURRENTAPPUSERID))

                        if (@ORGANIZATIONCURRENCYID = @BASECURRENCYID)
                        begin
                            set @ORGANIZATIONMAXIMUMAMOUNT = @MAXIMUMAMOUNT;
                        end
                        else
                        begin
                            set @ORGANIZATIONEXCHANGERATEID = dbo.UFN_CURRENCYEXCHANGERATE_GETLATEST(@BASECURRENCYID, @ORGANIZATIONCURRENCYID, @CURRENTDATE, 0, null);
                            set @ORGANIZATIONMAXIMUMAMOUNT = dbo.UFN_CURRENCY_CONVERT(@MAXIMUMAMOUNT, @ORGANIZATIONEXCHANGERATEID);
                        end

                        insert into dbo.RECOGNITIONPROGRAM
                            (ID, 
                             NAME, 
                             DESCRIPTION, 
                             SITEID, 
                             TYPECODE, 
                             ALLOWINDIVIDUAL,
                             ALLOWHOUSEHOLD,
                             ALLOWGROUP,
                             ALLOWORGANIZATION,
                             EXPIRESONCODE, 
                             BACKDATEMEMBERSHIPS, 
                             CUTOFFDATEFORYEAR,
                             SELECTIONID,
                             STARTDATE,
                             GIFTTYPESFILTER,
                             MAXIMUMAMOUNT,
                             ORGANIZATIONMAXIMUMAMOUNT,
                             ORGANIZATIONEXCHANGERATEID,
                             PLANNEDGIFTCODE,
                             ISACTIVE,
                             BASECURRENCYID,
                             ADDEDBYID, 
                             CHANGEDBYID, 
                             DATEADDED, 
                             DATECHANGED,
               INCLUDECREDITWITHOUTTYPE,
               USEGROSSAMOUNT)
                        values
                            (@ID
                             @NAME
                             @DESCRIPTION
                             @SITEID
                             @TYPECODE
                             @ALLOWINDIVIDUAL,
                             @ALLOWHOUSEHOLD,
                             @ALLOWGROUP,
                             @ALLOWORGANIZATION,
                             @EXPIRESONCODE
                             @BACKDATEMEMBERSHIPS
                             @CUTOFFDATEFORYEAR,
                             @SELECTIONID,
                             @STARTDATE,
                             @GIFTTYPESFILTER,
                             @MAXIMUMAMOUNT,
                             @ORGANIZATIONMAXIMUMAMOUNT,
                             @ORGANIZATIONEXCHANGERATEID,
                             @PLANNEDGIFTCODE,
                             1
                             @BASECURRENCYID,
                             @CHANGEAGENTID
                             @CHANGEAGENTID
                             @CURRENTDATE
                             @CURRENTDATE,
               @INCLUDECREDITWITHOUTTYPE,
               @USEGROSSAMOUNT);

                        if not @DESIGNATIONS is null
                            exec dbo.USP_RECOGNITIONPROGRAM_GETDESIGNATIONS_ADDFROMXML @ID, @DESIGNATIONS, @CHANGEAGENTID, @CURRENTDATE;

                        exec dbo.USP_RECOGNITIONPROGRAM_CREATEQUERY @ID, @NAME, @CHANGEAGENTID;

                        if not @RECOGNITIONCREDITTYPES is null
                            exec dbo.USP_RECOGNITIONPROGRAM_GETCREDITTYPES_ADDFROMXML @ID, @RECOGNITIONCREDITTYPES, @CHANGEAGENTID, @CURRENTDATE;

                        if @INCLUDECREDITWITHOUTTYPE = 0 and not exists (select * from dbo.UFN_RECOGNITIONPROGRAM_GETCREDITTYPES(@ID))                            
                            raiserror('BBERR_RECOGNITIONPROGRAM_SPECIFYCREDITTYPEORNONE', 13, 1);

                    end try

                    begin catch
                        exec dbo.USP_RAISE_ERROR
                        return 1
                    end catch

                    return 0