TR_GIFTFEEGLDISTRIBUTION_INSERTUPDATE_CURRENCY

Definition

Copy


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

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

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