Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

alissong

erro ao gerar pdf com a classe mpdf

Recommended Posts

arquivo -> rel_analise_mpdf.php
<?php
// bd.php deve conter as funções para se conectar no banco de dados
 require ("verifica.php");
 include("conexao/bdinc.php"); 

// Fecha conexão

// Passando data do banco "AAAA-MM-DD" para "DD/MM/AAAA"
function mostraData ($data_emissao) {
if ($data_emissao!='') {
return (substr($data_emissao,8,2).'/'.substr($data_emissao,5,2).'/'.substr($data_emissao,0,4));
}
else { return ''; }
}
// Fecha função para data

// busca os dados no banco de dados

$cod = $_GET["id"];
$sql = "SELECT * FROM analise WHERE id = '$cod'";
$resultado = mysqli_query($conn,$sql);
while ($linha = mysqli_fetch_array($resultado)){
$cod = $linha["id"];
$fatura_nf = $linha["fatura_nf"];
$data_emissao = mostraData($linha["data_emissao"]);
$valor_nf = $linha["valor_nf"];
$valor_nf = number_format($valor_nf, 2, ',','.');
$n_contrato = $linha["n_contrato"];
$cnpj_cpf = $linha["cnpj_cpf"];
$quesito_1 = $linha["quesito_1"];
$opcao_1 = $linha["opcao_1"];
$ocorrencia_1 = $linha["ocorrencia_1"];
$quesito_2 = $linha["quesito_2"];
$opcao_2 = $linha["opcao_2"];
$ocorrencia_2 = $linha["ocorrencia_2"];
$quesito_3 = $linha["quesito_3"];
$opcao_3 = $linha["opcao_3"];
$ocorrencia_3 = $linha["ocorrencia_3"];
$quesito_4 = $linha["quesito_4"];
$opcao_4 = $linha["opcao_4"];
$ocorrencia_4 = $linha["ocorrencia_4"];
$quesito_5 = $linha["quesito_5"];
$opcao_5 = $linha["opcao_5"];
$ocorrencia_5 = $linha["ocorrencia_5"];
$quesito_6 = $linha["quesito_6"];
$opcao_6 = $linha["opcao_6"];
$ocorrencia_6 = $linha["ocorrencia_6"];
$quesito_7 = $linha["quesito_7"];
$opcao_7 = $linha["opcao_7"];
$ocorrencia_7 = $linha["ocorrencia_7"];
$quesito_8 = $linha["quesito_8"];
$opcao_8 = $linha["opcao_8"];
$ocorrencia_8 = $linha["ocorrencia_8"];
$quesito_9 = $linha["quesito_9"];
$opcao_9 = $linha["opcao_9"];
$ocorrencia_9 = $linha["ocorrencia_9"];
$quesito_10 = $linha["quesito_10"];
$opcao_10 = $linha["opcao_10"];
$ocorrencia_10 = $linha["ocorrencia_10"];
$quesito_11 = $linha["quesito_11"];
$opcao_11 = $linha["opcao_11"];
$ocorrencia_11 = $linha["ocorrencia_11"];
$quesito_12 = $linha["quesito_12"];
$opcao_12 = $linha["opcao_12"];
$ocorrencia_12 = $linha["ocorrencia_12"];
$quesito_13 = $linha["quesito_13"];
$opcao_13 = $linha["opcao_13"];
$ocorrencia_13 = $linha["ocorrencia_13"];
$quesito_14 = $linha["quesito_14"];
$opcao_14 = $linha["opcao_14"];
$ocorrencia_14 = $linha["ocorrencia_14"];
$quesito_15 = $linha["quesito_15"];
$opcao_15 = $linha["opcao_15"];
$ocorrencia_15 = $linha["ocorrencia_15"];
$quesito_16 = $linha["quesito_16"];
$opcao_16 = $linha["opcao_16"];
$ocorrencia_16 = $linha["ocorrencia_16"];
$quesito_17 = $linha["quesito_17"];
$opcao_17 = $linha["opcao_17"];
$ocorrencia_17 = $linha["ocorrencia_17"];
$quesito_18 = $linha["quesito_18"];
$opcao_18 = $linha["opcao_18"];
$ocorrencia_18 = $linha["ocorrencia_18"];
$quesito_19 = $linha["quesito_19"];
$opcao_19 = $linha["opcao_19"];
$ocorrencia_19 = $linha["ocorrencia_19"];
$quesito_20 = $linha["quesito_20"];
$opcao_20 = $linha["opcao_20"];
$ocorrencia_20 = $linha["ocorrencia_20"];
$quesito_21 = $linha["quesito_21"];
$opcao_21 = $linha["opcao_21"];
$ocorrencia_21 = $linha["ocorrencia_21"];
$quesito_22 = $linha["quesito_22"];
$opcao_22 = $linha["opcao_22"];
$ocorrencia_22 = $linha["ocorrencia_22"];
}
// Captura o usuario logado no sistema e IP
$usuario = $_SESSION['login'];
$usuario = ucfirst($_SESSION['login']);
$ip = $_SERVER["REMOTE_ADDR"];


