![]() |
---|
create trigger [dbo].[TR_MEMBERSHIPPROGRAMADDON_INSERTUPDATE_CURRENCY] on [dbo].[MEMBERSHIPPROGRAMADDON] after insert, update not for replication as begin set nocount on; -- if we try to save without explicitly setting an organization price and an exchange rate, -- copy the price to the organization price and transaction price. if update(PRICE) begin declare @ORGANIZATIONCURRENCYID uniqueidentifier = dbo.UFN_CURRENCY_GETORGANIZATIONCURRENCY(); update dbo.MEMBERSHIPPROGRAMADDON set MEMBERSHIPPROGRAMADDON.ORGANIZATIONPRICE = MEMBERSHIPPROGRAMADDON.PRICE, MEMBERSHIPPROGRAMADDON.TRANSACTIONPRICE = MEMBERSHIPPROGRAMADDON.PRICE, MEMBERSHIPPROGRAMADDON.BASECURRENCYID = @ORGANIZATIONCURRENCYID, MEMBERSHIPPROGRAMADDON.TRANSACTIONCURRENCYID = @ORGANIZATIONCURRENCYID, MEMBERSHIPPROGRAMADDON.CHANGEDBYID = MEMBERSHIPPROGRAMADDON.CHANGEDBYID, MEMBERSHIPPROGRAMADDON.DATECHANGED = MEMBERSHIPPROGRAMADDON.DATECHANGED from inserted inner join dbo.MEMBERSHIPPROGRAMADDON on inserted.ID = MEMBERSHIPPROGRAMADDON.ID where MEMBERSHIPPROGRAMADDON.ORGANIZATIONEXCHANGERATEID is null and (MEMBERSHIPPROGRAMADDON.BASECURRENCYID is null or MEMBERSHIPPROGRAMADDON.BASECURRENCYID = @ORGANIZATIONCURRENCYID) and MEMBERSHIPPROGRAMADDON.BASEEXCHANGERATEID is null and (MEMBERSHIPPROGRAMADDON.TRANSACTIONCURRENCYID is null or MEMBERSHIPPROGRAMADDON.TRANSACTIONCURRENCYID = @ORGANIZATIONCURRENCYID) and ( MEMBERSHIPPROGRAMADDON.ORGANIZATIONPRICE <> MEMBERSHIPPROGRAMADDON.PRICE or MEMBERSHIPPROGRAMADDON.TRANSACTIONPRICE <> MEMBERSHIPPROGRAMADDON.PRICE or MEMBERSHIPPROGRAMADDON.PRICE = 0 ); end end |