UFN_RESERVATIONRATESCALEAPPLICATION_ISDISTRIBUTED

Indicates whether a rate scale application for a reservation has been distributed to the sales order items.

Return

Return Type
bit

Parameters

Parameter Parameter Type Mode Description
@ID uniqueidentifier IN

Definition

Copy


        CREATE function dbo.UFN_RESERVATIONRATESCALEAPPLICATION_ISDISTRIBUTED
        (
            @ID uniqueidentifier
        )
        returns bit
        with execute as caller
        as 
        begin
            declare @ISDISTRIBUTED bit = 0

            select
                @ISDISTRIBUTED = 1
            from dbo.RESERVATIONRATESCALEAPPLICATION RRSA
            inner join dbo.RESERVATIONRATESCALE RRS on
                RRSA.RESERVATIONRATESCALEID = RRS.ID
            where
                RRSA.ID = @ID and
                (
                    RRSA.AMOUNT = 0 or
                    (
                        RRSA.TYPECODE = 0 and 
                        RRSA.AMOUNT = 
                        (
                            select isnull(sum(TOTAL),0.0)
                            from dbo.SALESORDERITEM
                                inner join dbo.SALESORDERITEMTICKET on
                                    SALESORDERITEM.ID = SALESORDERITEMTICKET.ID
                            where 
                                SALESORDERID = RRS.ID and
                                PRICINGSTRUCTURECODE = 1 and
                                (
                                    RRSA.PROGRAMID = SALESORDERITEMTICKET.PROGRAMID or
                                    RRSA.PROGRAMID = (select PROGRAMID from dbo.EVENT where ID = SALESORDERITEMTICKET.EVENTID)
                                )
                        )
                    ) or
                    (
                        RRSA.TYPECODE = 1 and
                        RRSA.AMOUNT =
                        (
                            select isnull(sum(TOTAL),0.0)
                            from dbo.SALESORDERITEM
                                inner join dbo.SALESORDERITEMFEE on
                                    SALESORDERITEM.ID = SALESORDERITEMFEE.ID
                            where 
                                SALESORDERID = RRS.ID and
                                PRICINGSTRUCTURECODE = 1 and
                                SALESORDERITEMFEE.FEEID = RRSA.FEEID
                        )
                    ) or
                    (
                        RRSA.TYPECODE = 2 and
                        RRSA.AMOUNT =
                        (
                            select isnull(sum(TOTAL),0.0)
                            from (
                                select TOTAL
                                from dbo.SALESORDERITEM
                                    inner join dbo.SALESORDERITEMITINERARYRESOURCE on SALESORDERITEM.ID = SALESORDERITEMITINERARYRESOURCE.SALESORDERITEMID
                                    inner join dbo.ITINERARYRESOURCE on SALESORDERITEMITINERARYRESOURCE.ITINERARYRESOURCEID = ITINERARYRESOURCE.ID
                                where SALESORDERITEM.SALESORDERID = RRS.ID
                                    and SALESORDERITEM.PRICINGSTRUCTURECODE = 1
                                    and ITINERARYRESOURCE.RESOURCEID = RRSA.RESOURCEID

                                union all

                                select TOTAL
                                from dbo.SALESORDERITEM
                                    inner join dbo.SALESORDERITEMITINERARYITEMRESOURCE on SALESORDERITEM.ID = SALESORDERITEMITINERARYITEMRESOURCE.SALESORDERITEMID
                                    inner join dbo.ITINERARYITEMRESOURCE on SALESORDERITEMITINERARYITEMRESOURCE.ITINERARYITEMRESOURCEID = ITINERARYITEMRESOURCE.ID
                                where SALESORDERITEM.SALESORDERID = RRS.ID
                                    and SALESORDERITEM.PRICINGSTRUCTURECODE = 1
                                    and ITINERARYITEMRESOURCE.RESOURCEID = RRSA.RESOURCEID
                            ) T
                        )
                    ) or
                    (
                        RRSA.TYPECODE = 3 and
                        RRSA.AMOUNT =
                        (
                            select isnull(sum(TOTAL),0.0)
                            from (
                                select TOTAL
                                from dbo.SALESORDERITEM
                                    inner join dbo.SALESORDERITEMITINERARYSTAFFRESOURCE on SALESORDERITEM.ID = SALESORDERITEMITINERARYSTAFFRESOURCE.SALESORDERITEMID
                                    inner join dbo.ITINERARYSTAFFRESOURCE on SALESORDERITEMITINERARYSTAFFRESOURCE.ITINERARYSTAFFRESOURCEID = ITINERARYSTAFFRESOURCE.ID
                                where SALESORDERITEM.SALESORDERID = RRS.ID
                                    and SALESORDERITEM.PRICINGSTRUCTURECODE = 1
                                    and ITINERARYSTAFFRESOURCE.VOLUNTEERTYPEID = RRSA.VOLUNTEERTYPEID

                                union all

                                select TOTAL
                                from dbo.SALESORDERITEM
                                    inner join dbo.SALESORDERITEMITINERARYITEMSTAFFRESOURCE on SALESORDERITEM.ID = SALESORDERITEMITINERARYITEMSTAFFRESOURCE.SALESORDERITEMID
                                    inner join dbo.ITINERARYITEMSTAFFRESOURCE on SALESORDERITEMITINERARYITEMSTAFFRESOURCE.ITINERARYITEMSTAFFRESOURCEID = ITINERARYITEMSTAFFRESOURCE.ID
                                where SALESORDERITEM.SALESORDERID = RRS.ID
                                    and SALESORDERITEM.PRICINGSTRUCTURECODE = 1
                                    and ITINERARYITEMSTAFFRESOURCE.VOLUNTEERTYPEID = RRSA.VOLUNTEERTYPEID
                            ) T
                        )
                    )
                )

            return @ISDISTRIBUTED
        end