Oiii gente… tô com um probleminha… tenho o seguinte código
public boolean fecharCaixa(RegistroCaixa r) throws SQLException {
DAOFactory dao = DAOFactory.getDAOFactory(DAOFactory.MYSQL);
VendaDAO vdao = dao.getVendaDAO(DAOFactory.READ_ONLY);
String sql = "update tb_registro_caixa set vl_caixa_final_dinheiro = ?, "
+ "vl_caixa_final_cheque = ?, vl_caixa_final_cartao = ? ,"
+ "sg_status_caixa = ? "
+" where cd_numero_caixa = ? "
+ "and dt_registro_caixa = ? and id_usuario = ? "
+ "and sg_status_caixa = 'A'";
PreparedStatement stmt = this.connection.prepareStatement(sql);
stmt.setDouble(1, vdao.getValorVendasComDinheiro(r.getId()));
stmt.setDouble(2, vdao.getValorVendasComCheque(r.getId()));
stmt.setDouble(3, vdao.getValorVendasComCartao(r.getId()));
stmt.setString(4, "F");
stmt.setShort(5, r.getNumeroCaixa());
if(Calendar.HOUR_OF_DAY >= 0 && Calendar.HOUR_OF_DAY <= 8){
Calendar today = Calendar.getInstance();
today.setTime(new Date());
today.add(Calendar.DAY_OF_MONTH, -1);
SimpleDateFormat f = new SimpleDateFormat("yyyy-MM-dd");
stmt.setString(6, f.format(today));
}else{
SimpleDateFormat f = new SimpleDateFormat("yyyy-MM-dd");
stmt.setString(6, f.format(new Date()));
}
stmt.setLong(7, r.usuario.getId());
boolean retorno;
if (stmt.executeUpdate() > 0) {
retorno = true;
} else {
retorno = false;
}
stmt.close();
return retorno;
}
Gostaria que se fosse apos a meia noite e antes das 8 da manha… ele pega-se a data anterior… e fecha-se o caixa…porem ele não pega… e acaba dando um erro…
alguem saberia me dizer o que eu fiz de errado nesta parte do codi
if(Calendar.HOUR_OF_DAY >= 0 && Calendar.HOUR_OF_DAY <= 8){
Calendar today = Calendar.getInstance();
today.setTime(new Date());
today.add(Calendar.DAY_OF_MONTH, -1);
SimpleDateFormat f = new SimpleDateFormat("yyyy-MM-dd");
stmt.setString(6, f.format(today));
}else{
SimpleDateFormat f = new SimpleDateFormat("yyyy-MM-dd");
stmt.setString(6, f.format(new Date()));
}
Não sei se ficou muito claro… mas bom… se alguem puder me ajudarr…