TR_STOCKSALEADJUSTMENT_INSERTUPDATE_CURRENCY
Definition
Copy
CREATE trigger [dbo].[TR_STOCKSALEADJUSTMENT_INSERTUPDATE_CURRENCY] on [dbo].[STOCKSALEADJUSTMENT]
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.STOCKSALEADJUSTMENT
set
STOCKSALEADJUSTMENT.ORGANIZATIONPREVIOUSAMOUNT = STOCKSALEADJUSTMENT.PREVIOUSAMOUNT,
STOCKSALEADJUSTMENT.TRANSACTIONPREVIOUSAMOUNT = STOCKSALEADJUSTMENT.PREVIOUSAMOUNT,
STOCKSALEADJUSTMENT.BASECURRENCYID = @ORGANIZATIONCURRENCYID,
STOCKSALEADJUSTMENT.TRANSACTIONCURRENCYID = @ORGANIZATIONCURRENCYID,
STOCKSALEADJUSTMENT.CHANGEDBYID = STOCKSALEADJUSTMENT.CHANGEDBYID,
STOCKSALEADJUSTMENT.DATECHANGED = STOCKSALEADJUSTMENT.DATECHANGED
from
inserted
inner join
dbo.STOCKSALEADJUSTMENT on inserted.ID = STOCKSALEADJUSTMENT.ID
where
STOCKSALEADJUSTMENT.ORGANIZATIONEXCHANGERATEID is null
and (STOCKSALEADJUSTMENT.BASECURRENCYID is null or STOCKSALEADJUSTMENT.BASECURRENCYID = @ORGANIZATIONCURRENCYID)
and STOCKSALEADJUSTMENT.BASEEXCHANGERATEID is null
and (STOCKSALEADJUSTMENT.TRANSACTIONCURRENCYID is null or STOCKSALEADJUSTMENT.TRANSACTIONCURRENCYID = @ORGANIZATIONCURRENCYID)
and
(
STOCKSALEADJUSTMENT.ORGANIZATIONPREVIOUSAMOUNT <> STOCKSALEADJUSTMENT.PREVIOUSAMOUNT
or STOCKSALEADJUSTMENT.TRANSACTIONPREVIOUSAMOUNT <> STOCKSALEADJUSTMENT.PREVIOUSAMOUNT
or STOCKSALEADJUSTMENT.PREVIOUSAMOUNT = 0
);
end
end