TR_MKTSEGMENTATIONBUDGET_IU_ORGANIZATIONAMOUNTS
Definition
Copy
create trigger [dbo].[TR_MKTSEGMENTATIONBUDGET_IU_ORGANIZATIONAMOUNTS] on [dbo].[MKTSEGMENTATIONBUDGET]
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(BUDGETAMOUNT) or update(FIXEDCOST)
begin
declare @ORGANIZATIONCURRENCYID uniqueidentifier = dbo.[UFN_CURRENCY_GETORGANIZATIONCURRENCY]();
update
dbo.[MKTSEGMENTATIONBUDGET]
set
[MKTSEGMENTATIONBUDGET].[ORGANIZATIONBUDGETAMOUNT] = [MKTSEGMENTATIONBUDGET].[BUDGETAMOUNT],
[MKTSEGMENTATIONBUDGET].[ORGANIZATIONFIXEDCOST] = [MKTSEGMENTATIONBUDGET].[FIXEDCOST],
[MKTSEGMENTATIONBUDGET].[BASECURRENCYID] = @ORGANIZATIONCURRENCYID,
[MKTSEGMENTATIONBUDGET].[CHANGEDBYID] = [MKTSEGMENTATIONBUDGET].[CHANGEDBYID],
[MKTSEGMENTATIONBUDGET].[DATECHANGED] = [MKTSEGMENTATIONBUDGET].[DATECHANGED]
from
inserted
inner join dbo.[MKTSEGMENTATIONBUDGET] on inserted.ID = [MKTSEGMENTATIONBUDGET].[ID]
where
[MKTSEGMENTATIONBUDGET].[ORGANIZATIONCURRENCYEXCHANGERATEID] is null
and ([MKTSEGMENTATIONBUDGET].[BASECURRENCYID] is null or [MKTSEGMENTATIONBUDGET].[BASECURRENCYID] = @ORGANIZATIONCURRENCYID)
and
(
[MKTSEGMENTATIONBUDGET].[ORGANIZATIONBUDGETAMOUNT] <> [MKTSEGMENTATIONBUDGET].[BUDGETAMOUNT]
or [MKTSEGMENTATIONBUDGET].[ORGANIZATIONFIXEDCOST] <> [MKTSEGMENTATIONBUDGET].[FIXEDCOST]
or ([MKTSEGMENTATIONBUDGET].[BUDGETAMOUNT] = 0 and [MKTSEGMENTATIONBUDGET].[FIXEDCOST] = 0)
);
end
end