TR_PLANNEDGIFTADDITIONASSET_INSERTUPDATE_CURRENCY
Definition
Copy
CREATE trigger [dbo].[TR_PLANNEDGIFTADDITIONASSET_INSERTUPDATE_CURRENCY] on [dbo].[PLANNEDGIFTADDITIONASSET]
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.PLANNEDGIFTADDITIONASSET
set
PLANNEDGIFTADDITIONASSET.ORGANIZATIONVALUE = PLANNEDGIFTADDITIONASSET.VALUE,
PLANNEDGIFTADDITIONASSET.TRANSACTIONVALUE = PLANNEDGIFTADDITIONASSET.VALUE,
PLANNEDGIFTADDITIONASSET.ORGANIZATIONCOSTBASIS = PLANNEDGIFTADDITIONASSET.COSTBASIS,
PLANNEDGIFTADDITIONASSET.TRANSACTIONCOSTBASIS = PLANNEDGIFTADDITIONASSET.COSTBASIS,
PLANNEDGIFTADDITIONASSET.BASECURRENCYID = @ORGANIZATIONCURRENCYID,
PLANNEDGIFTADDITIONASSET.TRANSACTIONCURRENCYID = @ORGANIZATIONCURRENCYID,
PLANNEDGIFTADDITIONASSET.CHANGEDBYID = PLANNEDGIFTADDITIONASSET.CHANGEDBYID,
PLANNEDGIFTADDITIONASSET.DATECHANGED = PLANNEDGIFTADDITIONASSET.DATECHANGED
from
inserted
inner join
dbo.PLANNEDGIFTADDITIONASSET on inserted.ID = PLANNEDGIFTADDITIONASSET.ID
where
PLANNEDGIFTADDITIONASSET.ORGANIZATIONEXCHANGERATEID is null
and (PLANNEDGIFTADDITIONASSET.BASECURRENCYID is null or PLANNEDGIFTADDITIONASSET.BASECURRENCYID = @ORGANIZATIONCURRENCYID)
and PLANNEDGIFTADDITIONASSET.BASEEXCHANGERATEID is null
and (PLANNEDGIFTADDITIONASSET.TRANSACTIONCURRENCYID is null or PLANNEDGIFTADDITIONASSET.TRANSACTIONCURRENCYID = @ORGANIZATIONCURRENCYID)
and
(
PLANNEDGIFTADDITIONASSET.ORGANIZATIONVALUE <> PLANNEDGIFTADDITIONASSET.VALUE
or PLANNEDGIFTADDITIONASSET.TRANSACTIONVALUE <> PLANNEDGIFTADDITIONASSET.VALUE
or PLANNEDGIFTADDITIONASSET.ORGANIZATIONCOSTBASIS <> PLANNEDGIFTADDITIONASSET.COSTBASIS
or PLANNEDGIFTADDITIONASSET.TRANSACTIONCOSTBASIS <> PLANNEDGIFTADDITIONASSET.COSTBASIS
or (PLANNEDGIFTADDITIONASSET.VALUE = 0 and PLANNEDGIFTADDITIONASSET.COSTBASIS = 0)
);
end
end