Copy Code Trigger Definition

                
                    CREATE trigger [dbo].[TR_RECURRINGGIFTINSTALLMENT_INSERTUPDATE_CURRENCY] on [dbo].[RECURRINGGIFTINSTALLMENT] 
                    after insert, update 
                    not for replication
                    as
                    begin
                        set nocount on;
                        
                        --Replaces CK_RECURRINGGIFTINSTALLMENT_VALIDDATE

                        if exists(select 1
                            from inserted I
                            inner join dbo.FINANCIALTRANSACTION FT on FT.ID = I.REVENUEID
                            where dbo.UFN_DATE_GETLATESTTIME(FT.DATE) > dbo.UFN_DATE_GETLATESTTIME(I.DATE))
                        BEGIN
                            RAISERROR ('CK_RECURRINGGIFTINSTALLMENT_VALIDDATE', 16, 1)
                            ROLLBACK
                        END
                        
                        if update(AMOUNT)
                        begin
                            declare @ORGANIZATIONCURRENCYID uniqueidentifier = dbo.UFN_CURRENCY_GETORGANIZATIONCURRENCY(); 

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