USP_PLANNEDGIFTRECONCILE_SAVE

This procedure populates the data into Planned Gift Reconcile table.

Parameters

Parameter Parameter Type Mode Description
@PLANNEDGIFTID uniqueidentifier IN
@REVENUEID uniqueidentifier IN
@PLANNEDGIFTADDITIONID uniqueidentifier IN
@OLDAMOUNT money IN
@NEWAMOUNT money IN
@OLDDATE datetime IN
@NEWDATE datetime IN
@DESIGNATIONCHANGED bit IN
@CHANGEAGENTID uniqueidentifier IN
@CHANGEDATE datetime IN
@OLDTRANSACTIONAMOUNT money IN
@NEWTRANSACTIONAMOUNT money IN
@OLDDONOTRECEIPT bit IN
@DONOTRECEIPT bit IN
@OLDRECEIPTAMOUNT money IN
@RECEIPTAMOUNT money IN
@BASECURRENCYID uniqueidentifier IN
@TRANSACTIONCURRENCYID uniqueidentifier IN

Definition

Copy


CREATE procedure dbo.USP_PLANNEDGIFTRECONCILE_SAVE
(
  @PLANNEDGIFTID uniqueidentifier, 
  @REVENUEID uniqueidentifier,
  @PLANNEDGIFTADDITIONID uniqueidentifier,
  @OLDAMOUNT money,
  @NEWAMOUNT money,
  @OLDDATE datetime,
  @NEWDATE datetime,
  @DESIGNATIONCHANGED bit,
  @CHANGEAGENTID uniqueidentifier,
  @CHANGEDATE datetime,
  @OLDTRANSACTIONAMOUNT money,
  @NEWTRANSACTIONAMOUNT money,
  @OLDDONOTRECEIPT bit = null,
  @DONOTRECEIPT bit = null,
  @OLDRECEIPTAMOUNT money = null,
  @RECEIPTAMOUNT money = null,
  @BASECURRENCYID uniqueidentifier = null,
  @TRANSACTIONCURRENCYID uniqueidentifier = null
)

as
begin
    set nocount on;

  begin try

  if @OLDTRANSACTIONAMOUNT <> @NEWTRANSACTIONAMOUNT
    or @OLDDONOTRECEIPT <> @DONOTRECEIPT
    or @OLDDATE <> @NEWDATE
    or @OLDRECEIPTAMOUNT <> @RECEIPTAMOUNT
    or @DESIGNATIONCHANGED = 1
    begin
      if @CHANGEAGENTID is null
        exec dbo.USP_CHANGEAGENT_GETORCREATECHANGEAGENT @CHANGEAGENTID output;

      -- Backwards compatibility

      if @OLDDONOTRECEIPT is null
        or @DONOTRECEIPT is null
        or @OLDRECEIPTAMOUNT is null
        or @RECEIPTAMOUNT is null
        or @BASECURRENCYID is null
        or @TRANSACTIONCURRENCYID is null
      begin
        select
            @OLDDONOTRECEIPT = coalesce(@OLDDONOTRECEIPT, DONOTRECEIPT),
            @DONOTRECEIPT = coalesce(@DONOTRECEIPT, DONOTRECEIPT),
            @OLDRECEIPTAMOUNT = coalesce(@OLDRECEIPTAMOUNT, RECEIPTAMOUNT),
            @RECEIPTAMOUNT = coalesce(@RECEIPTAMOUNT, RECEIPTAMOUNT),
            @BASECURRENCYID = coalesce(@BASECURRENCYID, BASECURRENCYID),
            @TRANSACTIONCURRENCYID = coalesce(@TRANSACTIONCURRENCYID, TRANSACTIONCURRENCYID)
        from dbo.REVENUE
        where ID = @REVENUEID
      end

      declare @CURRENTDATE datetime = getdate();

      insert into dbo.PLANNEDGIFTRECONCILE(
        ID,
        PLANNEDGIFTID,
        REVENUEID,
        PLANNEDGIFTADDITIONID,
        OLDAMOUNT,
        NEWAMOUNT,
        OLDDATE,
        NEWDATE,
        DESIGNATIONCHANGED,
        COMPLETED,
        ADDEDBYID,
        CHANGEDBYID,
        DATEADDED,
        DATECHANGED,
        OLDDONOTRECEIPT,
        DONOTRECEIPT,
        OLDRECEIPTAMOUNT,
        RECEIPTAMOUNT,
        TRANSACTIONOLDAMOUNT,
        TRANSACTIONNEWAMOUNT,
        BASECURRENCYID,
        TRANSACTIONCURRENCYID
      )
      values (
        newid(),
        @PLANNEDGIFTID,
        @REVENUEID,
        @PLANNEDGIFTADDITIONID,
        @OLDAMOUNT,
        @NEWAMOUNT,
        @OLDDATE,
        @NEWDATE,
        @DESIGNATIONCHANGED,
        0,
        @CHANGEAGENTID,
        @CHANGEAGENTID,
        @CURRENTDATE,
        @CURRENTDATE,
        @OLDDONOTRECEIPT,
        @DONOTRECEIPT,
        @OLDRECEIPTAMOUNT,
        @RECEIPTAMOUNT,
        @OLDTRANSACTIONAMOUNT,
        @NEWTRANSACTIONAMOUNT,
        @BASECURRENCYID,
        @TRANSACTIONCURRENCYID
      )
    end

  end try

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