![]() |
---|
create trigger [dbo].[TR_WRITEOFFADJUSTMENT_INSERTUPDATE_CURRENCY] on [dbo].[WRITEOFFADJUSTMENT] 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 amounts. if update(PREVIOUSAMOUNT) update dbo.WRITEOFFADJUSTMENT set WRITEOFFADJUSTMENT.ORGANIZATIONPREVIOUSAMOUNT = WRITEOFFADJUSTMENT.PREVIOUSAMOUNT, WRITEOFFADJUSTMENT.TRANSACTIONPREVIOUSAMOUNT = WRITEOFFADJUSTMENT.PREVIOUSAMOUNT, WRITEOFFADJUSTMENT.BASECURRENCYID = @ORGANIZATIONCURRENCYID, WRITEOFFADJUSTMENT.TRANSACTIONCURRENCYID = @ORGANIZATIONCURRENCYID, WRITEOFFADJUSTMENT.CHANGEDBYID = WRITEOFFADJUSTMENT.CHANGEDBYID, WRITEOFFADJUSTMENT.DATECHANGED = WRITEOFFADJUSTMENT.DATECHANGED from inserted inner join dbo.WRITEOFFADJUSTMENT on inserted.ID = WRITEOFFADJUSTMENT.ID where WRITEOFFADJUSTMENT.ORGANIZATIONEXCHANGERATEID is null and (WRITEOFFADJUSTMENT.BASECURRENCYID is null or WRITEOFFADJUSTMENT.BASECURRENCYID = @ORGANIZATIONCURRENCYID) and WRITEOFFADJUSTMENT.BASEEXCHANGERATEID is null and (WRITEOFFADJUSTMENT.TRANSACTIONCURRENCYID is null or WRITEOFFADJUSTMENT.TRANSACTIONCURRENCYID = @ORGANIZATIONCURRENCYID) and ( WRITEOFFADJUSTMENT.ORGANIZATIONPREVIOUSAMOUNT <> WRITEOFFADJUSTMENT.PREVIOUSAMOUNT or WRITEOFFADJUSTMENT.TRANSACTIONPREVIOUSAMOUNT <> WRITEOFFADJUSTMENT.PREVIOUSAMOUNT or WRITEOFFADJUSTMENT.PREVIOUSAMOUNT = 0 ) end |