USP_DATAFORMTEMPLATE_VIEW_SALESORDERITEM2
Parameters
Parameter | Parameter Type | Mode | Description |
---|---|---|---|
@ID | uniqueidentifier | IN | |
@DATALOADED | bit | INOUT | |
@DESCRIPTION | nvarchar(100) | INOUT | |
@QUANTITY | int | INOUT | |
@PRICE | money | INOUT | |
@TYPECODE | tinyint | INOUT | |
@TOTAL | money | INOUT | |
@FEES | money | INOUT | |
@NAME | nvarchar(100) | INOUT | |
@PRICETYPE | nvarchar(100) | INOUT | |
@STARTDATE | datetime | INOUT | |
@STARTTIME | nvarchar(4) | INOUT | |
@LOCATION | nvarchar(100) | INOUT | |
@MEMBERSHIPEXPIRATIONDATE | datetime | INOUT | |
@MEMBERSHIPLEVELTYPECODE | nvarchar(100) | INOUT | |
@MEMBERSHIPNUMBEROFCHILDREN | smallint | INOUT | |
@MEMBERSHIPGIVENBY | nvarchar(154) | INOUT | |
@MEMBERSHIPMEMBERS | xml | INOUT | |
@PROMOTIONS | money | INOUT | |
@MEMBERSHIPADDONS | xml | INOUT |
Definition
Copy
CREATE procedure dbo.USP_DATAFORMTEMPLATE_VIEW_SALESORDERITEM2
(
@ID uniqueidentifier,
@DATALOADED bit = 0 output,
@DESCRIPTION nvarchar(100) = null output,
@QUANTITY int = null output,
@PRICE money = null output,
@TYPECODE tinyint = null output,
@TOTAL money = null output,
@FEES money = null output,
@NAME nvarchar(100) = null output,
@PRICETYPE nvarchar(100) = null output,
@STARTDATE datetime = null output,
@STARTTIME nvarchar(4) = null output,
@LOCATION nvarchar(100) = null output,
@MEMBERSHIPEXPIRATIONDATE datetime = null output,
@MEMBERSHIPLEVELTYPECODE nvarchar(100) = null output,
@MEMBERSHIPNUMBEROFCHILDREN smallint = null output,
@MEMBERSHIPGIVENBY nvarchar(154) = null output,
@MEMBERSHIPMEMBERS xml = null output,
@PROMOTIONS money = null output,
@MEMBERSHIPADDONS xml = null output
)
as
set nocount on;
set @DATALOADED = 0;
select
@DATALOADED = 1,
@DESCRIPTION = DESCRIPTION,
@QUANTITY = QUANTITY,
@PRICE = PRICE,
@TYPECODE = TYPECODE,
@TOTAL = TOTAL
from dbo.SALESORDERITEM
where ID = @ID
if @TYPECODE = 0 -- Tickets
begin
select @NAME = coalesce(EVENT.NAME, PROGRAM.NAME, ''),
@PRICETYPE = PRICETYPECODE.DESCRIPTION,
@STARTDATE = EVENT.STARTDATE,
@STARTTIME = EVENT.STARTTIME,
@LOCATION = dbo.UFN_EVENT_GETLOCATIONNAME(EVENT.ID)
from dbo.SALESORDERITEMTICKET
inner join dbo.PRICETYPECODE on SALESORDERITEMTICKET.PRICETYPECODEID = PRICETYPECODE.ID
left join dbo.EVENT on SALESORDERITEMTICKET.EVENTID = EVENT.ID
left join dbo.PROGRAM on SALESORDERITEMTICKET.PROGRAMID = PROGRAM.ID
where SALESORDERITEMTICKET.ID = @ID;
declare @FEEDOLLARAMOUNT money = 0;
select
@FEEDOLLARAMOUNT = sum(TOTAL)
from dbo.SALESORDERITEM
inner join dbo.SALESORDERITEMFEE on SALESORDERITEM.ID = SALESORDERITEMFEE.ID
where SALESORDERITEMFEE.SALESORDERITEMID = @ID;
set @FEES = coalesce(@FEEDOLLARAMOUNT, 0.0);
set @TOTAL = @TOTAL + @FEES;
end
else if @TYPECODE = 1 -- Membership
begin
select @PROMOTIONS = sum(AMOUNT)
from dbo.SALESORDERITEMMEMBERSHIPITEMPROMOTION
where SALESORDERITEMMEMBERSHIPITEMPROMOTION.SALESORDERITEMID = @ID;
select
@MEMBERSHIPEXPIRATIONDATE = SALESORDERITEMMEMBERSHIP.EXPIRATIONDATE,
@MEMBERSHIPLEVELTYPECODE = dbo.UFN_MEMBERSHIPLEVELTYPECODE_GETDESCRIPTION(SALESORDERITEMMEMBERSHIP.MEMBERSHIPLEVELTYPECODEID),
@MEMBERSHIPNUMBEROFCHILDREN = SALESORDERITEMMEMBERSHIP.NUMBEROFCHILDREN,
@MEMBERSHIPGIVENBY = dbo.UFN_CONSTITUENT_BUILDNAME(SALESORDERITEMMEMBERSHIP.GIVENBYID),
@MEMBERSHIPMEMBERS = (
select dbo.UFN_CONSTITUENT_BUILDNAME(SALESORDERITEMMEMBER.CONSTITUENTID) [MEMBERNAME]
from dbo.SALESORDERITEMMEMBER
where SALESORDERITEMMEMBERSHIP.ID = SALESORDERITEMMEMBER.SALESORDERITEMMEMBERSHIPID
for xml raw('ITEM'),type,elements,root('MEMBERSHIPMEMBERS'),binary base64
)
from dbo.SALESORDERITEMMEMBERSHIP
where ID = @ID;
-- Add-ons
select
@MEMBERSHIPADDONS = (
select
ADDON.NAME as ADDONNAME,
SALESORDERITEM.QUANTITY,
SALESORDERITEM.PRICE,
SALESORDERITEM.TOTAL
from dbo.SALESORDERITEM
inner join dbo.SALESORDERITEMMEMBERSHIPADDON SOIMA on SALESORDERITEM.ID = SOIMA.ID
inner join dbo.ADDON on SOIMA.ADDONID = ADDON.ID
where SALESORDERITEM.TYPECODE = 16
and SOIMA.SALESORDERITEMMEMBERSHIPID = @ID
for xml raw('ITEM'),type,elements,root('MEMBERSHIPADDONS'),binary base64
);
end
return 0;