TR_CAMPAIGNSUBPRIORITY_IU_ORGANIZATIONAMOUNT
Definition
Copy
CREATE trigger [dbo].[TR_CAMPAIGNSUBPRIORITY_IU_ORGANIZATIONAMOUNT] on [dbo].[CAMPAIGNSUBPRIORITY]
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(GOAL)
begin
declare @ORGANIZATIONCURRENCYID uniqueidentifier = dbo.UFN_CURRENCY_GETORGANIZATIONCURRENCY();
update
dbo.CAMPAIGNSUBPRIORITY
set
CAMPAIGNSUBPRIORITY.ORGANIZATIONAMOUNT = CAMPAIGNSUBPRIORITY.GOAL,
CAMPAIGNSUBPRIORITY.CHANGEDBYID = CAMPAIGNSUBPRIORITY.CHANGEDBYID,
CAMPAIGNSUBPRIORITY.DATECHANGED = CAMPAIGNSUBPRIORITY.DATECHANGED
from
inserted
inner join dbo.CAMPAIGNSUBPRIORITY on inserted.ID = CAMPAIGNSUBPRIORITY.ID
inner join dbo.CAMPAIGNPRIORITY on CAMPAIGNSUBPRIORITY.CAMPAIGNPRIORITYID = CAMPAIGNPRIORITY.ID
inner join dbo.CAMPAIGN on CAMPAIGNPRIORITY.CAMPAIGNID = CAMPAIGN.ID
where
CAMPAIGNSUBPRIORITY.CURRENCYEXCHANGERATEID is null
and (CAMPAIGN.BASECURRENCYID is null or CAMPAIGN.BASECURRENCYID = @ORGANIZATIONCURRENCYID)
and (
CAMPAIGNSUBPRIORITY.ORGANIZATIONAMOUNT <> CAMPAIGNSUBPRIORITY.GOAL
or CAMPAIGNSUBPRIORITY.GOAL = 0
);
end
end