TR_MKTLIST_IU_ORGANIZATIONCOST

Definition

Copy


CREATE trigger [dbo].[TR_MKTLIST_IU_ORGANIZATIONCOST] on [dbo].[MKTLIST] 
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(BASERENTALCOST) or update(BASEEXCHANGECOST)
    begin
      declare @ORGANIZATIONCURRENCYID uniqueidentifier = dbo.[UFN_CURRENCY_GETORGANIZATIONCURRENCY](); 

      update dbo.[MKTLIST] set
        [MKTLIST].[ORGANIZATIONBASERENTALCOST] = [MKTLIST].[BASERENTALCOST],
        [MKTLIST].[ORGANIZATIONBASEEXCHANGECOST] = [MKTLIST].[BASEEXCHANGECOST],
        [MKTLIST].[BASECURRENCYID] = @ORGANIZATIONCURRENCYID,
        [MKTLIST].[CHANGEDBYID] = [MKTLIST].[CHANGEDBYID],
        [MKTLIST].[DATECHANGED] = [MKTLIST].[DATECHANGED]
      from inserted
      inner join dbo.[MKTLIST] on inserted.ID = [MKTLIST].[ID]
      where [MKTLIST].[CURRENCYEXCHANGERATEID] is null
      and ([MKTLIST].[BASECURRENCYID] is null or [MKTLIST].[BASECURRENCYID] = @ORGANIZATIONCURRENCYID)
      and ([MKTLIST].[ORGANIZATIONBASERENTALCOST] <> [MKTLIST].[BASERENTALCOST]
        or [MKTLIST].[ORGANIZATIONBASEEXCHANGECOST] <> [MKTLIST].[BASEEXCHANGECOST]
        or ([MKTLIST].[BASERENTALCOST] = 0 and [MKTLIST].[BASEEXCHANGECOST] = 0)
      );
    end
end