![]() |
---|
create trigger [dbo].[TR_MEMBERSHIPADDON_INSERTUPDATE_CURRENCY] on [dbo].[MEMBERSHIPADDON] 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(PURCHASEPRICE) begin declare @ORGANIZATIONCURRENCYID uniqueidentifier = dbo.UFN_CURRENCY_GETORGANIZATIONCURRENCY(); update dbo.MEMBERSHIPADDON set MEMBERSHIPADDON.ORGANIZATIONPURCHASEPRICE = MEMBERSHIPADDON.PURCHASEPRICE, MEMBERSHIPADDON.TRANSACTIONPURCHASEPRICE = MEMBERSHIPADDON.PURCHASEPRICE, MEMBERSHIPADDON.BASECURRENCYID = @ORGANIZATIONCURRENCYID, MEMBERSHIPADDON.TRANSACTIONCURRENCYID = @ORGANIZATIONCURRENCYID, MEMBERSHIPADDON.CHANGEDBYID = MEMBERSHIPADDON.CHANGEDBYID, MEMBERSHIPADDON.DATECHANGED = MEMBERSHIPADDON.DATECHANGED from inserted inner join dbo.MEMBERSHIPADDON on inserted.ID = MEMBERSHIPADDON.ID where MEMBERSHIPADDON.ORGANIZATIONEXCHANGERATEID is null and (MEMBERSHIPADDON.BASECURRENCYID is null or MEMBERSHIPADDON.BASECURRENCYID = @ORGANIZATIONCURRENCYID) and MEMBERSHIPADDON.BASEEXCHANGERATEID is null and (MEMBERSHIPADDON.TRANSACTIONCURRENCYID is null or MEMBERSHIPADDON.TRANSACTIONCURRENCYID = @ORGANIZATIONCURRENCYID) and ( MEMBERSHIPADDON.ORGANIZATIONPURCHASEPRICE <> MEMBERSHIPADDON.PURCHASEPRICE or MEMBERSHIPADDON.TRANSACTIONPURCHASEPRICE <> MEMBERSHIPADDON.PURCHASEPRICE or MEMBERSHIPADDON.PURCHASEPRICE = 0 ); end end |