TR_GIFTINKINDSALEADJUSTMENT_INSERTUPDATE_CURRENCY
Definition
Copy
create trigger [dbo].[TR_GIFTINKINDSALEADJUSTMENT_INSERTUPDATE_CURRENCY] on [dbo].[GIFTINKINDSALEADJUSTMENT]
after insert, update
not for replication
as
begin
set nocount on;
declare @ORGANIZATIONCURRENCYID uniqueidentifier = dbo.UFN_CURRENCY_GETORGANIZATIONCURRENCY();
-- If we try to save a previous amount without explicitly setting an organization
-- amount and an exchange rate, copy the amount and fee to their organization and transaction
-- amount fields.
if update(PREVIOUSAMOUNT)
begin
update
dbo.GIFTINKINDSALEADJUSTMENT
set
GIFTINKINDSALEADJUSTMENT.ORGANIZATIONPREVIOUSAMOUNT = GIFTINKINDSALEADJUSTMENT.PREVIOUSAMOUNT,
GIFTINKINDSALEADJUSTMENT.TRANSACTIONPREVIOUSAMOUNT = GIFTINKINDSALEADJUSTMENT.PREVIOUSAMOUNT,
GIFTINKINDSALEADJUSTMENT.BASECURRENCYID = @ORGANIZATIONCURRENCYID,
GIFTINKINDSALEADJUSTMENT.TRANSACTIONCURRENCYID = @ORGANIZATIONCURRENCYID,
GIFTINKINDSALEADJUSTMENT.CHANGEDBYID = GIFTINKINDSALEADJUSTMENT.CHANGEDBYID,
GIFTINKINDSALEADJUSTMENT.DATECHANGED = GIFTINKINDSALEADJUSTMENT.DATECHANGED
from
inserted
inner join
dbo.GIFTINKINDSALEADJUSTMENT on inserted.ID = GIFTINKINDSALEADJUSTMENT.ID
where
GIFTINKINDSALEADJUSTMENT.ORGANIZATIONEXCHANGERATEID is null
and (GIFTINKINDSALEADJUSTMENT.BASECURRENCYID is null or GIFTINKINDSALEADJUSTMENT.BASECURRENCYID = @ORGANIZATIONCURRENCYID)
and GIFTINKINDSALEADJUSTMENT.BASEEXCHANGERATEID is null
and (GIFTINKINDSALEADJUSTMENT.TRANSACTIONCURRENCYID is null or GIFTINKINDSALEADJUSTMENT.TRANSACTIONCURRENCYID = @ORGANIZATIONCURRENCYID)
and
(
GIFTINKINDSALEADJUSTMENT.ORGANIZATIONPREVIOUSAMOUNT <> GIFTINKINDSALEADJUSTMENT.PREVIOUSAMOUNT
or GIFTINKINDSALEADJUSTMENT.TRANSACTIONPREVIOUSAMOUNT <> GIFTINKINDSALEADJUSTMENT.PREVIOUSAMOUNT
or GIFTINKINDSALEADJUSTMENT.PREVIOUSAMOUNT = 0
);
end
end