TR_REVENUE_INSERTUPDATE_CURRENCY
Definition
Copy
CREATE trigger [dbo].[TR_REVENUE_INSERTUPDATE_CURRENCY] on [dbo].[REVENUE]
after insert, update
not for replication
as
begin
set nocount on;
declare @ORGANIZATIONCURRENCYID uniqueidentifier;
-- if we try to save an amount without explicitly setting an organization amount and an exchange rate,
-- copy the amount to the organization and transaction amounts.
if update(AMOUNT)
begin
set @ORGANIZATIONCURRENCYID = dbo.UFN_CURRENCY_GETORGANIZATIONCURRENCY();
update
dbo.REVENUE
set
REVENUE.ORGANIZATIONAMOUNT = REVENUE.AMOUNT,
REVENUE.TRANSACTIONAMOUNT = REVENUE.AMOUNT,
REVENUE.BASECURRENCYID = @ORGANIZATIONCURRENCYID,
REVENUE.TRANSACTIONCURRENCYID = @ORGANIZATIONCURRENCYID,
REVENUE.CHANGEDBYID = REVENUE.CHANGEDBYID,
REVENUE.DATECHANGED = REVENUE.DATECHANGED
from
inserted
inner join
dbo.REVENUE on inserted.ID = REVENUE.ID
where
REVENUE.ORGANIZATIONEXCHANGERATEID is null
and (REVENUE.BASECURRENCYID is null or REVENUE.BASECURRENCYID = @ORGANIZATIONCURRENCYID)
and REVENUE.BASEEXCHANGERATEID is null
and (REVENUE.TRANSACTIONCURRENCYID is null or REVENUE.TRANSACTIONCURRENCYID = @ORGANIZATIONCURRENCYID)
and
(
REVENUE.ORGANIZATIONAMOUNT <> REVENUE.AMOUNT
or REVENUE.TRANSACTIONAMOUNT <> REVENUE.AMOUNT
or REVENUE.AMOUNT = 0
)
end
end