UFN_SALESORDER_RESERVATION_RESOURCES

Return

Return Type
table

Parameters

Parameter Parameter Type Mode Description
@SALESORDERID uniqueidentifier IN

Definition

Copy


        create function dbo.UFN_SALESORDER_RESERVATION_RESOURCES(@SALESORDERID uniqueidentifier)
        returns table
        as

        return (select 
                    SALESORDERITEM.ID,
                    RESOURCE.NAME as DESCRIPTION,
                    dbo.UFN_ITINERARY_STARTDATETIME(ITINERARYRESOURCE.ITINERARYID) as STARTDATE,
                    dbo.UFN_ITINERARY_ENDDATETIME(ITINERARYRESOURCE.ITINERARYID) as ENDDATE,
                    case RESOURCE.ISPERTICKETITEM
                        when 0 then
                            ITINERARYRESOURCE.QUANTITYNEEDED
                        else
                            dbo.UFN_RESOURCE_CALCULATEPERTICKETQUANTITY_2(ITINERARYATTENDEECOUNT.QUANTITY * ITINERARYRESOURCE.PERTICKETQUANTITY, ITINERARYRESOURCE.PERTICKETDIVISOR)
                    end as QUANTITY,
                    SALESORDERITEM.PRICE,
                    SALESORDERITEM.PRICINGSTRUCTURECODE,
                    SALESORDERITEM.TOTAL
                from 
                    dbo.SALESORDERITEM
                inner join 
                    dbo.SALESORDERITEMITINERARYRESOURCE on SALESORDERITEM.ID = SALESORDERITEMITINERARYRESOURCE.SALESORDERITEMID
                inner join 
                    dbo.ITINERARYRESOURCE on SALESORDERITEMITINERARYRESOURCE.ITINERARYRESOURCEID = ITINERARYRESOURCE.ID
                inner join 
                    dbo.RESOURCE on ITINERARYRESOURCE.RESOURCEID = RESOURCE.ID
                outer apply (
                    select 
                        sum(ITINERARYATTENDEE.QUANTITY) as QUANTITY
                    from 
                        dbo.ITINERARYATTENDEE
                    where 
                        ITINERARYATTENDEE.ITINERARYID = ITINERARYRESOURCE.ITINERARYID
                ) as ITINERARYATTENDEECOUNT
                where 
                    SALESORDERITEM.SALESORDERID = @SALESORDERID
                    and SALESORDERITEM.TYPECODE = 8

                union all

                select 
                    SALESORDERITEM.ID,
                    ITINERARYITEM.NAME + ' - ' + RESOURCE.NAME as DESCRIPTION,
                    ITINERARYITEM.STARTDATETIME as STARTDATE,
                    ITINERARYITEM.ENDDATETIME as ENDDATE,
                    case RESOURCE.ISPERTICKETITEM
                        when 0 then
                            ITINERARYITEMRESOURCE.QUANTITYNEEDED
                        else
                            dbo.UFN_RESOURCE_CALCULATEPERTICKETQUANTITY_2(ITINERARYATTENDEECOUNT.QUANTITY * ITINERARYITEMRESOURCE.PERTICKETQUANTITY, ITINERARYITEMRESOURCE.PERTICKETDIVISOR)
                    end as QUANTITY,
                    SALESORDERITEM.PRICE,
                    SALESORDERITEM.PRICINGSTRUCTURECODE,
                    SALESORDERITEM.TOTAL
                from 
                    dbo.SALESORDERITEM
                inner join 
                    dbo.SALESORDERITEMITINERARYITEMRESOURCE on SALESORDERITEM.ID = SALESORDERITEMITINERARYITEMRESOURCE.SALESORDERITEMID
                inner join 
                    dbo.ITINERARYITEMRESOURCE on SALESORDERITEMITINERARYITEMRESOURCE.ITINERARYITEMRESOURCEID = ITINERARYITEMRESOURCE.ID
                inner join 
                    dbo.ITINERARYITEM on ITINERARYITEMRESOURCE.ITINERARYITEMID = ITINERARYITEM.ID
                inner join 
                    dbo.RESOURCE on ITINERARYITEMRESOURCE.RESOURCEID = RESOURCE.ID
                outer apply (
                    select 
                        sum(ITINERARYATTENDEE.QUANTITY) as QUANTITY
                    from 
                        dbo.ITINERARYATTENDEE
                    where 
                        ITINERARYATTENDEE.ITINERARYID = ITINERARYITEM.ITINERARYID
                ) as ITINERARYATTENDEECOUNT
                where 
                    SALESORDERITEM.SALESORDERID = @SALESORDERID
                    and SALESORDERITEM.TYPECODE = 9
            )