SET TERM ^ ;

CREATE OR ALTER trigger ttbcaixabanco_lanc_class_sa_b2u for tbcaixabanco_lanc_class_saldo
active before update position 2
AS
BEGIN
/*
  if (NEW.VALOR <> OLD.VALOR) then
      BEGIN
      NEW.SALDO = OLD.SALDO + (NEW.VALOR - OLD.VALOR);
      END
*/
  if (NEW.SALDO < 0) Then
      Begin
      Exception "..." 'SALDO DO LANCAMENTO NAO PODE FICAR NEGATIVO! . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .';
      End

    IF (OLD.EMPRESA_ID <> NEW.EMPRESA_ID) THEN
    BEGIN
        IF (OLD.SALDO <> OLD.VALOR) THEN
        BEGIN
            EXCEPTION "..." 'VALOR DO LANCAMENTO JÁ UTILIZADO. ALTERACAO NAO AUTORIZADA!';
        END
    END

  IF((OLD.CHEQUE_ID IS NULL AND NEW.CHEQUE_ID > 0) OR (NEW.CHEQUE_ID <> OLD.CHEQUE_ID)) THEN
  BEGIN
     UPDATE TBCAIXABANCO_LANCAMENTO_REG A SET A.CHEQUE_ID = NEW.CHEQUE_ID WHERE A.LANCAMENTO_CLASS_ID = NEW.ID;

     IF(OLD.CHEQUE_ID > 0)THEN
     begin
        UPDATE TBCHEQUE B SET B.SITUACAO = 3 WHERE B.ID = OLD.CHEQUE_ID;
     end
  END

END
^

SET TERM ; ^

