![]() |
---|
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 |