UFN_EVENTCONFLICT_GETSTAFFRESOURCESINCONFLICT
Get all of the staff resources that are in conflict within the supplied information.
Return
Return Type |
---|
table |
Parameters
Parameter | Parameter Type | Mode | Description |
---|---|---|---|
@START | datetime | IN | |
@END | datetime | IN | |
@STAFFRESOURCES | xml | IN | |
@IGNORERECORDID | uniqueidentifier | IN | |
@IGNORESUBRECORDID | uniqueidentifier | IN |
Definition
Copy
CREATE function dbo.UFN_EVENTCONFLICT_GETSTAFFRESOURCESINCONFLICT
(
@START datetime,
@END datetime,
@STAFFRESOURCES xml,
@IGNORERECORDID uniqueidentifier = null,
@IGNORESUBRECORDID uniqueidentifier = null
)
returns @CONFLICTS TABLE
(
VOLUNTEERTYPEID uniqueidentifier,
QUANTITYNEEDED int
)
as
begin
-- Take the resource xml passed in and generate a table of resources
declare @STAFFRESOURCESTABLE table
(
VOLUNTEERTYPEID uniqueidentifier,
QUANTITYNEEDED int
)
insert into @STAFFRESOURCESTABLE
(VOLUNTEERTYPEID, QUANTITYNEEDED)
select T.c.value('(VOLUNTEERTYPEID)[1]','uniqueidentifier'),
T.c.value('(QUANTITYNEEDED)[1]','int')
from @STAFFRESOURCES.nodes('/STAFFRESOURCES/ITEM') T(c)
where T.c.value('(FILLEDBYCODE)[1]','tinyint') = 0 /* Volunteer */
insert into @STAFFRESOURCESTABLE
(VOLUNTEERTYPEID, QUANTITYNEEDED)
select T.c.value('(VOLUNTEERTYPEID)[1]','uniqueidentifier'),
T.c.value('(QUANTITYNEEDED)[1]','int')
from @STAFFRESOURCES.nodes('/EVENTSTAFFRESOURCES/ITEM') T(c)
where T.c.value('(FILLEDBYCODE)[1]','tinyint') = 0 /* Volunteer */
-- Use the detail version with distinct select to get only the events, itineraries, and itinerary items.
insert into @CONFLICTS
(VOLUNTEERTYPEID, QUANTITYNEEDED)
select distinct STAFFRESOURCECONFLICTDETAILS.VOLUNTEERTYPEID, STAFFRESOURCES.QUANTITYNEEDED
from dbo.UFN_EVENTCONFLICT_GETSTAFFRESOURCECONFLICTDETAILS(@START, @END, @STAFFRESOURCES, @IGNORERECORDID, @IGNORESUBRECORDID, null, 1, 1, 1, null) as STAFFRESOURCECONFLICTDETAILS
inner join @STAFFRESOURCESTABLE as STAFFRESOURCES
on STAFFRESOURCECONFLICTDETAILS.VOLUNTEERTYPEID = STAFFRESOURCES.VOLUNTEERTYPEID
return;
end