Jump to content

Remazela

Members
  • Content count

    273
  • Joined

  • Last visited

Everything posted by Remazela

  1. Caros amigos. Recorro ao auxilio dos amigos mais uma vez. Estou escrevendo um Sistema de PHP + CodeIgniter c/ Bootstrap, estou com problema de Paginação que não consigo entender. Observação: em CodeIgniter sou novato. O Cadastro de Clientes tenho as seguintes opções: Pessoa Física e Pessoa Jurídica (até aqui tudo bem). Quando faço a pesquisa por: Todas opções <- consigo fazer a paginação sem perder o foco. Pessoa Física <- traz todas os Pessoas Físicas, após prosseguir para a próxima ou voltar para a página anterior, perde o foco da paginação. Abaixo os Fontes que estou escrevendo: Controllers, Models e Views. Controller <?php class Clientes extends CI_Controller { public function __construct() { parent::__construct(); if((!$this->session->userdata('session_id')) || (!$this->session->userdata('logado'))){ redirect('siscom/login'); } $this->load->model('clientes_model','',TRUE); $this->data['menuClientes'] = 'clientes'; $this->load->helper(array('codegen_helper')); } public function index(){ $this->gerenciar(); } public function gerenciar(){ if(!$this->permission->checkPermission($this->session->userdata('permissao'),'vCliente')){ $this->session->set_flashdata('error','Você não tem permissão para visualizar clientes.'); redirect(base_url()); } $busc = ''; $tipPes = $this->input->get('tipPes'); // busca todos os lançamentos if(! isset($tipPes) || $tipPes == 'todas'){ $busc = ''; } else { if($tipPes == 'fisica'){ $busc = 'tipoPessoa = "fisica"'; } else { if($tipPes == 'juridica'){ $busc = 'tipoPessoa = "juridica"'; } } } $this->load->library('table'); $this->load->library('pagination'); $config['base_url'] = base_url().'index.php/clientes/gerenciar/'; $config['total_rows'] = $this->clientes_model->count('clientes'); $config['per_page'] = 3; $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>'; $this->pagination->initialize($config); $this->data['results'] = $this->clientes_model->get('clientes','idClientes,nomeCliente,documento,tipoPessoa,telefone,celular,email,rua,numero,bairro,cidade,estado,cep',$busc,$config['per_page'],$this->uri->segment(3)); $this->data['view'] = 'clientes/clientes'; $this->load->view('tema/header', $this->data); $this->load->view('tema/footer'); } public function autonomo() { if(!$this->permission->checkPermission($this->session->userdata('permissao'),'aCliente')){ $this->session->set_flashdata('error','Você não tem permissão para adicionar clientes.'); redirect(base_url()); } $this->load->library('form_validation'); $this->data['custom_error'] = ''; if ($this->form_validation->run('clientes') == false) { $this->data['custom_error'] = (validation_errors() ? '<div class="form_error">' . validation_errors() . '</div>' : false); } else { $data = array( 'nomeCliente' => set_value('nomeCliente'), 'documento' => set_value('documento'), 'tipoPessoa' => $this->input->post('tipoPessoa'), 'telefone' => set_value('telefone'), 'celular' => $this->input->post('celular'), 'email' => set_value('email'), 'rua' => set_value('rua'), 'numero' => set_value('numero'), 'bairro' => set_value('bairro'), 'cidade' => set_value('cidade'), 'estado' => set_value('estado'), 'cep' => set_value('cep'), 'dataCadastro' => date('Y-m-d') ); if ($this->clientes_model->add('clientes', $data) == TRUE) { $this->session->set_flashdata('success','Cliente adicionado com sucesso!'); redirect(base_url() . 'index.php/clientes/autonomo/'); } else { $this->data['custom_error'] = '<div class="form_error"><p>Ocorreu um erro.</p></div>'; } } $this->data['view'] = 'clientes/adicionarFisica'; $this->load->view('tema/header', $this->data); $this->load->view('tema/footer'); } public function empresa() { if(!$this->permission->checkPermission($this->session->userdata('permissao'),'aCliente')){ $this->session->set_flashdata('error','Você não tem permissão para adicionar clientes.'); redirect(base_url()); } $this->load->library('form_validation'); $this->data['custom_error'] = ''; if ($this->form_validation->run('clientes') == false) { $this->data['custom_error'] = (validation_errors() ? '<div class="form_error">' . validation_errors() . '</div>' : false); } else { $data = array( 'nomeCliente' => set_value('nomeCliente'), 'documento' => set_value('documento'), 'tipoPessoa' => $this->input->post('tipoPessoa'), 'telefone' => set_value('telefone'), 'celular' => $this->input->post('celular'), 'email' => set_value('email'), 'rua' => set_value('rua'), 'numero' => set_value('numero'), 'bairro' => set_value('bairro'), 'cidade' => set_value('cidade'), 'estado' => set_value('estado'), 'cep' => set_value('cep'), 'dataCadastro' => date('Y-m-d') ); if ($this->clientes_model->add('clientes', $data) == TRUE) { $this->session->set_flashdata('success','Cliente adicionado com sucesso!'); redirect(base_url() . 'index.php/clientes/empresa/'); } else { $this->data['custom_error'] = '<div class="form_error"><p>Ocorreu um erro.</p></div>'; } } $this->data['view'] = 'clientes/adicionarJuridica'; $this->load->view('tema/header', $this->data); $this->load->view('tema/footer'); } public function editar() { if(!$this->permission->checkPermission($this->session->userdata('permissao'),'eCliente')){ $this->session->set_flashdata('error','Você não tem permissão para editar clientes.'); redirect(base_url()); } $this->load->library('form_validation'); $this->data['custom_error'] = ''; if ($this->form_validation->run('clientes') == false) { $this->data['custom_error'] = (validation_errors() ? '<div class="form_error">' . validation_errors() . '</div>' : false); } else { $data = array( 'nomeCliente' => $this->input->post('nomeCliente'), 'documento' => $this->input->post('documento'), 'tipoPessoa' => $this->input->post('tipoPessoa'), 'telefone' => $this->input->post('telefone'), 'celular' => $this->input->post('celular'), 'email' => $this->input->post('email'), 'rua' => $this->input->post('rua'), 'numero' => $this->input->post('numero'), 'bairro' => $this->input->post('bairro'), 'cidade' => $this->input->post('cidade'), 'estado' => $this->input->post('estado'), 'cep' => $this->input->post('cep') ); if ($this->clientes_model->edit('clientes', $data, 'idClientes', $this->input->post('idClientes')) == TRUE) { $this->session->set_flashdata('success','Cliente editado com sucesso!'); redirect(base_url() . 'index.php/clientes/editar/'.$this->input->post('idClientes')); } else { $this->data['custom_error'] = '<div class="form_error"><p>Ocorreu um erro</p></div>'; } } $this->data['result'] = $this->clientes_model->getById($this->uri->segment(3)); $this->data['view'] = 'clientes/editarCliente'; $this->load->view('tema/header', $this->data); $this->load->view('tema/footer'); } public function visualizar(){ if(!$this->permission->checkPermission($this->session->userdata('permissao'),'vCliente')){ $this->session->set_flashdata('error','Você não tem permissão para visualizar clientes.'); redirect(base_url()); } $this->data['custom_error'] = ''; $this->data['result'] = $this->clientes_model->getById($this->uri->segment(3)); $this->data['results'] = $this->clientes_model->getOsByCliente($this->uri->segment(3)); $this->data['view'] = 'clientes/visualizar'; $this->load->view('tema/header', $this->data); $this->load->view('tema/footer'); } public function excluir(){ if(!$this->permission->checkPermission($this->session->userdata('permissao'),'dCliente')){ $this->session->set_flashdata('error','Você não tem permissão para excluir clientes.'); redirect(base_url()); } $id = $this->input->post('id'); if ($id == null){ $this->session->set_flashdata('error','Erro ao tentar excluir cliente.'); redirect(base_url().'index.php/clientes/gerenciar/'); } //$id = 2; // excluindo OSs vinculadas ao cliente $this->db->where('clientes_id', $id); $os = $this->db->get('os')->result(); if($os != null){ foreach ($os as $o) { $this->db->where('os_id', $o->idOs); $this->db->delete('servicos_os'); $this->db->where('os_id', $o->idOs); $this->db->delete('produtos_os'); $this->db->where('idOs', $o->idOs); $this->db->delete('os'); } } // excluindo Vendas vinculadas ao cliente $this->db->where('clientes_id', $id); $vendas = $this->db->get('vendas')->result(); if($vendas != null){ foreach ($vendas as $v) { $this->db->where('vendas_id', $v->idVendas); $this->db->delete('itens_de_vendas'); $this->db->where('idVendas', $v->idVendas); $this->db->delete('vendas'); } } //excluindo receitas vinculadas ao cliente $this->db->where('clientes_id', $id); $this->db->delete('lancamentos'); $this->clientes_model->delete('clientes','idClientes',$id); $this->session->set_flashdata('success','Cliente excluido com sucesso!'); redirect(base_url().'index.php/clientes/gerenciar/'); } } Model <?php class Clientes_model extends CI_Model { function __construct() { parent::__construct(); } 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('idClientes','desc'); $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('idClientes',$id); $this->db->limit(1); return $this->db->get('clientes')->row(); } function add($table,$data){ $this->db->insert($table, $data); if ($this->db->affected_rows() == '1') { return TRUE; } return FALSE; } 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 getOsByCliente($id){ $this->db->where('clientes_id',$id); $this->db->order_by('idOs','desc'); $this->db->limit(10); return $this->db->get('os')->result(); } } View <?php if($this->permission->checkPermission($this->session->userdata('permissao'),'aCliente')){ ?> <div class="span5" style="margin-left: 0; margin-bottom: 10px;"> <a href="<?php echo base_url();?>index.php/clientes/empresa" class="btn btn-success"><i class="icon-plus icon-white"></i> Pessoa Jurídica</a> <a href="<?php echo base_url();?>index.php/clientes/autonomo" class="btn btn-primary"><i class="icon-plus icon-white"></i> Pessoa Física</a> </div> <?php } ?> <?php $tipPes = $this->input->get('tipPes'); ?> <div class="span7" style="margin-left: 0px; margin-top: -17px;"> <form action="<?php echo current_url(); ?>" method="get" > <div class="span4" style="margin-left: 0px;"> <label><strong>Situação</strong> <i class="icon-info-sign tip-top" title="Selecione o Tipo de Pessoa."></i></label> <select name="tipPes" class="span12" style="margin-top: -4px;"> <option selected disabled class="text-hide">Selecione uma opção...</option> <option value="todas">Todas</option> <option value="fisica" <?php if($tipPes == 'fisica'){ echo 'selected';} ?>>Fisica</option> <option value="juridica" <?php if($tipPes == 'juridica'){ echo 'selected';} ?>>Jurídica</option> </select> </div> <div class="span4" style="margin-top: 0px;"> &nbsp <button type="submit" class="span12 btn btn-warning"><i class="icon-search"></i> Pesquisar</button> </div> </form> </div> <?php if(!$results){ ?> <div class="widget-box"> <div class="widget-title"> <span class="icon"> <i class="icon-user"></i> </span> <h5>Clientes</h5> </div> <div class="widget-content nopadding"> <table class="table table-bordered"> <thead> <tr> <th>#</th> <th>Nome</th> <th>CPF/CNPJ</th> <th>Telefone</th> <th>Pessoa</th> <th>Ações</th> </tr> </thead> <tbody> <tr> <td colspan="5">Nenhum Cliente Cadastrado</td> </tr> </tbody> </table> </div> </div> <?php } else { ?> <div class="widget-box"> <div class="widget-title"> <span class="icon"> <i class="icon-user"></i> </span> <h5>Clientes</h5> </div> <div class="widget-content nopadding"> <table class="table table-bordered "> <thead> <tr> <th>#</th> <th>Nome</th> <th>CPF/CNPJ</th> <th>Telefone</th> <th>Pessoa</th> <th>Ações</th> </tr> </thead> <tbody> <?php foreach ($results as $r) { //Comando para mudar a cor do texto - Pessoa Física e Jurídica if($r->tipoPessoa == 'juridica'){ $text = 'success'; } else { $text = 'info'; } echo '<tr>'; echo '<td style="text-align: center">'.$r->idClientes.'</td>'; echo '<td>'.$r->nomeCliente.'</td>'; echo '<td style="text-align: center">'.$r->documento.'</td>'; echo '<td style="text-align: center">'.$r->telefone.'</td>'; echo '<td style="text-align: center; font-size: 13px;"> <strong class="text text-'.$text.'">'.ucfirst($r->tipoPessoa).'</strong></td>'; echo '<td style="text-align: center">'; if($this->permission->checkPermission($this->session->userdata('permissao'),'vCliente')){ echo '<a href="'.base_url().'index.php/clientes/visualizar/'.$r->idClientes.'" style="margin-right: 1%" class="btn tip-top" title="Ver mais detalhes"><i class="icon-search"></i></a>'; } if($this->permission->checkPermission($this->session->userdata('permissao'),'eCliente')){ echo '<a href="'.base_url().'index.php/clientes/editar/'.$r->idClientes.'" style="margin-right: 1%" class="btn btn-info tip-top" title="Editar Cliente"><i class="icon-pencil icon-white"></i></a>'; } if($this->permission->checkPermission($this->session->userdata('permissao'),'dCliente')){ echo '<a href="#modal-excluir" role="button" data-toggle="modal" cliente="'.$r->idClientes.'" style="margin-right: 1%" class="btn btn-danger tip-top" title="Excluir Cliente"><i class="icon-remove icon-white"></i></a>'; } echo '</td>'; echo '</tr>'; }?> <tr> </tr> </tbody> </table> </div> </div> <?php echo $this->pagination->create_links();}?> <!-- Modal --> <div id="modal-excluir" class="modal hide fade" tabindex="-1" role="dialog" aria-labelledby="myModalLabel" aria-hidden="true"> <form action="<?php echo base_url() ?>index.php/clientes/excluir" method="post" > <div class="modal-header"> <button type="button" class="close" data-dismiss="modal" aria-hidden="true">×</button> <h5 id="myModalLabel">Excluir Cliente</h5> </div> <div class="modal-body"> <input type="hidden" id="idCliente" name="id" value="" /> <h5 style="text-align: center">Deseja realmente excluir este cliente e os dados associados a ele (OS, Vendas, Receitas)?</h5> </div> <div class="modal-footer"> <button class="btn" data-dismiss="modal" aria-hidden="true">Cancelar</button> <button class="btn btn-danger">Excluir</button> </div> </form> </div> <script type="text/javascript"> $(document).ready(function(){ $(document).on('click', 'a', function(event) { var cliente = $(this).attr('cliente'); $('#idCliente').val(cliente); }); }); </script> Como faço para quando paginar não perder o foco de Busca ? Grato, Renato
  2. Remazela

    Criar demonstração Sistema em PHP

    Caros amigos Saudações. Desculpa recorrer ao auxílio dos amigos. Tem como criar um Sistema de Demonstração de Software desenvolvido em PHP ? Como seria esse sistema de demonstração ? Tem alguma vídeo aula que eu possa me basear ? Para ter o sistema de demonstração, o sistema deve estar hospedado em algum provedor ou não é necessário ? Grato, Renato
  3. Remazela

    Criar demonstração Sistema em PHP

    Amigo William Sim, o meu sistema utiliza Banco de Dados - MySql. Exemplificando o que preciso, seria mais ou menos um TESTE DRIVE do Sistema para o Cliente verificar as funcionalidade do sistema. Grato, Renato
  4. Remazela

    Criar demonstração Sistema em PHP

    Amigo William Grato por responder mas o que preciso seria. Uma versão DEMO de um sistema desenvolvido por mim. Por exemplo: um sistema de estoque web. Como disponibilizaria uma demonstração para o cliente analisar o funcionamento do sistema. Grato Renato
  5. Remazela

    Mostrar campo moeda

    Claudia, também pode fazer assim: no form (INPUT): <br/> <label> <span>Valor........:</span> <input type="text" name="valor" size="15" onKeyUp="dinheiro(this,15)" /> </label> script: <script type="text/javascript"> //Valida os campos moeda do formulário function dinheiro(cur,len) { n='__0123456789'; d=cur.value; l=d.length; r=''; if (l > 0){ z=d.substr(0,l-1); s=''; a=2; for (i=0; i < l; i++){ c=d.charAt(i); if (n.indexOf(c) > a){ a=1; s+=c; }; }; l=s.length; t=len-1; if (l > t){ l=t; s=s.substr(0,t); }; if (l > 2){ r=s.substr(0,l-2)+','+s.substr(l-2,2); } else { if (l == 2){ r='0,'+s; } else { if (l == 1){ r='0,0'+s; }; }; }; if (r=='0,00'){ return false; } else { l=r.length; if (l > 6){ j=l%3; w=r.substr(0,j); wa=r.substr(j,l-j-6); wb=r.substr(l-6,6); if (j > 0){ w+='.'; }; k=(l-j)/3-2; for (i=0; i < k; i++){ w+=wa.substr(i*3,3)+'.'; }; r=w+wb; }; }; }; if (r.length <= len){ cur.value=r; } else { cur.value=z; }; return 'ok'; }; </script>
  6. Remazela

    Mostrar campo moeda

    Claudia, saudações. Tenta assim: script <script language="JavaScript" > function currencyFormat(fld, milSep, decSep, e) { var sep = 0; var key = ''; var i = j = 0; var len = len2 = 0; var strCheck = '0123456789'; var aux = aux2 = ''; var whichCode = (window.Event) ? e.which : e.keyCode; if (whichCode == 13) return true; // Enter key = String.fromCharCode(whichCode); // Get key value from key code if (strCheck.indexOf(key) == -1) return false; // Not a valid key len = fld.value.length; for(i = 0; i < len; i++) if ((fld.value.charAt(i) != '0') && (fld.value.charAt(i) != decSep)) break; aux = ''; for(; i < len; i++) if (strCheck.indexOf(fld.value.charAt(i))!=-1) aux += fld.value.charAt(i); aux += key; len = aux.length; if (len == 0) fld.value = ''; if (len == 1) fld.value = '0'+ decSep + '0' + aux; if (len == 2) fld.value = '0'+ decSep + aux; if (len > 2) { aux2 = ''; for (j = 0, i = len - 3; i >= 0; i--) { if (j == 3) { aux2 += milSep; j = 0; } aux2 += aux.charAt(i); j++; } fld.value = ''; len2 = aux2.length; for (i = len2 - 1; i >= 0; i--) fld.value += aux2.charAt(i); fld.value += decSep + aux.substr(len - 2, len); } return false; } function id(el) { return document.getElementById( el ); } function total( qtde, vrUnit ) { return parseFloat(qtde.replace(',', '.'), 10) * parseFloat(vrUnit.replace(',', '.'), 10); } window.onload = function() { id('vrUnit').addEventListener('keyup', function() { var result = total( this.value , id('qtde').value ); id('vrTotal').value = String(result.toFixed(2)).formatMoney(); }); id('qtde').addEventListener('keyup', function(){ var result = total( id('vrUnit').value , this.value ); id('vrTotal').value = String(result.toFixed(2)).formatMoney(); }); } String.prototype.formatMoney = function() { var v = this; if(v.indexOf('.') === -1) { v = v.replace(/([\d]+)/, "$1,00"); } v = v.replace(/([\d]+)\.([\d]{1})$/, "$1,$20"); v = v.replace(/([\d]+)\.([\d]{2})$/, "$1,$2"); v = v.replace(/([\d]+)([\d]{3}),([\d]{2})$/, "$1.$2,$3"); return v; }; </script> no form (INPUT), fica assim: <div class="col-sm-2 invoice-col"> <label for="vlrUnit">Valor Unitário</label> <input type="text" id='vrUnit' name="vrUnit" class="form-control" maxlength="12" onkeypress="return(currencyFormat(this,'','.',event))" > </div> Espero ter ajudado. Renato
  7. Remazela

    PHP + CodeIgniter - Não Gera Relatório no Google Chrome

    Caro amigo Ygor Conforme mencionado para acrescentar as linhas dentro do __construct: public function __construct() { ini_set('display_errors',1); ini_set('display_startup_erros',1); error_reporting(E_ALL); parent::__construct(); if ((!session_id()) || (!$this->session->userdata('logado'))) { redirect('siscota/login'); } $this->load->model('Relatorios_model', '', true); $this->load->model('Usuarios_model', '', true); $this->load->model('Mapos_model', '', true); $this->data['menuRelatorios'] = 'Relatórios'; } Infelizmente o erro de: Falha ao carregar o Documento. <- ainda continua e não mostrou mais nada além desse erro. Grato, Renato
  8. Caros amantes da informática. Saudações Amigos, primeiramente peço desculpa por recorrer ao auxílio dos amigos. Estou estudando CodeIgniter e já me deparei com um problema que não entendo. Quando gero relatório no Chrome aparece um erro: FALHA AO TENTAR CARREGAR O DOCUMENTO. Obs.: no Mozila não dá esse erro e o Relatório é gerado. Instalei no mPdf na seguinte pasta: application/helpers/mpdf <-não sei se o caminho seria o correto. Caso alguém possa me indicar algum vídeo ou tutorial para entender melhor, ficarei muito grato. Os Código estão assim: mpdf_helper.php <?php if (!defined('BASEPATH')) { exit('No direct script access allowed'); } function pdf_create($html, $filename, $stream = TRUE, $landscape = FALSE) { require_once(APPPATH) . 'helpers/mpdf/mpdf.php'; if($landscape){ $mpdf = new mPDF('c', 'A4-L'); }else{ $mpdf = new mPDF('c', 'A4'); } $mpdf->WriteHTML($html); if ($stream) { $mpdf->Output($filename . '.pdf', 'I'); } else { $mpdf->Output('./uploads/temp/' . $filename . '.pdf', 'F'); return './uploads/temp/' . $filename . '.pdf'; } } ?> no controller está assim: <?php if (!defined('BASEPATH')) { exit('No direct script access allowed'); } class Relatorios extends CI_Controller{ public function __construct(){ parent::__construct(); if ((!session_id()) || (!$this->session->userdata('logado'))) { redirect('siscota/login'); } $this->load->model('Relatorios_model', '', true); $this->load->model('Usuarios_model', '', true); $this->load->model('Mapos_model', '', true); $this->data['menuRelatorios'] = 'Relatórios'; } public function index() { header('Location: ./'); } public function clientes() { if (!$this->permission->checkPermission($this->session->userdata('permissao'), 'rCliente')) { $this->session->set_flashdata('error', 'Você não tem permissão para gerar relatórios de clientes.'); redirect(base_url()); } $this->data['view'] = 'relatorios/rel_clientes'; $this->load->view('layout/topo', $this->data); } public function clientesCustom() { if (!$this->permission->checkPermission($this->session->userdata('permissao'), 'rCliente')) { $this->session->set_flashdata('error', 'Você não tem permissão para gerar relatórios de clientes.'); redirect(base_url()); } $dataInicial = $this->input->get('dataInicial'); $dataFinal = $this->input->get('dataFinal'); $data['clientes'] = $this->Relatorios_model->clientesCustom($dataInicial, $dataFinal); $this->load->helper('mpdf'); $html = $this->load->view('relatorios/imprimir/imprimirClientes', $data, true); pdf_create($html, 'relatorio_clientes' . date('d/m/y'), true); } public function clientesRapid() { if (!$this->permission->checkPermission($this->session->userdata('permissao'), 'rCliente')) { $this->session->set_flashdata('error', 'Você não tem permissão para gerar relatórios de clientes.'); redirect(base_url()); } $data['clientes'] = $this->Relatorios_model->clientesRapid(); $this->load->helper('mpdf'); $html = $this->load->view('relatorios/imprimir/imprimirClientes', $data, true); pdf_create($html, 'relatorio_clientes' . date('d/m/y'), TRUE); } } no model está assim: <?php class Relatorios_model extends CI_Model { function __construct() { parent::__construct(); } function get($table,$fields,$where='',$perpage=0,$start=0,$one=false,$array='array'){ $this->db->select($fields); $this->db->from($table); $this->db->limit($perpage,$start); if($where){ $this->db->where($where); } $query = $this->db->get(); $result = !$one ? $query->result() : $query->row(); return $result; } function add($table,$data){ $this->db->insert($table, $data); if ($this->db->affected_rows() == '1') { return TRUE; } return FALSE; } 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); } //Imprimir com mais detalhes public function clientesCustom($dataInicial = null,$dataFinal = null){ if($dataInicial == null || $dataFinal == null){ $dataInicial = date('Y-m-d'); $dataFinal = date('Y-m-d'); } $query = "SELECT * FROM clientes WHERE dataCadastro BETWEEN ? AND ?"; return $this->db->query($query, array($dataInicial,$dataFinal))->result(); } //Impressão modo rápido public function clientesRapid(){ $this->db->order_by('nomeCliente','asc'); return $this->db->get('clientes')->result(); } } Como faço para corrigir este erro ? Grato a todos, Renato
  9. Remazela

    [Resolvido] COMO COLOCAR LIKE % NO PDO

    Amigo Junior Troque essa linha: $sql = "SELECT* FROM produtos WHERE prod_nome LIKE '%$bsc%' OR prod_valor LIKE '%$bsc%' OR prod_categoria LIKE '%$bsc%' OR prod_marca LIKE '%$bsc%' order by prod_nome LIMIT 100"; por essa: $sql = "SELECT* FROM produtos WHERE prod_nome LIKE '%".$bsc."%' OR prod_valor LIKE '%".$bsc."%' OR prod_categoria LIKE '%".$bsc."%' OR prod_marca LIKE '%".$bsc."%' order by prod_nome LIMIT 100"; Observação: os LIKE devem está assim: LIKE '%" . algo . "%' Espero ter ajudado.
  10. Caros amigos saudações. Estou estudando CodeIgniter para alterar meus sistemas e me deparei com uma erro na URL. Como faço para tirar %20%20 da url ? http://localhost/sisvendas/%20%20manutencao/categorias O código está assim: no controllers, está assim: public function delete($id){ $dados = array( 'estado' => "0", ); $this->Categorias_model->update($id,$dados); echo "manutencao/categorias"; } no models, está assim: public function update($id,$dados){ $this->db->where("id",$id); return $this->db->update("categorias",$dados); } no footer, fiz assim: <script> $(document).ready(function () { var base_url= "<?php echo base_url();?>"; $(".btn-remove").on("click", function(e){ e.preventDefault(); if(! confirm("Deseja Realmente Excluir este Registro?")){ return 0; } $.ajax({ url: $(this).attr("href"), type:"POST", success: function(resp){ window.location.href = base_url + resp; } }); }); }) </script> Grato, Renato
  11. Remazela

    PHP + CodeIgniter url com espaço %20%20

    Amigo Não tem nenhum espaço. Como faria com JSON ?
  12. Remazela

    Enviar E-mail com PHP

    Caros amigos. Saudações amante de informática. Apenas uma dúvida: - para testar envio de e-mail com PHP eu preciso hospedar o sistema ou tem como testar sem estar hospedado ? Se não precisar qual o procedimento devo usar ? Grato, Renato
  13. Remazela

    Enviar E-mail com PHP

    Amigo Omar Grato por sua resposta. Apenas mais uma dúvida surgida: - caso depois hospeda o Sistema em um Provedor, a classe mencionada pelo amigo irá funcionar no Provedor ? - ou terei que utilizar outra forma, já que a Classe SMTP é apenas local (computador local) ? Grato, Renato
  14. Remazela

    Filtro de Busca traz informações confusa.

    Amigos. Por favor alguém pode me ajudar nesse filtro ? Grato.
  15. Caros amigos Estou com um problema de FILTRO em SQL. Preciso fazer um filtro que busque: DESCRIÇÃO DE PRODUTO e CATEGORIA. Quando faço apenas o filtro de DESCRIÇÃO DE PRODUTO - traz as informações certinho. O erro acontece quando acrescento também a CATEGORIA, traz todas os produtos de vários clientes ao mesmo tempo. Como faço para quando EXECUTAR a pesquisa, possa voltar no cliente(atual) que estiver locado. No meu Banco de Dados, utilizo o mesmo BANCO para vários CLIENTES. Abaixo o código que estou utilizando: <form name="frm_busca" id="frm_busca" action="" enctype="multipart/form-data" method="post"> <div class="box-body" style="margin-top:-22px;"> <div class="input-group alterate"> <!-- Input para digitar a pesquisa que deseja --> <input type="text" name="pesquisa" id="pesquisa" class="form-control" onkeyup="up(this)" placeholder="Digite a Descrição do Produto que deseja Pesquisar." disabled /> <span class="input-group-btn"> <!-- Esconder Button Limpar X Confirmar --> <button type="submit" name="limpa" id="limpa" value="Limpar" class="btn btn-primary btn-flat" title="Clique para Ativar a Pesquisa" > Pesquisar </button> <button type="submit" name="busca" id="busca" class="btn btn-success btn-flat" value="Pesquisar" style="font-size:14px; display: none;" title="Confirmar a Pesquisa"> Confirmar </button> </span> <span class="input-group-btn"> <a class="btn btn-danger btn-flat" name="limpa" id="limpa" value="Limpar" style="margin-left:5px;" title="Limpar e Atualizar a Tabela" onclick="frm_busca.action='painel.php?exe=admin-cliente/produto/produtos_lista'; frm_busca.submit()" />Limpar Pesquisa</a> </span> </div> </div> </form> <table id="tabProdLista" class="table table-bordered table-hover"> <?php $pesq = ""; $pesquisaGet = isset($_GET['pesquisa']) ? $_GET['pesquisa'] : false; $pesquisa = isset($_POST['pesquisa']) ? $_POST['pesquisa'] : $pesquisaGet; //Código do Cliente(ATUAL) LOGADO no Sistema $codClie = "$userClientes_clienteId"; //Filtro de Busca desejada - faz a pesquisa corretamente if( isset($_POST['busca']) && $_POST['busca'] == 'Pesquisar' ){ $pesq = "WHERE clientes_clienteId = '$codClie' AND produtoDescr LIKE '%".$pesquisa."%' ORDER BY produtoDescr ASC "; } else { $pesq ="WHERE clientes_clienteId = '$codClie' ORDER BY produtoDescr ASC "; } /*----------------------------------------------------- * Filtro de Busca com problema quando acrescentado * OR desc_categ LIKE '%".$pesquisa."%' */----------------------------------------------------- if( isset($_POST['busca']) && $_POST['busca'] == 'Pesquisar' ){ $pesq = "WHERE clientes_clienteId = '$codClie' AND produtoDescr LIKE '%".$pesquisa."%' OR desc_categ LIKE '%".$pesquisa."%' ORDER BY produtoDescr ASC "; } else { $pesq ="WHERE clientes_clienteId = '$codClie' ORDER BY produtoDescr ASC "; } //SQL no BcoDados $sql_pegaAtivos = "SELECT * FROM produto $pesq "; try{ $query_pegaAtivos = $conecta->prepare($sql_pegaAtivos); $query_pegaAtivos->execute(); $resultado_pegaAtivos = $query_pegaAtivos->fetchAll(PDO::FETCH_ASSOC); $count_pegaAtivos = $query_pegaAtivos->rowCount(PDO::FETCH_ASSOC); }catch(PDOexception $error_pegaAtivos){ echo 'Erro ao pegar ativos'; } foreach($resultado_pegaAtivos as $resAtivos){ $produtoId = $resAtivos['produtoId']; $codProdClie = $resAtivos['codProdClie']; $clientes_clienteId = $resAtivos['clientes_clienteId']; $desc_categ = $resAtivos['desc_categ']; $apres_unid = $resAtivos['apres_unid']; $produtoDescr = $resAtivos['produtoDescr']; $produtoStatus = $resAtivos['produtoStatus']; ?> <tr class="tr_Filtro"> <td align="center" width="70" height="10"><?php echo $codProdClie; ?></td> <td align="left" width="200" height="10"><?php echo $produtoDescr; ?></td> <td align="center" width="20" height="10"><?php echo $apres_unid; ?></td> <td align="left" width="100" height="10"><?php echo $desc_categ; ?></td> <td align="center" width="70"> <?php if ($produtoStatus == 1) { echo "<span style='color:#0000CC;'>Ativo</span>"; } else { echo "<span style='color:#ff0000;'>Inativo</span>"; } ?> </td> </tr> <?php } //Fechar o 1.Foreach ?> </table> Grato, Renato
  16. Remazela

    Gerar documento/relatório

    Caro Fabio Como vai ? Dê uma olhada nesse Tutorial em FPDF: http://www.fpdf.org/ Quando precisei gerar relatório me ajudou bastante.
  17. Remazela

    php PDO não está inserindo dados no BD

    Caro amigo Tenta assim config.php <?php define('HOST','localhost'); define('DB','nomeBancoDados'); define('USER','root'); define('PASS',''); $conexao = 'mysql:host='.HOST.'; dbname='.DB; try{ $conecta = new PDO($conexao, USER, PASS); $conecta->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); } catch(PDOexception $error_conecta) { echo htmlentities('Erro ao conectar'.$error_conecta->getMessage()); } ?> o insert <?php //Funcão strip_tags - elimina qual extensão (html, php e etc) //Função trim - elimina qualquer espaço em branco $campo1 = strip_tags(trim($_POST['campo1'])); $teste = strip_tags(trim($_POST['teste'])); //Define a tabela $sql_teste = 'INSERT INTO teste (campo1, campo2)'; $sql_teste .= 'VALUES (:campo1, :campo2)'; //Função [ .= ] - concatenar try{ //Antes de executar qualquer tarefa, verifica no Bco Dados Login e Senha $query_teste = $conecta->prepare($sql_teste); $query_teste->bindValue(':campo1',$campo1, PDO::PARAM_STR); $query_teste->bindValue(':campo2',$teste, PDO::PARAM_STR); //Executa a ação $query_teste->execute(); echo 'Cadastro com sucesso'; } catch (PDOException $error_insert) { echo 'Erro ao cadastrar '.$error_insert->getMessage(); } ?> Observa no seu código o seguinte: //Você criou a variável com letras minúsculas $nome = $_POST["nome"]; $email = $_POST["email"]; //Aqui você passou com letras maiúsculas $query_teste->bindValue(':NOME',$nome, PDO::PARAM_STR); $query_teste->bindValue(':EMAIL',$email, PDO::PARAM_STR); Para inserir, as variáveis tem que ter o nome idêntico do banco de dados.
  18. Caros amigos Estou com uma dificuldade em passar ORDENAÇÃO para Relatório usando FPDF. Gostaria de ordenar por: Código / Nome / Categoria / Status. Como consigo passar o tipo de ordenação para o Relatório da forma que gostaria que fosse impresso? O código abaixo da tela que estou usando para passar o tipo de ordenação que desejo. <?php include_once("header.php"); include_once("menu.php"); ?> <div class="content-wrapper"> <section class="content-header"> <h1> Relatório <small>Geral</small> </h1> <ol class="breadcrumb"> <li><a href="painel.php?exe=home/home"><i class="fa fa-dashboard"></i> Home</a></li> <li class="active">Relatório Geral</li> </ol> </section> <!-- Main content --> <section class="content"> <!-- Small boxes (Stat box) --> <div class="row"> <?php $sql_pegaCliente = "SELECT * FROM clientes "; try{ $query_pegaClientes = $conecta->prepare($sql_pegaCliente); $query_pegaClientes->execute(); $res_queryPegaCliente = $query_pegaClientes->fetchAll(PDO::FETCH_ASSOC); }catch(PDOexcetpion $error_clientes){ echo 'Erro ao seleciona os clientes!'; } foreach($res_queryPegaCliente as $resCliente){ $clienteEditaId = $resCliente['clienteId']; $clienteRazaoSocial = $resCliente['razaoSocial']; $clienteNome = $resCliente['nome']; $clienteStatus = $resCliente['clienteStatus']; $clienteCategoria = $resCliente['clienteCategoria']; $clienteEmail = $resCliente['email']; $clienteTelefone = $resCliente['telefone']; } ?> <div class="col-md-12"> <!-- general form elements --> <div class="box box-primary"> <div class="box-header with-border"> <h3 class="box-title">Relatório</h3> </div> <!-- /.box-header --> <!-- form start --> <form id="frmImpr" name="frmImpr" action="" method="post" enctype="multipart/form-data"> <div class="box-body"> <label for="radio1" class="radio-inline"> <input type="radio" name="optionsRadiosInline" id="radio1" onClick="habilitar()" value="option1" >Todos </label> <label for="radio2" class="radio-inline"> <input type="radio" name="optionsRadiosInline" id="radio2" onClick="habilitacao()" value="option2" >Selecionar </label> <br/><br/> <div class="form-group"> <select class="form-control" id="categoria" name="categoria" style="width:20%" required disabled> <option value="" selected>Selecione uma Categoria...</option> <option value="cliente" <?php if (!(strcmp("cliente", ""))) {echo "SELECTED";} ?>> Cliente</option> <option value="fornecedor" <?php if (!(strcmp("fornecedor", ""))) {echo "SELECTED";} ?>> Fornecedor</option> </select> </div> <div class="form-group"> <select class="form-control" id="status" name="status" style="width:20%" required disabled> <option value="" selected>Selecione um Status...</option> <option value="andamento" <?php if (!(strcmp("andamento", ""))) {echo "SELECTED";} ?>> Andamento</option> <option value="aprovado" <?php if (!(strcmp("aprovado", ""))) {echo "SELECTED";} ?>> Aprovado</option> <option value="cancelado" <?php if (!(strcmp("cancelado", ""))) {echo "SELECTED";} ?>> Cancelado</option> <option value="pendente" <?php if (!(strcmp("pendente", ""))) {echo "SELECTED";} ?>> Pendente</option> </select> </div> <div class="form-group"> <select class="form-control" id="ordenar" name="ordenar" style="width:20%" required disabled> <option value="" selected>Ordenar por...</option> <option <?php if ($clienteEditaId=='clienteId') echo 'SELECTED'; ?> value="clienteId" > Código</option> <option <?php if ($clienteRazaoSocial=='razaoSocial') echo 'SELECTED'; ?> value="razaoSocial" >Razão Social</option> </select> </div> <input class="btn bg-olive" type="submit" id="completo" name="completo" disabled value="Imprimir Completa" formtarget="_blank" title="Imprimir Relatório." onclick="frmImpr.action='painel.php?exe=admin/relatorio/imprRelat&ordem=<?php echo $ordenar; ?>';frmImpr.submit()" /> <button type="submit" id="parcial" class="btn btn-success" disabled>Parcial</button> </form> </div> </div> </section> </div> <?php include_once("footer.php");?> <!--Script para Validar o Formulário --> <script language="JavaScript" > function habilitar(){ if(document.getElementById('radio1').checked == true){ document.getElementById('categoria').disabled = true; document.getElementById('status').disabled = true; document.getElementById('ordenar').disabled = false; document.getElementById('parcial').disabled = true; document.getElementById('completo').disabled = false; } if(document.getElementById('radio1').checked == false){ document.getElementById('categoria').disabled = false; document.getElementById('status').disabled = false; document.getElementById('ordenar').disabled = true; document.getElementById('parcial').disabled = false; document.getElementById('completo').disabled = true; } } function habilitacao(){ if(document.getElementById('radio2').checked == true){ document.getElementById('categoria').disabled = false; document.getElementById('status').disabled = false; document.getElementById('ordenar').disabled = false; document.getElementById('completo').disabled = true; document.getElementById('parcial').disabled = false; } if(document.getElementById('radio2').checked == false){ document.getElementById('categoria').disabled = true; document.getElementById('status').disabled = true; document.getElementById('ordenar').disabled = true; document.getElementById('completo').disabled = false; document.getElementById('parcial').disabled = true; } } </script> Grato pela ajuda. Atenciosamente, Renato
  19. Remazela

    Dificuldade em Ordenar Relatório (FPDF) usando PHP

    Amigo. Mas como passaria para o relatório os parâmetros que desejo. Não entendi essa parte.
  20. Remazela

    programar por data para mudar status

    Caro amigo Marck Augusto Caso queira, cria uma função que toda vez que o seu Site for aberto pelo usuário, a função AlteraStatus sempre chamado primeiro. Segue um exemplo que possa utilizar. <?php //Alterar o Status da ancção para Analisar if($ancStatus == '1'){ //Pega o Horário Atual date_default_timezone_set('America/Sao_Paulo'); //Calcula a Data Final com a Data Atual $data_atual = date("Y-m-d"); $data_atual = strtotime($data_atual); $dataFim = strtotime($ancDtFim); $diferenca = $data_atual - $dataFim; $dias = floor($diferenca / 86400); $faltaDias = "{$dias}"; //Calcula a Hora Final com a Hora Atual $hora_atual = date("H:i:s"); $hora_atual = strtotime($hora_atual); $horaFim = strtotime($ancHrsFim); $diferenca = $hora_atual - $horaFim; $hora = floor($diferenca / 3600); $minutos = floor(($diferenca / 60) % 60); $segundos = floor($diferenca % 60); $faltaHora = "{$hora}:{$minutos}:{$segundos}"; if ($faltaDias == '0' && $faltaHora >= '0') { $ancStatus = '2'; $sql_anc = 'UPDATE anuncio SET ancStatus = :anctatus WHERE ancId = :ancId'; try{ $query_anc = $conecta->prepare($sql_anc); $query_anc->bindValue(':ancStatus',$ancStatus,PDO::PARAM_STR); $query_anc->bindValue(':ancId',$ancId,PDO::PARAM_STR); $query_anc->execute(); } catch(PDOexception $error_novaanc) { echo 'Erro'.$error_novaanc->getMessage(); } } } ?> Espero ter ajudado.
  21. Remazela

    php PDO não está inserindo dados no BD

    Caro amigo Um exemplo para INSERT em PDO. <!DOCTYPE html> <html> <head> <?php //Conexão com o Banco de Dados include"config.php"; ?> <meta charset="utf-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <title>PDO Insert</title> <link rel="stylesheet" href=""> </head> <body> <?php if(isset($_POST['enviar'])){ //Funcão strip_tags - elimina qual extensão (html, php e etc) //Função trim - elimina qualquer espaço em branco $campo1 = strip_tags(trim($_POST['campo1'])); $teste = strip_tags(trim($_POST['teste'])); //Define a tabela $sql_teste = 'INSERT INTO teste (campo1,campo2)'; $sql_teste .= 'VALUES (:campo1,:campo2)'; //Função [ .= ] - concatenar try{ //Antes de executar qualquer tarefa, verifica no Bco Dados Login e Senha $query_teste = $conecta->prepare($sql_teste); $query_teste->bindValue(':campo1',$campo1, PDO::PARAM_STR); $query_teste->bindValue(':campo2',$teste, PDO::PARAM_STR); //Executa a ação $query_teste->execute(); echo 'Cadastro com sucesso'; } catch (PDOException $error_insert) { echo 'Erro ao cadastrar '.$error_insert->getMessage(); } } ?> <form name="testando" action="" method="post" enctype="multipart/form-data"> <input type="text" name="campo1" /><br/> <input type="text" name="teste" /><br/> <input type="submit" name="enviar" value="Enviar" /><br/> </body> </html> Espero ter ajudado
  22. Caros amigos estou com um pequeno probleminha. Estou montando um Editor de Texto, mas gostaria de colocar no textarea um contador de caracteres. INFELIZMENTE não estou conseguindo. O editor de Texto está funcionando certinho, só precisaria do contador de caracteres. Abaixo o Código: <!-- no Formulário está assim --> <div class="form-group"> <textarea id="contMsg" name="contMsg" class="textarea" placeholder="Digite seu Texto." style="width: 100%; height: 130px; font-size: 14px; line-height: 18px; border: 1px solid #dddddd; padding: 10px;"> <p class="help-block">&nbsp;<small class="caracterFin" style="font-size:14px;"></small></p> </textarea> </div> <!-- Depois chamo o script assim --> <!-- Bootstrap WYSIHTML5-Text Editor --> <script> $(function () { $('.textarea').wysihtml5(); }); </script> <script language="JavaScript" > /*Número de caracteres permitido*/ $(document).on("input", "#contMsg", function() { var limite = 255; var informativo = " 255 caracteres."; var caracteresDigitados = $(this).val().length; var caracteresRestantes = limite - caracteresDigitados; if (caracteresRestantes <= 0) { var finMsg = $("textarea[name=finMsg]").val(); $("textarea[name=finMsg]").val(finMsg.substr(0, limite)); $(".caracterFin").text("Máximo permitido de " + informativo); } else { $(".caracterFin").text("Digitou " + caracteresDigitados + " de " + informativo); } }); </script> Obs.: se postei minha dúvida em post errado por favor me perdoa. Grato pela ajuda. Renato
  23. Remazela

    Contador de Caracteres não aparece na tela - PHP

    Realmente, mas corrigi o erro e continua não mostrando o contador de caracteres. <!-- CORRIGIDO --> <div class="form-group"> <textarea id="contMsg" name="contMsg" class="textarea" placeholder="Digite seu Texto." style="width: 100%; height: 130px; font-size: 14px; line-height: 18px; border: 1px solid #dddddd; padding: 10px;"> </textarea> <p class="help-block">&nbsp;<small class="caracterFin" style="font-size:14px;"></small></p> </div>
  24. Remazela

    Contador de Caracteres não aparece na tela - PHP

    Amigo Não deu certo.
  25. Remazela

    Contador de Caracteres não aparece na tela - PHP

    Pessoal alguém por favor, pode me dar uma saída para esse assunto. grato,
×

Important Information

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