TR_PAYMENTORIGINALAMOUNT_INSERTUPDATE_CURRENCY
Definition
Copy
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