USP_DATAFORMTEMPLATE_EDIT_MEMBERSHIPRENEWALINFORMATION

Parameters

Parameter Parameter Type Mode Description
@ID uniqueidentifier IN
@CHANGEAGENTID uniqueidentifier IN
@ISGIFT bit IN
@SENDRENEWALCODE tinyint IN
@GIVENBYID uniqueidentifier IN

Definition

Copy

CREATE procedure dbo.USP_DATAFORMTEMPLATE_EDIT_MEMBERSHIPRENEWALINFORMATION (
    @ID uniqueidentifier,
    @CHANGEAGENTID uniqueidentifier = null,
    @ISGIFT bit,
    @SENDRENEWALCODE tinyint,
    @GIVENBYID uniqueidentifier
)
as
    set nocount on;

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

    declare @CURRENTDATE datetime
    set @CURRENTDATE = getdate()

    begin try
        if @ISGIFT = 0 and @GIVENBYID is not null begin
            raiserror('BBERR_MEMBERSHIPRENEWALINFORMATION_GIVERNOTALLOWED', 13, 1);
        end

        if @ISGIFT = 1 and @GIVENBYID is null begin
            raiserror('BBERR_MEMBERSHIPRENEWALINFORMATION_GIVERREQUIRED', 13, 1);
        end

        update dbo.MEMBERSHIP set
            ISGIFT = @ISGIFT,
            SENDRENEWALCODE = @SENDRENEWALCODE,
            GIVENBYID = @GIVENBYID,
            CHANGEDBYID = @CHANGEAGENTID,
            DATECHANGED = @CURRENTDATE
        where ID = @ID;

        declare @LATESTTRANSACTIONID uniqueidentifier = dbo.UFN_MEMBERSHIP_GETLASTMEMBERSHIPTRANSACTIONID(@ID);

        update dbo.MEMBERSHIPTRANSACTION set
            ISGIFT = @ISGIFT,
            DONORID = @GIVENBYID,
            CHANGEDBYID = @CHANGEAGENTID,
            DATECHANGED = @CURRENTDATE
        where ID = @LATESTTRANSACTIONID;
    end try

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

    return 0;