USP_DATAFORMTEMPLATE_EDITLOAD_ORDERTICKET
The load procedure used by the edit dataform template "Order Ticket Edit Data Form"
Parameters
Parameter | Parameter Type | Mode | Description |
---|---|---|---|
@ID | uniqueidentifier | IN | The input ID parameter used to load the fields defined on the form. |
@DATALOADED | bit | INOUT | Output parameter indicating whether or not data was actually loaded. |
@TSLONG | bigint | INOUT | Output parameter indicating the TSLONG value of the record being edited. This is used to manage multi-user concurrency issues when multiple users access the same record. |
@EVENTDATE | datetime | INOUT | Date |
@STARTTIME | UDT_HOURMINUTE | INOUT | Start time |
@ENDTIME | UDT_HOURMINUTE | INOUT | End time |
@EVENTNAME | nvarchar(100) | INOUT | Event |
@PROGRAMNAME | nvarchar(100) | INOUT | Program |
@ORDERID | uniqueidentifier | INOUT | Order ID |
@EVENTID | uniqueidentifier | INOUT | Event ID |
@PRICETYPES | xml | INOUT | Prices |
@ISDAILYADMISSION | bit | INOUT | Daily admission |
@PROGRAMID | uniqueidentifier | INOUT | Program ID |
@DATA | xml | INOUT | Data |
@OPTIONS | xml | INOUT | Options |
@CALLBACKURL | nvarchar(255) | INOUT | Callback URL |
@SYSTEMTYPENAME | nvarchar(255) | INOUT | System Type Name |
@ASSEMBLYNAME | nvarchar(255) | INOUT | Assembly Name |
@ATTRIBUTES | xml | INOUT | Attributes |
@CATEGORYNAME | nvarchar(255) | INOUT | Category Name |
@EXPIREDCALLBACKURL | nvarchar(255) | INOUT | Expired callback URL |
@ACKNOWLEDGEMENT | nvarchar(max) | INOUT | Acknowledgement |
Definition
Copy
CREATE procedure dbo.USP_DATAFORMTEMPLATE_EDITLOAD_ORDERTICKET(
@ID uniqueidentifier,
@DATALOADED bit = 0 output,
@TSLONG bigint = 0 output,
@EVENTDATE datetime = null output,
@STARTTIME dbo.UDT_HOURMINUTE = null output,
@ENDTIME dbo.UDT_HOURMINUTE = null output,
@EVENTNAME nvarchar(100) = null output,
@PROGRAMNAME nvarchar(100) = null output,
@ORDERID uniqueidentifier = null output,
@EVENTID uniqueidentifier = null output,
@PRICETYPES xml = null output,
@ISDAILYADMISSION bit = null output,
@PROGRAMID uniqueidentifier = null output,
@DATA xml = null output,
@OPTIONS xml = null output,
@CALLBACKURL nvarchar(255) = null output,
@SYSTEMTYPENAME nvarchar(255) = null output,
@ASSEMBLYNAME nvarchar(255) = null output,
@ATTRIBUTES xml = null output,
@CATEGORYNAME nvarchar(255) = null output,
@EXPIREDCALLBACKURL nvarchar(255) = null output,
@ACKNOWLEDGEMENT nvarchar(max) = null output
)
as
set nocount on;
-- Need to revise... only for advance sales
select top 1
@DATALOADED = 1,
@EVENTID = EVENTID,
@PROGRAMID = PROGRAMID,
@ORDERID = SALESORDERID,
@DATA = DATA,
@OPTIONS = OPTIONS,
@CALLBACKURL = CALLBACKURL,
@SYSTEMTYPENAME = SYSTEMTYPENAME,
@ASSEMBLYNAME = ASSEMBLYNAME,
@ATTRIBUTES = ATTRIBUTES,
@CATEGORYNAME = CATEGORYNAME,
@EXPIREDCALLBACKURL = EXPIREDCALLBACKURL,
@ACKNOWLEDGEMENT = ACKNOWLEDGEMENT
from dbo.SALESORDERITEM
inner join dbo.SALESORDERITEMTICKET on SALESORDERITEM.ID = SALESORDERITEMTICKET.ID
where SALESORDERITEM.ID = @ID
declare @ADVANCESALESMETHODID uniqueidentifier
select @ADVANCESALESMETHODID = ID
from dbo.SALESMETHOD
where TYPECODE = 1
select @ISDAILYADMISSION = ISDAILYADMISSION,
@PROGRAMNAME = NAME
from dbo.PROGRAM
where ID = @PROGRAMID
if @ISDAILYADMISSION = 1
begin
with PRICETYPES_CTE as
(
select
SALESORDERITEM.ID,
SALESORDERITEMTICKET.PRICETYPECODEID,
PROGRAMPRICE.SEQUENCE as SEQUENCE,
dbo.UFN_PRICETYPECODE_GETDESCRIPTION(SALESORDERITEMTICKET.PRICETYPECODEID) as PRICETYPE,
PROGRAMPRICE.FACEPRICE AS FACEPRICE,
0 as ZERO,
1 as ONE,
2 as TWO,
3 as THREE,
4 as FOUR,
5 as FIVE,
6 as SIX,
7 as SEVEN,
8 as EIGHT,
9 as NINE,
SALESORDERITEM.QUANTITY
from dbo.SALESORDERITEM
inner join dbo.SALESORDERITEMTICKET on SALESORDERITEM.ID = SALESORDERITEMTICKET.ID
inner join dbo.PROGRAMPRICE on PROGRAMPRICE.PROGRAMID = SALESORDERITEMTICKET.PROGRAMID
and PROGRAMPRICE.PRICETYPECODEID = SALESORDERITEMTICKET.PRICETYPECODEID
left join dbo.SALESORDERITEMTICKETCOMBINATION on SALESORDERITEMTICKET.ID = SALESORDERITEMTICKETCOMBINATION.ID
where SALESORDERITEM.SALESORDERID = @ORDERID
and SALESORDERITEMTICKET.PROGRAMID = @PROGRAMID
and SALESORDERITEMTICKETCOMBINATION.ID is null
union all
select
newid() as ID,
PROGRAMPRICE.PRICETYPECODEID,
PROGRAMPRICE.SEQUENCE as SEQUENCE,
dbo.UFN_PRICETYPECODE_GETDESCRIPTION(PROGRAMPRICE.PRICETYPECODEID) as PRICETYPE,
PROGRAMPRICE.FACEPRICE as FACEPRICE,
0 as ZERO,
1 as ONE,
2 as TWO,
3 as THREE,
4 as FOUR,
5 as FIVE,
6 as SIX,
7 as SEVEN,
8 as EIGHT,
9 as NINE,
0 as QUANTITY
from dbo.PROGRAMPRICE
inner join dbo.PRICETYPECODE on PROGRAMPRICE.PRICETYPECODEID = PRICETYPECODE.ID
where
PRICETYPECODE.ACTIVE = 1 and
PROGRAMPRICE.PROGRAMID = @PROGRAMID and
not exists (select 1
from dbo.SALESMETHODEXCLUDEDPRICETYPE
inner join dbo.SALESMETHOD on SALESMETHOD.ID = SALESMETHODEXCLUDEDPRICETYPE.SALESMETHODID
where SALESMETHOD.TYPECODE = 1 and
SALESMETHODEXCLUDEDPRICETYPE.PRICETYPECODEID = PROGRAMPRICE.PRICETYPECODEID) and
not exists (select SALESORDERITEMTICKET.ID
from dbo.SALESORDERITEMTICKET
inner join dbo.SALESORDERITEM on SALESORDERITEMTICKET.ID = SALESORDERITEM.ID
left join dbo.SALESORDERITEMTICKETCOMBINATION on SALESORDERITEMTICKET.ID = SALESORDERITEMTICKETCOMBINATION.ID
where SALESORDERITEMTICKET.PROGRAMID = @PROGRAMID
and SALESORDERITEMTICKET.PRICETYPECODEID = PROGRAMPRICE.PRICETYPECODEID
and SALESORDERITEM.SALESORDERID = @ORDERID
and SALESORDERITEMTICKETCOMBINATION.ID is null)
)
select @PRICETYPES =
(select * from PRICETYPES_CTE
order by SEQUENCE asc
for xml raw ('ITEM'), type, elements, root('PRICETYPES'), BINARY BASE64)
end
else
begin
select
@DATALOADED = 1,
@EVENTDATE = EVENT.STARTDATE,
@STARTTIME = EVENT.STARTTIME,
@ENDTIME = EVENT.ENDTIME,
@EVENTNAME = EVENT.NAME,
@PROGRAMNAME = PROGRAM.NAME
from dbo.EVENT
inner join dbo.PROGRAM on EVENT.PROGRAMID = PROGRAM.ID
where EVENT.ID = @EVENTID;
select @TSLONG = max(TSLONG)
from dbo.SALESORDERITEM
where SALESORDERID = @ORDERID;
if exists (select 1 from dbo.PROGRAMEVENTPRICE where EVENTID = @EVENTID)
begin
with PRICETYPES_CTE as
(
select
SALESORDERITEM.ID,
SALESORDERITEMTICKET.PRICETYPECODEID,
dbo.UFN_PRICETYPE_GETSEQUENCE(@EVENTID, SALESORDERITEMTICKET.PRICETYPECODEID) as SEQUENCE,
dbo.UFN_PRICETYPECODE_GETDESCRIPTION(SALESORDERITEMTICKET.PRICETYPECODEID) as PRICETYPE,
PROGRAMEVENTPRICE.FACEPRICE AS FACEPRICE,
0 as ZERO,
1 as ONE,
2 as TWO,
3 as THREE,
4 as FOUR,
5 as FIVE,
6 as SIX,
7 as SEVEN,
8 as EIGHT,
9 as NINE,
SALESORDERITEM.QUANTITY
from dbo.SALESORDERITEM
inner join dbo.SALESORDERITEMTICKET on SALESORDERITEM.ID = SALESORDERITEMTICKET.ID
inner join dbo.PROGRAMEVENTPRICE on PROGRAMEVENTPRICE.EVENTID = SALESORDERITEMTICKET.EVENTID
and PROGRAMEVENTPRICE.PRICETYPECODEID = SALESORDERITEMTICKET.PRICETYPECODEID
left join dbo.SALESORDERITEMTICKETCOMBINATION on SALESORDERITEMTICKET.ID = SALESORDERITEMTICKETCOMBINATION.ID
where SALESORDERITEM.SALESORDERID = @ORDERID
and SALESORDERITEMTICKET.EVENTID = @EVENTID
and SALESORDERITEMTICKETCOMBINATION.ID is null
union all
select
newid(),
PROGRAMEVENTPRICE.PRICETYPECODEID,
PROGRAMEVENTPRICE.SEQUENCE,
dbo.UFN_PRICETYPECODE_GETDESCRIPTION(PROGRAMEVENTPRICE.PRICETYPECODEID) as PRICETYPE,
PROGRAMEVENTPRICE.FACEPRICE,
0 as ZERO,
1 as ONE,
2 as TWO,
3 as THREE,
4 as FOUR,
5 as FIVE,
6 as SIX,
7 as SEVEN,
8 as EIGHT,
9 as NINE,
0 as QUANTITY
from dbo.PROGRAMEVENTPRICE
inner join dbo.EVENT on EVENT.ID = PROGRAMEVENTPRICE.EVENTID and EVENT.ID = @EVENTID
inner join dbo.PRICETYPECODE on PROGRAMEVENTPRICE.PRICETYPECODEID = PRICETYPECODE.ID
where
PRICETYPECODE.ACTIVE = 1
and not exists (select 1
from dbo.SALESMETHODEXCLUDEDPRICETYPE
where SALESMETHODEXCLUDEDPRICETYPE.SALESMETHODID = @ADVANCESALESMETHODID and
SALESMETHODEXCLUDEDPRICETYPE.PRICETYPECODEID = PROGRAMEVENTPRICE.PRICETYPECODEID)
and not exists (select SALESORDERITEMTICKET.ID
from dbo.SALESORDERITEMTICKET
inner join dbo.SALESORDERITEM on SALESORDERITEMTICKET.ID = SALESORDERITEM.ID
left join dbo.SALESORDERITEMTICKETCOMBINATION on SALESORDERITEMTICKET.ID = SALESORDERITEMTICKETCOMBINATION.ID
where SALESORDERITEMTICKET.EVENTID = @EVENTID
and SALESORDERITEMTICKET.PRICETYPECODEID = PROGRAMEVENTPRICE.PRICETYPECODEID
and SALESORDERITEM.SALESORDERID = @ORDERID
and SALESORDERITEMTICKETCOMBINATION.ID is null)
)
select @PRICETYPES =
(select * from PRICETYPES_CTE
order by SEQUENCE asc
for xml raw ('ITEM'), type, elements, root('PRICETYPES'), BINARY BASE64);
end
else
begin
with PRICETYPES_CTE as
(
select
SALESORDERITEM.ID,
SALESORDERITEMTICKET.PRICETYPECODEID,
dbo.UFN_PRICETYPE_GETSEQUENCE(@EVENTID, SALESORDERITEMTICKET.PRICETYPECODEID) as SEQUENCE,
dbo.UFN_PRICETYPECODE_GETDESCRIPTION(SALESORDERITEMTICKET.PRICETYPECODEID) as PRICETYPE,
PROGRAMPRICE.FACEPRICE AS FACEPRICE,
0 as ZERO,
1 as ONE,
2 as TWO,
3 as THREE,
4 as FOUR,
5 as FIVE,
6 as SIX,
7 as SEVEN,
8 as EIGHT,
9 as NINE,
SALESORDERITEM.QUANTITY
from dbo.SALESORDERITEM
inner join dbo.SALESORDERITEMTICKET on SALESORDERITEM.ID = SALESORDERITEMTICKET.ID
inner join dbo.EVENT on EVENT.ID = @EVENTID
inner join dbo.PROGRAMPRICE on EVENT.PROGRAMID = PROGRAMPRICE.PROGRAMID
and PROGRAMPRICE.PRICETYPECODEID = SALESORDERITEMTICKET.PRICETYPECODEID
left join dbo.SALESORDERITEMTICKETCOMBINATION on SALESORDERITEMTICKET.ID = SALESORDERITEMTICKETCOMBINATION.ID
where SALESORDERITEM.SALESORDERID = @ORDERID
and SALESORDERITEMTICKET.EVENTID = @EVENTID
and SALESORDERITEMTICKETCOMBINATION.ID is null
union all
select
newid(),
PROGRAMPRICE.PRICETYPECODEID,
PROGRAMPRICE.SEQUENCE,
dbo.UFN_PRICETYPECODE_GETDESCRIPTION(PROGRAMPRICE.PRICETYPECODEid) as PRICETYPE,
PROGRAMPRICE.FACEPRICE,
0 as ZERO,
1 as ONE,
2 as TWO,
3 as THREE,
4 as FOUR,
5 as FIVE,
6 as SIX,
7 as SEVEN,
8 as EIGHT,
9 as NINE,
0 as QUANTITY
from dbo.PROGRAMPRICE
inner join dbo.EVENT on EVENT.PROGRAMID = PROGRAMPRICE.PROGRAMID and EVENT.ID = @EVENTID
inner join dbo.PRICETYPECODE on PROGRAMPRICE.PRICETYPECODEID = PRICETYPECODE.ID
where
PRICETYPECODE.ACTIVE = 1
and not exists (select 1
from dbo.SALESMETHODEXCLUDEDPRICETYPE
where SALESMETHODEXCLUDEDPRICETYPE.SALESMETHODID = @ADVANCESALESMETHODID and
SALESMETHODEXCLUDEDPRICETYPE.PRICETYPECODEID = PROGRAMPRICE.PRICETYPECODEID)
and not exists (select SALESORDERITEMTICKET.ID
from dbo.SALESORDERITEMTICKET
inner join dbo.SALESORDERITEM on SALESORDERITEMTICKET.ID = SALESORDERITEM.ID
left join dbo.SALESORDERITEMTICKETCOMBINATION on SALESORDERITEMTICKET.ID = SALESORDERITEMTICKETCOMBINATION.ID
where SALESORDERITEMTICKET.EVENTID = @EVENTID
and SALESORDERITEMTICKET.PRICETYPECODEID = PROGRAMPRICE.PRICETYPECODEID
and SALESORDERITEM.SALESORDERID = @ORDERID
and SALESORDERITEMTICKETCOMBINATION.ID is null)
)
select @PRICETYPES =
(select * from PRICETYPES_CTE
order by SEQUENCE asc
for xml raw ('ITEM'), type, elements, root('PRICETYPES'), BINARY BASE64)
end
end
/*
with PRICETYPES_CTE as
(
select
SALESORDERITEM.ID,
SALESORDERITEMTICKET.PRICETYPECODEID,
dbo.UFN_PRICETYPE_GETSEQUENCE(@EVENTID, SALESORDERITEMTICKET.PRICETYPECODEID) as SEQUENCE,
dbo.UFN_PRICETYPECODE_GETDESCRIPTION(SALESORDERITEMTICKET.PRICETYPECODEID) as PRICETYPE,
PROGRAMEVENTPRICE.FACEPRICE AS FACEPRICE,
0 as ZERO,
1 as ONE,
2 as TWO,
3 as THREE,
4 as FOUR,
5 as FIVE,
6 as SIX,
7 as SEVEN,
8 as EIGHT,
9 as NINE,
SALESORDERITEM.QUANTITY
from dbo.SALESORDERITEM
inner join dbo.SALESORDERITEMTICKET on SALESORDERITEM.ID = SALESORDERITEMTICKET.ID
inner join dbo.PROGRAMEVENTPRICE on PROGRAMEVENTPRICE.EVENTID = SALESORDERITEMTICKET.EVENTID
and PROGRAMEVENTPRICE.PRICETYPECODEID = SALESORDERITEMTICKET.PRICETYPECODEID
where SALESORDERITEM.SALESORDERID = @ORDERID
and SALESORDERITEMTICKET.EVENTID = @EVENTID
union all
select
newid(),
PROGRAMEVENTPRICE.PRICETYPECODEID,
PROGRAMEVENTPRICE.SEQUENCE,
dbo.UFN_PRICETYPECODE_GETDESCRIPTION(PROGRAMEVENTPRICE.PRICETYPECODEID) as PRICETYPE,
PROGRAMEVENTPRICE.FACEPRICE,
0 as ZERO,
1 as ONE,
2 as TWO,
3 as THREE,
4 as FOUR,
5 as FIVE,
6 as SIX,
7 as SEVEN,
8 as EIGHT,
9 as NINE,
0 as QUANTITY
from dbo.PROGRAMEVENTPRICE
inner join dbo.EVENT on EVENT.ID = PROGRAMEVENTPRICE.EVENTID and EVENT.ID = @EVENTID
inner join dbo.PRICETYPECODE on PROGRAMEVENTPRICE.PRICETYPECODEID = PRICETYPECODE.ID
where
PRICETYPECODE.ACTIVE = 1
and not exists (select 1
from dbo.SALESMETHODEXCLUDEDPRICETYPE
where SALESMETHODEXCLUDEDPRICETYPE.SALESMETHODID = @ADVANCESALESMETHODID and
SALESMETHODEXCLUDEDPRICETYPE.PRICETYPECODEID = PROGRAMEVENTPRICE.PRICETYPECODEID)
and not exists (select SALESORDERITEMTICKET.ID
from dbo.SALESORDERITEMTICKET
inner join dbo.SALESORDERITEM on SALESORDERITEMTICKET.ID = SALESORDERITEM.ID
where SALESORDERITEMTICKET.EVENTID = @EVENTID
and SALESORDERITEMTICKET.PRICETYPECODEID = PROGRAMEVENTPRICE.PRICETYPECODEID
and SALESORDERITEM.SALESORDERID = @ORDERID)
union all
select
newid(),
PROGRAMPRICE.PRICETYPECODEID,
PROGRAMPRICE.SEQUENCE,
dbo.UFN_PRICETYPECODE_GETDESCRIPTION(PROGRAMPRICE.PRICETYPECODEid) as PRICETYPE,
PROGRAMPRICE.FACEPRICE,
0 as ZERO,
1 as ONE,
2 as TWO,
3 as THREE,
4 as FOUR,
5 as FIVE,
6 as SIX,
7 as SEVEN,
8 as EIGHT,
9 as NINE,
0 as QUANTITY
from dbo.PROGRAMPRICE
inner join dbo.EVENT on EVENT.PROGRAMID = PROGRAMPRICE.PROGRAMID and EVENT.ID = @EVENTID
inner join dbo.PRICETYPECODE on PROGRAMPRICE.PRICETYPECODEID = PRICETYPECODE.ID
where
PRICETYPECODE.ACTIVE = 1
and not exists (select 1
from dbo.SALESMETHODEXCLUDEDPRICETYPE
where SALESMETHODEXCLUDEDPRICETYPE.SALESMETHODID = @ADVANCESALESMETHODID and
SALESMETHODEXCLUDEDPRICETYPE.PRICETYPECODEID = PROGRAMPRICE.PRICETYPECODEID)
and not exists (select SALESORDERITEMTICKET.ID
from dbo.SALESORDERITEMTICKET
inner join dbo.SALESORDERITEM on SALESORDERITEMTICKET.ID = SALESORDERITEM.ID
where SALESORDERITEMTICKET.EVENTID = @EVENTID
and SALESORDERITEMTICKET.PRICETYPECODEID = PROGRAMPRICE.PRICETYPECODEID
and SALESORDERITEM.SALESORDERID = @ORDERID)
)
select @PRICETYPES =
(select * from PRICETYPES_CTE
order by SEQUENCE
for xml raw ('ITEM'), type, elements, root('PRICETYPES'), BINARY BASE64)
end
*/
/* OLD WAY
if exists (select 1 from dbo.PROGRAMEVENTPRICE where EVENTID = @EVENTID)
begin
set @PRICETYPES =
(
select
newid(),
PROGRAMEVENTPRICE.PRICETYPECODEID,
PROGRAMEVENTPRICE.SEQUENCE,
dbo.UFN_PRICETYPECODE_GETDESCRIPTION(PROGRAMEVENTPRICE.PRICETYPECODEID) as PRICETYPE,
PROGRAMEVENTPRICE.FACEPRICE,
coalesce((select distinct QUANTITY
from dbo.SALESORDERITEM
inner join dbo.SALESORDERITEMTICKET on SALESORDERITEM.ID = SALESORDERITEMTICKET.SALESORDERITEMID
where SALESORDERITEMTICKET.EVENTID = EVENT.ID
and SALESORDERITEMTICKET.PRICETYPECODEID = PROGRAMEVENTPRICE.PRICETYPECODEID
and SALESORDERITEM.SALESORDERID = @ORDERID), 0) as QUANTITY
from dbo.PROGRAMEVENTPRICE
inner join dbo.EVENT on EVENT.ID = PROGRAMEVENTPRICE.EVENTID and EVENT.ID = @EVENTID
where not exists (select 1
from dbo.SALESMETHODEXCLUDEDPRICETYPE
where SALESMETHODEXCLUDEDPRICETYPE.SALESMETHODID = @ADVANCESALESMETHODID and
SALESMETHODEXCLUDEDPRICETYPE.PRICETYPECODEID = PROGRAMEVENTPRICE.PRICETYPECODEID)
order by PROGRAMEVENTPRICE.SEQUENCE asc
for xml raw ('ITEM'), type, elements, root('PRICETYPES'), BINARY BASE64
)
end
else
begin
set @PRICETYPES =
(
select
newid(),
PROGRAMPRICE.PRICETYPECODEID,
PROGRAMPRICE.SEQUENCE,
dbo.UFN_PRICETYPECODE_GETDESCRIPTION(PROGRAMPRICE.PRICETYPECODEid) as PRICETYPE,
PROGRAMPRICE.FACEPRICE,
coalesce((select distinct QUANTITY
from dbo.SALESORDERITEM
inner join dbo.SALESORDERITEMTICKET on SALESORDERITEM.ID = SALESORDERITEMTICKET.SALESORDERITEMID
where SALESORDERITEMTICKET.EVENTID = EVENT.ID
and SALESORDERITEMTICKET.PRICETYPECODEID = PROGRAMPRICE.PRICETYPECODEID
and SALESORDERITEM.SALESORDERID = @ORDERID), 0) as QUANTITY
from dbo.PROGRAMPRICE
inner join dbo.EVENT on EVENT.PROGRAMID = PROGRAMPRICE.PROGRAMID and EVENT.ID = @EVENTID
where not exists (select 1
from dbo.SALESMETHODEXCLUDEDPRICETYPE
where SALESMETHODEXCLUDEDPRICETYPE.SALESMETHODID = @ADVANCESALESMETHODID and
SALESMETHODEXCLUDEDPRICETYPE.PRICETYPECODEID = PROGRAMPRICE.PRICETYPECODEID)
order by PROGRAMPRICE.SEQUENCE asc
for xml raw ('ITEM'), type, elements, root('PRICETYPES'), BINARY BASE64
)
end
*/
return 0;