![]() |
---|
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 |