$html= '
<HTML>
<BODY>
<table border="1" width="100%">
<tr>
<td width="60%" align ="center" colspan="4"><label>ANÁLISE CONTÁBIL DA NFS-e :'.$fatura_nf.'</label></td>
<td width="30%"><label>Usuário</label></td>
<td width="10%" align ="left" colspan="2"><label>'.$usuario.'</label></td>
</tr>
<tr>
  <td width="30%"><label>Fatura/Nota Fiscal</label></td>
  <td width="10%" align ="right">'.$fatura_nf.'</td>
  <td width="30%"><label>Data Fatura/Nota Fiscal</label></td>
  <td width="10%" align ="right">'.$data_emissao.'</td>
  <td width="30%" align ="left" rowspan="2"><label>Valor da Fatura/Nota Fiscal</label></td>
  <td width="20%" align ="right" rowspan="2">'.$valor_nf.'</td>
</tr>
<tr>
  <td width="60%" ><label>N° Contrato</label></td>
  <td width="10%" align ="right" >' . $n_contrato . '</td>
  <td width="40%" align ="left"  ><label>CNPJ da Contratada</label></td>
  <td width="20%" align ="right" >' .$cnpj_cpf. '</td>
</tr>
<tr>
  <td width="60%"><label><b> Documentação que deve acompanhar a Nota Fiscal de prestação de serviços continuados</b></label></td>
  <td width="5%" align ="center"><label><b>Selecione a opção</b></label></td>
  <td width="35%" align ="center" colspan="4"><label><b>Descrição da Ocorrência</b></label></td>
</tr>
<tr>
  <td width="60%">1. Nota Fiscal com as seguintes informações: descrição do serviço, competência da nota, n° da Licitação e n° do Contrato ?</td>
  <td width="5%" align ="center">' . $opcao_1 . '  </td>
  <td width="35%" colspan="4" style="width:720px;height:35px;">' . $ocorrencia_1 . '</td>
</tr>
<tr>
  <td width="60%">2. Planilha contendo as seguintes informações: nomes completos dos empregados, funções exercidas, dias efetivamente trabalhados, horas extras
trabalhadas, férias, licenças, faltas e ocorrências (n° de terceirizados por função deve coincidir com o previsto no contrato) ?</td>
  <td width="5%" align ="center">' . $opcao_2 . '   </td>
  <td width="35%" colspan="4" style="width:720px;height:35px;">' . $ocorrencia_2 . '</td>
</tr>
<tr>
  <td width="60%">3. Cópia da Folha de Pagamento dos empregados ?</td>
  <td width="5%" align ="center">' . $opcao_3 . '</td>
  <td width="35%" colspan="4" style="width:720px;height:35px;">' . $ocorrencia_3 . '</td>
</tr>
<tr>
  <td width="60%">4. Cópia do depósito bancário ou relação bancária de pagamento dos empregados (deve estar previsto no contrato) ?</td>
  <td width="5%" align ="center">' . $opcao_4 . '</td>
  <td width="35%" colspan="4" style="width:720px;height:35px;">' . $ocorrencia_4 . '</td>
</tr>
<tr>
  <td width="60%">5. Cópia do Protocolo de Envio de Arquivos, emitido pela Conectividade Social (GFIP) ?</td>
  <td width="5%" align ="center">' . $opcao_5 . '</td>
  <td width="35%" colspan="4" style="width:720px;height:35px;">' . $ocorrencia_5 . '</td>
