USP_DATAFORMTEMPLATE_EDIT_REGISTRANTGOALSETTING

Parameters

Parameter Parameter Type Mode Description
@ID uniqueidentifier IN
@CHANGEAGENTID uniqueidentifier IN
@FUNDRAISINGGOAL money IN
@MEMBERECRUITMENTGOAL int IN
@COMMUNICATIONGOAL int IN
@VOLUNTEERRECRUITMENTGOAL int IN
@TARGETFUNDRAISINGGOAL money IN
@DONORRETENTIONGOAL decimal(5, 2) IN
@OTHERUNITGOAL int IN

Definition

Copy

CREATE procedure dbo.USP_DATAFORMTEMPLATE_EDIT_REGISTRANTGOALSETTING
(
    @ID uniqueidentifier,
    @CHANGEAGENTID uniqueidentifier = null,
  @FUNDRAISINGGOAL money,
  @MEMBERECRUITMENTGOAL int,
  @COMMUNICATIONGOAL int,
  @VOLUNTEERRECRUITMENTGOAL int,
    @TARGETFUNDRAISINGGOAL money,
    @DONORRETENTIONGOAL decimal(5,2),
    @OTHERUNITGOAL int
)
as

    set nocount on;

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

    begin try

        --Pull default and restriction
        --Event default goals---
        DECLARE @EVENTMINFUNDRAISING money = 0
        DECLARE @EVENTTARGETFUNDRAISING money = 0
        DECLARE @EVENTCURRENTGOAL money = 0 --Current Goal is for all roles such as current goal of individual participant, team goal, household goal, company goal
        DECLARE @EVENTNUMOFCOMM Integer = 0
        DECLARE @EVENTNUMOFVOL Integer = 0
        DECLARE @EVENTNUMOFPARTS Integer = 0
        DECLARE @EVENTPEROFDONORS decimal = 0.0
        DECLARE @EVENTPEROFTEAMMEMBERS decimal = 0.0
        DECLARE @EVENTOTHERGOAL Integer = 0
        DECLARE @EVENTNUMOFTEAMS Integer = 0
        DECLARE @EVENTPEROFTEAMS decimal = 0
        DECLARE @EVENTNUMOFTEAMEMBERS Integer = 0

        DECLARE @ISNOTLOWERFUNDRAISING bit = 0
        DECLARE @ISNOTLOWERRECRUITEMENT bit = 0
        DECLARE @ISNOTLOWERVOLUNTEERRECRUITEMENT bit = 0
        DECLARE @ISNOTLOWERDONORRETENTION bit = 0
        DECLARE @ISNOTLOWERCOMMUNICATION bit =0
        DECLARE @ISNOTLOWERTEAMMEMBERS bit = 0
        DECLARE @ISNOTLOWERTEAMMEMBERRETENTION bit = 0 
        DECLARE @ISNOTLOWERTEAMS bit = 0
        DECLARE @ISNOTLOWERTEAMRETENTION bit = 0
        DECLARE @ISNOTLOWERTARGETFUNDRAISING bit = 0        

        DECLARE @EVENTID uniqueidentifier = NULL
        DECLARE @CONSTITUENTID uniqueidentifier = NULL
        DECLARE @REGTYPEGOALCODE TinyInt = 0

        SELECT @EVENTID=EVENTID, @CONSTITUENTID=CONSTITUENTID FROM REGISTRANT WHERE ID=@ID

        --Pull default and restriction
        SELECT @EVENTMINFUNDRAISING=FG.MINFUNDRAISING,@EVENTTARGETFUNDRAISING=FG.TARGETFUNDRAISING, 
               @EVENTNUMOFPARTS=FG.RECRUITEMENT,@EVENTNUMOFTEAMEMBERS=FG.TEAMMEMBERS, @EVENTNUMOFVOL=FG.VOLUNTEERRECRUITEMENT,
               @EVENTPEROFTEAMMEMBERS=FG.TEAMMEMBERRETENTION, @EVENTNUMOFCOMM=FG.COMMUNICATIONS,@EVENTOTHERGOAL=0,@EVENTNUMOFTEAMS=FG.TEAMS,
               @EVENTPEROFTEAMS=TEAMRETENTION, @EVENTPEROFDONORS=FG.DONORRETENTION,
                @ISNOTLOWERFUNDRAISING = FG.ISNOTLOWERFUNDRAISING, 
                @ISNOTLOWERRECRUITEMENT = FG.ISNOTLOWERRECRUITEMENT,
                @ISNOTLOWERVOLUNTEERRECRUITEMENT = FG.ISNOTLOWERVOLUNTEERRECRUITEMENT,
                @ISNOTLOWERDONORRETENTION = FG.ISNOTLOWERDONORRETENTION,
                @ISNOTLOWERCOMMUNICATION = FG.ISNOTLOWERCOMMUNICATION,
                @ISNOTLOWERTEAMMEMBERS = FG.ISNOTLOWERTEAMMEMBERS,
                @ISNOTLOWERTEAMMEMBERRETENTION = FG.ISNOTLOWERTEAMMEMBERRETENTION,
                @ISNOTLOWERTEAMS = FG.ISNOTLOWERTEAMS,
                @ISNOTLOWERTEAMRETENTION = FG.ISNOTLOWERTEAMRETENTION,
                @ISNOTLOWERTARGETFUNDRAISING = FG.ISNOTLOWERTARGETFUNDRAISING
        FROM FAFREGISTRATIONTYPEGOAL FG, REGISTRANTREGISTRATION RR 
        WHERE RR.REGISTRANTID = (SELECT REG.ID FROM REGISTRANT REG WHERE REG.CONSTITUENTID=@CONSTITUENTID AND REG.EVENTID=@EVENTID)
        AND RR.EVENTPRICEID = FG.EVENTPRICEID 
        AND FG.REGTYPEGOALCODE = @REGTYPEGOALCODE

        declare @ORIGINALFUNDRAISINGGOAL money;
    select @ORIGINALFUNDRAISINGGOAL = FUNDRAISINGGOAL from dbo.REGISTRANTEXTENSION(nolock) where REGISTRANTID = @ID;
    if @ORIGINALFUNDRAISINGGOAL is null
      set @ORIGINALFUNDRAISINGGOAL = @EVENTMINFUNDRAISING;

    -- once fundraising is set, it cannot be changed by UI
    set @FUNDRAISINGGOAL = @ORIGINALFUNDRAISINGGOAL;

        If     (@ISNOTLOWERRECRUITEMENT = 1 AND @MEMBERECRUITMENTGOAL < @EVENTNUMOFPARTS)
            SET @MEMBERECRUITMENTGOAL=@EVENTNUMOFPARTS

        If    (@ISNOTLOWERVOLUNTEERRECRUITEMENT = 1 AND @VOLUNTEERRECRUITMENTGOAL < @EVENTNUMOFVOL)
            SET @VOLUNTEERRECRUITMENTGOAL=@EVENTNUMOFVOL

        If (@ISNOTLOWERDONORRETENTION = 1 AND @DONORRETENTIONGOAL < @EVENTPEROFDONORS)    
            SET @DONORRETENTIONGOAL=@EVENTPEROFDONORS

        If (@ISNOTLOWERCOMMUNICATION = 1 AND @COMMUNICATIONGOAL < @EVENTNUMOFCOMM)
            SET @COMMUNICATIONGOAL = @EVENTNUMOFCOMM

        If    (@ISNOTLOWERFUNDRAISING = 1 and @TARGETFUNDRAISINGGOAL < @EVENTMINFUNDRAISING)
            SET @TARGETFUNDRAISINGGOAL = @EVENTMINFUNDRAISING        

        -- handle updating the data        
      update dbo.REGISTRANTEXTENSION set
      FUNDRAISINGGOAL = @FUNDRAISINGGOAL,
      MEMBERECRUITMENTGOAL = @MEMBERECRUITMENTGOAL,
      COMMUNICATIONGOAL = @COMMUNICATIONGOAL,
      VOLUNTEERRECRUITMENTGOAL = @VOLUNTEERRECRUITMENTGOAL,
            TARGETFUNDRAISINGGOAL = @TARGETFUNDRAISINGGOAL,
            DONORRETENTIONGOAL = @DONORRETENTIONGOAL / 100,
            OTHERUNITGOAL = @OTHERUNITGOAL,
            CHANGEDBYID = @CHANGEAGENTID,
            DATECHANGED = getdate()
        where REGISTRANTID = @ID
    end try
    begin catch
        exec dbo.USP_RAISE_ERROR
        return 1
    end catch

return 0;