USP_DATAFORMTEMPLATE_ADD_PLANNEDGIFTADDITIONREVENUE

The save procedure used by the add dataform template "Planned Gift Addition Add As Revenue".

Parameters

Parameter Parameter Type Mode Description
@ID uniqueidentifier INOUT The output parameter indicating the ID of the record added.
@PLANNEDGIFTADDITIONID 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.
@AMOUNT money IN Revenue amount
@DATE datetime IN Date
@GENERATEGLDISTRIBUTIONS bit IN Generate GL distributions
@PDACCOUNTSYSTEMID uniqueidentifier IN Account system
@TRANSACTIONCURRENCYID uniqueidentifier IN Transaction currency
@BASEEXCHANGERATEID uniqueidentifier IN Exchange rate ID
@EXCHANGERATE decimal(20, 8) IN Exchange rate
@DONOTRECEIPT bit IN Do not receipt
@RECEIPTAMOUNT money IN Receipt amount

Definition

Copy

CREATE procedure dbo.USP_DATAFORMTEMPLATE_ADD_PLANNEDGIFTADDITIONREVENUE
(
  @ID uniqueidentifier output,
  @PLANNEDGIFTADDITIONID uniqueidentifier,
  @CHANGEAGENTID uniqueidentifier = null,
  @AMOUNT money = null,
  @DATE datetime = null,
  @GENERATEGLDISTRIBUTIONS bit = 1,
  @PDACCOUNTSYSTEMID uniqueidentifier = null,
  @TRANSACTIONCURRENCYID uniqueidentifier = null,
  @BASEEXCHANGERATEID uniqueidentifier = null,
  @EXCHANGERATE decimal(20,8) = null,
  @DONOTRECEIPT bit = null,
  @RECEIPTAMOUNT money = null
)
as
  set nocount on;

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

  declare @CURRENTDATE datetime = getdate();

  if @PDACCOUNTSYSTEMID is null
    set @PDACCOUNTSYSTEMID = '4B121C2C-CCE6-440D-894C-EA0DEF80D50B';

  --Multicurrency - AdamBu 5/19/10 - Retrieve base currency from the account system's currency set.
  declare @CURRENCYSETID uniqueidentifier;
  declare @BASECURRENCYID uniqueidentifier;

  select
    @CURRENCYSETID = CURRENCYSETID
  from 
    dbo.PDACCOUNTSYSTEM
  where 
    ID = @PDACCOUNTSYSTEMID;

  select 
    @BASECURRENCYID = BASECURRENCYID
  from 
    dbo.CURRENCYSET
  where 
    ID = coalesce(@CURRENCYSETID, dbo.UFN_CURRENCYSET_GETAPPUSERDEFAULTCURRENCYSET());

  --Multicurrency - AdamBu 5/19/10 - If needed, create the spot exchange rate.
  if @BASEEXCHANGERATEID = '00000000-0000-0000-0000-000000000001'
  begin
    set @BASEEXCHANGERATEID = newid();

    insert into dbo.CURRENCYEXCHANGERATE
    (
      ID,
      FROMCURRENCYID,
      TOCURRENCYID,
      RATE,
      ASOFDATE,
      TYPECODE,
      SOURCECODEID,
      ADDEDBYID,
      CHANGEDBYID,
      DATEADDED,
      DATECHANGED
    )
    values
    (
      @BASEEXCHANGERATEID,
      @TRANSACTIONCURRENCYID,
      @BASECURRENCYID,
      @EXCHANGERATE,
      @DATE,
      2,
      null,
      @CHANGEAGENTID,
      @CHANGEAGENTID,
      @CURRENTDATE,
      @CURRENTDATE
    );
  end

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

    declare @ISANONYMOUS bit;
    declare @VEHICLECODE smallint;
    --declare @PAYOUTAMOUNT money;

    set @RECEIPTAMOUNT = coalesce(@RECEIPTAMOUNT, @AMOUNT); --For backwards compatibility with old behavior

    select 
      @ISANONYMOUS = PLANNEDGIFT.ISANONYMOUS, 
      @VEHICLECODE = PLANNEDGIFT.VEHICLECODE
    from
      dbo.PLANNEDGIFTADDITION
    inner join
      dbo.PLANNEDGIFT on PLANNEDGIFT.ID = PLANNEDGIFTADDITION.PLANNEDGIFTID
    where
      PLANNEDGIFTADDITION.ID = @PLANNEDGIFTADDITIONID;

    exec USP_ADDPLANNEDGIFTADDITIONREVENUE @PLANNEDGIFTADDITIONID, @AMOUNT, @DATE, @RECEIPTAMOUNT, @CHANGEAGENTID, @ISANONYMOUS, @ID
      @GENERATEGLDISTRIBUTIONS, @PDACCOUNTSYSTEMID, @TRANSACTIONCURRENCYID, @BASECURRENCYID, @BASEEXCHANGERATEID, @DONOTRECEIPT;

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

  return 0;