USP_DATAFORMTEMPLATE_EDIT_MEMBERSHIP
The save procedure used by the edit dataform template "Membership Edit Data Form".
Parameters
Parameter | Parameter Type | Mode | Description |
---|---|---|---|
@ID | uniqueidentifier | IN | The input ID parameter indicating the ID of the record being edited. |
@CHANGEAGENTID | uniqueidentifier | IN | Input parameter indicating the ID of the change agent invoking the procedure. |
@MEMBERSHIPLEVELTYPECODEID | uniqueidentifier | IN | Type |
@NUMBEROFCHILDREN | smallint | IN | No. of children |
@COMMENTS | nvarchar(1000) | IN | Comments |
@ISGIFT | bit | IN | This membership is a gift |
@SENDRENEWALCODE | smallint | IN | Send renewal notice to |
@GIVENBYID | uniqueidentifier | IN | Given by |
Definition
Copy
CREATE procedure dbo.USP_DATAFORMTEMPLATE_EDIT_MEMBERSHIP
(
@ID uniqueidentifier,
@CHANGEAGENTID uniqueidentifier = null,
@MEMBERSHIPLEVELTYPECODEID uniqueidentifier,
@NUMBEROFCHILDREN smallint,
@COMMENTS nvarchar(1000),
@ISGIFT bit,
@SENDRENEWALCODE smallint,
@GIVENBYID uniqueidentifier
)
as
set nocount on;
if @CHANGEAGENTID is null
exec dbo.USP_CHANGEAGENT_GETORCREATECHANGEAGENT @CHANGEAGENTID output
declare @CURRENTDATE datetime
set @CURRENTDATE = getdate()
if @NUMBEROFCHILDREN is null
set @NUMBEROFCHILDREN = 0
begin try
declare @CHILDRENALLOWED smallint
declare @ERRORMSG nvarchar(52)
select @CHILDRENALLOWED = MEMBERSHIPLEVEL.CHILDRENALLOWED
from dbo.MEMBERSHIPLEVEL
inner join dbo.MEMBERSHIP
on MEMBERSHIP.MEMBERSHIPLEVELID = MEMBERSHIPLEVEL.ID
where MEMBERSHIP.ID = @ID
-- Number of children validation
if @NUMBEROFCHILDREN > @CHILDRENALLOWED --and @CHILDRENALLOWED > 0
begin
set @ERRORMSG = 'The number of children may not be larger than '+convert(nvarchar(3), @CHILDRENALLOWED)+'.'
raiserror(@ERRORMSG, 13, 1);
end
update dbo.MEMBERSHIP set
MEMBERSHIPLEVELTYPECODEID = @MEMBERSHIPLEVELTYPECODEID,
NUMBEROFCHILDREN = @NUMBEROFCHILDREN,
COMMENTS = @COMMENTS,
ISGIFT = @ISGIFT,
SENDRENEWALCODE = @SENDRENEWALCODE,
CHANGEDBYID = @CHANGEAGENTID,
DATECHANGED = @CURRENTDATE,
GIVENBYID = @GIVENBYID
where ID = @ID;
declare @LATESTTRANSACTIONID uniqueidentifier
select top 1 @LATESTTRANSACTIONID = ID
from dbo.MEMBERSHIPTRANSACTION
where MEMBERSHIPID = @ID
order by DATEADDED desc
update dbo.MEMBERSHIPTRANSACTION set
MEMBERSHIPLEVELTYPECODEID = @MEMBERSHIPLEVELTYPECODEID,
NUMBEROFCHILDREN = @NUMBEROFCHILDREN,
COMMENTS = @COMMENTS,
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;