USP_GROUPGOAL_ADD

Adds a record to GroupGoal table

Parameters

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

Definition

Copy


CREATE procedure dbo.USP_GROUPGOAL_ADD 
(
    @ID uniqueidentifier = null output,
    @GROUPID uniqueidentifier,
    @CHANGEAGENTID uniqueidentifier = null,
    @ISFUNDRAISINGGOAL bit,
    @GROUPGOALUNITCODEID uniqueidentifier,
    @AMOUNT money,
    @GOALDATE datetime,
    @STARTDATE datetime = null,
    @DESCRIPTION nvarchar(200) = '',
    @NAME nvarchar(50) = '',
    @CURRENTAPPUSERID uniqueidentifier = null
)
as
begin
set nocount on;

if dbo.UFN_GROUPCANHAVEGOALS(@GROUPID) = 0
    raiserror('GROUPTYPE_DOESNOTPERMITGOALS',13,1);

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

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

declare @CURRENTDATE datetime
set @CURRENTDATE = getdate();

declare @BASECURRENCYID uniqueidentifier;
declare @ORGANIZATIONAMOUNT money = 0;
declare @ORGANIZATIONEXCHANGERATEID uniqueidentifier;
declare @ORGANIZATIONCURRENCYID uniqueidentifier;
if @ISFUNDRAISINGGOAL = 1
begin
    set @BASECURRENCYID = dbo.UFN_APPUSER_GETBASECURRENCY(@CURRENTAPPUSERID);
    set @ORGANIZATIONCURRENCYID = dbo.UFN_CURRENCY_GETORGANIZATIONCURRENCY();
    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


begin try
    insert into dbo.GROUPGOAL
        (ID, GROUPID, ISFUNDRAISINGGOAL, GROUPGOALUNITCODEID, AMOUNT, STARTDATE, GOALDATE, DESCRIPTION, BASECURRENCYID, ORGANIZATIONAMOUNT, ORGANIZATIONEXCHANGERATEID, ADDEDBYID, CHANGEDBYID, DATEADDED, DATECHANGED, NAME)
    values
        (@ID, @GROUPID, @ISFUNDRAISINGGOAL, @GROUPGOALUNITCODEID, @AMOUNT, @STARTDATE, @GOALDATE, @DESCRIPTION, @BASECURRENCYID, @ORGANIZATIONAMOUNT, @ORGANIZATIONEXCHANGERATEID, @CHANGEAGENTID, @CHANGEAGENTID, @CURRENTDATE, @CURRENTDATE , @NAME)
end try

begin catch
    exec dbo.USP_RAISE_ERROR
    return 1
end catch

return 0                
end