USP_DATALIST_SALESORDER_EVENTREGISTRATIONS2

Parameters

Parameter Parameter Type Mode Description
@CONTEXTID uniqueidentifier IN

Definition

Copy


CREATE procedure dbo.USP_DATALIST_SALESORDER_EVENTREGISTRATIONS2
(
    @CONTEXTID uniqueidentifier
)
as
    set nocount on;

    --The top node

    select
        SALESORDERITEM.ID,
        null as SALESORDERITEMID,
        NF.NAME as REGISTRANTNAME,
        EVENT.NAME as DESCRIPTION,
        EVENT.STARTDATE,
        EVENT.STARTTIME,
        REGISTRANTAMOUNTS.QUANTITY,
        REGISTRANTAMOUNTS.AMOUNT,
        SALESORDERITEM.TOTAL as ORDERAMOUNT,
        SALESORDERITEMEVENTREGISTRATION.REGISTRANTID as REGISTRANTID,
        FINANCIALTRANSACTIONLINEITEM.ID as REVENUEAPPLICATIONID
    from dbo.SALESORDERITEM
    inner join dbo.SALESORDERITEMEVENTREGISTRATION on SALESORDERITEM.ID = SALESORDERITEMEVENTREGISTRATION.ID
    inner join dbo.REGISTRANT on SALESORDERITEMEVENTREGISTRATION.REGISTRANTID = REGISTRANT.ID
    inner join dbo.EVENT on REGISTRANT.EVENTID = EVENT.ID
    inner join dbo.SALESORDER on SALESORDERITEM.SALESORDERID = SALESORDER.ID
    inner join dbo.FINANCIALTRANSACTIONLINEITEM on SALESORDER.REVENUEID = FINANCIALTRANSACTIONLINEITEM.FINANCIALTRANSACTIONID
    inner join dbo.REVENUESPLIT_EXT on FINANCIALTRANSACTIONLINEITEM.ID = REVENUESPLIT_EXT.ID
    left join dbo.CREDITITEM_EXT as EXT on EXT.SALESORDERITEMID = SALESORDERITEM.ID
    left join dbo.FINANCIALTRANSACTIONLINEITEM as LI on LI.ID = EXT.ID
    left join dbo.FINANCIALTRANSACTION as FT on FT.ID = LI.FINANCIALTRANSACTIONID
    outer apply dbo.UFN_CONSTITUENT_DISPLAYNAME(REGISTRANT.CONSTITUENTID) as NF
    outer apply (
        select
            isnull(sum(SALESORDERITEMEVENTREGISTRANTREGISTRATION.QUANTITY), 0) as QUANTITY,
            isnull(sum(SALESORDERITEMEVENTREGISTRANTREGISTRATION.AMOUNT), 0) as AMOUNT
        from dbo.SALESORDERITEMEVENTREGISTRANTREGISTRATION
        where SALESORDERITEMEVENTREGISTRANTREGISTRATION.SALESORDERITEMEVENTREGISTRATIONID = SALESORDERITEM.ID
    ) as REGISTRANTAMOUNTS
    where
        SALESORDERITEM.SALESORDERID = @CONTEXTID and
        REVENUESPLIT_EXT.TYPECODE = 1 and
        REVENUESPLIT_EXT.APPLICATIONCODE = 1
    group by
        EXT.GROUPID,
        SALESORDERITEM.ID,
        EVENT.NAME,
        EVENT.STARTDATE,
        EVENT.STARTTIME,
        SALESORDERITEM.TOTAL,
        SALESORDERITEMEVENTREGISTRATION.REGISTRANTID,
        FT.DATE,
        NF.NAME,
        REGISTRANTAMOUNTS.QUANTITY,
        REGISTRANTAMOUNTS.AMOUNT,
        FINANCIALTRANSACTIONLINEITEM.ID

    union all

    --The leaf nodes

    select
        null,
        SALESORDERITEM.ID as SALESORDERITEMID,
        null as REGISTRANTNAME,
        EVENT.NAME + ' - ' + EVENTPRICE.NAME as DESCRIPTION,
        null as STARTDATE,
        null as STARTTIME,
        SALESORDERITEMEVENTREGISTRANTREGISTRATION.QUANTITY,
        SALESORDERITEMEVENTREGISTRANTREGISTRATION.AMOUNT as REGISTRATIONAMOUNT,
        null as ORDERAMOUNT,
        SALESORDERITEMEVENTREGISTRATION.REGISTRANTID as REGISTRANTID,
        null as REVENUEAPPLICATIONID
    from dbo.SALESORDERITEM
    inner join dbo.SALESORDERITEMEVENTREGISTRATION on SALESORDERITEM.ID = SALESORDERITEMEVENTREGISTRATION.ID
    inner join dbo.SALESORDERITEMEVENTREGISTRANTREGISTRATION on SALESORDERITEMEVENTREGISTRATION.ID = SALESORDERITEMEVENTREGISTRANTREGISTRATION.SALESORDERITEMEVENTREGISTRATIONID
    inner join dbo.REGISTRANT on SALESORDERITEMEVENTREGISTRATION.REGISTRANTID = REGISTRANT.ID
    inner join dbo.EVENT on REGISTRANT.EVENTID = EVENT.ID
    inner join dbo.EVENTPRICE on SALESORDERITEMEVENTREGISTRANTREGISTRATION.EVENTPRICEID = EVENTPRICE.ID
    where
        SALESORDERITEM.SALESORDERID = @CONTEXTID
    order by
        DESCRIPTION;

    return 0;