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