TR_OPPORTUNITYDESIGNATION_INSERTUPDATE_CURRENCY

Trigger Definition


                
					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