![]() |
---|
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 |