TR_PLANNEDGIFTADDITIONASSET_INSERTUPDATE_CURRENCY

Definition

Copy


                    CREATE trigger [dbo].[TR_PLANNEDGIFTADDITIONASSET_INSERTUPDATE_CURRENCY] on [dbo].[PLANNEDGIFTADDITIONASSET] 
                    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.PLANNEDGIFTADDITIONASSET
                            set
                                PLANNEDGIFTADDITIONASSET.ORGANIZATIONVALUE = PLANNEDGIFTADDITIONASSET.VALUE,
                                PLANNEDGIFTADDITIONASSET.TRANSACTIONVALUE = PLANNEDGIFTADDITIONASSET.VALUE,
                                PLANNEDGIFTADDITIONASSET.ORGANIZATIONCOSTBASIS = PLANNEDGIFTADDITIONASSET.COSTBASIS,
                                PLANNEDGIFTADDITIONASSET.TRANSACTIONCOSTBASIS = PLANNEDGIFTADDITIONASSET.COSTBASIS,

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