USP_DATALIST_MKTAPPEALUNRESOLVEDRESPONSESSUMMARY

Returns a summary of unresolved responses for a marketing effort.

Parameters

Parameter Parameter Type Mode Description
@SEGMENTATIONID uniqueidentifier IN Input parameter indicating the context ID for the data list.
@CURRENCYCODE tinyint IN Currency

Definition

Copy


CREATE procedure dbo.[USP_DATALIST_MKTAPPEALUNRESOLVEDRESPONSESSUMMARY]
(
  @SEGMENTATIONID uniqueidentifier,
  @CURRENCYCODE tinyint = 1
)
as
  set nocount on;

  declare @APPEALIDLIST nvarchar(max);
  declare @APPEALDESCLIST nvarchar(max);
  declare @APPEALID nvarchar(100);
  declare @APPEALDESC nvarchar(255);
  declare @UNRESOLVEDTABLE table([RESPONDERS] int,
                                 [RESPONSES] int,
                                 [TOTALGIFTAMOUNT] money,
                                 [AVERAGEGIFTAMOUNT] money,
                                 [ORGANIZATIONTOTALGIFTAMOUNT] money,
                                 [ORGANIZATIONAVERAGEGIFTAMOUNT] money);

  /* Get multicurrency values for the given effort */
  declare @ISO4217 nvarchar(100);
  declare @DECIMALDIGITS tinyint;
  declare @CURRENCYSYMBOL nvarchar(5);
  declare @SYMBOLDISPLAYSETTINGCODE tinyint;

  select
    @ISO4217 = [CURRENCY].[ISO4217],
    @DECIMALDIGITS = [CURRENCY].[DECIMALDIGITS],
    @CURRENCYSYMBOL = [CURRENCY].[CURRENCYSYMBOL],
    @SYMBOLDISPLAYSETTINGCODE = [CURRENCY].[SYMBOLDISPLAYSETTINGCODE]
  from dbo.[MKTSEGMENTATION]
  inner join dbo.[CURRENCY] on [CURRENCY].[ID] = case when @CURRENCYCODE = 1 then dbo.[UFN_CURRENCY_GETORGANIZATIONCURRENCY]() else [MKTSEGMENTATION].[BASECURRENCYID] end
  where [MKTSEGMENTATION].[ID] = @SEGMENTATIONID;

  declare APPEALCURSOR cursor local fast_forward for
    select [APPEALID], [APPEALDESCRIPTION]
    from dbo.[MKTSEGMENTATIONACTIVATE]
    where [SEGMENTATIONID] = @SEGMENTATIONID;

  open APPEALCURSOR;
  fetch next from APPEALCURSOR into @APPEALID, @APPEALDESC;

  while (@@FETCH_STATUS = 0)
  begin
    if @APPEALIDLIST is not null
      set @APPEALIDLIST = @APPEALIDLIST + ', ';
    if @APPEALDESCLIST is not null
      set @APPEALDESCLIST = @APPEALDESCLIST + ', ';

    set @APPEALIDLIST = isnull(@APPEALIDLIST,'') + @APPEALID;
    set @APPEALDESCLIST = isnull(@APPEALDESCLIST,'') + @APPEALDESC;

    fetch next from APPEALCURSOR into @APPEALID, @APPEALDESC;
  end;

  close APPEALCURSOR;
  deallocate APPEALCURSOR;

  insert into @UNRESOLVEDTABLE
    exec dbo.[USP_MKTSEGMENTATION_GETUNRESOLVEDRESPONSECOUNTS] @SEGMENTATIONID;

  --Return the results...

  select
    @APPEALIDLIST as [APPEALID],
    @APPEALDESCLIST as [APPEALDESCRIPTION],
    [RESPONDERS],
    [RESPONSES],
    case when @CURRENCYCODE = 1 then [ORGANIZATIONTOTALGIFTAMOUNT] else [TOTALGIFTAMOUNT] end as [TOTALGIFTAMOUNT],
    case when @CURRENCYCODE = 1 then [ORGANIZATIONAVERAGEGIFTAMOUNT] else [AVERAGEGIFTAMOUNT] end as [AVERAGEGIFTAMOUNT],
    (select [NAME] from dbo.[MKTSEGMENTATION] where [ID] = @SEGMENTATIONID) as [MAILINGNAME], 
    dbo.[UFN_MKTSEGMENTATION_ISAPPEALMAILING](@SEGMENTATIONID) as [ISAPPEALMAILING],
    @ISO4217 as [CURRENCYISOCURRENCYCODE],
    @DECIMALDIGITS as [CURRENCYDECIMALDIGITS],
    @CURRENCYSYMBOL as [CURRENCYSYMBOL],
    @SYMBOLDISPLAYSETTINGCODE as [CURRENCYSYMBOLDISPLAYSETTINGCODE]
  from @UNRESOLVEDTABLE;

  return 0;