UFN_PDACCOUNT_GETCONSTITUENCY_3

Return

Return Type
uniqueidentifier

Parameters

Parameter Parameter Type Mode Description
@REVENUEID uniqueidentifier IN
@INFORMATIONSOURCECODE tinyint IN
@REVENUEINFORMATION xml IN

Definition

Copy


            CREATE function [dbo].[UFN_PDACCOUNT_GETCONSTITUENCY_3]
            (
                @REVENUEID uniqueidentifier, 
                @INFORMATIONSOURCECODE tinyint, -- 0 revenue tables, 1 revenue batch tables

                @REVENUEINFORMATION xml
            )
            returns uniqueidentifier
            As 
            begin
                declare @CONSTITID as uniqueidentifier;
                declare @RESULT as uniqueidentifier;
                declare @DATE UDT_FUZZYDATE = convert(nchar(8), GETDATE(), 112);

                if @INFORMATIONSOURCECODE = 0
                    select @CONSTITID = FINANCIALTRANSACTION.CONSTITUENTID
                    from dbo.FINANCIALTRANSACTION
                    where ID = @REVENUEID
                else
                    select top 1 @CONSTITID = REVENUEINFORMATION.CONSTITUENTID 
                    from dbo.UFN_REVENUEINFORMATION_FROMITEMLISTXML(@REVENUEINFORMATION) as REVENUEINFORMATION;

                select top 1 @RESULT = V1.ID
                from (select distinct isnull(t2.ID, t3.ID) as ID, 
                                        t1.DESCRIPTION, t1.DATEFROM, t1.DATETO
                        from dbo.UFN_CONSTITUENT_GETALLCONSTITUENCIES(@CONSTITID) t1 
                        left join dbo.CONSTITUENCYCODE t2 
                            on t1.DESCRIPTION = t2.DESCRIPTION and t1.CONSTITUENCYTYPECODE = 99
                        left join dbo.CONSTITUENCYSYSTEMNAME t3 
                            on t1.DESCRIPTION = T3.DESCRIPTION and t1.CONSTITUENCYTYPECODE != 99) V1
                left join dbo.PDCONSTITUENCYORDER t4 
                    on V1.ID = t4.CONSTITUENCYCODEID
                where
                    (coalesce(V1.DATEFROM,'00000000') = '00000000' or V1.DATEFROM <= @DATE)
                    and (coalesce(V1.DATETO,'00000000') = '00000000' or V1.DATETO >= @DATE)
                order by isnull(t4.SEQUENCE,99999), V1.DESCRIPTION;

                return @RESULT
            end