USP_DATAFORMTEMPLATE_EDIT_DONORCHALLENGEMATCH

The save procedure used by the edit dataform template "Donor Challenge Match Edit Form".

Parameters

Parameter Parameter Type Mode Description
@ID uniqueidentifier IN The input ID parameter indicating the ID of the record being edited.
@AMOUNT money IN Encumbered amount
@REVENUERECOGNITIONTYPECODEID uniqueidentifier IN Recognition credit
@CHANGEAGENTID uniqueidentifier IN Input parameter indicating the ID of the change agent invoking the procedure.
@DESIGNATIONID uniqueidentifier IN Encumbered designation

Definition

Copy


CREATE procedure dbo.USP_DATAFORMTEMPLATE_EDIT_DONORCHALLENGEMATCH
(
  @ID uniqueidentifier,
  @AMOUNT money,
  @REVENUERECOGNITIONTYPECODEID uniqueidentifier,
  @CHANGEAGENTID uniqueidentifier,
  @DESIGNATIONID uniqueidentifier
)
as
  set nocount on;

  if exists(select ID from dbo.DONORCHALLENGEENCUMBERED where ID = @ID and STATUSTYPECODE <> 2)
    exec dbo.USP_DONORCHALLENGEENCUMBERED_VALIDATEAMOUNT @AMOUNT = @AMOUNT, @DONORCHALLENGEENCUMBEREDID = @ID;

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

  declare @CURRENTDATE datetime;
  set @CURRENTDATE = getdate();

  begin try
    declare @DATEADDED datetime;
    declare @ORGANIZATIONEXCHANGERATEID uniqueidentifier;
    declare @BASECURRENCYID uniqueidentifier;
    declare @ORGANIZATIONCURRENCYID uniqueidentifier = dbo.UFN_CURRENCY_GETORGANIZATIONCURRENCY();
    declare @ORGANIZATIONAMOUNT money;

    select
      @BASECURRENCYID = BASECURRENCYID,
      @DATEADDED = DATEADDED
    from
      dbo.DONORCHALLENGEENCUMBERED
    where
      ID = @ID;

    set @ORGANIZATIONEXCHANGERATEID = dbo.UFN_CURRENCYEXCHANGERATE_GETLATEST(@BASECURRENCYID, @ORGANIZATIONCURRENCYID, @DATEADDED, 0, null);
    set @ORGANIZATIONAMOUNT = dbo.UFN_CURRENCY_CONVERT(@AMOUNT, @ORGANIZATIONEXCHANGERATEID);

    update dbo.DONORCHALLENGEENCUMBERED set
      AMOUNT = @AMOUNT,
      ORGANIZATIONAMOUNT = @ORGANIZATIONAMOUNT,
      ORGANIZATIONEXCHANGERATEID = @ORGANIZATIONEXCHANGERATEID,
      REVENUERECOGNITIONTYPECODEID = @REVENUERECOGNITIONTYPECODEID,
      DESIGNATIONID = @DESIGNATIONID,
      CHANGEDBYID = @CHANGEAGENTID,
      DATECHANGED = @CURRENTDATE
    where
      ID = @ID;
  end try
  begin catch
    exec dbo.USP_RAISE_ERROR;
    return 1;
  end catch

  return 0;