TR_MKTACKNOWLEDGEMENTMAILINGTEMPLATERULE_INSERTUPDATE_CURRENCY

Definition

Copy


CREATE trigger dbo.[TR_MKTACKNOWLEDGEMENTMAILINGTEMPLATERULE_INSERTUPDATE_CURRENCY] on dbo.[MKTACKNOWLEDGEMENTMAILINGTEMPLATERULE] 
after insert, update 
not for replication
as
begin
  set nocount on;

  declare @ORGANIZATIONCURRENCYID uniqueidentifier; 

  --Make sure the base currency is set equal to the parent if it is not already set...

  update dbo.[MKTACKNOWLEDGEMENTMAILINGTEMPLATERULE] set
    [MKTACKNOWLEDGEMENTMAILINGTEMPLATERULE].[BASECURRENCYID] = [MKTACKNOWLEDGEMENTMAILINGTEMPLATE].[BASECURRENCYID],
    [MKTACKNOWLEDGEMENTMAILINGTEMPLATERULE].[CHANGEDBYID] = [MKTACKNOWLEDGEMENTMAILINGTEMPLATERULE].[CHANGEDBYID],
    [MKTACKNOWLEDGEMENTMAILINGTEMPLATERULE].[DATECHANGED] = [MKTACKNOWLEDGEMENTMAILINGTEMPLATERULE].[DATECHANGED]
  from inserted
  inner join dbo.[MKTACKNOWLEDGEMENTMAILINGTEMPLATERULE] on inserted.ID = [MKTACKNOWLEDGEMENTMAILINGTEMPLATERULE].[ID]
  inner join dbo.[MKTACKNOWLEDGEMENTMAILINGTEMPLATE] on [MKTACKNOWLEDGEMENTMAILINGTEMPLATE].[ID] = [MKTACKNOWLEDGEMENTMAILINGTEMPLATERULE].[ACKNOWLEDGEMENTMAILINGTEMPLATEID]
  where [MKTACKNOWLEDGEMENTMAILINGTEMPLATERULE].[BASECURRENCYID] is null;

  if update(GIFTAMOUNT)
    begin
      set @ORGANIZATIONCURRENCYID = dbo.[UFN_CURRENCY_GETORGANIZATIONCURRENCY]();

      --Base currency will always be set by the update statement above, so we don't have to worry about it here...

      update dbo.[MKTACKNOWLEDGEMENTMAILINGTEMPLATERULE] set
        [MKTACKNOWLEDGEMENTMAILINGTEMPLATERULE].[ORGANIZATIONGIFTAMOUNT] = [MKTACKNOWLEDGEMENTMAILINGTEMPLATERULE].[GIFTAMOUNT],
        [MKTACKNOWLEDGEMENTMAILINGTEMPLATERULE].[CHANGEDBYID] = [MKTACKNOWLEDGEMENTMAILINGTEMPLATERULE].[CHANGEDBYID],
        [MKTACKNOWLEDGEMENTMAILINGTEMPLATERULE].[DATECHANGED] = [MKTACKNOWLEDGEMENTMAILINGTEMPLATERULE].[DATECHANGED]
      from inserted
      inner join dbo.[MKTACKNOWLEDGEMENTMAILINGTEMPLATERULE] on inserted.ID = [MKTACKNOWLEDGEMENTMAILINGTEMPLATERULE].[ID]
      where [MKTACKNOWLEDGEMENTMAILINGTEMPLATERULE].[CURRENCYEXCHANGERATEID] is null
      and [MKTACKNOWLEDGEMENTMAILINGTEMPLATERULE].[BASECURRENCYID] = @ORGANIZATIONCURRENCYID
      and ([MKTACKNOWLEDGEMENTMAILINGTEMPLATERULE].[ORGANIZATIONGIFTAMOUNT] <> [MKTACKNOWLEDGEMENTMAILINGTEMPLATERULE].[GIFTAMOUNT] or [MKTACKNOWLEDGEMENTMAILINGTEMPLATERULE].[GIFTAMOUNT] = 0);
    end
end