USP_DATAFORMTEMPLATE_VIEW_RESEARCHGROUPWEALTHSUMMARY

The load procedure used by the view dataform template "Research Group Wealth Summary View Form"

Parameters

Parameter Parameter Type Mode Description
@ID uniqueidentifier IN The input ID parameter used to load the fields defined on the form.
@DATALOADED bit INOUT Output parameter indicating whether or not data was actually loaded.
@MATCHEDPROSPECTS int INOUT Matched prospects
@PROCESSEDON datetime INOUT Processed on
@MATCHRATE decimal(5, 2) INOUT Match rate

Definition

Copy


                CREATE procedure dbo.USP_DATAFORMTEMPLATE_VIEW_RESEARCHGROUPWEALTHSUMMARY (
                    @ID uniqueidentifier,
                    @DATALOADED bit = 0 output,
                    @MATCHEDPROSPECTS int = null output,
                    @PROCESSEDON datetime = null output,
                    @MATCHRATE decimal(5,2) = null output
                ) with execute as owner as
                    set nocount on;

                    declare @TOTALPROSPECTS int;
                    set @TOTALPROSPECTS = 0;
                    set @MATCHEDPROSPECTS = 0;

                    select
                        @DATALOADED = 1
                    from
                        dbo.RESEARCHGROUP RG
                        left join dbo.APPUSER on RG.OWNERID = APPUSER.ID
                    where
                        RG.ID = @ID;

                    select top(1)
                        @PROCESSEDON = WPSEARCHHISTORY.DATEADDED
                    from
                        dbo.WPSEARCHHISTORY
                    where
                        WPSEARCHHISTORY.RESEARCHGROUPID = @ID
                    order by
                        WPSEARCHHISTORY.DATEADDED desc;

                    select
                        @TOTALPROSPECTS = coalesce(count(MATCHED.CONSTITUENTID),0),
                        @MATCHEDPROSPECTS  = coalesce(sum(MATCHED.ISMATCHED),0)
                    from (
                        select
                            RGM.CONSTITUENTID,
                            case when
                            (select top 1 WPAFFLUENCEINDICATOR.ID from dbo.WPAFFLUENCEINDICATOR where WPAFFLUENCEINDICATOR.WEALTHID = RGM.CONSTITUENTID) is not null or
                            (select top 1 WPBIOGRAPHICAL.ID from dbo.WPBIOGRAPHICAL where WPBIOGRAPHICAL.WEALTHID = RGM.CONSTITUENTID) is not null or
                            (select top 1 WPBUSINESSOWNERSHIP.ID from dbo.WPBUSINESSOWNERSHIP where WPBUSINESSOWNERSHIP.WEALTHID = RGM.CONSTITUENTID) is not null or
                            (select top 1 WPINCOMECOMPENSATION.ID from dbo.WPINCOMECOMPENSATION where WPINCOMECOMPENSATION.WEALTHID = RGM.CONSTITUENTID) is not null or
                            (select top 1 WPNONPROFITAFFILIATION.ID from dbo.WPNONPROFITAFFILIATION where WPNONPROFITAFFILIATION.WEALTHID = RGM.CONSTITUENTID) is not null or
                            (select top 1 WPOTHERASSET.ID from dbo.WPOTHERASSET where WPOTHERASSET.WEALTHID = RGM.CONSTITUENTID) is not null or
                            (select top 1 WPPHILANTHROPICGIFT.ID from dbo.WPPHILANTHROPICGIFT where WPPHILANTHROPICGIFT.WEALTHID = RGM.CONSTITUENTID) is not null or
                            (select top 1 WPPOLITICALDONATION.ID from dbo.WPPOLITICALDONATION where WPPOLITICALDONATION.WEALTHID = RGM.CONSTITUENTID) is not null or
                            (select top 1 WPPRIVATEFOUNDATION.ID from dbo.WPPRIVATEFOUNDATION where WPPRIVATEFOUNDATION.WEALTHID = RGM.CONSTITUENTID) is not null or
                            (select top 1 WPREALESTATE.ID from dbo.WPREALESTATE where WPREALESTATE.WEALTHID = RGM.CONSTITUENTID) is not null or
                            (select top 1 WPSECURITIES.ID from dbo.WPSECURITIES where WPSECURITIES.WEALTHID = RGM.CONSTITUENTID) is not null
                            then 1 else 0 end ISMATCHED,
                            WEALTH.WEALTHPOINTDATE
                        from
                            dbo.RESEARCHGROUPMEMBER RGM
                        left join
                            dbo.WEALTH on WEALTH.ID = RGM.ID
                        where
                            RGM.RESEARCHGROUPID = @ID
                        group by
                            RGM.CONSTITUENTID, WEALTH.WEALTHPOINTDATE) as MATCHED;

                    set    @MATCHRATE = case when @TOTALPROSPECTS > 0 then convert(decimal,@MATCHEDPROSPECTS) / convert(decimal,@TOTALPROSPECTS) else 0.0 end;

                    if @MATCHRATE > 0.0
                        set    @MATCHRATE = @MATCHRATE * convert(decimal,100)