USP_DATAFORMTEMPLATE_ADDLOAD_MEMBERSHIPTRANSFER
The load procedure used by the edit dataform template "Membership Transfer Add Form"
Parameters
Parameter | Parameter Type | Mode | Description |
---|---|---|---|
@OLDPRIMARYMEMBERID | uniqueidentifier | IN | Input parameter indicating the context ID for the record being added. |
@OLDMEMBERNAME | nvarchar(700) | INOUT | Old member name |
@EXPIRATIONDATE | datetime | INOUT | Card expiration date |
@NUMCARDS | smallint | INOUT | Number of cards |
@MEMBERSHIPPROGRAMID | uniqueidentifier | INOUT |
Definition
Copy
CREATE procedure dbo.USP_DATAFORMTEMPLATE_ADDLOAD_MEMBERSHIPTRANSFER
(
@OLDPRIMARYMEMBERID uniqueidentifier,
@OLDMEMBERNAME nvarchar(700) = null output,
@EXPIRATIONDATE datetime = null output,
@NUMCARDS smallint = null output,
@MEMBERSHIPPROGRAMID uniqueidentifier = null output
)
as
set nocount on;
declare @DATALOADED bit;
set @DATALOADED = 0;
declare @ISPRIMARY bit;
set @ISPRIMARY = 0;
select top(1)
@DATALOADED = 1,
@OLDMEMBERNAME = NF.NAME,
@EXPIRATIONDATE = MEMBERSHIPCARD.EXPIRATIONDATE,
@ISPRIMARY = MEMBER.ISPRIMARY,
@MEMBERSHIPPROGRAMID = MEMBERSHIP.MEMBERSHIPPROGRAMID
from
dbo.MEMBER
inner join
dbo.MEMBERSHIP on MEMBERSHIP.ID = MEMBER.MEMBERSHIPID
cross apply
dbo.UFN_CONSTITUENT_DISPLAYNAME(MEMBER.CONSTITUENTID) NF
left join
dbo.MEMBERSHIPCARD on MEMBER.ID = MEMBERSHIPCARD.MEMBERID and MEMBERSHIPCARD.STATUSCODE <> 2 -- Cancelled
where
MEMBER.ID = @OLDPRIMARYMEMBERID
order by
MEMBERSHIPCARD.EXPIRATIONDATE desc;
select
@NUMCARDS = count(*)
from dbo.MEMBERSHIPCARD
where MEMBERID = @OLDPRIMARYMEMBERID
and STATUSCODE <> 2; -- Cancelled
if @DATALOADED <> 1
begin
raiserror('Member not found.', 13, 1);
return 1;
end
if @ISPRIMARY <> 1
begin
raiserror('Membership can only be transferred from the primary member.', 13, 1);
return 1;
end