USP_DATAFORMTEMPLATE_ADD_DONORCHALLENGERESERVEDFUND

The save procedure used by the add dataform template "Donor Challenge Reserved Fund Add Form".

Parameters

Parameter Parameter Type Mode Description
@ID uniqueidentifier INOUT The output parameter indicating the ID of the record added.
@CHANGEAGENTID uniqueidentifier IN Input parameter indicating the ID of the change agent invoking the procedure.
@CURRENTAPPUSERID uniqueidentifier IN Input parameter indicating the ID of the current user.
@DONORCHALLENGEID uniqueidentifier IN Input parameter indicating the context ID for the record being added.
@CONSTITUENTID uniqueidentifier IN Constituent
@AMOUNT money IN Encumbered amount

Definition

Copy


CREATE procedure dbo.USP_DATAFORMTEMPLATE_ADD_DONORCHALLENGERESERVEDFUND
(
  @ID uniqueidentifier = null output,
  @CHANGEAGENTID uniqueidentifier = null,
  @CURRENTAPPUSERID uniqueidentifier,
  @DONORCHALLENGEID uniqueidentifier,
  @CONSTITUENTID uniqueidentifier,
  @AMOUNT money
)
as
begin
  set nocount on;

  begin try

    exec dbo.USP_DONORCHALLENGEENCUMBERED_VALIDATEAMOUNT @AMOUNT = @AMOUNT, @DONORCHALLENGEID = @DONORCHALLENGEID, @RESERVED = 1;

    declare @CURRENTDATE datetime = getdate();

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

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

    declare @BASECURRENCYID uniqueidentifier;
    select @BASECURRENCYID = DONORCHALLENGE.BASECURRENCYID from dbo.DONORCHALLENGE where ID = @DONORCHALLENGEID;

    declare @ORGANIZATIONCURRENCYID uniqueidentifier = dbo.UFN_CURRENCY_GETORGANIZATIONCURRENCY();
    declare @ORGANIZATIONEXCHANGERATEID uniqueidentifier = dbo.UFN_CURRENCYEXCHANGERATE_GETLATEST(@BASECURRENCYID, @ORGANIZATIONCURRENCYID, @CURRENTDATE, 0, null);
    declare @ORGANIZATIONAMOUNT money = dbo.UFN_CURRENCY_CONVERT(@AMOUNT, @ORGANIZATIONEXCHANGERATEID);

    insert into dbo.DONORCHALLENGEENCUMBERED
    (
      ID,
      DONORCHALLENGEID,
      CONSTITUENTID,
      AMOUNT,
      METHODTYPECODE,
      BASECURRENCYID,
      ORGANIZATIONAMOUNT,
      ORGANIZATIONEXCHANGERATEID,
      ADDEDBYID,
      CHANGEDBYID,
      DATEADDED,
      DATECHANGED
    )
    values
    (
      @ID,
      @DONORCHALLENGEID,
      @CONSTITUENTID,
      @AMOUNT,
      2,
      @BASECURRENCYID,
      @ORGANIZATIONAMOUNT,
      @ORGANIZATIONEXCHANGERATEID,
      @CHANGEAGENTID,
      @CHANGEAGENTID,
      @CURRENTDATE,
      @CURRENTDATE
    )

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

  return 0
end