TR_MEMBERSHIPADDON_INSERTUPDATE_CURRENCY
Definition
Copy
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