TR_REVENUESOLICITOR_INSERTUPDATE_CURRENCY
Definition
Copy
CREATE trigger [dbo].[TR_REVENUESOLICITOR_INSERTUPDATE_CURRENCY] on [dbo].[REVENUESOLICITOR]
after insert, update
not for replication
as
begin
set nocount on;
--Replaces CK_REVENUESOLICITOR_VALIDAMOUNT
if exists(select 1
from inserted I
inner join dbo.FINANCIALTRANSACTIONLINEITEM LI on LI.ID = I.REVENUESPLITID
where LI.BASEAMOUNT < I.AMOUNT)
BEGIN
RAISERROR ('CK_REVENUESOLICITOR_VALIDAMOUNT', 16, 1)
ROLLBACK
END
if update(AMOUNT)
begin
declare @ORGANIZATIONCURRENCYID uniqueidentifier = dbo.UFN_CURRENCY_GETORGANIZATIONCURRENCY();
update
dbo.REVENUESOLICITOR
set
REVENUESOLICITOR.ORGANIZATIONAMOUNT = REVENUESOLICITOR.AMOUNT,
REVENUESOLICITOR.BASECURRENCYID = @ORGANIZATIONCURRENCYID,
REVENUESOLICITOR.CHANGEDBYID = REVENUESOLICITOR.CHANGEDBYID,
REVENUESOLICITOR.DATECHANGED = REVENUESOLICITOR.DATECHANGED
from
inserted
inner join
dbo.REVENUESOLICITOR on inserted.ID = REVENUESOLICITOR.ID
where
REVENUESOLICITOR.ORGANIZATIONEXCHANGERATEID is null
and (REVENUESOLICITOR.BASECURRENCYID is null or REVENUESOLICITOR.BASECURRENCYID = @ORGANIZATIONCURRENCYID)
and (
REVENUESOLICITOR.ORGANIZATIONAMOUNT <> REVENUESOLICITOR.AMOUNT
or REVENUESOLICITOR.AMOUNT = 0
);
end
end