USP_DATAFORMTEMPLATE_EDIT_RESERVATIONCONTACT

The save procedure used by the edit dataform template "Reservation Contact 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.
@CONTACTRELATIONSHIPID uniqueidentifier IN Contact

Definition

Copy


                    CREATE procedure dbo.USP_DATAFORMTEMPLATE_EDIT_RESERVATIONCONTACT
                    (
                        @ID uniqueidentifier,
                        @CHANGEAGENTID uniqueidentifier = null,
                        @CONTACTRELATIONSHIPID uniqueidentifier
                    )
                    as
                        set nocount on;

                        declare @CONSTITUENTID uniqueidentifier;
                        declare @PREVIOUSCONTACTID uniqueidentifier;
                        declare @CURRENTDATE datetime;
                        declare @NAME nvarchar(100);
                        declare @STATUSCODE tinyint;

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

                        select @CONSTITUENTID = SALESORDER.CONSTITUENTID,
                            @NAME = RESERVATION.NAME,
                            @PREVIOUSCONTACTID = SALESORDER.RECIPIENTID,
                            @STATUSCODE = STATUSCODE
                        from dbo.SALESORDER 
                        inner join dbo.RESERVATION on SALESORDER.ID = RESERVATION.ID
                        where SALESORDER.ID = @ID;

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

                        set @CURRENTDATE = getdate();

                        begin try
                            if dbo.UFN_CONSTITUENT_ISORGANIZATION(@CONSTITUENTID) = 0
                                raiserror('ERR_NOTORGANIZATION', 13, 1);

                            declare @CONTACTID uniqueidentifier;
                            declare @ADDRESSID uniqueidentifier;
                            declare @EMAILADDRESSID uniqueidentifier;
                            declare @PHONEID uniqueidentifier;

                            exec dbo.USP_RESERVATION_GETCONTACTINFO @CONSTITUENTID, @CONTACTRELATIONSHIPID,
                                @CONTACTID output, @ADDRESSID output, @EMAILADDRESSID output, @PHONEID output;

                            if @CONTACTID <> @PREVIOUSCONTACTID
                                exec dbo.USP_CONSTITUENT_CHECKINACTIVEANDDECEASED @CONTACTID, 'BBERR_CONTACTISINACTIVE', 'BBERR_CONTACTISDECEASED';

                            declare @KEYNAME nvarchar(100);
                            declare @CONTACTKEYNAME nvarchar(100);

                            select @KEYNAME = KEYNAME
                            from dbo.CONSTITUENT
                            where CONSTITUENT.ID = @CONSTITUENTID;

                            select @CONTACTKEYNAME = KEYNAME
                            from dbo.CONSTITUENT
                            where @PREVIOUSCONTACTID = CONSTITUENT.ID;

                            declare @DEFAULTNAME nvarchar(100);
                            set @DEFAULTNAME = @KEYNAME + ' - ' + @CONTACTKEYNAME;

                            if @NAME = @DEFAULTNAME
                            begin
                                declare @NEWNAME nvarchar(100);

                                select @NEWNAME = @KEYNAME + ' - ' + KEYNAME
                                from dbo.CONSTITUENT
                                where ID = @CONTACTID;

                                update 
                                    dbo.RESERVATION
                                set
                                    NAME = @NEWNAME,
                                    CHANGEDBYID = @CHANGEAGENTID,
                                    DATECHANGED = @CURRENTDATE
                                where
                                    ID = @ID;
                            end


                            update
                                dbo.SALESORDER
                            set
                                RECIPIENTID = @CONTACTID,
                                ADDRESSID = @ADDRESSID,
                                EMAILADDRESSID = @EMAILADDRESSID,
                                PHONEID = @PHONEID,
                                CHANGEDBYID = @CHANGEAGENTID,
                                DATECHANGED = @CURRENTDATE
                            where
                                ID = @ID;
                        end try

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

                        return 0;