USP_DATAFORMTEMPLATE_VIEW_RESERVATIONDETAILPAGEDATA

The load procedure used by the view dataform template "Reservation Detail Page Data View Form"

Parameters

Parameter Parameter Type Mode Description
@ID uniqueidentifier IN The input ID parameter used to load the fields defined on the form.
@DATALOADED bit INOUT Output parameter indicating whether or not data was actually loaded.
@CONSTITUENTID uniqueidentifier INOUT CONSTITUENTID
@ORDERNUMBER int INOUT ORDERNUMBER
@CONSTITUENTNAME nvarchar(154) INOUT CONSTITUENTNAME
@ISORGANIZATION bit INOUT ISORGANIZATION
@AMOUNTDUE money INOUT AMOUNTDUE
@DEPOSITREQUIRED bit INOUT DEPOSITREQUIRED
@FINALCOUNTREQUIRED bit INOUT FINALCOUNTREQUIRED
@CONTRACTREQUIRED bit INOUT CONTRACTREQUIRED
@ORDERSTATUSCODE tinyint INOUT ORDERSTATUSCODE
@ORDERTICKETTOTAL money INOUT ORDERTICKETTOTAL
@ORDERHASRESOURCE bit INOUT ORDERHASRESOURCE
@ORDERRESOURCETOTAL money INOUT ORDERRESOURCETOTAL
@ORDERHASSTAFFRESOURCE bit INOUT ORDERHASSTAFFRESOURCE
@ORDERSTAFFRESOURCETOTAL money INOUT ORDERSTAFFRESOURCETOTAL
@ORDERHASADJUSTMENT bit INOUT ORDERHASADJUSTMENT
@ORDERADJUSTMENTTOTAL money INOUT ORDERADJUSTMENTTOTAL
@CANCOMPLETE bit INOUT CANCOMPLETE
@PRICINGCODE tinyint INOUT PRICINGCODE
@ORDERBALANCESENT bit INOUT ORDERBALANCESENT
@HASUNSCHEDULEDITEMS bit INOUT HASUNSCHEDULEDITEMS
@CONTACTCONSTITUENTID uniqueidentifier INOUT CONTACTCONSTITUENTID
@CONTACTNAME nvarchar(154) INOUT CONTACTNAME
@ORDERPAYMENTCOUNT tinyint INOUT ORDERPAYMENTCOUNT
@ORDERHASADDITIONALTICKETS bit INOUT ORDERHASADDITIONALTICKETS
@HASUNASSIGNEDSTAFFRESOURCES bit INOUT HASUNASSIGNEDSTAFFRESOURCES
@SECURITYDEPOSITREQUIRED bit INOUT SECURITYDEPOSITREQUIRED
@SECURITYDEPOSITDUE money INOUT SECURITYDEPOSITDUE
@ORDERFLATRATETOTAL money INOUT ORDERFLATRATETOTAL
@ORDERADDITIONALTICKETSTOTAL money INOUT ORDERADDITIONALTICKETSTOTAL
@ORDERHASLOCATION bit INOUT ORDERHASLOCATION
@ORDERLOCATIONTOTAL money INOUT ORDERLOCATIONTOTAL
@DEPOSITTYPECODE int INOUT
@SECURITYDEPOSITTYPECODE int INOUT
@DEPOSITREQUIREDDEFAULT bit INOUT
@SECURITYDEPOSITREQUIREDDEFAULT bit INOUT
@RESERVATIONNAME nvarchar(100) INOUT
@ISREFUNDABLE bit INOUT
@ISSECURITYDEPOSITEREFUNDABLE bit INOUT
@TAXES money INOUT
@ISTAXEXEMPT bit INOUT

Definition

Copy

