USP_DATAFORMTEMPLATE_VIEW_RESCHEDULETICKETSORDER
Parameters
Parameter | Parameter Type | Mode | Description |
---|---|---|---|
@ID | uniqueidentifier | IN | |
@DATALOADED | bit | INOUT | |
@CONSTITUENTID | uniqueidentifier | INOUT | |
@CONSTITUENTNAME | nvarchar(154) | INOUT | |
@ITEMS | xml | INOUT | |
@ORDERNUMBER | nvarchar(10) | INOUT | |
@CURRENCYID | uniqueidentifier | INOUT | |
@TIMESTAMP | bigint | INOUT |
Definition
Copy
CREATE procedure dbo.USP_DATAFORMTEMPLATE_VIEW_RESCHEDULETICKETSORDER
(
@ID uniqueidentifier,
@DATALOADED bit = 0 output,
@CONSTITUENTID uniqueidentifier = null output,
@CONSTITUENTNAME nvarchar(154) = null output,
@ITEMS xml = null output,
@ORDERNUMBER nvarchar(10) = null output,
@CURRENCYID uniqueidentifier = null output,
@TIMESTAMP bigint = null output
)
as
set nocount on;
set @DATALOADED = 0;
declare @SALESMETHODTYPECODE tinyint;
with TICKET_CTE as (
select
TICKET.ID,
TICKET.PROGRAMID,
TICKET.EVENTID,
TICKET.PRICETYPECODEID,
case when TICKET.STATUSCODE = 2 or TICKET.ISREFUNDED = 1 then 1 else 0 end as ISREFUNDED,
TICKET.AMOUNTPAID,
TICKET.TICKETNUMBER,
row_number() over(partition by TICKET.EVENTID, TICKET.PRICETYPECODEID order by TICKET.ID) ROWNUM
from dbo.TICKET
inner join dbo.SALESORDERITEM on SALESORDERITEM.ID = TICKET.SALESORDERITEMTICKETID
where SALESORDERITEM.SALESORDERID = @ID
and SALESORDERITEM.TYPECODE = 0
and TICKET.EVENTID is not null
),
REGISTRANT_CTE as (
select
REGISTRANT.ID,
REGISTRANT.EVENTID,
SALESORDERITEMTICKET.PRICETYPECODEID,
REGISTRANT.CONSTITUENTID,
row_number() over(partition by REGISTRANT.EVENTID, SALESORDERITEMTICKET.PRICETYPECODEID order by REGISTRANT.ID) ROWNUM
from dbo.SALESORDERITEM
inner join dbo.SALESORDERITEMTICKET on SALESORDERITEMTICKET.ID = SALESORDERITEM.ID
inner join dbo.SALESORDERITEMTICKETREGISTRANT on SALESORDERITEMTICKETREGISTRANT.SALESORDERITEMTICKETID = SALESORDERITEM.ID
inner join dbo.REGISTRANT on REGISTRANT.ID = SALESORDERITEMTICKETREGISTRANT.REGISTRANTID
where SALESORDERITEM.SALESORDERID = @ID
and SALESORDERITEMTICKETREGISTRANT.ISHISTORICAL = 0
)
select
@DATALOADED = 1,
@CONSTITUENTID = SALESORDER.CONSTITUENTID,
@CONSTITUENTNAME = dbo.UFN_CONSTITUENTSEARCH_DISPLAYNAME(SALESORDER.CONSTITUENTID),
@ITEMS = (
select
TICKET_CTE.ID as [@TICKETID],
TICKET_CTE.PROGRAMID as [@PROGRAMID],
TICKET_CTE.EVENTID as [@ORIGINALEVENTID],
EVENT.NAME as [@ORIGINALEVENTNAME],
EVENT.STARTDATETIME as [@ORIGINALEVENTTIME],
TICKET_CTE.PRICETYPECODEID as [@PRICETYPECODEID],
PRICETYPECODE.DESCRIPTION as [@PRICETYPE],
REGISTRANT_CTE.ID as [@REGISTRANTID],
dbo.UFN_CONSTITUENT_BUILDNAME(REGISTRANT_CTE.CONSTITUENTID) as [@REGISTRANTNAME],
TICKET_CTE.ISREFUNDED as [@ISREFUNDED],
TICKET_CTE.AMOUNTPAID as [@AMOUNTPAID],
TICKET_CTE.TICKETNUMBER as [@TICKETNUMBER]
from TICKET_CTE
inner join dbo.EVENT on EVENT.ID = TICKET_CTE.EVENTID
inner join dbo.PRICETYPECODE on PRICETYPECODE.ID = TICKET_CTE.PRICETYPECODEID
left join REGISTRANT_CTE on (REGISTRANT_CTE.ROWNUM = TICKET_CTE.ROWNUM and REGISTRANT_CTE.EVENTID = TICKET_CTE.EVENTID and REGISTRANT_CTE.PRICETYPECODEID = TICKET_CTE.PRICETYPECODEID)
for xml path('ITEM'),type,elements,root('ITEMS'),binary base64
),
@ORDERNUMBER = cast(SALESORDER.SEQUENCEID as nvarchar(10)),
@CURRENCYID = FINANCIALTRANSACTION.TRANSACTIONCURRENCYID,
@TIMESTAMP = SALESORDER.TSLONG,
@SALESMETHODTYPECODE = SALESORDER.SALESMETHODTYPECODE
from dbo.SALESORDER
left outer join dbo.FINANCIALTRANSACTION on FINANCIALTRANSACTION.ID = SALESORDER.REVENUEID
where SALESORDER.ID = @ID and SALESORDER.STATUSCODE = 1; -- Complete
if @SALESMETHODTYPECODE = 3
begin
raiserror('You cannot open a group sales order from here. Please select the Sales Order Page to open this record or create a Group Sales Reservations query for other browsing options.', 13, 1);
end
return 0;