USP_GROUPGOAL_EDIT

Updates a record in GroupGoal table

Parameters

Parameter Parameter Type Mode Description
@ID uniqueidentifier INOUT
@CHANGEAGENTID uniqueidentifier IN
@GROUPGOALUNITCODEID uniqueidentifier IN
@AMOUNT money IN
@GOALDATE datetime IN
@STARTDATE datetime IN
@DESCRIPTION nvarchar(200) IN
@NAME nvarchar(50) IN

Definition

Copy


CREATE procedure dbo.USP_GROUPGOAL_EDIT
(
    @ID uniqueidentifier = null output,
    @CHANGEAGENTID uniqueidentifier = null,
    @GROUPGOALUNITCODEID uniqueidentifier,
    @AMOUNT money,
    @GOALDATE datetime,
    @STARTDATE datetime = null,
    @DESCRIPTION nvarchar(200) = '',
    @NAME nvarchar(50)
)
as
begin
    if @CHANGEAGENTID is null  
        exec dbo.USP_CHANGEAGENT_GETORCREATECHANGEAGENT @CHANGEAGENTID output

    declare @CURRENTDATE datetime
    set @CURRENTDATE = getdate()

    begin try
        declare @ISFUNDRAISINGGOAL bit;
        declare @BASECURRENCYID uniqueidentifier;
        declare @DATEADDED datetime;
        declare @ORGANIZATIONAMOUNT money = 0;
        declare @ORGANIZATIONEXCHANGERATEID uniqueidentifier;
        declare @ORGANIZATIONCURRENCYID uniqueidentifier = dbo.UFN_CURRENCY_GETORGANIZATIONCURRENCY();

        select
            @ISFUNDRAISINGGOAL = ISFUNDRAISINGGOAL,
            @BASECURRENCYID = BASECURRENCYID,
            @DATEADDED = DATEADDED
        from
            dbo.GROUPGOAL
        where
            ID = @ID

        if @ISFUNDRAISINGGOAL = 1
        begin
            if @BASECURRENCYID = @ORGANIZATIONCURRENCYID
                set @ORGANIZATIONAMOUNT = @AMOUNT;
            else --Base currency has changed and isn't the org currency

            begin
                set @ORGANIZATIONEXCHANGERATEID = dbo.UFN_CURRENCYEXCHANGERATE_GETLATEST(@BASECURRENCYID, @ORGANIZATIONCURRENCYID, @CURRENTDATE, 0, null);
                set @ORGANIZATIONAMOUNT = dbo.UFN_CURRENCY_CONVERT(@AMOUNT, @ORGANIZATIONEXCHANGERATEID);
            end

        end

        -- handle updating the data

        update dbo.GROUPGOAL set
            GROUPGOALUNITCODEID = @GROUPGOALUNITCODEID,
            AMOUNT = @AMOUNT,
            STARTDATE = @STARTDATE,        
            GOALDATE = @GOALDATE,    
            DESCRIPTION = @DESCRIPTION,
            CHANGEDBYID = @CHANGEAGENTID,
            DATECHANGED = @CURRENTDATE,
            NAME = @NAME,
            ORGANIZATIONEXCHANGERATEID = @ORGANIZATIONEXCHANGERATEID,
            ORGANIZATIONAMOUNT = ORGANIZATIONAMOUNT
        where ID = @ID
    end try
    begin catch
        exec dbo.USP_RAISE_ERROR
        return 1
    end catch

return 0;
end