Jump to content

jcvilanova

Membros
  • Contagem de Conteúdo

    40
  • Ingressou

  • Última visita

  • Dias Ganhos

    1

jcvilanova ganhou o dia em Abril 23 2022

jcvilanova teve o conteúdo mais curtido!

Informações Pessoais

  • Cidade
    Caxias
  • Estado
    Maranhão (MA)

Clientes & Parceiros

  • Você é um cliente TecnoSpeed?
    Não
  • Você é um parceiro da Casa do Desenvolvedor?
    Gostaria de ser

Visitantes Recentes do Perfil

O bloco de visitantes recentes está desativado e não está sendo mostrado a outros usuários.

Conquistas de jcvilanova

  • Participativo Raro

Emblemas Recentes

6

Reputação na Comunidade

  1. Galera, criei um sisteminha de pedidos online para hamburgueria, uma landpage com o cardapio e opção de enviar o pedido pelo whatsapp. Ocorre que eu gostaria tambem de imprimir cada pedido feito. Para mandar o pedido pelo whatsapp eu criei um metodo que percorre o carrinho de compras e cria um template conforme os itens do pedido, jogo tudo numa variavel, depois transformo numa url. Ja tentei de tantas as formas mandar mesmo conteudo para uma mini impressora termica, usando o window.print. Tive a ideia de abrir uma pagina em branco e jogar o conteudo da variavel texto, mas ficou tudo meios desajustado, junto, numa linha só. vejam meu metodo: finalizarPedido: () => { if (meu_Carrinho.length >0 && meu_Endereco != null) { var texto = 'Olá, eu gostaria de fazer um pedido,'; texto += `\n*Itens do Pedido:*\n\n\${itens}`; texto += '\n*Endereço de Entrega:*'; texto += `\n${meu_Endereco.endereco}, ${meu_Endereco.numero}, ${meu_Endereco.bairro}`; texto += `\n${meu_Endereco.cidade} - ${meu_Endereco.Uf} / ${meu_Endereco.cep} ${meu_Endereco.complemento}`; texto += `\n\n*Total (com entrega): R$ ${(valor_Carrinho + valor_Entrega).toFixed(2).replace('.', ',')}*`; var itens = ''; $.each(meu_Carrinho, (i, e ) => { itens += `*${e.quantidade}x* ${e.name}........R$ ${e.price.toFixed(2).replace('.', ',')} \n`; // verificando se o each chegou ao ultimo item if ((i + 1) == meu_Carrinho.length) { texto = texto.replace(/\${itens}/g, itens); // encodificando a variavel texto para URL do whatsapp let encode = encodeURI(texto); // criando a URL // let URL = `https://wa.me/5598970220128?text=${encode}`; let URL = `https://wa.me/${celular_Empresa}?text=${encode}`; // atrubuindo o endereço URL ao href do Botao Enviar Pedido $("#btnEtapaResumo").attr('href', URL); } }); } }, O método está enviando todo o conteudo certinho em forma de mensagem para o whatsapp, ocorre que eu gostaria de mandar esse conteudo direto para impressora que fica na cozinha. Alguem sabe me dizer como eu posso fazer isso ? Ja tentei da seguinte forma: criando uma nova janela e jogando o conteudo da variavel texo dentro da janela, const win = window.open(' ', ' ', 'heigtht=600, width=600'); win.document.write(texto); Acontece que dessa forma ai chega tudo sem formatação na janela e eu precisaria tambem de um botão nesta janela para imprimir e depois enviar para uma mini impressora termica. Mas não sei como fazer isso. Penso que a forma mais adequada seria enviar o pedido gerado diretamente para a impressora, sem a necessidade de criar essa tela. Mas como fazer ? Alguem pode me ajudar ?
  2. Pessoal, criei um formulario qus busca vendas pelo codigo ou pelo id do cliente. Alem disso, coloquei ainda a opção de pesquisar por periodo. Funcionou legal, porem, percebi que o sistema estava aceitando qualquer data como válida, dái comecei a pesquisar como validar os campos data. Encontrei uma dica que orientava a usar .withResolverStyle(ResolverStyle.STRICT); Fiz e o que ocorreu? Agora toda e qualquer data que coloco, mesmo sendo uma data válida, o sistema diz que é invalida. Estou recebendo uma mensagem dizendo que a data infromada não pode ser convertida. Aqui está o método que fiz: // Metodo Buscar vendas por período // É necessário fazer a conversão de datas // Primeiro passo: Receber a data if(TxtCodCliente.getText().equals("") && TxtNome.getText().equals("")){ JOptionPane.showMessageDialog(null, "Você deve informar o código ou o nome do Cliente que deseja pesquisar !", "Aviso!!!", JOptionPane.WARNING_MESSAGE); return; } if(TxtDataInicial.getText().equals(" / / ") || TxtDataFinal.getText().equals(" / / ")){ JOptionPane.showMessageDialog(null, "Você deve informar o período em que deseja pesquisar !", "Aviso!!!", JOptionPane.WARNING_MESSAGE); return; } try { DateTimeFormatter formato = DateTimeFormatter.ofPattern("dd/MM/yyyy") .withResolverStyle(ResolverStyle.STRICT); String frmPgto =""; String nome = "%"+TxtNome.getText()+"%"; VendasDAO dao = new VendasDAO(); LocalDate DataInicio = LocalDate.parse(TxtDataInicial.getText(), formato); LocalDate DataFim = LocalDate.parse(TxtDataFinal.getText(), formato); if (radioBtnDin.isSelected()){ // pegar a string e jogar no banco de dados frmPgto = "Dinheiro"; } if (radioBtnCartao.isSelected()){ // pegar a string e jogar no banco de dados frmPgto = "Cartão"; } if (radioBtnCheque.isSelected()){ // pegar a string e jogar no banco de dados frmPgto = "Cheque"; } if (radioBtnNota.isSelected()){ // pegar a string e jogar no banco de dados frmPgto = "Outros"; } String codigo = TxtCodCliente.getText(); if (!"".equals(codigo) ) { int CodCliente = Integer.parseInt(codigo); List<Vendas>lista = dao.listarVendasPorClintenoPeriodo(CodCliente, frmPgto, DataInicio, DataFim); DefaultTableModel dados = (DefaultTableModel)TabelaHistorico.getModel(); dados.setNumRows(0); for (Vendas v : lista) { dados.addRow(new Object[]{ v.getId(), v.getData_venda(), v.getCliente().getNome(), v.getTotal_venda(), v.getObservacao() }); } } else{ List<Vendas>lista = dao.listarVendasPorClintePorNome(nome, frmPgto, DataInicio, DataFim); DefaultTableModel dados = (DefaultTableModel)TabelaHistorico.getModel(); dados.setNumRows(0); for (Vendas v:lista){ dados.addRow(new Object[]{ v.getId(), v.getData_venda(), v.getCliente().getNome(), v.getTotal_venda(), v.getObservacao() }); } } } catch (DateTimeParseException e) { //data inválida JOptionPane.showMessageDialog(null, e.getMessage()); } Antes de usar o .withResolverStyle(ResolverStyle.STRICT); logo depois do DateTimeFormater, a busca era realizada normalmente. Agora nenhuma data passa. Alguem sabe como resolver ?????
  3. Pessoal, to terminando um projetinho em Java e gostaria de saber como eu faço para tornar o preenchimento de um campo obrigatório. Na verdade eu tenho um formulário de pesquisa com os campos Codigo e Nome, onde a pesquisa pode ser feita por qualquer um dos dois, mas se deixar em branco ta dando erro. Dessa forma eu gostaria de obrigar o usuário a digitar ou o Codigo ou o Nome. E tambem gostaria de evitar o erro ao apertar o botão quando um desses dois campos nao estivesse preenchido.
  4. Galera, peguei um exemplo aqui de como fazer uma busca por período na tabela de vendas de um sistema de estoque em Java. Para tal, criou-se um método que retorna uma lista com todas as vendas. Até aí tudo bem. Mas no exemplo não tem a implementação do método, que inclui a conversão de datas. Estou usando a versão 7 do Java, já procurei e não encontrei nenhum exemplo que possa me ajudar. o método que retorna a lista é o seguinte: public List<Vendas> listarVendasPorData(String DataInicio, String DataFim){ try { // 1º passo - criar a Lista List<Vendas> lista = new ArrayList<>(); // 2º passo - instrução SQL, organiza-la e executar String sql = "select v.id, v.datavenda, c.nome, v.totalvenda, v.observavoes from tb_vendas as v " +"inner join tb_clientes as c on(v.cliente_id = c.id) where v.datavenda BETWEEN ? and ?"; PreparedStatement stmt = con.prepareStatement(sql); //colocando os parametros stmt.setString(1, DataInicio); stmt.setString(1, DataFim); ResultSet rs = stmt.executeQuery(); while(rs.next()){ Vendas obj = new Vendas(); Clientes c = new Clientes(); obj.setId(rs.getInt("v.id")); obj.setData_venda(rs.getString("v.datavenda")); c.setNome(rs.getString("c.nome")); obj.setTotal_venda(rs.getDouble("v.total_venda")); obj.setObservacao(rs.getString("v.observacoes")); obj.setCliente(c); lista.add(obj); } return lista; No formulário eu tenho os campos de texto Data_Inicio e Data_Final. Gostaria de saber como fica o código no Botao pesquisar
  5. Galera, estou precisando de uma força. Estou criando uma aplicação em PHP para meu setor. Trabalho com controle e manutençao de escalas de serviço dos servidores. Criei o banco de dados com as tabelas: servidores, departamento e servicosdiarios. A escala é feita manualmente e eu gostaria de automatizar esse processo. A dieia seria criar um formulário de cadastro de escala, que seria preenchido diariamente com os dados: data, responsavel e os diversos serviços diarios. No caso dos serviços diários são varios: limpeza, portaria, motorista e outros, alguns com mais de um servidor por dia. Então eu pensei em ter um campo que seria preenchido com o nome do servidor ao clicar. Então a ideia seria, ao clicar no campo nome do servidor, que abrisse uma tela com todos os servidores e ao clicar num deles, o campo fosse preenchido automaticamente. O problema em que, como falei, alguns serviços serão prestados por mais de um servidor, então, que tipo de campo eu poderia usar que suportasse esse tipo de preenchimento comportando mais de um servidor? Como faria para abrir essa janela com a relação de todos os servidores? Obs: toda a parte de cadastro já está pronta e funcionando. O problema agora é só com a tela de inserção dos serviços diários. Não sei se fui claro
  6. Galera, estou precisando de uma força aqui. Recebi a tarefa de fazer um Livro Ata para o almoxarifado aqui no serviço. Mais especificamente o que devo fazer é somente a página de abertura. Tudo é texto, e é mais ou menos assim "Aos vinte e cinco dias do mes de março do ano de 2023, 25/03/2023, nesta cidade de ... estado do ..., recebi a incumbência de .... ". A unica coisa que muda diariamente é essa data, sendo que o nome da cidade e o estado sao sempre o mesmo. No final, tem a data e a assinatura do servidor responsável pelo serviço naquele dia. Gostaria de saber que tipo de campos devo usar no formulário e como manter esse texto padrao (que é sempre o mesmo) e preencher apenas o que muda que é a data e assinatura do responsável. Quem poderia me dar uma dica ? Obs: quero fazer isso em PHP.
  7. Olá amigo, dei uma olhada em tudo e fiz algumas correções. Está rodando certinho até certo ponto. Está gerando as combinações, a conexão e o SELECT na tabela estão ok, compara o conteudo do SELECT com o array que ta recebendo os numeros gerados etc. Agora surgiu outro problema que nao to conseguindo resolver, a função que deveria comparar o conteudo do array com o resultado do SELECT ta dando erro. Já bati cabeça demais mas nao consegui resolver. Testei o código linha por linha e ta tudo certo, exceto ai. Veja meu código, quem puder testar, agradeço <?php // verifica se o jogo já existe no banco function ja_existe($sorteio, $stmt) { $stmt->execute($sorteio); return $stmt->fetchColumn() > 0; } $Servidor = "localhost"; $Banco = "megasena"; $Usuario = "root"; $Senha = ""; if ($_SERVER['REQUEST_METHOD'] == 'POST') { $Numjogos = $_POST["jogos"]; $Qtydezenas = $_POST["dezenas"]; $Valormin = $_POST["de"]; $Valormax = $_POST["ate"]; $jogos = []; $numeros = array_map(function($n) { return sprintf("%02d", $n); }, range($Valormin, $Valormax)); } // $dez1 = 9; // $dez2 = 37; // $dez3 = 39; /// $dez4 = 41; // $dez5 = 43; // $dez6 = 48; $Conn = new PDO("mysql:host=$Servidor;dbname=$Banco", $Usuario, $Senha); //Antes eu estava fazendo a busca no Banco de Dados aqui, ocorre que os parametros da clausula WHERE ainda nao existiam, //pois os numeros ainda não haviam sido escolhidos conforme linha 49 // $stmt = $Conn->prepare('SELECT * FROM sorteio WHERE Dez1= :d1 AND Dez2= :d2 AND Dez3= :d3 AND Dez4= :d4 AND Dez5= :d5 AND Dez6= :d6'); // $stmt->bindParam(":d1", $dez1); // $stmt->bindParam(":d2", $dez2); // $stmt->bindParam(":d3", $dez3); // $stmt->bindParam(":d4", $dez4); // $stmt->bindParam(":d5", $dez5); // $stmt->bindParam(":d6", $dez6); // $stmt->execute(); // $dezenas = $stmt->fetch(); // print_r($dezenas); for ($i = 1; $i <= $Numjogos; $i++) { while (true) { // embaralho os numeros gerados shuffle($numeros); // retiro a quantidade de dezenas indicada no campo numero de jogos //$sorteio = array_slice($numeros, 0, $Qtydezenas); $sorteio = [10, 11, 29, 30, 36, 47]; // aqui eu ordeno as dezenas escolhidas // sort($sorteio); // e então faço a busca no BD $stmt = $Conn->prepare('SELECT * FROM sorteio WHERE Dez1 = :d1 AND Dez2= :d2 AND Dez3= :d3 AND Dez4= :d4 AND Dez5= :d5 AND Dez6= :d6'); $stmt->bindValue(":d1", $sorteio[0]); $stmt->bindValue(":d2", $sorteio[1]); $stmt->bindValue(":d3", $sorteio[2]); $stmt->bindValue(":d4", $sorteio[3]); $stmt->bindValue(":d5", $sorteio[4]); $stmt->bindValue(":d6", $sorteio[5]); $stmt->execute(); $dezenas = $stmt->fetch(); // exit; ?> <br> <br> <?php // se não é jogo repetido, adiciona no Array $jogos // A função deveria verificar se a combinação gerada já existe no BD, mas ta dando erro if (!ja_existe($sorteio, $stmt)) { $jogos[] = $sorteio; echo "<pre>"; print_r($jogos); // exit; // echo "Esse jogo nao existe: " .implode(', ', $sorteio). "<br>\n"; break; }else{ echo "Esse jogo já existe: " .implode(', ', $sorteio). "<br>\n"; } } var_dump($jogos); ?> <br> <br> <br> <br> <?php foreach ($jogos as $jogo) { // aqui eu gostaria de colocar um INSERT para passar os jogos gerados //do Array $jogos para a tabela sorteio, e gostaria de imprimir na tela as cobinações "<br>\n" ;"<br>\n"; echo "Os Jogos são: " .implode(', ', $jogo). "<br>\n"; } } ?> <form method="POST"> Numero de Jogos: <input type="text" size="10" name="jogos"> <br> Quantidade de Dezenas em cada jogo: <input type="text" size="10" name="dezenas"> <br> Iniciando em: <input type="text" size="5" name="de"> indo até:<input type="text" size="5" name="ate"> <br><br><br> <input type="submit" name="BTEnvia" value="Enviar"> <input type="reset" name="BTApaga" value="Apagar"> <?php ?> </body> </html> <br><br><br><br>
  8. Não fiz não. Na verdade, fiz a mesma coisa em PHP pois achei mais facil, porem, me deparei com outro problema. Não sei como fazer a INSERÇÃO no Banco e gostaria de quando salvar que fosse salvo em ordem crescente. Veja o código em PHP. Se puder dar uma força agradeço. function ja_existe($jogo, $stmt) { $stmt->execute($jogo); return $stmt->fetchColumn() > 0; } $Numjogos = $_POST["jogos"]; $Qtydezenas = $_POST["dezenas"]; $Valormin = $_POST["de"]; $Valormax = $_POST["ate"]; $jogos = []; $numeros = array_map(function($n) { return sprintf("%02d", $n); }, range($Valormin, $Valormax)); $Conn = // falta criar a conexão $stmt = $Conn->prepare('select count(*) from NomeDaTabela where Dez_1=? AND Dez_2=? AND Dez_3=? AND Dez_4=? AND Dez_5=? AND Dez_6=?'); for ($i = 1; $i <= $Numjogos; $i++) { while (true) { shuffle($numeros); $sorteio = array_slice($numeros, 0, $Qtydezenas); sort($sorteio); if (! ja_existe($jogo, $Conn)) { $jogos[] = $sorteio; break; } } }
  9. Galera, fiz um sisteminha em java onde eu gero combinaçoes aleatorias mas antes de gerar os numeros eu informo a quantidade de dezenas e os limites a partir do numero 1. Antes de iniciar a geração das combinações numéricas eu insiro as dezenas ou numeros que nao quero que estejam no sorteio. Tenho um banco de dados com todos os sorteios anteriores cadastrados, com os seguintes campos: NumeroSorteio, Dezena1, Dezena2, Dezena3, Dezena4, Dezena5, Dezena6. Eu gostaria de melhorar essa logica, fazendo o seguinte: ao inves de apontar para o sistema quais numeros nao deverao ser utilizados na geração das combinações, eu gostaria que o sistema fosse ate o Banco e verificasse se o numero gerado já existe, se exisir, ele nao utiliza, se nao, ele utiliza e gera a combinação. Ai via o meu codigo janelaPrincipal.setTitle("Gerar Números"); btAddNumero.addActionListener(new ActionListener() { int count = 0; //int tmp=0; List<Integer> valoresRejeitados = new ArrayList<>(); ArrayList<Integer> valoresAceitos = new ArrayList<Integer>(); Random valorRandomico = new Random(); @Override public void actionPerformed(ActionEvent e) { int tmp = 0; int temp = Integer.parseInt(field1.getText()); String temp2 = String.valueOf(temp); if (count < 5) { if(!valoresRejeitados.contains(temp)){ valoresRejeitados.add(temp); label3.setText(valoresRejeitados.toString()); count++; }else{ JOptionPane.showMessageDialog(null, "Este número já foi inserido!"); } } if(count==5){ /* * for que gera 10 combinações de números */ for(int j=0; j<340; j++){ //limpa a lista de combinações valoresAceitos.clear(); System.out.print("Combinação #" + (j+1) + "{"); /* * for que gera os cinco numeros de cada grupo */ for(int k=0; k<5; k++){ /* * o while se repete enquanto o numero gerado for repetido */ while(true){ //gera numero aleatório entre 1 e 25 tmp = 1 + valorRandomico.nextInt(80); /* * verifica se a lista de combinações(valores aceitos) contem numeros repetidos * digitados ou gerados */ if(!valoresAceitos.contains(tmp) && !valoresRejeitados.contains(tmp)){ valoresAceitos.add(tmp); //sai do laço while break; } } //exibe o numero gerado System.out.print(" " + tmp); } System.out.println("}"); switch (j) { case 0: label4.setText("Combinação "+(j+1) + ": " + valoresAceitos.toString()); label4.repaint(); break; case 1: label5.setText("Combinação "+(j+1)+ ": " + valoresAceitos.toString()); label5.repaint(); break; case 2: label6.setText("Combinação "+(j+1) + ": " + valoresAceitos.toString()); label6.repaint(); break; case 3: label7.setText("Combinação "+(j+1) + ": " + valoresAceitos.toString()); label7.repaint(); break; case 4: label8.setText("Combinação "+(j+1) + ": " + valoresAceitos.toString()); label8.repaint(); break; case 5: label9.setText("Combinação "+(j+1) + ": " + valoresAceitos.toString()); label9.repaint(); break; case 6: label10.setText("Combinação "+(j+1) + ": " + valoresAceitos.toString()); label10.repaint(); break; case 7: label11.setText("Combinação "+(j+1) + ": " + valoresAceitos.toString()); label11.repaint(); break; case 8: label12.setText("Combinação "+(j+1) + ": " + valoresAceitos.toString()); label12.repaint(); break; case 9: label13.setText("Combinação "+(j+1) + ": " + valoresAceitos.toString()); label13.repaint(); break; case 10: label14.setText("Combinação "+(j+1) + ": " + valoresAceitos.toString()); label14.repaint(); break; case 11: label15.setText("Combinação "+(j+1) + ": " + valoresAceitos.toString()); label15.repaint(); break; case 12: label16.setText("Combinação "+(j+1) + ": " + valoresAceitos.toString()); label16.repaint(); break; default: break; }
  10. Boa Tarde! Pessoal, Estou criando um site e coloquei nas páginas o efeito Parallax, ta funcionando direitinho, porém, gostaria de colocar um ícone no meio da pagina, que ficasse o tempo todo fixo ali. Assim sendo, como tem o parallax, o background ficará fixo, e o ícone tambem. Ao clicar no ícone os intens de menu aparecerão. A outra dúvida é que o ícone que quero é o da casinha, home, muito comum em muitos sites, mas diferente do apresentado no FontAwesome. Teria como encontrá-lo de graça. Encontrei um em PNG, mas como quero que a cor do ícone mude ao passar o mouse, não sei como fazer com o ícone em PNG. Alguem poderia me dar uma força ? Obrigado
  11. Pessoal, olhei um site hoje que tem uns efeitos interessantes, onde cada seção tem uma imagem como background e quando voce rola a barra de rolagem da tela, a imagem que surge aparentemente rola por sobre a que está saindo, que tambem parece em movimento. Não entendi bem. Gostaria de saber se alguem poderia dar uma olhada e explicar como se faz isso. Se puder demonstrar de forma básica, melhor ainda. Obrigado, Endereço do site: https://www.florense.com.br/
  12. Galera, comprei uma SSD nova e coloquei na minha máquina, porem, continuei com o HD antigo por opção de armazenamento. Hoje instalei o xampp na ssd e para minha surpresa, não estou conseguindo encontrar os arquivos do projeto do meu site que estavam no HTDOCS da pasta xampp no HD anterior. Simplesmente tudo sumiu. O que posso fazer para recuperar esses arquivos ?
  13. Na minha Home eu tenho a imagem que deveria levar por exemplo para sessão FUTEBOL que está na pagina ESPORTES. Eu quero que ao clicar na imagem do FUTEBOL que esta na home o usuario seja direcionado para a pagina ESPORTES, mas exatamente na sessao FUTEBOL. Como faço isso ?
  14. Bom dia!!! Galera Estou criando meu site em PHP, que está estruturado com a HOME, contato, sobre e uma REVISTA ELETRONICA com artigos variados. Na HOME eu faço uma pequena introdução do que o visitante irá encontrar em cada pagina. Ocorre que na parte da revista eletronica eu dividi os tópicos por categoria, tem esportes, curiosidades, Viagens etc. Na HOME quando falo da revista eu coloquei imagens referentes a cada categoria que tenho la na revista eletronica. A intenção é que ao clicar o visitante vá para pagina REVISTA ELETRONICA, porem, eu gostaria que ao clicar na imagem Esportes, por exemplo, a página já abrisse na sessão Esportes da REVISTA, quando clicasse em viagens a mesma coisa. É possível fazer isso ? Se sim, alguem poderia me ajudar ?
×
×
  • Create New...