USP_DATALIST_MKTPLANINCOMEFORECAST

Returns a list of appeals for a marketing plan with their expected revenues for the first four months.

Parameters

Parameter Parameter Type Mode Description
@PLANID uniqueidentifier IN Input parameter indicating the context ID for the data list.
@CURRENTAPPUSERID uniqueidentifier IN Input parameter indicating the ID of the current user.
@MONTH1RETURN nvarchar(6) IN Month 1 Return Rate
@MONTH2RETURN nvarchar(6) IN Month 2 Return Rate
@MONTH3RETURN nvarchar(6) IN Month 3 Return Rate
@MONTH4RETURN nvarchar(6) IN Month 4 Return Rate
@CURRENCYCODE tinyint IN Currency

Definition

Copy


CREATE procedure dbo.[USP_DATALIST_MKTPLANINCOMEFORECAST]
(
  @PLANID uniqueidentifier,
  @CURRENTAPPUSERID uniqueidentifier,
  @MONTH1RETURN nvarchar(6) = null,
  @MONTH2RETURN nvarchar(6) = null,
  @MONTH3RETURN nvarchar(6) = null,
  @MONTH4RETURN nvarchar(6) = null,
  @CURRENCYCODE tinyint = 1
)
as
  set nocount on;

  declare @ROWCOUNT int;
  declare @CURRENCYISOCURRENCYCODE nvarchar(6);
  declare @CURRENCYDECIMALDIGITS tinyint;
  declare @CURRENCYSYMBOL nvarchar(10);
  declare @CURRENCYSYMBOLDISPLAYSETTINGCODE tinyint;

  if @MONTH1RETURN is null
    set @MONTH1RETURN = '50.00';
  if @MONTH2RETURN is null
    set @MONTH2RETURN = '35.00';
  if @MONTH3RETURN is null
    set @MONTH3RETURN = '10.00';
  if @MONTH4RETURN is null
    set @MONTH4RETURN = '5.00';

  set @ROWCOUNT = 0;

  select
    @ROWCOUNT = count([MPI].[ID])
  from
    dbo.[MKTMARKETINGPLANITEM] as [MPI]
  where [MPI].[MARKETINGPLANID] = @PLANID
  and [MPI].[LEVEL] = (select max([LEVEL]) from dbo.[MKTMARKETINGPLANITEMTEMPLATEITEM] as [MPITI] where [MPI].[MARKETINGPLANID] = [MPITI].[MARKETINGPLANID]);

  if @ROWCOUNT > 0
    begin
      select 
        @CURRENCYISOCURRENCYCODE = [ISO4217],
        @CURRENCYDECIMALDIGITS = [DECIMALDIGITS],
        @CURRENCYSYMBOL = [CURRENCYSYMBOL],
        @CURRENCYSYMBOLDISPLAYSETTINGCODE = [SYMBOLDISPLAYSETTINGCODE]
      from dbo.[CURRENCY]
      where [ID] = case @CURRENCYCODE when 1 
                     then dbo.[UFN_CURRENCY_GETORGANIZATIONCURRENCY]() 
                     else (select [BASECURRENCYID] from dbo.[MKTMARKETINGPLAN] where [ID] = @PLANID)
                   end;

      select
        [MPI].[ID],
        [MPI].[NAME],
        dbo.[UFN_TRANSLATIONFUNCTION_SITE_GETNAME](dbo.[UFN_SITEID_MAPFROM_MARKETINGPLANID](@PLANID)) as [SITE],
        @CURRENCYISOCURRENCYCODE as [CURRENCYISOCURRENCYCODE],
        @CURRENCYDECIMALDIGITS as [CURRENCYDECIMALDIGITS],
        @CURRENCYSYMBOL as [CURRENCYSYMBOL],
        @CURRENCYSYMBOLDISPLAYSETTINGCODE as [CURRENCYSYMBOLDISPLAYSETTINGCODE],
        dbo.[UFN_DATE_EARLIESTFROMFUZZYDATE]([MPI].[STARTDATE]) as [STARTDATE],
        (case @CURRENCYCODE when 1 then [MPI].[ORGANIZATIONTOTALREVENUEGOAL] else [MPI].[TOTALREVENUEGOAL] end * cast(@MONTH1RETURN as float) / 100) as [MONTH1REVENUE],
        (case @CURRENCYCODE when 1 then [MPI].[ORGANIZATIONTOTALREVENUEGOAL] else [MPI].[TOTALREVENUEGOAL] end * cast(@MONTH2RETURN as float) / 100) as [MONTH2REVENUE],
        (case @CURRENCYCODE when 1 then [MPI].[ORGANIZATIONTOTALREVENUEGOAL] else [MPI].[TOTALREVENUEGOAL] end * cast(@MONTH3RETURN as float) / 100) as [MONTH3REVENUE],
        (case @CURRENCYCODE when 1 then [MPI].[ORGANIZATIONTOTALREVENUEGOAL] else [MPI].[TOTALREVENUEGOAL] end * cast(@MONTH4RETURN as float) / 100) as [MONTH4REVENUE],
        [MPI2].[NAME] as [PLAN],
        @MONTH1RETURN as [MONTH1RETURN],
        @MONTH2RETURN as [MONTH2RETURN],
        @MONTH3RETURN as [MONTH3RETURN],
        @MONTH4RETURN as [MONTH4RETURN],
        [MPI].[MAILDATE]
      from dbo.[MKTMARKETINGPLANITEM] as [MPI]
      inner join dbo.[MKTMARKETINGPLANITEM] as [MPI2] on [MPI2].[MARKETINGPLANID] = [MPI].[MARKETINGPLANID] and [MPI2].[LEVEL] = 0
      where [MPI].[MARKETINGPLANID] = @PLANID
      and [MPI].[LEVEL] = (select max([LEVEL]) from dbo.[MKTMARKETINGPLANITEMTEMPLATEITEM] as [MPITI] where [MPI].[MARKETINGPLANID] = [MPITI].[MARKETINGPLANID])
      order by dbo.[UFN_DATE_EARLIESTFROMFUZZYDATE]([MPI].[STARTDATE]) asc;
    end
  else
    begin
      select 
        @CURRENCYISOCURRENCYCODE = [ISO4217],
        @CURRENCYDECIMALDIGITS = [DECIMALDIGITS],
        @CURRENCYSYMBOL = [CURRENCYSYMBOL],
        @CURRENCYSYMBOLDISPLAYSETTINGCODE = [SYMBOLDISPLAYSETTINGCODE]
      from dbo.[CURRENCY]
      where [ID] = case @CURRENCYCODE when 1 
                     then dbo.[UFN_CURRENCY_GETORGANIZATIONCURRENCY]() 
                     else dbo.[UFN_APPUSER_GETBASECURRENCY](@CURRENTAPPUSERID)
                   end;

      select top 1
        '00000000-0000-0000-0000-000000000000' as [ID],
        '' as [NAME],
        '' as [SITE],
        @CURRENCYISOCURRENCYCODE as [CURRENCYISOCURRENCYCODE],
        @CURRENCYDECIMALDIGITS as [CURRENCYDECIMALDIGITS],
        @CURRENCYSYMBOL as [CURRENCYSYMBOL],
        @CURRENCYSYMBOLDISPLAYSETTINGCODE as [CURRENCYSYMBOLDISPLAYSETTINGCODE],
        getdate() as [STARTDATE],
        0 as [MONTH1REVENUE],
        0 as [MONTH2REVENUE],
        0 as [MONTH3REVENUE],
        0 as [MONTH4REVENUE],
        [MPI].[NAME] as [PLAN],
        @MONTH1RETURN as [MONTH1RETURN],
        @MONTH2RETURN as [MONTH2RETURN],
        @MONTH3RETURN as [MONTH3RETURN],
        @MONTH4RETURN as [MONTH4RETURN],
        getdate()
      from dbo.[MKTMARKETINGPLANITEM] as [MPI]
      where [MPI].[MARKETINGPLANID] = @PLANID
      and [MPI].[LEVEL] = 0;
    end

  return 0;