![]() |
---|
CREATE trigger [dbo].[TR_OPPORTUNITYDESIGNATION_INSERTUPDATE_CURRENCY] on [dbo].[OPPORTUNITYDESIGNATION] 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 amount. if update(AMOUNT) update dbo.OPPORTUNITYDESIGNATION set OPPORTUNITYDESIGNATION.ORGANIZATIONAMOUNT = OPPORTUNITYDESIGNATION.AMOUNT, OPPORTUNITYDESIGNATION.TRANSACTIONAMOUNT = OPPORTUNITYDESIGNATION.AMOUNT, OPPORTUNITYDESIGNATION.BASECURRENCYID = @ORGANIZATIONCURRENCYID, OPPORTUNITYDESIGNATION.TRANSACTIONCURRENCYID = @ORGANIZATIONCURRENCYID, OPPORTUNITYDESIGNATION.CHANGEDBYID = OPPORTUNITYDESIGNATION.CHANGEDBYID, OPPORTUNITYDESIGNATION.DATECHANGED = OPPORTUNITYDESIGNATION.DATECHANGED from inserted inner join dbo.OPPORTUNITYDESIGNATION on inserted.ID = OPPORTUNITYDESIGNATION.ID where OPPORTUNITYDESIGNATION.ORGANIZATIONEXCHANGERATEID is null and (OPPORTUNITYDESIGNATION.BASECURRENCYID is null or OPPORTUNITYDESIGNATION.BASECURRENCYID = @ORGANIZATIONCURRENCYID) and OPPORTUNITYDESIGNATION.BASEEXCHANGERATEID is null and (OPPORTUNITYDESIGNATION.TRANSACTIONCURRENCYID is null or OPPORTUNITYDESIGNATION.TRANSACTIONCURRENCYID = @ORGANIZATIONCURRENCYID) and ( OPPORTUNITYDESIGNATION.ORGANIZATIONAMOUNT <> OPPORTUNITYDESIGNATION.AMOUNT or OPPORTUNITYDESIGNATION.TRANSACTIONAMOUNT <> OPPORTUNITYDESIGNATION.AMOUNT or OPPORTUNITYDESIGNATION.AMOUNT = 0 ) end |