USP_DATAFORMTEMPLATE_ADD_DESIGNATIONLEVEL

The save procedure used by the add dataform template "Fundraising Purpose Add Form".

Parameters

Parameter Parameter Type Mode Description
@ID uniqueidentifier INOUT The output parameter indicating the ID of the record added.
@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
@DESIGNATIONLEVELCATEGORYCODEID uniqueidentifier IN Category
@DESIGNATIONLEVELTYPEID uniqueidentifier IN Type
@STEWARDSHIPPACKAGEPROCESSID uniqueidentifier IN Stewardship package
@ADMINISTRATORID uniqueidentifier IN Administrator
@LOOKUPID nvarchar(100) IN Lookup ID
@DESIGNATIONREPORTCODE1ID uniqueidentifier IN Report code 1
@DESIGNATIONREPORTCODE2ID uniqueidentifier IN Report code 2
@SITEID uniqueidentifier IN Site
@CURRENTAPPUSERID uniqueidentifier IN Input parameter indicating the ID of the current user.
@VANITYNAME nvarchar(512) IN Public name
@TIMEPERIODCODE tinyint IN Frequency
@ISENDOWED bit IN Endowed
@ISFULLYFUNDED bit IN Fully funded
@ISINCOMETOPRINCIPAL bit IN Income to principal
@INCOMETOPRINCIPALPERCENT decimal(5, 2) IN Income to principal %
@STATEMENTWORDING nvarchar(1024) IN Statement wording
@ENDOWMENTMINAMOUNT money IN Minimum amount for endowment
@ENDOWMENTTARGETDATE date IN Target date for endowment
@ENDOWMENTMINAMOUNTDATEMET date IN Date minimum amount met

Definition

Copy


                    CREATE procedure dbo.USP_DATAFORMTEMPLATE_ADD_DESIGNATIONLEVEL
                    (
                        @ID uniqueidentifier = null output,
                        @CHANGEAGENTID uniqueidentifier = null,    
                        @NAME nvarchar(100) = '',
                        @DESCRIPTION nvarchar(255) = '',
                        @DESIGNATIONLEVELCATEGORYCODEID uniqueidentifier = null,
                        @DESIGNATIONLEVELTYPEID uniqueidentifier = null,
                        @STEWARDSHIPPACKAGEPROCESSID uniqueidentifier = null,                                          
                        @ADMINISTRATORID uniqueidentifier = null,
                        @LOOKUPID nvarchar(100) = null,
                        @DESIGNATIONREPORTCODE1ID uniqueidentifier = null,
                        @DESIGNATIONREPORTCODE2ID uniqueidentifier = null,
                        @SITEID uniqueidentifier = null,
                        @CURRENTAPPUSERID uniqueidentifier,
                        @VANITYNAME nvarchar(512) = '',
                        @TIMEPERIODCODE tinyint = null,
                        @ISENDOWED bit = null,
                        @ISFULLYFUNDED bit = null,
                        @ISINCOMETOPRINCIPAL bit = null,
                        @INCOMETOPRINCIPALPERCENT decimal(5,2) = null,
                        @STATEMENTWORDING nvarchar(1024) = null,
                        @ENDOWMENTMINAMOUNT money = 0,
                        @ENDOWMENTTARGETDATE date = null,
                        @ENDOWMENTMINAMOUNTDATEMET date = null
                    )
                    as
                    begin
                        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 @STEWARDSHIPPACKAGEPROCESSID is not null and (@TIMEPERIODCODE is null or @TIMEPERIODCODE = 0)
                            raiserror('Frequency is required.',13,1)

                        declare @CURRENTDATE datetime                                        

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

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

                        set @CURRENTDATE = getdate();

                        if COALESCE(@ISINCOMETOPRINCIPAL, 0) = 0
                            set @INCOMETOPRINCIPALPERCENT = 0.00;

                        declare @BASECURRENCYID uniqueidentifier;
                        declare @CURRENCYEXCHANGERATEID uniqueidentifier;
                        declare @ORGANIZATIONENDOWMENTMINAMOUNT money;
                        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 @ORGANIZATIONENDOWMENTMINAMOUNT = @ENDOWMENTMINAMOUNT;
                        end
                        else
                        begin
                            set @CURRENCYEXCHANGERATEID = dbo.UFN_CURRENCYEXCHANGERATE_GETLATEST(@BASECURRENCYID, @ORGANIZATIONCURRENCYID, @CURRENTDATE, 0, null);
                            set @ORGANIZATIONENDOWMENTMINAMOUNT = dbo.UFN_CURRENCY_CONVERT(@ENDOWMENTMINAMOUNT, @CURRENCYEXCHANGERATEID);
                        end

                        begin try                                   
                            insert into dbo.DESIGNATIONLEVEL
                                (ID,NAME,DESCRIPTION,DESIGNATIONLEVELCATEGORYCODEID,DESIGNATIONLEVELTYPEID,STEWARDSHIPPACKAGEPROCESSID,ADMINISTRATORID,USERID,DESIGNATIONREPORT1CODEID,DESIGNATIONREPORT2CODEID,SITEID,VANITYNAME,TIMEPERIODCODE,ISENDOWED,ISFULLYFUNDED,ISINCOMETOPRINCIPAL,INCOMETOPRINCIPALPERCENT,STATEMENTWORDING,ENDOWMENTMINAMOUNT,ORGANIZATIONENDOWMENTMINAMOUNT,ORGANIZATIONEXCHANGERATEID,ENDOWMENTTARGETDATE,ENDOWMENTMINAMOUNTDATEMET,BASECURRENCYID,ADDEDBYID,CHANGEDBYID,DATEADDED,DATECHANGED)
                            VALUES
                                (@ID,@NAME,@DESCRIPTION,@DESIGNATIONLEVELCATEGORYCODEID,@DESIGNATIONLEVELTYPEID,@STEWARDSHIPPACKAGEPROCESSID,@ADMINISTRATORID,@LOOKUPID,@DESIGNATIONREPORTCODE1ID,@DESIGNATIONREPORTCODE2ID,@SITEID,@VANITYNAME,coalesce(@TIMEPERIODCODE,0),@ISENDOWED,@ISFULLYFUNDED,@ISINCOMETOPRINCIPAL,@INCOMETOPRINCIPALPERCENT,@STATEMENTWORDING,@ENDOWMENTMINAMOUNT,@ORGANIZATIONENDOWMENTMINAMOUNT,@CURRENCYEXCHANGERATEID,@ENDOWMENTTARGETDATE,@ENDOWMENTMINAMOUNTDATEMET,@BASECURRENCYID,@CHANGEAGENTID,@CHANGEAGENTID,@CURRENTDATE,@CURRENTDATE)
                        end try

                        begin catch
                            exec dbo.USP_RAISE_ERROR
                            return 1
                        end catch

                        return 0

                    end