DELIMITER $$
DROP FUNCTION IF EXISTS `revertir_comp`$$
CREATE DEFINER=`root`@`localhost` FUNCTION `revertir_comp`(codfact INT) RETURNS TINYINT(1)
    DETERMINISTIC
BEGIN
DECLARE id_comp_borrar INT;
DECLARE id_tal INT;
DECLARE nrocmp INT;
DECLARE nrocmp_anterior INT;
SET nrocmp_anterior=NULL;
SELECT id_comp,id_talonario,nro_comp INTO id_comp_borrar,id_tal,nrocmp FROM comprobantes WHERE id_fk_factura=codfact ORDER BY id_comp DESC LIMIT 0,1;
SELECT SQL_CALC_FOUND_ROWS MAX(nro_comp) INTO nrocmp_anterior FROM comprobantes WHERE id_talonario=id_tal AND id_fk_factura<>codfact AND NOT(cae IS NULL) LIMIT 0,1;

IF(nrocmp_anterior IS NULL)THEN
	UPDATE talonarios SET ultimo_nro_comp=0 WHERE id_talonario=id_tal;
ELSE
	UPDATE talonarios SET ultimo_nro_comp=nrocmp_anterior WHERE id_talonario=id_tal;
END IF;
DELETE FROM comprobantes WHERE id_comp=id_comp_borrar;
RETURN TRUE;
    END$$
DELIMITER ;