USP_REPORT_PROCESSDIMENSION

Processes the matrix dimensions for the sponsorship matrix reports.

Parameters

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

Definition

Copy


CREATE procedure dbo.USP_REPORT_PROCESSDIMENSION
(
    @DIMENSION nvarchar(100) = null,
    @VALUE nvarchar(255) = null,
    @FROM nvarchar(255) = null output,
    @COLUMN nvarchar(max) = null output,
    @WHERE nvarchar(max) = null output,
    @COLUMNALIAS nvarchar(255) = null
)
as
begin

    -- program

    if @DIMENSION in (0,16,18,22
    begin
        set @FROM = ' inner join dbo.SPONSORSHIPPROGRAM PRG on PRG.ID = SP.SPONSORSHIPPROGRAMID ';
        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_acquisition, when calling sqltoexec, send value is as param.

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

    if @DIMENSION = 1
    begin
    set @FROM =''
        set @COLUMN = ', (select DESCRIPTION from dbo.CHANNELCODE where ID = RV.CHANNELCODEID) as ' + @COLUMNALIAS;
        set @WHERE = ' and (' + @VALUE + ' is null or RV.CHANNELCODEID = ' + @VALUE + ')';
    end

    -- Location types

    -- @DIMENSION = 2

    -- handled in USP_REPORT_PROCESSLOCATIONTYPE_DIMENSION


    -- Appeal

    if @DIMENSION = 3
    begin
    set @FROM =''
        set @COLUMN = ', (select DESCRIPTION from dbo.APPEAL where ID = RV.APPEALID) as ' + @COLUMNALIAS;
        set @WHERE = ' and  (' + @VALUE + ' is null or RV.APPEALID = ' + @VALUE + ')';
    end
    -- Frequency

    if @DIMENSION = 4
    begin
        set @FROM = ' inner join dbo.REVENUESCHEDULE SCH on SCH.ID = RV.ID ';
        set @COLUMN = ', SCH.FREQUENCY as ' + @COLUMNALIAS;
        set @WHERE = ' and (' + @VALUE + ' is null or SCH.FREQUENCYCODE = ' + @VALUE + ') ';
    end
    -- Payment Method

    if @DIMENSION in (5, 17)
    begin
        set @FROM = ' inner join dbo.REVENUEPAYMENTMETHOD RPM on RPM.REVENUEID = RV.ID ';
        set @COLUMN = ', RPM.PAYMENTMETHOD as ' + @COLUMNALIAS;
        set @WHERE = ' and (' + @VALUE + ' is null or RPM.PAYMENTMETHODCODE = ' + @VALUE + ') ';
    end
  -- Reason

    if @DIMENSION = 6
    begin
        set @FROM = ' inner join dbo.SPONSORSHIPREASON SR on SR.ID = ST.SPONSORSHIPREASONID ';
        set @COLUMN = ', dbo.UFN_SPONSORSHIPREASON_GETNAME(SR.ID) as ' + @COLUMNALIAS;
        set @WHERE = ' and (' + @VALUE + ' is null or SR.ID = ' + @VALUE + ') ';
    end
  -- Tenure

  if @DIMENSION = 7
    begin
    set @FROM = ''
        --set @COLUMN = ', dbo.UFN_SPONSORSHIPCANCELLATIONREPORTTENURE_GETNAME(' + @VALUE +') as ' +  @COLUMNALIAS ;

    set @COLUMN =', (select DESCRIPTION from dbo.SPONSORSHIPCANCELLATIONREPORTTENURECODE where dbo.UFN_SPONSORSHIPCANCELLATIONREPORT_CHECKTENURE(ID,SP.ID,SP.ENDDATE)=1) as ' + @COLUMNALIAS;
        set @WHERE = ' and (' + @VALUE + ' is null  or dbo.UFN_SPONSORSHIPCANCELLATIONREPORT_CHECKTENURE('+@VALUE+',SP.ID,SP.ENDDATE)=1) ';
    end
  -- Channel for acquisition report

    if @DIMENSION = 12
    begin
        set @COLUMN = ', (select DESCRIPTION from dbo.CHANNELCODE where ID = CASE RGDFH.SEQUENCE when 0 then RGDFH.CHANNELCODEID else RV.CHANNELCODEID end) as ' + @COLUMNALIAS;
        set @WHERE = ' and (' + @VALUE + ' is null or ' + @VALUE + ' =  CASE RGDFH.SEQUENCE when 0 then RGDFH.CHANNELCODEID else RV.CHANNELCODEID end)';
    end
    -- Appeal for acquisition report

    if @DIMENSION = 13
    begin
        set @COLUMN = ', (select DESCRIPTION from dbo.APPEAL where ID = case RGDFH.SEQUENCE when 0 then RGDFH.APPEALID else RV.APPEALID end) as ' + @COLUMNALIAS;
        set @WHERE = ' and  (' + @VALUE + ' is null or ' + @VALUE + ' = case RGDFH.SEQUENCE when 0 then RGDFH.APPEALID else RV.APPEALID end)';
    end
    -- Frequency for acquisition report

    if @DIMENSION = 14
    begin
        set @FROM = ' inner join dbo.REVENUESCHEDULE SCH on SCH.ID = RV.ID ';
        set @COLUMN = ', (case RGDFH.SEQUENCE when 0 then RGDFH.FREQUENCY else SCH.FREQUENCY end) as ' + @COLUMNALIAS;
        set @WHERE = ' and (' + @VALUE + ' is null or ' + @VALUE + ' = case RGDFH.SEQUENCE when 0 then RGDFH.FREQUENCYCODE else SCH.FREQUENCYCODE end) ';
    end
  -- Reason for operations report

    if @DIMENSION = 15
    begin
        set @FROM = ' inner join dbo.SPONSORSHIPREASON SR on SR.ID = SPT1.SPONSORSHIPREASONID ';
        set @COLUMN = ', dbo.UFN_SPONSORSHIPREASON_GETNAME(SR.ID) as ' + @COLUMNALIAS;
        set @WHERE = ' and (' + @VALUE + ' is null or SR.ID = ' + @VALUE + ') ';
    end
  -- Number of sponsorships

  if @DIMENSION = 21
  begin
  set @COLUMN = ', case dbo.UFN_SPONSORSHIP_GETACTIVESPONSORSHIPSFORSPONSOR(SP.CONSTITUENTID) ' +
                ' when 1 then ''1 sponsorship'''+
                ' when 2 then ''2 sponsorships'''+
                ' when 3 then ''3 sponsorships'''+
                ' else ''4+ sponsorships'' end'+
                ' as ' + @COLUMNALIAS
      set @WHERE  = ' and (' + @VALUE+' is null or ((dbo.UFN_SPONSORSHIP_GETACTIVESPONSORSHIPSFORSPONSOR(SP.CONSTITUENTID) >=4 and '+@VALUE+'=''261295FA-C69B-4669-8A22-B489E445C485'') or ' +
                    ' (dbo.UFN_SPONSORSHIP_GETACTIVESPONSORSHIPSFORSPONSOR(SP.CONSTITUENTID) = 3  and '+@VALUE+'=''29C7D09B-87BB-4a6c-9499-330F0405BFEE'') or ' +
                    ' (dbo.UFN_SPONSORSHIP_GETACTIVESPONSORSHIPSFORSPONSOR(SP.CONSTITUENTID) = 2 and '+@VALUE+'=''DB2A0940-01D0-4bdf-BABD-E35D7397CD60'') or ' +
                    ' (dbo.UFN_SPONSORSHIP_GETACTIVESPONSORSHIPSFORSPONSOR(SP.CONSTITUENTID) = 1 and '+@VALUE+'=''15220822-AE9C-472a-A16A-1523AB107030'')))';  

  end
  if @DIMENSION = 23
  begin
    set @FROM = ' inner join dbo.REVENUESCHEDULE SCH on SCH.ID = RGA.SOURCEREVENUEID ';
    set @COLUMN = ', SCH.FREQUENCY as ' + @COLUMNALIAS;
    set @WHERE = ' and (' + @VALUE + ' is null or SCH.FREQUENCYCODE = ' + @VALUE + ') ';
  end

   --Mailings

  if @DIMENSION = 24
  begin
      set @FROM = ''
      set @COLUMN = ', (select NAME from dbo.MKTSEGMENTATION where ID= SEGACTIVE.SEGMENTATIONID) as  ' + @COLUMNALIAS
      set @WHERE = ' and ('+@VALUE+' is null or exists(select ID from dbo.UFN_IDSETREADER_GETRESULTS('+@VALUE+') where ID= SEGACTIVE.SEGMENTATIONID)) '     
  end

  --Appeals

  if @DIMENSION = 25
  begin
      set @FROM = ''
      set @COLUMN = ', (select NAME from dbo.APPEAL where SEGACTIVE.APPEALSYSTEMID= ID) as  ' + @COLUMNALIAS
      set @WHERE = ' and ('+@VALUE+' is null or exists(select ID from dbo.UFN_IDSETREADER_GETRESULTS('+@VALUE+') where ID= SEGACTIVE.APPEALSYSTEMID)) '     
  end

  --Segments

  if @DIMENSION=26
  begin
    set @FROM =' inner join dbo.MKTSEGMENTATIONSEGMENT MKTSS on MKTSS.SEGMENTATIONID = SEGACTIVE.SEGMENTATIONID ';
    set @COLUMN =', (select NAME from dbo.MKTSEGMENT where ID = MKTSS.SEGMENTID) as '+ @COLUMNALIAS;
    set @WHERE =' and ('+@VALUE+' is null or MKTSS.SEGMENTID = '+@VALUE+')';
  end

  --Packages

  if @DIMENSION=27
  begin
    set @FROM =' inner join dbo.MKTSEGMENTATIONPACKAGE MKTSP on MKTSP.SEGMENTATIONID = SEGACTIVE.SEGMENTATIONID ';
    set @COLUMN =', (select NAME from dbo.MKTPACKAGE where ID = MKTSP.PACKAGEID) as '+ @COLUMNALIAS;
    set @WHERE =' and ('+@VALUE+' is null or MKTSP.PACKAGEID = '+@VALUE+')';
  end
end