PauloR19
-
Posts
14 -
Cadastrado em
-
Última visita
Tipo de conteúdo
Artigos
Selos
Fabricantes
Livros
Cursos
Análises
Fórum
posts postados por PauloR19
-
-
Tenho a função inserir, e nela tem uma validação de entrada e saída, primeiro ela faz um select com a função count com um where referenciando o código do produto, depois ela cai na condição if($quantidade_db >= $quantidade || mysqli_num_rows($result) == 0) se a quantidade do banco for maior ou igual quantidade inserida pelo usuário ou se mysqli_num_rows == 0 ela vai para a inserção, se a condição for falsa, mostra uma mensagem na tela "valor ultrapassa a quantidade em estoque".
A validação funciona para a saída, mas para entrada, por exemplo, o usuário cadastra o produto com a flag de entrada duas vezes com a quantidade de 50, mas novamente ele cadastra o mesmo produto com a flag de entrada mas com a quantidade de 101, a vai aparecer a mensagem "valor ultrapassa a quantidade em estoque".
Na entrada o usuário deve digitar a quantidade que ele quiser, e não cair no else para exibir a mensagem.
Como eu poderia resolver esse problema, ou melhorar a validação?
O código:
<?php require_once('./base_de_dados/connect_bd.php'); function inserir(){ //Conectando com o banco de dados $dbc = conexao(); $retorno = array(); $erros = array(); $admin; $produto; $registro; $quantidade; //função empty verifica se não tem registro inserido if($_POST['produto'] == ""){ $erros[] = 'O campo codigo administrador é obrigatório!'; }else{ $produto = $_POST['produto']; } if($_POST['admin'] == ""){ $erros[] = 'O campo codigo produto é obrigatório $teste!'; }else{ $admin = $_POST['admin']; } if($_POST['registro'] == ""){ $erros[] = 'O campo Registro é obrigatório!'; }else{ $registro = $_POST['registro']; } if(empty($_POST['quantidade'])){ $erros[] = 'O campo quantidade é obrigatório!'; }else{ $quantidade = $_POST['quantidade']; } if(empty($erros)){ $query = "select SUM(ret.quantidade) AS quantidade, ret.nome_produto, ret.id_produto from(SELECT SUM(p.quantidade) AS QUANTIDADE, p.tipo_registro, p.id_produto, c.nome AS nome_produto, c.imagem FROM estoque p JOIN administrador u ON u.id_admin = p.id_admin JOIN cadastro_produtos c ON c.id_produto = p.id_produto WHERE p.tipo_registro = 'entrada' GROUP BY p.tipo_registro, p.id_produto, c.nome, c.imagem UNION SELECT -SUM(p.quantidade) AS QUANTIDADE, p.tipo_registro, p.id_produto, c.nome AS nome_produto, c.imagem FROM estoque p JOIN administrador u ON u.id_admin = p.id_admin JOIN cadastro_produtos c ON c.id_produto = p.id_produto WHERE p.tipo_registro = 'saida' GROUP BY p.tipo_registro, p.id_produto, c.nome, c.imagem)ret WHERE ret.id_produto = $produto group by ret.nome_produto, ret.id_produto"; echo $query; $result = @mysqli_query($dbc, $query); $row = mysqli_fetch_array($result); $quantidade_db = $row['quantidade']; if($quantidade_db >= $quantidade || mysqli_num_rows($result) == 0){ //inserir no banco de dados $query = "INSERT INTO estoque(id_estoque, quantidade, tipo_registro, id_admin, id_produto, dt_movimentacao) VALUES (NULL, $quantidade,'$registro', '$admin' ,'$produto',CURRENT_TIMESTAMP)"; $result = @mysqli_query($dbc, $query); echo "$query"; if($result){ $retorno[] = 'Cadastro realizado com sucesso!'; }else{ $erros[] = 'Ocorreu algum erro ao cadastrar o estoque!'; } /** if($quantidade_db <= $quantidade || mysqli_num_rows($result) <= 0){ //inserir no banco de dados $query = "INSERT INTO estoque(id_estoque, quantidade, tipo_registro, id_admin, id_produto, dt_movimentacao) VALUES (NULL, $quantidade,'$registro', '$admin' ,'$produto',CURRENT_TIMESTAMP)"; $result = @mysqli_query($dbc, $query); echo "$query"; if($result){ $retorno[] = 'Cadastro realizado com sucesso!'; }else{ $erros[] = 'Ocorreu algum erro ao cadastrar o estoque!'; } }else{ //erro estoque echo"<script>alert('Primeiro Digite a entrada'); history.go(-1)</script>"; } **/ }else{ //erro estoque echo"<script>alert('Valor Ultrapassa a quantidade em estoque'); history.go(-1)</script>"; } }else{ $retorno = $erros; } return $retorno; } ?>
-
Queria saber como passar por parâmetro, um JComboBox da aplicação java, para gerar o relatório com o item selecionado do JComboBox.
adicionado 38 minutos depoisSolução:
public void listarRelatorio(){ try{ HashMap<String,Object> parametros = new HashMap<String, Object>(); Object para = comboBox.getSelectedItem().toString(); Connection conn = (Connection) ConnectDB.conexaoDB(); String caminho =("src/ireport/exemplo.jasper"); JasperPrint jasperprint = null; parametros.put("generoo", para); jasperprint = JasperFillManager.fillReport(caminho, parametros, conn); //java.io.InputStream jasperStream = Thread.currentThread().getContextClassLoader().getResourceAsStream("src/ireport/report1.jasper"); //JasperReport report = (JasperReport) JRLoader.loadObject(jasperStream); //JasperReport jasperreport = JasperCompileManager.compileReport(/ireport/report1.jasper"); JasperViewer view = new JasperViewer(jasperprint, false); view.setVisible(true); }catch(JRException e){ JOptionPane.showMessageDialog(null, "Ocorreu um erro"+e.getMessage()+e.getLocalizedMessage()); } }
-
Queria saber como fazer isso, tenho um relatório simples, mas na aplicação java quero que o usuário selecione um item do jcomboBox,clicaria no botão gerar, e gere as informações do item selecionado no relatório, como eu faria isso?, eu passaria o parâmetro na aplicação ou no relatório do ireport?
-
-
Tenho o seguinte problema, quero com que depois que eu delete uma locação da tabela locações eu vá na na tabela filmes e faça com que a situação do filme para disponível, mas no caso se eu tiver o código do filme na tabela locações em outro registro, eu ainda deixe a coluna situação da tabela filme como locado, como eu faria isso?
isso é o que eu já fiz, antes eu fiz com o código do filme, mas não me pareceu certo, agora eu fiz pelo da id da locacao:
TRIGGER `tguDelete` AFTER DELETE ON `locacoes` FOR EACH ROW UPDATE filmes SET situacao = 'Disponivel' WHERE id_locacao = OLD.id_locacao
Por favor me ajudem!
-
Olá pessoal venho pedir a ajuda de você's para ver como faz para salvar um item de um JcomboBox e esse item vem do banco de dados, por favor me ajudem.
meu professor fez dessa forma, mas ele disse que não é a forma mais correta
int codigo = Integer.parseInt(subString(cbC.getSelectedItem(), 1, 4).replace(" ", "").replace("-", ""));
Por favor me indiquem uma forma melhor de fazer isso.
-
Tenho a seguinte query, ela serve para ver o estoque de entrada e da saida, e faz o calculo entrada-saida, mas como ela é uma query um pouco complexa e não fui eu que fiz, tenho certa dificuldade em pensar como eu poderia exibi-lá em um código php para mostrar ao usuario a quantidade de entrada e saída ,por favor me ajudem
select SUM(ret.quantidade) AS quantidade, ret.nome_produto, ret.id_produto from(SELECT SUM(p.quantidade) AS QUANTIDADE, p.tipo_registro, p.id_produto, c.nome AS nome_produto, c.imagem FROM estoque p JOIN administrador u ON u.id_admin = p.id_admin JOIN cadastro_produtos c ON c.id_produto = p.id_produto WHERE p.tipo_registro = 'entrada' GROUP BY p.tipo_registro, p.id_produto, c.nome, c.imagem UNION SELECT -SUM(p.quantidade) AS QUANTIDADE, p.tipo_registro, p.id_produto, c.nome AS nome_produto, c.imagem FROM estoque p JOIN administrador u ON u.id_admin = p.id_admin JOIN cadastro_produtos c ON c.id_produto = p.id_produto WHERE p.tipo_registro = 'saida' GROUP BY p.tipo_registro, p.id_produto, c.nome, c.imagem)ret WHERE ret.id_produto = $produto group by ret.nome_produto, ret.id_produto
-
Quando tento chamar o código do filme no jcomboBox ele mé da esse erro "Before start of result Set"
segue o método:
public void preenche(){ java.sql.Connection conn = null; // Variável responsável por preparar a execução da query java.sql.PreparedStatement pstm = null; // Variável responsável por receber o retorno das informações // consultadas ResultSet rs = null; try{ conn = ConnectDB.conexaoDB(); pstm = conn.prepareStatement(SELECT_FILME); rs = pstm.executeQuery(); do{ cbCodigo.addItem(rs.getString("codigo_filme")); }while(rs.next()); }catch(SQLException e){ JOptionPane.showMessageDialog(null, "Ocorreu um erro"+ e.getMessage()); }
-
Obrigado à todos por me ajudarem!;
- 1
-
Vou postar a parte do comboBox
</tr> <td><label for="campoRegistro"> Tipo de Registro: <font color="red">*</font></label></td> <td> <select id="campoRegistro" name="registro" required> <option value="entrada" <?php echo $entrada; ?>> Entrada</option> <option value="saida" <?php echo $saida; ?>> Saída</option> </select> </td>
adicionado 0 minutos depoisdif
adicionado 0 minutos depois@dif
adicionado 5 minutos depoisadicionado 6 minutos depois- 1
-
Ok, mas eu não tenho experiencia em jquery, sou um iniciante em programação em geral, não teria uma forma de fazer usando php?
-
cadastro_estoque.php
<?php $id_estoque = ""; $quantidade = ""; $tipo_registro = ""; $saida = ""; $entrada = ""; $action_cad = "recebe_estoque"; $obrigatoriedade = "required"; $titulo = "Cadastro"; //Verifica se a variável $result possui informações if(isset($result)){ //Quantidades de linhas extraídas do banco de dados $qntLinhas = mysqli_num_rows($result); if($qntLinhas > 0){ //Transforma o retorno do banco de dados em array $row = mysqli_fetch_array($result); //Atribui retorno do DB as variáveis $obrigatoriedade = ""; $id_estoque = $row['id_estoque']; $quantidade = $row['quantidade']; $tipo_registro = $row['tipo_registro']; $action_cad = "alt_estoque"; $titulo = "Edição"; if($tipo_registro == 'entrada'){ $entrada = 'selected'; }else{ $saida= 'selected'; } } } ?>
<form enctype="multipart/form-data" action="?menu=<?php echo $action_cad; ?>" method="POST"> <center> <fieldset> <legend> <h2><?php echo $titulo; ?> de Estoque </h2></legend> <table border="0"> <tr align="center"> <td colspan="2"> <?php if(isset($mensagem)){ foreach($mensagem as $valor){ echo "<div id='mensagem'> $valor <br></div>"; } } ?> </td> </tr> <tr> <td><label for="campoAdmin"> Código do administrador <font color="red">*</font></label></td> <td> <select id = "campoAdmin" name="admin" required> <?php include('./base_de_dados/connect_bd.php'); $dbc = conexao(); $query = "SELECT id_admin, nome FROM administrador"; $result = @mysqli_query($dbc, $query); ?> <option>Selecione </option> <?php while($ad = mysqli_fetch_array($result)) { ?> <option value="<?php echo $ad['id_admin']; ?>"><?php echo $ad['nome']; ?></option> <?php } ?> </select> </td> </tr> <tr> <?php $query = "SELECT id_produto, nome FROM cadastro_produtos"; $result = @mysqli_query($dbc, $query); ?> <td><label for="campoProduto"> Código do produto <font color="red">*</font></label></td> <td> <select id = "campoProduto" name = "produto" required> <option> Selecione </option> <?php while($prod = mysqli_fetch_array($result)) { ?> <option value="<?php echo $prod['id_produto']; ?>"><?php echo $prod['nome']; ?></option> <?php } ?> </select> </td> </tr> <tr> <td><label for="campoQuantidade"> Quantidade: <font color="red">*</font></label></td> <td><input type="number" value="<?php echo $quantidade; ?>" name="quantidade" id="campoQuantidade" placeholder="Digite a quantidade" required></td> </tr> <td><label for="campoAtivo"> Tipo de Registro: <font color="red">*</font></label></td> <td> <select id="campoRegistro" name="registro" required> <option value="entrada" <?php echo $entrada; ?>> Entrada</option> <option value="saida" <?php echo $saida; ?>> Saída</option> </select> </td> </table> </fieldset> <p> <strong>Campos com <font color="red">*</font> são obrigatórios!</strong> </p> <tr> <td><input type="submit" value="Enviar"></td> <td><input type="reset" value="Limpar"></td> <input type="hidden" name="codigo" value="<?php echo $id_estoque;?>"> </tr> </center> </form>
cad_estoque.php
<?php require_once('./base_de_dados/connect_bd.php'); function inserir(){ //Conectando com o banco de dados $dbc = conexao(); $retorno = array(); $erros = array(); $admin; $produto; $registro; $quantidade; //função empty verifica se não tem registro inserido if($_POST['produto'] == ""){ $erros[] = 'O campo codigo administrador é obrigatório!'; }else{ $produto = $_POST['produto']; } if($_POST['admin'] == ""){ $erros[] = 'O campo codigo produto é obrigatório $teste!'; }else{ $admin = $_POST['admin']; } if($_POST['registro'] == ""){ $erros[] = 'O campo Registro é obrigatório!'; }else{ $registro = $_POST['registro']; } if(empty($_POST['quantidade'])){ $erros[] = 'O campo quantidade é obrigatório!'; }else{ $quantidade = $_POST['quantidade']; } if($_POST['registro'] == "saida"){ if($_POST['quantidade_saida']>=$_POST['quantidade']){ $erros[] = 'A quantidade de saida não pode ser maior quantidade de entrada!'; } }else{ $registro = $_POST['registro']; } if(empty($erros)){ //inserir no banco de dados $query = "INSERT INTO estoque(id_estoque, quantidade, tipo_registro, id_admin, id_produto, dt_movimentacao) VALUES (NULL, $quantidade,'$registro', '$admin' ,'$produto',CURRENT_TIMESTAMP)"; $result = @mysqli_query($dbc, $query); echo "$query"; if($result){ $retorno[] = 'Cadastro realizado com sucesso!'; }else{ $erros[] = 'Ocorreu algum erro ao cadastrar o estoque!'; } }else{ $retorno = $erros; } return $retorno; }
adicionado 5 minutos depois@PauloR19 @dif
adicionado 6 minutos depois -
Tenho um formulário com um ComboBox que tem entrada e saida, queria fazer uma validação para que o se o usuário escolhesse saída ele nunca colocasse uma quantia maior do que a da entrada, como eu faria isso?, desde já obrigado.
Sobre o Clube do Hardware
No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais
Direitos autorais
Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais
Erro no cadastro de usuários, alterando o usuário ao invés inserir
em Java/Android SDK
Postado
Meu problema é o seguinte, vi que quando edito um registro , funciona, o cadastro é alterado, mas quando eu quero cadastrar um novo usuário, ele cai na condição de edição, ele edita as informações do cadastro que eu estava alterando anteriormente, não deixando cadastrar um novo usuário, porque isso acontece?
Variável responsável por validar se está editando ou não.
Método responsável por buscar o código do usuário na tabela.
Método que recebe como parâmetro o código do funcionário, colocando as informações do usuário na tela de cadastro para alteração.
Método responsável por salvar ou alterar o funcionário.
Classe Dao
Método de salvar do pacote control da classe funcionários
Método de alterar do pacote control da classe funcionários
Peço ajuda de vocês para corrigir o problema.