UFN_REPORT_DASHBOARD_DAILYADMISSIONCOUNT_BASE

Return

Return Type
table

Parameters

Parameter Parameter Type Mode Description
@FROMDATE date IN
@TODATE datetime IN

Definition

Copy

create function dbo.UFN_REPORT_DASHBOARD_DAILYADMISSIONCOUNT_BASE
(
    @FROMDATE date = null,
    @TODATE datetime = null
)
returns table
as return
    select
        coalesce(RESERVATION.ARRIVALDATE, FINANCIALTRANSACTION.CALCULATEDDATE, cast(SALESORDER.TRANSACTIONDATE as date)) TransactionDate,
        PRICETYPECODE.[DESCRIPTION] PriceTypeDescription,
        coalesce(sum(SALESORDERITEM.QUANTITY), 0) - sum(CANCELLEDTICKETS.QUANTITY) AdmissionCount
    from dbo.SALESORDERITEM
    inner join dbo.SALESORDERITEMTICKET on SALESORDERITEM.ID = SALESORDERITEMTICKET.ID
    inner join dbo.PRICETYPECODE on SALESORDERITEMTICKET.PRICETYPECODEID = PRICETYPECODE.ID
    inner join dbo.SALESORDER on SALESORDERITEM.SALESORDERID = SALESORDER.ID
    left join dbo.RESERVATION on SALESORDER.ID = RESERVATION.ID
    left join dbo.FINANCIALTRANSACTION on FINANCIALTRANSACTION.ID = SALESORDER.REVENUEID
    outer apply (
        select count(*) as QUANTITY from dbo.TICKET where SALESORDERITEMTICKETID = SALESORDERITEMTICKET.ID and STATUSCODE = 2  -- Cancelled

    ) as CANCELLEDTICKETS
    where (SALESORDER.STATUSCODE = 1 or (SALESORDER.SALESMETHODTYPECODE = 3 and SALESORDER.STATUSCODE <> 5))
        and SALESORDERITEMTICKET.EVENTID is null
        and coalesce(RESERVATION.ARRIVALDATE, FINANCIALTRANSACTION.CALCULATEDDATE, SALESORDER.TRANSACTIONDATE) between @FROMDATE and dbo.UFN_DATE_GETLATESTTIME(@TODATE)
    group by PRICETYPECODE.[DESCRIPTION], coalesce(RESERVATION.ARRIVALDATE, FINANCIALTRANSACTION.CALCULATEDDATE, cast(SALESORDER.TRANSACTIONDATE as date));