

violin101
Members-
Total de itens
303 -
Registro em
-
Última visita
Tudo que violin101 postou
-
Caros amigo, saudações... por favor, me perdoa se postei na opção errada. estou com a seguinte dúvida. tenho o seguinte código no cadastro: 1234 0000 4320 9785 como consigo mostrar /inibir os números no meio, para o usuário desta forma: 1234********9785 Grato, Cesar
-
JAVASCRIPT - Formatar(moeda) campo da Tabela com AJAX
violin101 respondeu ao tópico de violin101 em Javascript
Caros amigos, já consegui solucionar o problema, ficou assim: function mskVlr(v){ //Máscara com R$ //return parseFloat(v).toLocaleString("pt-BR", { style: "currency" , currency:"BRL"}); //Máscara sem R$ return parseFloat(v).toLocaleString("pt-BR", { minimumFractionDigits: 2}); } function montaTable(cep){ $.ajax({ url: "<?php echo base_url();?>site/produtos/getByCep", type: "POST", dataType:"json", data:{ cep: cep}, success:function(data){ //Remove Mensagem da Tabela $("#tborden tbody tr.message").remove(); var cols = ""; for (var i = 0; i < data.length; i++) { cols += "<tr>"; cols += "<td width='30%' style='text-align:left; font-size:16px;'>" + data[i].cepRegiao + "</td>"; cols += "<td width='21%' style='text-align:left; font-size:16px;'>" + data[i].frtEntreg + "</td>"; if (data[i].vlrFrete != null && data[i].vlrFrete != 0) { cols += "<td width='20%' style='text-align:right; font-size:16px; font-weight:bold; color:#19198F;'>" + mskVlr(data[i].vlrFrete) + "</td>"; } else { cols += "<td width='20%' style='text-align:right; font-size:16px; font-weight:bold; color:#137A13;'>Sem Valor</td>"; } cols += "</tr>"; } //Atualiza a Tabela $("#tborden tbody").empty(); //Adiciona os Itens a Tabela $("#tborden tbody").append(cols); } });//Fim - ajax Valor Frete } Espero ajudar a quem precisar. -
JAVASCRIPT - Formatar(moeda) campo da Tabela com AJAX
violin101 postou um tópico no fórum Javascript
Caros amigos, saudações... Estou com uma dúvida de dados vindo do MySql, para preencher Tabela via AJAX. Como faço para formatar o CAMPO no formato MOEDA, ou seja: o campo vem.: 12.00 formatar para: 12,00 o código está assim: function montaTable(cep){ $.ajax({ url: "<?php echo base_url();?>site/produtos/getByCep", type: "POST", dataType:"json", data:{ cep: cep}, success:function(data){ //Remove Mensagem da Tabela $("#tborden tbody tr.message").remove(); var cols = ""; for (var i = 0; i < data.length; i++) { cols += "<tr>"; cols += "<td>" + data[i].cepRegiao + "</td>"; cols += "<td>" + data[i].frtEntreg + "</td>"; cols += "<td>" + data[i].vlrFrete + "</td>"; //<--como formatar esse campo cols += "</tr>"; } //Atualiza a Tabela $("#tborden tbody").empty(); //Adiciona os Itens a Tabela $("#tborden tbody").append(cols); } });//Fim - ajax Valor Frete } Grato, Cesar -
William, saudações... Obrigado por sua orientação, seguindo a sua lógica fiz assim e deu certo. $.ajax({ url: "<?php echo base_url();?>site/produtos/consulta", type: "POST", dataType:"json", data:{codigo: codigo}, success:function(data){ if (data.hasOwnProperty('erro')) { //aqui capturo se teve erro alert('Código não encontrado'); document.getElementById("divStatus").style.display = "none"; $('#codprd').val(''); $('#descr').val(''); $('#codprd').focus(); $('#btn_consulta').html('Consultar'); return false; } else { //Exibe os Dados Recebidos $('#descr').val(data.descricao+'-'+data.qtds); //Chama a Função para Exibir a DIV oculta statusDIV(); //Chama a Função Monta Tabela, passando a Variável de Busca montaTable(prods); //Muda o Status do Button $('#btn_consulta').html('Consultar'); } } });//Fim - ajax Obrigado
-
Caros amigos, saudações... Estou com uma pequena dúvida. Gostaria de mostrar a MENSAGEM de ERRO, quando a função no AJAX não encontrar o resultado. Meu código está assim: //Função para Buscar Cidade e Estado Via CEPs. $(function(){ $("#btn_consulta").click(function(){ var cep = $('#cepOrg').val(); if (cep == '') { alert('Informe o CEP antes de continuar'); document.getElementById("divCity").style.display = "none"; $('#cepOrg').focus(); return false; } $('#btn_consulta').html ('Aguarde...'); $.ajax({ url: "<?php echo base_url();?>site/produtos/consulta", type: "POST", dataType:"json", data:{ cep: cep}, success:function(data){ //retorna o resultado encontrado //Exibe os Dados Recebidos $('#cidadeUf').val(data.localidade+'/'+data.uf); //Chama a Função para Exibir a DIV oculta statusDIV(); $('#btn_consulta').html('Consultar'); } });//Fim - ajax });//Fim - function button });//Fim - 1º.function Grato, Cesar
-
Olá, tudo bem ? não sei se é o caso, mas não seria melhor colocar o IMG SRC desta forma: <img src="<?= base_url()?>caminho_pasta/nomeImagem.jpg" alt="">
-
Caros amigos, saudações e feliz 2021 Apenas uma orientação. Tenho um formulário onde gravo no MySql os seguintes campos: --[ CNPJ --[ CPF --[ CEP obs.: como VARCHAR consigo inserir os números com os caracteres como INT consigo apenas inserir os números Minha dúvida: qual a melhor forma de inserir esses dados acima na base de dados, o CAMPOS devem ser como VARCHAR ou INT ? Grato, Cesar
-
Caros amigos membros do grupo, saudações... Estou com uma pequena dúvida. Como faço para o sistema começar a CONTAR e COBRAR juros após uma determinada parcela ? Após a 3ª. parcela começar a cobrar juros, como por exemplo: 3% juros. o Parcelamento de R$ 169,00 é realizado em 12 parcelas. 1 x de R$ 169,00 sem juros 2 x de R$ 84,50 sem juros 3 x de R$ 56,33 com juros 4 x de R$ 42,25 com juros 5 x de R$ 33,80 com juros 6 x de R$ 28,17 com juros 7 x de R$ 24,14 com juros 8 x de R$ 21,13 com juros 9 x de R$ 18,78 com juros 10 x de R$ 16,90 com juros 11 x de R$ 15,36 com juros 12 x de R$ 14,08 com juros Tenho o seguinte código que realiza o Parcelamento: /* * $rstprc = 12 parcelas */ <?php for ($contador = 1; $contador <= $rstprc; $contador++) { ?> <?php if ($contador == 1) { $chk = "checked='checked'"; } else { $chk = ""; } ?> <?php if ($contador % 2 == 1) { ?> <tr> <td class="parcpgto"> <div class="custom-control custom-radio"> <input id="form_parc<?PHP print $contador; ?>" name="txtparcelas" type="radio" class="custom-control-input" value="<?PHP print $contador; ?>" <?php print $chk; ?> /> <label class="custom-control-label lbl_vzs" for="form_parc<?PHP print $contador; ?>"><strong> <?php print $contador; ?></strong> x de</label> <span class="c_preto"> <strong> R$ <?php print number_format($totalGeral/$contador,2,',','.'); ?></strong></span> <label class="lbl_jrs">sem juros</label> </div> </td> <?PHP } else { ?> <td class="parcpgto"> <div class="custom-control custom-radio"> <input id="form_parc<?PHP print $contador; ?>" name="txtparcelas" type="radio" class="custom-control-input" value="<?PHP print $contador; ?>" <?php print $chk; ?> /> <label class="custom-control-label lbl_vzs" for="form_parc<?PHP print $contador; ?>"> <strong><?php print $contador; ?></strong> x de</label> <span class="c_preto"> <strong> R$ <?php print number_format($totalGeral/$contador,2,',','.'); ?></strong></span> <label class="lbl_jrs">sem juros</label> </div> </td> </tr> <?PHP } // Encerra o 2.Elsef } // Encerra o for ?> Grato, Cesar
-
Caros amigos, saudações... Já consegui resolver o meu problema.
-
Caros amigos, saudações... Desculpa em recorrer ao auxílio dos amigos, mas fiquei com uma pequena dúvida. Tenho a seguinte TABELA abaixo: CÓDIGO--------DESCRIÇÃO------QTDE-----VR_UNIT-----VR_TOTAL Como devo fazer uma rotina com OPÇÃO de escolha de quais COLUNAS o sistema deve exibir na tela ? Exibir as colunas: [ x ] Código [ x ] Descrição [ x ] Qtde [ ] Vr_Unit [ x ] Vr_Total Por exemplo: quero exibir apenas as colunas selecionadas acima: CÓDIGO--------DESCRIÇÃO------QTDE-----VR_TOTAL Grato, Cesar
-
Caros amigos, saudações... Primeiramente peço desculpa, se estou postando minha dúvida na opção errada. Gostaria de ACRESCENTAR no meu Sistema um AVISO ou ALERT para o usuário saber que está Inserindo ou Alterando. Por exemplo: - após o usuário INSERIR algum dado no MySql o Sistema mostraria um tipo de uma BARRA de PROGRESSO ou algo parecido. Alguém saberia me informar como faço isso ou se tem algum exemplo para entender o procedimento ? Grato, Cesar
-
Codeigniter + PHP - Orientação referente ORDENAÇÃO de tabela usando Radio button
violin101 postou um tópico no fórum PHP
Caros amigos, saudações... Desculpa em recorrer ao auxílio dos amigos. Como consigo realizar ORDENAÇÃO de Tabela usando Radio button ? por Exemplo: ordenar por: [ ]Código ou [ ]Descrição. Grato, Cesar -
Codeigniter + PHP - Como passar valor da página anterior para a próxima
violin101 respondeu ao tópico de violin101 em PHP
Caros amigos, saudações... Consegui resolver o problema de Soma de Resultado. No ato da Entrada de N.F. já faço a conta de ESTOQUE, atualizando o Histórico. -
Codeigniter + PHP - Como passar valor da página anterior para a próxima
violin101 postou um tópico no fórum PHP
Caros amigos, saudações... Estou com um pequeno problema de paginação. Tenho uma tabela de HISTÓRICO onde toda a movimentação que for realizada com o Produto o sistema grava nessa tabela do MySql. <<=== até aqui tudo bem O problema é o seguinte: quando exibo todos os dados na Tabela da seguinte forma, o sistema faz a conta corretamente. DATA MOV HISTÓRICO QTDE SALDO 01/11/2020......Saldo Inicial.........................................100 + 100 02/11/2020......Venda conf. Compr. n.0001............... 30 - 70 02/11/2020......Devol. conf. Compr. n.0002............... 10 + 80 02/11/2020......Venda conf. Compr. n.0003............... 15 - 65 ===================================================== ESTOQUE ATUAL DO PRODUTO...............................................65 Quando faço a paginação o resultado da TABELA fica assim: PÁGINA 1 DATA MOV HISTÓRICO QTDE SALDO 01/11/2020......Saldo Inicial.........................................100 + 100 02/11/2020......Venda conf. Compr. n.0001............... 30 - 70 ===================================================== PÁGINA 2 DATA MOV HISTÓRICO QTDE SALDO 02/11/2020......Venda conf. Compr. n.0002............... 10 + 10 02/11/2020......Venda conf. Compr. n.0003............... 15 - - 5 ====================================================== Como faço para passar o Resultado final da Página ,1 para a Página 2 e etc ? Abaixo posto o Código que estou usando. Controller //Função para Visualizar e Paginar Histórico de Produtos function history($id = null) { if (!$this->permission->checkPermission($this->session->userdata('permissao'), 'rProduto')) { $this->session->set_flashdata('error', 'Você não tem permissão para visualizar o histórico do produto.'); redirect(base_url()); } //URL para fazer paginação $url_hist = $id!=NULL ? base_url('admin/produtos/history/'.$id) : base_url('admin/produtos/history/'.$id); /**Paginação*/ $get_total_results = $this->produtos_model->getHistory($id); $tot_histores = $get_total_results['total']; $get_paginar = $this->pagina_history($url_hist, $tot_histores, 2); $get_produtos = $this->produtos_model->getHistory($id, $get_paginar['inicio'], $get_paginar['final']); $this->load->view('estilo/header', $this->data); $this->load->view('admin/produtos/history', array("results" => $get_produtos['dados'], "paginar" => $get_paginar['paginacao']) ); } /*Função para paginar*/ public function pagina_history($url_pagination, $tot_histores, $result_hist_pagina=2){ $this->load->library('table'); $this->load->library('pagination'); $config['base_url'] = $url_pagination; $config['total_rows'] = $tot_histores; $config['per_page'] = $result_hist_pagina; $config['page_query_string'] = TRUE; $config['next_link'] = 'Próxima'; $config['prev_link'] = 'Anterior'; $config['full_tag_open'] = '<div class="pagination alternate"><ul>'; $config['full_tag_close'] = '</ul></div>'; $config['num_tag_open'] = '<li>'; $config['num_tag_close'] = '</li>'; $config['cur_tag_open'] = '<li><a style="color: #2D335B"><b>'; $config['cur_tag_close'] = '</b></a></li>'; $config['prev_tag_open'] = '<li>'; $config['prev_tag_close'] = '</li>'; $config['next_tag_open'] = '<li>'; $config['next_tag_close'] = '</li>'; $config['first_link'] = 'Primeira'; $config['last_link'] = 'Última'; $config['first_tag_open'] = '<li>'; $config['first_tag_close'] = '</li>'; $config['last_tag_open'] = '<li>'; $config['last_tag_close'] = '</li>'; $qtidade = $config['per_page']; $this->pagination->initialize($config); $dados['final'] = $qtidade; $dados['inicio'] = $this->input->get('per_page') != NULL ? $this->input->get('per_page') : '0'; $dados['paginacao'] = $this->pagination->create_links(); return $dados; } MODEL: //Função de Busca Histórico do Produto function getHistory($id=null, $inicio=NULL, $quantidade=NULL){ $inicio = $inicio != NULL ? "LIMIT {$inicio},{$quantidade}" : ""; $numClie = $this->session->userdata('idCli'); //Executa SQL no Mysql $sql = $this->db->query("SELECT historico.*, produtos.*, clientes.*, marcas.* FROM historico INNER JOIN produtos ON produtos.idProdutos = historico.prd_idProdutos INNER JOIN clientes ON clientes.idClientes = historico.clie_idClientes INNER JOIN marcas ON marcas.idmarcas = produtos.marcas_idmarcas WHERE historico.prd_idProdutos = $id AND historico.clie_idClientes = $numClie ORDER BY idhistorico ASC {$inicio} "); $dados['inicio'] = $inicio; $dados['total'] = $sql->num_rows(); $dados['dados'] = $sql->result_array(); return $dados; } VIEW: <?php defined('BASEPATH') OR exit('No direct script access allowed'); $this->load->view('admin/tema/topo'); ?> <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>Histórico do Produto</h1> </div> <div class="col-sm-6"> <ol class="breadcrumb float-sm-right"> <li class="breadcrumb-item"><a href="<?php echo base_url()?>admin/">Home</a></li> <li class="breadcrumb-item active">Histórico do Produto</li> </ol> </div> </div> </div><!-- /.container-fluid --> </section> <?php if (!$results) { ?> <section class="content"> <div class="container-fluid"> <div class="row"> <div class="col-12"> <div class="card"> <div class="card-header"> <a href="<?php echo base_url() ?>admin/produtos" id="" class="btn btn-danger"> <i class="fa fa-undo"></i> Voltar </a> </div> <div class="card-body"> <table id="tab_histprd" class="table table-bordered table-hover"> <thead style="background: #cecece;"> <tr> <th style="text-align:center;">Data Lançamento</th> <th style="text-align:center;">Nr Dcto</th> <th style="text-align:center;">Histórico do Produto</th> <th style="text-align:center;">Movimentação</th> <th style="text-align:center;">Resultado</th> </tr> </thead> <tbody> <tr> <td colspan="5" style="text-align:center;"> <img src="<?php echo base_url()?>assets/img/logo_mail.png" alt="" style="height:100%; margin: 50px 40px;"> </td> </tr> </tbody> </table> </div> <!-- /.card-body --> </div> <!-- /.card --> </div> <!-- /.col --> </div> <!-- /.row --> </div> <!-- /.container-fluid --> </section> <?php } else { ?> <section class="content"> <div class="container-fluid"> <div class="row"> <div class="col-12"> <div class="callout callout-success"> <h5> <strong><?php echo $results[0]['cod_interno']; ?> - <?php echo $results[0]['descricao']; ?> - <?php echo $results[0]['mrc_descr']; ?></strong> </h5> </div> <div class="card"> <div class="card-body"> <form id="frmHist" action="<?php echo base_url(); ?>admin/relatorios/imprHistory" method="post"> <div class="row"> <div class="col-lg-3"> <label for="dataInicial">Data Início: <span class="required">*</span></label> <div class="controls"> <input type="date" name="dataInicial" value="" class="form-control" style="width:70%;" required /> </div> </div> <div class="col-lg-3" style="margin-left:-70px;"> <label for="dataFinal">Data Final: <span class="required">*</span></label> <div class="controls"> <input type="date" name="dataFinal" value="" class="form-control" style="width:70%;" required /> </div> </div> <div class="col-lg-3" style="margin-left:-75px; margin-top:31px;"> <input type="hidden" id="idPrd" name="idPrd" value="<?php echo $results[0]['idProdutos']; ?>" /> <input type="hidden" id="idInt" name="idInt" value="<?php echo $results[0]['cod_interno']; ?>" /> <button type="submit" class="btn btn-success" formtarget="_blank"> <i class="fa fa-print"></i> Imprimir </button> <a href="<?php echo base_url() ?>admin/produtos" id="" class="btn btn-danger"><i class="fa fa-undo"></i> Voltar</a> </div> </div> <div class="clearfix"></div> <br/> <table id="tab_histprd" class="table table-bordered table-hover"> <thead style="background: #cecece;"> <tr> <th style="text-align:center;">Data Lançamento</th> <th style="text-align:center;">Nr Dcto</th> <th style="text-align:center;">Histórico do Produto</th> <th style="text-align:center;">Movimentação</th> <th style="text-align:center;">Resultado</th> </tr> </thead> <tbody> <?php $saldo = 0; foreach ($results as $r) { //Converte Data para Padrão Brasileiro $dta_hist = date(('d/m/Y'), strtotime($r['dtahist'])); if ($r['credito'] == 0) { $mvts = number_format($r['credito'], 0, ",", "."); $corc = '#000000'; } else { $mvts = number_format($r['credito'], 0, ",", ".").' +'; $corc = '#080871'; } if ($r['debito'] == 0) { $mvto = number_format($r['debito'], 0, ",", "."); $cors = '#000000'; } else { $mvto = number_format($r['debito'], 0, ",", ".").' -'; $cors = '#AF0F0F'; } //Executa Cálculo entre CRD x DEB $saldo = ($r['credito'] - $r['debito']) + $saldo; $result = number_format($saldo, 0, ",", "."); //Mostra da Tabela echo '<tr>'; echo '<td width="70" height="10" style="text-align:center;">' .$dta_hist. '</td>'; echo '<td width="70" height="10" style="text-align:left;">' .$r['numdcto']. '</td>'; echo '<td width="240" height="10" style="text-align:left;">' .$r['historico']. '</td>'; if($mvts != 0){ echo '<td width="90" height="10" style="text-align:right; color:'.$corc.'"> <strong>'.$mvts.'</strong></td>'; } elseif($mvto != 0) { echo '<td width="90" height="10" style="text-align:right; color:'.$cors.'"> <strong>'. $mvto.'</strong> </td>'; } else { echo '<td width="90" height="10" style="text-align:right;">0</td>'; } echo '<td width="90" height="10" style="text-align:right;">'.$result.'</td>'; echo '</tr>'; }//Fim do Foreach ?> </tbody> </table> <?php echo $paginar; ?> </form> </div> <!-- /.card-body --> </div> <!-- /.card --> </div> <!-- /.col --> </div> <!-- /.row --> </div> <!-- /.container-fluid --> </section> <?php } ?> </div> <?php $this->load->view('estilo/footer'); ?> Grato a todos. Atenciosamente, Cesar -
PHP + Codeigniter - Problema em resultado para paginação
violin101 respondeu ao tópico de violin101 em PHP
Amigo Alaert saudações... Desculpa recorrer a sua ajuda, em qual parte do trecho do código devo colocar as funções acima mencionada pelo amigo ? Nessa linha comando abaixo, faço a contagem de todos os Registros encontrados no MySql conforme pesquisa: $config['total_rows'] = $this->produtos_model->countSearch('produtos', $produto, $idCategoria, $codigo, $status, $idMarca); O número de segmentos acredito que deva vir do countSearch. Grato, Cesar -
Caros amigos, saudações... Estou com um pequeno problema em trazer o Resultado de Itens encontrados para poder realizar Paginação. No meu Código tenho uma Rotina onde o usuário possa paginar todos os Resultados trazido do MySql na tela. Quando o sistema mostra o resultado sem a opção de PESQUISA realiza a paginação com êxito, o problema é quando faz alguma pesquisa, como por exemplo: - por descrição - por categoria - por status e etc. Como faço para paginar o Resultado de Pesquisa de Itens encontrado por página ? o Código está assim: Controller: <?php defined('BASEPATH') OR exit('No direct script access allowed'); class Produtos extends CI_Controller { function __construct() { parent::__construct(); if ((!session_id()) || (!$this->session->userdata('logado'))) { redirect('admin/login'); } $this->load->helper(array('form', 'codegen_helper')); //Traz todos os Produtos $this->load->model('admin/produtos_model', '', true); $this->load->model('admin/controle_model'); $this->data['usuario'] = $this->controle_model->getById($this->session->userdata('id')); $this->data['dados'] = $this->controle_model->getEmitente(); $this->data['clients'] = $this->controle_model->getClientes($this->session->userdata('id')); //Traz o Código do Cliente para o Filtrar as informaçãoes para Cotação $this->data['cliente'] = $this->controle_model->getClienteId($this->session->userdata('idCli')); } function index() { $this->gerenciar(); } function gerenciar($id = null) { if(!$this->permission->checkPermission($this->session->userdata('permissao'), 'vProduto')) { $this->session->set_flashdata('error', 'Você não tem permissão para visualizar produto.'); redirect(base_url()); } $this->load->library('table'); $this->load->library('pagination'); //Variável recebida via GET $produto = $this->input->get('produto'); $idCategoria = $this->input->get('idCategoria'); $codigo = $this->input->get('codigo'); $status = $this->input->get('status'); $idMarca = $this->input->get('idMarca'); $config['base_url'] = base_url().'admin/produtos/gerenciar/'; $config['first_url'] = base_url().'admin/produtos/gerenciar/'.(!empty($this->input->get()) ? '?'.http_build_query($this->input->get()) : ''); $config['use_page_numbers'] = false; $config["reuse_query_string"] = TRUE; $config['per_page'] = 10; $config['next_link'] = 'Próxima'; $config['prev_link'] = 'Anterior'; $config['full_tag_open'] = '<div class="pagination alternate"><ul>'; $config['full_tag_close'] = '</ul></div>'; $config['num_tag_open'] = '<li>'; $config['num_tag_close'] = '</li>'; $config['cur_tag_open'] = '<li><a style="color: #2D335B"><b>'; $config['cur_tag_close'] = '</b></a></li>'; $config['prev_tag_open'] = '<li>'; $config['prev_tag_close'] = '</li>'; $config['next_tag_open'] = '<li>'; $config['next_tag_close'] = '</li>'; $config['first_link'] = 'Primeira'; $config['last_link'] = 'Última'; $config['first_tag_open'] = '<li>'; $config['first_tag_close'] = '</li>'; $config['last_tag_open'] = '<li>'; $config['last_tag_close'] = '</li>'; if ($produto==null && $idCategoria==null && $codigo==null && $status==null && $idMarca==null) { $config['total_rows'] = $this->produtos_model->count('produtos'); $this->data['results'] = $this->produtos_model->get('produtos', 'idProdutos, cod_interno, descricao, prd_unid, imagemCapa, destaque, novo, peso, comprimento, largura, altura, volume, peso1, comprimento1, largura1, altura1, volume1, valor_ultcpra, valor_custo, valor_venda, valor_prod, porc_venda, valor_calc, desc_boleto, desc_promocao, max_parcelas, estoque_atual, estoque_min, statusProd, observ_prod, data_cad, id_user, id_clientes, categorias_idCategorias, marcas_idmarcas', ['id_clientes' => $this->session->userdata('idCli')], $config['per_page'], $id); $this->pagination->initialize($config); } else { /* O problema fica nesta parte --> TRAZ os Resultados mas não pagina. * se o resultado trazer 15 itens encontrado conforme pesquisa * mostra na tabela apenas 10 itens */ $config['total_rows'] = $this->produtos_model->countSearch('produtos', $produto, $idCategoria, $codigo, $status, $idMarca); $this->data['results'] = $this->produtos_model->getSearch($produto, $idCategoria, $codigo, $status, $idMarca, $config['per_page'], $id); $this->pagination->initialize($config); } //Preenche o Select para Desconto Promocional $this->data['categor'] = $this->produtos_model->getCateg(); $this->data['markprd'] = $this->produtos_model->getMarkas(); $this->load->view('estilo/header', $this->data); $this->load->view('admin/produtos/produtos'); } } a MODEL está assim: <?php class Produtos_model extends CI_Model { function __construct() { parent::__construct(); } function get($table, $fields, $where = '', $perpage = 0, $start = 0, $one = false, $array = 'array') { $this->db->select('produtos.*, clientes.nomeCliente as cliente, categorias.*, marcas.*'); $this->db->from('produtos'); $this->db->limit($perpage, $start); $this->db->join('clientes', 'produtos.id_Clientes = clientes.idClientes'); $this->db->join('categorias', 'produtos.categorias_idCategorias = categorias.idCategorias'); $this->db->join('marcas', 'produtos.marcas_idmarcas = marcas.idmarcas'); $this->db->order_by('cod_interno', 'ASC'); if ($where) { $this->db->where($where); } $query = $this->db->get(); $result = !$one ? $query->result() : $query->row(); return $result; } //Função de Contagem por Pesquisa public function countSearch($produto, $idCategoria, $codigo, $status, $idMarca) { $this->db->select('produtos.*, clientes.*, categorias.*, marcas.*'); $this->db->from('produtos'); $this->db->join('clientes', 'produtos.id_Clientes = clientes.idClientes'); $this->db->join('categorias', 'produtos.categorias_idCategorias = categorias.idCategorias'); $this->db->join('marcas', 'produtos.marcas_idmarcas = marcas.idmarcas'); $this->db->where('produtos.id_clientes', $this->session->userdata('idCli')); if ($produto != null) { $this->db->like('descricao', $produto); } if ($idCategoria != null) { $this->db->like('categorias_idCategorias', $idCategoria); } if ($codigo != null) { $this->db->like('cod_interno', $codigo); } if ($status != null) { $this->db->like('statusProd', $status); } if ($idMarca != null) { $this->db->like('marcas_idmarcas', $idMarca); } return $this->db->count_all_results(); } //Função de Busca conforme pesquisa public function getSearch($produto, $idCategoria, $codigo, $status, $idMarca, $perpage = 0, $start = 0) { $this->db->select('produtos.*, clientes.*, categorias.*, marcas.*'); $this->db->from('produtos'); $this->db->join('clientes', 'produtos.id_Clientes = clientes.idClientes'); $this->db->join('categorias', 'produtos.categorias_idCategorias = categorias.idCategorias'); $this->db->join('marcas', 'produtos.marcas_idmarcas = marcas.idmarcas'); $this->db->where('produtos.id_clientes', $this->session->userdata('idCli')); if ($produto != null) { $this->db->like('descricao', $produto); } if ($idCategoria != null) { $this->db->like('categorias_idCategorias', $idCategoria); } if ($codigo != null) { $this->db->like('cod_interno', $codigo); } if ($status != null) { $this->db->like('statusProd', $status); } if ($idMarca != null) { $this->db->like('marcas_idmarcas', $idMarca); } $this->db->limit($perpage, $start); return $this->db->get()->result(); } } Grato a todos. Atenciosamente, Cesar
-
CSS - Orientação referente marcadores de Slider
violin101 postou um tópico no fórum Desenvolvimento frontend
Caros amigos, membros do grupo. saudações... Desculpa em recorrer ao auxílio dos amigos, mas estou com uma pequena dúvida, que não estou conseguindo resolver. Tenho um Slider onde mostro Empresa Parceiras. <<=== até aqui tudo bem. O problema é que não estou conseguindo incluir no slider os BUTTON's de Avançar e Recuar. Quando tento colocar os marcadores eles não ficam lado a lado. Abaixo posto o código. CSS está assim: <style> /* Slider */ .slick-slide { margin: 0px 20px; } .slick-slide img { max-width: 100%; } .slick-slider{ position: relative; display: block; box-sizing: border-box; -webkit-user-select: none; -moz-user-select: none; -ms-user-select: none; user-select: none; -webkit-touch-callout: none; -khtml-user-select: none; -ms-touch-action: pan-y; touch-action: pan-y; -webkit-tap-highlight-color: transparent; } .slick-list{ position: relative; display: block; overflow: hidden; margin: 0; padding: 0; } .slick-list:focus{ outline: none; } .slick-list.dragging{ cursor: pointer; cursor: hand; } .slick-slider .slick-track, .slick-slider .slick-list { -webkit-transform: translate3d(0, 0, 0); -moz-transform: translate3d(0, 0, 0); -ms-transform: translate3d(0, 0, 0); -o-transform: translate3d(0, 0, 0); transform: translate3d(0, 0, 0); } .slick-track{ position: relative; top: 0; left: 0; display: block; } .slick-track:before, .slick-track:after { display: table; content: ''; } .slick-track:after{ clear: both; } .slick-loading .slick-track{ visibility: hidden; } .slick-slide{ display: none; float: left; height: 100%; min-height: 1px; } [dir='rtl'] .slick-slide { float: right; } .slick-slide img{ display: block; } .slick-slide.slick-loading img{ display: none; } .slick-slide.dragging img{ pointer-events: none; } .slick-initialized .slick-slide{ display: block; } .slick-loading .slick-slide{ visibility: hidden; } .slick-vertical .slick-slide{ display: block; height: auto; border: 1px solid transparent; } .slick-arrow.slick-hidden{ display: none; } </style> O HTML está assim: <div class="container"> <h2>Empresas - Parceiras</h2> <section class="list-logos slide"> <div class="slide"><img src="https://s2.glbimg.com/PE9lTOWcKUlnHVGSjv_OqVcPM7w=/e.glbimg.com/og/ed/f/original/2019/10/25/cloud-blue-high-clouds-its-in-the-air-sky-air-2294671.jpg"></div> <div class="slide"><img src="https://conhecimentocientifico.r7.com/wp-content/uploads/2019/10/nuvens-como-sao-formadas-principais-tipos-e-caracteristicas-2.jpg"></div> <div class="slide"><img src="https://hardcore.com.br/wp-content/uploads/sites/2/2020/09/onda-do-bem.jpg"></div> <div class="slide"><img src="https://statig2.akamaized.net/bancodeimagens/3i/dv/7j/3idv7j5fqayakev9ltglmr97m.jpg"></div> <div class="slide"><img src="https://uploads.metropoles.com/wp-content/uploads/2020/01/15192306/mar-praia-600x400.jpg"></div> </section> </div> <div class="clearfix"></div> O JS está assim: <script> $(document).ready(function(){ $('.list-logos').slick({ slidesToShow: 3, slidesToScroll: 1, autoplay: true, autoplaySpeed: 1500, arrows: false, dots: true, pauseOnHover: false, responsive: [{ breakpoint: 768, settings: { slidesToShow: 4 } }, { breakpoint: 520, settings: { slidesToShow: 3 } }] }); }); </script> Caros amigos, como consigo colocar os botões de Avançar e Recuar mais os indicadores abaixo das imagens ? Grato, Cesar -
JavaScript - owlCarousel - Mostrar itens relacionados
violin101 postou um tópico no fórum Javascript
Caros amigos, saudações... Tenho uma rotina para mostrar ao usuário todos os produtos Relacionados com um determinado Produto. Exemplo: Caderno ---> relacionado com: lápis, borracha, caneta, apontador e etc. O problema que estou enfrentando é o seguinte: ==> o produto caderno se estiver relacionado com mais de 4 produtos não ocorre o erro. Quando mostro o relacionamento se o produto estiver relacionado com apenas 3 ou menos produto, o CAROUSEL fica repetindo o 1º ou 2º item. Como faço para isso não acontecer ? Abaixo posto como está o JavaScript. $(".produto_relaciona").owlCarousel({ loop: true, nav: true, items: 4, dots: false, navText: ["<i class='fa fa-angle-left'></i>", "<i class='fa fa-angle-right'></i>"], smartSpeed: 1200, autoplayTimeout: 5000, autoHeight: false, autoplay: true, responsive: { 0: { items: 1 }, 480: { items: 2 }, 768: { items: 3 }, 992: { items: 4 } } }); Grato, Cesar -
JavaScript - owlCarousel - Mostrar itens relacionados
violin101 respondeu ao tópico de violin101 em Javascript
Caros amigos, saudações... Consegui resolver o problema que estava enfrentando. Ficou assim: $(".produto_relaciona").owlCarousel({ loop: true, nav: true, items: 4, //aqui mantive para o sistema saber e configurar quantos ITENS desejo mostrar no site dots: false, navText: ["<i class='fa fa-angle-left'></i>", "<i class='fa fa-angle-right'></i>"], smartSpeed: 1200, autoplayTimeout: 5000, autoHeight: false, autoplay: true /*---[ eliminei essas linhas abaixo e mantive acima conforme esta responsive: { 0: { items: 1 }, 480: { items: 2 }, 768: { items: 3 }, 992: { items: 4 } } */ }); Grato, Cesar -
JavaScript - owlCarousel - Mostrar itens relacionados
violin101 respondeu ao tópico de violin101 em Javascript
Olá amigo, Wanderval saudações... Vou tentar te explicar melhor. O produto CADERNO: tem 4 produtos relacionados a ele. O produto CANETA...: tem 3 produtos relacionados a ele. A quantidade de relacionamento para CADA produto, depende da quantidade de relacionamento cadastro pelo o usuário. Observação: 1 - a quantidade de itens relacionado pode variar. 2 - não foi defini o ESPAÇAMENTO entre os itens, pois é nessa parte que estou errando. A rotina que escrevi para mostrar está assim: <?php if (!$relaks) { ?> <!--Não Mostra nada--> <?php } else { ?> <section class="product-area li-laptop-product pt-10 pb-50"> <div class="container"> <div class="row"> <!-- Begin Li's Section Area --> <div class="col-lg-12"> <div class="li-section-title"> <h2> <span>Produto(s) Relacionado(s)</span> </h2> </div> <div class="row"> <div class="product-relat owl-carousel"> <?php foreach ($relaks as $pr) { ?> <div class="col-lg-12"> <div class="single-product-wrap"> <div class="product-image"> <?php if ($pr->imagemCapa != null) { ?> <img src="<?php echo $pr->imagemCapa; ?>" alt=""> <?php } else { ?> <img src="<?php echo base_url() ?>assets/img/semImg.jpg" alt=""> <?php } ?> <div class="product-label"> <?php if($pr->desc_promocao != "" && $pr->desc_promocao != 0){ ?> <span class="dscprd">-<?php echo $pr->desc_promocao; ?>%</span> <?php } if($pr->novo != "2"){ ?> <span class="newprd">NOVO</span> <?php } ?> </div> </div> <div class="product_desc"> <div class="product_desc_info"> <div class="product-review"> <h5 class="manufacturer"> <p><?php echo $pr->mrc_descr; ?></p> </h5> <div class="rating-box"> <?php $codProd = $pr->idProdutos; $codClie = $pr->id_clientes; $average = 0; $pontoNumber = 0; $count = 0; //Executa SQL no Mysql $sqls = $this->db->query("SELECT avaliacao.*, produtos.*, clientes.* FROM avaliacao INNER JOIN produtos ON produtos.idProdutos = avaliacao.avl_idProdutos INNER JOIN clientes ON clientes.idClientes = avaliacao.avl_idClientes WHERE avl_idClientes = $codClie AND avl_idProdutos = $codProd "); foreach($sqls->result() as $al) { $pontoNumber += $al->avl_ponto; $count += 1; } if($pontoNumber && $count) { $average = $pontoNumber/$count; } $averageRating = round($average, 0); if($averageRating == 0){ ?> <div style="color:#FFFFFF;">-</div> <?php } else { for ($i = 1; $i <= 5; $i++) { if($i <= $averageRating) { $ratingClass = "<i class='fa fa-star'></i>"; } else { $ratingClass = "<i class='fa fa-star-o empty'></i>"; }//Fim do IF ?> <i class="fa fa-star <?php echo $ratingClass; ?>"></i> <?php }//Fim do FOR }//Fim do IF ?> </div> </div> <h4> <p class="produto_name"> <?php echo $pr->descricao; ?> </p> </h4> <div class="price-box"> <?php if($pr->valor_venda != 0) { $vlrvda = $pr->valor_venda; } else { $vlrvda = $pr->valor_ultcpra; } if($pr->desc_promocao != "" && $pr->desc_promocao != 0){ //Converte $valor = floatval(str_replace(",",".",$vlrvda)); $desc = floatval(str_replace(",",".",$pr->desc_promocao)); //Calcular $calc = ($valor * $desc)/100; $result = $valor - $calc; ?> <span class="new-price new-price-2"> R$ <?php echo number_format($result, 2, ",", ".");?> </span> <span class="old-price"> R$ <?php echo number_format($vlrvda, 2, ",", "."); ?> </span> <?php } else { ?> <span class="new-price new-price-2"> R$ <?php echo number_format($vlrvda, 2, ",", "."); ?> </span> <?php } ?> </div> </div> <div class="product_categ pt-5"> <label class="prdCateg">Categoria</label> <label class="lblCateg"><?php echo $pr->categoria; ?></label> </div> <div class="add-actions"> <form method="post" action="<?php echo base_url();?>site/produtos/dadosProdutos/<?php echo $pr->idProdutos; ?>"> <button class="add-to-cart-btn"> <i class="fa fa-search"></i>Visualizar </button> </form> </div> </div> </div> </div> <?php }//Fim do Foreach ?> </div> </div> </div> <!-- Li's Section Area End Here --> </div> </div> </section> <?php } ?> Grato, Cesar -
Codeigniter - Como enviar múltiplos e-mails com PHPmailer
violin101 respondeu ao tópico de violin101 em PHP
Caros amigos, saudações... Depois de muita pesquisa e orientação no grupo, consegui realizar o envio de múltiplos e-mails. O problema agora é que quando envio os e-mails, todos os envio aparece desta forma para os Clientes e/ou Fornecedores. email_1@teste.com,email_2@teste.com,email_3@teste.com,email_4@teste.com,email_5@teste.com Desta forma acima, quando o Cliente abre seu e-mail visualiza todos os outros demais que receberam também. Como consigo fazer para que cada envio mostra somente o e-mail exclusivo de cada cliente ? Abaixo posto meu código: <?php //Função para Disparar Mensagem function disparaMensagem() { $idCts = $this->input->post('idCts'); $idCta = str_pad($idCts, '5', '0', STR_PAD_LEFT); $idCli = $this->input->post('idCli'); $idCtg = $this->input->post('idCtg'); //ID categoria $razSoc = $this->input->post('razSoc'); //Razão Social $dtaEnv = $this->input->post('dtaEnv'); //Data envio $dtaEnv = $this->input->post('dtaEnv'); //Hora envio $cta = $idCli . '.' . $idCta; $data = date(('d/m/Y'), strtotime($dtaEnv)); $hora = date(('H:i'), strtotime($dtaEnv)); //Chama a library - Email $this->load->library('email'); // adquiri os E-mails para Enviar $recbmail = $this->envio_model->fetch_data($idCts,$idCtg); //Recebe os E-mails os Fornecedores $end_mail = null; foreach ($recbmail->result_array() as $key => $value){ //Separa os e-mails por vírgula $end_mail[] = implode(',', $value); } $comunicStatus = 2; $retorno = $this->envio_model->editDispara($idCts, $comunictatus); if ($retorno) { //Laço para enviar os e-mails recebido do MySql //----> aqui faço um FOR para enviar os e-mails para cada Cliente for ($i=0; $i < $end_mail; $i++) { error_reporting(E_ALL); ini_set("display_Errors", 1); //Corpo do E-mail $this->email->from('meu-email@hotmail.com'); $this->email->to($end_mail); $this->email->subject('Comunicado'); $this->email->message('<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta charset="utf-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <meta http-equiv="content-language" content="pt-br" /> <title>Teste de E-mail</title> </head> <body style="font-size:14px;"> <br/> <b>Prezado Senhor Fornecedor</b><br/><br/> <label style="font-size:14px; color:#0E0E8F;"> <b>Comunicado</b> </label> <br/><br/> Empresa: <b>'.$razSoc.'</b><br/> Comunica que estaremos fazendo saldão de estoque, aproveite.</b><br/> Data para Encerrar: <b>'.$data.'</b> às <b>'.$hora.'.</b> <br/><br/> <b>Por favor, não responder este e-mail</b>. </body> </html>'); if($this->email->send()){ $this->session->set_flashdata('success', '<h4>Comunicado - Disparado com Sucesso para o(s) Fornecedor(es).</h4>'); redirect(base_url() . 'comunic/comunicado/editar/' . $this->input->post('idCts')); } else { $this->session->set_flashdata('error', 'Ocorreu um erro ao tentar enviar Aviso de Comunicado!'); redirect(base_url() . 'comunic/comunicado/editar/' . $this->input->post('idCts')); }//Fim do IF-send }//Fim do FOR } else { $this->session->set_flashdata('error', 'Ocorreu um erro ao tentar disparar a Comunicado. Por favor, informe ao Administrador do Sistema.'); redirect(base_url() . 'comunic/comunicado/editar/' . $this->input->post('idCts')); } } ?> Grato, Cesar -
Codeigniter - Como enviar múltiplos e-mails com PHPmailer
violin101 respondeu ao tópico de violin101 em PHP
Caros amigos Li várias vezes o exemplos mencionado mas infelizmente não consegui entender. Abaixo posto meu código que utilizo para enviar RESPOSTA de E-MAIL ===> individual. <?php class Contats extends CI_Controller{ function __construct() { parent::__construct(); if ((!session_id()) || (!$this->session->userdata('logado'))) { redirect('admin/login'); } $this->load->helper(array('form', 'codegen_helper')); $this->load->model('admin/contats_model', '', true); $this->load->model('admin/controle_model'); $this->data['usuario'] = $this->controle_model->getById($this->session->userdata('id')); $this->data['dados'] = $this->controle_model->getEmitente(); $this->data['clients'] = $this->controle_model->getClientes($this->session->userdata('id')); } function index() { $this->gerenciar(); } function gerenciar($id = null) { $this->data['results'] = $this->contats_model->get('contatos', 'idcontatos,nomecontato,emailcontato,asscontato,menscontato,respcontato,datarecebe,horarecebe,dataresposta,horaresposta,iduser', '', $id); $this->load->view('admin/estilo/header', $this->data); $this->load->view('admin/contats/contats'); } //Função para responder Contato por e-mail function responder($id = null) { if ($this->input->post()) { //Recebe variáveis via POST $email = $this->input->post('mailCont'); $retorno = $this->input->post('retorno'); $dadoscont = $this->contats_model->buscaemail($email, $id); if ((isset($dadoscont)) && (!empty($dadoscont))) { $status = ''; foreach ($dadoscont as $user) { $nome = $user->nomecontato; $asunt = $user->asscontato; $mensag = $user->menscontato; $status = $user->respcontato; $dtarec = date(('d/m/Y'), strtotime($user->datarecebe)); $hrsrec = date(('H:i:s'), strtotime($user->horarecebe)); } if ($status != 2 ) { error_reporting(E_ALL); ini_set("display_Errors", 1); $this->load->library('email'); $this->email->from('meuEmail@hotmail.com'); //o mesmo e-mail que estiver no config/email.php $this->email->to($email); $this->email->subject('Retorno: '.$asunt.''); $this->email->message('<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta charset="utf-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <meta http-equiv="content-language" content="pt-br" /> <title>Teste de E-mail</title> </head> <body> <br/>'.$retorno.'<br/> <hr/><br/> De: '.$nome.'<br/> Enviado: '.$dtarec.' - '.$hrsrec.'<br/> E-mail: '.$email.'<br/> Assunto: '.$asunt.'<br/> <br/>'.$mensag.'<br/> </body> </html>'); if($this->email->send()){ $this->session->set_flashdata('success', 'Contato Respondido com sucesso!'); redirect(base_url() . 'admin/contats/responder/'.$this->input->post('idcontatos')); } else { $this->session->set_flashdata('error', 'Ocorreu um erro ao tentar Responder o Contato!'); redirect(base_url() . 'admin/contats/responder/'.$this->input->post('idcontatos')); } } else { $this->session->set_flashdata('error', 'Não foi possível enviar o e-mail!'); redirect(base_url() . 'admin/contats/responder/'.$this->input->post('idcontatos')); } } else { $this->session->set_flashdata('error', 'Este E-mail não existe!'); redirect(base_url() . 'admin/contats/responder/'.$this->input->post('idcontatos')); } } else { $this->data['result'] = $this->contats_model->getById($id); $this->load->view('admin/estilo/header', $this->data); $this->load->view('admin/contats/respondeContats'); } } } O código acima envia resposta individual para cada contato que é uma Beleza. Tentei de várias formas fazer o envio MÚLTIPLO mas não tive sucesso. Por favor, alguém teria algum exemplo nesse assunto. Os tema de leitura que os amigos me indicou não consegui entender. Grato, Cesar