USP_DATAFORMTEMPLATE_VIEW_GROUPSALESCHECKINDETAIL

The load procedure used by the view dataform template "Group Sales Check In Detail 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.
@NAME nvarchar(100) INOUT NAME
@PATRONNAME nvarchar(100) INOUT Patron
@TOTALVISITORS int INOUT Number of visitors
@ARRIVALAREA nvarchar(100) INOUT Arrival area
@NUMBEROFBUSES smallint INOUT Number of buses
@STATUS nvarchar(50) INOUT Status
@BALANCE money INOUT Balance
@RESERVATIONCONTACT nvarchar(100) INOUT Reservation contact
@TRANSPORTATIONCONTACT nvarchar(200) INOUT Transportation contact
@STARTDATETIME datetime INOUT Start date
@ENDDATETIME datetime INOUT End date
@STARTTIME UDT_HOURMINUTE INOUT Start time
@ENDTIME UDT_HOURMINUTE INOUT End time
@RESERVATIONNOTES nvarchar(500) INOUT Order comments
@ARRIVALNOTES nvarchar(500) INOUT Arrival notes
@ITINERARYCOUNT tinyint INOUT ITINERARYCOUNT

Definition

Copy

CREATE procedure dbo.USP_DATAFORMTEMPLATE_VIEW_GROUPSALESCHECKINDETAIL
(
    @ID uniqueidentifier,
    @DATALOADED bit = 0 output,
    @NAME nvarchar(100) = null output,
    @PATRONNAME nvarchar(100) = null output,
    @TOTALVISITORS integer = null output,
    @ARRIVALAREA nvarchar(100) = null output,
    @NUMBEROFBUSES smallint = null output,
    @STATUS nvarchar(50) = null output,
    @BALANCE money = null output,
    @RESERVATIONCONTACT nvarchar(100) = null output,
    @TRANSPORTATIONCONTACT nvarchar(200) = null output,
    @STARTDATETIME datetime = null output,
    @ENDDATETIME datetime = null output,
    @STARTTIME udt_hourminute = null output,
    @ENDTIME udt_hourminute = null output,
    @RESERVATIONNOTES nvarchar(500) = null output,
    @ARRIVALNOTES nvarchar(500) = null output,
    @ITINERARYCOUNT tinyint = null output
)
as
    set nocount on;
    set @DATALOADED = 0;

    declare @DRIVERNAME nvarchar(100);
    declare @DRIVERPHONENUMBER nvarchar(100);
    declare @CONTACTID uniqueidentifier;
    declare @PHONEID uniqueidentifier;
    declare @CONTACTPHONENUMBER nvarchar(100);
    declare @ARRIVALTIME udt_hourminute;

    select 
        @DATALOADED = 1,
        @NAME = RESERVATION.NAME,
        @TOTALVISITORS = dbo.UFN_RESERVATION_TOTALVISITORCOUNT(RESERVATION.ID),
        @ARRIVALAREA = dbo.UFN_ARRIVALAREACODE_GETDESCRIPTION(RESERVATION.ARRIVALAREACODEID),
        @PATRONNAME = CONSTITUENT.NAME,
        @STATUS = SALESORDER.STATUS,
        @NUMBEROFBUSES = RESERVATION.NUMBEROFBUSES,
        @BALANCE = TOTALS.BALANCE ,
        @DRIVERNAME = DRIVERNAME,
        @DRIVERPHONENUMBER = DRIVERPHONENUMBER,
        @CONTACTID = SALESORDER.RECIPIENTID,
        @PHONEID = CONTACTRECORDS.PHONEID,
        @STARTDATETIME = STARTDATETIME,
        @ENDDATETIME = ENDDATETIME,
        @ARRIVALTIME = ARRIVALTIME,
        @RESERVATIONNOTES = SALESORDER.COMMENTS,
        @ARRIVALNOTES = ARRIVALNOTES
    from 
        dbo.RESERVATION
    inner join 
        dbo.SALESORDER on RESERVATION.ID = SALESORDER.ID
    inner join 
        dbo.CONSTITUENT on CONSTITUENT.ID = SALESORDER.CONSTITUENTID
    outer apply 
        dbo.UFN_SALESORDER_TOTALS(@ID) TOTALS
    outer apply
        dbo.UFN_SALESORDER_CONTACTRECORDS(RESERVATION.ID) as CONTACTRECORDS
    where 
        RESERVATION.ID = @ID 

    if @DATALOADED = 1
    begin
        if ((select count(ITINERARYITEM.ID) 
            from dbo.ITINERARY 
            inner join dbo.ITINERARYITEM on ITINERARY.ID = ITINERARYITEM.ITINERARYID
            where ITINERARY.RESERVATIONID = @ID) = 0)
        begin
            set @ENDTIME = '';

            if @ARRIVALTIME = '' or @ARRIVALTIME is null
                set @STARTTIME = '';
            else
                set @STARTTIME = @ARRIVALTIME;
        end
        else
        begin
            if @ARRIVALTIME = ''
            begin
                set @STARTTIME = dbo.UFN_HOURMINUTE_GETFROMDATE(@STARTDATETIME);
                set @ENDTIME = dbo.UFN_HOURMINUTE_GETFROMDATE(@ENDDATETIME);
            end
            else
            begin
                set @STARTDATETIME = dbo.UFN_DATE_ADDHOURMINUTE(dbo.UFN_DATE_GETEARLIESTTIME(@STARTDATETIME), @ARRIVALTIME);
                set @STARTTIME = @ARRIVALTIME;
                set @ENDTIME = dbo.UFN_HOURMINUTE_GETFROMDATE(@ENDDATETIME);
            end
        end

        if (@DRIVERNAME = '') and (@DRIVERPHONENUMBER <> '')
            set @TRANSPORTATIONCONTACT = @DRIVERPHONENUMBER
        else if (@DRIVERNAME <> '') and (@DRIVERPHONENUMBER = '')
            set @TRANSPORTATIONCONTACT = @DRIVERNAME
        else if (@DRIVERNAME <> '') and (@DRIVERPHONENUMBER <> '')
            set @TRANSPORTATIONCONTACT = @DRIVERNAME + ' - ' + @DRIVERPHONENUMBER

        select 
            @CONTACTPHONENUMBER = NUMBER
        from dbo.PHONE
        where ID = @PHONEID

        select
            @RESERVATIONCONTACT = NAME
        from 
            dbo.CONSTITUENT
        where ID = @CONTACTID

        if @CONTACTPHONENUMBER is null and @RESERVATIONCONTACT is not null
            set @RESERVATIONCONTACT = @RESERVATIONCONTACT
        else if @CONTACTPHONENUMBER is not null and @RESERVATIONCONTACT is not null
            set @RESERVATIONCONTACT = @RESERVATIONCONTACT +' - ' + @CONTACTPHONENUMBER
    end
return 0;