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