public boolean validaHoraComUltimoLancamento2(JobProtheus op, String dataInicialLancamentoAtual, String HoraInicialLancamentoAtual, String dataFinalLancamentoAtual, String HoraFinalLancamentoAtual, String recursoAtual, double qtdTransf) {

        if (temLinhaTempo && !jCheckBoxRetrabalho.isSelected() && qtdTransf > 0) {

            Timestamp dataHoraInicio = Validacoes.converteHoraUtilSQL(dataInicialLancamentoAtual, HoraInicialLancamentoAtual);
            Timestamp dataHoraFim = Validacoes.converteHoraUtilSQL(dataFinalLancamentoAtual, HoraFinalLancamentoAtual);

            String dataFormatadaEstiloDate = Validacoes.retornaDataStringEstiloDate(dataFinalLancamentoAtual);

            JobLote ultimoLote = retornaUltimoLancamento(op.getJob().trim(), op.getOperacao(), recursoAtual.trim(), dataFormatadaEstiloDate);

            boolean existeLancamentoNoPeriodo = verificaSeExixteLancamentoNoPeriodo(op.getJob().trim(), op.getOperacao(), recursoAtual.trim(), dataHoraInicio, dataHoraFim);
            Timestamp horarioExistente = retornaHorarioExistente(op.getJob().trim(), op.getOperacao(), recursoAtual.trim(), dataHoraInicio, dataHoraFim);
            Timestamp horarioFimExistente = retornaFimHorarioExistente(op.getJob().trim(), op.getOperacao(), recursoAtual.trim(), dataHoraInicio, dataHoraFim);

            if (ultimoLote != null) {

                String dataUltimoLote = ultimoLote.getHoraFim().substring(0, 10);
                String horaUltimolote = ultimoLote.getHoraFim().substring(11, 16);
                Timestamp dataHoraUltimoLoteLancado = Validacoes.converteHoraUtilSQL(dataUltimoLote, horaUltimolote);
                Timestamp dataHoraLancamentoAtual = Validacoes.converteHoraUtilSQL(dataInicialLancamentoAtual, HoraInicialLancamentoAtual);

                if (dataHoraLancamentoAtual.before(dataHoraUltimoLoteLancado)) {

                    if (existeLancamentoNoPeriodo) {

                        if (!recursoAtual.trim().equals(ultimoLote.getRecurso().trim()) || dataHoraFim.equals(horarioExistente) || dataHoraInicio.equals(horarioFimExistente)) {
                            return true;
                        } else {

                            JOptionPane.showMessageDialog(null, "ATENÇÂO: O ultimo apontamento terminou as " + horaUltimolote + ". Você deve apontar um horario inicial maior que o horario final do ultimo lançamento! ");
                            jFTHoraInicio.setText("");
                            jFTHoraFim.setText("");
                            jFTHoraInicio.grabFocus();
                            return false;

                        }
                    }

                    return true;

                } else {
                    return true;
                }

            } else {
                return true;
            }
        }

        return true;

    }