TR_MKTSEGMENTLISTHISTORICAL_IU_ORGANIZATIONAMOUNTS
Definition
Copy
CREATE trigger [dbo].[TR_MKTSEGMENTLISTHISTORICAL_IU_ORGANIZATIONAMOUNTS] on [dbo].[MKTSEGMENTLISTHISTORICAL]
after insert, update
not for replication
as
begin
set nocount on;
-- if we try to save an amount without explicitly setting an organization amount and an exchange rate,
-- copy the amount to the organization amount.
if update(LISTBASERENTALCOST) or update(LISTBASEEXCHANGECOST)
begin
declare @ORGANIZATIONCURRENCYID uniqueidentifier = dbo.UFN_CURRENCY_GETORGANIZATIONCURRENCY();
update
dbo.MKTSEGMENTLISTHISTORICAL
set
MKTSEGMENTLISTHISTORICAL.ORGANIZATIONLISTBASERENTALCOST = MKTSEGMENTLISTHISTORICAL.LISTBASERENTALCOST,
MKTSEGMENTLISTHISTORICAL.ORGANIZATIONLISTBASEEXCHANGECOST = MKTSEGMENTLISTHISTORICAL.LISTBASEEXCHANGECOST,
MKTSEGMENTLISTHISTORICAL.BASECURRENCYID = @ORGANIZATIONCURRENCYID,
MKTSEGMENTLISTHISTORICAL.CHANGEDBYID = MKTSEGMENTLISTHISTORICAL.CHANGEDBYID,
MKTSEGMENTLISTHISTORICAL.DATECHANGED = MKTSEGMENTLISTHISTORICAL.DATECHANGED
from
inserted
inner join dbo.MKTSEGMENTLISTHISTORICAL on inserted.ID = MKTSEGMENTLISTHISTORICAL.ID
where
MKTSEGMENTLISTHISTORICAL.CURRENCYEXCHANGERATEID is null
and (MKTSEGMENTLISTHISTORICAL.BASECURRENCYID is null or MKTSEGMENTLISTHISTORICAL.BASECURRENCYID = @ORGANIZATIONCURRENCYID)
and
(
MKTSEGMENTLISTHISTORICAL.ORGANIZATIONLISTBASERENTALCOST <> MKTSEGMENTLISTHISTORICAL.LISTBASERENTALCOST
or MKTSEGMENTLISTHISTORICAL.ORGANIZATIONLISTBASEEXCHANGECOST <> MKTSEGMENTLISTHISTORICAL.LISTBASEEXCHANGECOST
or (
MKTSEGMENTLISTHISTORICAL.LISTBASERENTALCOST = 0
and MKTSEGMENTLISTHISTORICAL.LISTBASEEXCHANGECOST = 0
)
);
end
end