TR_GIFTINKINDSALE_INSERTUPDATE_CURRENCY
Definition
Copy
create trigger [dbo].[TR_GIFTINKINDSALE_INSERTUPDATE_CURRENCY] on [dbo].[GIFTINKINDSALE]
after insert, update
not for replication
as
begin
set nocount on;
declare @ORGANIZATIONCURRENCYID uniqueidentifier = dbo.UFN_CURRENCY_GETORGANIZATIONCURRENCY();
-- If we try to save a sale amount without explicitly setting an organization amount and
-- an exchange rate, copy the amount to their organization and transaction amount fields.
if update(SALEAMOUNT)
begin
update
dbo.GIFTINKINDSALE
set
GIFTINKINDSALE.ORGANIZATIONSALEAMOUNT = GIFTINKINDSALE.SALEAMOUNT,
GIFTINKINDSALE.TRANSACTIONSALEAMOUNT = GIFTINKINDSALE.SALEAMOUNT,
GIFTINKINDSALE.BASECURRENCYID = @ORGANIZATIONCURRENCYID,
GIFTINKINDSALE.TRANSACTIONCURRENCYID = @ORGANIZATIONCURRENCYID,
GIFTINKINDSALE.CHANGEDBYID = GIFTINKINDSALE.CHANGEDBYID,
GIFTINKINDSALE.DATECHANGED = GIFTINKINDSALE.DATECHANGED
from
inserted
inner join
dbo.GIFTINKINDSALE on inserted.ID = GIFTINKINDSALE.ID
where
GIFTINKINDSALE.ORGANIZATIONEXCHANGERATEID is null
and (GIFTINKINDSALE.BASECURRENCYID is null or GIFTINKINDSALE.BASECURRENCYID = @ORGANIZATIONCURRENCYID)
and GIFTINKINDSALE.BASEEXCHANGERATEID is null
and (GIFTINKINDSALE.TRANSACTIONCURRENCYID is null or GIFTINKINDSALE.TRANSACTIONCURRENCYID = @ORGANIZATIONCURRENCYID)
and
(
GIFTINKINDSALE.ORGANIZATIONSALEAMOUNT <> GIFTINKINDSALE.SALEAMOUNT
or GIFTINKINDSALE.TRANSACTIONSALEAMOUNT <> GIFTINKINDSALE.SALEAMOUNT
or GIFTINKINDSALE.SALEAMOUNT = 0
);
end
end