TR_RECURRINGGIFTDEVELOPMENTFUNCTIONHISTORY_INSERTUPDATE_CURRENCY

Definition

Copy


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

                    if update(AMOUNT) or update(PREVIOUSAMOUNT)
                    begin
                        declare @ORGANIZATIONCURRENCYID uniqueidentifier = dbo.UFN_CURRENCY_GETORGANIZATIONCURRENCY(); 

                        update
                            H
                        set
                            H.ORGANIZATIONAMOUNT = H.AMOUNT,
                            H.TRANSACTIONAMOUNT = H.AMOUNT,
              H.PREVIOUSORGANIZATIONAMOUNT = H.PREVIOUSAMOUNT,
              H.PREVIOUSTRANSACTIONAMOUNT = H.PREVIOUSAMOUNT,
                            H.BASECURRENCYID = @ORGANIZATIONCURRENCYID,
                            H.TRANSACTIONCURRENCYID = @ORGANIZATIONCURRENCYID,
                            H.CHANGEDBYID = H.CHANGEDBYID,
                            H.DATECHANGED = H.DATECHANGED
                        from
                            inserted
                        inner join
                            dbo.RECURRINGGIFTDEVELOPMENTFUNCTIONHISTORY H on inserted.ID = H.ID
                        where
                            H.ORGANIZATIONEXCHANGERATEID is null
              and H.PREVIOUSORGANIZATIONEXCHANGERATEID is null
                            and (H.BASECURRENCYID is null or H.BASECURRENCYID = @ORGANIZATIONCURRENCYID)
                            and H.BASEEXCHANGERATEID is null
                            and H.PREVIOUSBASEEXCHANGERATEID is null
                            and (H.TRANSACTIONCURRENCYID is null or H.TRANSACTIONCURRENCYID = @ORGANIZATIONCURRENCYID)
                            and (
                                H.ORGANIZATIONAMOUNT <> H.AMOUNT
                                or H.TRANSACTIONAMOUNT <> H.AMOUNT
                                or H.PREVIOUSORGANIZATIONAMOUNT <> H.PREVIOUSAMOUNT
                                or H.PREVIOUSTRANSACTIONAMOUNT <> H.PREVIOUSAMOUNT
                                or (H.AMOUNT = 0
                                    and H.PREVIOUSAMOUNT = 0)
                            );
                    end
                end