USP_DATALIST_SHOPPINGCARTSALESORDER
Parameters
Parameter | Parameter Type | Mode | Description |
---|---|---|---|
@CONTEXTID | uniqueidentifier | IN |
Definition
Copy
CREATE procedure dbo.USP_DATALIST_SHOPPINGCARTSALESORDER
(
@CONTEXTID uniqueidentifier
)
as
set nocount on;
declare @SALESTYPECODE tinyint;
declare @ORDERSTATUSCODE tinyint;
declare @SALESMETHODID uniqueidentifier;
select
@SALESTYPECODE = SALESORDER.SALESMETHODTYPECODE,
@ORDERSTATUSCODE = SALESORDER.STATUSCODE
from dbo.SALESORDER
where SALESORDER.ID = @CONTEXTID;
declare @ISBASICCMS bit = 0;
if dbo.UFN_INSTALLEDPRODUCTS_PRODUCTIS('e5e0494b-ba0f-4e23-b8fb-a59112dbf3c8') = 1 -- Check for BasicCMS
and dbo.UFN_INSTALLEDPRODUCTS_PRODUCTIS('f238e8fe-06ae-4fdc-beaf-fdf6637e1982') = 0 -- Check for not CMS
set @ISBASICCMS = 1;
select @SALESMETHODID = dbo.UFN_SALESMETHOD_GETIDFROMTYPECODE(@SALESTYPECODE);
declare @SALESMETHODFLATFEESPERITEM money;
select
@SALESMETHODFLATFEESPERITEM = SUM(FEE.AMOUNT)
from dbo.SALESMETHODFEE
inner join dbo.FEE
on SALESMETHODFEE.FEEID = FEE.ID
inner join dbo.SALESMETHOD
on SALESMETHOD.ID = SALESMETHODFEE.SALESMETHODID
where FEE.APPLIESTOCODE = 1 --item
and FEE.TYPECODE = 0
and FEE.ISACTIVE = 1
and SALESMETHOD.TYPECODE = @SALESTYPECODE;
declare @HASUNRESTRICTEDDELIVERYMETHOD bit = 0;
declare @EARLIESTVALIDEVENTDATETIMEWITHOFFSET datetimeoffset = null;
declare @DELIVERYMETHODEXISTS bit = 0;
exec dbo.USP_DELIVERYMETHOD_INFO_BYSALESMETHODID
@SALESMETHODID,
@DELIVERYMETHODEXISTS output,
@HASUNRESTRICTEDDELIVERYMETHOD output,
@EARLIESTVALIDEVENTDATETIMEWITHOFFSET output;
declare @MAXINT int = 2147483647;
declare @MAXDATETIMEOFFSETFORDIFFFROMEARLIESTVALIDEVENT datetimeoffset = dateadd(second, @MAXINT, @EARLIESTVALIDEVENTDATETIMEWITHOFFSET);
declare @CURRENTDATE datetime = getdate();
declare @MAXDATETIMEFORDIFFFROMCURRENT datetime = dateadd(second, @MAXINT, @CURRENTDATE);
declare @CURRENTDATETIMEOFFSET datetimeoffset = dbo.UFN_TIMEZONEENTRY_GETSYSTEMDEFAULTDATEWITHTIMEOFFSET(sysutcdatetime(), 1);
declare @MAXDATETIMEOFFSETFORDIFFFROMCURRENT datetimeoffset = dateadd(second, @MAXINT, @CURRENTDATETIMEOFFSET);
declare @COMBINATIONS table (
TICKETCOMBINATIONID uniqueidentifier,
PRICETYPECODEID uniqueidentifier
);
insert into @COMBINATIONS
select distinct
SALESORDERITEMTICKETCOMBINATION.TICKETCOMBINATIONID,
SALESORDERITEMTICKET.PRICETYPECODEID
from dbo.SALESORDERITEM
inner join dbo.SALESORDERITEMTICKET on
SALESORDERITEM.ID = SALESORDERITEMTICKET.ID
inner join dbo.PRICETYPECODE
on SALESORDERITEMTICKET.PRICETYPECODEID = PRICETYPECODE.ID
inner join dbo.SALESORDERITEMTICKETCOMBINATION
on SALESORDERITEMTICKET.ID = SALESORDERITEMTICKETCOMBINATION.ID
where
SALESORDERITEM.SALESORDERID = @CONTEXTID;
select
ID,
TICKETCOMBINATIONID,
DESCRIPTION,
PRICE,
QUANTITY,
TOTAL,
TYPECODE,
DATA,
OPTIONS,
CALLBACKURL,
EXPIREDCALLBACKURL,
SYSTEMTYPENAME,
ASSEMBLYNAME,
ATTRIBUTES,
CATEGORYNAME,
ACKNOWLEDGEMENT,
DATEADDED,
EXPIRATIONDATE,
ISEXPIRED,
HASNOVALIDDELIVERYMETHOD,
EXPIRATIONDELTA,
ORDERITEMTYPE,
SUBORDERITEMTYPE,
ORDERSORTFIELD1,
ORDERSORTFIELD2
from (
select
SALESORDERITEM.ID,
null as TICKETCOMBINATIONID,
SALESORDERITEM.DESCRIPTION,
SALESORDERITEM.PRICE,
SALESORDERITEM.QUANTITY,
SALESORDERITEM.TOTAL,
SALESORDERITEM.TYPECODE,
SALESORDERITEM.DATA,
SALESORDERITEM.OPTIONS,
SALESORDERITEM.CALLBACKURL,
SALESORDERITEM.EXPIREDCALLBACKURL,
SALESORDERITEM.SYSTEMTYPENAME,
SALESORDERITEM.ASSEMBLYNAME,
SALESORDERITEM.ATTRIBUTES,
SALESORDERITEM.CATEGORYNAME,
SALESORDERITEM.ACKNOWLEDGEMENT,
SALESORDERRESERVEDITEM.DATEADDED,
SALESORDERRESERVEDITEM.EXPIRATIONDATE,
[EXPIRATIONSUMMARY].[RESERVATIONHASEXPIRED] as ISEXPIRED,
[EXPIRATIONSUMMARY].[DELIVERYHASEXPIRED] as [HASNOVALIDDELIVERYMETHOD],
[EXPIRATIONSUMMARY].[EXPIRATIONDELTA],
case
when [SALESORDERITEM].[TYPECODE] = 0 then 0 -- ticket
when [SALESORDERITEM].[TYPECODE] = 2 then 50 -- donation
when [SALESORDERITEM].[TYPECODE] = 6 then 20 -- event registration
when [SALESORDERITEM].[TYPECODE] in (1, 16) then 30 -- membership
when SALESORDERITEMMEMBERSHIPITEMPROMOTION.ID is not null then 30 -- membership promotion
when [SALESORDERITEMMERCHANDISE].[ID] is not null then 40 -- merchandise
when [SALESORDERITEMITEMDISCOUNT].[ID] is not null then 60 -- item discount
when [SALESORDERITEMORDERDISCOUNT].[ID] is not null then 60 -- order discount
else 0 --should not occur
end as [ORDERITEMTYPE],
case
when [SALESORDERITEM].[TYPECODE] in (1, 16) then SALESORDERITEM.TYPECODE
when SALESORDERITEMMEMBERSHIPITEMPROMOTION.ID is not null then 60
else 0
end as SUBORDERITEMTYPE,
case
when [SALESORDERITEM].[TYPECODE] = 0 then [SALESORDERITEM].[DESCRIPTION] + coalesce(' (' + convert(nvarchar(10), [EVENT].[STARTDATE], 101) + ' - ' + dbo.UFN_HOURMINUTE_DISPLAYTIME([EVENT].[STARTTIME]) + ')','')
when [SALESORDERITEM].[TYPECODE] = 1 then cast([SALESORDERITEM].[ID] as nvarchar(36))
when [SALESORDERITEM].[TYPECODE] = 6 then REGISTRANTNAMEFORMAT.NAME + ' - ' + [SALESORDERITEM].[DESCRIPTION]
when [SALESORDERITEM].[TYPECODE] = 16 then cast([SALESORDERITEMMEMBERSHIPADDON].[SALESORDERITEMMEMBERSHIPID] as nvarchar(36))
else [SALESORDERITEM].[DESCRIPTION]
end as [ORDERSORTFIELD1],
cast([SALESORDERITEM].[ID] as nvarchar(36))as [ORDERSORTFIELD2]
from dbo.SALESORDERITEM
left join dbo.SALESORDERITEMTICKET on
SALESORDERITEM.ID = SALESORDERITEMTICKET.ID
left join dbo.SALESORDERITEMTICKETCOMBINATION
on SALESORDERITEMTICKET.ID = SALESORDERITEMTICKETCOMBINATION.ID
left join dbo.EVENT on
SALESORDERITEMTICKET.EVENTID = EVENT.ID
left join dbo.SALESORDERITEMFEE on
SALESORDERITEM.ID = SALESORDERITEMFEE.ID
left join dbo.SALESORDERRESERVEDITEM on
SALESORDERITEM.ID = SALESORDERRESERVEDITEM.ID
left join dbo.[SALESORDERITEMEVENTREGISTRATION]
on [SALESORDERITEM].[ID] = [SALESORDERITEMEVENTREGISTRATION].[ID]
left join dbo.[REGISTRANT]
on [SALESORDERITEMEVENTREGISTRATION].[REGISTRANTID] = [REGISTRANT].[ID]
outer apply
dbo.UFN_CONSTITUENT_DISPLAYNAME(REGISTRANT.CONSTITUENTID) as REGISTRANTNAMEFORMAT
left join dbo.[SALESORDERITEMMEMBERSHIP]
on [SALESORDERITEM].[ID] = [SALESORDERITEMMEMBERSHIP].[ID]
left join dbo.[SALESORDERITEMMEMBERSHIPADDON]
on [SALESORDERITEM].[ID] = [SALESORDERITEMMEMBERSHIPADDON].[ID]
left join dbo.SALESORDERITEMMERCHANDISE
on [SALESORDERITEM].[ID] = [SALESORDERITEMMERCHANDISE].[ID]
left join dbo.SALESORDERITEMMEMBERSHIPITEMPROMOTION
on SALESORDERITEM.ID = SALESORDERITEMMEMBERSHIPITEMPROMOTION.SALESORDERITEMID
left join dbo.SALESORDERITEMITEMDISCOUNT
on SALESORDERITEM.ID = SALESORDERITEMITEMDISCOUNT.SALESORDERITEMID
left join dbo.[SALESORDERITEMORDERDISCOUNT]
on SALESORDERITEM.ID = SALESORDERITEMORDERDISCOUNT.ID
outer apply (
select
case
when [PROGRAMSALESMETHOD].[ONSALEENDTYPECODE] is not null then
case [PROGRAMSALESMETHOD].[ONSALEENDTYPECODE]
when 0 then [EVENT].[STARTDATETIMEWITHOFFSET]
when 1 then dateadd(mi, -1 * [PROGRAMSALESMETHOD].[ONSALEENDINTERVAL], [EVENT].[STARTDATETIMEWITHOFFSET])
when 2 then dateadd(hh, -1 * [PROGRAMSALESMETHOD].[ONSALEENDINTERVAL], [EVENT].[STARTDATETIMEWITHOFFSET])
when 3 then dateadd(mi, [PROGRAMSALESMETHOD].[ONSALEENDINTERVAL], [EVENT].[STARTDATETIMEWITHOFFSET])
end
else [EVENT].[STARTDATETIMEWITHOFFSET]
end as [DATETIMEWITHOFFSET]
from dbo.[PROGRAMSALESMETHOD]
where
[PROGRAMSALESMETHOD].[PROGRAMID] = [EVENT].[PROGRAMID] and
[PROGRAMSALESMETHOD].[SALESMETHODID] = @SALESMETHODID
) [EVENTOFFSALE]
outer apply (
select
case when [SALESORDERRESERVEDITEM].[ID] is null then 0 else 1 end [RESERVATION],
case when (SALESORDERITEM.TYPECODE <> 0) or (EVENT.ID is null and @DELIVERYMETHODEXISTS = 1) then 0 else 1 end [DELIVERY],
case when SALESORDERITEM.TYPECODE <> 0 or EVENT.ID is null then 0 else 1 end as [ONSALE]
) [CANEXPIRE]
outer apply (
select
case when [CANEXPIRE].[RESERVATION] = 1 then
case
when @CURRENTDATE > SALESORDERRESERVEDITEM.EXPIRATIONDATE then -1 --Already expired
when @MAXDATETIMEFORDIFFFROMCURRENT <= SALESORDERRESERVEDITEM.EXPIRATIONDATE then @MAXINT --Beyond comparison(tm)
else datediff(second,@CURRENTDATE,SALESORDERRESERVEDITEM.EXPIRATIONDATE)
end
else null
end as [RESERVATION],
case
when [CANEXPIRE].[DELIVERY] = 1 and @DELIVERYMETHODEXISTS = 0 then -1
when [CANEXPIRE].[DELIVERY] = 1 then
case
when @EARLIESTVALIDEVENTDATETIMEWITHOFFSET > EVENT.STARTDATETIMEWITHOFFSET then -1 --Already expired
when @MAXDATETIMEOFFSETFORDIFFFROMEARLIESTVALIDEVENT <= EVENT.STARTDATETIMEWITHOFFSET then @MAXINT --Beyond datediff comparison
else datediff(second,@EARLIESTVALIDEVENTDATETIMEWITHOFFSET, EVENT.STARTDATETIMEWITHOFFSET)
end
else null
end as [DELIVERY],
case when [CANEXPIRE].[ONSALE] = 1 then
case
when @CURRENTDATETIMEOFFSET > [EVENTOFFSALE].[DATETIMEWITHOFFSET] then -1 --Already expired
when @MAXDATETIMEOFFSETFORDIFFFROMCURRENT <= [EVENTOFFSALE].[DATETIMEWITHOFFSET] then @MAXINT --Beyond datediff comparison
else datediff(second,@CURRENTDATETIMEOFFSET, [EVENTOFFSALE].[DATETIMEWITHOFFSET])
end
else null
end as [ONSALE]
) as [EXPIRATIONDELTA]
outer apply (
select
case when [EXPIRATIONDELTA].[RESERVATION] <= 0 then 1 else 0 end as [RESERVATIONHASEXPIRED],
case when [EXPIRATIONDELTA].[DELIVERY] <= 0 or [EXPIRATIONDELTA].[ONSALE] <= 0 then 1 else 0 end [DELIVERYHASEXPIRED],
coalesce((
select min(EXPIRATION)
from (
select [EXPIRATIONDELTA].[DELIVERY] as [EXPIRATION]
union all
select [EXPIRATIONDELTA].[ONSALE] as [EXPIRATION]
union all
select [EXPIRATIONDELTA].[RESERVATION] as [EXPIRATION]
) [DELTAS]
),0) as [EXPIRATIONDELTA]
) as [EXPIRATIONSUMMARY]
where
SALESORDERITEM.SALESORDERID = @CONTEXTID
and SALESORDERITEM.TYPECODE <> 3
and SALESORDERITEM.TYPECODE <> 4
and not (
SALESORDERITEM.TYPECODE = 16 and
@SALESTYPECODE = 2 and
@ISBASICCMS = 1 and
@ORDERSTATUSCODE = 0
)
and SALESORDERITEMTICKETCOMBINATION.ID is null -- Not part of a Combination
union all
-- Combinations
select
SALESORDERITEMINFO.ID,
COMBINATIONS.TICKETCOMBINATIONID,
SALESORDERITEMINFO.DESCRIPTION,
SALESORDERITEMINFO.PRICE,
SALESORDERITEMINFO.QUANTITY,
SALESORDERITEMINFO.TOTAL,
SALESORDERITEMINFO.TYPECODE,
SALESORDERITEMINFO.DATA,
SALESORDERITEMINFO.OPTIONS,
SALESORDERITEMINFO.CALLBACKURL,
SALESORDERITEMINFO.EXPIREDCALLBACKURL,
SALESORDERITEMINFO.SYSTEMTYPENAME,
SALESORDERITEMINFO.ASSEMBLYNAME,
SALESORDERITEMINFO.ATTRIBUTES,
SALESORDERITEMINFO.CATEGORYNAME,
SALESORDERITEMINFO.ACKNOWLEDGEMENT,
SALESORDERITEMINFO.DATEADDED,
SALESORDERITEMINFO.EXPIRATIONDATE,
SALESORDERITEMINFO.ISEXPIRED,
SALESORDERITEMINFO.[HASNOVALIDDELIVERYMETHOD],
SALESORDERITEMINFO.[EXPIRATIONDELTA],
10 as ORDERITEMTYPE,
SALESORDERITEMINFO.SEQUENCE as SUBORDERITEMTYPE,
SALESORDERITEMINFO.ORDERSORTFIELD1,
SALESORDERITEMINFO.ORDERSORTFIELD2
from @COMBINATIONS COMBINATIONS
outer apply (
select top 1
SALESORDERITEM.ID,
COMBINATION.NAME + ' - ' + PRICETYPECODE.DESCRIPTION as DESCRIPTION,
dbo.UFN_SALESORDER_GETTICKETCOMBINATIONPRICE([SALESORDERITEM].[ID]) as PRICE,
SALESORDERITEM.QUANTITY,
SALESORDERITEM.QUANTITY * dbo.UFN_SALESORDER_GETTICKETCOMBINATIONPRICE([SALESORDERITEM].[ID]) + dbo.UFN_SALESORDER_GETTICKETCOMBINATIONFEES([SALESORDERITEM].[ID]) as TOTAL,
SALESORDERITEM.TYPECODE,
SALESORDERITEM.DATA,
SALESORDERITEM.OPTIONS,
SALESORDERITEM.CALLBACKURL,
SALESORDERITEM.EXPIREDCALLBACKURL,
SALESORDERITEM.SYSTEMTYPENAME,
SALESORDERITEM.ASSEMBLYNAME,
SALESORDERITEM.ATTRIBUTES,
SALESORDERITEM.CATEGORYNAME,
SALESORDERITEM.ACKNOWLEDGEMENT,
SALESORDERRESERVEDITEM.DATEADDED,
SALESORDERRESERVEDITEM.EXPIRATIONDATE,
[EXPIRATIONSUMMARY].[RESERVATIONHASEXPIRED] as ISEXPIRED,
[EXPIRATIONSUMMARY].[DELIVERYHASEXPIRED] as [HASNOVALIDDELIVERYMETHOD],
[EXPIRATIONSUMMARY].[EXPIRATIONDELTA],
PRICETYPECODE.SEQUENCE,
cast(SALESORDERITEMTICKETCOMBINATION.TICKETCOMBINATIONID as nvarchar(36)) as ORDERSORTFIELD1,
case
when [PROGRAM].[ISDAILYADMISSION] = 1 then [PROGRAM].[NAME]
else [EVENT].[NAME] + ' - ' + coalesce(' (' + convert(nvarchar(10), [EVENT].[STARTDATE], 101) + ' - ' + dbo.UFN_HOURMINUTE_DISPLAYTIME([EVENT].[STARTTIME]) + ')','')
end as ORDERSORTFIELD2
from dbo.SALESORDERITEMTICKET
inner join dbo.SALESORDERITEMTICKETCOMBINATION
on SALESORDERITEMTICKET.ID = SALESORDERITEMTICKETCOMBINATION.ID
and SALESORDERITEMTICKETCOMBINATION.TICKETCOMBINATIONID = COMBINATIONS.TICKETCOMBINATIONID
inner join dbo.COMBINATION
on SALESORDERITEMTICKETCOMBINATION.COMBINATIONID = COMBINATION.ID
inner join dbo.PRICETYPECODE
on SALESORDERITEMTICKET.PRICETYPECODEID = PRICETYPECODE.ID
inner join dbo.SALESORDERITEM
on SALESORDERITEMTICKET.ID = SALESORDERITEM.ID
left outer join dbo.PROGRAM
on SALESORDERITEMTICKET.PROGRAMID = PROGRAM.ID
left join dbo.EVENT on
SALESORDERITEMTICKET.EVENTID = EVENT.ID
left join dbo.SALESORDERRESERVEDITEM on
SALESORDERITEM.ID = SALESORDERRESERVEDITEM.ID
outer apply (
select
case
when [PROGRAMSALESMETHOD].[ONSALEENDTYPECODE] is not null then
case [PROGRAMSALESMETHOD].[ONSALEENDTYPECODE]
when 0 then [EVENT].[STARTDATETIMEWITHOFFSET]
when 1 then dateadd(mi, -1 * [PROGRAMSALESMETHOD].[ONSALEENDINTERVAL], [EVENT].[STARTDATETIMEWITHOFFSET])
when 2 then dateadd(hh, -1 * [PROGRAMSALESMETHOD].[ONSALEENDINTERVAL], [EVENT].[STARTDATETIMEWITHOFFSET])
when 3 then dateadd(mi, [PROGRAMSALESMETHOD].[ONSALEENDINTERVAL], [EVENT].[STARTDATETIMEWITHOFFSET])
end
else [EVENT].[STARTDATETIMEWITHOFFSET]
end as [DATETIMEWITHOFFSET]
from dbo.[PROGRAMSALESMETHOD]
where
[PROGRAMSALESMETHOD].[PROGRAMID] = [EVENT].[PROGRAMID] and
[PROGRAMSALESMETHOD].[SALESMETHODID] = @SALESMETHODID
) [EVENTOFFSALE]
outer apply (
select
case when [SALESORDERRESERVEDITEM].[ID] is null then 0 else 1 end [RESERVATION],
case when (SALESORDERITEM.TYPECODE <> 0) or (EVENT.ID is null and @DELIVERYMETHODEXISTS = 1) then 0 else 1 end [DELIVERY],
case when SALESORDERITEM.TYPECODE <> 0 or EVENT.ID is null then 0 else 1 end as [ONSALE]
) [CANEXPIRE]
outer apply (
select
case when [CANEXPIRE].[RESERVATION] = 1 then
case
when @CURRENTDATE > SALESORDERRESERVEDITEM.EXPIRATIONDATE then -1 --Already expired
when @MAXDATETIMEFORDIFFFROMCURRENT <= SALESORDERRESERVEDITEM.EXPIRATIONDATE then @MAXINT --Beyond comparison(tm)
else datediff(second,@CURRENTDATE,SALESORDERRESERVEDITEM.EXPIRATIONDATE)
end
else null
end as [RESERVATION],
case
when [CANEXPIRE].[DELIVERY] = 1 and @DELIVERYMETHODEXISTS = 0 then -1
when [CANEXPIRE].[DELIVERY] = 1 then
case
when @EARLIESTVALIDEVENTDATETIMEWITHOFFSET > EVENT.STARTDATETIMEWITHOFFSET then -1 --Already expired
when @MAXDATETIMEOFFSETFORDIFFFROMEARLIESTVALIDEVENT <= EVENT.STARTDATETIMEWITHOFFSET then @MAXINT --Beyond datediff comparison
else datediff(second,@EARLIESTVALIDEVENTDATETIMEWITHOFFSET, EVENT.STARTDATETIMEWITHOFFSET)
end
else null
end as [DELIVERY],
case when [CANEXPIRE].[ONSALE] = 1 then
case
when @CURRENTDATETIMEOFFSET > [EVENTOFFSALE].[DATETIMEWITHOFFSET] then -1 --Already expired
when @MAXDATETIMEOFFSETFORDIFFFROMCURRENT <= [EVENTOFFSALE].[DATETIMEWITHOFFSET] then @MAXINT --Beyond datediff comparison
else datediff(second,@CURRENTDATETIMEOFFSET, [EVENTOFFSALE].[DATETIMEWITHOFFSET])
end
else null
end as [ONSALE]
) as [EXPIRATIONDELTA]
outer apply (
select
case when [EXPIRATIONDELTA].[RESERVATION] <= 0 then 1 else 0 end as [RESERVATIONHASEXPIRED],
case when [EXPIRATIONDELTA].[DELIVERY] <= 0 or [EXPIRATIONDELTA].[ONSALE] <= 0 then 1 else 0 end [DELIVERYHASEXPIRED],
coalesce((
select min(EXPIRATION)
from (
select [EXPIRATIONDELTA].[DELIVERY] as [EXPIRATION]
union all
select [EXPIRATIONDELTA].[ONSALE] as [EXPIRATION]
union all
select [EXPIRATIONDELTA].[RESERVATION] as [EXPIRATION]
) [DELTAS]
),0) as [EXPIRATIONDELTA]
) as [EXPIRATIONSUMMARY]
where SALESORDERITEMTICKET.PRICETYPECODEID = COMBINATIONS.PRICETYPECODEID
) SALESORDERITEMINFO
union all
select
SALESORDERITEM.ID,
null as TICKETCOMBINATIONID,
SALESORDERITEM.DESCRIPTION,
SALESORDERITEM.PRICE,
SALESORDERITEM.QUANTITY,
SALESORDERITEM.TOTAL,
SALESORDERITEM.TYPECODE,
SALESORDERITEM.DATA,
SALESORDERITEM.OPTIONS,
SALESORDERITEM.CALLBACKURL,
SALESORDERITEM.EXPIREDCALLBACKURL,
SALESORDERITEM.SYSTEMTYPENAME,
SALESORDERITEM.ASSEMBLYNAME,
SALESORDERITEM.ATTRIBUTES,
SALESORDERITEM.CATEGORYNAME,
SALESORDERITEM.ACKNOWLEDGEMENT,
null DATEADDED,
null EXPIRATIONDATE,
0 ISEXPIRED,
0 as [HASNOVALIDDELIVERYMETHOD],
0 as [EXPIRATIONDELTA],
70 as ORDERITEMTYPE,
0 as SUBORDERITEMTYPE,
null as ORDERSORTFIELD1,
null as ORDERSORTFIELD2
from dbo.SALESORDERITEM
left join dbo.SALESORDERITEMFEE on
SALESORDERITEM.ID = SALESORDERITEMFEE.ID
where
SALESORDERITEM.SALESORDERID = @CONTEXTID and
SALESORDERITEM.TYPECODE = 3 and
SALESORDERITEMFEE.APPLIESTOCODE = 0
union all
select
SALESORDERITEM.ID,
null as TICKETCOMBINATIONID,
SALESORDERITEM.DESCRIPTION,
SALESORDERITEM.PRICE,
SALESORDERITEM.QUANTITY,
SALESORDERITEM.TOTAL,
SALESORDERITEM.TYPECODE,
SALESORDERITEM.DATA,
SALESORDERITEM.OPTIONS,
SALESORDERITEM.CALLBACKURL,
SALESORDERITEM.EXPIREDCALLBACKURL,
SALESORDERITEM.SYSTEMTYPENAME,
SALESORDERITEM.ASSEMBLYNAME,
SALESORDERITEM.ATTRIBUTES,
SALESORDERITEM.CATEGORYNAME,
SALESORDERITEM.ACKNOWLEDGEMENT,
null DATEADDED,
null EXPIRATIONDATE,
0 ISEXPIRED,
0 as [HASNOVALIDDELIVERYMETHOD],
0 as [EXPIRATIONDELTA],
70 as ORDERITEMTYPE,
0 as SUBORDERITEMTYPE,
null as ORDERSORTFIELD1,
null as ORDERSORTFIELD2
from dbo.SALESORDERITEM
left join dbo.SALESORDERITEMFEE on
SALESORDERITEM.ID = SALESORDERITEMFEE.ID
where
SALESORDERITEM.SALESORDERID = @CONTEXTID and
SALESORDERITEM.TYPECODE = 4
) INFO;