TR_FINANCIALTRANSACTIONAPPLICATION_INSERT_UPDATE

Definition

Copy


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

    if exists(
        select 
          *
        from                         
            (select distinct FINANCIALTRANSACTIONSCHEDULEID from 
                INSERTED
            ) as SCHEDULES
            inner join dbo.FINANCIALTRANSACTIONSCHEDULE as FTS on FTS.ID = SCHEDULES.FINANCIALTRANSACTIONSCHEDULEID and FTS.DELETED = 0
      left outer join dbo.FINANCIALTRANSACTIONAPPLICATION as FTA 
        on FTA.FINANCIALTRANSACTIONSCHEDULEID = SCHEDULES.FINANCIALTRANSACTIONSCHEDULEID 
    where FTA.[STATUSCODE] in (0,1)                    
        group by FTS.ID, FTS.AMOUNT
        having
              COALESCE(SUM(FTA.AMOUNT),0 ) > FTS.AMOUNT
    )   
    raiserror('FT_CANNOT_APPLY_MORE_THAN_SCHEDULED' , 16, 1);            

    if exists(
        select I.*
        from INSERTED I
        inner join dbo.FINANCIALTRANSACTIONSCHEDULE FTS on FTS.ID = I.FINANCIALTRANSACTIONSCHEDULEID
        where FTS.DELETED = 1 and I.STATUSCODE != 2
    )
    raiserror('FT_CANNOT_APPLY_TO_DELETED_SCHEDULE', 16, 1);
end;