UPS_REPORT_SOLICITORREVENUE

Returns the data for the Solicitor Revenue report.

Parameters

Parameter Parameter Type Mode Description
@STARTDATE datetime IN
@ENDDATE datetime IN
@BREAKDOWN bit IN
@BUSINESSUNITCODEID uniqueidentifier IN
@APPEALCATEGORYCODEID uniqueidentifier IN
@APPEALREPORT1CODEID uniqueidentifier IN
@ORGPOSITIONSSELECTIONID uniqueidentifier IN
@CURRENTAPPUSERID uniqueidentifier IN
@REPORTUSERID nvarchar(128) IN
@ALTREPORTUSERID nvarchar(128) IN

Definition

Copy


            CREATE procedure dbo.UPS_REPORT_SOLICITORREVENUE(
                @STARTDATE datetime,
                @ENDDATE datetime,
                @BREAKDOWN bit = null,
                @BUSINESSUNITCODEID uniqueidentifier = null,    
                @APPEALCATEGORYCODEID uniqueidentifier = null,    
                @APPEALREPORT1CODEID uniqueidentifier = null,
                @ORGPOSITIONSSELECTIONID uniqueidentifier = null,
                @CURRENTAPPUSERID uniqueidentifier = null,
                @REPORTUSERID nvarchar(128) = null,
                @ALTREPORTUSERID nvarchar(128) = null
            )
            with execute as owner
            as
                set nocount on;

                if @CURRENTAPPUSERID is null
                    set @CURRENTAPPUSERID = dbo.UFN_APPUSER_GETREPORTAPPUSERID(@REPORTUSERID, @ALTREPORTUSERID);

                declare @ISADMIN bit;
                declare @APPUSER_IN_NONRACROLE bit;
                declare @APPUSER_IN_NOSECGROUPROLE bit;

                set @ISADMIN = dbo.UFN_APPUSER_ISSYSADMIN(@CURRENTAPPUSERID);
                set @APPUSER_IN_NONRACROLE = dbo.UFN_SECURITY_APPUSER_IN_NONRACROLE(@CURRENTAPPUSERID);
                set @APPUSER_IN_NOSECGROUPROLE = dbo.UFN_SECURITY_APPUSER_IN_NO_SECURITY_GROUP_ROLE(@CURRENTAPPUSERID);

                if @ORGPOSITIONSSELECTIONID is null
                begin
                    select
                        S.ID as SOLICITORID,
                        S_NF.NAME as SOLICITORNAME,
                        D.ID as DESIGNATIONID,
                        D.NAME as DESIGNATIONNAME,
                        R.AMOUNT as REVENUEAMOUNT,
                        RSOL.AMOUNT as SOLICITORAMOUNT,
                        R.CONSTITUENTID as DONORID,
                        R.ID as GIFTID,
                        MAXSOLGIFTAMOUNT
                    from dbo.REVENUESOLICITOR RSOL
                        inner join dbo.REVENUESPLIT RS on RSOL.REVENUESPLITID = RS.ID
                        inner join dbo.REVENUE R with (nolock) on RS.REVENUEID = R.ID
                        left join dbo.APPEAL A on R.APPEALID = A.ID
            --left join dbo.REVENUESPLITBUSINESSUNIT RBU on RBU.REVENUESPLITID = RS.ID

                        inner join dbo.DESIGNATION D on RS.DESIGNATIONID = D.ID
                        inner join dbo.CONSTITUENT S with (nolock) on RSOL.CONSTITUENTID = S.ID
                        inner join 
                        (
                            select CONSTITUENTID, MAX(SOLGIFTAMOUNT) MAXSOLGIFTAMOUNT
                            from 
                            (    select  REVENUESOLICITOR.CONSTITUENTID, SUM(REVENUESOLICITOR.AMOUNT) SOLGIFTAMOUNT
                                from REVENUESOLICITOR
                                inner join REVENUESPLIT on REVENUESPLIT.ID = REVENUESOLICITOR.REVENUESPLITID
                                inner join dbo.REVENUE with (nolock) on REVENUESPLIT.REVENUEID = REVENUE.ID
                                left join dbo.APPEAL on REVENUE.APPEALID = APPEAL.ID
                    --left join dbo.REVENUESPLITBUSINESSUNIT on REVENUESPLITBUSINESSUNIT.REVENUESPLITID = REVENUESPLIT.ID

                                where
                                    dbo.UFN_REVENUE_HASDESIGNATION(REVENUE.TRANSACTIONTYPECODE, REVENUESPLIT.APPLICATIONCODE) = 1 and
                                    (REVENUE.DATE >= @STARTDATE or @STARTDATE is null) and
                                    (REVENUE.DATE <= @ENDDATE or @ENDDATE is null) and
                                    (REVENUESOLICITOR.BUSINESSUNITCODEID = @BUSINESSUNITCODEID or @BUSINESSUNITCODEID is null) and
                                    (APPEAL.APPEALCATEGORYCODEID = @APPEALCATEGORYCODEID or @APPEALCATEGORYCODEID is null) and
                                    (APPEAL.APPEALREPORT1CODEID = @APPEALREPORT1CODEID or @APPEALREPORT1CODEID is null)
                                    and (@ISADMIN = 1
                                        or dbo.UFN_REVENUE_USERHASDESIGNATIONSITEACCESS(REVENUE.ID, @CURRENTAPPUSERID) = 1
                                    )
                                group by REVENUESOLICITOR.CONSTITUENTID, REVENUESPLIT.REVENUEID
                            ) SOLREVSUMTBL
                            group by SOLREVSUMTBL.CONSTITUENTID
                        ) SOLREVMAXTBL on SOLREVMAXTBL.CONSTITUENTID = RSOL.CONSTITUENTID
                        outer apply dbo.UFN_CONSTITUENT_DISPLAYNAME(S.ID) S_NF
                    where 
                        dbo.UFN_REVENUE_HASDESIGNATION(R.TRANSACTIONTYPECODE, RS.APPLICATIONCODE) = 1 and
                        (R.DATE >= @STARTDATE or @STARTDATE is null) and
                        (R.DATE <= @ENDDATE or @ENDDATE is null) and
                        (RSOL.BUSINESSUNITCODEID = @BUSINESSUNITCODEID or @BUSINESSUNITCODEID is null) and
                        (A.APPEALCATEGORYCODEID = @APPEALCATEGORYCODEID or @APPEALCATEGORYCODEID is null) and
                        (A.APPEALREPORT1CODEID = @APPEALREPORT1CODEID or @APPEALREPORT1CODEID is null) and
                        (@ISADMIN = 1 or
                            (
                                (@APPUSER_IN_NONRACROLE = 1 
                                    or dbo.UFN_SECURITY_APPUSER_GRANTED_CONSTITID_FORREPORT(@CURRENTAPPUSERID, S.ID, @APPUSER_IN_NOSECGROUPROLE) = 1
                                )
                                and dbo.UFN_REVENUE_USERHASDESIGNATIONSITEACCESS(R.ID, @CURRENTAPPUSERID) = 1
                            )
                        )

                end
                else
                begin
                    declare @IDS as table(ID uniqueidentifier);
                    insert into @IDS exec USP_ORGANIZATIONHIERARCHY_IDSET_POSITIONHOLDERS @ORGPOSITIONSSELECTIONID, @CURRENTAPPUSERID;

                    select
                        S.ID as SOLICITORID,
                        S.NAME as SOLICITORNAME,
                        D.ID as DESIGNATIONID,
                        D.NAME as DESIGNATIONNAME,
                        R.AMOUNT as REVENUEAMOUNT,
                        RSOL.AMOUNT as SOLICITORAMOUNT,
                        R.CONSTITUENTID as DONORID,
                        R.ID as GIFTID,
                        MAXSOLGIFTAMOUNT
                    from dbo.REVENUESOLICITOR RSOL
                        inner join dbo.REVENUESPLIT RS on RSOL.REVENUESPLITID = RS.ID
                        inner join dbo.REVENUE R with (nolock) on RS.REVENUEID = R.ID
                        left join dbo.APPEAL A on R.APPEALID = A.ID
            --left join dbo.REVENUESPLITBUSINESSUNIT RBU on RBU.REVENUESPLITID = RS.ID

                        inner join dbo.DESIGNATION D on RS.DESIGNATIONID = D.ID
                        inner join dbo.CONSTITUENT S with (nolock) on RSOL.CONSTITUENTID = S.ID
                        inner join dbo.ORGANIZATIONPOSITIONHOLDER OPH 
                            on OPH.CONSTITUENTID = S.ID and R.DATE between OPH.DATEFROM and coalesce(OPH.DATETO, R.DATE)
                        inner join @IDS as SELECTION on OPH.[ID] = SELECTION.[ID]
                        inner join 
                        (
                            select CONSTITUENTID, MAX(SOLGIFTAMOUNT) MAXSOLGIFTAMOUNT
                            from 
                            (    select  REVENUESOLICITOR.CONSTITUENTID, SUM(REVENUESOLICITOR.AMOUNT) SOLGIFTAMOUNT
                                from REVENUESOLICITOR
                                inner join REVENUESPLIT on REVENUESPLIT.ID = REVENUESOLICITOR.REVENUESPLITID
                                inner join dbo.REVENUE with (nolock) on REVENUESPLIT.REVENUEID = REVENUE.ID
                                left join dbo.APPEAL on REVENUE.APPEALID = APPEAL.ID
                    --left join dbo.REVENUESPLITBUSINESSUNIT on REVENUESPLITBUSINESSUNIT.REVENUESPLITID = REVENUESPLIT.ID

                                where
                                    dbo.UFN_REVENUE_HASDESIGNATION(REVENUE.TRANSACTIONTYPECODE, REVENUESPLIT.APPLICATIONCODE) = 1 and
                                    (REVENUE.DATE >= @STARTDATE or @STARTDATE is null) and
                                    (REVENUE.DATE <= @ENDDATE or @ENDDATE is null) and
                                    (REVENUESOLICITOR.BUSINESSUNITCODEID = @BUSINESSUNITCODEID or @BUSINESSUNITCODEID is null) and
                                    (APPEAL.APPEALCATEGORYCODEID = @APPEALCATEGORYCODEID or @APPEALCATEGORYCODEID is null) and
                                    (APPEAL.APPEALREPORT1CODEID = @APPEALREPORT1CODEID or @APPEALREPORT1CODEID is null)
                                    and (@ISADMIN = 1
                                        or dbo.UFN_REVENUE_USERHASDESIGNATIONSITEACCESS(REVENUE.ID, @CURRENTAPPUSERID) = 1
                                    )
                                group by REVENUESOLICITOR.CONSTITUENTID, REVENUESPLIT.REVENUEID
                            ) SOLREVSUMTBL
                            group by SOLREVSUMTBL.CONSTITUENTID
                        ) SOLREVMAXTBL on SOLREVMAXTBL.CONSTITUENTID = RSOL.CONSTITUENTID
                    where 
                        dbo.UFN_REVENUE_HASDESIGNATION(R.TRANSACTIONTYPECODE, RS.APPLICATIONCODE) = 1 and 
                        (R.DATE >= @STARTDATE or @STARTDATE is null) and
                        (R.DATE <= @ENDDATE or @ENDDATE is null) and
                        (RSOL.BUSINESSUNITCODEID = @BUSINESSUNITCODEID or @BUSINESSUNITCODEID is null) and
                        (A.APPEALCATEGORYCODEID = @APPEALCATEGORYCODEID or @APPEALCATEGORYCODEID is null) and
                        (A.APPEALREPORT1CODEID = @APPEALREPORT1CODEID or @APPEALREPORT1CODEID is null) and
                        (@ISADMIN = 1 or
                            (
                                (@APPUSER_IN_NONRACROLE = 1 
                                    or dbo.UFN_SECURITY_APPUSER_GRANTED_CONSTITID_FORREPORT(@CURRENTAPPUSERID, S.ID, @APPUSER_IN_NOSECGROUPROLE) = 1
                                )
                                and dbo.UFN_REVENUE_USERHASDESIGNATIONSITEACCESS(R.ID, @CURRENTAPPUSERID) = 1
                            )
                        )
                end