USP_REPORT_CHILDINVENTORY_PROCESSDIMENSION

Processes the matrix dimensions for the sponsorship child inventory report.

Parameters

Parameter Parameter Type Mode Description
@DIMENSION nvarchar(100) IN
@VALUE nvarchar(255) IN
@FROM nvarchar(255) INOUT
@COLUMN nvarchar(255) INOUT
@WHERE nvarchar(255) INOUT
@COLUMNALIAS nvarchar(255) IN
@HAVING nvarchar(255) INOUT

Definition

Copy


CREATE procedure dbo.USP_REPORT_CHILDINVENTORY_PROCESSDIMENSION
(
    @DIMENSION nvarchar(100) = '',
    @VALUE nvarchar(255) = '',
    @FROM nvarchar(255) output,
    @COLUMN nvarchar(255) output,
    @WHERE nvarchar(255) output,
    @COLUMNALIAS nvarchar(255) = '',
    @HAVING nvarchar(255) output
)
as
begin

    -- program

    if @DIMENSION = 0 
    begin
        set @FROM = ' inner join dbo.SPONSORSHIPPROGRAM PRG on PRG.SPONSORSHIPOPPORTUNITYGROUPID = OPP.SPONSORSHIPOPPORTUNITYGROUPID ';
        set @COLUMN = ' PRG.NAME as ' + @COLUMNALIAS;
        -- need to fix this.  where clause not working.  @value needs to be sent in as variable

        -- and on usp_report_childinventory, when calling sqltoexec, send value is as param.

        set @WHERE = ' and (' + @VALUE + ' is null or PRG.ID = ' + @VALUE + ')';
    end
    -- Location types

    -- @DIMENSION = 1

    -- handled in USP_REPORT_PROCESSLOCATIONTYPE_DIMENSION

    --Date of last update (not handled here)

    --if @DIMENSION = 6

    --begin

      --set @FROM = '';

      --set @COLUMN = ' SOC.DATECHANGED as ' + @COLUMNALIAS;

        --set @WHERE = ' and (' + @VALUE + ' is not null or SOC.DATECHANGED = ' + @VALUE + ') ';

    --end

    -- Eligibility (eligibility)

    if @DIMENSION = 11
    begin
      set @COLUMN = ' OPP.ELIGIBILITY as ' + @COLUMNALIAS;
        set @FROM = '';
        set @WHERE = ' and (' + @VALUE + ' is null or OPP.ELIGIBILITYCODE = ' + @VALUE + ') ';
    end
    -- Age

    if @DIMENSION = 8 
    begin
      set @COLUMN = ' (select displayname from dbo.SPONSORSHIPOPPORTUNITYAGERANGE SOAR '
      set @COLUMN = @COLUMN + ' where  dbo.UFN_AGEFROMFUZZYDATE(CON.BIRTHDATE,getdate()) between SOAR.MINAGE and SOAR.MAXAGE '
        set @COLUMN = @COLUMN + '    AND (' + @VALUE + '= SOAR.ID or ' + @VALUE + ' is null))  as ' + @COLUMNALIAS;
      set @FROM = ''
        set @WHERE = ''
        set @HAVING = ' HAVING ' + @COLUMNALIAS + ' is not null'
    end
        -- Gender

    if @DIMENSION = 9
    begin
        set @FROM = '';
        set @COLUMN = ' CON.GENDER as ' + @COLUMNALIAS;
        set @WHERE = ' and (' + @VALUE + ' is null or '+ @VALUE + ' = CON.GENDERCODE) ';
    end
    -- Availability 

    if @DIMENSION = 10 or @DIMENSION = 22
    begin
      set @COLUMN = ' OPP.AVAILABILITY as ' + @COLUMNALIAS;
        set @FROM = '';
        set @WHERE = ' and (' + @VALUE + ' is null or OPP.AVAILABILITYCODE = ' + @VALUE + ') ';
    end
    -- Project Status

    if @DIMENSION = 16
    begin
      set @COLUMN = ' (CASE OPP.ELIGIBILITY when ''Eligible'' then ''Open'' '+
                                ' when ''Ineligible'' then ''Closed'' end) as ' + @COLUMNALIAS;
        set @FROM = '';
        set @WHERE = ' and (' + @VALUE + ' is null or OPP.ELIGIBILITYCODE = ' + @VALUE + ') ';
    end
    -- Group

    if @DIMENSION = 19
    begin
        set @FROM = ''-- inner join dbo.SPONSORSHIPOPPORTUNITYGROUP SOG on OPP.SPONSORSHIPOPPORTUNITYGROUPID = SOG.ID ';

        set @COLUMN = ' SOG.NAME as ' + @COLUMNALIAS;
        set @WHERE = ' and (' + @VALUE + ' is null or SOG.ID = ' + @VALUE + ')';
    end
    -- Project Category

    if @DIMENSION = 20
    begin
     set @FROM = ' left join dbo.SPROPPPROJECTCATEGORYCODE SOCAT on SOCAT.ID = SOP.SPROPPPROJECTCATEGORYCODEID '
   set @COLUMN = ' SOCAT.DESCRIPTION as ' + @COLUMNALIAS;
     set @WHERE = ' and (' + @VALUE + ' is null or SOCAT.ID = ' + @VALUE + ')';
    end
end