USP_DATALIST_AUCTIONPACKAGEAVAILABLEITEM
Returns a list of auction items available for a package.
Parameters
Parameter | Parameter Type | Mode | Description |
---|---|---|---|
@CURRENTAPPUSERID | uniqueidentifier | IN | Input parameter indicating the ID of the current user. |
@SECURITYFEATUREID | uniqueidentifier | IN | Input parameter indicating the ID of the feature to use for site security checking. |
@SECURITYFEATURETYPE | tinyint | IN | Input parameter indicating the type of the feature to use for site security checking. |
@PACKAGEID | uniqueidentifier | IN | Input parameter indicating the context ID for the data list. |
@CATEGORYID | uniqueidentifier | IN | Category |
@SUBCATEGORYID | uniqueidentifier | IN | Subcategory |
@ITEMNAME | nvarchar(100) | IN | Name |
Definition
Copy
CREATE procedure dbo.USP_DATALIST_AUCTIONPACKAGEAVAILABLEITEM
(
@CURRENTAPPUSERID uniqueidentifier,
@SECURITYFEATUREID uniqueidentifier = null,
@SECURITYFEATURETYPE tinyint = null,
@PACKAGEID uniqueidentifier,
@CATEGORYID uniqueidentifier = null,
@SUBCATEGORYID uniqueidentifier = null,
@ITEMNAME nvarchar(100) = null
)
as
set nocount on;
declare @PACKAGEEVENTAUCTIONID uniqueidentifier = null;
select @PACKAGEEVENTAUCTIONID = EVENTAUCTIONID
from dbo.AUCTIONITEM where AUCTIONITEM.ID = @PACKAGEID
declare @EVENTAUCTIONSITEID table
(
SITEID uniqueidentifier
)
insert into @EVENTAUCTIONSITEID(SITEID)
select SITEID from dbo.EVENTSITE where EVENTSITE.EVENTID = @PACKAGEEVENTAUCTIONID;
declare @EVENTAUCTIONSITECOUNT int = 0;
select @EVENTAUCTIONSITECOUNT = count(SITEID) from @EVENTAUCTIONSITEID;
with AUCTIONITEM_SITE_CTE(AUCTIONITEMID, SITENAME) as
(
select
AUCTIONITEM.ID,
SITE.NAME
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.TYPECODE = 0
and
(
dbo.UFN_APPUSER_ISSYSADMIN(@CURRENTAPPUSERID) = 1
or
exists(
select 1
from dbo.UFN_SITESFORUSERONFEATURE(@CURRENTAPPUSERID, @SECURITYFEATUREID, @SECURITYFEATURETYPE)
where
SITEID=SITE.ID
or
(
SITEID is null and SITE.ID is null
)
)
)
and
(
(@EVENTAUCTIONSITECOUNT = 0 and coalesce(DL5.SITEID, DL4.SITEID, DL3.SITEID, DL2.SITEID, DL1.SITEID) is null)
or
exists(select 1 from @EVENTAUCTIONSITEID where SITEID = coalesce(DL5.SITEID, DL4.SITEID, DL3.SITEID, DL2.SITEID, DL1.SITEID))
)
)
select
AUCTIONITEM.ID,
AUCTIONITEM.NAME,
[CATEGORY].NAME as CATEGORYNAME,
[SUBCATEGORY].NAME as SUBCATEGORYNAME,
AUCTIONITEM.TRANSACTIONVALUE,
EVENT.NAME as AUCTIONNAME,
AUCTIONITEM_SITE_CTE.SITENAME as DESIGNATIONSITENAME,
AUCTIONITEM.BASECURRENCYID,
AUCTIONITEM.TRANSACTIONCURRENCYID,
cast(AUCTIONITEM.ID as nvarchar(36)) + ';' + cast(@PACKAGEID as nvarchar(36)) IDANDPACKAGEID /*This is used on the auction item page when building a package so it can know which package to add the auction item*/
from
dbo.AUCTIONITEM
inner join AUCTIONITEM_SITE_CTE on AUCTIONITEM.ID = AUCTIONITEM_SITE_CTE.AUCTIONITEMID
left join dbo.AUCTIONITEMREVENUEPURCHASE on AUCTIONITEM.ID = AUCTIONITEMREVENUEPURCHASE.AUCTIONITEMID
left join dbo.AUCTIONITEMCATEGORY [CATEGORY] on AUCTIONITEM.AUCTIONITEMCATEGORYID = [CATEGORY].ID
left join dbo.AUCTIONITEMSUBCATEGORY [SUBCATEGORY] on AUCTIONITEM.AUCTIONITEMSUBCATEGORYID = [SUBCATEGORY].ID
left join dbo.EVENT on AUCTIONITEM.EVENTAUCTIONID = EVENT.ID
left join dbo.AUCTIONITEMRESERVATION on AUCTIONITEM.ID = AUCTIONITEMRESERVATION.AUCTIONITEMID
left join dbo.FINANCIALTRANSACTION on FINANCIALTRANSACTION.PARENTID = AUCTIONITEM.REVENUEAUCTIONDONATIONID
and FINANCIALTRANSACTION.DELETEDON is null
and FINANCIALTRANSACTION.TYPECODE = 20 --write-off code
where
AUCTIONITEM.TYPECODE = 0
and
AUCTIONITEM.PACKAGEID is null
and
(@CATEGORYID is null or [CATEGORY].ID = @CATEGORYID)
and
(@SUBCATEGORYID is null or [SUBCATEGORY].ID = @SUBCATEGORYID)
and
(AUCTIONITEM.EVENTAUCTIONID is null or AUCTIONITEM.EVENTAUCTIONID = @PACKAGEEVENTAUCTIONID)
and
AUCTIONITEMRESERVATION.ID is null
and
AUCTIONITEMREVENUEPURCHASE.REVENUEPURCHASEID is null
and
FINANCIALTRANSACTION.ID is null --item is not written off
and
(@ITEMNAME is null or @ITEMNAME = '' or AUCTIONITEM.NAME like @ITEMNAME + '%')
order by AUCTIONITEM.NAME