Ir para conteúdo

violin101

Members
  • Total de itens

    197
  • Registro em

  • Última visita

Tudo que violin101 postou

  1. violin101

    PHP - Descriptografar Senha usando PASSWORD_HASH

    Obrigado amigo Entendi
  2. violin101

    PHP - Descriptografar Senha usando PASSWORD_HASH

    Caro amigo, saudações... Baseado nessa informação então não vale apena utilizar na Senha o PASSWORD_HASH para criptografar ?
  3. violin101

    Variavel indefinida: sexo

    Olá amigo, saudações... Tente desta forma: <label for="sexo" class="control-label">Sexo<span class="required">*</span></label> <div class="controls"> <select name="sexo" id="sexo" style="width:100%;" class="form-control"> <?php if ($result->sexo == 1) { $feminino = 'selected'; $masculino = ''; } else { $feminino = ''; $masculino = 'selected'; } ?> <option value="1" <?php echo $feminino; ?>>Feminino</option> <option value="2" <?php echo $masculino; ?>>Masculino</option> </select> </div> Espero ter ajudado.
  4. violin101

    Codeigniter - Como enviar múltiplos e-mails com PHPmailer

    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
  5. violin101

    PHPMailer com conta hotmail

    Caro Paulo, saudações... Tenta essa configuração, abaixo: <?php defined('BASEPATH') OR exit('No direct script access allowed.'); $config['useragent'] = 'PHPMailer'; // Mail engine switcher: 'CodeIgniter' or 'PHPMailer' $config['protocol'] = 'smtp'; // 'mail', 'sendmail', or 'smtp' $config['mailpath'] = '/usr/sbin/sendmail'; $config['smtp_host'] = 'smtp-mail.outlook.com'; $config['_smtp_auth'] = TRUE; // Whether to use SMTP authentication, boolean TRUE/FALSE. If this option is omited or if it is NULL, then SMTP authentication is used when both $config['smtp_user'] and $config['smtp_pass'] are non-empty strings. $config['smtp_user'] = 'seu_email@hotmail.com'; // Informe um e-mail válido para enviar e-mail $config['smtp_pass'] = 'sua_senha'; // Informe uma senha válida do seu e-mail informado acima $config['smtp_port'] = 587; $config['smtp_timeout'] = 30; // (in seconds) $config['smtp_crypto'] = 'tls'; // '' or 'tls' or 'ssl' $config['smtp_debug'] = 0; // PHPMailer's SMTP debug info level: 0 = off, 1 = commands, 2 = commands and data, 3 = as 2 plus connection status, 4 = low level data output. $config['debug_output'] = ''; // PHPMailer's SMTP debug output: 'html', 'echo', 'error_log' or user defined function with parameter $str and $level. NULL or '' means 'echo' on CLI, 'html' otherwise. $config['smtp_auto_tls'] = false; // Whether to enable TLS encryption automatically if a server supports it, even if `smtp_crypto` is not set to 'tls'. $config['smtp_conn_options'] = array(); // SMTP connection options, an array passed to the function stream_context_create() when connecting via SMTP. $config['wordwrap'] = true; $config['wrapchars'] = 76; $config['mailtype'] = 'html'; // 'text' or 'html' $config['charset'] = null; // 'UTF-8', 'ISO-8859-15', ...; NULL (preferable) means config_item('charset'), i.e. the character set of the site. $config['validate'] = true; $config['priority'] = 3; // 1, 2, 3, 4, 5; on PHPMailer useragent NULL is a possible option, it means that X-priority header is not set at all, see https://github.com/PHPMailer/PHPMailer/issues/449 $config['crlf'] = "\n"; // "\r\n" or "\n" or "\r" $config['newline'] = "\n"; // "\r\n" or "\n" or "\r" $config['bcc_batch_mode'] = false; $config['bcc_batch_size'] = 200; $config['encoding'] = '8bit'; // The body encoding. For CodeIgniter: '8bit' or '7bit'. For PHPMailer: '8bit', '7bit', 'binary', 'base64', or 'quoted-printable'. Espero ter ajudado. Atenciosamente, Cesar
  6. violin101

    Codeigniter - Como enviar múltiplos e-mails com PHPmailer

    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
  7. violin101

    PHP - Upload mudar nome do file

    Caros amigos. Consegui resolver. fiz algumas alterações: <?php // dados para o novo nome do arquivo $codigoCaptcha = substr(md5(time()) ,0, 10); $upload_conf = array( 'upload_path' => realpath('./assets/anexos'), 'allowed_types' => 'pdf|PDF', // formato permitido para anexo 'max_size' => 1024, 'file_name' => 'dcto('.$codClie.')-'.$codigoCaptcha, ); foreach ($_FILES['userfile'] as $key => $val) { $i = 1; foreach ($val as $v) { $field_name = "file_".$i; $_FILES[$field_name][$key] = $v; $i++; } //reinicia a biblioteca $this->upload->initialize($upload_conf); } ?>
  8. violin101

    PHP - Upload mudar nome do file

    Caros amigos membros do grupo, saudações... Gostaria de tirar uma dúvida com os amigos. Tenho uma rotina onde consigo efetuar o Download de arquivos para uma pasta dentro do sistema, o que preciso seria mudar o nome do arquivo, por exemplo: após selecionar o arquivo criado com o nome de: ESTOQUE.PDF gostaria de gravar na pasta de upload's com um novo nome, como por exemplo: cliente[1]-estoque.pdf. Onde poderia fazer essa alteração na rotina abaixo, para gravar o arquivo com um novo nome ? abaixo posto o fonte da rotina. <?php public function anexar() { $this->load->library('upload'); $this->load->library('image_lib'); $upload_conf = array( 'upload_path' => realpath('./assets/anexos'), 'allowed_types' => 'pdf|PDF|doc|DOC|docx|DOCX', // formatos permitidos para anexos de os 'max_size' => 1024, ); //Recebe a variável via POST $validade = $this->input->post('validade'); $this->upload->initialize($upload_conf); foreach ($_FILES['userfile'] as $key => $val) { $i = 1; foreach ($val as $v) { $field_name = "file_".$i; $_FILES[$field_name][$key] = $v; $i++; } } unset($_FILES['userfile']); $error = array(); $success = array(); foreach ($_FILES as $field_name => $file) { if (! $this->upload->do_upload($field_name)) { $error['upload'][] = $this->upload->display_errors(); } else { $upload_data = $this->upload->data(); if ($upload_data['is_image'] == 1) { // set the resize config $resize_conf = array( 'source_image' => $upload_data['full_path'], 'new_image' => $upload_data['file_path'].'thumbs/thumb_'.$upload_data['file_name'], 'width' => 200, 'height' => 125 ); $this->image_lib->initialize($resize_conf); if (! $this->image_lib->resize()) { $error['resize'][] = $this->image_lib->display_errors(); } else { $success[] = $upload_data; $this->load->model('Dados/Dadosclie_model'); $this->Dadosclie_model->anexar($this->input->post('idCli'), $this->input->post('descricao'), $validade, $upload_data['file_name'], base_url().'assets/anexos/', 'thumb_'.$upload_data['file_name'], realpath('./assets/anexos/')); } } else { $success[] = $upload_data; $this->load->model('Dados/Dadosclie_model'); $this->Dadosclie_model->anexar($this->input->post('idCli'), $this->input->post('descricao'), $validade, $upload_data['file_name'], base_url().'assets/anexos/', '', realpath('./assets/anexos/')); } } } if (count($error) > 0) { echo json_encode(array('result'=> false, 'mensagem' => 'Nenhum arquivo foi anexado.')); } else { echo json_encode(array('result'=> true, 'mensagem' => 'Arquivo(s) anexado(s) com sucesso .')); } } ?> Grato, Cesar
  9. violin101

    Valor decimal x quantidade = ???

    Olá, saudações... Não sei se é o seu caso, mas tente assim: $valor = floatval(str_replace(",",".",$precoProduto)); $subTotal = $qtdeItem * $valor; <?php echo 'R$ '.number_format($subTotal,2,",","."); ?>
  10. violin101

    MPDF - Imprimir 1 registro por página

    Caros amigos, membro do grupo. saudações... Primeiramente peço desculpa se estou postando minha dúvida na opção errada. Estou com uma dúvida e não estou conseguindo solucioná-la, fiz várias pesquisas mas não encontrei o que procuro. Tenho um Relatório em MPDF que imprime todos os registro juntos. <=== até aqui tudo bem. Gostaria de ter a opção de imprimir 1(um) registro por página. Alguém saberia me informar como faço isso ? Grato, Cesar
  11. violin101

    MPDF - Imprimir 1 registro por página

    Olá amigo Alaerte Gabriel saudações... Minha dúvida: onde devo colocar a função para fazer o SALTO de PÁGINA ? o meu controller para gerar o relatório está assim: <?php public function categoriasRapid() { $data['title'] = 'Relatório de Categorias'; $data['dados'] = $this->controle_model->getEmitente(); $data['topo'] = $this->load->view('admin/relatorios/imprimir/imprimirTopo', $data, true); $ordenar = $this->input->post('ordenar'); $data['categ'] = $this->Relatorios_model->categoriasRapid($ordenar); $html = $this->load->view('admin/relatorios/imprimir/printCategoriaRapid', $data, true); // carrega a library $this->load->library('mpdf'); // define o $mdpf $mpdf = $this->mpdf->method; // define o display mode $mpdf->SetDisplayMode('fullpage'); // carrega o css $stylesheet = file_get_contents(base_url().'templates/bower_components/bootstrap/dist/css/bootstrap.min.css'); $stylesheet = file_get_contents(base_url().'templates/bower_components/font-awesome/css/font-awesome.min.css'); $stylesheet = file_get_contents(base_url().'templates/bower_components/Ionicons/css/ionicons.min.css'); $stylesheet = file_get_contents(base_url().'templates/dist/css/skins/_all-skins.min.css'); $stylesheet = file_get_contents(base_url().'templates/bower_components/morris.js/morris.css'); $stylesheet = file_get_contents(base_url().'templates/bower_components/jvectormap/jquery-jvectormap.css'); $stylesheet = file_get_contents(base_url().'templates/bower_components/bootstrap-datepicker/dist/css/bootstrap-datepicker.min.css'); $stylesheet = file_get_contents(base_url().'templates/bower_components/bootstrap-daterangepicker/daterangepicker.css'); $stylesheet = file_get_contents(base_url().'templates/plugins/bootstrap-wysihtml5/bootstrap3-wysihtml5.min.css'); $stylesheet = file_get_contents(base_url().'templates/dist/css/AdminLTE.css'); // O parâmetro 1, diz que o conteúdo é um stylesheet $mpdf->WriteHTML($stylesheet, 1); // imprimir no formato paisagem $mpdf->AddPage('L'); $mpdf->WriteHTML($html); $mpdf->Output('Cotação Responder.pdf',"I"); } ?> Agradeço sua ajuda. Cesar
  12. violin101

    ENVIAR EMAIL COM ARQUIVOS ANEXOS VIA PHP

    Amigo tente assim: <!DOCTYPE html> <html lang="pt-br"> <head> <meta charset="UTF-8"> <title>Enviar e-mail com anexo</title> </head> <body> <!--Linha abaixo modificada - FORM--> <form id="form1" name="form1" method="POST" action="" enctype="multipart/form-data"> <table width="500" border="0" align="center" cellpadding="0" cellspacing="2"> <tr> <td align="right">Nome:</td> <td><input type="text" name="nome" id="nome" /></td> </tr> <tr> <td align="right">Assunto:</td> <td><input type="text" name="assunto" id="assunto" /></td> </tr> <tr> <td align="right">Mensagem:</td> <td><textarea name="mensagem" id="mensagem" cols="45" rows="5"></textarea></td> </tr> <tr> <td align="right">Anexo:</td> <td><input type="file" id="arquivo" name="arquivo" /></td> </tr> <tr> <td colspan="2" align="center"> <!--Linha abaixo modificada - BUTTON--> <button type="submit" name="execut" id="execut" class="btn btn-primary" value="Enviar" >Enviar</button> </td> </tr> </table> </form> <?php //Linha abaixo modificada if(isset($_POST['execut']) && $_POST['execut'] == 'Enviar'){ $nome = $_POST['nome']; $assunto = $_POST['assunto']; $mensagem = $_POST['mensagem']; $arquivo = $_FILES["arquivo"]; $corpoMSG = "<strong>Nome:</strong> $nome<br> <strong>Mensagem:</strong> $mensagem"; // chamada da classe require_once('class.phpmailer.php'); // instanciando a classe $mail = new PHPMailer(); // email do remetente $mail->SetFrom('remetente@dominio.com.br', 'remetente'); // email do destinatario $address = "destinatario@dominio.com.br"; $mail->AddAddress($address, "destinatario"); // assunto da mensagem $mail->Subject = $assunto; // corpo da mensagem $mail->MsgHTML($corpoMSG); // anexar arquivo $mail->AddAttachment($arquivo['tmp_name'], $arquivo['name'] ); if(!$mail->Send()) { echo "Erro: " . $mail->ErrorInfo; } else { echo "Mensagem enviada com sucesso!"; } } ?> </body> </html>
  13. violin101

    ENVIAR EMAIL COM ARQUIVOS ANEXOS VIA PHP

    Olá amigo, saudações... Troque essa linha: if($_GET['acao'] == 'enviar'){ por essa linha......: if($_POST['acao'] == 'enviar'){ acho que vai dar certo
  14. violin101

    Mostrar Meus Indiretos Sem o <br>

    Olá amigo, dê uma olhadinha nesse manual do PHP https://www.php.net/manual/pt_BR/function.implode.php Acho que vai te ajudar.
  15. violin101

    PHP 7.2.5 conflito com mPDF

    Caros amigos Me desculpa em recorrer a ajuda do grupo, mas estou enfrentando um problema que não estou conseguindo entender. Estou montando um relatório usando mPDF versão 6.1 com o PHP versão 7.2.5 Infelizmente estou com problema de: MESSAGE: ILLEGAL STRING OFFSET 'ID'. Como consigo resolver esse problema usando a versão do PHP 7.2.5 ? Grato, Cesar
  16. violin101

    Problema com acentos. Dois charset na mesma página?

    Olá Edison Já tentou assim: <!DOCTYPE html> <html lang="pt-br"> <head> <meta charset="utf-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <title>Seu_Titulo</title> </head> <body> ... </body> </html>
  17. violin101

    Problema com acentos. Dois charset na mesma página?

    Olá Edilson Tenta Criar seus form's desta forma: <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <meta http-equiv="content-language" content="pt-br" /> <title>SeuTitulo</title> </head> <body> ... </body> </html>
  18. violin101

    Mostrar Meus Indiretos Sem o <br>

    Caro amigo, tudo bem ? tente colocar desta forma '<br/>'
  19. violin101

    Problema com if

    Caro amigo Paulo saudações... Você pode criar uma máscara usando um JAVASCRIPT, conforme abaixo: <script language=javascript> //Função para Máscar de Telefone function fone(obj,prox) { switch (obj.value.length){ case 1: obj.value = "(" + obj.value; break; case 3: obj.value = obj.value + ")"; break; case 8: obj.value = obj.value + "-"; break; case 13: prox.focus(); break; } } //Função para Máscara de Celular function cel(obj,prox) { switch (obj.value.length){ case 1: obj.value = "(" + obj.value; break; case 3: obj.value = obj.value + ")"; break; case 5: obj.value = obj.value + "."; break; case 10: obj.value = obj.value + "-"; break; case 15: prox.focus(); break; } } //Função para Aceitar apenas números function Apenas_Numeros(caracter){ var nTecla = 0; if (document.all) { nTecla = caracter.keyCode; } else { nTecla = caracter.which; } if ((nTecla> 47 && nTecla <58) || nTecla == 8 || nTecla == 127 || nTecla == 0 || nTecla == 9 // 0 == Tab || nTecla == 13) { // 13 == Enter return true; } else { return false; } } </script> Espero ter ajudado. Cesar
  20. Caros amigos, saudações... Desculpa em recorrer ao auxílio dos amigos, mas estou com uma dúvida. Estou montando um Relatório .PDF usando FPDF e surgiu uma necessidade de imprimir Vários Registro por página. Por exemplo: o relatório trouxe do MySql 5 registro de clientes. Gostaria de imprimir cada registro por página. Alguém saberia de dizer como faço isso ? Obrigado, Cesar
  21. violin101

    Configurar mPDF - Codeigniter

    Caros amigos saudações... Por favor alguém tem conhecimento de algum site onde posso ler para Configurar o MPDF para gerar relatório em PDF ? Já fiz várias pesquisas e não tive sucesso. Observação: preciso criar uma TABELA com suas formatações. Estou usando FPDF infelizmente estou tendo muito problema para usar o MultCell na Tabela. Obrigado Cesar
  22. violin101

    Codeigniter - Problema em Gerar o Relatório em FPDF

    Amigos, Por favor, alguém saberia me ajudar ? Grato
  23. violin101

    Codeigniter - Problema em Gerar o Relatório em FPDF

    Caros amigos, saudações... Estou com o seguinte problema para Gerar um Relatório. O problema é o seguinte: --> quando o Sistema gera o Relatório traz todas as informações corretas, com exceção dos itens que Cada Cliente comprou, por exemplo: o Cliente Fulano comprou 3 itens..: caderno / lápis / caneta o Cliente Beltrano comprou 4 itens: borracha / régua / caneta / caderno o Cliente Ciclano comprou 2 itens.: apontador / caixa de lápis de cor Quando o Sistema gera o Relatório, traz todas as Informações de Cada Cliente com os seus dados corretamente, mas quando deve mostrar os ITENS que cada Cliente comprou, traz as informações tudo errada. O que o sistema mostra são os ITENS que o Cliente cadastrou em seu sistema para venda e não o que os Clientes compraram. Observação: a Controller e a Model estão corretas com todos os SQL / INNER JOIN. Abaixo posto o código que gero o Relatório. <?php if(!defined('BASEPATH')) exit('No direct script access allowed'); //Função para limitar o tamanho de caracteres function limitar($string, $tamanho, $encode = 'UTF-8') { $string = mb_substr($string, 0, $tamanho, $encode); return $string; } class PDF extends FPDF{ // Page header function Header(){ $corLin = $this->SetFillColor(144, 144, 144); $this->Image('assets/img/img_logo.png',5,5,15); $this->SetFont('Arial', '', 9); $this->SetTextColor(35,35,35); $this->Cell(285, 5, date('d/m/Y').' - '.date('H:i:s'), 0,0,'R'); $this->Ln(); $this->SetFont('Arial','B',18); $this->SetTextColor(10,10,88); $this->Cell(270,5,utf8_decode('VENDAS'),0,0,'C'); $this->Ln(7); $this->Cell(80,5,'',0,0); $this->SetFont('Arial','',12); $this->SetTextColor(35,35,35); $this->Cell(10,5,utf8_decode('por:'),0,0,'L'); $this->SetFont('Arial','B',12); $this->Cell(30,5, utf8_decode('Todas'),0,0,'L'); $this->Ln(10); $this->Cell(1,0,'',0,0); $this->Cell(280,1,$corLin,0,0,'',1); //Muda a cor da linha $this->Ln(); } function titulo($vdas){ if(!$vdas){ $this->Ln(15); $this->SetFont('Arial','B',18); $this->SetTextColor(0,0,0); $this->Cell(21,5,'',0,0); $this->Cell(21,5,utf8_decode('Atenção:'),0,0,'L'); $this->Ln(12); $this->SetFont('Arial','B',16); $this->SetTextColor(201,7,7); $this->Cell(21,5,'',0,0); $this->Cell(21,5,utf8_decode('Nenhum Registro foi encontrado na Base de Dados.'),0,0,'L'); $this->SetTextColor(0,0,0); $this->Ln(9); } else { $corLin = $this->SetFillColor(33, 160, 33); foreach($vdas as $ct){ $this->Ln(2); $this->Cell(2,5,'',0,0); $this->SetFont('Arial','',10); $this->Cell(23,10,utf8_decode('Razão Social:'),0,0,'L'); $this->SetFont('Arial','B',10); $this->Cell(200,10, utf8_decode($ct->nomeCliente),0,0,'L'); $this->Ln(7); $this->Cell(2,5,'',0,0); $this->SetFont('Arial','',10); $this->Cell(30,10,utf8_decode('Título da Cotação:'),0,0,'L'); $this->SetFont('Arial','B',10); $this->Cell(200,10, utf8_decode($ct->vendaTitulo),0,0,'L'); $this->Cell(2,5,'',0,0); $this->SetFont('Arial','',10); $this->Cell(21,10,utf8_decode('Cotação nº.:'),0,0,'L'); $this->SetFont('Arial','B',10); $this->Cell(25,10,$ct->vendaNumber,0,0,'L'); $this->SetTextColor(0,0,0); if($ct->vendaObservacao != "") { $this->Ln(-3); $this->Cell(2,5,'',0,0); $this->SetFont('Arial','',10); $this->Cell(33,10,utf8_decode('Observação:'),0,0,'L'); $this->SetFont('Arial','B',10); $this->Ln(2.5); //Defina altura da Célula $this->SetX(33); //Fixa a posição INÍCIO do texto $this->MultiCell(252,5,utf8_decode($ct->vendaObservacao),0,'J', 0); $this->Ln(1); } $this->Ln(3); $this->Cell(1,5,'',0,0); $corLin = $this->SetFillColor(33, 160, 33); $this->Cell(280,1,$corLin,0,0,'',1); //Muda a cor da linha $this->Ln(3); }//Fim Foreach }//Fim do 1º.IF } function conteudo($clients,$itens){ if(!$clients){ $this->Ln(15); $this->SetFont('Arial','B',18); $this->SetTextColor(0,0,0); $this->Cell(21,5,'',0,0); $this->Cell(21,5,utf8_decode('Atenção:'),0,0,'L'); $this->Ln(12); $this->SetFont('Arial','B',16); $this->SetTextColor(201,7,7); $this->Cell(21,5,'',0,0); $this->Cell(21,5,utf8_decode('Nenhum Registro foi encontrado na Base de Dados.'),0,0,'L'); $this->SetTextColor(0,0,0); $this->Ln(9); } else { foreach($clients as $fr){ //Verifica se o campo COMPLEMENTO existe dados informados if($fr->complCl == ""){ $compl = ''; } else { $compl = ' - '.$fr->complCl; } $this->Ln(2); $this->Cell(2,5,'',0,0); $this->SetFont('Arial','',9); $this->Cell(20,10,utf8_decode('Código:'),0,0,'L'); $this->Cell(180,10,utf8_decode('Razão Social:'),0,0,'L'); $this->Cell(45,10,utf8_decode('CNPJ:'),0,0,'L'); $this->Cell(34,10,utf8_decode('Inscrição Estadual:'),0,0,'L'); $this->Ln(3.5); $this->Cell(2,5,'',0,0); $this->SetFont('Arial','B',9); $this->Cell(20,10,str_pad($fr->idClientes,'5','0', STR_PAD_LEFT),0,0,'L'); $this->Cell(180,10,utf8_decode($fr->nomeCliente),0,0,'L'); $this->Cell(45,10,utf8_decode($fr->cnpj),0,0,'L'); $this->Cell(34,10,utf8_decode($fr->inscrEst),0,0,'L'); $this->Ln(4); $this->Cell(2,5,'',0,0); $this->SetFont('Arial','',9); $this->Cell(130,10,utf8_decode('Endereço:'),0,0,'L'); $this->Cell(70,10,utf8_decode('Bairro:'),0,0,'L'); $this->Cell(54,10,utf8_decode('Cidade/UF:'),0,0,'L'); $this->Cell(30,10,utf8_decode('CEP:'),0,0,'L'); $this->Ln(3.5); $this->Cell(2,5,'',0,0); $this->SetFont('Arial','B',9); $this->Cell(130,10,utf8_decode($fr->enderecoCl).', n.'.$fr->numeroCl.utf8_decode($compl),0,0,'L'); $this->Cell(70,10,utf8_decode($fr->bairroCl),0,0,'L'); $this->Cell(54,10,utf8_decode($fr->cidadeCl.' / '.$fr->estadoCl),0,0,'L'); $this->Cell(30,10,$fr->cepCl,0,0,'L'); $this->Ln(4); $this->Cell(2,5,'',0,0); $this->SetFont('Arial','',9); $this->Cell(25,10,utf8_decode('Telefone:'),0,0,'L'); $this->Cell(105,10,utf8_decode('E-mail:'),0,0,'L'); $this->Cell(30,10,utf8_decode('Prazo de Entrega:'),0,0,'L'); $this->Cell(118,10,utf8_decode('Condição de Pagamento'),0,0,'L'); $this->Ln(3.5); $this->Cell(2,5,'',0,0); $this->SetFont('Arial','B',9); $this->Cell(25,10,$fr->telefoneCl,0,0,'L'); $this->Cell(105,10,utf8_decode($fr->emailCl),0,0,'L'); $this->Cell(30,10,utf8_decode($fr->przEntr).' - dia(s)',0,0,'L'); $this->Cell(118,10,$fr->descricao.' - dias',0,0,'L'); if($fr->obsFatur != NULL || $fr->refVenda != NULL) { $this->Ln(5); $this->Cell(2,5,'',0,0); $this->SetFont('Arial','',9); $this->Cell(280,10,utf8_decode('Observação:'),0,0,'L'); $this->SetFont('Arial','B',9); $this->Ln(2.5); //Defina altura da Célula $this->SetX(33); //Fixa a posição INÍCIO do texto $this->MultiCell(252,5,utf8_decode($fr->obsFatur).' '.utf8_decode($fr->refVenda),0,'J', 0); $this->Ln(2); } else { $this->Ln(); } //Monta a Tabela $this->Ln(1); $this->SetFillColor(107, 181, 148); $this->SetDrawColor(160,160,160); //Muda a Cor das Bordas $this->SetFont('Arial','B',9); $this->Cell(5,5,utf8_decode('#'),0,0,'C',1); $this->Cell(15,5,utf8_decode('Código'),0,0,'C',1); $this->Cell(95,5,utf8_decode('Descrição'),0,0,'C',1); $this->Cell(45,5,'Marca',0,0,'C',1); $this->Cell(17,5,'ESP',0,0,'C',1); $this->Cell(25,5,'Qtde',0,0,'C',1); $this->Cell(35,5,'Vr. Unit.',0,0,'C',1); $this->Cell(40,5,'Vr. Total',0,0,'C',1); $this->Ln(); /* * O erro acontece apartir dessas Linhas de Comando */ $soma = 0; foreach($itens->result() as $ds){ $total = $ds->respQtde * $ds->respVlrunit; $soma += $total; $this->SetFont('Arial','',8); $this->Cell(5,6,$ds->clientes_idClientes,1,0,'C'); $this->Cell(15,6,$ds->codProduto,1,0,'C'); $this->Cell(95,6,limitar(utf8_decode($ds->prdDesc),50),1,0,'L'); $this->Cell(45,6,limitar(utf8_decode($ds->respMarca),25),1,0,'L'); $this->Cell(17,6,$ds->respEspecie,1,0,'C'); $this->Cell(25,6,$ds->respQtde,1,0,'C'); $this->Cell(35,6,number_format($ds->respVlrunit, 2, ",", "."),1,0,'R'); $this->Cell(40,6,number_format($total, 2, ",", "."),1,0,'R'); $this->Ln(); } //Total dos Itens que cada Fornecedor Ganhou $this->Ln(1); $this->SetFillColor(217, 213, 213); $this->SetTextColor(0,0,0); $this->SetFont('Arial','B',9); $this->Cell(237,6,'Total: ',1,0,'R',1); $this->SetFont('Arial','B',9); $this->Cell(40,6, number_format($soma, 2, ",", "."),1,0,'R',1); $this->Ln(5); }//Fim do Foreach-forn }//Fim do 1.IF } // Page footer function Footer(){ $this->SetY(-15); $this->SetFont('Arial','',9); $this->Cell(0,10,utf8_decode('WEB sistemas'),0,0,'L'); $this->SetFont('Arial','B',10); $this->Cell(0,10,$this->PageNo(),0,0,'R'); } } // Instanciation of inherited class $pdf = new PDF(); $pdf->AliasNbPages(); $pdf->SetTitle(utf8_decode('Vendas')); $pdf->AddPage('L','A4',0); $pdf->SetFont('Times','',12); $pdf->titulo($vdas); $pdf->conteudo($clients,$itens); $pdf->Output('Vendas_encerrada.'.'pdf',"I"); ?> Tentei adicionar essa linhas de Comando, mas infelizmente o Sistema acusa erro nesse comando $this->db->query principalmente em ->db. Não entendi o porque desse erro. <?php $query = $this->db->query("SELECT ct.idVendas, ct.clientes_idClientes, ct.respEspecie, ct.respMarca, ct.respAnalise, ct.respQtde, ct.respIdvda, ct.respProduto, pr.idProdutos, pr.codPrdClie, pr.prdDescr, pr.clientes_idClientes FROM vendas ct INNER JOIN produtos pr ON pr.codPrdClie = ct.respProduto WHERE ct.clientes_idClientes = '$clie' AND ct.respIdvda = '$cotnum' AND ct.respAnalise = '1' ORDER BY ct.respProduto "); foreach ($query->result() as $row){ $idrp = $row->idVendas; $codg = $row->codPrdClie; $desc = $row->prdDescr; $espc = $row->respEspecie; $qtde = $row->respQtde; $marc = $row->respMarca; } ?> Agradeço a todos. Atenciosamente, Cesar
  24. violin101

    Habilitar botão ao marcar o checkbox

    Olá, saudações... Você pode fazer assim <script> function HabilDesab(){ if(document.getElementById('btnhab').checked == true){ document.getElementById('enviar').disabled = "" } if(document.getElementById('btnhab').checked == false){ document.getElementById('enviar').disabled = "disabled" } } </script> <form name="form1"> <input type="checkbox" name="btnhab" id="btnhab" onClick="HabilDesab()"> <input type="button" name="enviar" id="enviar" value="Enviar" disabled> </form> Espero ter ajudado Cesar
  25. violin101

    mostrar cliente <option>

    Olá amigo, saudações... Para adicionar você pode fazer assim: <div class="col-lg-4"> <label for="unidadesId" class="control-label">Unidade de Medida<span class="required">*</span></label> <select name="unidadesId" id="unidadesId" style="width:100%;" class="form-control"> <option value="">Selecione uma opção</option> <?php foreach ($unidades as $un) { echo '<option value="'.$un->apresUni.'">'.$un->unidade.'</option>'; } ?> </select> </div> Quando for alterar pode fazer assim: <div class="col-lg-4"> <label for="unidadesId" class="control-label">Unidade de Medida<span class="required">*</span></label> <select name="unidadesId" id="unidadesId" style="width:100%;" class="form-control"> <?php foreach ($unidades as $un) { if ($result->prdUnid == $un->apresUni) { $selected = 'selected'; } else { $selected = ''; } echo '<option value="'.$un->apresUni.'"'.$selected.'>'.$un->unidade.'</option>'; } ?> </select> </div> Espero ter ajudado. Cesar
×

Informação importante

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