USP_PROSPECTTEAMMEMBER_ADD

Validates parameters, then adds fundraiser to prospect team

Parameters

Parameter Parameter Type Mode Description
@ID uniqueidentifier INOUT
@CHANGEAGENTID uniqueidentifier IN
@PROSPECTID uniqueidentifier IN
@MEMBERID uniqueidentifier IN
@PROSPECTTEAMROLECODEID uniqueidentifier IN
@DATEFROM datetime IN
@DATETO datetime IN

Definition

Copy


create procedure dbo.USP_PROSPECTTEAMMEMBER_ADD
(
    @ID uniqueidentifier = null output,
    @CHANGEAGENTID uniqueidentifier = null,
    @PROSPECTID uniqueidentifier,
    @MEMBERID uniqueidentifier,
    @PROSPECTTEAMROLECODEID uniqueidentifier,
    @DATEFROM datetime,
    @DATETO datetime = null
)
as
begin
    set nocount on;

    -- validate data

    if (dbo.UFN_CONSTITUENT_ISFUNDRAISER(@MEMBERID) <> 1)
        Raiserror('TEAMMEMBERISNOTFUNDRAISER', 13, 1);
    if (dbo.UFN_CONSTITUENT_ISPROSPECT(@PROSPECTID) <> 1)
        Raiserror('NONPROSPECTCANNOTHAVETEAM', 13, 2);
    if not ((@DATETO is null) or (dbo.UFN_DATE_GETLATESTTIME(@DATETO) >= GETDATE()))
        Raiserror('INVALIDTEAMMEMBERDATETO', 13, 3);

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

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

    declare @CURRENTDATE datetime = getdate();

    begin try
        insert into dbo.V_PROSPECTTEAM(ID, PROSPECTID, MEMBERID, PROSPECTTEAMROLECODEID, DATEFROM, DATETO, ADDEDBYID, CHANGEDBYID, DATEADDED, DATECHANGED)
        values(@ID, @PROSPECTID, @MEMBERID, @PROSPECTTEAMROLECODEID, @DATEFROM, @DATETO, @CHANGEAGENTID, @CHANGEAGENTID, @CURRENTDATE, @CURRENTDATE);
    end try

    begin catch
        exec dbo.USP_RAISE_ERROR;
        return 1;
    end catch

    return 0;            
end