![]() |
---|
CREATE trigger [dbo].[TR_BATCHREVENUEUNAPPLIEDMATCHINGGIFTSPLIT_INSERTUPDATE_CURRENCY] on [dbo].[BATCHREVENUEUNAPPLIEDMATCHINGGIFTSPLIT] 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 amount. if update(AMOUNT) begin update dbo.BATCHREVENUEUNAPPLIEDMATCHINGGIFTSPLIT set BATCHREVENUEUNAPPLIEDMATCHINGGIFTSPLIT.BASECURRENCYID = @ORGANIZATIONCURRENCYID, BATCHREVENUEUNAPPLIEDMATCHINGGIFTSPLIT.ORGANIZATIONAMOUNT = BATCHREVENUEUNAPPLIEDMATCHINGGIFTSPLIT.AMOUNT, BATCHREVENUEUNAPPLIEDMATCHINGGIFTSPLIT.TRANSACTIONAMOUNT = BATCHREVENUEUNAPPLIEDMATCHINGGIFTSPLIT.AMOUNT, BATCHREVENUEUNAPPLIEDMATCHINGGIFTSPLIT.TRANSACTIONCURRENCYID = @ORGANIZATIONCURRENCYID, BATCHREVENUEUNAPPLIEDMATCHINGGIFTSPLIT.CHANGEDBYID = BATCHREVENUEUNAPPLIEDMATCHINGGIFTSPLIT.CHANGEDBYID, BATCHREVENUEUNAPPLIEDMATCHINGGIFTSPLIT.DATECHANGED = BATCHREVENUEUNAPPLIEDMATCHINGGIFTSPLIT.DATECHANGED from inserted inner join dbo.BATCHREVENUEUNAPPLIEDMATCHINGGIFTSPLIT on inserted.ID = BATCHREVENUEUNAPPLIEDMATCHINGGIFTSPLIT.ID where BATCHREVENUEUNAPPLIEDMATCHINGGIFTSPLIT.ORGANIZATIONEXCHANGERATEID is null and (BATCHREVENUEUNAPPLIEDMATCHINGGIFTSPLIT.BASECURRENCYID is null or BATCHREVENUEUNAPPLIEDMATCHINGGIFTSPLIT.BASECURRENCYID = @ORGANIZATIONCURRENCYID) and BATCHREVENUEUNAPPLIEDMATCHINGGIFTSPLIT.BASEEXCHANGERATEID is null and (BATCHREVENUEUNAPPLIEDMATCHINGGIFTSPLIT.TRANSACTIONCURRENCYID is null or BATCHREVENUEUNAPPLIEDMATCHINGGIFTSPLIT.TRANSACTIONCURRENCYID = @ORGANIZATIONCURRENCYID) and ( BATCHREVENUEUNAPPLIEDMATCHINGGIFTSPLIT.TRANSACTIONAMOUNT <> BATCHREVENUEUNAPPLIEDMATCHINGGIFTSPLIT.AMOUNT or BATCHREVENUEUNAPPLIEDMATCHINGGIFTSPLIT.ORGANIZATIONAMOUNT <> BATCHREVENUEUNAPPLIEDMATCHINGGIFTSPLIT.AMOUNT or BATCHREVENUEUNAPPLIEDMATCHINGGIFTSPLIT.AMOUNT = 0 ) end end |