USP_MKTSEGMENTATIONBUDGET_UPDATE

Updates a marketing effort's budget information.

Parameters

Parameter Parameter Type Mode Description
@ID uniqueidentifier IN
@CHANGEAGENTID uniqueidentifier IN
@BUDGETAMOUNT money IN
@FIXEDCOST money IN

Definition

Copy


CREATE procedure dbo.USP_MKTSEGMENTATIONBUDGET_UPDATE
(
  @ID uniqueidentifier,
  @CHANGEAGENTID uniqueidentifier = null,
  @BUDGETAMOUNT money,
  @FIXEDCOST money
)
as
  set nocount on;

    declare @ORGANIZATIONCURRENCYEXCHANGERATEID uniqueidentifier;
    declare @ORGANIZATIONBUDGETAMOUNT money;
  declare @ORGANIZATIONFIXEDCOST money;
    declare @ORGANIZATIONCURRENCYID uniqueidentifier;
  declare @BASECURRENCYID uniqueidentifier;
  declare @DATEADDED datetime;

  begin try
    if (select [ACTIVE] from dbo.[MKTSEGMENTATION] where [ID] = @ID) = 0
      --Check if the mailing is currently being activated...

      exec dbo.[USP_MKTSEGMENTATION_CHECKACTIVATION] @ID;

    if @CHANGEAGENTID is null  
      exec dbo.USP_CHANGEAGENT_GETORCREATECHANGEAGENT @CHANGEAGENTID output;

        select @BASECURRENCYID = [BASECURRENCYID], @DATEADDED = [DATEADDED], @ORGANIZATIONCURRENCYEXCHANGERATEID = [ORGANIZATIONCURRENCYEXCHANGERATEID] from dbo.[MKTSEGMENTATIONBUDGET] where [ID] = @ID;

        set @ORGANIZATIONCURRENCYID = dbo.[UFN_CURRENCY_GETORGANIZATIONCURRENCY]();

        if (@ORGANIZATIONCURRENCYID = @BASECURRENCYID)
        begin
            set @ORGANIZATIONBUDGETAMOUNT = @BUDGETAMOUNT;
      set @ORGANIZATIONFIXEDCOST = @FIXEDCOST;
        end
        else
        begin
            if @ORGANIZATIONCURRENCYEXCHANGERATEID is null
                set @ORGANIZATIONCURRENCYEXCHANGERATEID = dbo.[UFN_CURRENCYEXCHANGERATE_GETLATEST](@BASECURRENCYID, @ORGANIZATIONCURRENCYID, @DATEADDED, 0, null);

            set @ORGANIZATIONBUDGETAMOUNT = dbo.[UFN_CURRENCY_CONVERT](@BUDGETAMOUNT, @ORGANIZATIONCURRENCYEXCHANGERATEID);
      set @ORGANIZATIONFIXEDCOST = dbo.[UFN_CURRENCY_CONVERT](@FIXEDCOST, @ORGANIZATIONCURRENCYEXCHANGERATEID);
        end

    update dbo.[MKTSEGMENTATIONBUDGET] set 
      [BUDGETAMOUNT] = @BUDGETAMOUNT,
      [FIXEDCOST] = @FIXEDCOST,
      [CHANGEDBYID] = @CHANGEAGENTID,
      [ORGANIZATIONFIXEDCOST] = @ORGANIZATIONFIXEDCOST,
      [ORGANIZATIONBUDGETAMOUNT] = @ORGANIZATIONBUDGETAMOUNT,
      [ORGANIZATIONCURRENCYEXCHANGERATEID] = @ORGANIZATIONCURRENCYEXCHANGERATEID
    where [ID] = @ID;
  end try

  begin catch
    exec dbo.USP_RAISE_ERROR;
    return 1;
  end catch

  return 0;