TR_PLANNEDGIFTRECONCILE_INSERTUPDATE_CURRENCY

Definition

Copy


create trigger [dbo].[TR_PLANNEDGIFTRECONCILE_INSERTUPDATE_CURRENCY] on [dbo].[PLANNEDGIFTRECONCILE]
after insert, update
not for replication
as
begin
  set nocount on;

  if update(OLDAMOUNT) or update(NEWAMOUNT)
    begin

      declare @ORGANIZATIONCURRENCYID uniqueidentifier = dbo.UFN_CURRENCY_GETORGANIZATIONCURRENCY();

      update
        dbo.PLANNEDGIFTRECONCILE
      set
        PLANNEDGIFTRECONCILE.TRANSACTIONOLDAMOUNT = PLANNEDGIFTRECONCILE.OLDAMOUNT,
        PLANNEDGIFTRECONCILE.TRANSACTIONNEWAMOUNT = PLANNEDGIFTRECONCILE.NEWAMOUNT,
        PLANNEDGIFTRECONCILE.BASECURRENCYID = @ORGANIZATIONCURRENCYID,
        PLANNEDGIFTRECONCILE.TRANSACTIONCURRENCYID = @ORGANIZATIONCURRENCYID,
        PLANNEDGIFTRECONCILE.CHANGEDBYID = PLANNEDGIFTRECONCILE.CHANGEDBYID,
        PLANNEDGIFTRECONCILE.DATECHANGED = PLANNEDGIFTRECONCILE.DATECHANGED
      from
        inserted
      inner join
        dbo.PLANNEDGIFTRECONCILE on inserted.ID = PLANNEDGIFTRECONCILE.ID
      where
        (PLANNEDGIFTRECONCILE.BASECURRENCYID is null or PLANNEDGIFTRECONCILE.BASECURRENCYID = @ORGANIZATIONCURRENCYID)
      and
        (PLANNEDGIFTRECONCILE.TRANSACTIONCURRENCYID is null or PLANNEDGIFTRECONCILE.TRANSACTIONCURRENCYID = @ORGANIZATIONCURRENCYID)
      and
        (
          PLANNEDGIFTRECONCILE.OLDAMOUNT <> PLANNEDGIFTRECONCILE.TRANSACTIONOLDAMOUNT
          or PLANNEDGIFTRECONCILE.NEWAMOUNT <> PLANNEDGIFTRECONCILE.TRANSACTIONNEWAMOUNT
          or (
              PLANNEDGIFTRECONCILE.OLDAMOUNT = 0
              and PLANNEDGIFTRECONCILE.NEWAMOUNT = 0
          )
        );

    end

end