UFN_CREDIT_GETSALESORDERITEMTICKETS
Returns order ticket items for a given sales order id
Return
Return Type |
---|
table |
Parameters
Parameter | Parameter Type | Mode | Description |
---|---|---|---|
@SALESORDERID | uniqueidentifier | IN |
Definition
Copy
create function dbo.UFN_CREDIT_GETSALESORDERITEMTICKETS
(
@SALESORDERID uniqueidentifier
) returns @SALESORDERITEMTICKETS table
(
ID uniqueidentifier,
DESCRIPTION nvarchar(510),
STARTDATE datetime,
STARTTIME UDT_HOURMINUTE,
PRICE money,
DISCOUNTS money,
FEES money,
TOTAL money,
QUANTITYAVAILABLE int,
QUANTITYREFUNDING int
)
begin
declare @FEESANDDISCOUNTS table (
SALESORDERITEMID uniqueidentifier,
FEES money,
DISCOUNTS money,
QUANTITYREFUNDEDALREADY int
);
insert into @FEESANDDISCOUNTS
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],
(
select coalesce(sum([AMOUNT]),0.0)
from dbo.[SALESORDERITEMITEMDISCOUNT]
where [SALESORDERITEMID] = [SALESORDERITEM].[ID]
) as [DISCOUNTS],
(
select coalesce(sum([QUANTITY]),0.0)
from dbo.[CREDITITEM]
where [SALESORDERITEMID] = [SALESORDERITEM].[ID]
) as [QUANTITYREFUNDEDALREADY]
from dbo.[SALESORDERITEM]
where [SALESORDERITEM].[SALESORDERID] = @SALESORDERID;
insert into @SALESORDERITEMTICKETS
select
[SALESORDERITEM].[ID],
[SALESORDERITEM].[DESCRIPTION],
[EVENT].[STARTDATE],
[EVENT].[STARTTIME],
[SALESORDERITEM].[PRICE],
[FEESANDDISCOUNTS].[DISCOUNTS],
[FEESANDDISCOUNTS].[FEES],
[SALESORDERITEM].[TOTAL] + [FEESANDDISCOUNTS].[FEES] - [FEESANDDISCOUNTS].[DISCOUNTS] as [TOTAL],
[SALESORDERITEM].QUANTITY - FEESANDDISCOUNTS.QUANTITYREFUNDEDALREADY as QUANTITYAVAILABLE,
[SALESORDERITEM].QUANTITY - FEESANDDISCOUNTS.QUANTITYREFUNDEDALREADY as QUANTITYREFUNDING
from dbo.[SALESORDERITEM]
inner join @FEESANDDISCOUNTS as [FEESANDDISCOUNTS] on [SALESORDERITEM].[ID] = [FEESANDDISCOUNTS].[SALESORDERITEMID]
inner join dbo.[SALESORDERITEMTICKET] on [SALESORDERITEM].[ID] = [SALESORDERITEMTICKET].[ID]
left join dbo.[EVENT] on [SALESORDERITEMTICKET].[EVENTID] = [EVENT].[ID]
where [SALESORDERITEM].QUANTITY - FEESANDDISCOUNTS.QUANTITYREFUNDEDALREADY > 0;
return;
end