CREATE procedure dbo.USP_DATAFORMTEMPLATE_VIEW_RESERVATIONDETAILPAGEDATA
(
    @ID uniqueidentifier,
    @DATALOADED bit = 0 output,
    @CONSTITUENTID uniqueidentifier = null output,
    @ORDERNUMBER int = null output,
    @CONSTITUENTNAME nvarchar(154) = null output,
    @ISORGANIZATION bit = null output,
    @AMOUNTDUE money = null output,
    @DEPOSITREQUIRED bit = null output,
    @FINALCOUNTREQUIRED bit = null output,
    @CONTRACTREQUIRED bit = null output,
    @ORDERSTATUSCODE tinyint = null output,
    @ORDERTICKETTOTAL money = null output,
    @ORDERHASRESOURCE bit = null output,
    @ORDERRESOURCETOTAL money = null output,
    @ORDERHASSTAFFRESOURCE bit = null output,
    @ORDERSTAFFRESOURCETOTAL money = null output,
    @ORDERHASADJUSTMENT bit = null output,
    @ORDERADJUSTMENTTOTAL money = null output,
    @CANCOMPLETE bit = null output,
    @PRICINGCODE tinyint = null output,
    @ORDERBALANCESENT bit = null output,
    @HASUNSCHEDULEDITEMS bit = null output,
    @CONTACTCONSTITUENTID uniqueidentifier = null output,
    @CONTACTNAME nvarchar(154) = null output,
    @ORDERPAYMENTCOUNT tinyint = null output,
    @ORDERHASADDITIONALTICKETS bit = null output,
    @HASUNASSIGNEDSTAFFRESOURCES bit = null output,
    @SECURITYDEPOSITREQUIRED bit = null output,
    @SECURITYDEPOSITDUE money = null output,
    @ORDERFLATRATETOTAL money = null output,
    @ORDERADDITIONALTICKETSTOTAL money = null output,
    @ORDERHASLOCATION bit = null output,
    @ORDERLOCATIONTOTAL money = null output,
    @DEPOSITTYPECODE int = null output,
    @SECURITYDEPOSITTYPECODE int = null output,
    @DEPOSITREQUIREDDEFAULT bit  = null output,
    @SECURITYDEPOSITREQUIREDDEFAULT bit = null output,
    @RESERVATIONNAME nvarchar(100) = null output,
    @ISREFUNDABLE bit = null output,
    @ISSECURITYDEPOSITEREFUNDABLE bit = null  output,
    @TAXES money = null output,
    @ISTAXEXEMPT bit = null output
)
as
    set nocount on;

    set @DATALOADED = 0;

    declare @CURRENTDATE date;
    set @CURRENTDATE = getdate();

    select
        @DATALOADED = 1,
        @CONSTITUENTID = SALESORDER.CONSTITUENTID,
        @ORDERNUMBER = SALESORDER.SEQUENCEID,
        @ISORGANIZATION = CONSTITUENT.ISORGANIZATION,
        @CONSTITUENTNAME = CONSTITUENT.NAME,
        @DEPOSITREQUIRED = DEPOSITREQUIRED,
        @FINALCOUNTREQUIRED = FINALCOUNTREQUIRED,
        @CONTRACTREQUIRED = CONTRACTREQUIRED,
        @ORDERSTATUSCODE = [SALESORDER].[STATUSCODE],
        @ORDERTICKETTOTAL = dbo.UFN_SALESORDER_GETTICKETOTAL(@ID),
        @ORDERHASRESOURCE = coalesce((select 1 where exists(select [ID] from dbo.SALESORDERITEM where SALESORDERITEM.SALESORDERID = @ID and SALESORDERITEM.TYPECODE in (8,9))), 0),
        @ORDERRESOURCETOTAL = dbo.UFN_RESERVATION_GETRESOURCETOTAL(@ID),
        @ORDERHASSTAFFRESOURCE = coalesce((select 1 where exists(select [ID] from dbo.SALESORDERITEM where SALESORDERITEM.SALESORDERID = @ID and SALESORDERITEM.TYPECODE in (10,11))), 0),
        @ORDERSTAFFRESOURCETOTAL = dbo.UFN_RESERVATION_GETSTAFFRESOURCETOTAL(@ID),
        @ORDERHASADJUSTMENT = coalesce((select 1 where exists(select [ID] from dbo.SALESORDERITEM where SALESORDERITEM.SALESORDERID = @ID and SALESORDERITEM.TYPECODE in (3,4,5))), 0),
        @ORDERADJUSTMENTTOTAL = dbo.UFN_SALESORDER_GETORDERADJUSTMENTTOTAL(@ID),
        @CANCOMPLETE = case when ARRIVALDATE <= @CURRENTDATE and STATUSCODE not in (1, 5)
                then 1
                else 0
            end,
        @ISSECURITYDEPOSITEREFUNDABLE = case when SECURITYDEPOSITSTATUSCODE > 0
                then 1
                else 0
            end,
        @PRICINGCODE = PRICINGCODE,
        @ORDERBALANCESENT = [RESERVATION].[ORDERBALANCESENT],
        @CONTACTCONSTITUENTID = SALESORDER.RECIPIENTID,
        @CONTACTNAME = dbo.UFN_CONSTITUENT_BUILDNAME(SALESORDER.RECIPIENTID),
        @ORDERPAYMENTCOUNT = dbo.UFN_RESERVATION_GETPAYMENTCOUNT(@ID),
        @SECURITYDEPOSITREQUIRED = SECURITYDEPOSITREQUIRED,
        @SECURITYDEPOSITDUE = dbo.UFN_RESERVATION_GETSECURITYDEPOSITAMOUNTDUE(@ID),
        @ORDERHASLOCATION = coalesce((select 1 where exists(select [ID] from dbo.SALESORDERITEM where SALESORDERITEM.SALESORDERID = @ID and SALESORDERITEM.TYPECODE = 7) ), 0),
        @RESERVATIONNAME = RESERVATION.NAME
    from
        dbo.RESERVATION
    inner join
        dbo.SALESORDER on RESERVATION.ID = SALESORDER.ID
    inner join
        dbo.CONSTITUENT on SALESORDER.CONSTITUENTID = CONSTITUENT.ID
    where
        RESERVATION.ID = @ID;

    if @DATALOADED = 1
    begin
        set @AMOUNTDUE = dbo.UFN_RESERVATION_GETAMOUNTDUE(@ID);

        if exists(select top 1 1
                    from dbo.ITINERARYITEM
                    inner join dbo.ITINERARY on ITINERARYITEM.ITINERARYID = ITINERARY.ID
                    where ITINERARY.RESERVATIONID = @ID and ITINERARYITEM.INVALIDREASONCODE <> 0)
            set @HASUNSCHEDULEDITEMS = 1;
        else
            set @HASUNSCHEDULEDITEMS = 0;

        if @PRICINGCODE = 1
        begin
            set @ORDERHASADDITIONALTICKETS = 0

            -- Find out if there are items outside the flat rate
            -- and get their total if they exist
            if exists (select 1 from dbo.SALESORDERITEM where PRICINGSTRUCTURECODE <> 1 and TYPECODE = 0 and SALESORDERID = @ID)
            begin
                set @ORDERHASADDITIONALTICKETS = 1
                declare @TICKETFEES money;
                declare @TICKETDISCOUNTS money;

                select @ORDERADDITIONALTICKETSTOTAL = sum(TOTAL)
                from dbo.SALESORDERITEM
                where PRICINGSTRUCTURECODE <> 1 and TYPECODE = 0 and SALESORDERID = @ID

                select @TICKETFEES = coalesce(sum([SALESORDERITEM].[TOTAL]), 0)
                from dbo.[SALESORDERITEM]
                    inner join dbo.[SALESORDERITEMFEE] on [SALESORDERITEM].[ID] = [SALESORDERITEMFEE].[ID]
                where 
                    [SALESORDERITEM].[SALESORDERID] = @ID and 
                    [SALESORDERITEMFEE].[APPLIESTOCODE] = 1 and 
                    [SALESORDERITEMFEE].[SALESORDERITEMID] in 
                        (select [ID] from dbo.[SALESORDERITEM]
                        where [SALESORDERITEM].[SALESORDERID] = @ID and 
                        [SALESORDERITEM].[TYPECODE] = 0 and
                        [SALESORDERITEM].[PRICINGSTRUCTURECODE] <> 1)

                select @TICKETDISCOUNTS = coalesce(sum([SALESORDERITEMITEMDISCOUNT].[AMOUNT]), 0)
                from dbo.[SALESORDERITEMITEMDISCOUNT]
                    inner join [SALESORDERITEM] on [SALESORDERITEMITEMDISCOUNT].[SALESORDERITEMID] = [SALESORDERITEM].[ID]
                where
                    [SALESORDERITEM].[TYPECODE] = 0 and
                    [SALESORDERITEM].[SALESORDERID] = @ID and
                    [SALESORDERITEM].[PRICINGSTRUCTURECODE] <> 1

                set @ORDERADDITIONALTICKETSTOTAL = (@ORDERADDITIONALTICKETSTOTAL + @TICKETFEES) - @TICKETDISCOUNTS;
            end
            else
            begin                            
                set @ORDERADDITIONALTICKETSTOTAL = 0
            end

            -- Get the flat rate price for tickets
            select
                @ORDERFLATRATETOTAL = coalesce(sum(AMOUNT), 0.0)
            from dbo.RESERVATIONRATESCALEAPPLICATION 
            where RESERVATIONRATESCALEID = @ID and TYPECODE = 0
        end
        else
        begin
            set @ORDERHASADDITIONALTICKETS = 0
        end

        if @ORDERHASSTAFFRESOURCE = 1
        begin
            set @HASUNASSIGNEDSTAFFRESOURCES = dbo.UFN_RESERVATION_HASUNASSIGNEDSTAFFRESOURCES(@ID);
        end
        else
        begin
            set @HASUNASSIGNEDSTAFFRESOURCES = 0
        end

        if @ORDERHASLOCATION = 1
        begin
            select 
                @ORDERLOCATIONTOTAL = sum(TOTAL)
            from dbo.SALESORDERITEM
            where 
                SALESORDERID = @ID and
                TYPECODE = 7
        end

        select  
            @DEPOSITTYPECODE = DEPOSITTYPECODE, 
            @SECURITYDEPOSITTYPECODE = SECURITYDEPOSITTYPECODE,
            @DEPOSITREQUIREDDEFAULT  = DEPOSITREQUIRED,
            @SECURITYDEPOSITREQUIREDDEFAULT = SECURITYDEPOSITREQUIRED
            from dbo.GROUPSALESDEFAULT

        declare @SALESORDERBALANCE money;
        declare @SALESORDERREFUNDS money;
        declare @SALESORDERAMOUNTPAID money;
        select
            @SALESORDERBALANCE = BALANCE,
            @SALESORDERREFUNDS = REFUNDS,
            @SALESORDERAMOUNTPAID = AMOUNTPAID
        from
            dbo.UFN_SALESORDER_TOTALS(@ID)

        if @ORDERSTATUSCODE = 1
            begin
                if @SALESORDERBALANCE < 0
                    set @ISREFUNDABLE = 1
                else
                    set @ISREFUNDABLE = 0
            end
        else
            begin
                if @SALESORDERAMOUNTPAID > @SALESORDERREFUNDS
                    set @ISREFUNDABLE = 1    
                else
                    set @ISREFUNDABLE = 0
            end

        select @TAXES = TAXES from dbo.UFN_SALESORDER_TOTALS(@ID);
        set @ISTAXEXEMPT = dbo.UFN_SALESORDER_ISTAXEXEMPT(@ID);
    end

    return 0;