TR_OPPORTUNITYDESIGNATION_INSERTUPDATE_CURRENCY
Definition
Copy
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