USP_DATAFORMTEMPLATE_EDIT_RESERVATIONCONTRACT

The save procedure used by the edit dataform template "Group Sales Contract Edit Data Form".

Parameters

Parameter Parameter Type Mode Description
@ID uniqueidentifier IN The input ID parameter indicating the ID of the record being edited.
@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
@FILE varbinary IN File
@FILENAME nvarchar(255) IN File name
@FILECHANGED bit IN File changed
@MARKCONTRACTSENT bit IN Mark contract as sent

Definition

Copy


                CREATE procedure dbo.USP_DATAFORMTEMPLATE_EDIT_RESERVATIONCONTRACT (
                    @ID uniqueidentifier,
                    @CHANGEAGENTID uniqueidentifier = null,
                    @NAME nvarchar(50),
                    @RESERVATIONATTACHMENTTYPECODEID uniqueidentifier,
                    @FILE varbinary(max),
                    @FILENAME nvarchar(255),
                    @FILECHANGED bit,
                    @MARKCONTRACTSENT bit
                )
                as

                    set nocount on;

                    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 = @ID;

                    begin try

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

                        declare @PREVIOUSATTACHMENTID uniqueidentifier = (select ID from dbo.RESERVATIONATTACHMENT where RESERVATIONID = @ID and ISCONTRACT = 1)

                        update dbo.RESERVATIONATTACHMENT set
                            ISCONTRACT = 0,
                            CHANGEDBYID = @CHANGEAGENTID,
                            DATECHANGED = @CURRENTDATE
                        where ID = @PREVIOUSATTACHMENTID

                        insert into dbo.RESERVATIONATTACHMENT
                        (
                            [ID],
                            [DATEENTERED],
                            [TITLE],
                            [RESERVATIONATTACHMENTTYPECODEID],
                            [FILENAME],
                            [FILE],
                            [RESERVATIONID],
                            [ISCONTRACT],
                            [ADDEDBYID],
                            [CHANGEDBYID],
                            [DATEADDED],
                            [DATECHANGED]
                        )
                        values
                        (
                            newid(),
                            @CURRENTDATE,
                            @NAME,
                            @RESERVATIONATTACHMENTTYPECODEID,
                            @FILENAME,
                            case
                                when @FILECHANGED = 1 then @FILE
                                else (select [FILE] from dbo.RESERVATIONATTACHMENT where ID = @PREVIOUSATTACHMENTID)
                            end,
                            @ID,
                            1,
                            @CHANGEAGENTID,
                            @CHANGEAGENTID,
                            @CURRENTDATE,
                            @CURRENTDATE
                        )

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

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

                            exec dbo.USP_RESERVATION_UPDATESTATUSANDHISTORY @ID, @CHANGEAGENTID
                        end

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

                return 0;