</tr>
<tr>
  <td width="60%">6. Cópia da Guia de Recolhimento do FGTS (GRF) com a autenticação mecânica ou acompanhada do comprovante de recolhimento bancário ou o
comprovante emitido quando recolhimento for efetuado pela Internet ?</td>
  <td width="5%" align ="center">' . $opcao_6 . '</td>
  <td width="35%" colspan="4" style="width:720px;height:35px;">' . $ocorrencia_6 . '</td>
</tr>
<tr>
  <td width="60%">7. Cópia da Relação dos Trabalhadores Constantes do Arquivo SEFIP (RE) ?</td>
  <td width="5%" align ="center">' . $opcao_7 . '</td>
  <td width="35%" colspan="4" style="width:720px;height:35px;">' . $ocorrencia_7 . '</td>
</tr>
<tr>
  <td width="60%">8. Cópia da Guia de Recolhimento Rescisório do FGTS, quando houver rescisão sem justa causa ?</td>
  <td width="5%" align ="center">' . $opcao_8 . '</td>
  <td width="35%" colspan="4" style="width:720px;height:35px;">' . $ocorrencia_8 . '</td>
</tr>
<tr>
  <td width="60%">9. Cópia do Termo de Rescisão, quando houver rescisão do contrato do trabalhador ?</td>
  <td width="5%" align ="center">' . $opcao_9 . '</td>
  <td width="35%" colspan="4" style="width:720px;height:35px;">' . $ocorrencia_9 . '</td>
</tr>
<tr>
  <td width="60%">10. Cópia do Comprovante de Declaração à Previdência ?</td>
  <td width="5%" align ="center">' . $opcao_10 . '</td>
  <td width="35%" colspan="4" style="width:720px;height:35px;">' . $ocorrencia_10 . '</td>
</tr>
<tr>
  <td width="60%">11. Cópia da Guia da Previdência Social (GPS) com a autenticação mecânica ou acompanhada do comprovante de recolhimento bancário ou o comprovante emitido
quando recolhimento for efetuado pela Internet ?</td>
  <td width="5%" align ="center">' . $opcao_11 . '</td>
  <td width="35%" colspan="4" style="width:720px;height:35px;">' . $ocorrencia_11 . '</td>
</tr>
<tr>
  <td width="60%">12. Comprovante de Recolhimento do Imposto Sobre Serviço de Qualquer Natureza - ISSQN, exceto se o órgão ou entidade efetivar a devida retenção ?</td>
  <td width="5%" align ="center">' . $opcao_12 . '</td>
  <td width="35%" colspan="4" style="width:720px;height:35px;">' . $ocorrencia_12 . '</td>
</tr>
<tr>
  <td width="60%">13. Cópia do Comprovante de Recolhimento do Imposto Sobre Serviço de Qualquer Natureza - ISSQN, exceto se o órgão ou entidade efetivar a devida retenção ?</td>
  <td width="5%" align ="center">' . $opcao_13 . '</td>
  <td width="35%" colspan="4" style="width:720px;height:35px;">' . $ocorrencia_13 . '</td>
</tr>
<tr>
  <td width="60%">14. Cópia da Certidão Negativa de Débito junto ao INSS (CND), a Certidão Negativa de Débitos de Tributos e Contribuições Federais e o Certificado de
Regularidade do FGTS (CRF), sempre que expire o prazo de validade ?</td>
  <td width="5%" align ="center">' . $opcao_14 . '</td>
  <td width="35%" colspan="4" style="width:720px;height:35px;">' . $ocorrencia_14 . '</td>
</tr>
<tr>
  <td width="60%">15. Cópia da Folha ponto dos empregados: em caso de faltas injustificadas do empregado, deve a fatura conter o respectivo desconto ?</td>
  <td width="5%" align ="center">' . $opcao_15 . '</td>
  <td width="35%" colspan="4" style="width:720px;height:35px;">' . $ocorrencia_15 . '</td>
</tr>
<tr>
  <td width="60%">16. Comprovante de fornecimento de vale-transporte aos empregados de acordo com os dias efetivamente trabalhados (onde houver cartão deve ser apresentado
cópia do cartão e comprovante da recarga do mesmo pela empresa) ?</td>
  <td width="5%" align ="center">' . $opcao_16 . '</td>
  <td width="35%" colspan="4" style="width:720px;height:35px;">' . $ocorrencia_16 . '</td>
