USP_PROSPECT_ADDCONSTITUENCY

Executes the "Prospect Constituency: Add" record operation.

Parameters

Parameter Parameter Type Mode Description
@ID uniqueidentifier IN Input parameter indicating the ID of the record being updated.
@CHANGEAGENTID uniqueidentifier IN Input parameter indicating the ID of the change agent invoking the update.

Definition

Copy


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

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

                        declare @CURRENTDATEEARLIESTTIME datetime;
                        set @CURRENTDATEEARLIESTTIME = dbo.UFN_DATE_GETEARLIESTTIME(@CURRENTDATE);

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

                        declare @contextCache varbinary(128);
                        /* cache current context information */
                        set @contextCache = CONTEXT_INFO();
                        /* set CONTEXT_INFO to @CHANGEAGENTID */
                        if not @CHANGEAGENTID is null
                            set CONTEXT_INFO @CHANGEAGENTID

                        delete
                            dbo.PROSPECTDATERANGE
                        where
                            CONSTITUENTID = @ID and
                            (DATEFROM >= @CURRENTDATEEARLIESTTIME or DATETO is null);

                        /* reset CONTEXT_INFO to previous value */
                        if not @contextCache is null
                            set CONTEXT_INFO @contextCache

                        insert into dbo.PROSPECTDATERANGE
                        (
                            CONSTITUENTID,
                            DATEFROM,
                            DATETO,
                            ADDEDBYID,
                            CHANGEDBYID,
                            DATEADDED,
                            DATECHANGED
                        )
                        values
                        (
                            @ID,
                            @CURRENTDATEEARLIESTTIME,
                            null,
                            @CHANGEAGENTID,
                            @CHANGEAGENTID,
                            @CURRENTDATE,
                            @CURRENTDATE
                        );

                        if not exists (select 1 from dbo.PROSPECT where ID=@ID)
                            insert into dbo.PROSPECT
                            (
                                ID,
                                ADDEDBYID,
                                CHANGEDBYID,
                                DATEADDED,
                                DATECHANGED
                            )
                            values
                            (
                                @ID,
                                @CHANGEAGENTID,
                                @CHANGEAGENTID,
                                @CURRENTDATE,
                                @CURRENTDATE
                            );

                        return 0;
                    end;