USP_DATAFORMTEMPLATE_EDIT_MKTMARKETINGPLANITEMEXPENSE

The save procedure used by the edit dataform template "Marketing Plan Item Expense Edit Form".

Parameters

Parameter Parameter Type Mode Description
@ID uniqueidentifier IN The input ID parameter indicating the ID of the record being edited.
@CHANGEAGENTID uniqueidentifier IN Input parameter indicating the ID of the change agent invoking the procedure.
@DESCRIPTION nvarchar(max) IN Description
@EXPENSECATEGORYCODEID uniqueidentifier IN Category
@EXPENSETYPECODE tinyint IN Type
@COUNT int IN Count
@AMOUNT money IN Unit cost
@BUDGETAMOUNT money IN Budget amount

Definition

Copy


CREATE procedure dbo.[USP_DATAFORMTEMPLATE_EDIT_MKTMARKETINGPLANITEMEXPENSE]
(
  @ID uniqueidentifier,
  @CHANGEAGENTID uniqueidentifier = null,
  @DESCRIPTION nvarchar(max),
  @EXPENSECATEGORYCODEID uniqueidentifier,
  @EXPENSETYPECODE tinyint,
  @COUNT integer,
  @AMOUNT money,
  @BUDGETAMOUNT money
)
as
  set nocount on;

  declare @CURRENTDATE datetime;
  declare @BASECURRENCYID uniqueidentifier;
  declare @ORGANIZATIONCURRENCYID uniqueidentifier;
  declare @CURRENCYEXCHANGERATEID uniqueidentifier;
  declare @ORGANIZATIONAMOUNT money;
  declare @ORGANIZATIONBUDGETAMOUNT money;

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

  set @CURRENTDATE = getdate();

  begin try
    select @BASECURRENCYID = [BASECURRENCYID] from dbo.[MKTMARKETINGPLANITEMEXPENSE] where [ID] = @ID;
    set @ORGANIZATIONCURRENCYID = dbo.[UFN_CURRENCY_GETORGANIZATIONCURRENCY]();

    if @BASECURRENCYID = @ORGANIZATIONCURRENCYID
      begin
        set @CURRENCYEXCHANGERATEID = null;
        set @ORGANIZATIONAMOUNT = @AMOUNT;
        set @ORGANIZATIONBUDGETAMOUNT = @BUDGETAMOUNT;
      end
    else
      begin
        set @CURRENCYEXCHANGERATEID = dbo.[UFN_CURRENCYEXCHANGERATE_GETLATEST](@BASECURRENCYID, @ORGANIZATIONCURRENCYID, @CURRENTDATE, 0, null);
        set @ORGANIZATIONAMOUNT = dbo.[UFN_CURRENCY_CONVERT](@AMOUNT, @CURRENCYEXCHANGERATEID);
        set @ORGANIZATIONBUDGETAMOUNT = dbo.[UFN_CURRENCY_CONVERT](@BUDGETAMOUNT, @CURRENCYEXCHANGERATEID);
      end

    update dbo.[MKTMARKETINGPLANITEMEXPENSE] set
      [DESCRIPTION] = @DESCRIPTION,
      [EXPENSECATEGORYCODEID] = @EXPENSECATEGORYCODEID,
      [EXPENSETYPECODE] = @EXPENSETYPECODE,
      [COUNT] = @COUNT,
      [CURRENCYEXCHANGERATEID] = @CURRENCYEXCHANGERATEID,
      [AMOUNT] = @AMOUNT,
      [ORGANIZATIONAMOUNT] = @ORGANIZATIONAMOUNT,
      [BUDGETAMOUNT] = @BUDGETAMOUNT,
      [ORGANIZATIONBUDGETAMOUNT] = @ORGANIZATIONBUDGETAMOUNT
    where [ID] = @ID;

    return 0;
  end try

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