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