</tr>
<tr>
  <td width="60%">17. Comprovante de pagamento do auxílio alimentação aos empregados ?</td>
  <td width="5%" align ="center">' . $opcao_17 . '</td>
  <td width="35%" colspan="4" style="width:720px;height:35px;">' . $ocorrencia_17 . '</td>
</tr>
<tr>
  <td width="60%">18. Comprovante dos recibos de pagamento de autônomos - RPA ou cópia dos demais documentos se o empregado substituto tiver vínculo empregatício com a
empresa (nos casos de substituição do empregados) ?</td>
  <td width="5%" align ="center">' . $opcao_18 . '</td>
  <td width="35%" colspan="4" style="width:720px;height:35px;">' . $ocorrencia_18 . '</td>
</tr>
<tr>
  <td width="60%">19. Consultar a situação da empresa junto ao SICAF, SN, TST, PT imprimir e anexar à Nota Fiscal ?</td>
  <td width="5%" align ="center">' . $opcao_19 . '</td>
  <td width="35%" colspan="4" style="width:720px;height:35px;">' . $ocorrencia_19 . '</td>
</tr>
<tr>
  <td width="60%">20. Consultar contrato no SIASG, seguro garantia e vigência do seguro ?</td>
  <td width="5%" align ="center">' . $opcao_20 . '</td>
  <td width="35%" colspan="4" style="width:720px;height:35px;">' . $ocorrencia_20 . '</td>
</tr>
<tr>
  <td width="60%">21. O valor da NF é o mesmo do valor mensal do contrato ?</td>
  <td width="5%" align ="center">' . $opcao_21 . '</td>
  <td width="35%" colspan="4" style="width:720px;height:35px;">' . $ocorrencia_21 . '</td>
</tr>
<tr>
  <td width="60%">22. DIVS, INSS E ISSQN foram calculados ?</td>
  <td width="5%" align ="center">' . $opcao_22 . '</td>
  <td width="35%" colspan="4" style="width:720px;height:35px;">' . $ocorrencia_22 . '</td>
</tr>
</table>
</BODY>
</HTML>
';

// Fecha o código HTML

include("mpdf/mpdf.php");

//É fundamental definir o TIMEZONE de nossa região para que não tenhamos problemas com a geração.
date_default_timezone_set('America/Sao_Paulo');

$mpdf=new mPDF('c','A4'); 

// coloca o titulo no arquivo
$mpdf->SetTitle('ANÁLISE CONTÁBIL DA NFS-e');

$mpdf->SetDisplayMode('fullpage');

$mpdf->list_indent_first_level = 1;	// 1 or 0 - whether to indent the first level of a list

// coloca o rodape no arquivo
$mpdf->SetFooter("{DATE j/m/Y H:i}|Pagina {PAGENO} de {nb}|$ip/contabilidade");

// incorpora o corpo ao PDF na posição 2 e deverá ser interpretado como footage. Todo footage é posicao 2 ou 0(padrão).
$html = mb_convert_encoding($html, 'UTF-8', 'UTF-8');
$mpdf->WriteHTML($html,2);

// define um nome para o arquivo PDF
$arquivo = $fatura_nf.'analise.pdf';

// Limpa o buffer de saída
ob_clean(); 

// gera o relatório
$mpdf->Output($arquivo,'I');

exit();

// Fecha a conexao
mysqli_close($conn);
?>

Pessoal,

Quando tento gerar o relatório em PDF exibe esses errros:

Warning: Illegal string offset 'ID' in C:\Apache24\htdocs\contabilidade\mpdf\classes\cssmgr.php on line 1136

Warning: Cannot assign an empty string to a string offset in C:\Apache24\htdocs\contabilidade\mpdf\classes\cssmgr.php on line 1136

Warning: Illegal string offset 'LANG' in C:\Apache24\htdocs\contabilidade\mpdf\classes\cssmgr.php on line 1139

Warning: Cannot assign an empty string to a string offset in C:\Apache24\htdocs\contabilidade\mpdf\classes\cssmgr.php on line 1139

Warning: Illegal string offset 'ID' in C:\Apache24\htdocs\contabilidade\mpdf\classes\cssmgr.php on line 1190

