TR_MKTMARKETINGPLANITEMEXPENSE_INSERTUPDATE_CURRENCY

Definition

Copy


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

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

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

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