USP_DATAFORMTEMPLATE_VIEW_FUNDRAISERSUMMARY

Parameters

Parameter Parameter Type Mode Description
@ID uniqueidentifier IN
@CURRENTAPPUSERID uniqueidentifier IN
@DATALOADED bit INOUT
@OPPORTUNITYCOUNT int INOUT
@OPPORTUNITYAMOUNT money INOUT
@POSITIONTITLE nvarchar(100) INOUT
@SITE nvarchar(100) INOUT
@STARTDATE datetime INOUT
@REQUESTEDAMOUNT money INOUT
@CURRENCYID uniqueidentifier INOUT
@QUALIFIEDOPPORTUNITYCOUNT int INOUT
@QUALIFIEDOPPORTUNITYAMOUNT money INOUT
@UNQUALIFIEDOPPORTUNITYCOUNT int INOUT
@UNQUALIFIEDOPPORTUNITYAMOUNT money INOUT
@RESPONSEPENDINGOPPORTUNITYCOUNT int INOUT
@RESPONSEPENDINGOPPORTUNITYAMOUNT money INOUT

Definition

Copy


CREATE procedure dbo.USP_DATAFORMTEMPLATE_VIEW_FUNDRAISERSUMMARY
(
    @ID uniqueidentifier,     
    @CURRENTAPPUSERID uniqueidentifier,
    @DATALOADED bit = 0 output,  
    @OPPORTUNITYCOUNT int = null output,
    @OPPORTUNITYAMOUNT money = null output,
    @POSITIONTITLE nvarchar(100) = null output,
    @SITE nvarchar(100) = null output,
    @STARTDATE datetime = null output,
    @REQUESTEDAMOUNT money = null output,
    @CURRENCYID uniqueidentifier = null output,
    @QUALIFIEDOPPORTUNITYCOUNT int = null output,
    @QUALIFIEDOPPORTUNITYAMOUNT money = null output,
    @UNQUALIFIEDOPPORTUNITYCOUNT int = null output,  
    @UNQUALIFIEDOPPORTUNITYAMOUNT money = null output,
    @RESPONSEPENDINGOPPORTUNITYCOUNT int = null output,  
    @RESPONSEPENDINGOPPORTUNITYAMOUNT money = null output
) as begin

    set nocount on;

    declare @CALCULATEPLANDETAIL bit;
    set @CALCULATEPLANDETAIL = dbo.UFN_INSTALLEDPRODUCTS_PRODUCTIS('3117d2c8-7f46-42f2-abeb-b654f2f63046') | dbo.UFN_INSTALLEDPRODUCTS_PRODUCTIS('0a07aa22-ed88-42b7-8c55-d80df4f4cea2') | dbo.UFN_INSTALLEDPRODUCTS_PRODUCTIS('ab25cd89-7288-4605-b0ea-48961960ec06');

    set @DATALOADED = 0;

    select
        @CURRENCYID = dbo.UFN_APPUSER_GETBASECURRENCY(APPUSER.ID)
    from
        dbo.APPUSER
    where
        APPUSER.CONSTITUENTID = @ID;

    if @CURRENCYID is null
        set @CURRENCYID = dbo.UFN_CURRENCY_GETORGANIZATIONCURRENCY();  

    select
        @DATALOADED = 1,
        @OPPORTUNITYCOUNT = (
            case @CALCULATEPLANDETAIL when 1 then (
                select
                    count(*)
                from
                    dbo.OPPORTUNITY O 
                where
                    O.STATUSCODE in (1,2 )
                    and exists (select 1 from dbo.V_OPPORTUNITYSOLICITOR OS where OS.FUNDRAISERID = CONSTITUENT.ID AND OS.OPPORTUNITYID = O.ID)
                    and dbo.UFN_PROSPECTPLAN_USERHASSITEACCESS(@CURRENTAPPUSERID, O.PROSPECTPLANID) = 1
                )
            else
                0
            end
        ),
        @OPPORTUNITYAMOUNT = (
            case @CALCULATEPLANDETAIL when 1 then (
                select
                    coalesce(sum(dbo.UFN_OPPORTUNITY_AMOUNTINCURRENCY(O.ID, @CURRENCYID)),0)
                from
                     dbo.OPPORTUNITY O 
                where
                    O.STATUSCODE in (1, 2)
                    and exists (select 1 from dbo.V_OPPORTUNITYSOLICITOR OS where OS.FUNDRAISERID = CONSTITUENT.ID AND OS.OPPORTUNITYID = O.ID)
                    and dbo.UFN_PROSPECTPLAN_USERHASSITEACCESS(@CURRENTAPPUSERID, O.PROSPECTPLANID) = 1
            )
            else
                0
            end
        ),
        @REQUESTEDAMOUNT = (
            case @CALCULATEPLANDETAIL when 1 then (
                select
                    coalesce(sum(coalesce(dbo.UFN_FUNDINGREQUEST_GETAMOUNTREQUESTEDINCURRENCY(FUNDINGREQUEST.ID, @CURRENCYID),0)),0)
                from dbo.FUNDINGREQUEST
                where PRIMARYMANAGERID = CONSTITUENT.ID
                    or SECONDARYMANAGERID = CONSTITUENT.ID
                    or CONSTITUENT.ID in (
                        select SPONSORID
                        from FUNDINGREQUESTSPONSOR
                        where FUNDINGREQUESTID = FUNDINGREQUEST.ID
                    )
                )
            else
                0
            end
        ),
        @QUALIFIEDOPPORTUNITYCOUNT = (
            case @CALCULATEPLANDETAIL when 1 then (
                select
                    count(*)
                from
                    dbo.OPPORTUNITY O 
                where
                    O.STATUSCODE = 1 
                    and exists (select 1 from dbo.V_OPPORTUNITYSOLICITOR OS where OS.FUNDRAISERID = CONSTITUENT.ID AND OS.OPPORTUNITYID = O.ID)
                    and dbo.UFN_PROSPECTPLAN_USERHASSITEACCESS(@CURRENTAPPUSERID, O.PROSPECTPLANID) = 1
                )
            else
                0
            end
        ),
        @QUALIFIEDOPPORTUNITYAMOUNT = (
            case @CALCULATEPLANDETAIL when 1 then (
                select
                    coalesce(sum(dbo.UFN_OPPORTUNITY_AMOUNTINCURRENCY(O.ID, @CURRENCYID)),0)
                from
                     dbo.OPPORTUNITY O 
                where
                    O.STATUSCODE = 1
                    and exists (select 1 from dbo.V_OPPORTUNITYSOLICITOR OS where OS.FUNDRAISERID = CONSTITUENT.ID AND OS.OPPORTUNITYID = O.ID)
                    and dbo.UFN_PROSPECTPLAN_USERHASSITEACCESS(@CURRENTAPPUSERID, O.PROSPECTPLANID) = 1
            )
            else
                0
            end
            ),
        @UNQUALIFIEDOPPORTUNITYCOUNT = (
            case @CALCULATEPLANDETAIL when 1 then (
                select
                    count(*)
                from
                    dbo.OPPORTUNITY O 
                where
                    O.STATUSCODE = 0 
                    and exists (select 1 from dbo.V_OPPORTUNITYSOLICITOR OS where OS.FUNDRAISERID = CONSTITUENT.ID AND OS.OPPORTUNITYID = O.ID)
                    and dbo.UFN_PROSPECTPLAN_USERHASSITEACCESS(@CURRENTAPPUSERID, O.PROSPECTPLANID) = 1
                )
            else
                0
            end
        ),
        @UNQUALIFIEDOPPORTUNITYAMOUNT = (
            case @CALCULATEPLANDETAIL when 1 then (
                select
                    coalesce(sum(dbo.UFN_OPPORTUNITY_AMOUNTINCURRENCY(O.ID, @CURRENCYID)),0)
                from
                     dbo.OPPORTUNITY O 
                where
                    O.STATUSCODE = 0
                    and exists (select 1 from dbo.V_OPPORTUNITYSOLICITOR OS where OS.FUNDRAISERID = CONSTITUENT.ID AND OS.OPPORTUNITYID = O.ID)
                    and dbo.UFN_PROSPECTPLAN_USERHASSITEACCESS(@CURRENTAPPUSERID, O.PROSPECTPLANID) = 1
            )
            else
                0
            end
            ),
        @RESPONSEPENDINGOPPORTUNITYCOUNT = (
            case @CALCULATEPLANDETAIL when 1 then (
                select
                    count(*)
                from
                    dbo.OPPORTUNITY O 
                where
                    O.STATUSCODE = 2 
                    and exists (select 1 from dbo.V_OPPORTUNITYSOLICITOR OS where OS.FUNDRAISERID = CONSTITUENT.ID AND OS.OPPORTUNITYID = O.ID)
                    and dbo.UFN_PROSPECTPLAN_USERHASSITEACCESS(@CURRENTAPPUSERID, O.PROSPECTPLANID) = 1
                )
            else
                0
            end
        ),
        @RESPONSEPENDINGOPPORTUNITYAMOUNT = (
            case @CALCULATEPLANDETAIL when 1 then (
                select
                    coalesce(sum(dbo.UFN_OPPORTUNITY_AMOUNTINCURRENCY(O.ID, @CURRENCYID)),0)
                from
                     dbo.OPPORTUNITY O 
                where
                    O.STATUSCODE = 2
                    and exists (select 1 from dbo.V_OPPORTUNITYSOLICITOR OS where OS.FUNDRAISERID = CONSTITUENT.ID AND OS.OPPORTUNITYID = O.ID)
                    and dbo.UFN_PROSPECTPLAN_USERHASSITEACCESS(@CURRENTAPPUSERID, O.PROSPECTPLANID) = 1
            )
            else
                0
            end
        )
    from dbo.CONSTITUENT
    where
        CONSTITUENT.ID = @ID

    declare @TODAY date = getdate();

    select
        @STARTDATE = ORGANIZATIONPOSITIONHOLDER.DATEFROM,
        @POSITIONTITLE = ORGANIZATIONPOSITION.NAME,
        @SITE = SITE.NAME
    from
        dbo.ORGANIZATIONPOSITIONHOLDER
    inner join
        dbo.ORGANIZATIONPOSITION on ORGANIZATIONPOSITION.ID = ORGANIZATIONPOSITIONHOLDER.POSITIONID
    left join
        dbo.SITE on SITE.ID = ORGANIZATIONPOSITION.SITEID
    where
        ORGANIZATIONPOSITIONHOLDER.CONSTITUENTID = @ID and
        (@TODAY between ORGANIZATIONPOSITIONHOLDER.DATEFROM and coalesce(ORGANIZATIONPOSITIONHOLDER.DATETO, @TODAY));  

    return 0
    end