![]() |
---|
CREATE trigger [dbo].[TR_OPPORTUNITY_INSERTUPDATE_CURRENCY] on [dbo].[OPPORTUNITY] 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(EXPECTEDASKAMOUNT) or update(ASKAMOUNT) begin update dbo.OPPORTUNITY set OPPORTUNITY.ORGANIZATIONEXPECTEDASKAMOUNT = OPPORTUNITY.EXPECTEDASKAMOUNT, OPPORTUNITY.TRANSACTIONEXPECTEDASKAMOUNT = OPPORTUNITY.EXPECTEDASKAMOUNT, OPPORTUNITY.ORGANIZATIONASKAMOUNT = OPPORTUNITY.ASKAMOUNT, OPPORTUNITY.TRANSACTIONASKAMOUNT = OPPORTUNITY.ASKAMOUNT, OPPORTUNITY.ORGANIZATIONACCEPTEDASKAMOUNT = OPPORTUNITY.ACCEPTEDASKAMOUNT, OPPORTUNITY.TRANSACTIONACCEPTEDASKAMOUNT = OPPORTUNITY.ACCEPTEDASKAMOUNT, OPPORTUNITY.BASECURRENCYID = @ORGANIZATIONCURRENCYID, OPPORTUNITY.TRANSACTIONCURRENCYID = @ORGANIZATIONCURRENCYID, OPPORTUNITY.CHANGEDBYID = OPPORTUNITY.CHANGEDBYID, OPPORTUNITY.DATECHANGED = OPPORTUNITY.DATECHANGED from inserted inner join dbo.OPPORTUNITY on inserted.ID = OPPORTUNITY.ID where OPPORTUNITY.ORGANIZATIONEXCHANGERATEID is null and (OPPORTUNITY.BASECURRENCYID is null or OPPORTUNITY.BASECURRENCYID = @ORGANIZATIONCURRENCYID) and OPPORTUNITY.BASEEXCHANGERATEID is null and (OPPORTUNITY.TRANSACTIONCURRENCYID is null or OPPORTUNITY.TRANSACTIONCURRENCYID = @ORGANIZATIONCURRENCYID) and ( OPPORTUNITY.ORGANIZATIONEXPECTEDASKAMOUNT <> OPPORTUNITY.EXPECTEDASKAMOUNT or OPPORTUNITY.TRANSACTIONEXPECTEDASKAMOUNT <> OPPORTUNITY.EXPECTEDASKAMOUNT or OPPORTUNITY.ORGANIZATIONASKAMOUNT <> OPPORTUNITY.ASKAMOUNT or OPPORTUNITY.TRANSACTIONASKAMOUNT <> OPPORTUNITY.ASKAMOUNT or OPPORTUNITY.ORGANIZATIONACCEPTEDASKAMOUNT <> OPPORTUNITY.ACCEPTEDASKAMOUNT or OPPORTUNITY.TRANSACTIONACCEPTEDASKAMOUNT <> OPPORTUNITY.ACCEPTEDASKAMOUNT or (OPPORTUNITY.EXPECTEDASKAMOUNT = 0 and OPPORTUNITY.ASKAMOUNT = 0 and OPPORTUNITY.ACCEPTEDASKAMOUNT = 0) ); end end |