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