TR_MKTASKLADDERITEM_INSERTUPDATE_CURRENCY

Definition

Copy


CREATE trigger dbo.[TR_MKTASKLADDERITEM_INSERTUPDATE_CURRENCY] on dbo.[MKTASKLADDERITEM] 
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.[MKTASKLADDERITEM] set
    [MKTASKLADDERITEM].[BASECURRENCYID] = [MKTASKLADDER].[BASECURRENCYID],
    [MKTASKLADDERITEM].[CHANGEDBYID] = [MKTASKLADDERITEM].[CHANGEDBYID],
    [MKTASKLADDERITEM].[DATECHANGED] = [MKTASKLADDERITEM].[DATECHANGED]
  from inserted
  inner join dbo.[MKTASKLADDERITEM] on inserted.ID = [MKTASKLADDERITEM].[ID]
  inner join dbo.[MKTASKLADDER] on [MKTASKLADDER].[ID] = [MKTASKLADDERITEM].[ASKLADDERID]
  where [MKTASKLADDERITEM].[BASECURRENCYID] is null;

  if update(MINIMUMENTRYAMOUNT) or update(ITEMVALUE1) or update(ITEMVALUE2) or update(ITEMVALUE3) or update(ITEMVALUE4) or update(ITEMVALUE5)
    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.[MKTASKLADDERITEM] set
        [MKTASKLADDERITEM].[ORGANIZATIONMINIMUMENTRYAMOUNT] = [MKTASKLADDERITEM].[MINIMUMENTRYAMOUNT],
        [MKTASKLADDERITEM].[ORGANIZATIONITEMVALUE1] = [MKTASKLADDERITEM].[ITEMVALUE1],
        [MKTASKLADDERITEM].[ORGANIZATIONITEMVALUE2] = [MKTASKLADDERITEM].[ITEMVALUE2],
        [MKTASKLADDERITEM].[ORGANIZATIONITEMVALUE3] = [MKTASKLADDERITEM].[ITEMVALUE3],
        [MKTASKLADDERITEM].[ORGANIZATIONITEMVALUE4] = [MKTASKLADDERITEM].[ITEMVALUE4],
        [MKTASKLADDERITEM].[ORGANIZATIONITEMVALUE5] = [MKTASKLADDERITEM].[ITEMVALUE5],
        [MKTASKLADDERITEM].[CHANGEDBYID] = [MKTASKLADDERITEM].[CHANGEDBYID],
        [MKTASKLADDERITEM].[DATECHANGED] = [MKTASKLADDERITEM].[DATECHANGED]
      from inserted
      inner join dbo.[MKTASKLADDERITEM] on inserted.ID = [MKTASKLADDERITEM].[ID]
      where [MKTASKLADDERITEM].[ORGANIZATIONEXCHANGERATEID] is null
      and [MKTASKLADDERITEM].[BASECURRENCYID] = @ORGANIZATIONCURRENCYID
      and 
      (
        [MKTASKLADDERITEM].[ORGANIZATIONMINIMUMENTRYAMOUNT] <> [MKTASKLADDERITEM].[MINIMUMENTRYAMOUNT] or
        [MKTASKLADDERITEM].[ORGANIZATIONITEMVALUE1] <> [MKTASKLADDERITEM].[ITEMVALUE1] or
        [MKTASKLADDERITEM].[ORGANIZATIONITEMVALUE2] <> [MKTASKLADDERITEM].[ITEMVALUE2] or
        [MKTASKLADDERITEM].[ORGANIZATIONITEMVALUE3] <> [MKTASKLADDERITEM].[ITEMVALUE3] or
        [MKTASKLADDERITEM].[ORGANIZATIONITEMVALUE4] <> [MKTASKLADDERITEM].[ITEMVALUE4] or
        [MKTASKLADDERITEM].[ORGANIZATIONITEMVALUE5] <> [MKTASKLADDERITEM].[ITEMVALUE5] or
        (
          [MKTASKLADDERITEM].[MINIMUMENTRYAMOUNT] = 0 and 
          [MKTASKLADDERITEM].[ITEMVALUE1] = 0 and
          [MKTASKLADDERITEM].[ITEMVALUE2] = 0 and
          [MKTASKLADDERITEM].[ITEMVALUE3] = 0 and
          [MKTASKLADDERITEM].[ITEMVALUE4] = 0 and
          [MKTASKLADDERITEM].[ITEMVALUE5] = 0
        )
      );
    end
end