TR_DONORCHALLENGE_INSERTUPDATE_CURRENCY
Definition
Copy
CREATE trigger [dbo].[TR_DONORCHALLENGE_INSERTUPDATE_CURRENCY] on [dbo].[DONORCHALLENGE]
after insert, update
not for replication
as
begin
set nocount on;
if update(TOTALFUNDS) or update(MATCHTHRESHOLD) or update(MINGIFTAMOUNT) or update(MAXMATCHPERGIFT)
begin
declare @ORGANIZATIONCURRENCYID uniqueidentifier = dbo.UFN_CURRENCY_GETORGANIZATIONCURRENCY();
update
dbo.DONORCHALLENGE
set
DONORCHALLENGE.ORGANIZATIONTOTALFUNDS = DONORCHALLENGE.TOTALFUNDS,
DONORCHALLENGE.ORGANIZATIONMATCHTHRESHOLD = DONORCHALLENGE.MATCHTHRESHOLD,
DONORCHALLENGE.ORGANIZATIONMINGIFTAMOUNT = DONORCHALLENGE.MINGIFTAMOUNT,
DONORCHALLENGE.ORGANIZATIONMAXMATCHPERGIFT = DONORCHALLENGE.MAXMATCHPERGIFT,
DONORCHALLENGE.BASECURRENCYID = @ORGANIZATIONCURRENCYID,
DONORCHALLENGE.CHANGEDBYID = DONORCHALLENGE.CHANGEDBYID,
DONORCHALLENGE.DATECHANGED = DONORCHALLENGE.DATECHANGED
from
inserted
inner join
dbo.DONORCHALLENGE on inserted.ID = DONORCHALLENGE.ID
where
DONORCHALLENGE.ORGANIZATIONEXCHANGERATEID is null
and (DONORCHALLENGE.BASECURRENCYID is null or DONORCHALLENGE.BASECURRENCYID = @ORGANIZATIONCURRENCYID)
and
(
DONORCHALLENGE.ORGANIZATIONTOTALFUNDS <> DONORCHALLENGE.TOTALFUNDS
or DONORCHALLENGE.ORGANIZATIONMATCHTHRESHOLD <> DONORCHALLENGE.MATCHTHRESHOLD
or DONORCHALLENGE.ORGANIZATIONMINGIFTAMOUNT <> DONORCHALLENGE.MINGIFTAMOUNT
or DONORCHALLENGE.ORGANIZATIONMAXMATCHPERGIFT <> DONORCHALLENGE.MAXMATCHPERGIFT
or (
DONORCHALLENGE.TOTALFUNDS = 0 and
DONORCHALLENGE.MATCHTHRESHOLD = 0 and
DONORCHALLENGE.MINGIFTAMOUNT = 0 and
DONORCHALLENGE.MAXMATCHPERGIFT = 0
)
);
end
end