Ir para conteúdo

POWERED BY:

violin101

Members
  • Total de itens

    303
  • Registro em

  • Última visita

Tudo que violin101 postou

  1. violin101

    PHP - Abrir e Fechar janela

    Caros amigos, saudações. Estou com uma pequena dúvida. Estou escrevendo um Sistema que tem vários Módulos. O módulo principal tem: Estoque | Compras | Expedição | Vendas Minha dúvida: como faço após Acessar o Módulo Principal e Escolher o Módulo que quero trabalhar, eu possa fechar o Módulo aberto por exemplo: Estoque, sem alterar o Módulo principal e outros se estiver aberto ? Grato, Cesar
  2. violin101

    PHP - Abrir e Fechar janela

    amigo Williams, saudações. muito legal o seu exemplo, mas infelizmente no seu exemplo acima os módulos abre dentro de uma DIV. o que preciso seria fechar a ABA do Navegador que estiver aberta. talvez eu não tenha explicado corretamente, mas quando o usuário abrir um módulo esse módulo abre uma nova janela, seria assim: modulo principal: Controle estoque | compras | requisições mod-1 mod-2 mod-3 Financeiro Faturamento | Controle de Caixa mod-4 mod-5 quando o usuário ABRE o Módulo Estoque(nova janela) ele vai trabalhar nessa opção. quando o usuário ABRE o Módulo Financeiro(nova janela) e assim por diante. ou seja, quando abrir um módulo o sistema abre uma janela nova, com o TARJET _BLANK. é nessa parte que estou em dúvida, fechar a Nova Janela sem fechar a Session toda, fechar apenas o Módulo aberto.
  3. violin101

    PHP + Codeigniter - Instalar Biblioteca NFephp

    Caros amigos, saudações. Por favor, me perdoa em postar mais uma dúvida minha. Através de ajuda e orientação dos membros do Grupo, tenho conseguido resolver muitos problemas que tenho encontrado. Gostaria de saber dos amigos do grupo, se tem algum vídeo aula, orientando a Instalação das Biblioteca para Emissão de Nota Fiscal Eletrônica. Tenho feito várias busca e tenho encontrado a maioria das vezes tudo em LARAVEL. Sei que para instalar as Biblioteca, precisa do Composer, até aqui tudo bem. Minha dúvida: após fazer o download da sped-nfe e sped-da, essas biblioteca devem ser gravada em qual pasta ? ---- na C:\ ou dentro da pasta do Sistema ? quando dou o comando: COMPOSER INSTALL esse comando já instala todas as bibliotecas, ou 1 por 1 ? Grato, Cesar
  4. violin101

    PHP + Codeigniter - Instalar Biblioteca NFephp

    amigo Williams, saudações. obrigado por sua orientação. fiz a instalação da NFEphp através do composer e deu certo. apenas uma dúvida: onde acho o arquivo/caminho que estão os comando abaixo. ou para ter acesso a esse comandos, preciso fazer o download do github e gravar em uma pasta no meu sistema . // Importando as classes necessárias das bibliotecas use NFePHP\NFe\Common\Standardize; use NFePHP\NFe\Make; use NFePHP\NFe\Tools; use NFePHP\Common\Certificate; use NFePHP\DA\NFe\Danfe;
  5. violin101

    PHP + Codeigniter - Instalar Biblioteca NFephp

    Amigo Williams, saudações. fiz conforme sua orientação, mas ainda estou encontrando problema, a versão do PHP que estou usando é 7.4.33.0. aparentemente parece que está dando erro em MPDF, dizendo que a versão está descontinuada, aparece o erro a baixo. como consigo atualizar o MPDF, pois acho que o PHP v.8, não tem a versão MPDF para ela. C:\xampp\htdocs\ztscom\application\vendor>composer require nfephp-org/sped-nfe No composer.json in current directory, do you want to use the one at C:\xampp\htdocs\ztscom\application? [Y,n]? y Always want to use the parent dir? Use "composer config --global use-parent-dir true" to change the default. ./composer.json has been updated Running composer update nfephp-org/sped-nfe Loading composer repositories with package information Updating dependencies Your requirements could not be resolved to an installable set of packages. Problem 1 - mpdf/mpdf[v7.1.0, ..., v7.1.6] require php ^5.6 || ~7.0.0 || ~7.1.0 || ~7.2.0 -> your php version (7.4.33) does not satisfy that requirement. - mpdf/mpdf[v7.1.7, ..., v7.1.9] require php ^5.6 || ~7.0.0 || ~7.1.0 || ~7.2.0 || ~7.3.0 -> your php version (7.4.33) does not satisfy that requirement. - Root composer.json requires mpdf/mpdf ^7.1 -> satisfiable by mpdf/mpdf[v7.1.0, ..., v7.1.9]. You can also try re-running composer require with an explicit version constraint, e.g. "composer require nfephp-org/sped-nfe:*" to figure out if any version is installable, or "composer require nfephp-org/sped-nfe:^2.1" if you know which you need. Installation failed, reverting ./composer.json to its original content. C:\xampp\htdocs\ztscom\application\vendor> Grato, Cesar
  6. violin101

    PHP + Codeigniter - Instalar Biblioteca NFephp

    Amigo Williams, saudações. segui sua instrução e está dando esse erro para instalar a NFephp. obs.: a versão que estou usando do PHP é: 7.4.33.0 C:\xampp\htdocs\meu_sistema\application\vendor>composer require nfephp-org/sped-nfe No composer.json in current directory, do you want to use the one at C:\xampp\htdocs\ztscom\application? [Y,n]? y Always want to use the parent dir? Use "composer config --global use-parent-dir true" to change the default. Cannot use nfephp-org/sped-nfe's latest version v5.1.24 as it requires ext-soap * which is missing from your platform. In PackageDiscoveryTrait.php line 318: Package nfephp-org/sped-nfe has requirements incompatible with your PHP version, PHP extensions and Composer versio n: - nfephp-org/sped-nfe v5.1.24 requires ext-soap * but it is not present.
  7. violin101

    PHP + Codeigniter - Instalar Biblioteca NFephp

    amigo Williams, saudações. obrigado por sua explicação. apenas uma dúvida: a versão do PHP para instalar a NFePhp deve ser acima da versão 7.3, correto ? abaixo não instala. Grato, Cesar
  8. Caros amigos, saudações. Estou com uma dúvida e gostaria do auxílio dos amigos. Gostaria de após o usuário digitar o Número do Pedido/Orçamento o Sistema Importa todos os Dados para a Entrada/Venda de Produtos. Exemplo: Pedido n.102 com os itens: 10 un Produto X - vr_unit: 5.00 05 un Produto Y - vr_unit: 3.00 03 un Produto Z - vr_unit: 1.50 Importar para Entrada/Venda Venda n.1001 |__> como importo os dados do Pedido n.102 de uma só vez ? Grato, Cesar
  9. Amigo Williams, saudações. Deus o abençoa por compartilhar seus conhecimentos. Show. Apenas uma dúvida, você citou PROCEDURES, qual é a melhor OPÇÃO usar Procedures ou não ? Eu uso o PHP + Codeigniter. Grato, Cesar
  10. violin101

    PHP - Orientação referente Tabela HTML

    amigo Williams, saudações. show, valeu. obrigado
  11. violin101

    PHP - Orientação referente Tabela HTML

    Caros amigos, saudações. Tenho uma tabela em HTML, que me traz as informações de parcelamento corretamente. Preciso fazer uma validação, mas quando tento somar a coluna que traz valor, a soma faz errada. Como devo fazer para SOMAR a coluna mostrando as casas decimais ? a tabela está assim: success: function(parcelas) { const tbody = $("#tbparcs tbody"); tbody.empty(); // Limpa a tabela antes de adicionar novas linhas parcelas.forEach(function(parcela) { let html = "<tr>"; html += "<td width='20%' height='10'style='text-align:center;'><input type='date' name='dtaprc[]' class='form-control d-none' value='"+dateSQL(parcela.data_vencimento)+"'><span>"+parcela.data_vencimento+"</span></td>"; <!--Quero somar essa coluna --> html += "<td width='50%' height='10' style='text-align:center;'><input type='text' name='vlrprc[]' class='form-control d-none' value='"+parcela.valor_parcela+"' oninput='formatNumber(this)'><span>"+parcela.valor_parcela+"</span></td>"; html += "<td width='15%' height='10' style='text-align:center;'>"+ "<button onclick='editarCelulaParcelamento(this)' type='button' class='btn btn-primary btn-editar-parc' style='margin-right: 1%; padding: 1px 2px;' title='Editar'>"+ "<i class='fa fa-edit'></i></button>"+ "<button type='button' data-save class='btn btn-success btn-salvar-parc' style='margin-right: 1%; padding: 1px 5px;' title='Salvar'>"+ "<i class='fa fa-save'></i></button>"+ "</td>"; html += "</tr>"; tbody.append(html); somarparcelas(); }); } a função para somar a coluna está assim: //Função somar Total da Tabela function somarparcelas(){ parcelastotal = 0; //Preenche o INPUT do parcelastotal $("#tbparcs tbody tr").each(function(){ parcelastotal = parcelastotal + parseFloat($(this).find("td:eq(1)").text()); }); $("input[name=parcelastotal]").val(parcelastotal.toFixed(2)); } //o problema que estou encontrando está no parseFloat. //o parseFloat traz: 12 e não 12.57 Grato, Cesar
  12. violin101

    PHP - Orientação referente Tabela HTML

    Observação: este POST foi duplicado sem querer.
  13. violin101

    PHP - Orientação referente Tabela HTML

    Caros amigos, saudações. Tenho uma tabela em HTML, que me traz as informações de parcelamento corretamente. Preciso fazer uma validação, mas quando tento somar a coluna que traz valor, a soma faz errada. Como devo fazer para SOMAR a coluna mostrando as casas decimais ? a tabela está assim: success: function(parcelas) { const tbody = $("#tbparcs tbody"); tbody.empty(); // Limpa a tabela antes de adicionar novas linhas parcelas.forEach(function(parcela) { let html = "<tr>"; html += "<td width='20%' height='10'style='text-align:center;'><input type='date' name='dtaprc[]' class='form-control d-none' value='"+dateSQL(parcela.data_vencimento)+"'><span>"+parcela.data_vencimento+"</span></td>"; <!--Quero somar essa coluna --> html += "<td width='50%' height='10' style='text-align:center;'><input type='text' name='vlrprc[]' class='form-control d-none' value='"+parcela.valor_parcela+"' oninput='formatNumber(this)'><span>"+parcela.valor_parcela+"</span></td>"; html += "<td width='15%' height='10' style='text-align:center;'>"+ "<button onclick='editarCelulaParcelamento(this)' type='button' class='btn btn-primary btn-editar-parc' style='margin-right: 1%; padding: 1px 2px;' title='Editar'>"+ "<i class='fa fa-edit'></i></button>"+ "<button type='button' data-save class='btn btn-success btn-salvar-parc' style='margin-right: 1%; padding: 1px 5px;' title='Salvar'>"+ "<i class='fa fa-save'></i></button>"+ "</td>"; html += "</tr>"; tbody.append(html); somarparcelas(); }); } a função para somar a coluna está assim: //Função somar Total da Tabela function somarparcelas(){ parcelastotal = 0; //Preenche o INPUT do parcelastotal $("#tbventas tbody tr").each(function(){ parcelastotal = parcelastotal + parseFloat($(this).find("td:eq(1)").text()); }); $("input[name=parcelastotal]").val(parcelastotal.toFixed(2)); } //o problema que estou encontrando está no parseFloat. //o parseFloat traz: 12 e não 12.57 Grato, Cesar
  14. violin101

    PHP - Orientação referente Tabela HTML

    Caros amigos, Consegui resolver, foi erro de formatação de valor.
  15. violin101

    PHP - Array contendo DATA salva 0 no MySql

    obrigado. deu certo, gravou corretamente.
  16. violin101

    PHP - Array contendo DATA salva 0 no MySql

    Olá amigos, saudações. Após ajuda dos amigos do forum, consegui uma Rotina que estava precisando. Infelizmente após gerar o parcelamento com suas datas de vencimento, quando SALVA no MySql o campo data salva assim 0000-00-00, mesmo contendo datas de vencimentos. Como consigo salvar no campo vencimento as DATAS corretamente ? O Código fico assim: Controller function adicionar() { if (!$this->permission->checkPermission($this->session->userdata('permissao'), 'aLancamento')) { $this->session->set_flashdata('error', 'Você não tem permissão para adicionar lançamento.'); redirect(base_url()); } //Recebe via POST Dados do Lançamento $codEmpr = $this->input->post('idEmp'); $dataLct = $this->input->post('dtaentr'); $notaLct = $this->input->post('num_nf'); //Recebe via POST os Produtos - Entrada de Lançamentos $id_prds = $this->input->post("id_prds"); $qtde = $this->input->post("qtde"); $estoq = $this->input->post("estoq"); $vlrunit = $this->input->post("vlrunit"); $vlrtotal = $this->input->post("vlrtotal"); //Recebe via POST os Parcelamento $dtaprc = $this->input->post("dtaprc"); $vlrprc = $this->input->post("vlrprc"); $idFrnc = $this->input->post('idfornecedor'); $this->load->library('form_validation'); $this->data['custom_error'] = ''; if ($this->form_validation->run('lancamentos') == false) { $this->data['custom_error'] = (validation_errors() ? '<div class="form_error">' .validation_errors(). '</div>' : false); } else { $data = array( 'dtalcto' => date('Y-m-d'), 'dtaentr' => $this->input->post('dtaentr'), 'num_nf' => set_value('num_nf'), 'tipo_lcto' => 1, 'id_user' => $this->session->userdata('id'), //pega o ID do Usuário logado 'id_empresas' => $this->input->post('idEmp'), //pega o ID do Empresa logado 'fornecedor_idfornecedor' => $this->input->post('idfornecedor') ); if ($this->lancamentos_model->add('lancamentos', $data) == true) { //Função para Pegar o Último ID do lançamento $numlcto = $this->lancamentos_model->lastID(); //Função para Salvar os Itens do lançamento $this->save_detalhe($id_prds,$qtde,$vlrunit,$vlrtotal,$numlcto); //Função para Salvar Parcelamento $this->save_parcelas($notaLct,$dtaprc,$vlrprc,$idFrnc); //Converte o ID em String $strlcto = strval($numlcto); $strEmpr = strval($codEmpr); $pegEmpr = str_pad($strEmpr, '3', '0', STR_PAD_LEFT); $mostra = 'E-'.$pegEmpr.'.'.$strlcto; //Chama a Função para Alterar o ID do lançamento $this->update_lctos($numlcto,$strlcto,$strEmpr); //Função para Salvar Histórico do Produto $this->save_hist($dataLct,$qtde,$estoq,$mostra,$notaLct,$id_prds,$codEmpr); $this->session->set_flashdata('success', '<h4>Lançamento nº.'.$mostra.' - adicionado com Sucesso.</h4>'); redirect(base_url() . 'admin/lancamentos/visualizar/'.$numlcto); } else { $this->data['custom_error'] = '<div class="form_error"><p><h4>Atenção!!! Ocorreu um erro ao tentar adicionar.</h4></p></div>'; } } $this->load->view('estilo/header', $this->data); $this->load->view('admin/lancamentos/adicionarLancamento'); } //Função para Salvar os Parcelamentos protected function save_parcelas($notaLct,$dtaprc,$vlrprc,$idFrnc){ for ($i=0; $i < count($vlrprc); $i++) { $data = array( 'nunNotafiscal' => $notaLct, 'dataVencimento' => $dtaprc[$i], //aqui salva 0000-00-00 'valorParcela' => $vlrprc[$i], 'id_fornecedor' => $idFrnc, 'id_user'=> $this->session->userdata('id'), ); //Função para Salvar os Detalhes do Parcelamento $this->lancamentos_model->save_parcelas($data); } } public function geraParcelamento() { if ($_SERVER['REQUEST_METHOD'] === 'POST') { $dataInicial = new DateTime($_POST['dataInicial']); $intervalos = explode('/', $_POST['intervalos']); $valorTotal = floatval($_POST['valorTotal']); function gerarParcelas($dataInicial, $intervalos, $valorTotal) { $datasParcelas = []; $quantidadeParcelas = count($intervalos); $valorParcela = floor($valorTotal / $quantidadeParcelas * 100) / 100; $valorUltimaParcela = $valorTotal - ($valorParcela * ($quantidadeParcelas - 1)); for ($i = 0; $i < $quantidadeParcelas; $i++) { if ($i == $quantidadeParcelas - 1) { $valorAtualParcela = $valorUltimaParcela; } else { $valorAtualParcela = $valorParcela; } $dataVencimento = clone $dataInicial; $dataVencimento->modify("+{$intervalos[$i]} days"); $datasParcelas[] = [ 'data_vencimento' => $dataVencimento->format('d/m/Y'), 'valor_parcela' => number_format($valorAtualParcela, 2, ',', '.') ]; } return $datasParcelas; } $parcelas = gerarParcelas($dataInicial, $intervalos, $valorTotal); header('Content-Type: application/json'); echo json_encode($parcelas); } } Models //Salva Parcelamento public function save_parcelas($data){ $this->db->insert("faturamento",$data); } View //Esta função tras correto o parcelamento function gerarParcelas() { const dataInicial = $('#dtaentr').val(); const intervalos = $('#formaPgto').val(); const valorTotal = $('#subtotal').val(); $.ajax({ url: '<?=base_url()?>admin/lancamentos/geraParcelamento', type: 'POST', dataType: 'json', data: { dataInicial: dataInicial, intervalos: intervalos, valorTotal: valorTotal }, success: function(parcelas) { const tbody = $("#tbparcs tbody"); tbody.empty(); // Limpa a tabela antes de adicionar novas linhas parcelas.forEach(function(parcela) { let html = "<tr>"; html += "<td width='10%' height='10'><input type='hidden' name='dtaprc[]' value='"+parcela.data_vencimento +"'>"+parcela.data_vencimento +"</td>"; html += "<td width='32%' height='10'><input type='hidden' name='vlrprc[]' value='"+parcela.valor_parcela+"'>"+parcela.valor_parcela+"</td>"; html += "<td width='10%' height='10' style='text-align:center;'>"+ "<button type='button' class='btn btn-primary btn-editar-parc' style='margin-right: 1%; padding: 1px 2px;' title='Editar'>"+ "<span class='fa fa-edit'></span></button>"+ "<button type='button' class='btn btn-success btn-salvar-parc' style='margin-right: 1%; padding: 1px 5px;' title='Salvar'>"+ "<span class='fa fa-save'></span></button>"+ "</td>"; html += "</tr>"; tbody.append(html); }); } }); }
  17. violin101

    PHP - Gerar vencimento parcelas com período variado

    Pessoal, saudações. Por favor, me perdoa em recorrer ao auxílio dos amigos, mas infelizmente estou com uma dúvida e não estou conseguindo resolver. Preciso de ajuda, para criar uma rotina onde o sistema possa Gerar/Calcular vencimentos com períodos variados, ou seja: 00/30/60/90 28/42/56 etc Como faço para o Sistema entender que os PERÍODOS VARIADOS, seja a quantidade de parcelas e vencimentos ? Observação: peço desculpa se postei minha dúvida na postagem errada. Grato, Cesar
  18. violin101

    PHP - Gerar vencimento parcelas com período variado

    amigo Williams, saudações. tentei assim, sem sucesso function gerarParcelas() { //pega input do form var dataInicial = document.getElementById("dtaentr").value; //SELECT passa com: 28/42/56 var intervalos = document.getElementById("formaPgto").value; //pega input fo form - Soma Total var valorTotal = document.getElementById("vlrtotal").value; var datasParcelas = []; var parcs = explode("/", intervalos); var quantidadeParcelas = count(parcs); // Calcula o valor base das parcelas (arredondando para baixo) var valorParcela = floor(valorTotal / quantidadeParcelas * 100) / 100; // Calcula a última parcela para ajustar a soma total var valorUltimaParcela = valorTotal - (valorParcela * (quantidadeParcelas - 1)); for (i = 0; i < quantidadeParcelas; i++) { if (i == quantidadeParcelas - 1) { valorAtualParcela = valorUltimaParcela; // Última parcela ajustada } else { valorAtualParcela = valorParcela; // Parcelas intermediárias } var dataVencimento = clone dataInicial; dataVencimento->modify("+{parcs[i]} days"); var datasParcelas[] = [ 'data_vencimento' => dataVencimento, 'valor_parcela' => valorAtualParcela ]; } return datasParcelas; } foreach (parcelas as parcela) { html = "<tr>"; html += "<td width='10%' height='10'><input type='hidden' name='datVnc[]' value='"+infoprcs[0]+"'>"+parcela['data_vencimento']->format('Y-m-d')+"</td>"; html += "<td width='32%' height='10'><input type='hidden' name='parcel[]' value='"+infoprcs[2]+"'>"+number_format($parcela['valor_parcela'], 2, ',', '.') +"</td>"; html += "<td width='10%' height='10' style='text-align:center;'>"+ "<button type='button' class='btn btn-danger btn-alterar-parc' style='margin-right: 1%; padding: 1px 2px;' title='Editar'>"+ "</button></td>"; html += "</tr>"; $("#tbparcs tbody").append(html); }
  19. violin101

    PHP - Gerar vencimento parcelas com período variado

    Amigo Williams, saudações. Desculpa postar novamente minha dúvida. O cálculo de Gerar Parcelamento, se eu fosse colocar essa função dentro de um JAVASCRIPT, como deveria fazer e chamar essa função ? Obs.: para esse cálculo o correto é fora do JAVASCRIPT ? tentei colocar no JS e mostrar em uma TABELA, mas não consegui. Grato, Cesar
  20. violin101

    PHP - Dúvida referente informação de POST

    Caros amigos, saudações. Apenas uma pequena dúvida. Precisei realizar uma alteração de Validação de usuário/empresa. Antes essa linha de código estava assim: <input type="hidden" id="idEmps" name="idEmps" value="<?php echo $emprsa->idEmpresas; ?>" /> Precisei colocar [0] para poder localizar a Empresa Logada. <input type="hidden" id="idEmps" name="idEmps" value="<?php echo $emprsa[0]->idEmpresas; ?>" /> Agora, o sistema dá erro e não grava. minha dúvida: qual a função do [0] e como consigo corrigir ? Grato, Cesar
  21. violin101

    Passar Hora para Campo Input automaticamente

    Caros amigos, saudações. Estou com uma pequena dúvida, referente a PEGAR AUTOMATICAMENTE a HORA e alimentar o campo INPUT. Tenho uma rotina, que estava aparentemente funcionando corretamente, mas agora estou tendo problema. A rotina, pega a HORA atual e informa automaticamente o INPUT, não estou entendendo porque agora não está mais fazendo. Abaixo a rotina. <div class="col-lg-3"> <label for="cotaHrsinicio">Hora da Abertura<span class="required">*</span></label> <div class="controls"> <input type="time" id="cotaHrsinicio" name="cotaHrsinicio" class="form-control" style="width:100%;" value="" /> <!-- NESSE INPUT A ROTINA INFORMA A DATA ATUAL --> </div> </div> function date_time() { var date = new Date(); //var am_pm = "AM"; var hour = date.getHours(); /* if(hour>=12){ am_pm = "PM"; } */ if (hour == 0) { hour = 12; } if(hour<12){ hour = hour - 12; } if(hour>12){ hour + 12; } if(hour<10){ hour = "0"+hour; } var minute = date.getMinutes(); if (minute<10){ minute = "0"+minute; } var sec = date.getSeconds(); if(sec<10){ sec = "0"+sec; } /* *Formato da Hora (h:m:s) * Passar para a Variável: Hora Atual */ var cotaHrsinicio = document.getElementById("cotaHrsinicio").value = hour+":"+minute; } Grato, Cesar
  22. violin101

    PHP - Cadastro de Faturamento

    Caros amigos, saudações. Estou com uma dúvida de como devo fazer. Preciso criar uma Rotina para Cadastrar Faturamento, por exemplo: 1) 28/42/56 dias -> de 28 p/ 42 a dif. é de 14 dias... 2) 30/60/90 dias -> de 30 p/ 60 a dif. é de 30 dias... 3) 0/15/30/45 dias -> de 0 p/ 15 a dif. é de 15 dias... Como devo fazer para cadastrar os prazo de vencimento, onde o sistema possa contar as diferenças entre os dias ? Grato, Cesar
  23. violin101

    PHP - Dúvida referente informação de POST

    Amigo Albano, consegui resolver. exclui a Tabela de Relacionamento e inclui novamente.
  24. violin101

    PHP - Dúvida referente informação de POST

    Amigo, Albano, saudações. Tenho um FORM onde o usuário seleciona o Produto para ser Relacionado com outros produtos. O form recebe os DADOS corretamente vindo do MySql, infelizmente quando o usuário Relaciona, os valores passam NULL via ajax, para serem gravados, isso não estou entendo porque está acontece, se antes não ocorria o erro. Abaixo está o código que estou usando. <div class="tab-pane fade" id="relacionamento" role="tabpanel" aria-labelledby="relacionamento-tab"> <div class="txtProd"> <?php echo $result->cod_interno; ?> - <?php echo $result->descricao; ?> </div> <div class="card-body"> <form id="frmRelac" action="javascript:;" method="post" accept-charset="utf-8" enctype="multipart/form-data" > <div class="row"> <div class="col-md-8"> <label for="idProdutos">Produto:</label> <div class="input-group"> <input type="hidden" name="idProdutos" id="idProdutos" value="<?= $result->idProdutos ?>"> <input type="text" class="form-control" id="descritem" name="descritem" style="font-size:15px; font-weight:bold; background:#ffffff;" placeholder="Pesquisar Produto para ser Relacionado" disabled> <span class="input-group-btn"> <button class="btn btn-warning" type="button" id="btnProd" name="btnProd" data-toggle="modal" data-target="#modal_prod"> <span class="fa fa-search"></span> Pesquisar </button> </span> </div> </div> <br/> <div class="col-md-2" style="margin-top:32px;"> <input type="hidden" id="idPrds" name="idPrds" value="<?php echo $result->idProdutos; ?>"/> <input type="hidden" id="idEmps" name="idEmps" value="<?php echo $emprsa[0]->idEmpresas; ?>"/> <button type="submit" id="btn-adic" class="btn btn-success" style="width:100%;"> Relacionar</button> </div> <div class="col-md-2" style="margin-top:32px;"> <button id="btn-limp" class="btn btn-danger" style="width:100%;"> <i class="fa fa-paint-brush icon-white"></i> Limpar </button> </div> <div class="clearfix"></div> <br/> </div> </form> <div class="clearfix"></div> <div class="row"> <div class="col-md-12" id="divRelac" style="padding: 1%; margin-left:0px;"> <table class="table" id="tab_prods"> <thead> <tr style="background-color:#BDDCDC;"> <th style="text-align:center;">CÓDIGO</th> <th style="text-align:center;">DESCRIÇÃO DO PRODUTO</th> <th style="text-align:center;">CATEGORIA</th> <th style="text-align:center;">IMAGEM</th> <th style="text-align:center;">AÇÃO</th> </tr> </thead> <tbody> <?php foreach ($relacto as $rlc) { echo '<tr>'; echo '<td width="20" height="10" style="text-align:center;">'.$rlc->cod_interno.'</td>'; echo '<td width="250" height="10" style="text-align:left;">'.$rlc->descricao.'</td>'; echo '<td width="20" height="10" style="text-align:center;">'.$rlc->categoria.'</td>'; echo '<td width="20" height="10" style="text-align:center;">' ?> <?php if ($rlc->imagemCapa != null) { ?> <img src="<?php echo $rlc->imagemCapa; ?>" width="40px;" height="30px" alt=""> <?php } else { ?> <img src="<?php echo base_url() ?>assets/img/semImg.jpg" width="40px;" height="30px" alt=""> <?php } ?> <?php '</td>'; echo '<td width="20" height="10" style="text-align:center;"><span idExcrlc="'.$rlc->idrelacionar.'" title="Excluir Produto Relacionado" class="btn btn-danger" style="margin-right: 1%; padding: 2px 5px;"><i class="fa fa-trash icon-white"></i></span></td>'; echo '</tr>'; } ?> </tbody> </table> &nbsp; </div> </div> </div> </div> O código em JavaScript, para gravar no MySql. //Adicionar Relacionamento $("#frmRelac").validate({ submitHandler: function (form) { var dados = $(form).serialize(); $("#divRelac").html("<div class='progress'><div class='progress-bar progress-bar-primary progress-bar-striped' role='progressbar' aria-valuenow='40' aria-valuemin='0' aria-valuemax='100' style='width: 100%''></div></div>"); $.ajax({ type: "POST", url: "<?php echo base_url();?>admin/produtos/adicionarRelac", data: dados, dataType: 'json', success: function (data) { if (data.result == true) { $("#divRelac").load("<?php echo current_url();?> #divRelac"); $("#descritem").val(''); //Desabilita os Buttons document.getElementById("btn-adic").disabled = true; document.getElementById("btn-limp").disabled = true; } else { alert('Ocorreu um erro ao tentar adicionar um produto.'); } } }); return false; } }); O result, vem assim do Models function getById($id) { $this->db->where('idProdutos', $id); $this->db->limit(1); return $this->db->get('produtos')->row(); } O amigo, pode me dar uma ajuda. Grato, Cesar
  25. violin101

    PHP - Login com redirecionamento

    Caros amigos, saudações. Por favor, antes de recorrer a ajuda dos amigos, tentei de vários formas mas não consegui sucesso. Preciso criar uma Rotina com Acesso de Login parecido com o do Site Google. Tenho uma rotina que faz as Verificação do Usuário e Senha correto, mas após a verificação do Usuário/Senha, gostaria de ser redirecionado para uma Rotina onde possa Selecionar as Empresas vinculada/permissão para cada usuário, ou seja: o usuário 1 tem permissão para: Empresa 1 | Empresa 2 o usuário 2 tem permissão para: Empresa 2 Abaixo, posto o código que faço a verificação de Usuário/Senha. <!-- Código da VIEW --> <form class="form-vertical" id="formLogin" method="post" action="<?php echo base_url()?>index.php/admin/controle/verificarLogin"> <?php if ($this->session->flashdata('error') != null) {?> <div class="alert alert-danger"> <button type="button" class="close" data-dismiss="alert">×</button> <?php echo $this->session->flashdata('error');?> </div> <?php } ?> <div class="form-group"> <input type="text" id="email" name="email" class="form-control" placeholder="Email"> </div> <div class="form-group"> <input type="password" id="senha" name="senha" class="form-control" placeholder="Password"> </div> <div class="row"> <div class="col-6"> <a href="<?php echo base_url() ?>" class="btn btn-danger btn-block btn-flat"><i class="fa fa-undo"></i> Voltar ao Site</a> </div> <div class="col-6"> <button type="submit" class="btn btn-primary btn-block btn-flat pull-right">Acessar</button> </div> <!-- /.col --> </div> <div class="login-recup"> Esqueceu sua senha: <a href="<?php echo base_url()?>admin/controle/recupera"> clique aqui</a>. </div> </form> //Código no Controller public function index() { if ((!session_id()) || (!$this->session->userdata('logado'))) { redirect('admin/controle/login'); } $this->load->view('estilo/header', $this->data); $this->load->view('admin/tema/topo'); $this->load->view('admin/tema/conteudo'); $this->load->view('estilo/footer'); } public function login() { $this->load->view('admin/controle/login'); } public function verificarLogin() { header('Access-Control-Allow-Origin: '.base_url()); header('Access-Control-Allow-Methods: POST, GET, OPTIONS'); header('Access-Control-Max-Age: 1000'); header('Access-Control-Allow-Headers: Content-Type'); $this->load->library('form_validation'); $this->form_validation->set_rules('email', 'E-mail', 'valid_email|required|trim'); $this->form_validation->set_rules('senha', 'Senha', 'required|trim'); if ($this->form_validation->run() == false) { $json = array('result' => false, 'message' => validation_errors()); echo json_encode($json); } else { $email = $this->input->post('email'); $password = $this->input->post('senha'); $this->load->model('Admin/Controle_model'); $user = $this->Controle_model->check_credentials($email); if ($user) { if (password_verify($password, $user->senha)) { $session_data = array('nome' => $user->nome_user, 'email' => $user->email, 'id' => $user->idUsuarios, 'permissao' => $user->permissoes_idPermissao, 'logado' => true); $this->session->set_userdata($session_data); $json = array('result' => true); echo json_encode($json); //$this->envia(); } else { $json = array('result' => false, 'message' => 'Os dados de acesso estão incorretos.'); echo json_encode($json); } } else { $json = array('result' => false, 'message' => 'Usuário não encontrado, verifique se informou os dados corretamente.'); echo json_encode($json); } } die(); } Como faço o redirecionamento para selecionar a Empresa Vinculada, antes de acessar o Sistema ? Grato, Cesar
×

Informação importante

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