USP_DATAFORMTEMPLATE_EDITSAVE_SPONSORSHIPOPPORTUNITYCHILD
The save procedure used by the edit dataform template "Sponsorship Opportunity Child Edit 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. |
@SPONSORSHIPOPPORTUNITYGROUPID | uniqueidentifier | IN | Child group |
@SPONSORSHIPLOCATIONID | uniqueidentifier | IN | Location |
@FIRSTNAME | nvarchar(50) | IN | First name |
@MIDDLENAME | nvarchar(50) | IN | Middle name |
@LASTNAME | nvarchar(100) | IN | Last name |
@GENDERCODE | int | IN | Gender |
@BIRTHDATE | UDT_FUZZYDATE | IN | Birth date |
@PICTURE | varbinary | IN | Image |
@PICTURETHUMBNAIL | varbinary | IN | Image thumbnail |
@PICTURECHANGED | bit | IN | Picture changed |
@ISHIVPOSITIVE | bit | IN | HIV positive |
@ISORPHANED | bit | IN | Orphaned |
@SPROPPCHILDCONDITIONCODEID | uniqueidentifier | IN | Disability/Illness |
@VALIDATEBIRTHDATE | bit | IN |
Definition
Copy
CREATE procedure dbo.USP_DATAFORMTEMPLATE_EDITSAVE_SPONSORSHIPOPPORTUNITYCHILD
(
@ID uniqueidentifier,
@CHANGEAGENTID uniqueidentifier = null,
@SPONSORSHIPOPPORTUNITYGROUPID uniqueidentifier,
@SPONSORSHIPLOCATIONID uniqueidentifier,
@FIRSTNAME nvarchar(50),
@MIDDLENAME nvarchar(50),
@LASTNAME nvarchar(100),
@GENDERCODE int,
@BIRTHDATE dbo.UDT_FUZZYDATE,
--@TERMINATIONREASON nvarchar(100),
@PICTURE varbinary(max),
@PICTURETHUMBNAIL varbinary(max),
@PICTURECHANGED bit,
@ISHIVPOSITIVE bit,
@ISORPHANED bit,
@SPROPPCHILDCONDITIONCODEID uniqueidentifier,
@VALIDATEBIRTHDATE bit
)
as
set nocount on;
if @ID is null
set @ID = newid()
if @CHANGEAGENTID is null
exec dbo.USP_CHANGEAGENT_GETORCREATECHANGEAGENT @CHANGEAGENTID output
declare @CURRENTDATE datetime
set @CURRENTDATE = getdate()
if dbo.UFN_AGEFROMFUZZYDATE(@BIRTHDATE,getdate()) < 0
begin
raiserror('BBERR_BIRTHDATEINFUTURE',13,1)
return 1
end
if @VALIDATEBIRTHDATE = 1
begin
if dbo.UFN_SPONSORSHIPOPPORTUNITY_AGEVALID(@SPONSORSHIPOPPORTUNITYGROUPID,@BIRTHDATE) = 2
begin
raiserror('BBERR_CHILDOPPORTUNITYTOOOLD',13,1)
return 1
end
end
declare @AVAILABILITYCODE tinyint
select @AVAILABILITYCODE = case STATUSCODE when 0 then 0 else 2 end
from dbo.SPONSORSHIPLOCATION
where ID = @SPONSORSHIPLOCATIONID
declare @RESERVATIONKEYID uniqueidentifier;
select @RESERVATIONKEYID = RESERVATIONKEYID
from dbo.SPONSORSHIPOPPORTUNITY
where ID = @ID;
declare @CONSTITUENTID uniqueidentifier;
select @CONSTITUENTID = CONSTITUENTID
from dbo.SPONSORSHIPOPPORTUNITYCHILD
where ID = @ID;
--validate location change
declare @OLDSPONSORSHIPLOCATIONID uniqueidentifier;
select @OLDSPONSORSHIPLOCATIONID = SPONSORSHIPLOCATIONID
from dbo.SPONSORSHIPOPPORTUNITY
where ID = @ID;
if @OLDSPONSORSHIPLOCATIONID <> @SPONSORSHIPLOCATIONID
begin
declare @SPONSORSPEROPPORTUNITY int;
select @SPONSORSPEROPPORTUNITY = dbo.UFN_SPONSORSHIPOPPORTUNITY_SPONSORSPEROPPORTUNITY(@SPONSORSHIPOPPORTUNITYGROUPID, @SPONSORSHIPLOCATIONID);
if @SPONSORSPEROPPORTUNITY > 0 and dbo.UFN_SPONSORSHIPOPPORTUNITY_ACTIVESPONSORSHIPS(@ID) > @SPONSORSPEROPPORTUNITY
raiserror('BBERR_INVALIDLOCATIONCHANGE',13,1)
end
begin try
-- handle updating the data
update
dbo.SPONSORSHIPOPPORTUNITY
set
SPONSORSHIPOPPORTUNITYGROUPID = @SPONSORSHIPOPPORTUNITYGROUPID,
SPONSORSHIPLOCATIONID = @SPONSORSHIPLOCATIONID,
AVAILABILITYCODE = case when @AVAILABILITYCODE = 2 then 2 when AVAILABILITYCODE = 1 then 1 else dbo.UFN_SPONSORSHIPOPPORTUNITY_CALCAVAILABILITY(ID) end,
RESERVATIONKEYID = case when @AVAILABILITYCODE = 2 then null else RESERVATIONKEYID end,
CHANGEDBYID = @CHANGEAGENTID,
DATECHANGED = @CURRENTDATE
where
ID = @ID
if @RESERVATIONKEYID is not null and @AVAILABILITYCODE = 2
exec dbo.USP_SPONSORSHIPOPPORTUNITYRESERVE_UPDATESTATUS @RESERVATIONKEYID, @CHANGEAGENTID
if @PICTURECHANGED = 1
begin
update
dbo.SPONSORSHIPOPPORTUNITYCHILD
set
SPROPPCHILDCONDITIONCODEID = @SPROPPCHILDCONDITIONCODEID,
FIRSTNAME = @FIRSTNAME,
MIDDLENAME = @MIDDLENAME,
LASTNAME = @LASTNAME,
GENDERCODE = @GENDERCODE,
BIRTHDATE = @BIRTHDATE,
PICTURE = @PICTURE,
PICTURETHUMBNAIL = @PICTURETHUMBNAIL,
ISHIVPOSITIVE = @ISHIVPOSITIVE,
ISORPHANED = @ISORPHANED,
CHANGEDBYID = @CHANGEAGENTID,
DATECHANGED = @CURRENTDATE
where
ID = @ID
update
dbo.CONSTITUENT
set
FIRSTNAME = @FIRSTNAME,
MIDDLENAME = @MIDDLENAME,
KEYNAME = @LASTNAME,
GENDERCODE = @GENDERCODE,
BIRTHDATE = @BIRTHDATE,
PICTURE = @PICTURE,
PICTURETHUMBNAIL = @PICTURETHUMBNAIL,
CHANGEDBYID = @CHANGEAGENTID,
DATECHANGED = @CURRENTDATE
where
ID = @CONSTITUENTID
end
else
begin
update
dbo.SPONSORSHIPOPPORTUNITYCHILD
set
SPROPPCHILDCONDITIONCODEID = @SPROPPCHILDCONDITIONCODEID,
FIRSTNAME = @FIRSTNAME,
MIDDLENAME = @MIDDLENAME,
LASTNAME = @LASTNAME,
GENDERCODE = @GENDERCODE,
BIRTHDATE = @BIRTHDATE,
ISHIVPOSITIVE = @ISHIVPOSITIVE,
ISORPHANED = @ISORPHANED,
CHANGEDBYID = @CHANGEAGENTID,
DATECHANGED = @CURRENTDATE
where
ID = @ID
update
dbo.CONSTITUENT
set
FIRSTNAME = @FIRSTNAME,
MIDDLENAME = @MIDDLENAME,
KEYNAME = @LASTNAME,
GENDERCODE = @GENDERCODE,
BIRTHDATE = @BIRTHDATE,
CHANGEDBYID = @CHANGEAGENTID,
DATECHANGED = @CURRENTDATE
where
ID = @CONSTITUENTID
end
exec dbo.USP_SPONSORSHIPOPPORTUNITY_UNLOCK @ID, 0, @CHANGEAGENTID
end try
begin catch
exec dbo.USP_RAISE_ERROR
return 1
end catch
return 0