Warning: Illegal string offset 'LANG' in C:\Apache24\htdocs\contabilidade\mpdf\classes\cssmgr.php on line 1190

Warning: Illegal string offset 'ID' in C:\Apache24\htdocs\contabilidade\mpdf\classes\cssmgr.php on line 1136

Warning: Cannot assign an empty string to a string offset in C:\Apache24\htdocs\contabilidade\mpdf\classes\cssmgr.php on line 1136

Warning: Illegal string offset 'LANG' in C:\Apache24\htdocs\contabilidade\mpdf\classes\cssmgr.php on line 1139

Warning: Cannot assign an empty string to a string offset in C:\Apache24\htdocs\contabilidade\mpdf\classes\cssmgr.php on line 1139

Warning: Illegal string offset 'ID' in C:\Apache24\htdocs\contabilidade\mpdf\classes\cssmgr.php on line 1190

Warning: Illegal string offset 'LANG' in C:\Apache24\htdocs\contabilidade\mpdf\classes\cssmgr.php on line 1190

Warning: Illegal string offset 'ID' in C:\Apache24\htdocs\contabilidade\mpdf\classes\cssmgr.php on line 1136

Warning: Cannot assign an empty string to a string offset in C:\Apache24\htdocs\contabilidade\mpdf\classes\cssmgr.php on line 1136

Warning: Illegal string offset 'LANG' in C:\Apache24\htdocs\contabilidade\mpdf\classes\cssmgr.php on line 1139

Warning: Cannot assign an empty string to a string offset in C:\Apache24\htdocs\contabilidade\mpdf\classes\cssmgr.php on line 1139

Warning: Illegal string offset 'ID' in C:\Apache24\htdocs\contabilidade\mpdf\classes\cssmgr.php on line 1190

Warning: Illegal string offset 'LANG' in C:\Apache24\htdocs\contabilidade\mpdf\classes\cssmgr.php on line 1190

Warning: Cannot modify header information - headers already sent by (output started at C:\Apache24\htdocs\contabilidade\mpdf\classes\cssmgr.php:1190) in C:\Apache24\htdocs\contabilidade\mpdf\mpdf.php on line 8297

Warning: Cannot modify header information - headers already sent by (output started at C:\Apache24\htdocs\contabilidade\mpdf\classes\cssmgr.php:1190) in C:\Apache24\htdocs\contabilidade\mpdf\mpdf.php on line 1706
mPDF error: Some data has already been output to browser, can't send PDF file

Pessoal uso esse link: $imprimir = "<a href='?rel=rel_analise_mpdf&id=$linha[0]'><img src='img/imprimir.jpg' width='16' border='0' height='16'></a>";

 

Para chamar o arquivo rel_analise_mpdf.php

Estou usando:

PHP 7.2

Apache24

MPDF060

 

Alguém saber como corrigir esse erro?

 

Atenciosamente,

 

Alissong

Compartilhar este post


