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