TR_AUCTIONITEM_INSERTUPDATE_CURRENCY
Definition
Copy
CREATE trigger [dbo].[TR_AUCTIONITEM_INSERTUPDATE_CURRENCY] on [dbo].[AUCTIONITEM]
after insert, update
not for replication
as
begin
set nocount on;
declare @ORGANIZATIONCURRENCYID uniqueidentifier = dbo.UFN_CURRENCY_GETORGANIZATIONCURRENCY();
-- if we try to save an amount without explicitly setting an organization amount and an exchange rate,
-- copy the amount to the organization amount.
if update(VALUE) or update(MINIMUMBID)
begin
update
dbo.AUCTIONITEM
set
AUCTIONITEM.ORGANIZATIONVALUE = AUCTIONITEM.VALUE,
AUCTIONITEM.TRANSACTIONVALUE = AUCTIONITEM.VALUE,
AUCTIONITEM.ORGANIZATIONMINIMUMBID = AUCTIONITEM.MINIMUMBID,
AUCTIONITEM.TRANSACTIONMINIMUMBID = AUCTIONITEM.MINIMUMBID,
AUCTIONITEM.BASECURRENCYID = @ORGANIZATIONCURRENCYID,
AUCTIONITEM.TRANSACTIONCURRENCYID = @ORGANIZATIONCURRENCYID,
AUCTIONITEM.CHANGEDBYID = AUCTIONITEM.CHANGEDBYID,
AUCTIONITEM.DATECHANGED = AUCTIONITEM.DATECHANGED
from
inserted
inner join
dbo.AUCTIONITEM on inserted.ID = AUCTIONITEM.ID
where
AUCTIONITEM.ORIGINTOORGANIZATIONEXCHANGERATEID is null
and AUCTIONITEM.BASETOORGANIZATIONEXCHANGERATEID is null
and (AUCTIONITEM.BASECURRENCYID is null or AUCTIONITEM.BASECURRENCYID = @ORGANIZATIONCURRENCYID)
and AUCTIONITEM.BASEEXCHANGERATEID is null
and (AUCTIONITEM.TRANSACTIONCURRENCYID is null or AUCTIONITEM.TRANSACTIONCURRENCYID = @ORGANIZATIONCURRENCYID)
and
(
AUCTIONITEM.ORGANIZATIONVALUE <> AUCTIONITEM.VALUE
or AUCTIONITEM.TRANSACTIONVALUE <> AUCTIONITEM.VALUE
or AUCTIONITEM.ORGANIZATIONMINIMUMBID <> AUCTIONITEM.MINIMUMBID
or AUCTIONITEM.TRANSACTIONMINIMUMBID <> AUCTIONITEM.MINIMUMBID
or (AUCTIONITEM.VALUE = 0 and AUCTIONITEM.MINIMUMBID = 0)
);
end
end