TR_RECOGNITIONLEVELAMOUNT_INSERTUPDATE_CURRENCY

Definition

Copy


          CREATE trigger [dbo].[TR_RECOGNITIONLEVELAMOUNT_INSERTUPDATE_CURRENCY] on [dbo].[RECOGNITIONLEVELAMOUNT] after insert, update not for replication
          as
          begin
            set nocount on;

            declare @ORGANIZATIONCURRENCYID uniqueidentifier = dbo.UFN_CURRENCY_GETORGANIZATIONCURRENCY(); 

            -- If we try to save an amount without explicitly setting an organization amount

            -- and an exchange rate, copy the amount to the organization field.

            if update(AMOUNT) or update(PLANNEDGIFTAMOUNT)
            begin
              update dbo.RECOGNITIONLEVELAMOUNT
              set
                RECOGNITIONLEVELAMOUNT.ORGANIZATIONAMOUNT = RECOGNITIONLEVELAMOUNT.AMOUNT,
                RECOGNITIONLEVELAMOUNT.ORGANIZATIONPLANNEDGIFTAMOUNT = RECOGNITIONLEVELAMOUNT.PLANNEDGIFTAMOUNT,
                RECOGNITIONLEVELAMOUNT.BASECURRENCYID = @ORGANIZATIONCURRENCYID,
                RECOGNITIONLEVELAMOUNT.CHANGEDBYID = RECOGNITIONLEVELAMOUNT.CHANGEDBYID,
                RECOGNITIONLEVELAMOUNT.DATECHANGED = RECOGNITIONLEVELAMOUNT.DATECHANGED
              from inserted
              inner join dbo.RECOGNITIONLEVELAMOUNT on inserted.ID = RECOGNITIONLEVELAMOUNT.ID
              where
                RECOGNITIONLEVELAMOUNT.ORGANIZATIONEXCHANGERATEID is null
                and
                (
                  RECOGNITIONLEVELAMOUNT.BASECURRENCYID is null or
                  RECOGNITIONLEVELAMOUNT.BASECURRENCYID = @ORGANIZATIONCURRENCYID
                )
                and
                (
                  RECOGNITIONLEVELAMOUNT.ORGANIZATIONAMOUNT <> RECOGNITIONLEVELAMOUNT.AMOUNT or
                  RECOGNITIONLEVELAMOUNT.ORGANIZATIONPLANNEDGIFTAMOUNT <> RECOGNITIONLEVELAMOUNT.PLANNEDGIFTAMOUNT
                  or
                  (
                    RECOGNITIONLEVELAMOUNT.AMOUNT = 0 and
                    RECOGNITIONLEVELAMOUNT.PLANNEDGIFTAMOUNT = 0
                  )
                );
            end
          end