USP_RESERVATION_GETCONTACTINFO

Provides a way for a reservation to determine contact info based on a constituent ID and contact relationship ID passed in.

Parameters

Parameter Parameter Type Mode Description
@CONSTITUENTID uniqueidentifier IN
@CONTACTRELATIONSHIPID uniqueidentifier IN
@CONTACTCONSTITUENTID uniqueidentifier INOUT
@CONTACTADDRESSID uniqueidentifier INOUT
@CONTACTEMAILADDRESSID uniqueidentifier INOUT
@CONTACTPHONEID uniqueidentifier INOUT

Definition

Copy


            CREATE procedure dbo.USP_RESERVATION_GETCONTACTINFO
            (
                @CONSTITUENTID uniqueidentifier,
                @CONTACTRELATIONSHIPID uniqueidentifier,
                @CONTACTCONSTITUENTID uniqueidentifier = null output,
                @CONTACTADDRESSID uniqueidentifier = null output,
                @CONTACTEMAILADDRESSID uniqueidentifier = null output,
                @CONTACTPHONEID uniqueidentifier = null output
            )
            as
                declare @ISGROUP bit;
                declare @ISORGANIZATION bit;

                select
                    @ISGROUP = ISGROUP,
                    @ISORGANIZATION = ISORGANIZATION
                from
                    dbo.CONSTITUENT
                where
                    ID = @CONSTITUENTID;

                -- Validation for the contact relationship and set contact

                if @ISORGANIZATION is null  -- @CONSTITUENTID does not exist in the CONSTITUENT table

                    raiserror('ERR_CONSTITUENTIDNOTVALID', 13, 1);

                if @ISORGANIZATION = 0
                    begin
                        if @CONTACTRELATIONSHIPID is not null
                            raiserror('ERR_CONTACTNOTALLOWED', 13, 1);

                        if @ISGROUP = 1
                            select @CONTACTCONSTITUENTID = MEMBERID from dbo.GROUPMEMBER
                            where GROUPID = @CONSTITUENTID and ISPRIMARY = 1;
                        else
                            set @CONTACTCONSTITUENTID = @CONSTITUENTID;

                    end

                else if @CONTACTRELATIONSHIPID is null
                    raiserror('ERR_CONTACTREQUIRED', 13, 1);

                else if dbo.UFN_RELATIONSHIP_ISCURRENTCONTACT(@CONTACTRELATIONSHIPID, @CONSTITUENTID) = 0
                    raiserror('ERR_CONTACTINVALID', 13, 1);

                else
                    select 
                        @CONTACTCONSTITUENTID = RECIPROCALCONSTITUENTID 
                    from dbo.RELATIONSHIP
                    where ID = @CONTACTRELATIONSHIPID;

                if @CONTACTRELATIONSHIPID is not null
                    begin
                        -- No longer storing the contact info ids on the sales order

                        --    Now storing the contact relationship id

                        set  @CONTACTADDRESSID = null;                    
                        set  @CONTACTEMAILADDRESSID = null;                    
                        set  @CONTACTPHONEID = null;
                    end

                else
                    begin
                        select @CONTACTADDRESSID = ADDRESS.ID from dbo.ADDRESS
                        where ADDRESS.CONSTITUENTID = @CONTACTCONSTITUENTID and ADDRESS.ISPRIMARY = 1;

                        select @CONTACTEMAILADDRESSID = EMAILADDRESS.ID from dbo.EMAILADDRESS
                        where EMAILADDRESS.CONSTITUENTID = @CONTACTCONSTITUENTID and EMAILADDRESS.ISPRIMARY = 1;

                        select @CONTACTPHONEID = PHONE.ID from dbo.PHONE
                        where PHONE.CONSTITUENTID = @CONTACTCONSTITUENTID and PHONE.ISPRIMARY = 1;
                    end

                return 0;