Modelo Tabela

Java

17/05/2016

Olá, estou com uma dúvida em java. Estou desenvolvendo um sistema de hotel e tenho uma tabela Hospedagem que mostra todas as hospedagens cadastradas.Esta lista vem de um Modelo Tabela. O problema é o seguinte: quando clico em uma determinada hospedagem cadastro um consumo, até aí td bem, mas se eu selecionar um outro código da hospedagem para cadastrar um novo consumo, seja para um nova hospedagem, ou para alguma que já tenha alguns consumos, o consumo cadastrado vem para o mesmo hóspede que havia selecionado primeiramente, isto é, ele gera um código de consumo a cada consumo, mas não vincula para o código daquela hospedagem que estou cadastrando, todos os consumo vão se acumulando num mesmo código hospedagem e gostaria que a cada hospedagem que tivesse um consumo já cadstrado fosse gerada uma tabela apenas o consumo do hóspede em questão e a cada novo consumo de uma nova hospedagem uma nova tabela. Não sei se fui clara!!! Isso seria possível? Estou utilizando java Swing e MySql. Por favor alguém me ajuda??Obrigada!
Lizy Panta

Lizy Panta

Curtidas 0

Respostas

Jothaz

Jothaz

17/05/2016

Acho que para começar seri interessante postar a estrutura de seu banco de dados ou classes, do contrário fica difícil ajudar.
GOSTEI 0
Lizy Panta

Lizy Panta

17/05/2016

Jothaz Obg! Código do cadastrar Consumo que está na tela Consumo:
private void btnCadastrarActionPerformed(java.awt.event.ActionEvent evt) {
ConsumoDAO consumoDAO = new ConsumoDAO();
Consumo consumo1 = new Consumo();

if (txtCodProduto.getText().isEmpty() || txtQuantidade.getText().isEmpty()) {

JOptionPane.showMessageDialog(this, "Erro!! Por favor preencha os campos corretamente!!!");
} else {

//Passa o que e digitado para a tabela no banco
consumo1.setCodHospedagem(Integer.parseInt(txtCodHospedagem.getText()));
consumo1.setCodProduto(Integer.parseInt(txtCodProduto.getText()));
consumo1.setQuantidade(Integer.parseInt(txtQuantidade.getText()));
consumo1.setValorConsumo(Double.parseDouble(txtValorConsumo.getText()));
consumo1.setStatus(String.valueOf(cmbStatus.getSelectedItem()));

consumoDAO.cadastrar(consumo1);
JOptionPane.showMessageDialog(this, "Consumo cadastrado com sucesso!!!");
limparCampos();
mostrar(codHospedagem);

conConsumo.executaSQL("SELECT C.codConsumo, C.codHospedagem, P.nomeProduto AS nomeProduto, " +
" C.quantidade, C.valorConsumo, C.status " +
" FROM Consumo C " +
" INNER JOIN produto AS P ON P.codProduto = C.codProduto " +
" order by C.codConsumo ");
try {
modeloTabelaConsumo.setResult(conConsumo.resultset);
} catch (SQLException ex) {
}
}
txtNome.requestFocus();

desabilitarCampos();//Desabilita campos e abaixo os botoes
btnCadastrar.setEnabled(false);
btnDeletar.setEnabled(false);
btnNovo.setEnabled(true);
btnCancelar.setEnabled(false);
}


Este método criei na tela do consumo mas não funciona! Preciso que quando seleciono uma hospedagem abra o consumo separadamente pelo código da hospdagem e esta acumulando todos num só código hospedagem!



public void mostrar(String buscar){
try {
ModeloTabelaConsumo modeloTabelaConsumo;
ConsumoDAO consumoDAO = new ConsumoDAO();
// conConsumo.abrir();
// modeloTabelaConsumo = (ModeloTabelaConsumo) consumoDAO.mostra(buscar);

modeloTabelaConsumo = new ModeloTabelaConsumo(conConsumo.resultset);
jTableConsumos.setModel(modeloTabelaConsumo);
txtTotalConsumo.setText("Valor R$. " + consumoDAO.totalConsumo);

} catch (Exception e) {
JOptionPane.showMessageDialog(rootPane, e);
}
}

GOSTEI 0
Jothaz

Jothaz

17/05/2016

Sempre que posta códigos use a tag Code "/>" primeiro ícone a esquerda, senão o código fica ilegível.

Você não tem o modelo do banco de dados ou das classes?
GOSTEI 0
Lizy Panta

Lizy Panta

17/05/2016

Este método tenho na DAOConsumo e chamo no cadastrar!

public Object mostra(String buscar) {
        //Objeto de Retorno
        Consumo consumoVO = new Consumo();
        totalConsumo = 0.0;
        
        String sql = ("SELECT c.codConsumo, c.codHospedagem, c.codProduto, p.nomeProduto, " +
                      " c.quantidade, c.valorConsumo, c.status " +
                      " from consumo c " +
                      " INNER JOIN produto  p ON c.codProduto = p.codProduto " +
                       "INNER JOIN hospedagem AS H ON H.codHospedagem = C.codHospedagem " 
                     + " WHERE c.codHospedagem = " + buscar + " order by c.codConsumo ");

        //Abre conexao com o banco
        getBanco().abrir();
        try {
            Statement stm = getBanco().getConexao().createStatement();
            //Faz a leitura no banco
            ResultSet rs = stm.executeQuery(sql);
            //Verifica se achou
            if (rs.next() == true) { //Achou
                consumoVO = new Consumo();
                consumoVO.setCodConsumo(rs.getInt("codConsumo"));
               consumoVO.setCodHospedagem(rs.getInt("codHospedagem"));
                consumoVO.setCodProduto(rs.getInt("codProduto"));
         //       consumoVO.setCodProduto(rs.getInt("nomeProduto"));                               
                consumoVO.setQuantidade(rs.getInt("quantidade"));
                consumoVO.setValorConsumo(rs.getDouble("valorConsumo"));
                consumoVO.setStatus(rs.getString("status"));
                
                totalConsumo = totalConsumo + (rs.getInt("quantidade") * rs.getDouble("valorConsumo"));
                
            }
        } catch (SQLException ex) {
            ex.printStackTrace();
        }
        return consumoVO;
    }

GOSTEI 0
Lizy Panta

Lizy Panta

17/05/2016

No banco está separando por PK mas na tela do java não consigo!!!
GOSTEI 0
Jothaz

Jothaz

17/05/2016

Posta a estrutura das tabelas e se possível com elas se relacionam.
GOSTEI 0
Lizy Panta

Lizy Panta

17/05/2016

Tabela Consumo
codConsumo - pk
codHospedagem - fk
codProduto - fk
quantidade
valorConsumo
status

Tabela Hospedagem
codHospedagem pk
codReserva fk
qtdDiaria
valorHospedagem
status

Tabela Produto
codProduto pk
nomeProduto
marca
descricaoProduto
qtdProduto
valorUnitario

Não consegui inserir a imagem do MER aqui mas meu banco está desta forma, porém no meu banco está vindo corretamente, eu especifico uma id e vem o consumo daquela id o problema é no java que não sei como fazer!!! Preciso para cada consumo uma lista específica daquele codHospedagem!!
GOSTEI 0
POSTAR