USP_DATALIST_ORDERDETAILS_FORGROUPEDVIEW
Returns the list of the order item details.
Parameters
Parameter | Parameter Type | Mode | Description |
---|---|---|---|
@CONTEXTID | uniqueidentifier | IN | Input parameter indicating the context ID for the data list. |
Definition
Copy
CREATE procedure dbo.USP_DATALIST_ORDERDETAILS_FORGROUPEDVIEW(@CONTEXTID uniqueidentifier)
as
set nocount on;
declare @ORDERSUBTOTAL money;
declare @ORDERTOTAL money;
declare @TOTALTAXES money;
declare @AMOUNTTENDERED money;
declare @CHANGEDUE money;
select
@ORDERSUBTOTAL = SUBTOTAL,
@ORDERTOTAL = TOTAL,
@TOTALTAXES = TAXES,
@AMOUNTTENDERED = AMOUNTTENDERED,
@CHANGEDUE = CHANGEDUE
from
dbo.UFN_SALESORDER_TOTALS(@CONTEXTID)
declare @FEESDISCOUNTSANDREFUNDS table (
SALESORDERITEMID uniqueidentifier,
FEES money,
DISCOUNTS money,
QUANTITYREFUNDED int
)
insert into @FEESDISCOUNTSANDREFUNDS
select
[SALESORDERITEM].[ID],
(
select coalesce(sum([FEESALESORDERITEM].[TOTAL]),0.0)
from dbo.[SALESORDERITEM] as [FEESALESORDERITEM]
inner join dbo.[SALESORDERITEMFEE] on [FEESALESORDERITEM].[ID] = [SALESORDERITEMFEE].[ID]
where [SALESORDERITEMFEE].[SALESORDERITEMID] = [SALESORDERITEM].[ID]
) as [FEES],
(
case
when [SALESORDERITEM].[TYPECODE] = 1 then
(select coalesce(sum([AMOUNT]), 0.0)
from dbo.[SALESORDERITEMMEMBERSHIPITEMPROMOTION]
where [SALESORDERITEMMEMBERSHIPITEMPROMOTION].[SALESORDERITEMID] = [SALESORDERITEM].[ID])
else
(select coalesce(sum([AMOUNT]),0.0)
from dbo.[SALESORDERITEMITEMDISCOUNT]
where [SALESORDERITEMID] = [SALESORDERITEM].[ID])
end
) as [DISCOUNTS],
(
select coalesce(sum(LI.QUANTITY), 0)
from dbo.FINANCIALTRANSACTIONLINEITEM as LI
inner join dbo.CREDITITEM_EXT as EXT on EXT.ID = LI.ID
where EXT.SALESORDERITEMID = SALESORDERITEM.ID
) as [REFUNDEDQUANTITY]
from dbo.[SALESORDERITEM]
where [SALESORDERITEM].[SALESORDERID] = @CONTEXTID
declare @FEESOFCOMBINATION table (
TICKETCOMBINATIONID uniqueidentifier,
PRICETYPECODEID uniqueidentifier,
FEES money
)
insert into @FEESOFCOMBINATION
select
TICKETCOMBINATIONID, [PRICETYPECODEID], SUM(FEES)
from (
select
[SALESORDERITEMTICKETCOMBINATION].TICKETCOMBINATIONID,
[SALESORDERITEMTICKET].[PRICETYPECODEID],
(
select coalesce(sum([FEESALESORDERITEM].[TOTAL]),0.0)
from dbo.[SALESORDERITEM] as [FEESALESORDERITEM]
inner join dbo.[SALESORDERITEMFEE] on [FEESALESORDERITEM].[ID] = [SALESORDERITEMFEE].[ID]
inner join dbo.[SALESORDERITEMTICKET] as [FEESALESORDERITEMTICKET] on [SALESORDERITEMFEE].[SALESORDERITEMID] = [FEESALESORDERITEMTICKET].[ID]
where [SALESORDERITEMFEE].[SALESORDERITEMID] = [SALESORDERITEM].[ID] and [SALESORDERITEMTICKET].[PRICETYPECODEID] = [FEESALESORDERITEMTICKET].[PRICETYPECODEID]
) as [FEES]
from dbo.SALESORDERITEM
inner join dbo.[SALESORDERITEMTICKET] on [SALESORDERITEM].[ID] = [SALESORDERITEMTICKET].[ID]
inner join dbo.[SALESORDERITEMTICKETCOMBINATION] on [SALESORDERITEMTICKET].[ID] = [SALESORDERITEMTICKETCOMBINATION].[ID]
where SALESORDERITEM.SALESORDERID = @CONTEXTID
) as ComboFee
group by TICKETCOMBINATIONID , [PRICETYPECODEID]
select
@CONTEXTID as ORDERID, ITEMID, ID, DESCRIPTION, QUANTITY, TOTAL, ITEMTYPE, ITEMSUBTYPE, GROUPBY, GROUPCAPTION, ISBOLD, ISRED
from (
-- Daily admission tickets
select
[PROGRAM].[ID] as [ITEMID],
[SALESORDERITEM].[ID],
[PRICETYPECODE].[DESCRIPTION] as [DESCRIPTION],
[SALESORDERITEM].[QUANTITY] as [QUANTITY],
[SALESORDERITEM].[TOTAL] + [FEESDISCOUNTSANDREFUNDS].[FEES] - [FEESDISCOUNTSANDREFUNDS].[DISCOUNTS] as [TOTAL],
0 as [ITEMTYPE],
0 as [ITEMSUBTYPE],
'00' + [PROGRAM].[NAME] as [GROUPBY],
[PROGRAM].[NAME] as [GROUPCAPTION],
0 as ISBOLD,
0 as ISRED
from dbo.[SALESORDERITEM]
inner join @FEESDISCOUNTSANDREFUNDS as [FEESDISCOUNTSANDREFUNDS] on [SALESORDERITEM].[ID] = [FEESDISCOUNTSANDREFUNDS].[SALESORDERITEMID]
inner join dbo.[SALESORDERITEMTICKET] on [SALESORDERITEM].[ID] = [SALESORDERITEMTICKET].[ID]
inner join dbo.[PRICETYPECODE] on [SALESORDERITEMTICKET].[PRICETYPECODEID] = [PRICETYPECODE].[ID]
inner join dbo.[PROGRAM] on [SALESORDERITEMTICKET].[PROGRAMID] = [PROGRAM].[ID]
where
[SALESORDERITEM].[SALESORDERID] = @CONTEXTID and
[SALESORDERITEM].[QUANTITY] > 0 and
[PROGRAM].[ISDAILYADMISSION] = 1
-- check if tickets are part of combo
and SALESORDERITEM.ID not in (
select ID from dbo.SALESORDERITEMTICKETCOMBINATION
)
-- Combo tickets
union all
select
[SALESORDERITEMTICKETCOMBINATION].[TICKETCOMBINATIONID] as [ITEMID],
SALESORDERITEM.ID as [ID],
case
when SALESORDERITEMTICKET.EVENTID is not null then
[EVENT].[NAME] + ' (' + convert(nvarchar(10), [EVENT].[STARTDATE], 101) + ' - ' + dbo.UFN_HOURMINUTE_DISPLAYTIME([EVENT].[STARTTIME]) + ')'
else
PROGRAM.NAME
end as [DESCRIPTION],
null as [QUANTITY],
null as [TOTAL],
1 as [ITEMTYPE],
0 as [ITEMSUBTYPE],
'01' + convert(nvarchar(100), [SALESORDERITEMTICKETCOMBINATION].[TICKETCOMBINATIONID]) as [GROUPBY],
[COMBINATION].[NAME] + ' ' + dbo.UFN_SALESORDERITEMTICKETCOMBINATION_GETCOMBINATIONNUMBER([TICKETCOMBINATIONID]) as [GROUPCAPTION],
0 as ISBOLD,
0 as ISRED
from dbo.SALESORDERITEM
inner join dbo.[SALESORDERITEMTICKET] on [SALESORDERITEM].[ID] = [SALESORDERITEMTICKET].[ID]
inner join dbo.[SALESORDERITEMTICKETCOMBINATION] on [SALESORDERITEMTICKET].[ID] = [SALESORDERITEMTICKETCOMBINATION].[ID]
inner join dbo.[COMBINATION] on [SALESORDERITEMTICKETCOMBINATION].[COMBINATIONID] = [COMBINATION].[ID]
inner join dbo.[COMBINATIONPRICETYPE] on [COMBINATIONPRICETYPE].PRICETYPECODEID = [SALESORDERITEMTICKET].[PRICETYPECODEID]
and [COMBINATION].[ID] = [COMBINATIONPRICETYPE].[COMBINATIONID]
left join dbo.EVENT on EVENT.ID = SALESORDERITEMTICKET.EVENTID
left join dbo.PROGRAM on PROGRAM.ID = SALESORDERITEMTICKET.PROGRAMID
where
[SALESORDERITEM].[SALESORDERID] = @CONTEXTID and
SALESORDERITEMTICKET.PRICETYPECODEID in (
select top 1 COMBINATIONPRICETYPE.PRICETYPECODEID
from dbo.COMBINATIONPRICETYPE
inner join dbo.SALESORDERITEMTICKETCOMBINATION SOITC on COMBINATIONPRICETYPE.COMBINATIONID = SOITC.COMBINATIONID
inner join dbo.SALESORDERITEMTICKET on COMBINATIONPRICETYPE.PRICETYPECODEID = SALESORDERITEMTICKET.PRICETYPECODEID
where SOITC.ID = SALESORDERITEMTICKET.ID and SOITC.TICKETCOMBINATIONID = SALESORDERITEMTICKETCOMBINATION.TICKETCOMBINATIONID
)
union all
select
[SALESORDERITEMTICKETCOMBINATION].[TICKETCOMBINATIONID] as [ITEMID],
SALESORDERITEM.ID as [ID],
[PRICETYPECODE].[DESCRIPTION] as [DESCRIPTION],
[SALESORDERITEM].[QUANTITY] as [QUANTITY],
[SALESORDERITEM].[QUANTITY] * dbo.UFN_SALESORDER_GETTICKETCOMBINATIONPRICE([SALESORDERITEM].ID) + [FEESOFCOMBINATION].[FEES] as [TOTAL],
1 as [ITEMTYPE],
1 as [ITEMSUBTYPE],
'01' + convert(nvarchar(100), [SALESORDERITEMTICKETCOMBINATION].[TICKETCOMBINATIONID]) as [GROUPBY],
[COMBINATION].[NAME] + ' ' + dbo.UFN_SALESORDERITEMTICKETCOMBINATION_GETCOMBINATIONNUMBER(SALESORDERITEMTICKETCOMBINATION.[TICKETCOMBINATIONID]) as [GROUPCAPTION],
0 as ISBOLD,
0 as ISRED
from dbo.[SALESORDERITEM]
inner join dbo.[SALESORDERITEMTICKET] on [SALESORDERITEM].[ID] = [SALESORDERITEMTICKET].[ID]
inner join dbo.[SALESORDERITEMTICKETCOMBINATION] on [SALESORDERITEMTICKET].[ID] = [SALESORDERITEMTICKETCOMBINATION].[ID]
inner join @FEESOFCOMBINATION as [FEESOFCOMBINATION] on [SALESORDERITEMTICKETCOMBINATION].[TICKETCOMBINATIONID] = [FEESOFCOMBINATION].[TICKETCOMBINATIONID]
and [SALESORDERITEMTICKET].[PRICETYPECODEID] = [FEESOFCOMBINATION].[PRICETYPECODEID]
inner join dbo.[COMBINATION] on [SALESORDERITEMTICKETCOMBINATION].[COMBINATIONID] = [COMBINATION].[ID]
inner join dbo.[COMBINATIONPRICETYPE] on [COMBINATIONPRICETYPE].PRICETYPECODEID = [SALESORDERITEMTICKET].[PRICETYPECODEID]
and [COMBINATION].[ID] = [COMBINATIONPRICETYPE].[COMBINATIONID]
inner join dbo.[PRICETYPECODE] on [SALESORDERITEMTICKET].[PRICETYPECODEID] = [PRICETYPECODE].[ID]
where
[SALESORDERITEM].[SALESORDERID] = @CONTEXTID and
[SALESORDERITEM].[QUANTITY] > 0 and
[SALESORDERITEMTICKETCOMBINATION].PROGRAMGROUPID in (
select ID
from dbo.PROGRAMGROUP
where PROGRAMGROUP.COMBINATIONID = [SALESORDERITEMTICKETCOMBINATION].COMBINATIONID
)
-- Scheduled program tickets
union all
select
[EVENT].[ID] as [ITEMID],
[SALESORDERITEM].[ID],
[PRICETYPECODE].[DESCRIPTION] as [DESCRIPTION],
[SALESORDERITEM].[QUANTITY] as [QUANTITY],
[SALESORDERITEM].[TOTAL] + [FEESDISCOUNTSANDREFUNDS].[FEES] - [FEESDISCOUNTSANDREFUNDS].[DISCOUNTS] as [TOTAL],
2 as [ITEMTYPE],
0 AS [ITEMSUBTYPE],
'02' + [EVENT].[NAME] + ' (' + convert(nvarchar(10), [EVENT].[STARTDATE], 101) + ' - ' + dbo.UFN_HOURMINUTE_DISPLAYTIME([EVENT].[STARTTIME]) + ')' as [GROUPBY],
[EVENT].[NAME] + ' (' + convert(nvarchar(10), [EVENT].[STARTDATE], 101) + ' - ' + dbo.UFN_HOURMINUTE_DISPLAYTIME([EVENT].[STARTTIME]) + ')' as [GROUPCAPTION],
0 as ISBOLD,
0 as ISRED
from dbo.[SALESORDERITEM]
inner join @FEESDISCOUNTSANDREFUNDS as [FEESDISCOUNTSANDREFUNDS] on [SALESORDERITEM].[ID] = [FEESDISCOUNTSANDREFUNDS].[SALESORDERITEMID]
inner join dbo.[SALESORDERITEMTICKET] on [SALESORDERITEM].[ID] = [SALESORDERITEMTICKET].[ID]
inner join dbo.[PRICETYPECODE] on [SALESORDERITEMTICKET].[PRICETYPECODEID] = [PRICETYPECODE].[ID]
inner join dbo.[EVENT] on [SALESORDERITEMTICKET].[EVENTID] = [EVENT].[ID]
where
[SALESORDERITEM].[SALESORDERID] = @CONTEXTID and
[SALESORDERITEM].[QUANTITY] > 0
-- check if tickets are part of combo
and SALESORDERITEM.ID not in (select ID from dbo.SALESORDERITEMTICKETCOMBINATION)
and SALESORDERITEM.ID not in (select SALESORDERITEMTICKETID from dbo.SALESORDERITEMTICKETREGISTRANT)
-- Memberships
union all
select
[SALESORDERITEMMEMBERSHIP].[MEMBERSHIPID] as [ITEMID],
[SALESORDERITEM].[ID] as [ID],
right([SALESORDERITEM].[DESCRIPTION], len([SALESORDERITEM].[DESCRIPTION]) - charindex('-', [SALESORDERITEM].[DESCRIPTION]) - 1) as [DESCRIPTION],
null as [QUANTITY],
[SALESORDERITEM].[TOTAL] - [FEESDISCOUNTSANDREFUNDS].[DISCOUNTS] as TOTAL,
3 as [ITEMTYPE],
0 AS [ITEMSUBTYPE],
'03' + [MEMBERSHIPPROGRAM].[NAME],
[MEMBERSHIPPROGRAM].[NAME],
0 as ISBOLD,
0 as ISRED
from dbo.[SALESORDER]
inner join dbo.[SALESORDERITEM] on [SALESORDER].[ID] = [SALESORDERITEM].[SALESORDERID]
inner join dbo.[SALESORDERITEMMEMBERSHIP] on [SALESORDERITEM].[ID] = [SALESORDERITEMMEMBERSHIP].[ID]
inner join dbo.[MEMBERSHIPPROGRAM] on [MEMBERSHIPPROGRAM].[ID] = [SALESORDERITEMMEMBERSHIP].[MEMBERSHIPPROGRAMID]
inner join @FEESDISCOUNTSANDREFUNDS as [FEESDISCOUNTSANDREFUNDS] on [SALESORDERITEM].[ID] = [FEESDISCOUNTSANDREFUNDS].[SALESORDERITEMID]
where [SALESORDER].[ID] = @CONTEXTID
-- Event registrant
union all
select
[SALESORDERITEM].[ID] as [ITEMID],
[SALESORDERITEMEVENTREGISTRATION].[REGISTRANTID] as [ID],
dbo.UFN_CONSTITUENT_BUILDNAME([REGISTRANT].[CONSTITUENTID]) as [DESCRIPTION],
null,
coalesce([SALESORDERITEM].[TOTAL],0) as [TOTAL],
4 as [ITEMTYPE],
0 AS [ITEMSUBTYPE],
'04' + [EVENT].[NAME] + ' (' + convert(nvarchar(10), [EVENT].[STARTDATE], 101) + ' - ' + dbo.UFN_HOURMINUTE_DISPLAYTIME([EVENT].[STARTTIME]) + ')',
[EVENT].[NAME] + ' (' + convert(nvarchar(10), [EVENT].[STARTDATE], 101) + ' - ' + dbo.UFN_HOURMINUTE_DISPLAYTIME([EVENT].[STARTTIME]) + ')',
0 as ISBOLD,
0 as ISRED
from dbo.[SALESORDERITEM]
inner join dbo.[SALESORDERITEMEVENTREGISTRATION] on [SALESORDERITEM].[ID] = [SALESORDERITEMEVENTREGISTRATION].[ID]
inner join dbo.[REGISTRANT] on [SALESORDERITEMEVENTREGISTRATION].[REGISTRANTID] = [REGISTRANT].[ID]
inner join dbo.[EVENT] on [REGISTRANT].[EVENTID] = [EVENT].[ID]
where [SALESORDERITEM].[SALESORDERID] = @CONTEXTID
-- Donations
union all
select
[SALESORDERITEM].[ID] as [ITEMID],
[SALESORDERITEM].[ID],
[SALESORDERITEM].[DESCRIPTION],
null,
[SALESORDERITEM].[TOTAL],
5 as [ITEMTYPE],
0 AS [ITEMSUBTYPE],
'05',
'Donations',
0 as ISBOLD,
0 as ISRED
from dbo.[SALESORDERITEM]
inner join dbo.[SALESORDERITEMDONATION] on [SALESORDERITEM].[ID] = [SALESORDERITEMDONATION].[ID]
where [SALESORDERITEM].[SALESORDERID] = @CONTEXTID
-- Delivery method and fees
union all
select
[SALESORDER].[DELIVERYMETHODID] as [ITEMID],
[SALESORDERITEM].[ID],
case
when [SALESORDERITEM].[ID] is null then dbo.UFN_DELIVERYMETHOD_GETNAME([SALESORDER].[DELIVERYMETHODID])
else [SALESORDERITEM].[DESCRIPTION]
end as [DESCRIPTION],
null as [QUANTITY],
[SALESORDERITEM].[TOTAL] as [TOTAL],
6 as [ITEMTYPE],
0 AS [ITEMSUBTYPE],
'06',
case
when [SALESORDERITEM].[ID] is null then 'Delivery method'
else 'Delivery method - ' + dbo.UFN_DELIVERYMETHOD_GETNAME([SALESORDER].[DELIVERYMETHODID])
end,
0 as ISBOLD,
0 as ISRED
from dbo.[SALESORDER]
left join (
dbo.[SALESORDERITEM]
inner join dbo.[SALESORDERITEMFEE]
on [SALESORDERITEM].[ID] = [SALESORDERITEMFEE].[ID]
and [SALESORDERITEMFEE].[APPLIESTOCODE] = 0
and [SALESORDERITEMFEE].[TYPECODE] = 0
) on [SALESORDER].[ID] = [SALESORDERITEM].[SALESORDERID] and [SALESORDERITEM].[TYPECODE] = 3
where [SALESORDER].[ID] = @CONTEXTID
-- Fees
union all
select
[SALESORDERITEM].[ID] as [ITEMID],
[SALESORDERITEM].[ID],
[SALESORDERITEM].[DESCRIPTION] as [DESCRIPTION],
null as [QUANTITY],
[SALESORDERITEM].[TOTAL] as [TOTAL],
7 as [ITEMTYPE],
0 AS [ITEMSUBTYPE],
'07',
'Other adjustments',
0 as ISBOLD,
0 as ISRED
from dbo.[SALESORDERITEM]
inner join dbo.[SALESORDERITEMFEE] on [SALESORDERITEM].[ID] = [SALESORDERITEMFEE].[ID]
where
[SALESORDERITEM].[SALESORDERID] = @CONTEXTID and
[SALESORDERITEM].[TYPECODE] = 3 and
[SALESORDERITEMFEE].[APPLIESTOCODE] = 0 and
[SALESORDERITEMFEE].[TYPECODE] <> 0
-- Discounts
union all
select
[SALESORDERITEM].[ID] as [ITEMID],
[SALESORDERITEM].[ID],
[SALESORDERITEM].[DESCRIPTION],
null as [QUANTITY],
-[SALESORDERITEM].[TOTAL] as [TOTAL],
8 as [ITEMTYPE],
case
when [SALESORDERITEMORDERDISCOUNT].[DISCOUNTID] is null then
1
else
0
end
[ITEMSUBTYPE],
'07',
'Other adjustments',
0 as ISBOLD,
0 as ISRED
from dbo.[SALESORDERITEM]
inner join dbo.[SALESORDERITEMORDERDISCOUNT] on SALESORDERITEM.ID = SALESORDERITEMORDERDISCOUNT.ID
where [SALESORDERITEM].[SALESORDERID] = @CONTEXTID and
[SALESORDERITEM].[TYPECODE] = 5
-- Subtotal
union all
select
null as [ITEMID],
@CONTEXTID as [ID],
'Subtotal' as [DESCRIPTION],
null as [QUANTITY],
@ORDERSUBTOTAL as [TOTAL],
9 as [ITEMTYPE],
1 AS [ITEMSUBTYPE],
'09',
'Totals',
1 as ISBOLD,
0 as ISRED
where @ORDERSUBTOTAL > 0
-- Taxes
union all
select
[SALESORDERITEM].[ID] as [ITEMID],
[SALESORDERITEM].[ID],
[SALESORDERITEM].[DESCRIPTION],
null as [QUANTITY],
[SALESORDERITEM].[TOTAL],
10 as [ITEMTYPE],
0 AS [ITEMSUBTYPE],
'09',
'Totals',
0 as ISBOLD,
0 as ISRED
from dbo.[SALESORDERITEM]
where
[SALESORDERITEM].[SALESORDERID] = @CONTEXTID and
[SALESORDERITEM].[TYPECODE] = 4 and
[SALESORDERITEM].[TOTAL] > 0
-- Total
union all
select
null as [ITEMID],
@CONTEXTID as [ID],
'Total' as [DESCRIPTION],
null as [QUANTITY],
@ORDERTOTAL as [TOTAL],
11 as [ITEMTYPE],
1 AS [ITEMSUBTYPE],
'09',
'Totals',
1 as ISBOLD,
0 as ISRED
where
@ORDERTOTAL > 0
or (
@ORDERTOTAL = 0 and
exists (select ID from dbo.SALESORDERITEM where SALESORDERID = @CONTEXTID)
)
-- Payments
union all
select
SALESORDERPAYMENT.ID as [ITEMID],
SALESORDERPAYMENT.ID as [ID],
case REVENUEPAYMENTMETHOD.PAYMENTMETHODCODE
when 0 then -- Cash
REVENUEPAYMENTMETHOD.PAYMENTMETHOD
when 1 then ( -- Check
select
'Check' +
case isnull(CHECKNUMBER, '')
when '' then ''
else ': #' + CHECKNUMBER
end
from dbo.CHECKPAYMENTMETHODDETAIL
where ID = REVENUEPAYMENTMETHOD.ID
)
when 2 then ( -- Credit card
select dbo.UFN_CREDITTYPECODE_GETDESCRIPTION(CREDITTYPECODEID) + ': ' + CREDITCARDPAYMENTMETHODDETAIL.CREDITCARDPARTIALNUMBER + ' - ' + CREDITCARDPAYMENTMETHODDETAIL.AUTHORIZATIONCODE
from dbo.CREDITCARDPAYMENTMETHODDETAIL
where ID = REVENUEPAYMENTMETHOD.ID)
when 10 then -- Other
REVENUEPAYMENTMETHOD.PAYMENTMETHOD + ': ' + (
select dbo.UFN_OTHERPAYMENTMETHODCODE_GETDESCRIPTION(OTHERPAYMENTMETHODCODEID)
from dbo.OTHERPAYMENTMETHODDETAIL
where ID = REVENUEPAYMENTMETHOD.ID
)
end as [DESCRIPTION],
null as [QUANTITY],
SALESORDERPAYMENT.AMOUNTTENDERED as [TOTAL],
14 as [ITEMTYPE],
0 AS [ITEMSUBTYPE],
'10',
'Paid',
0 as ISBOLD,
0 as ISRED
from dbo.SALESORDERPAYMENT
inner join dbo.REVENUEPAYMENTMETHOD on REVENUEPAYMENTMETHOD.REVENUEID = SALESORDERPAYMENT.PAYMENTID
left join dbo.REVENUEPOSTED on REVENUEPOSTED.ID = SALESORDERPAYMENT.PAYMENTID
where SALESORDERPAYMENT.SALESORDERID = @CONTEXTID
-- Payment total label
union all
select
null as [ITEMID],
@CONTEXTID as [ID],
'Total Paid' as [DESCRIPTION],
null as [QUANTITY],
@AMOUNTTENDERED as [TOTAL],
15 as [ITEMTYPE],
1 AS [ITEMSUBTYPE],
'10',
'Paid',
1 as ISBOLD,
0 as ISRED
where @AMOUNTTENDERED > 0
-- Change due label
union all
select
null as [ITEMID],
@CONTEXTID as [ID],
'Change Due' as [DESCRIPTION],
null as [QUANTITY],
@CHANGEDUE as [TOTAL],
16 as [ITEMTYPE],
0 AS [ITEMSUBTYPE],
'10',
'Paid',
0 as ISBOLD,
0 as ISRED
where @CHANGEDUE > 0
-- Preregistered Program Event Tickets
union all
select
[EVENT].[ID] as [ITEMID],
[SALESORDERITEM].[ID],
[PRICETYPECODE].[DESCRIPTION] as [DESCRIPTION],
[SALESORDERITEM].[QUANTITY] as [QUANTITY],
[SALESORDERITEM].[TOTAL] + [FEESDISCOUNTSANDREFUNDS].[FEES] - [FEESDISCOUNTSANDREFUNDS].[DISCOUNTS] as [TOTAL],
17 as [ITEMTYPE],
0 AS [ITEMSUBTYPE],
'02' + [EVENT].[NAME] + ' (' + convert(nvarchar(10), [EVENT].[STARTDATE], 101) + ' - ' + dbo.UFN_HOURMINUTE_DISPLAYTIME([EVENT].[STARTTIME]) + ')' as [GROUPBY],
[EVENT].[NAME] + ' (' + convert(nvarchar(10), [EVENT].[STARTDATE], 101) + ' - ' + dbo.UFN_HOURMINUTE_DISPLAYTIME([EVENT].[STARTTIME]) + ')' as [GROUPCAPTION],
0 as ISBOLD,
0 as ISRED
from
dbo.[SALESORDERITEM]
inner join
@FEESDISCOUNTSANDREFUNDS as [FEESDISCOUNTSANDREFUNDS] on [SALESORDERITEM].[ID] = [FEESDISCOUNTSANDREFUNDS].[SALESORDERITEMID]
inner join
dbo.[SALESORDERITEMTICKET] on [SALESORDERITEM].[ID] = [SALESORDERITEMTICKET].[ID]
inner join
dbo.[PRICETYPECODE] on [SALESORDERITEMTICKET].[PRICETYPECODEID] = [PRICETYPECODE].[ID]
inner join
dbo.[EVENT] on [SALESORDERITEMTICKET].[EVENTID] = [EVENT].[ID]
where
[SALESORDERITEM].[SALESORDERID] = @CONTEXTID
and [SALESORDERITEM].[QUANTITY] > 0
and SALESORDERITEM.ID in (select SALESORDERITEMTICKETID from dbo.SALESORDERITEMTICKETREGISTRANT)
) as SALESORDERITEMS
order by ITEMTYPE asc
return 0;