TR_CONSTITUENTRECOGNITION_INSERTUPDATE_CURRENCY
Definition
Copy
create trigger [dbo].[TR_CONSTITUENTRECOGNITION_INSERTUPDATE_CURRENCY] on [dbo].[CONSTITUENTRECOGNITION]
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(TOTALAMOUNT) or update(TOTALPLANNEDGIFTAMOUNT)
begin
update
dbo.CONSTITUENTRECOGNITION
set
CONSTITUENTRECOGNITION.ORGANIZATIONTOTALAMOUNT = CONSTITUENTRECOGNITION.TOTALAMOUNT,
CONSTITUENTRECOGNITION.ORGANIZATIONTOTALPLANNEDGIFTAMOUNT = CONSTITUENTRECOGNITION.TOTALPLANNEDGIFTAMOUNT,
CONSTITUENTRECOGNITION.BASECURRENCYID = @ORGANIZATIONCURRENCYID,
CONSTITUENTRECOGNITION.CHANGEDBYID = CONSTITUENTRECOGNITION.CHANGEDBYID,
CONSTITUENTRECOGNITION.DATECHANGED = CONSTITUENTRECOGNITION.DATECHANGED
from
inserted
inner join
dbo.CONSTITUENTRECOGNITION on inserted.ID = CONSTITUENTRECOGNITION.ID
where
CONSTITUENTRECOGNITION.ORGANIZATIONEXCHANGERATEID is null
and (CONSTITUENTRECOGNITION.BASECURRENCYID is null or CONSTITUENTRECOGNITION.BASECURRENCYID = @ORGANIZATIONCURRENCYID)
and
(
CONSTITUENTRECOGNITION.ORGANIZATIONTOTALAMOUNT <> CONSTITUENTRECOGNITION.TOTALAMOUNT or
CONSTITUENTRECOGNITION.ORGANIZATIONTOTALPLANNEDGIFTAMOUNT <> CONSTITUENTRECOGNITION.TOTALPLANNEDGIFTAMOUNT or
(CONSTITUENTRECOGNITION.TOTALAMOUNT = 0 and CONSTITUENTRECOGNITION.TOTALPLANNEDGIFTAMOUNT = 0)
);
end
end