TR_MKTMARKETINGPLANITEM_INSERTUPDATE_CURRENCY

Definition

Copy


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

  update dbo.[MKTMARKETINGPLANITEM] set
    [MKTMARKETINGPLANITEM].[BASECURRENCYID] = [MKTMARKETINGPLAN].[BASECURRENCYID],
    [MKTMARKETINGPLANITEM].[CHANGEDBYID] = [MKTMARKETINGPLANITEM].[CHANGEDBYID],
    [MKTMARKETINGPLANITEM].[DATECHANGED] = [MKTMARKETINGPLANITEM].[DATECHANGED]
  from inserted
  inner join dbo.[MKTMARKETINGPLANITEM] on [MKTMARKETINGPLANITEM].[ID] = inserted.[ID]
  inner join dbo.[MKTMARKETINGPLAN] on [MKTMARKETINGPLAN].[ID] = [MKTMARKETINGPLANITEM].[MARKETINGPLANID]
  where [MKTMARKETINGPLANITEM].[BASECURRENCYID] is null;

  if update([BUDGETAMOUNT]) or update([TOTALREVENUEGOAL]) or update ([AVERAGEREVENUEGOAL])
    begin
      declare @ORGANIZATIONCURRENCYID uniqueidentifier = dbo.[UFN_CURRENCY_GETORGANIZATIONCURRENCY]();

      update dbo.[MKTMARKETINGPLANITEM] set
        [MKTMARKETINGPLANITEM].[ORGANIZATIONBUDGETAMOUNT] = [MKTMARKETINGPLANITEM].[BUDGETAMOUNT],
        [MKTMARKETINGPLANITEM].[ORGANIZATIONTOTALREVENUEGOAL] = [MKTMARKETINGPLANITEM].[TOTALREVENUEGOAL],
        [MKTMARKETINGPLANITEM].[ORGANIZATIONAVERAGEREVENUEGOAL] = [MKTMARKETINGPLANITEM].[AVERAGEREVENUEGOAL],
        [MKTMARKETINGPLANITEM].[CHANGEDBYID] = [MKTMARKETINGPLANITEM].[CHANGEDBYID],
        [MKTMARKETINGPLANITEM].[DATECHANGED] = [MKTMARKETINGPLANITEM].[DATECHANGED]
      from inserted
      inner join dbo.[MKTMARKETINGPLANITEM] on [MKTMARKETINGPLANITEM].[ID] = inserted.[ID]
      where [MKTMARKETINGPLANITEM].[CURRENCYEXCHANGERATEID] is null
      and [MKTMARKETINGPLANITEM].[BASECURRENCYID] = @ORGANIZATIONCURRENCYID
      and ([MKTMARKETINGPLANITEM].[ORGANIZATIONBUDGETAMOUNT] <> [MKTMARKETINGPLANITEM].[BUDGETAMOUNT]
        or [MKTMARKETINGPLANITEM].[ORGANIZATIONTOTALREVENUEGOAL] <> [MKTMARKETINGPLANITEM].[TOTALREVENUEGOAL]
        or [MKTMARKETINGPLANITEM].[ORGANIZATIONAVERAGEREVENUEGOAL] <> [MKTMARKETINGPLANITEM].[AVERAGEREVENUEGOAL]
        or ([MKTMARKETINGPLANITEM].[BUDGETAMOUNT] = 0 and [MKTMARKETINGPLANITEM].[TOTALREVENUEGOAL] = 0 and [MKTMARKETINGPLANITEM].[AVERAGEREVENUEGOAL] = 0)
      );
    end
end