![]() |
---|
CREATE trigger [dbo].[TR_RECOGNITIONLEVELAMOUNT_INSERTUPDATE_CURRENCY] on [dbo].[RECOGNITIONLEVELAMOUNT] 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(AMOUNT) or update(PLANNEDGIFTAMOUNT) begin update dbo.RECOGNITIONLEVELAMOUNT set RECOGNITIONLEVELAMOUNT.ORGANIZATIONAMOUNT = RECOGNITIONLEVELAMOUNT.AMOUNT, RECOGNITIONLEVELAMOUNT.ORGANIZATIONPLANNEDGIFTAMOUNT = RECOGNITIONLEVELAMOUNT.PLANNEDGIFTAMOUNT, RECOGNITIONLEVELAMOUNT.BASECURRENCYID = @ORGANIZATIONCURRENCYID, RECOGNITIONLEVELAMOUNT.CHANGEDBYID = RECOGNITIONLEVELAMOUNT.CHANGEDBYID, RECOGNITIONLEVELAMOUNT.DATECHANGED = RECOGNITIONLEVELAMOUNT.DATECHANGED from inserted inner join dbo.RECOGNITIONLEVELAMOUNT on inserted.ID = RECOGNITIONLEVELAMOUNT.ID where RECOGNITIONLEVELAMOUNT.ORGANIZATIONEXCHANGERATEID is null and (RECOGNITIONLEVELAMOUNT.BASECURRENCYID is null or RECOGNITIONLEVELAMOUNT.BASECURRENCYID = @ORGANIZATIONCURRENCYID) and ( RECOGNITIONLEVELAMOUNT.ORGANIZATIONAMOUNT <> RECOGNITIONLEVELAMOUNT.AMOUNT or RECOGNITIONLEVELAMOUNT.ORGANIZATIONPLANNEDGIFTAMOUNT <> RECOGNITIONLEVELAMOUNT.PLANNEDGIFTAMOUNT or (RECOGNITIONLEVELAMOUNT.AMOUNT = 0 and RECOGNITIONLEVELAMOUNT.PLANNEDGIFTAMOUNT = 0) ); end end |