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