USP_DATAFORMTEMPLATE_EDIT_DESIGNATIONLEVEL_4

The save procedure used by the edit dataform template "Fundraising Purpose Edit Form 3".

Parameters

Parameter Parameter Type Mode Description
@ID uniqueidentifier IN The input ID parameter indicating the ID of the record being edited.
@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
@DESIGNATIONLEVELCATEGORYCODEID uniqueidentifier IN Category
@ADMINISTRATORID uniqueidentifier IN Administrator
@STEWARDSHIPPACKAGEPROCESSID uniqueidentifier IN Stewardship package
@LOOKUPID nvarchar(100) IN Lookup ID
@DESIGNATIONREPORTCODE1ID uniqueidentifier IN Report code 1
@DESIGNATIONREPORTCODE2ID uniqueidentifier IN Report code 2
@SITEID uniqueidentifier IN Site
@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_EDIT_DESIGNATIONLEVEL_4
                        (
                            @ID uniqueidentifier,
                            @CURRENTAPPUSERID uniqueidentifier,
                            @CHANGEAGENTID uniqueidentifier = null,                
                            @NAME nvarchar(100),
                            @DESCRIPTION nvarchar(255),
                            @DESIGNATIONLEVELCATEGORYCODEID uniqueidentifier,
                            @ADMINISTRATORID uniqueidentifier,
                            @STEWARDSHIPPACKAGEPROCESSID uniqueidentifier,                                                 
                            @LOOKUPID nvarchar(100),
                            @DESIGNATIONREPORTCODE1ID uniqueidentifier,
                            @DESIGNATIONREPORTCODE2ID uniqueidentifier,
                            @SITEID uniqueidentifier,
                            @VANITYNAME nvarchar(512),
                            @TIMEPERIODCODE tinyint,
                            @ISENDOWED bit,
                            @ISFULLYFUNDED bit,
                            @ISINCOMETOPRINCIPAL bit,
                            @INCOMETOPRINCIPALPERCENT decimal(5,2),
                            @STATEMENTWORDING nvarchar(1024),
                            @ENDOWMENTMINAMOUNT money,
                            @ENDOWMENTTARGETDATE date,
                            @ENDOWMENTMINAMOUNTDATEMET date
                        )
                    as                
                    begin                
                        set nocount on;
                        declare @CURRENTDATE datetime
                        set @CURRENTDATE = getdate()

                        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)

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

                        declare @BASECURRENCYID uniqueidentifier;
                        declare @DATEADDED datetime;
                        declare @CURRENCYEXCHANGERATEID uniqueidentifier;
                        declare @ORGANIZATIONENDOWMENTMINAMOUNT money;
                        declare @ORGANIZATIONCURRENCYID uniqueidentifier;
                        set @ORGANIZATIONCURRENCYID = dbo.UFN_CURRENCY_GETORGANIZATIONCURRENCY();

                        select
                            @BASECURRENCYID = DESIGNATIONLEVEL.BASECURRENCYID,
                            @DATEADDED = DESIGNATIONLEVEL.DATEADDED,
                            @CURRENCYEXCHANGERATEID = DESIGNATIONLEVEL.ORGANIZATIONEXCHANGERATEID
                        from
                            dbo.DESIGNATIONLEVEL
                        where
                            DESIGNATIONLEVEL.ID = @ID;

                        if (@ORGANIZATIONCURRENCYID = @BASECURRENCYID)
                        begin
                            set @ORGANIZATIONENDOWMENTMINAMOUNT = @ENDOWMENTMINAMOUNT;
                        end
                        else
                        begin
                            if @CURRENCYEXCHANGERATEID is null
                                set @CURRENCYEXCHANGERATEID = dbo.UFN_CURRENCYEXCHANGERATE_GETLATEST(@BASECURRENCYID, @ORGANIZATIONCURRENCYID, @DATEADDED, 0, null);

                            set @ORGANIZATIONENDOWMENTMINAMOUNT = dbo.UFN_CURRENCY_CONVERT(@ENDOWMENTMINAMOUNT, @CURRENCYEXCHANGERATEID);
                        end

                        --Check if the designation level site will be putting auction items out of sync

                        --with their associated auction\event site(s)

                        declare @PREVIOUSSITEID uniqueidentifier = null;
                        select @PREVIOUSSITEID = SITEID from dbo.DESIGNATIONLEVEL where ID = @ID
                        if (@PREVIOUSSITEID is null and @SITEID is not null) or (@PREVIOUSSITEID is not null and @SITEID is null) or (@PREVIOUSSITEID <> @SITEID)
                            if dbo.UFN_DESIGNATIONLEVEL_SITEVALIDFORLINKEDAUCTIONITEMS(@ID,@SITEID) <> 1
                                raiserror('BBERR_DESIGNATIONLEVEL_SITENOTVALIDFORAUCTIONITEMS', 13, 1);

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

                            update 
                                dbo.DESIGNATIONLEVEL
                            set 
                                NAME= @NAME,
                                DESCRIPTION = @DESCRIPTION,
                                DESIGNATIONLEVELCATEGORYCODEID = @DESIGNATIONLEVELCATEGORYCODEID,
                                STEWARDSHIPPACKAGEPROCESSID = @STEWARDSHIPPACKAGEPROCESSID,                                                        
                                ADMINISTRATORID = @ADMINISTRATORID,
                                USERID = @LOOKUPID,
                                DESIGNATIONREPORT1CODEID = @DESIGNATIONREPORTCODE1ID,
                                DESIGNATIONREPORT2CODEID = @DESIGNATIONREPORTCODE2ID,
                                CHANGEDBYID = @CHANGEAGENTID,
                                DATECHANGED = @CURRENTDATE,
                                SITEID = @SITEID,
                                VANITYNAME = @VANITYNAME,
                                TIMEPERIODCODE = coalesce(@TIMEPERIODCODE,0),
                                ISENDOWED = @ISENDOWED,
                                ISFULLYFUNDED = @ISFULLYFUNDED,
                                ISINCOMETOPRINCIPAL = @ISINCOMETOPRINCIPAL,
                                INCOMETOPRINCIPALPERCENT = @INCOMETOPRINCIPALPERCENT,
                                STATEMENTWORDING = @STATEMENTWORDING,
                                ENDOWMENTMINAMOUNT = @ENDOWMENTMINAMOUNT,
                                ORGANIZATIONENDOWMENTMINAMOUNT = @ORGANIZATIONENDOWMENTMINAMOUNT,
                                ENDOWMENTTARGETDATE = @ENDOWMENTTARGETDATE,
                                ENDOWMENTMINAMOUNTDATEMET = @ENDOWMENTMINAMOUNTDATEMET,
                                ORGANIZATIONEXCHANGERATEID = @CURRENCYEXCHANGERATEID
                            where 
                                ID = @ID;

                            --update the associated hierarchy root if it exists

                            --update 

                            --    dbo.DESIGNATION

                            --set 

                            --    USERID = @LOOKUPID,

                            --    DESIGNATIONREPORT1CODEID = @DESIGNATIONREPORTCODE1ID,

                            --    DESIGNATIONREPORT2CODEID = @DESIGNATIONREPORTCODE2ID,

                            --    CHANGEDBYID = @CHANGEAGENTID,

                            --    DATECHANGED = @CURRENTDATE

                            --where DESIGNATIONLEVEL1ID = @ID

                            --    and DESIGNATIONLEVEL2ID is null;


                        end try

                        begin catch
                            exec dbo.USP_RAISE_ERROR
                            return 1
                        end catch

                        return 0
                    end