UFN_CONSTITUENCIES_USERDEFINED

Gets a list of user defined constituencies for a constituent as of the given date.

Return

Return Type
nvarchar(4000)

Parameters

Parameter Parameter Type Mode Description
@CONSTITUENTID uniqueidentifier IN

Definition

Copy


            CREATE function dbo.UFN_CONSTITUENCIES_USERDEFINED(@CONSTITUENTID uniqueidentifier)
            returns nvarchar(4000)
            with execute as caller
            as begin
                declare @CURRENTDATE date;
                set @CURRENTDATE = getdate();

                declare @CONSTITUENCIES nvarchar(4000);
                set @CONSTITUENCIES = '';
                declare @CC nvarchar(100);
                declare @CS int;

                declare CONSTITUENCYCURSOR cursor local fast_forward for
                    select distinct
                        CONSTITUENCYCODE.DESCRIPTION,
                        CONSTITUENCYCODE.SEQUENCE
                    from
                        dbo.CONSTITUENCY
                        inner join dbo.CONSTITUENCYCODE
                            on CONSTITUENCY.CONSTITUENCYCODEID = CONSTITUENCYCODE.ID
                        inner join dbo.CONSTITUENCYDEFINITION
                            on CONSTITUENCYDEFINITION.ID = CONSTITUENCYCODE.ID
                    where
                        (CONSTITUENCY.CONSTITUENTID = @CONSTITUENTID) and
                        (CONSTITUENCY.DATEFROM <= @CURRENTDATE or CONSTITUENCY.DATEFROM is null) and
                        (CONSTITUENCY.DATETO >= @CURRENTDATE or CONSTITUENCY.DATETO is null) and
                        CONSTITUENCYDEFINITION.ISACTIVE = 1
                    order by
                        CONSTITUENCYCODE.SEQUENCE;

                open CONSTITUENCYCURSOR;
                fetch next from CONSTITUENCYCURSOR into @CC, @CS;

                while @@fetch_status = 0 begin
                    if len(@CONSTITUENCIES) > 0
                        set @CONSTITUENCIES = @CONSTITUENCIES + ', ';
                    set @CONSTITUENCIES = @CONSTITUENCIES + @CC;
                    fetch next from CONSTITUENCYCURSOR into @CC, @CS;
                end

                close CONSTITUENCYCURSOR;
                deallocate CONSTITUENCYCURSOR;

                return @CONSTITUENCIES;
            end