USP_REPORT_NAMINGOPPORTUNITYRECOGNITION

Parameters

Parameter Parameter Type Mode Description
@PURPOSEID uniqueidentifier IN
@CONTACTID uniqueidentifier IN
@TYPEID uniqueidentifier IN
@SITEID uniqueidentifier IN
@FACILITYID uniqueidentifier IN
@CAMPAIGNID uniqueidentifier IN
@AREAID uniqueidentifier IN
@UNITID uniqueidentifier IN
@STARTDATE datetime IN
@ENDDATE datetime IN
@NAMINGOPPORTUNITYQUERYID uniqueidentifier IN
@NAMINGOPPORTUNITYID uniqueidentifier IN
@REPORTUSERID nvarchar(128) IN
@ALTREPORTUSERID nvarchar(128) IN

Definition

Copy

                create procedure dbo.USP_REPORT_NAMINGOPPORTUNITYRECOGNITION
                (
                    @PURPOSEID uniqueidentifier = null,
                    @CONTACTID uniqueidentifier = null,
                    @TYPEID uniqueidentifier = null,
                    @SITEID uniqueidentifier = null,
                    @FACILITYID uniqueidentifier = null,
                    @CAMPAIGNID uniqueidentifier = null,
                    @AREAID uniqueidentifier = null,
                    @UNITID uniqueidentifier = null,
                    @STARTDATE datetime = null,
                    @ENDDATE datetime = null,
                    @NAMINGOPPORTUNITYQUERYID uniqueidentifier = null,
                    @NAMINGOPPORTUNITYID uniqueidentifier = null,
                    @REPORTUSERID nvarchar(128) = null,
                    @ALTREPORTUSERID nvarchar(128) = null
                )
                with execute as owner
                as
                    set nocount on;

                    -- Include recognitions without names in "All Dates" selection

                    if (@STARTDATE = '1753-1-1') and (@ENDDATE = '9999-12-30')
                    begin
                        set @STARTDATE = null;
                        set @ENDDATE = null;
                    end

                    -- Retrieve the table for the selection, if there is one.

                    declare @DBOBJECTNAME nvarchar(128);
                    declare @DBOBJECTTYPE smallint;

                    declare @CURRENTAPPUSERID uniqueidentifier;
                    set @CURRENTAPPUSERID = dbo.UFN_APPUSER_GETREPORTAPPUSERID(@REPORTUSERID, @ALTREPORTUSERID);

                    if @NAMINGOPPORTUNITYQUERYID is not null begin
                        if not exists(select ID from dbo.IDSETREGISTER where ID = @NAMINGOPPORTUNITYQUERYID) raiserror('ID set does not exist in the database.', 15, 1);
                        select @DBOBJECTNAME = DBOBJECTNAME, @DBOBJECTTYPE = OBJECTTYPE from dbo.IDSETREGISTER where ID = @NAMINGOPPORTUNITYQUERYID;
                        if @DBOBJECTTYPE = 1 set @DBOBJECTNAME = @DBOBJECTNAME + '()';
                        else if @DBOBJECTTYPE = 2 set @DBOBJECTNAME = @DBOBJECTNAME + '(''' + convert(nvarchar(36), @NAMINGOPPORTUNITYQUERYID) + ''')';
                    end

                    declare @SQLTOEXEC nvarchar(max);

                    set @SQLTOEXEC =
                    '
                    select
                        NAMINGOPPORTUNITY.ID as NAMINGOPPORTUNITYID,
                        NAMINGOPPORTUNITY.NAME,
                        NAMINGOPPORTUNITY.QUANTITY,
                        NAMINGOPPORTUNITY.REMAINING,
                        NAMINGOPPORTUNITY.MINIMUMAMOUNT,
                        CONTACT_NF.NAME as CONTACT,
                        CONSTITUENT_NF.NAME as CNAME,
                        NAMINGOPPORTUNITYRECOGNITION.CONSTITUENTNAME as RECOGNITIONNAME,
                        dbo.UFN_DATE_FROMFUZZYDATE(NAMINGOPPORTUNITYRECOGNITION.STARTDATE) as RECOGNITIONDATE,
                        NAMINGOPPORTUNITYRECOGNITION.AMOUNT
                    from
                        dbo.NAMINGOPPORTUNITY
                        inner join dbo.DESIGNATIONLEVEL on DESIGNATIONLEVEL.ID = NAMINGOPPORTUNITY.PURPOSEID
                        left join dbo.SITE on SITE.ID = NAMINGOPPORTUNITY.SITEID
                        left join dbo.NAMINGOPPORTUNITYRECOGNITION on NAMINGOPPORTUNITYRECOGNITION.NAMINGOPPORTUNITYID = NAMINGOPPORTUNITY.ID
                        left join dbo.NAMINGOPPORTUNITYFACILITY on NAMINGOPPORTUNITYFACILITY.ID = NAMINGOPPORTUNITY.FACILITYID
                        outer apply dbo.UFN_CONSTITUENT_DISPLAYNAME(NAMINGOPPORTUNITY.CONTACTID) CONTACT_NF
                        outer apply dbo.UFN_CONSTITUENT_DISPLAYNAME(NAMINGOPPORTUNITYRECOGNITION.CONSTITUENTID) CONSTITUENT_NF
                    ' + nchar(13);

                    begin
                        if not @NAMINGOPPORTUNITYQUERYID is null
                        begin
                            set @SQLTOEXEC = @SQLTOEXEC + 
                                'inner join dbo.' + @DBOBJECTNAME + ' as NAMINGOPPORTUNITYQUERY on NAMINGOPPORTUNITY.[ID] = NAMINGOPPORTUNITYQUERY.[ID]' + nchar(13);
                        end
                    end

                    set @SQLTOEXEC = @SQLTOEXEC +
                    '
                    where
                        (@PURPOSEID is null or (DESIGNATIONLEVEL.ID = @PURPOSEID)) and
                        (@CONTACTID is null or (NAMINGOPPORTUNITY.CONTACTID = @CONTACTID)) and
                        (@TYPEID is null or (NAMINGOPPORTUNITY.NAMINGOPPORTUNITYTYPECODEID = @TYPEID)) and
                        (@SITEID is null or (SITE.ID = @SITEID)) and
                        (@FACILITYID is null or (NAMINGOPPORTUNITY.FACILITYID = @FACILITYID)) and
                        (@CAMPAIGNID is null or (NAMINGOPPORTUNITY.CAMPAIGNID = @CAMPAIGNID)) and
                        (@AREAID is null or (NAMINGOPPORTUNITYFACILITY.AREACODEID = @AREAID)) and
                        (@UNITID is null or (NAMINGOPPORTUNITYFACILITY.UNITCODEID = @UNITID)) and
                        (@NAMINGOPPORTUNITYID is null or (NAMINGOPPORTUNITY.ID = @NAMINGOPPORTUNITYID)) and
                        ((NAMINGOPPORTUNITYRECOGNITION.STARTDATE = null) or
                            ((@STARTDATE is null or (dbo.UFN_DATE_GETEARLIESTTIME(@STARTDATE) <= dbo.UFN_DATE_FROMFUZZYDATE(NAMINGOPPORTUNITYRECOGNITION.STARTDATE))) and
                             (@ENDDATE is null or (dbo.UFN_DATE_GETLATESTTIME(@ENDDATE) >= dbo.UFN_DATE_FROMFUZZYDATE(NAMINGOPPORTUNITYRECOGNITION.STARTDATE))))) and
                        dbo.UFN_SITEALLOWEDFORUSER(@CURRENTAPPUSERID, NAMINGOPPORTUNITY.SITEID) = 1
                    order by
                        NAMINGOPPORTUNITY.MINIMUMAMOUNT desc
                    ' + nchar(13);

                    exec sp_executesql @SQLTOEXEC,
                        N'@PURPOSEID uniqueidentifier, @CONTACTID uniqueidentifier, @TYPEID uniqueidentifier, @SITEID uniqueidentifier, @FACILITYID uniqueidentifier, @CAMPAIGNID uniqueidentifier,    @AREAID uniqueidentifier, @UNITID uniqueidentifier, @STARTDATE datetime, @ENDDATE datetime, @NAMINGOPPORTUNITYQUERYID uniqueidentifier, @NAMINGOPPORTUNITYID uniqueidentifier, @CURRENTAPPUSERID uniqueidentifier',
                        @PURPOSEID=@PURPOSEID, @CONTACTID=@CONTACTID, @TYPEID=@TYPEID, @SITEID=@SITEID, @FACILITYID=@FACILITYID, @CAMPAIGNID=@CAMPAIGNID, @AREAID=@AREAID, @UNITID=@UNITID, @STARTDATE=@STARTDATE, @ENDDATE=@ENDDATE, @NAMINGOPPORTUNITYQUERYID=@NAMINGOPPORTUNITYQUERYID, @NAMINGOPPORTUNITYID=@NAMINGOPPORTUNITYID, @CURRENTAPPUSERID=@CURRENTAPPUSERID;