TR_MEMBERSHIPPROMO_INSERTUPDATE_CURRENCY
Definition
Copy
create trigger [dbo].[TR_MEMBERSHIPPROMO_INSERTUPDATE_CURRENCY] on [dbo].[MEMBERSHIPPROMO]
after insert, update
not for replication
as
begin
set nocount on;
-- if we try to save without explicitly setting an organization amount and an exchange rate,
-- copy the price to the organization amount.
if update(AMOUNT)
begin
declare @ORGANIZATIONCURRENCYID uniqueidentifier = dbo.UFN_CURRENCY_GETORGANIZATIONCURRENCY();
update
dbo.MEMBERSHIPPROMO
set
MEMBERSHIPPROMO.ORGANIZATIONAMOUNT = MEMBERSHIPPROMO.AMOUNT,
MEMBERSHIPPROMO.BASECURRENCYID = @ORGANIZATIONCURRENCYID,
MEMBERSHIPPROMO.CHANGEDBYID = MEMBERSHIPPROMO.CHANGEDBYID,
MEMBERSHIPPROMO.DATECHANGED = MEMBERSHIPPROMO.DATECHANGED
from
inserted
inner join
dbo.MEMBERSHIPPROMO on inserted.ID = MEMBERSHIPPROMO.ID
where
MEMBERSHIPPROMO.ORGANIZATIONEXCHANGERATEID is null
and (MEMBERSHIPPROMO.BASECURRENCYID is null or MEMBERSHIPPROMO.BASECURRENCYID = @ORGANIZATIONCURRENCYID)
and (
MEMBERSHIPPROMO.ORGANIZATIONAMOUNT <> MEMBERSHIPPROMO.AMOUNT
or MEMBERSHIPPROMO.AMOUNT = 0
);
end
end