Jump to content

POWERED BY:

violin101

Members
  • Content count

    295
  • Joined

  • Last visited

Everything posted by violin101

  1. Caros amigos, saudações. Por favor, me permita tirar uma dúvida com os amigos. Tenho um Formulário onde o Usuário digita todos os Dados necessários. Minha dúvida: --> como faço após o usuário digitar os dados e salvar, o Sistema chamar uma Modal ou mensagem perguntando se deseja imprimir agora ? Grato, Cesar
  2. violin101

    PHP+Codeigniter - Dúvida referente a PDV

    Caros amigos, saudações. Gostaria de tirar uma dúvida com os amigos, referente a PDV. Estou escrevendo um Sistema com Ponto de Vendas, a minha dúvida é o seguinte, referente ao procedimento mais correto. Conforme o caixa vai efetuando a venda, o Sistema de PDV já realiza: a baixa direto dos produtos no estoque ou somente após concretizar a venda o sistema baixa os produtos do estoque ? Grato, Cesar
  3. violin101

    PHP+Codeigniter - Dúvida em Relação a Teclas

    Amigo Williams, saudações. Obrigado por sua dica, fiz desta forma e deu certo. document.addEventListener( 'keydown', evt => { if (!evt.ctrlKey || evt.key.toLowerCase() !== 'r' ) return; evt.preventDefault(); }); Grato, Cesar
  4. Caros amigos do grupo, saudações e um feliz 2025. Estou com uma pequena dúvida referente a Teclas de Atalho. Quando o Caps Lock está ativado o Comando da Tecla de Atalho não funciona. ou seja: se estiver para letra minúscula ====> funciona se estiver para letra maiúscula ====> não funciona Como consigo evitar essa falha, tanto para Letra Maiúscula quanto Minúscula ? o Código está assim: document.addEventListener( 'keydown', evt => { if (!evt.ctrlKey || evt.key !== 'r' ) return;// Não é Ctrl+r, portanto interrompemos o script evt.preventDefault(); }); Grato, Cesar
  5. 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
  6. Caro amigo, Williams. Obrigado, tu és 10... 10... 10... 10... 10... 10... 10... 10... 10... 10... 10... 10... 10... 10...
  7. 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
  8. 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
  9. 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
  10. 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
  11. 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
  12. 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+Codeigniter - Adicionar Registro Plano de Contas

    Caro amigo Williams saudações. Deus o abençoa, deu certo, obrigado, Atenciosamente, Cesar
  14. 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
  15. 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
  16. 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
  17. 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
  18. Caros amigos, saudações. Estou com uma pequena dúvida se é possível ser realizado. Preciso passar 2 IDs para o Sistema executar a função, estou utilizando desta forma e gostaria de saber como faço via JS para passar os parâmetro que preciso. Observação: Dentro da TABELA utilizei 2 Forms, para passar os IDS que preciso, funcionou conforme código abaixo. <div class="card-body"> <table id="tab_clie" class="table table-bordered table-hover"> <thead> <tr> <th style="text-align:center; width:10%;">Pedido Nº</th> <th style="text-align:center; width:10%;">Data Pedido</th> <th style="text-align:center; width:32%;">Fornecedor</th> <th style="text-align:center; width:10%;">Status</th> <th style="text-align:center; width:5%;">Ação</th> </tr> </thead> <tbody> <?php foreach ($results as $r) { $dta_ped = date(('d/m/Y'), strtotime($r->dataPedido)); switch ($r->pd_status) { case '1': $status = '&nbsp;&nbsp;Aberto&nbsp;&nbsp;'; $txt = '#FFFFFF'; //Cor: Branco $cor = '#000000'; //Cor: Preta break; case '2': $status = 'Atendido Total'; $txt = '#FFFFFF'; //Cor: Branco $cor = '#086108'; //Cor: Verde break; case '3': $status = 'Atendido Parcial'; $txt = '#000000'; //Cor: Branco $cor = '#FEA118'; //Cor: Amarelo break; default: $status = 'Cancelado'; $txt = '#FFFFFF'; //Cor: Branco $cor = '#D20101'; //Cor: Vermelho break; } echo '<tr>'; echo '<td width="10%" height="10" style="text-align:center;">'.$r->pd_numero.'</td>'; echo '<td width="10%" height="10" style="text-align:center;">'.$dta_ped.'</td>'; echo '<td width="32%" height="10" style="text-align:left;">'.$r->nome.'</td>'; echo '<td width="10%" height="10" style="text-align:left;"><span class="badge" style="color:'.$txt.'; background-color:'.$cor.'; border-color:'.$cor.'">'.$status.'</span></td>'; echo '<td width="5%" style="text-align:center;">'; ?> <div class="row"> <?php if($this->permission->checkPermission($this->session->userdata('permissao'), 'vPedido')){ ?> <form action="<?= base_url() ?>compras/pedidos/visualizar" method="POST" > <input type="hidden" name="idPedido" value="<?php echo $r->idPedidos; ?>"> <input type="hidden" name="nrPedido" value="<?php echo $r->pd_numero; ?>"> <button class="btn btn-warning" title="Visualizar" style="margin-left:50%; padding: 1px 3px;"><i class="fa fa-search icon-white"></i></button> </form> <?php } if($this->permission->checkPermission($this->session->userdata('permissao'), 'ePedido')){ ?> <form action="<?= base_url() ?>compras/pedidos/editar" method="POST" > <input type="hidden" name="idPedido" value="<?php echo $r->idPedidos; ?>"> <input type="hidden" name="nrPedido" value="<?php echo $r->pd_numero; ?>"> <button class="btn btn-primary" title="Editar" style="margin-left:50%; padding: 1px 3px;"><i class="fa fa-edit icon-white"></i></button> </form> <?php } ?> </div> <?php echo '</td>'; echo '</tr>'; } ?> </tbody> </table> </div> Grato, Cesar.
  19. 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
  20. 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
  21. 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
  22. violin101

    PHP+Codeigniter - Trabalhando com Data

    Caros amigos, saudações Por favor, me perdoa em recorrer a orientação dos amigos, tenho uma dúvida. Gostaria de uma rotina onde o Sistema possa acusar para o usuário antes dos 30 dias, grifar na Tabela o aviso de vencimento próximo, por exemplo: Data Atual: 15/11/2024 Vencimento Fornecedor.....................Data.....................Valor Fornecedor_1...........01/12/2024..........R$ 120,00 <== grifar a linha de Laranja Fornecedor_1...........01/01/2025..........R$ 130,00 Fornecedor_2...........15/12/2024..........R$ 200,00 <== grifar a linha de Amarelo Fornecedor_2...........15/01/2025..........R$ 230,00 Fornecedor_3...........20/12/2024..........R$ 150,00 Alguém tem alguma dica ou leitura sobre este assunto ? Grato, Cesar
  23. violin101

    PHP+Codeigniter - Trabalhando com Data

    Caro amigo, Felipe. Saudações. Quando salvo a Data de Vencimento no MySql, salvo neste formato = 2024-11-01 ou seja ANO-MÊS-DIA. Após testar o seu código deu erro de Boolean, nesta linha. // Inverter a data para o formato AAAAMMDD e remover as barras $dataInvertida = DateTime::createFromFormat('d/m/Y', $data)->format('Ymd'); Como corrijo esta linha Grato, Cesar
  24. Caros amigos, saudações. Por favor, me perdoa em recorrer a ajuda dos amigos, mas preciso entender uma processo que não estou conseguindo sucesso. Como mencionado no Título estou escrevendo um Sistema Web para Gerenciamento de Empresa. Minha dúvida, que preciso muito entender: - preciso agora escrever a Rotina para Emissão de NFe e essa parte não estou conseguindo. tenho assistido alguns vídeos e leituras, mas não estou conseguindo sucesso, já fiz toda as importações das LIB da NFePhp conforme orientação. Preciso de ajuda. Algum dos amigos tem conhecimento de algum passo-a-passo explicando a criação dessa rotina ? tenho visto alguns vídeos com LARAVEL, mas quando tento utilizar e converter para PHP+Codeiginter, dá uma fila de erros que não entendo, mesmo informando as lib necessárias. Alguns do amigo tem algum vídeo, leitura explicando essa parte ? Grato, Cesar.
  25. violin101

    PHP+Codeigniter - Ajuda en NFePhp para Sistema

    Amigo Williams, saudações. Eu já fiz, refiz, voltei a fazer a instalação da NFePHP usando o Composer. Não entendo, não entendo,... acho que eu sou burro. Após fazer a Instalação e Configuração da NFePHP no Codeignter, e seguir sua orientação acima, continua aparecendo esse erro. An uncaught Exception was encountered Type: Error Message: Class 'NFePHP\NFe\Make' not found Filename: C:\xampp\htdocs\ziscom\application\libraries\NfeService.php Line Number: 51 Backtrace: File: C:\xampp\htdocs\ziscom\application\controllers\Estoque\nfe.php Line: 48 Function: emitirNFe File: C:\xampp\htdocs\ziscom\index.php Line: 315 Function: require_once Já fiz isso: Para adicionar as bibliotecas ao seu projeto: composer require nfephp-org/sped-nfe composer require nfephp-org/sped-da Configurar o autoload do Composer no CodeIgniter //$config['composer_autoload'] = true; Linha IGNORADA //$config['composer_autoload'] = FCPATH . 'vendor/autoload.php'; Linha IGNORADA $config['composer_autoload'] = './vendor/autoload.php'; Já fiz assim e continua o erro: $nfe = new \NFePHP\NFe\Make(); O meu INDEX.PHP está assim: define('ENVIRONMENT', 'development'); O Composer.json está assim: { "description": "The CodeIgniter framework", "name": "codeigniter/framework", "type": "project", "homepage": "https://codeigniter.com", "license": "MIT", "support": { "forum": "http://forum.codeigniter.com/", "wiki": "https://github.com/bcit-ci/CodeIgniter/wiki", "irc": "irc://irc.freenode.net/codeigniter", "source": "https://github.com/bcit-ci/CodeIgniter" }, "require": { "php": ">=5.3.7", "mpdf/mpdf": "^7.1", "nfephp-org/sped-nfe": "^5.0", "nfephp-org/sped-da": "^1.0" }, "suggest": { "paragonie/random_compat": "Provides better randomness in PHP 5.x" }, "autoload": { "psr-4": { "Libraries\\": "application/libraries" } } } Caro amigo, não entendo, não entendo. Grato, Cesar
×

Important Information

Ao usar o fórum, você concorda com nossos Terms of Use.