TR_MKTSEGMENTATIONTESTSEGMENT_IU_ORGANIZATIONGIFTAMOUNT

Definition

Copy


CREATE trigger [dbo].[TR_MKTSEGMENTATIONTESTSEGMENT_IU_ORGANIZATIONGIFTAMOUNT] on [dbo].[MKTSEGMENTATIONTESTSEGMENT] 
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.[MKTSEGMENTATIONTESTSEGMENT] set
        [MKTSEGMENTATIONTESTSEGMENT].[ORGANIZATIONGIFTAMOUNT] = [MKTSEGMENTATIONTESTSEGMENT].[GIFTAMOUNT],
        [MKTSEGMENTATIONTESTSEGMENT].[BASECURRENCYID] = @ORGANIZATIONCURRENCYID,
        [MKTSEGMENTATIONTESTSEGMENT].[CHANGEDBYID] = [MKTSEGMENTATIONTESTSEGMENT].[CHANGEDBYID],
        [MKTSEGMENTATIONTESTSEGMENT].[DATECHANGED] = [MKTSEGMENTATIONTESTSEGMENT].[DATECHANGED]
      from inserted
      inner join dbo.[MKTSEGMENTATIONTESTSEGMENT] on inserted.ID = [MKTSEGMENTATIONTESTSEGMENT].[ID]
      where [MKTSEGMENTATIONTESTSEGMENT].[ORGANIZATIONCURRENCYEXCHANGERATEID] is null
      and ([MKTSEGMENTATIONTESTSEGMENT].[BASECURRENCYID] is null or [MKTSEGMENTATIONTESTSEGMENT].[BASECURRENCYID] = @ORGANIZATIONCURRENCYID)
      and (
        [MKTSEGMENTATIONTESTSEGMENT].[ORGANIZATIONGIFTAMOUNT] <> [MKTSEGMENTATIONTESTSEGMENT].[GIFTAMOUNT]
        or ([MKTSEGMENTATIONTESTSEGMENT].[GIFTAMOUNT] = 0)
      );
    end
end