USP_DATAFORMTEMPLATE_EDITLOAD_RESERVATION

The load procedure used by the edit dataform template "Reservation Edit Data 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.
@TSLONG bigint INOUT Output parameter indicating the TSLONG value of the record being edited. This is used to manage multi-user concurrency issues when multiple users access the same record.
@NAME nvarchar(100) INOUT Reservation name
@COMMENTS nvarchar(1000) INOUT Comments
@FINALCOUNTDUEDATE date INOUT Final count date
@FINALCOUNTREQUIRED bit INOUT Final count required
@DEPOSITREQUIRED bit INOUT Deposit required
@DEPOSITAMOUNT money INOUT Amount due
@DEPOSITDUEDATE date INOUT Deposit due date
@TOTALAMOUNTDUE money INOUT
@DEFAULTAMOUNT money INOUT
@DEFAULTPERCENT decimal(5, 2) INOUT
@DEFAULTTYPECODE tinyint INOUT
@DEPOSITTYPECODE tinyint INOUT
@DEFAULTDEPOSITREQUIRED bit INOUT
@FINALDUEDATE date INOUT Order balance due
@CONTRACTREQUIRED bit INOUT Contract required
@CONTRACTDUEDATE date INOUT Contract due date
@PRICINGCODE tinyint INOUT Pricing structure
@INITIALRATESCALEID uniqueidentifier INOUT
@RATESCALEID uniqueidentifier INOUT Flat rate scale
@RATESCALEPRICES xml INOUT
@TOTALVISITORS smallint INOUT Total visitors
@SECURITYDEPOSITREQUIRED bit INOUT Security deposit required
@SECURITYDEPOSITAMOUNT money INOUT Amount due
@SECURITYDEPOSITDUEDATE date INOUT Security deposit due date
@DEFAULTSECURITYDEPOSITAMOUNT money INOUT
@DEFAULTSECURITYDEPOSITPERCENT decimal(5, 2) INOUT
@DEFAULTSECURITYDEPOSITTYPECODE tinyint INOUT
@SECURITYDEPOSITTYPECODE tinyint INOUT
@DEFAULTSECURITYDEPOSITREQUIRED bit INOUT

Definition

