Ir para conteúdo

POWERED BY:

violin101

Members
  • Total de itens

    290
  • Registro em

  • Última visita

Reputação

0 Comum

Sobre violin101

Últimos Visitantes

O bloco dos últimos visitantes está desativado e não está sendo visualizado por outros usuários.

  1. violin101

    Javascript - Calcular Valores Monetário em Tempo Real

    Caros amigos, saudações. Depois de revisar e revisar, consegui resolver o problema de Cálculo em Tempo Real. o fonte ficou assim: jQuery('input').on('keyup',function(){ //já está no Formato(0.00) var resto = document.getElementById("pgRest").value; //já está no Formato(0.00) var desct = document.getElementById("pgDsct").value; resto = parseFloat(jQuery('#pgRest').val() != '' ? jQuery('#pgRest').val() : 0); desct = parseFloat(jQuery('#pgDsct').val() != '' ? jQuery('#pgDsct').val() : 0); //Mostra o Resultado em Tempo Real com 2 casas decimais jQuery('#pgTroco').val((resto + desct).toFixed(2).replace('.', ',')); }) Grato, Cesar
  2. Caros amigos, saudações. Estou com uma dúvida, referente cálculo de valores em tempo real. Tenho uma rotina, que faz o cálculo, o problema é mostrar o resultado. Quero mostrar o RESULTADO assim: 0,00 ou 0.00 Abaixo posto o código. jQuery('input').on('keyup',function(){ //Remover ponto e trocar a virgula por ponto var m = document.getElementById("pgRest").value; while (m.indexOf(".") >= 0) { m = m.replace(".", ""); } m = m.replace(",","."); //Remover ponto e trocar a virgula por ponto var j = document.getElementById("pgDsct").value; while (j.indexOf(".") >= 0) { j = j.replace(".", ""); } j = j.replace(",","."); m = parseFloat(jQuery('#pgRest').val() != '' ? jQuery('#pgRest').val() : 0); j = parseFloat(jQuery('#pgDsct').val() != '' ? jQuery('#pgDsct').val() : 0); //Mostra o Resultado em Tempo Real jQuery('#pgTroco').val(m - j); <<=== aqui estou errando }) Grato, Cesar
  3. violin101

    JavaScript - Exibir logo dentro da Tabela html

    Caro amigos, saudações. Tenho uma tabela escrita em JS que funciona corretamente. Minha dúvida: - como devo fazer para quando a Tabela HTML estiver vazia, exibir o LOGO da Empresa ? Abaixo posto o script: document.addEventListener( 'keydown', evt => { if (!evt.ctrlKey || evt.key !== 'i' ) return;// Não é Ctrl+A, portanto interrompemos o script evt.preventDefault(); //Chama a Função Calcular Qtde X Valor Venda calcvda(); var idProdutos = document.getElementById("idProdutos").value; var descricao = document.getElementById("descricao").value; var prd_unid = document.getElementById("prd_unid").value; var estoque_atual = document.getElementById("estoque_atual").value; var qtde = document.getElementById("qtde").value; var vlrunit = document.getElementById("vlrunit").value; var vlrtotals = document.getElementById("vlrtotal").value; var vlrtotal = vlrtotals.toLocaleString('pt-br', {minimumFractionDigits: 2}); if(validarConsumo(estoque_atual)){ //Chama a Modal com Alerta. $("#modal_qtdemaior").modal(); } else { if(qtde == "" || vlrunit == "" || vlrtotal == ""){ //Chama a Modal com Alerta. $("#modal_quantidade").modal(); } else { //Monta a Tabela com os Itens html = "<tr style='font-size:13px;'>"; html += "<td width='10%' height='10' style='text-align:center;'>"+ "<input type='hidden' name='id_prds[]' value='"+idProdutos+"'>"+idProdutos+"</td>"; html += "<td width='47%' height='10'>"+ "<input type='hidden' name='descricao[]' value='"+descricao+"'>"+descricao+ "<input type='hidden' name='esp[]' value='"+prd_unid+"'> - ESP:"+prd_unid+ "<input type='hidden' name='estoq[]' value='"+estoque_atual+"'></td>"; html += "<td width='10%' height='10' style='text-align:center;'>"+ "<input type='hidden' name='qtde[]' value='"+qtde+"'>"+qtde+"</td>"; html += "<td width='12%' height='10' style='text-align:right;'>"+ "<input type='hidden' name='vlrunit[]' value='"+vlrunit+"'>"+vlrunit+"</td>"; html += "<td width='14%' height='10' style='text-align:right;'>"+ "<input type='hidden' name='vlrtotal[]' value='"+vlrtotal+"'>"+vlrtotal+"</td>"; html += "<td width='12%' height='10' style='text-align:center;'>"+ "<button type='button' class='btn btn-uvas btn-remove-produto' style='margin-right:1%; padding:1px 3px; font-size:12px;' title='Remover Item da Lista'>"+ "<span class='fa fa-minus' style='font-size:12px;'></span></button></td>"; html += "</tr>"; $("#tbventas tbody").append(html); //Função para Somar os Itens do Lançamento somar(); $("#idProdutos").val(null); $("#descricao").val(null); $("#prd_unid").val(null); $("#qtde").val(null); $("#vlrunit").val(null); $("#vlrtotal").val(null); $("#idProdutos").focus(); //Se INCLUIR NOVO produto - Limpa a Forma de Pagamento $("#pgSoma").val(null); $("#pgRest").val(null); $("#pgDsct").val(null); $("#pgTroco").val(null); $("#tbpagar tbody").empty(); }//Fim do IF-qtde }//Fim do Validar Consumo });//Fim da Função btn-agregar Grato, Cesar
  4. violin101

    PHP+Codeigniter - Implementar o Input CÓDIGO ou ID do Produto

    amigo Williams, saudações. Deus o abençoa, realmente faltou declarar no início do JS. let timeoutId; // Declaração da variável Fiz a Declaração e funcionou corretamente. Muito Obrigado. Deus o abençoa. Atenciosamente, Cesar
  5. violin101

    PHP+Codeigniter - Implementar o Input CÓDIGO ou ID do Produto

    Amigo Williams, saudações. Conforme sua orientação acima, fiz a adequação no meu sistema, mas infelizmente não tive sucesso. Após digitar o Código no INPUT não fez a contagem de tempo e não mostrou a descrição. O meu INPUT está assim: <form action="<?php echo current_url(); ?>" id="frmPdv" method="post"> <div class="row"> <div class="col-md-3"> <label for="idProdutos">Código:</label> <input type="text" class="form-control" id="idProdutos" name="idProdutos" style="margin-top:-7px; font-size:15px; width:100%; font-weight:normal; background:#FFFFFF;" placeholder="Apenas Número"> </div> <div class="col-md-9"> <label for="descricao">Produto:</label> <input type="text" class="form-control" id="descricao" name="descricao" style="margin-top:-7px; font-size:15px; width:100%; font-weight:normal; background:#FFFFFF;" placeholder="Pesquisar por descrição do produto" > </div> </div> </form> O meu JS está assim: <script type="text/javascript"> $(document).ready(function(){ $('#idProdutos').on('input', function() { clearTimeout(timeoutId); const idprd = $(this).val(); timeoutId = setTimeout(function() { if (idprd ) { $.ajax({ url: "<?php echo base_url(); ?>vendas/pdvcaixa/buscarID/", type: "POST", data: { idprd : idprd }, success: function(response) { // Exibe o resultado if (response.success) { //Exibe no INPUT da Descrição $("#descricao").val(response.produto.descricao); } } }); } }, 1500); // 1.5 segundos de delay }); }); </script> O meu Controller está assim: public function buscarID() { $idprd = $this->input->post('idProdutos'); $produto = $this->pdvcaixa_model->buscarCodigo($idprd); echo json_encode([ 'success' => true, 'produto' => $produto ]); } O meu MODEL está assim: public function buscarCodigo($idprd) { $this->db->select('*'); $this->db->from('produtos'); $this->db->where('produtos.idProdutos', $idprd); $this->db->where('produtos.statusProd', 1); $this->db->order_by('produtos.descricao', 'ASC'); return $this->db->get()->result(); } Grato Cesar
  6. Caros amigos, saudações. Por favor, poderiam me ajudar. Estou com a seguinte dúvida: --> como faço para para implementar o input código do produto, para quando o usuário digitar o ID o sistema espera de 1s a 2s, sem ter que pressionar a tecla ENTER. exemplo: código ---- descrição 1 ----- produto_A Grato, Cesar
  7. violin101

    PHP+Codeigniter - Adicionar Registro Plano de Contas

    Caro amigo Williams saudações. Deus o abençoa, deu certo, obrigado, Atenciosamente, Cesar
  8. violin101

    PHP+Codeigniter - Adicionar Registro Plano de Contas

    Caro amigo, Williams saudações. Deu certo, gravou com as Hierarquias corretamente. Amigo Williams esta linha mostra o tamanho do campo do mysql: ->where('LENGTH(pl_idconta) <=', 4) // Limita a 2 níveis (1 ou 1.01) Alterei para esta e trouxe os níveis: ->where('CHAR_LENGTH(pl_idconta) <=', 4) // Limita a 2 níveis (1 ou 1.01) Observação: apenas curiosidade. se precisar criar mais um nível, como devo fazer, por exemplo: 1 - principal 1.01 - nível_1 1.01.001 - nível_2 1.01.001.0001 - conta_1
  9. violin101

    PHP+Codeigniter - Adicionar Registro Plano de Contas

    Amigo Williams, saudações. POR FAVOR, me PERDOA em recorrer a ajuda do amigo novamente, testando o código que o amigo enviou, continua dando erro de DUPLICIDADE, agora está assim. 1 - TESTE A 1.01 - GRAVA NORMAL 1.01.0001 - GRAVA NORMAL 1.01.0002 ========> AQUI JÁ DÁ ERRO, O SISTEMA NÃO GRAVA .0002 ---- DUPLICA o .0001 novamente 2 - TESTE B 2.01 - GRAVA NORMAL 2.01.0001 - GRAVA NORMAL 2.01.0002 ========> AQUI JÁ DÁ ERRO, O SISTEMA NÃO GRAVA .0002 ---- DUPLICA o .0001 novamente
  10. violin101

    PHP+Codeigniter - Adicionar Registro Plano de Contas

    Caro amigo Williams. Consegui fazer o INSERT. Agora estou com o seguinte problema. Quando salvo os Registro não faz a soma, ou seja, duplica o 1, para todos. Salva assim: 1 - teste 1.01 testeA 1.01.01 testeB 1.01.01.0 testeC Segui todas as suas orientações conforme a MODEL, só não entendo porque não está fazendo o ++. O meu controller ficou assim: function adicionar() { if (!$this->permission->checkPermission($this->session->userdata('permissao'), 'aContas')) { $this->session->set_flashdata('error', 'Você não tem permissão para adicionar plano de contas.'); redirect(base_url()); } $this->load->library('form_validation'); $this->data['custom_error'] = ''; if ($this->form_validation->run('planocontas') == false) { $this->data['custom_error'] = (validation_errors() ? '<div class="form_error">' . validation_errors() . '</div>' : false); } else { $data = [ 'parent_code' => $this->input->post('parent_code'), 'pl_descricao' => $this->input->post('pl_descricao'), 'pl_titulo' => 1, 'pl_status' => 1 ]; /* echo '<pre>'; var_dump($data); echo '</pre>'; exit(); */ $result = $this->planocontas_model->insert($data); if ($result) { $this->session->set_flashdata('success', 'Conta adicionada com sucesso!'); redirect(base_url() . 'faturamento/planocontas/adicionar/'); } else { $this->data['custom_error'] = '<div class="form_error"><p>Ocorreu um erro.</p></div>'; } } $this->novo(); $this->load->view('estilo/header', $this->data); $this->load->view('faturamento/planocontas/adicionarConta'); } public function novo() { // Carrega todos os códigos possíveis de serem pai $this->load->model('planocontas_model'); $data['plcta'] = $this->db ->select('*') ->from('planocontas') ->where('pl_status', 1) ->order_by('pl_idconta') ->get() ->result(); $this->load->view('estilo/header', $this->data); $this->load->view('faturamento/planocontas/adicionarConta', $data); } A MODEL, ficou assim: <?php class Planocontas_model extends CI_Model { function __construct() { parent::__construct(); $this->load->database(); } function get($table, $fields, $where = '', $perpage = 0, $start = 0, $one = false, $array = 'array') { $this->db->select($fields); $this->db->from($table); $this->db->order_by('pl_idconta', 'ASC'); $this->db->limit($perpage, $start); if ($where) { $this->db->where($where); } $query = $this->db->get(); $result = !$one ? $query->result() : $query->row(); return $result; } function getById($id) { $this->db->where('idPlanocontas', $id); $this->db->limit(1); return $this->db->get('planocontas')->row(); } function edit($table, $data, $fieldID, $ID) { $this->db->where($fieldID, $ID); $this->db->update($table, $data); if ($this->db->affected_rows() >= 0) { return true; } return false; } function delete($table, $fieldID, $ID) { $this->db->where($fieldID, $ID); $this->db->delete($table); if ($this->db->affected_rows() == '1') { return true; } return false; } function count($table) { return $this->db->count_all($table); } public function getNextCode($parent_code = null) { if (!$parent_code) { // Busca próximo código raiz (1, 2, 3...) $query = $this->db->select('MAX(SUBSTRING_INDEX(pl_idconta, ".", 1)) as max_code') ->from('planocontas') ->where('LENGTH(pl_idconta) = 1') ->get(); $result = $query->row(); return ($result->max_code ?? 0) + 1; } else { // Busca próximo subcódigo $like_pattern = $parent_code . '.%'; $length = strlen($parent_code) + 3; $query = $this->db->select('MAX(SUBSTRING_INDEX(pl_idconta, ".", -1)) as max_code') ->from('planocontas') ->like('pl_idconta', $like_pattern, 'after') ->where('LENGTH(pl_idconta) =', $length) ->get(); $result = $query->row(); $next_number = str_pad(($result->max_code ?? 0) + 1, 2, '0', STR_PAD_LEFT); return $parent_code . '.' . $next_number; } } public function insert($data) { if (empty($data['parent_code'])) { $data['pl_idconta'] = $this->getNextCode(); } else { $data['pl_idconta'] = $this->getNextCode($data['parent_code']); } return $this->db->insert('planocontas', [ 'pl_idconta' => $data['pl_idconta'], 'pl_descricao' => $data['pl_descricao'], 'pl_titulo' => $data['pl_titulo'], 'pl_status' => $data['pl_status'] ]); } } A VIEW está assim: <?php defined('BASEPATH') OR exit('No direct script access allowed'); $this->load->view('faturamento/tema/topo'); ?> <!-- Content Wrapper. Contains page content --> <div class="content-wrapper"> <!-- Content Header (Page header) --> <section class="content-header"> <div class="container-fluid"> <div class="row mb-2"> <div class="col-sm-6"> <h1>Condição de Pagamento</h1> </div> <div class="col-sm-6"> <ol class="breadcrumb float-sm-right"> <li class="breadcrumb-item"><a href="<?php echo base_url()?>faturamento/controle">Home</a></li> <li class="breadcrumb-item active">Condição de Pagamento</li> </ol> </div> </div> </div><!-- /.container-fluid --> </section> <section class="content"> <div class="container-fluid"> <!-- Mensagem de Sucesso / Erro --> <?php $this->load->view('estilo/acao'); ?> <div class="row"> <!-- left column --> <div class="col-md-12"> <div class="card card-success"> <div class="card-header"> <h3 class="card-title">Adicionar</h3> </div> <!-- /.card-header --> <!-- form start --> <form action="<?php echo current_url(); ?>" id="frmPlanoconta" method="post" > <div class="card-body"> <div class="form-group"> <label for="parent_code" class="control-label">Conta<span class="required">*</span></label> <select name="parent_code" id="parent_code" style="width:230px" class="form-control"> <option value="">Selecione uma Conta</option> <?php foreach ($plcta as $ct) { echo '<option value="'.$ct->pl_idconta.'">'.$ct->pl_idconta. '-'.$ct->pl_descricao.'</option>'; } ?> </select> </div> <div class="form-group"> <label for="pl_descricao">Descrição<span class="required">*</span></label> <input id="pl_descricao" type="text" name="pl_descricao" style="width:100%" class="form-control" value="<?php echo set_value('pl_descricao'); ?>" /> </div> <div class="card-footer" style="text-align:center;"> <a href="<?php echo base_url() ?>faturamento/planocontas" id="" class="btn btn-danger"><i class="fa fa-undo"></i> Voltar</a> &nbsp; <button type="submit" class="btn btn-primary">Adicionar</button> </div> </div> </form> </div> </div> </div> </section> </div> <?php $this->load->view('estilo/footer'); ?> Grato, Cesar
  11. violin101

    PHP+Codeigniter - Adicionar Registro Plano de Contas

    Amigo Williams, saudações. Desculpa minha dúvida. Qual campo no Formulário POST seria essa linha: $parent_code = null Seguindo sua orientação acima, o sistema salva os campos: Código e Descrição somente com 1. Grato, Cesar
  12. violin101

    PHP+Codeigniter - Adicionar Registro Plano de Contas

    Caros amigos, saudações. Humildemente peço desculpa por postar uma dúvida que tenho. Preciso salvar no MySql, os seguinte Registro: 1 - Principal ====> minha dúvida começa aqui ==========> como faço para o Sistema Contar Automaticamente o que estiver despois do 1.____? 1.01 - Matriz 1.01.0001 - Estoque 1.01.0002 - Oficina etc 2 - Secundário 2.01 - Loja_1 2.01.0001 - Caixa 2.01.0002 - Recepção etc Resumindo seria como se fosse um Cadastro de PLANO de CONTAS CONTÁBEIL. Grato, Cesar
  13. violin101

    PHP - Consulta MySql para prazo de dias

    Caros amigos, saudações. Consegui solucionar a minha SQL desta forma. <?php public function faturaPrazo($diasvcto = null, $ordenar = null){ if ($ordenar != null) { $this->db->order_by($ordenar); } $query = "SELECT faturamento.*, fornecedor.* FROM faturamento INNER JOIN fornecedor ON fornecedor.idfornecedor = faturamento.id_fornecedor WHERE faturamento.dataVencimento <= DATE_ADD(NOW(), INTERVAL $diasvcto DAY) AND faturamento.statusFatur = 1 ORDER BY faturamento.dataVencimento $ordenar "; return $this->db->query($query)->result(); } ?> Observação: - não sei se existe outra rotina parecida ou mais eficiente que a que escrevi. - caso tenha e os amigos puder compartilhar, fico inteiramente grato. Grato, Cesar
  14. violin101

    PHP - Consulta MySql para prazo de dias

    Caros amigos, saudações. Por favor, me perdoa em recorrer a orientação dos amigos. Preciso fazer um Relatório onde o usuário pode Gerar uma Lista com prazo para vencimento de: 15 / 20/ 30 dias da data atual. Tem como montar uma SQL para o sistema fazer uma busca no MySql por período ou dias próximo ao vencimento ? Tentei fazer assim, mas o SQL me traz tudo: $query = "SELECT faturamento.*, DATE_ADD(faturamento.dataVencimento, INTERVAL 30 DAY), fornecedor.* FROM faturamento INNER JOIN fornecedor ON fornecedor.idfornecedor = faturamento.id_fornecedor WHERE faturamento.statusFatur = 1 ORDER BY faturamento.idFaturamento $ordenar "; Grato, Cesar
  15. violin101

    PHP+Codeigniter - Trabalhando com Data

    Caros amigos, saudações. Após pesquisa e conversa com amigos, consegui resolver o meu problema da seguinte forma. Escrevi este código direto no FOREACH da Tabela e resolveu. <?php //Recebe a DataVencimento - MySql $data_inicio = new DateTime($dataVencimento); //Pega a Data Atual $data_atual = new DateTime('now'); //Calcula a Diferença entre a Data Vencimento com data Atual $dateInterval = $data_inicio->diff($data_atual)->days; if($dateInterval <= 20){ $cor = '#FDFEBA'; //Cor: Amarelo } else { $cor = ''; //Cor: Neutro } ?> Grato, Cesar
×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.