TR_PLANNEDGIFTASSET_INSERTUPDATE_CURRENCY

Definition

Copy


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

                        declare @ORGANIZATIONCURRENCYID uniqueidentifier = dbo.UFN_CURRENCY_GETORGANIZATIONCURRENCY(); 

                        -- If we try to save a value or cost basis without explicitly setting an organization value

                        -- and an exchange rate, copy the value and cost basis to their organization and transaction

                        -- amount fields.

                        if update(VALUE) or update(COSTBASIS)
                        begin
                            update
                                dbo.PLANNEDGIFTASSET
                            set
                                PLANNEDGIFTASSET.ORGANIZATIONVALUE = PLANNEDGIFTASSET.VALUE,
                                PLANNEDGIFTASSET.TRANSACTIONVALUE = PLANNEDGIFTASSET.VALUE,
                                PLANNEDGIFTASSET.ORGANIZATIONCOSTBASIS = PLANNEDGIFTASSET.COSTBASIS,
                                PLANNEDGIFTASSET.TRANSACTIONCOSTBASIS = PLANNEDGIFTASSET.COSTBASIS,

                                PLANNEDGIFTASSET.BASECURRENCYID = @ORGANIZATIONCURRENCYID,
                                PLANNEDGIFTASSET.TRANSACTIONCURRENCYID = @ORGANIZATIONCURRENCYID,
                                PLANNEDGIFTASSET.CHANGEDBYID = PLANNEDGIFTASSET.CHANGEDBYID,
                                PLANNEDGIFTASSET.DATECHANGED = PLANNEDGIFTASSET.DATECHANGED
                            from
                                inserted
                            inner join
                                dbo.PLANNEDGIFTASSET on inserted.ID = PLANNEDGIFTASSET.ID
                            where
                                PLANNEDGIFTASSET.ORGANIZATIONEXCHANGERATEID is null
                                and (PLANNEDGIFTASSET.BASECURRENCYID is null or PLANNEDGIFTASSET.BASECURRENCYID = @ORGANIZATIONCURRENCYID)
                                and PLANNEDGIFTASSET.BASEEXCHANGERATEID is null
                                and (PLANNEDGIFTASSET.TRANSACTIONCURRENCYID is null or PLANNEDGIFTASSET.TRANSACTIONCURRENCYID = @ORGANIZATIONCURRENCYID)
                                and
                                (
                                    PLANNEDGIFTASSET.ORGANIZATIONVALUE <> PLANNEDGIFTASSET.VALUE
                                    or PLANNEDGIFTASSET.TRANSACTIONVALUE <> PLANNEDGIFTASSET.VALUE
                                    or PLANNEDGIFTASSET.ORGANIZATIONCOSTBASIS <> PLANNEDGIFTASSET.COSTBASIS
                                    or PLANNEDGIFTASSET.TRANSACTIONCOSTBASIS <> PLANNEDGIFTASSET.COSTBASIS
                                    or (PLANNEDGIFTASSET.VALUE = 0 and PLANNEDGIFTASSET.COSTBASIS = 0)
                                );
                        end
                    end