CREATE TRIGGER TTBPDV_CFE_B01D FOR TBPDV_CFE
ACTIVE BEFORE DELETE POSITION 1
AS

DECLARE VARIABLE CAIXA_ID INTEGER;
BEGIN
    IF(OLD.SITUACAO <> 1) THEN
    BEGIN
        IF(OLD.SITUACAO = 2) THEN EXCEPTION "..."'CUPOM FISCAL AUTORIZADO. EXCLUSAO CANCELADA';

        IF(OLD.SITUACAO = 3) THEN EXCEPTION "..."'CUPOM FISCAL CANCELADO. EXCLUSAO CANCELADA';

    END ELSE
    BEGIN

        SELECT T.PDV_CAIXA_ID FROM TBPDV_MOVIMENTO_CAIXA T WHERE T.ID = OLD.PDV_MOVIMENTO_CAIXA_ID INTO CAIXA_ID;

        EXECUTE PROCEDURE SP_CFE_PARCELAMENTO (OLD.ID, OLD.ESTABELECIMENTO_ID, OLD.REPRESENTANTE_ID,
            OLD.REPRESENTANTE_COMISSAO, OLD.VENDEDOR_ID, OLD.VENDEDOR_COMISSAO, OLD.CLIENTE_ID,
            :CAIXA_ID,  OLD.NUMERO_CFE, OLD.SERIE, OLD.DATA_EMISSAO, 2);

        EXECUTE PROCEDURE SP_CFE_PEDIDO(OLD.ID, 2);

        EXECUTE PROCEDURE SP_CFE_ESTOQUE(OLD.ID, OLD.ESTABELECIMENTO_ID, OLD.CLIENTE_ID, :CAIXA_ID,
            OLD.NUMERO_CFE, OLD.SERIE, OLD.DATA_EMISSAO, 2);

        EXECUTE PROCEDURE SPD_MOVCONTABIL(OLD.ID, 'CFI');

    END
END;