SET TERM ^ ;

CREATE OR ALTER trigger ttbestoque_trans_item_b0d_00 for tbestoque_transacao_item
active before delete position 0
AS
declare variable disponivel integer;
begin

    IF ( OLD.ESTOQUE_TRANSACAO_REGRA_ID > 0 AND OLD.TIPO = 'E' AND OLD.CONFERENCIA = 1 ) THEN
    BEGIN
        DELETE
          FROM TBESTOQUE_DETALHE_ALOCACAO D
         WHERE TIPO        = 'E'
           AND TAB_ITEM_ID = OLD.CONTROLE;
    END ELSE

    IF ( OLD.ESTOQUE_TRANSACAO_REGRA_ID > 0 AND OLD.TIPO = 'E' AND OLD.CONFERENCIA = 2 ) THEN
    BEGIN
      EXCEPTION "..." 'REGISTRO JA CONFERIDO, EXCLUSAO NAO PERMITIDA!';
    END

    if (OLD.CONSUMO_CCUSTO = '1') THEN
    BEGIN
        DELETE FROM TBESTOQUE_TRANSACAO_ITEM_CCUSTO D
        WHERE ESTOQUE_TRANSACAO_ID = OLD.CONTROLE;
    END

    disponivel = FN_ESTOQUE_SALDO_DISPONIVEL(old.estabelecimento_codigo, old.localizacao_codigo, old.produto_codigo, old.tamanho);

    if( disponivel < old.quantidade )then
    begin
        EXCEPTION "..." 'SEM SALDO PARA EXCLUIR A TRANSACAO '||OLD.CONTROLE||' DO PRODUTO '||OLD.PRODUTO_CODIGO||' - TAMANHO '||OLD.TAMANHO||', EXCLUSAO NAO PERMITIDA!';
    end
end
^

SET TERM ; ^

