USP_DATAFORMTEMPLATE_ADD_SPONSORSHIPOPPORTUNITYRESERVEBUSINESS
The save procedure used by the add dataform template "Sponsorship Opportunity Reserve Business Process Add Form".
Parameters
Parameter | Parameter Type | Mode | Description |
---|---|---|---|
@ID | uniqueidentifier | INOUT | The output parameter indicating the ID of the record added. |
@CHANGEAGENTID | uniqueidentifier | IN | Input parameter indicating the ID of the change agent invoking the procedure. |
@NAME | nvarchar(100) | IN | Name |
@DESCRIPTION | nvarchar(255) | IN | Description |
@IDSETREGISTERID | uniqueidentifier | IN | Selection |
@GROUPID | uniqueidentifier | IN | Group |
@GENDERCODE | int | IN | Gender |
@SPROPPAGERANGEID | uniqueidentifier | IN | Age range |
@ISHIVPOSITIVECODE | int | IN | HIV positive |
@HASCONDITIONCODE | int | IN | Disability/Illness |
@ISORPHANEDCODE | int | IN | Orphaned |
@MAXKEYNUMBER | int | IN | Target number |
@RESERVEENDDATE | datetime | IN | End date |
@INCLUDEPENDING | bit | IN | Include pending opportunities |
@MULTIPLELOCATION | xml | IN | Locations |
Definition
Copy
CREATE procedure dbo.USP_DATAFORMTEMPLATE_ADD_SPONSORSHIPOPPORTUNITYRESERVEBUSINESS
(
@ID uniqueidentifier = null output,
@CHANGEAGENTID uniqueidentifier = null,
@NAME nvarchar(100) = '',
@DESCRIPTION nvarchar(255) = '',
@IDSETREGISTERID uniqueidentifier = null,
--@RESERVATIONREASONID uniqueidentifier = null,
@GROUPID uniqueidentifier = null,
--@OPPORTUNITYLOCATIONID uniqueidentifier = null,
@GENDERCODE int = 0,
@SPROPPAGERANGEID uniqueidentifier = null,
@ISHIVPOSITIVECODE int = 0,
@HASCONDITIONCODE int = 0,
@ISORPHANEDCODE int = 0,
@MAXKEYNUMBER int = null,
@RESERVEENDDATE datetime = null,
--@KEYID uniqueidentifier = null,
@INCLUDEPENDING bit = 0,
--@INCLUDEINELIGIBLE bit = 0,
@MULTIPLELOCATION xml = null
)
as
set nocount on;
if @ID is null
set @ID = newid()
if @MAXKEYNUMBER is null
set @MAXKEYNUMBER = 0
--set @KEYID = @ID
if @CHANGEAGENTID is null
exec dbo.USP_CHANGEAGENT_GETORCREATECHANGEAGENT @CHANGEAGENTID output
declare @CURRENTDATE datetime
set @CURRENTDATE = getdate()
--set @RESERVEENDDATE = dbo.UFN_DATE_GETEARLIESTTIME(@RESERVEENDDATE);
begin try
if @MULTIPLELOCATION is not null
begin
declare @LOCATIONTABLE table (LOCATIONID uniqueidentifier,
LIMIT smallint)
insert into @LOCATIONTABLE
select *
from dbo.UFN_SPONSORSHIPOPPORTUNITYRESERVATION_MULTIPLELOCATION(@MULTIPLELOCATION);
declare @COUNT smallint
-- limit invalid
select @COUNT = count(*)
from @LOCATIONTABLE LOCATIONTAB
where LOCATIONTAB.LIMIT < 1
if @COUNT > 0
raiserror('BBERR_INVALIDLIMIT',13,1)
-- duplicate locations
select @COUNT = count(*)
from (select LOCATIONID
from @LOCATIONTABLE
group by LOCATIONID having count(*) > 1) X;
if @COUNT > 0
raiserror('BBERR_DUPLICATELOCATIONS',13,1)
-- overlapping locations
select @COUNT = count(*)
from @LOCATIONTABLE LOCATIONTAB1
inner join @LOCATIONTABLE LOCATIONTAB2 on 1=1
inner join dbo.SPONSORSHIPLOCATION L1 on L1.ID = LOCATIONTAB1.LOCATIONID
inner join dbo.SPONSORSHIPLOCATION L2 on L2.ID = LOCATIONTAB2.LOCATIONID
where L1.HIERARCHYPATH.IsDescendantOf(L2.HIERARCHYPATH) = 1
and L1.ID <> L2.ID;
if @COUNT > 0
raiserror('BBERR_OVERLAPPINGLOCATIONS',13,1)
if @GROUPID is not null
begin
declare @GROUPLOCATIONID uniqueidentifier
select @GROUPLOCATIONID = SPONSORSHIPLOCATIONID
from dbo.SPONSORSHIPOPPORTUNITYGROUP
where ID = @GROUPID
-- locations not consistent with group location
select @COUNT = count(*)
from @LOCATIONTABLE LOCATIONTAB
inner join dbo.SPONSORSHIPLOCATION OVERRIDELOCATION on OVERRIDELOCATION.ID = LOCATIONTAB.LOCATIONID
inner join dbo.SPONSORSHIPLOCATION GROUPLOCATION on GROUPLOCATION.ID = @GROUPLOCATIONID
where OVERRIDELOCATION.HIERARCHYPATH.IsDescendantOf(GROUPLOCATION.HIERARCHYPATH) = 0;
if @COUNT > 0
raiserror('BBERR_INVALIDGROUPLOCATION',13,1)
end
declare @TOTAL int;
select @TOTAL = sum(LIMIT) from @LOCATIONTABLE
if @TOTAL > @MAXKEYNUMBER and @MAXKEYNUMBER > 0
raiserror('BBERR_LIMITGREATERTHANKEY',13,1)
end
-- CREATE BUSINESS PROCESS ENTRY
insert into dbo.SPONSORSHIPOPPORTUNITYRESERVEPROCESS
([ID]
,[NAME]
,[DESCRIPTION]
,[IDSETREGISTERID]
--,[OPPORTUNITYLOCATIONID]
,[CHILDGENDERCODE]
,[ISHIVPOSITIVECODE]
,[HASCONDITIONCODE]
,[ISORPHANEDCODE]
,[SPROPPAGERANGEID]
,[GROUPID]
,[MAXKEYNUMBER]
,[ADDEDBYID]
,[CHANGEDBYID]
,[DATEADDED]
,[DATECHANGED]
,[ENDDATE]
,[STATUSCODE]
,[INCLUDEPENDING]
--,[INCLUDEINELIGIBLE]
,[MULTIPLELOCATION])
values(
@ID,
@NAME,
@DESCRIPTION,
@IDSETREGISTERID,
--@OPPORTUNITYLOCATIONID,
isnull(@GENDERCODE,0),
isnull(@ISHIVPOSITIVECODE,0),
isnull(@HASCONDITIONCODE,0),
isnull(@ISORPHANEDCODE,0),
@SPROPPAGERANGEID,
@GROUPID,
@MAXKEYNUMBER,
@CHANGEAGENTID,
@CHANGEAGENTID,
@CURRENTDATE,
@CURRENTDATE,
@RESERVEENDDATE,
0,
@INCLUDEPENDING,
--@INCLUDEINELIGIBLE,
@MULTIPLELOCATION)
-- insert into reservation key status
insert into dbo.SPONSORSHIPOPPORTUNITYRESERVATIONSTATUS
([OPPORTUNITYRESERVATIONKEYID]
,[STATUSCODE]
,[ADDEDBYID]
,[CHANGEDBYID]
,[DATEADDED]
,[DATECHANGED])
values(
@ID,
0,
@CHANGEAGENTID,
@CHANGEAGENTID,
@CURRENTDATE,
@CURRENTDATE)
end try
begin catch
exec dbo.USP_RAISE_ERROR
return 1
end catch
return 0