UFN_EVENTAUCTION_SITESVALIDFORITEMS
Checks that all items have a designation that is valid with the auction sites.
Return
Return Type |
---|
bit |
Parameters
Parameter | Parameter Type | Mode | Description |
---|---|---|---|
@EVENTAUCTIONID | uniqueidentifier | IN | |
@SITES | xml | IN |
Definition
Copy
create function dbo.UFN_EVENTAUCTION_SITESVALIDFORITEMS
(
@EVENTAUCTIONID uniqueidentifier,
@SITES xml
)
returns bit
as begin
declare @VALID bit = 1;
declare @EVENTSITES table
(
SITEID uniqueidentifier
)
insert into @EVENTSITES select SITEID from dbo.UFN_EVENT_GETSITES_FROMITEMLISTXML(@SITES)
declare @EVENTSITESCOUNT int = 0;
select @EVENTSITESCOUNT = count(SITEID) from @EVENTSITES;
declare @INVALIDITEMCOUNT int = 0;
select
@INVALIDITEMCOUNT = count(AUCTIONITEM.ID)
from
dbo.AUCTIONITEM
left join dbo.REVENUESPLIT on AUCTIONITEM.REVENUEAUCTIONDONATIONID = REVENUESPLIT.REVENUEID
left join dbo.DESIGNATION on REVENUESPLIT.DESIGNATIONID = DESIGNATION.ID
left join dbo.DESIGNATIONLEVEL DL1 on DL1.ID = DESIGNATION.DESIGNATIONLEVEL1ID
left join dbo.DESIGNATIONLEVEL DL2 on DL2.ID = DESIGNATION.DESIGNATIONLEVEL2ID
left join dbo.DESIGNATIONLEVEL DL3 on DL3.ID = DESIGNATION.DESIGNATIONLEVEL3ID
left join dbo.DESIGNATIONLEVEL DL4 on DL4.ID = DESIGNATION.DESIGNATIONLEVEL4ID
left join dbo.DESIGNATIONLEVEL DL5 on DL5.ID = DESIGNATION.DESIGNATIONLEVEL5ID
left join dbo.SITE on coalesce(DL5.SITEID, DL4.SITEID, DL3.SITEID, DL2.SITEID, DL1.SITEID) = SITE.ID
where
AUCTIONITEM.EVENTAUCTIONID = @EVENTAUCTIONID
and
AUCTIONITEM.TYPECODE = 0
and
(
(@EVENTSITESCOUNT = 0 and SITE.ID is not null)
or
(@EVENTSITESCOUNT > 0 and not exists (select 1 from @EVENTSITES [EVENTSITES] where EVENTSITES.SITEID = SITE.ID))
)
if @INVALIDITEMCOUNT > 0
set @VALID = 0
return @VALID
end