Link para o post
Compartilhar em outros sites

  • Conteúdo Similar

    • Por violin101
      Caros amigos, saudações.
       
      Por favor, me permita tirar uma dúvida com os amigos.

      Tenho um Formulário onde o Usuário digita todos os Dados necessários.

      Minha dúvida:
      --> como faço após o usuário digitar os dados e salvar, o Sistema chamar uma Modal ou mensagem perguntando se deseja imprimir agora ?

      Grato,
       
      Cesar
    • Por Carcleo
      Tenho uma abela de usuarios e uma tabela de administradores e clientes.
      Gostaria de uma ajuda para implementar um cadastro
       
      users -> name, login, passord (pronta) admins -> user_id, registratiom, etc.. client -> user_id, registratiom, etc...
      Queria ajuda para extender de user as classes Admin e Client
      Olhem como estáAdmin
      <?php namespace App\Models; use Illuminate\Database\Eloquent\Factories\HasFactory; use Illuminate\Database\Eloquent\Model; class Admin extends User {     use HasFactory;            protected $fillable = [         'name',         'email',         'password',         'registration'     ];      private string $registration;     public function create(         string $name,          string $email,          string $password,         string $registration     )     {         //parent::create(['name'=>$name, 'email'=>$email, 'password'=>$password]);         parent::$name = $name;         parent::$email = $email;         parent::$password = $password;         $this->registration = $registration;     } } User
      <?php namespace App\Models; // use Illuminate\Contracts\Auth\MustVerifyEmail; use Illuminate\Database\Eloquent\Factories\HasFactory; use Illuminate\Foundation\Auth\User as Authenticatable; use Illuminate\Notifications\Notifiable; use Illuminate\Database\Eloquent\Relations\BelongsToMany; class User extends Authenticatable {     /** @use HasFactory<\Database\Factories\UserFactory> */     use HasFactory, Notifiable;     static string $name;     static string $email;     static string $password;     /**      * The attributes that are mass assignable.      *      * @var list<string>      */     protected $fillable = [         'name',         'email',         'password',     ];          /**      * The attributes that should be hidden for serialization.      *      * @var list<string>      */     protected $hidden = [         'remember_token',     ];     /**      * Get the attributes that should be cast.      *      * @return array<string, string>      */     protected function casts(): array     {         return [             'email_verified_at' => 'datetime',             'password' => 'hashed',         ];     }          public function roles() : BelongsToMany {         return $this->belongsToMany(Role::class);     }       public function hasHole(Array $roleName): bool     {                 foreach ($this->roles as $role) {             if ($role->name === $roleName) {                 return true;             }         }         return false;     }         public function hasHoles(Array $rolesName): bool     {                 foreach ($this->roles as $role) {             foreach ($rolesName as $rolee) {             if ($role->name === $rolee) {                 return true;             }          }         }         return false;     }         public function hasAbility(string $ability): bool     {         foreach ($this->roles as $role) {             if ($role->abilities->contains('name', $ability)) {                 return true;             }         }         return false;     }     } Como gravar um Admin na tabela admins sendo que ele é um User por extensão?
      Tentei assim mas é claro que está errado...
      public function store(Request $request, Admin $adminModel) {         $dados = $request->validate([             "name" => "required",             "email" => "required|email",             "password" => "required",             "registration" => "required"         ]);         $dados["password"] =  Hash::make($dados["password"]);                  $admin = Admin::where("registration",  $dados["registration"])->first();                  if ($admin)              return                    redirect()->route("admin.new")                             ->withErrors([                                 'fail' => 'Administrador já cadastrados<br>, favor verificar!'                   ]);                            $newAdmin = $adminModel->create(                                    $dados['name'],                                    $dados['email'],                                    $dados['password'],                                    $dados['registration']                                 );         dd($newAdmin);         $adminModel->save();         //$adminModel::create($admin);                  return redirect()->route("admin.new")->with("success",'Cadastrado com sucesso');     }  
    • Por violin101
      Caros amigos, saudações.
       
      Gostaria de tirar uma dúvida com os amigos, referente a PDV.
       
      Estou escrevendo um Sistema com Ponto de Vendas, a minha dúvida é o seguinte, referente ao procedimento mais correto.

      Conforme o caixa vai efetuando a venda, o Sistema de PDV já realiza:
      a baixa direto dos produtos no estoque
      ou
      somente após concretizar a venda o sistema baixa os produtos do estoque ?
       
      Grato,
       
      Cesar
       
    • Por violin101
      Caros amigos do grupo, saudações e um feliz 2025.
       
      Estou com uma pequena dúvida referente a Teclas de Atalho.

      Quando o Caps Lock está ativado o Comando da Tecla de Atalho não funciona.
      ou seja:
      se estiver para letra minúscula ====> funciona
      se estiver para letra maiúscula ====> não funciona
       
      Como consigo evitar essa falha, tanto para Letra Maiúscula quanto Minúscula ?

      o Código está assim:
      document.addEventListener( 'keydown', evt => { if (!evt.ctrlKey || evt.key !== 'r' ) return;// Não é Ctrl+r, portanto interrompemos o script evt.preventDefault(); });  
      Grato,
       
      Cesar
    • Por violin101
      Caros amigos, saudações.
       
      Por favor, poderiam me ajudar.

      Estou com a seguinte dúvida:
      --> como faço para para implementar o input código do produto, para quando o usuário digitar o ID o sistema espera de 1s a 2s, sem ter que pressionar a tecla ENTER.

      exemplo:
      código   ----   descrição
           1       -----   produto_A
       
      Grato,
       
      Cesar
×

Informação importante

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