USP_SPONSOR_MAKEACTIVE
Activate the sponsorship constituency for a constituent.
Parameters
Parameter | Parameter Type | Mode | Description |
---|---|---|---|
@CONSTITUENTID | uniqueidentifier | IN | |
@STARTDATE | date | IN | |
@SPONSORTYPECODE | tinyint | IN | |
@CHANGEAGENTID | uniqueidentifier | IN |
Definition
Copy
CREATE procedure dbo.USP_SPONSOR_MAKEACTIVE (
@CONSTITUENTID uniqueidentifier,
@STARTDATE date,
@SPONSORTYPECODE tinyint,
@CHANGEAGENTID uniqueidentifier = null
)
as
begin
if @CONSTITUENTID is null
begin
raiserror('BBERR_NOCONSTITUENT', 13, 1);
return 1
end
if @STARTDATE is null
begin
raiserror('BBERR_NOSTARTDATE', 13, 1);
return 1
end
declare @CURRENTDATE datetime;
set @CURRENTDATE = getdate();
if @CHANGEAGENTID is null
exec dbo.USP_CHANGEAGENT_GETORCREATECHANGEAGENT @CHANGEAGENTID output;
begin try
------------------------------------------
-- SPONSORDATERANGE
------------------------------------------
-- cache current context
declare @CONTEXTCACHE varbinary(128);
set @CONTEXTCACHE = CONTEXT_INFO();
if @CHANGEAGENTID is not null
set CONTEXT_INFO @CHANGEAGENTID
-- delete all future sponsordaterange
delete from dbo.SPONSORDATERANGE
where CONSTITUENTID = @CONSTITUENTID
and SPONSORTYPECODE = @SPONSORTYPECODE
and DATEFROM > @STARTDATE
-- restore cached context
if not @CONTEXTCACHE is null
set CONTEXT_INFO @CONTEXTCACHE
declare @SPONSORDATERANGEID uniqueidentifier
-- find current sponsordaterange
select @SPONSORDATERANGEID = ID
from dbo.SPONSORDATERANGE
where CONSTITUENTID = @CONSTITUENTID
and SPONSORTYPECODE = @SPONSORTYPECODE
and DATEFROM <= @STARTDATE
and (DATETO is null or DATETO >= @STARTDATE)
if @SPONSORDATERANGEID is not null
update dbo.SPONSORDATERANGE
set DATETO = null,
CHANGEDBYID = @CHANGEAGENTID,
DATECHANGED = @CURRENTDATE
where ID = @SPONSORDATERANGEID
else
insert into dbo.SPONSORDATERANGE
(
ID,
CONSTITUENTID,
SPONSORTYPECODE,
DATEFROM,
ADDEDBYID,
CHANGEDBYID,
DATEADDED,
DATECHANGED
)
values
(
newid(),
@CONSTITUENTID,
@SPONSORTYPECODE,
@STARTDATE,
@CHANGEAGENTID,
@CHANGEAGENTID,
@CURRENTDATE,
@CURRENTDATE
)
------------------------------------------
-- SPONSOR
------------------------------------------
if not exists(select 'x' from dbo.SPONSOR where ID = @CONSTITUENTID)
insert into dbo.SPONSOR
(
ID,
ADDEDBYID,
CHANGEDBYID,
DATEADDED,
DATECHANGED
)
values
(
@CONSTITUENTID,
@CHANGEAGENTID,
@CHANGEAGENTID,
@CURRENTDATE,
@CURRENTDATE
)
end try
begin catch
exec dbo.USP_RAISE_ERROR;
return 1;
end catch
return 0
end