TR_PLANNEDGIFTASSET_INSERTUPDATE_CURRENCY
Definition
Copy
CREATE trigger [dbo].[TR_PLANNEDGIFTASSET_INSERTUPDATE_CURRENCY] on [dbo].[PLANNEDGIFTASSET]
after insert, update
not for replication
as
begin
set nocount on;
declare @ORGANIZATIONCURRENCYID uniqueidentifier = dbo.UFN_CURRENCY_GETORGANIZATIONCURRENCY();
-- If we try to save a value or cost basis without explicitly setting an organization value
-- and an exchange rate, copy the value and cost basis to their organization and transaction
-- amount fields.
if update(VALUE) or update(COSTBASIS)
begin
update
dbo.PLANNEDGIFTASSET
set
PLANNEDGIFTASSET.ORGANIZATIONVALUE = PLANNEDGIFTASSET.VALUE,
PLANNEDGIFTASSET.TRANSACTIONVALUE = PLANNEDGIFTASSET.VALUE,
PLANNEDGIFTASSET.ORGANIZATIONCOSTBASIS = PLANNEDGIFTASSET.COSTBASIS,
PLANNEDGIFTASSET.TRANSACTIONCOSTBASIS = PLANNEDGIFTASSET.COSTBASIS,
PLANNEDGIFTASSET.BASECURRENCYID = @ORGANIZATIONCURRENCYID,
PLANNEDGIFTASSET.TRANSACTIONCURRENCYID = @ORGANIZATIONCURRENCYID,
PLANNEDGIFTASSET.CHANGEDBYID = PLANNEDGIFTASSET.CHANGEDBYID,
PLANNEDGIFTASSET.DATECHANGED = PLANNEDGIFTASSET.DATECHANGED
from
inserted
inner join
dbo.PLANNEDGIFTASSET on inserted.ID = PLANNEDGIFTASSET.ID
where
PLANNEDGIFTASSET.ORGANIZATIONEXCHANGERATEID is null
and (PLANNEDGIFTASSET.BASECURRENCYID is null or PLANNEDGIFTASSET.BASECURRENCYID = @ORGANIZATIONCURRENCYID)
and PLANNEDGIFTASSET.BASEEXCHANGERATEID is null
and (PLANNEDGIFTASSET.TRANSACTIONCURRENCYID is null or PLANNEDGIFTASSET.TRANSACTIONCURRENCYID = @ORGANIZATIONCURRENCYID)
and
(
PLANNEDGIFTASSET.ORGANIZATIONVALUE <> PLANNEDGIFTASSET.VALUE
or PLANNEDGIFTASSET.TRANSACTIONVALUE <> PLANNEDGIFTASSET.VALUE
or PLANNEDGIFTASSET.ORGANIZATIONCOSTBASIS <> PLANNEDGIFTASSET.COSTBASIS
or PLANNEDGIFTASSET.TRANSACTIONCOSTBASIS <> PLANNEDGIFTASSET.COSTBASIS
or (PLANNEDGIFTASSET.VALUE = 0 and PLANNEDGIFTASSET.COSTBASIS = 0)
);
end
end