![]() |
---|
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 |