![]() |
---|
CREATE trigger [dbo].[TR_CAMPAIGNHIERARCHYGOAL_IU_ORGANIZATIONAMOUNT] on [dbo].[CAMPAIGNHIERARCHYGOAL] after insert, update not for replication as begin set nocount on; -- 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(AMOUNT) begin declare @ORGANIZATIONCURRENCYID uniqueidentifier = dbo.UFN_CURRENCY_GETORGANIZATIONCURRENCY(); update dbo.CAMPAIGNHIERARCHYGOAL set CAMPAIGNHIERARCHYGOAL.ORGANIZATIONAMOUNT = CAMPAIGNHIERARCHYGOAL.AMOUNT, CAMPAIGNHIERARCHYGOAL.CHANGEDBYID = CAMPAIGNHIERARCHYGOAL.CHANGEDBYID, CAMPAIGNHIERARCHYGOAL.DATECHANGED = CAMPAIGNHIERARCHYGOAL.DATECHANGED from inserted inner join dbo.CAMPAIGNHIERARCHYGOAL on inserted.ID = CAMPAIGNHIERARCHYGOAL.ID inner join dbo.CAMPAIGN on CAMPAIGNHIERARCHYGOAL.CAMPAIGNID = CAMPAIGN.ID where CAMPAIGNHIERARCHYGOAL.CURRENCYEXCHANGERATEID is null and (CAMPAIGN.BASECURRENCYID is null or CAMPAIGN.BASECURRENCYID = @ORGANIZATIONCURRENCYID) and ( CAMPAIGNHIERARCHYGOAL.ORGANIZATIONAMOUNT <> CAMPAIGNHIERARCHYGOAL.AMOUNT or CAMPAIGNHIERARCHYGOAL.AMOUNT = 0 ); end end |