![]() |
---|
create trigger [dbo].[TR_CONSTITUENTRECOGNITION_INSERTUPDATE_CURRENCY] on [dbo].[CONSTITUENTRECOGNITION] 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 field. if update(TOTALAMOUNT) or update(TOTALPLANNEDGIFTAMOUNT) begin update dbo.CONSTITUENTRECOGNITION set CONSTITUENTRECOGNITION.ORGANIZATIONTOTALAMOUNT = CONSTITUENTRECOGNITION.TOTALAMOUNT, CONSTITUENTRECOGNITION.ORGANIZATIONTOTALPLANNEDGIFTAMOUNT = CONSTITUENTRECOGNITION.TOTALPLANNEDGIFTAMOUNT, CONSTITUENTRECOGNITION.BASECURRENCYID = @ORGANIZATIONCURRENCYID, CONSTITUENTRECOGNITION.CHANGEDBYID = CONSTITUENTRECOGNITION.CHANGEDBYID, CONSTITUENTRECOGNITION.DATECHANGED = CONSTITUENTRECOGNITION.DATECHANGED from inserted inner join dbo.CONSTITUENTRECOGNITION on inserted.ID = CONSTITUENTRECOGNITION.ID where CONSTITUENTRECOGNITION.ORGANIZATIONEXCHANGERATEID is null and (CONSTITUENTRECOGNITION.BASECURRENCYID is null or CONSTITUENTRECOGNITION.BASECURRENCYID = @ORGANIZATIONCURRENCYID) and ( CONSTITUENTRECOGNITION.ORGANIZATIONTOTALAMOUNT <> CONSTITUENTRECOGNITION.TOTALAMOUNT or CONSTITUENTRECOGNITION.ORGANIZATIONTOTALPLANNEDGIFTAMOUNT <> CONSTITUENTRECOGNITION.TOTALPLANNEDGIFTAMOUNT or (CONSTITUENTRECOGNITION.TOTALAMOUNT = 0 and CONSTITUENTRECOGNITION.TOTALPLANNEDGIFTAMOUNT = 0) ); end end |