SET TERM ^ ;

CREATE OR ALTER trigger ttbcheque_item_b02i for tbcheque_item
active before insert position 1
AS
DECLARE VARIABLE HISTORICO VARCHAR(500);
BEGIN
    
    HISTORICO = '';

    IF(NEW.ID > 0)THEN
    BEGIN
        HISTORICO = HISTORICO||'REFERENCIA: '||FN_LPAD(NEW.ID, 4, '0')||' INCLUIDA';
    END

    IF(HISTORICO <> '')THEN
    BEGIN
        EXECUTE PROCEDURE SPI_HISTORICO('TBCHEQUE', NEW.CHEQUE_ID, HISTORICO);
    END
END
^

SET TERM ; ^

SET TERM ^ ;

CREATE OR ALTER trigger ttbcheque_item_b01d for tbcheque_item
active before delete position 0
AS
DECLARE VARIABLE HISTORICO VARCHAR(500);
DECLARE VARIABLE SITUACAO INTEGER;
BEGIN

    SITUACAO = COALESCE((SELECT FIRST 1 B.SITUACAO FROM TBCHEQUE B WHERE B.ID = OLD.CHEQUE_ID), -1);

    IF((SITUACAO = 1) OR (SITUACAO = 2) OR (SITUACAO = 3) OR (SITUACAO = 4) OR (SITUACAO = 5) )THEN
    BEGIN
        IF((SITUACAO = 1) OR (SITUACAO = 4))THEN
        BEGIN
            EXCEPTION "..." 'REGISTRO: '||FN_LPAD(OLD.CHEQUE_ID, 4, '0')||' COM SITUAÇÃO: '||SITUACAO||' - BAIXADO, EXCLUSÃO DE ITENS NÃO AUTORIZADA!';
        END
        IF((SITUACAO = 2) OR (SITUACAO = 5))THEN
        BEGIN
            EXCEPTION "..." 'REGISTRO: '||FN_LPAD(OLD.CHEQUE_ID, 4, '0')||' COM SITUAÇÃO: '||SITUACAO||' - DEVOLVIDO, EXCLUSÃO DE ITENS NÃO AUTORIZADA!';
        END
        IF(SITUACAO = 3)THEN
        BEGIN
            EXCEPTION "..." 'REGISTRO: '||FN_LPAD(OLD.CHEQUE_ID, 4, '0')||' COM SITUAÇÃO: '||SITUACAO||' - QUITADO, EXCLUSÃO DE ITENS NÃO AUTORIZADA!';
        END
    END

    HISTORICO = '';

    IF(OLD.ID > 0)THEN
    BEGIN
        HISTORICO = HISTORICO||'REFERENCIA: '||FN_LPAD(OLD.ID, 4, '0')||' EXCLUIDA';
    END

    IF(HISTORICO <> '')THEN
    BEGIN
        EXECUTE PROCEDURE SPI_HISTORICO('TBCHEQUE', OLD.CHEQUE_ID, HISTORICO);
    END
END
^

SET TERM ; ^

