TR_PROPERTYDETAIL_INSERTUPDATE_CURRENCY
Definition
Copy
CREATE trigger [dbo].[TR_PROPERTYDETAIL_INSERTUPDATE_CURRENCY] on [dbo].[PROPERTYDETAIL]
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(BROKERFEE)
begin
update
dbo.PROPERTYDETAIL
set
PROPERTYDETAIL.ORGANIZATIONSALEAMOUNT = PROPERTYDETAIL.SALEAMOUNT,
PROPERTYDETAIL.TRANSACTIONSALEAMOUNT = PROPERTYDETAIL.SALEAMOUNT,
PROPERTYDETAIL.ORGANIZATIONBROKERFEE = PROPERTYDETAIL.BROKERFEE,
PROPERTYDETAIL.TRANSACTIONBROKERFEE = PROPERTYDETAIL.BROKERFEE,
PROPERTYDETAIL.BASECURRENCYID = @ORGANIZATIONCURRENCYID,
PROPERTYDETAIL.TRANSACTIONCURRENCYID = @ORGANIZATIONCURRENCYID,
PROPERTYDETAIL.CHANGEDBYID = PROPERTYDETAIL.CHANGEDBYID,
PROPERTYDETAIL.DATECHANGED = PROPERTYDETAIL.DATECHANGED
from
inserted
inner join
dbo.PROPERTYDETAIL on inserted.ID = PROPERTYDETAIL.ID
where
PROPERTYDETAIL.ORGANIZATIONEXCHANGERATEID is null
and (PROPERTYDETAIL.BASECURRENCYID is null or PROPERTYDETAIL.BASECURRENCYID = @ORGANIZATIONCURRENCYID)
and PROPERTYDETAIL.BASEEXCHANGERATEID is null
and (PROPERTYDETAIL.TRANSACTIONCURRENCYID is null or PROPERTYDETAIL.TRANSACTIONCURRENCYID = @ORGANIZATIONCURRENCYID)
and
(
PROPERTYDETAIL.ORGANIZATIONSALEAMOUNT <> PROPERTYDETAIL.SALEAMOUNT
or PROPERTYDETAIL.TRANSACTIONSALEAMOUNT <> PROPERTYDETAIL.SALEAMOUNT
or PROPERTYDETAIL.ORGANIZATIONBROKERFEE <> PROPERTYDETAIL.BROKERFEE
or PROPERTYDETAIL.TRANSACTIONBROKERFEE <> PROPERTYDETAIL.BROKERFEE
or (PROPERTYDETAIL.SALEAMOUNT = 0 and PROPERTYDETAIL.BROKERFEE = 0)
);
end
end