Copy

                    CREATE procedure dbo.USP_DATAFORMTEMPLATE_EDITLOAD_RESERVATION
                    (
                        @ID uniqueidentifier,
                        @DATALOADED bit = 0 output,
                        @TSLONG bigint = 0 output,
                        @NAME nvarchar(100) = null output,
                        @COMMENTS nvarchar(1000) = null output,
                        @FINALCOUNTDUEDATE date = null output,
                        @FINALCOUNTREQUIRED bit = null output,
                        @DEPOSITREQUIRED bit = null output,
                        @DEPOSITAMOUNT money = null output,
                        @DEPOSITDUEDATE date = null output,
                        @TOTALAMOUNTDUE money = null output,
                        @DEFAULTAMOUNT money = null output,
                        @DEFAULTPERCENT decimal(5,2) = null output,
                        @DEFAULTTYPECODE tinyint = null output,
                        @DEPOSITTYPECODE tinyint = null output,
                        @DEFAULTDEPOSITREQUIRED bit = null output,
                        @FINALDUEDATE date = null output,
                        @CONTRACTREQUIRED bit = null output,
                        @CONTRACTDUEDATE date = null output,
                        @PRICINGCODE tinyint = null output,
                        @INITIALRATESCALEID uniqueidentifier = null output,
                        @RATESCALEID uniqueidentifier = null output,
                        @RATESCALEPRICES xml = null output,
                        @TOTALVISITORS smallint = null output,
                        @SECURITYDEPOSITREQUIRED bit = null output,
                        @SECURITYDEPOSITAMOUNT money = null output,
                        @SECURITYDEPOSITDUEDATE date = null output,
                        @DEFAULTSECURITYDEPOSITAMOUNT money = null output,
                        @DEFAULTSECURITYDEPOSITPERCENT decimal(5,2) = null output,
                        @DEFAULTSECURITYDEPOSITTYPECODE tinyint = null output,
                        @SECURITYDEPOSITTYPECODE tinyint = null output,
                        @DEFAULTSECURITYDEPOSITREQUIRED bit = null output
                    )
                    as
                        set nocount on;

                        declare @SALESORDERTSLONG bigint;

                        set @DATALOADED = 0;
                        set @TSLONG = 0;

                        select
                            @DATALOADED = 1,
                            @TSLONG = RESERVATION.TSLONG,
                            @SALESORDERTSLONG = SALESORDER.TSLONG,
                            @NAME = RESERVATION.NAME,
                            @COMMENTS = SALESORDER.COMMENTS,
                            @DEPOSITREQUIRED = DEPOSITREQUIRED,
                            @DEPOSITAMOUNT = DEPOSITAMOUNT,
                            @DEPOSITDUEDATE = DEPOSITDUEDATE,
                            @TOTALAMOUNTDUE = dbo.UFN_SALESORDER_GETAMOUNTDUE(@ID),
                            @FINALDUEDATE = FINALDUEDATE,
                            @FINALCOUNTDUEDATE = FINALCOUNTDUEDATE,
                            @FINALCOUNTREQUIRED = FINALCOUNTREQUIRED,
                            @CONTRACTREQUIRED = CONTRACTREQUIRED,
                            @CONTRACTDUEDATE = CONTRACTDUEDATE,
                            @PRICINGCODE = PRICINGCODE,
                            @SECURITYDEPOSITREQUIRED = SECURITYDEPOSITREQUIRED,
                            @SECURITYDEPOSITAMOUNT = SECURITYDEPOSITAMOUNT,
                            @SECURITYDEPOSITDUEDATE = SECURITYDEPOSITDUEDATE
                        from
                            dbo.RESERVATION
                        inner join
                            dbo.SALESORDER on RESERVATION.ID = SALESORDER.ID
                        where
                            RESERVATION.ID = @ID;

                        if @DATALOADED = 1
                        begin
                            if @DEPOSITREQUIRED = 1 and @DEPOSITAMOUNT = 0.0
                            begin
                                set @DEPOSITTYPECODE = 1 -- Percent, has not been set before
                                set @DEPOSITAMOUNT = null
                            end
                            else
                                set @DEPOSITTYPECODE = 0 -- Amount

                            if @SECURITYDEPOSITREQUIRED = 1 and @SECURITYDEPOSITAMOUNT = 0.0
                            begin
                                set @SECURITYDEPOSITTYPECODE = 1 -- Percent, has not been set before
                                set @SECURITYDEPOSITAMOUNT = null
                            end
                            else
                                set @SECURITYDEPOSITTYPECODE = 0 -- Amount

                            select
                                @DEFAULTTYPECODE = DEPOSITTYPECODE,
                                @DEFAULTAMOUNT = DEPOSITAMOUNT,
                                @DEFAULTPERCENT = DEPOSITPERCENT,
                                @DEFAULTDEPOSITREQUIRED = DEPOSITREQUIRED,
                                @DEFAULTSECURITYDEPOSITTYPECODE = SECURITYDEPOSITTYPECODE,
                                @DEFAULTSECURITYDEPOSITAMOUNT = SECURITYDEPOSITAMOUNT,
                                @DEFAULTSECURITYDEPOSITPERCENT = SECURITYDEPOSITPERCENT,
                                @DEFAULTSECURITYDEPOSITREQUIRED = SECURITYDEPOSITREQUIRED
                            from dbo.GROUPSALESDEFAULT

                            if @PRICINGCODE = 1
                            begin
                                select 
                                    @RATESCALEID = RATESCALEID
                                from dbo.RESERVATIONRATESCALE 
                                where 
                                    ID = @ID;
                                set @INITIALRATESCALEID = @RATESCALEID
                            end

                            set @TOTALVISITORS = dbo.UFN_RESERVATION_TOTALVISITORCOUNT(@ID);

                            set @RATESCALEPRICES = (
                                select
                                    RATESCALEID,
                                    AMOUNT,
                                    GROUPMINIMUM,
                                    GROUPMAXIMUM,
                                    USEPERTICKETAFTERMAX
                                from
                                    dbo.RATESCALEPRICE
                                    inner join dbo.RATESCALE on RATESCALE.ID = RATESCALEPRICE.RATESCALEID
                                for xml raw('ITEM'), type, elements, root('RATESCALEPRICES'), binary base64
                            );                            
                        end

                        if @SALESORDERTSLONG > @TSLONG
                            set @TSLONG = @SALESORDERTSLONG;

                        return 0;