USP_DATAFORMTEMPLATE_ADD_DONORCHALLENGEMEMBERSHIPMAP

The save procedure used by the add dataform template "Donor Challenge Membership Map Add Form".

Parameters

Parameter Parameter Type Mode Description
@ID uniqueidentifier INOUT The output parameter indicating the ID of the record added.
@CHANGEAGENTID uniqueidentifier IN Input parameter indicating the ID of the change agent invoking the procedure.
@CURRENTAPPUSERID uniqueidentifier IN Input parameter indicating the ID of the current user.
@DONORCHALLENGEID uniqueidentifier IN Input parameter indicating the context ID for the record being added.
@MEMBERSHIPPROGRAMID uniqueidentifier IN Program
@MEMBERSHIPLEVELID uniqueidentifier IN Level
@MATCHINGDESIGNATIONID uniqueidentifier IN Matching funds designation

Definition

Copy


CREATE procedure dbo.USP_DATAFORMTEMPLATE_ADD_DONORCHALLENGEMEMBERSHIPMAP
(
    @ID uniqueidentifier = null output,
    @CHANGEAGENTID uniqueidentifier = null,
    @CURRENTAPPUSERID uniqueidentifier,
    @DONORCHALLENGEID uniqueidentifier,
    @MEMBERSHIPPROGRAMID uniqueidentifier,
    @MEMBERSHIPLEVELID uniqueidentifier = null,
    @MATCHINGDESIGNATIONID uniqueidentifier = null
)
as
begin
    set nocount on;

    declare @CURRENTDATE datetime = getdate();

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

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

    begin try
        declare @TYPECODE as tinyint;
        select @TYPECODE = TYPECODE from dbo.DONORCHALLENGE where ID = @DONORCHALLENGEID;

        if @MEMBERSHIPLEVELID is null
            insert into dbo.DONORCHALLENGEMEMBERSHIPLEVELMAP
            (
                ID,
                DONORCHALLENGEID,
                MEMBERSHIPLEVELID,
                MATCHINGDESIGNATIONID,
                ADDEDBYID,
                CHANGEDBYID,
                DATEADDED,
                DATECHANGED
            )
            select
                newid(),
                @DONORCHALLENGEID,
                MEMBERSHIPLEVEL.ID,
                case when @TYPECODE = 1 then null else @MATCHINGDESIGNATIONID end,
                @CHANGEAGENTID,
                @CHANGEAGENTID,
                @CURRENTDATE,
                @CURRENTDATE
            from
                dbo.MEMBERSHIPPROGRAM
            inner join
                dbo.MEMBERSHIPLEVEL on MEMBERSHIPLEVEL.MEMBERSHIPPROGRAMID = MEMBERSHIPPROGRAM.ID
            where
                MEMBERSHIPPROGRAM.ID = @MEMBERSHIPPROGRAMID

        else
            insert into dbo.DONORCHALLENGEMEMBERSHIPLEVELMAP
            (
                ID,
                DONORCHALLENGEID,
                MEMBERSHIPLEVELID,
                MATCHINGDESIGNATIONID,
                ADDEDBYID,
                CHANGEDBYID,
                DATEADDED,
                DATECHANGED
            )
            values
            (
                @ID,
                @DONORCHALLENGEID,
                @MEMBERSHIPLEVELID,
                case when @TYPECODE = 1 then null else @MATCHINGDESIGNATIONID end,
                @CHANGEAGENTID,
                @CHANGEAGENTID,
                @CURRENTDATE,
                @CURRENTDATE
            )

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

    return 0

end