TR_BANKACCOUNTDEPOSITCORRECTIONGLDISTRIBUTION_INSERTUPDATE_CURRENCY

Definition

Copy


CREATE trigger dbo.TR_BANKACCOUNTDEPOSITCORRECTIONGLDISTRIBUTION_INSERTUPDATE_CURRENCY on dbo.BANKACCOUNTDEPOSITCORRECTIONGLDISTRIBUTION after insert, update not for replication
as
begin
  set nocount on;

  if update(AMOUNT)
  begin
    declare @ORGANIZATIONCURRENCYID uniqueidentifier = dbo.UFN_CURRENCY_GETORGANIZATIONCURRENCY();
    update 
      dbo.BANKACCOUNTDEPOSITCORRECTIONGLDISTRIBUTION
    set
      BANKACCOUNTDEPOSITCORRECTIONGLDISTRIBUTION.ORGANIZATIONAMOUNT = BANKACCOUNTDEPOSITCORRECTIONGLDISTRIBUTION.AMOUNT
      ,BANKACCOUNTDEPOSITCORRECTIONGLDISTRIBUTION.TRANSACTIONAMOUNT = BANKACCOUNTDEPOSITCORRECTIONGLDISTRIBUTION.AMOUNT
      ,BANKACCOUNTDEPOSITCORRECTIONGLDISTRIBUTION.BASECURRENCYID = @ORGANIZATIONCURRENCYID
      ,BANKACCOUNTDEPOSITCORRECTIONGLDISTRIBUTION.TRANSACTIONCURRENCYID = @ORGANIZATIONCURRENCYID
      ,BANKACCOUNTDEPOSITCORRECTIONGLDISTRIBUTION.CHANGEDBYID = BANKACCOUNTDEPOSITCORRECTIONGLDISTRIBUTION.CHANGEDBYID
      ,BANKACCOUNTDEPOSITCORRECTIONGLDISTRIBUTION.DATECHANGED = BANKACCOUNTDEPOSITCORRECTIONGLDISTRIBUTION.DATECHANGED
    from
      inserted
      full outer join deleted on deleted.ID = inserted.ID
    inner join
      dbo.BANKACCOUNTDEPOSITCORRECTIONGLDISTRIBUTION on BANKACCOUNTDEPOSITCORRECTIONGLDISTRIBUTION.ID = inserted.ID
    where
      BANKACCOUNTDEPOSITCORRECTIONGLDISTRIBUTION.ORGANIZATIONEXCHANGERATEID is null
      and (BANKACCOUNTDEPOSITCORRECTIONGLDISTRIBUTION.BASECURRENCYID is null or BANKACCOUNTDEPOSITCORRECTIONGLDISTRIBUTION.BASECURRENCYID = @ORGANIZATIONCURRENCYID)
      and ((deleted.ID is null and inserted.BASECURRENCYID is null) or (deleted.ID is not null and deleted.TRANSACTIONAMOUNT = deleted.AMOUNT and deleted.ORGANIZATIONAMOUNT = deleted.AMOUNT))
      and BANKACCOUNTDEPOSITCORRECTIONGLDISTRIBUTION.BASEEXCHANGERATEID is null
      and (BANKACCOUNTDEPOSITCORRECTIONGLDISTRIBUTION.TRANSACTIONCURRENCYID is null or BANKACCOUNTDEPOSITCORRECTIONGLDISTRIBUTION.TRANSACTIONCURRENCYID = @ORGANIZATIONCURRENCYID)
      and (BANKACCOUNTDEPOSITCORRECTIONGLDISTRIBUTION.ORGANIZATIONAMOUNT <> BANKACCOUNTDEPOSITCORRECTIONGLDISTRIBUTION.AMOUNT
        or BANKACCOUNTDEPOSITCORRECTIONGLDISTRIBUTION.TRANSACTIONAMOUNT <> BANKACCOUNTDEPOSITCORRECTIONGLDISTRIBUTION.AMOUNT
        or BANKACCOUNTDEPOSITCORRECTIONGLDISTRIBUTION.AMOUNT = 0);
  end
end