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