TR_CAMPAIGNHIERARCHYGOAL_IU_ORGANIZATIONAMOUNT
Definition
Copy
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