TR_RECOGNITIONLEVELBENEFIT_INSERTUPDATE_CURRENCY
Definition
Copy
CREATE trigger [dbo].[TR_RECOGNITIONLEVELBENEFIT_INSERTUPDATE_CURRENCY] on [dbo].[RECOGNITIONLEVELBENEFIT]
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 field.
if update(UNITVALUE)
begin
update
dbo.RECOGNITIONLEVELBENEFIT
set
RECOGNITIONLEVELBENEFIT.ORGANIZATIONUNITVALUE = RECOGNITIONLEVELBENEFIT.UNITVALUE,
RECOGNITIONLEVELBENEFIT.BASECURRENCYID = @ORGANIZATIONCURRENCYID,
RECOGNITIONLEVELBENEFIT.CHANGEDBYID = RECOGNITIONLEVELBENEFIT.CHANGEDBYID,
RECOGNITIONLEVELBENEFIT.DATECHANGED = RECOGNITIONLEVELBENEFIT.DATECHANGED
from
inserted
inner join
dbo.RECOGNITIONLEVELBENEFIT on inserted.ID = RECOGNITIONLEVELBENEFIT.ID
where
RECOGNITIONLEVELBENEFIT.ORGANIZATIONEXCHANGERATEID is null
and (RECOGNITIONLEVELBENEFIT.BASECURRENCYID is null or RECOGNITIONLEVELBENEFIT.BASECURRENCYID = @ORGANIZATIONCURRENCYID)
and
(
RECOGNITIONLEVELBENEFIT.ORGANIZATIONUNITVALUE <> RECOGNITIONLEVELBENEFIT.UNITVALUE
or RECOGNITIONLEVELBENEFIT.UNITVALUE = 0
);
end
end