Fórum Modelo Tabela #554058

17/05/2016

0

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

Responder

Posts

17/05/2016

Jothaz

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

Gostei + 0

17/05/2016

Lizy Panta

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);
}
}

Responder

Gostei + 0

17/05/2016

Jothaz

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?
Responder

Gostei + 0

17/05/2016

Lizy Panta

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;
    }

Responder

Gostei + 0

17/05/2016

Lizy Panta

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

Gostei + 0

17/05/2016

Jothaz

Posta a estrutura das tabelas e se possível com elas se relacionam.
Responder

Gostei + 0

17/05/2016

Lizy Panta

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!!
Responder

Gostei + 0

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar