USP_DATAFORMTEMPLATE_ADD_RESERVATIONCONTRACT

The save procedure used by the add dataform template "Group Sales Contract Add Data Form".

Parameters

Parameter Parameter Type Mode Description
@ID uniqueidentifier INOUT The output parameter indicating the ID of the record added.
@RESERVATIONID uniqueidentifier IN Input parameter indicating the context ID for the record being added.
@CHANGEAGENTID uniqueidentifier IN Input parameter indicating the ID of the change agent invoking the procedure.
@NAME nvarchar(50) IN Name
@RESERVATIONATTACHMENTTYPECODEID uniqueidentifier IN Attachment type
@FILENAME nvarchar(255) IN
@FILE varbinary IN File
@MARKCONTRACTSENT bit IN Mark contract as sent
@SAVEDEPOSITINFO bit IN
@DEPOSITDUEDATE date IN Deposit due date
@DEPOSITAMOUNT money IN Amount due

Definition

Copy


                    CREATE procedure dbo.USP_DATAFORMTEMPLATE_ADD_RESERVATIONCONTRACT
                    (
                        @ID uniqueidentifier = null output,
                        @RESERVATIONID uniqueidentifier,
                        @CHANGEAGENTID uniqueidentifier = null,
                        @NAME nvarchar(50) = null,
                        @RESERVATIONATTACHMENTTYPECODEID uniqueidentifier = null,
                        @FILENAME nvarchar(255) = null,
                        @FILE varbinary(max) = null,
                        @MARKCONTRACTSENT bit = 1,
                        @SAVEDEPOSITINFO bit = 0,
                        @DEPOSITDUEDATE date = null,
                        @DEPOSITAMOUNT money = 0
                    )
                    as
                        set nocount on;

                        if @ID is null
                            set @ID = newid();

                        if @CHANGEAGENTID is null  
                            exec dbo.USP_CHANGEAGENT_GETORCREATECHANGEAGENT @CHANGEAGENTID output;

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

                        declare @STATUSCODE tinyint;

                        select @STATUSCODE = SALESORDER.STATUSCODE
                        from dbo.SALESORDER
                        inner join dbo.RESERVATION on SALESORDER.ID = RESERVATION.ID
                        where RESERVATION.ID = @RESERVATIONID;

                        begin try
                            if @STATUSCODE in (1, 5)
                                raiserror('BBERR_INVALIDSTATUS', 13, 1);

                            if @SAVEDEPOSITINFO = 1
                            begin
                                if (select DEPOSITREQUIRED from dbo.RESERVATION where ID = @RESERVATIONID) = 0
                                    raiserror('BBERR_DEPOSITNOTREQUIRED', 13, 1);

                                if @DEPOSITDUEDATE is null
                                    raiserror('BBERR_DEPOSITDUEDATEREQUIRED', 13, 1);

                                if @DEPOSITAMOUNT <= 0
                                    raiserror('BBERR_INVALIDDEPOSITAMOUNT', 13, 1);

                                update dbo.RESERVATION set
                                    DEPOSITAMOUNT = @DEPOSITAMOUNT,
                                    DEPOSITDUEDATE = @DEPOSITDUEDATE,
                                    CHANGEDBYID = @CHANGEAGENTID,
                                    DATECHANGED = @CURRENTDATE
                                where
                                    ID = @RESERVATIONID;
                            end

                            update dbo.RESERVATIONATTACHMENT set
                                ISCONTRACT = 0,
                                CHANGEDBYID = @CHANGEAGENTID,
                                DATECHANGED = @CURRENTDATE
                            where
                                RESERVATIONID = @RESERVATIONID
                                and ISCONTRACT = 1;

                            insert into dbo.RESERVATIONATTACHMENT
                            (
                                [ID],
                                [DATEENTERED],
                                [TITLE],
                                [RESERVATIONATTACHMENTTYPECODEID],
                                [FILENAME],
                                [FILE],
                                [RESERVATIONID],
                                [ISCONTRACT],
                                [ADDEDBYID],
                                [CHANGEDBYID],
                                [DATEADDED],
                                [DATECHANGED]
                            )
                            values
                            (
                                @ID,
                                @CURRENTDATE,
                                @NAME,
                                @RESERVATIONATTACHMENTTYPECODEID,
                                @FILENAME,
                                @FILE,
                                @RESERVATIONID,
                                1,
                                @CHANGEAGENTID,
                                @CHANGEAGENTID,
                                @CURRENTDATE,
                                @CURRENTDATE
                            )

                            if @MARKCONTRACTSENT = 1
                            begin
                                update dbo.RESERVATION set
                                    CONTRACTSENT = 1,
                                    CHANGEDBYID = @CHANGEAGENTID,
                                    DATECHANGED = @CURRENTDATE
                                where
                                    ID = @RESERVATIONID;

                                insert into dbo.[RESERVATIONSTATUSHISTORY]
                                (
                                    [ID],
                                    [RESERVATIONID],
                                    [STATUSCODE],
                                    [STATUSDATE],                                
                                    [ADDEDBYID],
                                    [CHANGEDBYID],
                                    [DATEADDED],
                                    [DATECHANGED]
                                )
                                values
                                (
                                    newid(),
                                    @RESERVATIONID,
                                    6,
                                    @CURRENTDATE,
                                    @CHANGEAGENTID,
                                    @CHANGEAGENTID,
                                    @CURRENTDATE,
                                    @CURRENTDATE
                                );

                                exec dbo.USP_RESERVATION_UPDATESTATUSANDHISTORY @RESERVATIONID, @CHANGEAGENTID
                            end
                        end try

                        begin catch
                            exec dbo.USP_RAISE_ERROR;
                            return 1;
                        end catch

                        return 0;