CREATE trigger [dbo].[TR_MKTSEGMENTATIONSEGMENT_IU_ORGANIZATIONGIFTAMOUNT] on [dbo].[MKTSEGMENTATIONSEGMENT]
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(GIFTAMOUNT)
begin
declare @ORGANIZATIONCURRENCYID uniqueidentifier = dbo.[UFN_CURRENCY_GETORGANIZATIONCURRENCY]();
update
dbo.[MKTSEGMENTATIONSEGMENT]
set
[MKTSEGMENTATIONSEGMENT].[ORGANIZATIONGIFTAMOUNT] = [MKTSEGMENTATIONSEGMENT].[GIFTAMOUNT],
[MKTSEGMENTATIONSEGMENT].[BASECURRENCYID] = @ORGANIZATIONCURRENCYID,
[MKTSEGMENTATIONSEGMENT].[CHANGEDBYID] = [MKTSEGMENTATIONSEGMENT].[CHANGEDBYID],
[MKTSEGMENTATIONSEGMENT].[DATECHANGED] = [MKTSEGMENTATIONSEGMENT].[DATECHANGED]
from
inserted
inner join dbo.[MKTSEGMENTATIONSEGMENT] on inserted.ID = [MKTSEGMENTATIONSEGMENT].[ID]
where
[MKTSEGMENTATIONSEGMENT].[CURRENCYEXCHANGERATEID] is null
and ([MKTSEGMENTATIONSEGMENT].[BASECURRENCYID] is null or [MKTSEGMENTATIONSEGMENT].[BASECURRENCYID] = @ORGANIZATIONCURRENCYID)
and
(
[MKTSEGMENTATIONSEGMENT].[ORGANIZATIONGIFTAMOUNT] <> [MKTSEGMENTATIONSEGMENT].[GIFTAMOUNT]
);
end
end
|