Copy Code Trigger Definition

          
                      CREATE trigger [dbo].[TR_PLANNEDGIFTADDITION_INSERTUPDATE_CURRENCY] on [dbo].[PLANNEDGIFTADDITION] 
                    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 amount.

                        if update(EXPECTEDGIFTAMOUNT) or update(RECOGNITIONAMOUNT)
                        begin
                            update
                                dbo.PLANNEDGIFTADDITION
                            set
                                PLANNEDGIFTADDITION.ORGANIZATIONEXPECTEDGIFTAMOUNT = PLANNEDGIFTADDITION.EXPECTEDGIFTAMOUNT,
                                PLANNEDGIFTADDITION.TRANSACTIONEXPECTEDGIFTAMOUNT = PLANNEDGIFTADDITION.EXPECTEDGIFTAMOUNT,

                                PLANNEDGIFTADDITION.ORGANIZATIONRECOGNITIONAMOUNT = PLANNEDGIFTADDITION.RECOGNITIONAMOUNT,
                                PLANNEDGIFTADDITION.TRANSACTIONRECOGNITIONAMOUNT = PLANNEDGIFTADDITION.RECOGNITIONAMOUNT,

                                PLANNEDGIFTADDITION.BASECURRENCYID = @ORGANIZATIONCURRENCYID,
                                PLANNEDGIFTADDITION.TRANSACTIONCURRENCYID = @ORGANIZATIONCURRENCYID,
                                PLANNEDGIFTADDITION.CHANGEDBYID = PLANNEDGIFTADDITION.CHANGEDBYID,
                                PLANNEDGIFTADDITION.DATECHANGED = PLANNEDGIFTADDITION.DATECHANGED
                            from
                                inserted
                            inner join
                                dbo.PLANNEDGIFTADDITION on inserted.ID = PLANNEDGIFTADDITION.ID
                            where
                                PLANNEDGIFTADDITION.ORGANIZATIONEXCHANGERATEID is null
                                and (PLANNEDGIFTADDITION.BASECURRENCYID is null or PLANNEDGIFTADDITION.BASECURRENCYID = @ORGANIZATIONCURRENCYID)
                                and PLANNEDGIFTADDITION.BASEEXCHANGERATEID is null
                                and (PLANNEDGIFTADDITION.TRANSACTIONCURRENCYID is null or PLANNEDGIFTADDITION.TRANSACTIONCURRENCYID = @ORGANIZATIONCURRENCYID)
                                and
                                (
                                    PLANNEDGIFTADDITION.ORGANIZATIONEXPECTEDGIFTAMOUNT <> PLANNEDGIFTADDITION.EXPECTEDGIFTAMOUNT
                                    or PLANNEDGIFTADDITION.TRANSACTIONEXPECTEDGIFTAMOUNT <> PLANNEDGIFTADDITION.EXPECTEDGIFTAMOUNT

                                    or PLANNEDGIFTADDITION.ORGANIZATIONRECOGNITIONAMOUNT <> PLANNEDGIFTADDITION.RECOGNITIONAMOUNT
                                    or PLANNEDGIFTADDITION.TRANSACTIONRECOGNITIONAMOUNT <> PLANNEDGIFTADDITION.RECOGNITIONAMOUNT
                                    
                                    or (
                                        PLANNEDGIFTADDITION.EXPECTEDGIFTAMOUNT = 0
                                        and PLANNEDGIFTADDITION.RECOGNITIONAMOUNT = 0
                                    )
                                );
                        end
                    end