TR_STOCKSALE_INSERTUPDATE_CURRENCY
Definition
Copy
CREATE trigger [dbo].[TR_STOCKSALE_INSERTUPDATE_CURRENCY] on [dbo].[STOCKSALE]
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 or broker fee without explicitly setting an organization
-- amount and an exchange rate, copy the amount and fee to their organization and transaction
-- amount fields.
if update(SALEAMOUNT) or update(FEE) or update(LOWPRICE) or update(MEDIANPRICE) or update (HIGHPRICE)
begin
update
dbo.STOCKSALE
set
STOCKSALE.ORGANIZATIONSALEAMOUNT = STOCKSALE.SALEAMOUNT,
STOCKSALE.TRANSACTIONSALEAMOUNT = STOCKSALE.SALEAMOUNT,
STOCKSALE.ORGANIZATIONFEE = STOCKSALE.FEE,
STOCKSALE.TRANSACTIONFEE = STOCKSALE.FEE,
STOCKSALE.ORGANIZATIONLOWPRICE = STOCKSALE.LOWPRICE,
STOCKSALE.TRANSACTIONLOWPRICE = STOCKSALE.LOWPRICE,
STOCKSALE.ORGANIZATIONMEDIANPRICE = STOCKSALE.MEDIANPRICE,
STOCKSALE.TRANSACTIONMEDIANPRICE = STOCKSALE.MEDIANPRICE,
STOCKSALE.ORGANIZATIONHIGHPRICE = STOCKSALE.HIGHPRICE,
STOCKSALE.TRANSACTIONHIGHPRICE = STOCKSALE.HIGHPRICE,
STOCKSALE.BASECURRENCYID = @ORGANIZATIONCURRENCYID,
STOCKSALE.TRANSACTIONCURRENCYID = @ORGANIZATIONCURRENCYID,
STOCKSALE.CHANGEDBYID = STOCKSALE.CHANGEDBYID,
STOCKSALE.DATECHANGED = STOCKSALE.DATECHANGED
from
inserted
inner join
dbo.STOCKSALE on inserted.ID = STOCKSALE.ID
where
STOCKSALE.ORGANIZATIONEXCHANGERATEID is null
and (STOCKSALE.BASECURRENCYID is null or STOCKSALE.BASECURRENCYID = @ORGANIZATIONCURRENCYID)
and STOCKSALE.BASEEXCHANGERATEID is null
and (STOCKSALE.TRANSACTIONCURRENCYID is null or STOCKSALE.TRANSACTIONCURRENCYID = @ORGANIZATIONCURRENCYID)
and
(
STOCKSALE.ORGANIZATIONSALEAMOUNT <> STOCKSALE.SALEAMOUNT
or STOCKSALE.TRANSACTIONSALEAMOUNT <> STOCKSALE.SALEAMOUNT
or STOCKSALE.ORGANIZATIONFEE <> STOCKSALE.FEE
or STOCKSALE.TRANSACTIONFEE <> STOCKSALE.FEE
or STOCKSALE.ORGANIZATIONLOWPRICE <> STOCKSALE.LOWPRICE
or STOCKSALE.TRANSACTIONLOWPRICE <> STOCKSALE.LOWPRICE
or STOCKSALE.ORGANIZATIONMEDIANPRICE <> STOCKSALE.MEDIANPRICE
or STOCKSALE.TRANSACTIONMEDIANPRICE <> STOCKSALE.MEDIANPRICE
or STOCKSALE.ORGANIZATIONHIGHPRICE <> STOCKSALE.HIGHPRICE
or STOCKSALE.TRANSACTIONHIGHPRICE <> STOCKSALE.HIGHPRICE
or (
STOCKSALE.SALEAMOUNT = 0
and STOCKSALE.FEE = 0
and STOCKSALE.LOWPRICE = 0
and STOCKSALE.MEDIANPRICE = 0
and STOCKSALE.HIGHPRICE = 0
)
);
end
end