TR_PLANNEDGIFT_INSERTUPDATE_CURRENCY

Definition

Copy


          CREATE trigger [dbo].[TR_PLANNEDGIFT_INSERTUPDATE_CURRENCY] on [dbo].[PLANNEDGIFT] 
          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) or update(NETPRESENTVALUE) or update(REMAINDERVALUE) or update(PAYOUTAMOUNT) or update(LIFEINSURANCEPREMIUM) or update(TOTALPAYOUT) or update(REALIZEDVALUE) or update(LIFEINSURANCEFACEVALUE) or update(LIFEINSURANCEOUTSTANDINGLOANAMOUNT)
            begin
              update
                dbo.PLANNEDGIFT
              set
                PLANNEDGIFT.ORGANIZATIONEXPECTEDGIFTAMOUNT = PLANNEDGIFT.EXPECTEDGIFTAMOUNT,
                PLANNEDGIFT.TRANSACTIONEXPECTEDGIFTAMOUNT = PLANNEDGIFT.EXPECTEDGIFTAMOUNT,

                PLANNEDGIFT.ORGANIZATIONRECOGNITIONAMOUNT = PLANNEDGIFT.RECOGNITIONAMOUNT,
                PLANNEDGIFT.TRANSACTIONRECOGNITIONAMOUNT = PLANNEDGIFT.RECOGNITIONAMOUNT,

                PLANNEDGIFT.ORGANIZATIONNETPRESENTVALUE = PLANNEDGIFT.NETPRESENTVALUE,
                PLANNEDGIFT.TRANSACTIONNETPRESENTVALUE = PLANNEDGIFT.NETPRESENTVALUE,

                PLANNEDGIFT.ORGANIZATIONREMAINDERVALUE = PLANNEDGIFT.REMAINDERVALUE,
                PLANNEDGIFT.TRANSACTIONREMAINDERVALUE = PLANNEDGIFT.REMAINDERVALUE,

                PLANNEDGIFT.ORGANIZATIONPAYOUTAMOUNT = PLANNEDGIFT.PAYOUTAMOUNT,
                PLANNEDGIFT.TRANSACTIONPAYOUTAMOUNT = PLANNEDGIFT.PAYOUTAMOUNT,

                PLANNEDGIFT.ORGANIZATIONLIFEINSURANCEPREMIUM = PLANNEDGIFT.LIFEINSURANCEPREMIUM,
                PLANNEDGIFT.TRANSACTIONLIFEINSURANCEPREMIUM = PLANNEDGIFT.LIFEINSURANCEPREMIUM,

                PLANNEDGIFT.ORGANIZATIONTOTALPAYOUT = PLANNEDGIFT.TOTALPAYOUT,
                PLANNEDGIFT.TRANSACTIONTOTALPAYOUT = PLANNEDGIFT.TOTALPAYOUT,

                PLANNEDGIFT.ORGANIZATIONREALIZEDVALUE = PLANNEDGIFT.REALIZEDVALUE,
                PLANNEDGIFT.TRANSACTIONREALIZEDVALUE = PLANNEDGIFT.REALIZEDVALUE,

                PLANNEDGIFT.ORGANIZATIONLIFEINSURANCEFACEVALUE = PLANNEDGIFT.LIFEINSURANCEFACEVALUE,
                PLANNEDGIFT.TRANSACTIONLIFEINSURANCEFACEVALUE = PLANNEDGIFT.LIFEINSURANCEFACEVALUE,

                PLANNEDGIFT.ORGANIZATIONLIFEINSURANCEOUTSTANDINGLOANAMOUNT = PLANNEDGIFT.LIFEINSURANCEOUTSTANDINGLOANAMOUNT,
                PLANNEDGIFT.TRANSACTIONLIFEINSURANCEOUTSTANDINGLOANAMOUNT = PLANNEDGIFT.LIFEINSURANCEOUTSTANDINGLOANAMOUNT,

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

                  or PLANNEDGIFT.ORGANIZATIONRECOGNITIONAMOUNT <> PLANNEDGIFT.RECOGNITIONAMOUNT
                  or PLANNEDGIFT.TRANSACTIONRECOGNITIONAMOUNT <> PLANNEDGIFT.RECOGNITIONAMOUNT

                  or PLANNEDGIFT.ORGANIZATIONNETPRESENTVALUE <> PLANNEDGIFT.NETPRESENTVALUE
                  or PLANNEDGIFT.TRANSACTIONNETPRESENTVALUE <> PLANNEDGIFT.NETPRESENTVALUE

                  or PLANNEDGIFT.ORGANIZATIONREMAINDERVALUE <> PLANNEDGIFT.REMAINDERVALUE
                  or PLANNEDGIFT.TRANSACTIONREMAINDERVALUE <> PLANNEDGIFT.REMAINDERVALUE

                  or PLANNEDGIFT.ORGANIZATIONPAYOUTAMOUNT <> PLANNEDGIFT.PAYOUTAMOUNT
                  or PLANNEDGIFT.TRANSACTIONPAYOUTAMOUNT <> PLANNEDGIFT.PAYOUTAMOUNT

                  or PLANNEDGIFT.ORGANIZATIONLIFEINSURANCEPREMIUM <> PLANNEDGIFT.LIFEINSURANCEPREMIUM
                  or PLANNEDGIFT.TRANSACTIONLIFEINSURANCEPREMIUM <> PLANNEDGIFT.LIFEINSURANCEPREMIUM

                  or PLANNEDGIFT.ORGANIZATIONTOTALPAYOUT <> PLANNEDGIFT.TOTALPAYOUT
                  or PLANNEDGIFT.TRANSACTIONTOTALPAYOUT <> PLANNEDGIFT.TOTALPAYOUT

                  or PLANNEDGIFT.ORGANIZATIONREALIZEDVALUE <> PLANNEDGIFT.REALIZEDVALUE
                  or PLANNEDGIFT.TRANSACTIONREALIZEDVALUE <> PLANNEDGIFT.REALIZEDVALUE

                  or PLANNEDGIFT.ORGANIZATIONLIFEINSURANCEFACEVALUE <> PLANNEDGIFT.LIFEINSURANCEFACEVALUE
                  or PLANNEDGIFT.TRANSACTIONLIFEINSURANCEFACEVALUE <> PLANNEDGIFT.LIFEINSURANCEFACEVALUE

                  or PLANNEDGIFT.ORGANIZATIONLIFEINSURANCEOUTSTANDINGLOANAMOUNT <> PLANNEDGIFT.LIFEINSURANCEOUTSTANDINGLOANAMOUNT
                  or PLANNEDGIFT.TRANSACTIONLIFEINSURANCEOUTSTANDINGLOANAMOUNT <> PLANNEDGIFT.LIFEINSURANCEOUTSTANDINGLOANAMOUNT

                  or (
                    PLANNEDGIFT.EXPECTEDGIFTAMOUNT = 0
                    and PLANNEDGIFT.RECOGNITIONAMOUNT = 0
                    and PLANNEDGIFT.NETPRESENTVALUE = 0
                    and PLANNEDGIFT.REMAINDERVALUE = 0
                    and PLANNEDGIFT.PAYOUTAMOUNT = 0
                    and PLANNEDGIFT.LIFEINSURANCEPREMIUM = 0
                    and PLANNEDGIFT.TOTALPAYOUT = 0
                    and PLANNEDGIFT.REALIZEDVALUE = 0
                    and PLANNEDGIFT.LIFEINSURANCEFACEVALUE = 0
                    and PLANNEDGIFT.LIFEINSURANCEOUTSTANDINGLOANAMOUNT = 0
                  )
                );
            end
          end