Lógica para Software em Java com Banco de Dados
15/01/2019
0
Toda vez que a pessoa utilizar desse serviço, o sistema deverá salvar o valor a ser cobrado (se passou de 80) e atualizar a subtração da cota. E deve ter a opção de recarregar essa cota para cada pessoa.
Pensei em inserir nos campos jtxtfield a quantidade de cópias por vez que utilizar e o CPF da pessoa consequentemente gravar na jTable contendo todas as informações referente ao banco de dados.
Para fazer os cálculos dentro da jTable precisa de alguns UPDATES, se tiverem alguma ideia diferente...
Agradeço!
Igor
Post mais votado
19/01/2019
Marcio Souza
Mais Posts
20/01/2019
Igor
Acabei seguindo isso mesmo, só que na parte de UPDATE queria atualizar apenas o ultimo registro inserido na tabela. Pode me ajudar?
Fiz esse SELECT chamando as duas tabelas. Tentei chamar apenas a ultimo registro.
private void ultimo_registro() {
String sql = "select\\n"
+ "X.xerox,qtd_xerox ,valor,data_s,restcota, \\n"
+ "S.nomeserv,cpfserv,tiposerv,maxcot,total_xerox\\n"
+ "from tbxerox as X\\n"
+ "inner join tbservidores as S\\n"
+ "on (X.cpf = S.cpfserv)\\n"
+ "where xerox = (select X.xerox from tbxerox as X order by X.xerox desc limit 1);";
try {
pst = conexao.prepareStatement(sql);
rs = pst.executeQuery();
tblServidores.setModel(DbUtils.resultSetToTableModel(rs));
} catch (Exception e) {
JOptionPane.showMessageDialog(null, e);
}
}
E fiz esse UPDATE pra atualizar a ultima linha
private void calculo_ultrapassa() {
String sql = "update tbxerox\\n"
+ "inner join tbservidores on tbxerox.cpf = tbservidores.cpfserv\\n"
+ "set\\n"
+ "valor = (tbservidores.maxcot - tbservidores.total_xerox) * (-0.10)\\n"
+ "WHERE (tbxerox.restcota) < 0\\n"
+ "and (tbservidores.maxcot - tbxerox.qtd_xerox) < 0\\n"
+ "and (tbxerox.qtd_xerox) > 80\\n"
+ "and (tbservidores.total_xerox) > 80;";
try {
pst = conexao.prepareStatement(sql);
int adicionado;
adicionado = pst.executeUpdate();
} catch (Exception e) {
JOptionPane.showMessageDialog(null, e);
}
}
Mas ainda continua atualizando todas as linhas.
20/01/2019
Igor
Lembrando que chamei primeiro o SELECT e depois o UPDATE. To chamando o método abaixo num Botão.
private void emitir_xerox() {
String sql = "insert into tbxerox(qtd_xerox ,cpf) values (?,?)";
try {
pst = conexao.prepareStatement(sql);
pst.setString(1, txtCopia.getText());
//pst.setString(2, txtOsValor.getText());
pst.setString(2, txtCliId.getText());
// pst.setString(3, resultado.getText());
//pst.setString(3, txtRestCota.getText());
if ((txtCopia.getText().isEmpty())) {
JOptionPane.showMessageDialog(null, "Preencha todos os campos obrigatórios!");
} else {
int adicionado = pst.executeUpdate();
if (adicionado > 0) {
JOptionPane.showMessageDialog(null, "Xerox adicionado com sucesso!");
txtCopia.setText(null);
//txtOsValor.setText(null);
txtCliId.setText(null);
//resultado.setText(null);
//txtRestCota.setText(null);
// Uptade para o calculo < 0
ultimo_registro();
calculo_ultrapassa();
} else {
}
}
} catch (Exception e) {
JOptionPane.showMessageDialog(null, e);
}
}
01/02/2019
Marcio Souza
Clique aqui para fazer login e interagir na Comunidade :)