USP_DATAFORMTEMPLATE_ADD_MKTMARKETINGPLANITEMEXPENSE

The save procedure used by the add dataform template "Marketing Plan Item Expense Add Form".

Parameters

Parameter Parameter Type Mode Description
@ID uniqueidentifier INOUT The output parameter indicating the ID of the record added.
@CURRENTAPPUSERID uniqueidentifier IN Input parameter indicating the ID of the current user.
@MARKETINGPLANITEMID uniqueidentifier IN Input parameter indicating the context ID for the record being added.
@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 Cost
@BUDGETAMOUNT money IN Budget amount

Definition

Copy


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

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

  if @ID is null set @ID = newid();

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

  set @CURRENTDATE = getdate();

  select @SEQUENCE = isnull(max([SEQUENCE]), 0) + 1 from [MKTMARKETINGPLANITEMEXPENSE] where [MARKETINGPLANITEMID] = @MARKETINGPLANITEMID;

  select @BASECURRENCYID = [BASECURRENCYID] from dbo.[MKTMARKETINGPLANITEM] where [ID] = @MARKETINGPLANITEMID;
  set @ORGANIZATIONCURRENCYID = dbo.[UFN_CURRENCY_GETORGANIZATIONCURRENCY]();

  begin try
    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

    insert into dbo.[MKTMARKETINGPLANITEMEXPENSE] (
      [ID],
      [DESCRIPTION],
      [MARKETINGPLANITEMID],
      [EXPENSECATEGORYCODEID],
      [EXPENSETYPECODE],
      [COUNT],
      [BASECURRENCYID],
      [CURRENCYEXCHANGERATEID],
      [AMOUNT],
      [ORGANIZATIONAMOUNT],
      [BUDGETAMOUNT],
      [ORGANIZATIONBUDGETAMOUNT],
      [SEQUENCE],
      [ADDEDBYID],
      [CHANGEDBYID],
      [DATEADDED],
      [DATECHANGED]
    ) values (
      @ID,
      @DESCRIPTION,
      @MARKETINGPLANITEMID,
      @EXPENSECATEGORYCODEID,
      @EXPENSETYPECODE,
      @COUNT,
      @BASECURRENCYID,
      @CURRENCYEXCHANGERATEID,
      @AMOUNT,
      @ORGANIZATIONAMOUNT,
      @BUDGETAMOUNT,
      @ORGANIZATIONBUDGETAMOUNT,
      @SEQUENCE,
      @CHANGEAGENTID,
      @CHANGEAGENTID,
      @CURRENTDATE,
      @CURRENTDATE
    );
  end try

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

  return 0;