simulador.php — leitura técnica completa

sistema/painel/paginas/simulador.php
Tela principal do simulador de prótese com formulário, listagem, modal e abertura do canvas.

SimuladorArquivo PHP581 linhas

Responsabilidade do arquivo

Tela principal do simulador de prótese com formulário, listagem, modal e abertura do canvas.

Dependências observadas:
Conexão PDO / configurações globaisValidação de sessão do painelFormulário HTMLBanco de dados

Tipo

Arquivo PHP

Grupo

Simulador

Total de linhas

581

Código completo

1<?php 2@session_start(); 3require_once("verificar.php"); 4require_once("../conexao.php"); 5 6$pag = 'simulador'; 7 8//verificar se ele tem a permissão de estar nessa página 9if(@$simulador == 'ocultar'){ 10 echo "<script>window.location='../index.php'</script>"; 11 exit(); 12} 13 14?> 15 16<div class="row top-50"> 17 <div class="col-md-8 float-esq"> 18 <a class="btn btn-primary" onclick="inserir()" class="btn btn-primary btn-flat btn-pri"> 19 <i class="fa fa-plus" aria-hidden="true"></i> <span class="esc">Nova Simulação</span> 20 </a> 21 </div> 22 <div class="col-md-3 float-esq"> 23 <input onkeyup="listarSimulacoes()" class="form-control" type="text" name="buscar" id="buscar" placeholder="Buscar por Cliente ou Prótese" style="border-radius: 5px"> 24 <input type="hidden" id="pagina"> 25 </div> 26 <div class="col-md-1 float-esq"> 27 <button onclick="listarSimulacoes()" id="btn-buscar" class="btn btn-primary"><i class="fa fa-search"></i></button> 28 </div> 29</div> 30 31<div class="bs-example widget-shadow" style="padding:15px" id="listar"> 32 33</div> 34 35<div class="modal fade" id="modalForm" tabindex="-1" role="dialog" aria-labelledby="exampleModalLabel" aria-hidden="true"> 36 <div class="modal-dialog modal-lg" role="document"> 37 <div class="modal-content"> 38 <div class="modal-header"> 39 <h4 class="modal-title"><span id="titulo_inserir"></span></h4> 40 <button id="btn-fechar" type="button" class="close" data-dismiss="modal" aria-label="Close" style="margin-top: -20px"> 41 <span aria-hidden="true">&times;</span> 42 </button> 43 </div> 44 45 <form id="form_simulacao" method="post" enctype="multipart/form-data"> 46 <div class="modal-body"> 47 48 <div class="row"> 49 <div class="col-md-6"> 50 <div class="form-group"> 51 <label>Cliente</label> 52 <select class="form-control sel2" name="cliente" id="cliente" style="width:100%" required> 53 <option value="">Selecione um Cliente</option> 54 <?php 55 $query = $pdo->query("SELECT * FROM clientes order by nome asc"); 56 $res = $query->fetchAll(PDO::FETCH_ASSOC); 57 $linhas = @count($res); 58 if($linhas > 0){ 59 for($i=0; $i<$linhas; $i++){ 60 ?> 61 <option value="<?php echo $res[$i]['id'] ?>"><?php echo $res[$i]['nome'] ?></option> 62 <?php } } ?> 63 </select> 64 </div> 65 </div> 66 67 <div class="col-md-6"> 68 <div class="form-group"> 69 <label>Prótese</label> 70 <select class="form-control sel2" name="id_protese" id="id_protese" style="width:100%" required> 71 <option value="">Selecione uma Prótese</option> 72 <?php 73 $query = $pdo->query("SELECT p.*, c.nome as nome_cliente FROM proteses p INNER JOIN clientes c ON p.cliente = c.id order by p.id desc"); 74 $res = $query->fetchAll(PDO::FETCH_ASSOC); 75 $linhas = @count($res); 76 if($linhas > 0){ 77 for($i=0; $i<$linhas; $i++){ 78 $descricao = $res[$i]['nome_cliente'].' - '.$res[$i]['modelo']; 79 ?> 80 <option value="<?php echo $res[$i]['id'] ?>"><?php echo $descricao ?></option> 81 <?php } } ?> 82 </select> 83 </div> 84 </div> 85 </div> 86 87 <div class="row"> 88 <div class="col-md-6"> 89 <div class="form-group"> 90 <label>Foto Original</label> 91 <input type="file" class="form-control" id="foto_original" name="foto_original"> 92 <small id="nome_foto_original_atual" class="text-muted"></small> 93 <div id="area_preview_foto_original" style="margin-top: 8px; display:none;"> 94 <img id="preview_foto_original" src="" style="max-width:100%; max-height:160px; border:1px solid #ddd; padding:3px; border-radius:4px;"> 95 </div> 96 </div> 97 </div> 98 99 <div class="col-md-6"> 100 <div class="form-group"> 101 <label>Imagem Simulada</label> 102 <input type="file" class="form-control" id="imagem_simulada" name="imagem_simulada"> 103 <small id="nome_imagem_simulada_atual" class="text-muted"></small> 104 <div id="area_preview_imagem_simulada" style="margin-top: 8px; display:none;"> 105 <img id="preview_imagem_simulada" src="" style="max-width:100%; max-height:160px; border:1px solid #ddd; padding:3px; border-radius:4px;"> 106 </div> 107 </div> 108 </div> 109 </div> 110 111 <div class="row"> 112 <div class="col-md-6"> 113 <div class="form-group"> 114 <label>Data da Simulação</label> 115 <input type="date" class="form-control" id="data_simulacao" name="data_simulacao" value="<?php echo date('Y-m-d') ?>" required> 116 </div> 117 </div> 118 119 <div class="col-md-6"> 120 <div class="form-group"> 121 <label>Observações</label> 122 <input type="text" class="form-control" id="observacoes" name="observacoes" placeholder="Observações"> 123 </div> 124 </div> 125 </div> 126 127 <input type="hidden" name="id" id="id"> 128 <input type="hidden" name="foto_original_atual" id="foto_original_atual"> 129 <input type="hidden" name="imagem_simulada_atual" id="imagem_simulada_atual"> 130 131 <hr> 132 133 <div class="row"> 134 <div class="col-md-6"> 135 <button id="btnGerarIA" type="button" class="btn btn-warning btn-block" onclick="gerarIAmodal()"> 136 <i id="iconGerarIA" class="fa fa-magic"></i> Gerar com IA 137 </button> 138 </div> 139 140 <div class="col-md-6"> 141 <button type="button" class="btn btn-info btn-block" onclick="abrirCanvas()"> 142 <i class="fa fa-image"></i> Abrir Canvas 143 </button> 144 </div> 145 </div> 146 147 <br> 148 <small><div id="mensagem_ia" align="center"></div></small> 149 <small><div id="mensagem" align="center"></div></small> 150 </div> 151 152 <div class="modal-footer"> 153 <button type="submit" class="btn btn-primary">Salvar</button> 154 </div> 155 </form> 156 157 </div> 158 </div> 159</div> 160 161<div class="modal fade" id="modalDados" tabindex="-1" role="dialog" aria-labelledby="exampleModalLabel" aria-hidden="true"> 162 <div class="modal-dialog modal-lg" role="document"> 163 <div class="modal-content"> 164 <div class="modal-header"> 165 <h4 class="modal-title" id="exampleModalLabel"><span id="nome_dados"></span></h4> 166 <button id="btn-fechar-perfil" type="button" class="close" data-dismiss="modal" aria-label="Close" style="margin-top: -20px"> 167 <span aria-hidden="true" >&times;</span> 168 </button> 169 </div> 170 171 <div class="modal-body"> 172 173 <input type="hidden" id="telefone_whatsapp_cliente"> 174 175 <div class="row" style="margin-bottom: 15px"> 176 <div class="col-md-6" align="center"> 177 <label>Foto Original</label><br> 178 <img id="foto_original_dados" src="" width="220px"> 179 </div> 180 <div class="col-md-6" align="center"> 181 <label>Imagem Simulada</label><br> 182 <img id="imagem_simulada_dados" src="" width="220px"> 183 <div style="margin-top: 10px;"> 184 <a href="javascript:void(0)" onclick="enviarImagemWhatsapp()" class="btn btn-success btn-sm"> 185 <i class="fa fa-whatsapp"></i> Enviar no WhatsApp 186 </a> 187 </div> 188 </div> 189 </div> 190 191 <div class="row" style="border-bottom: 1px solid #cac7c7;"> 192 <div class="col-md-4"> 193 <span><b>Cliente: </b></span> 194 <span id="cliente_dados"></span> 195 </div> 196 197 <div class="col-md-4"> 198 <span><b>Prótese: </b></span> 199 <span id="protese_dados"></span> 200 </div> 201 202 <div class="col-md-4"> 203 <span><b>Data: </b></span> 204 <span id="data_simulacao_dados"></span> 205 </div> 206 </div> 207 208 <div class="row" style="border-bottom: 1px solid #cac7c7;"> 209 <div class="col-md-12"> 210 <span><b>Observações: </b></span> 211 <span id="observacoes_dados"></span> 212 </div> 213 </div> 214 215 </div> 216 </div> 217 </div> 218</div> 219 220<script type="text/javascript">var pag = "<?=$pag?>"</script> 221<script src="js/ajax.js"></script> 222 223<script type="text/javascript"> 224 $(document).ready( function () { 225 listarSimulacoes(); 226 227 $('.sel2').select2({ 228 dropdownParent: $('#modalForm') 229 }); 230 } ); 231</script> 232 233<script type="text/javascript"> 234function listarSimulacoes(pagina){ 235 236 $("#pagina").val(pagina); 237 238 var busca = $("#buscar").val(); 239 $.ajax({ 240 url: 'paginas/' + pag + "/listar.php", 241 method: 'POST', 242 data: {busca, pagina}, 243 dataType: "html", 244 245 success:function(result){ 246 $("#listar").html(result); 247 } 248 }); 249} 250</script> 251 252<script type="text/javascript"> 253function mostrarNomeArquivosAtuais(){ 254 var foto_original_atual = $('#foto_original_atual').val(); 255 var imagem_simulada_atual = $('#imagem_simulada_atual').val(); 256 257 if(foto_original_atual != ""){ 258 $('#nome_foto_original_atual').text('Arquivo atual: ' + foto_original_atual); 259 }else{ 260 $('#nome_foto_original_atual').text(''); 261 } 262 263 if(imagem_simulada_atual != ""){ 264 $('#nome_imagem_simulada_atual').text('Arquivo atual: ' + imagem_simulada_atual); 265 }else{ 266 $('#nome_imagem_simulada_atual').text(''); 267 } 268} 269</script> 270 271<script type="text/javascript"> 272function mostrarPreviewAtual(){ 273 var foto_original_atual = $('#foto_original_atual').val(); 274 var imagem_simulada_atual = $('#imagem_simulada_atual').val(); 275 276 if(foto_original_atual != ""){ 277 $('#preview_foto_original').attr('src', 'images/simulacoes/' + foto_original_atual + '?v=' + new Date().getTime()); 278 $('#area_preview_foto_original').show(); 279 }else{ 280 $('#preview_foto_original').attr('src', ''); 281 $('#area_preview_foto_original').hide(); 282 } 283 284 if(imagem_simulada_atual != ""){ 285 $('#preview_imagem_simulada').attr('src', 'images/simulacoes/' + imagem_simulada_atual + '?v=' + new Date().getTime()); 286 $('#area_preview_imagem_simulada').show(); 287 }else{ 288 $('#preview_imagem_simulada').attr('src', ''); 289 $('#area_preview_imagem_simulada').hide(); 290 } 291} 292</script> 293 294<script type="text/javascript"> 295function mostrarPreviewArquivo(input, idImagem, idArea){ 296 if(input.files && input.files[0]){ 297 var reader = new FileReader(); 298 299 reader.onload = function(e){ 300 $(idImagem).attr('src', e.target.result); 301 $(idArea).show(); 302 } 303 304 reader.readAsDataURL(input.files[0]); 305 } 306} 307</script> 308 309<script type="text/javascript"> 310$('#foto_original').change(function(){ 311 var arquivo = $(this).val().split('\\').pop(); 312 313 if(arquivo != ""){ 314 $('#nome_foto_original_atual').text('Novo arquivo: ' + arquivo); 315 mostrarPreviewArquivo(this, '#preview_foto_original', '#area_preview_foto_original'); 316 }else{ 317 mostrarNomeArquivosAtuais(); 318 mostrarPreviewAtual(); 319 } 320}); 321</script> 322 323<script type="text/javascript"> 324$('#imagem_simulada').change(function(){ 325 var arquivo = $(this).val().split('\\').pop(); 326 327 if(arquivo != ""){ 328 $('#nome_imagem_simulada_atual').text('Novo arquivo: ' + arquivo); 329 mostrarPreviewArquivo(this, '#preview_imagem_simulada', '#area_preview_imagem_simulada'); 330 }else{ 331 mostrarNomeArquivosAtuais(); 332 mostrarPreviewAtual(); 333 } 334}); 335</script> 336 337<script type="text/javascript"> 338$('#modalForm').on('shown.bs.modal', function () { 339 mostrarNomeArquivosAtuais(); 340 mostrarPreviewAtual(); 341}); 342</script> 343 344<script type="text/javascript"> 345$('#modalForm').on('hidden.bs.modal', function () { 346 $('#nome_foto_original_atual').text(''); 347 $('#nome_imagem_simulada_atual').text(''); 348 $('#preview_foto_original').attr('src', ''); 349 $('#preview_imagem_simulada').attr('src', ''); 350 $('#area_preview_foto_original').hide(); 351 $('#area_preview_imagem_simulada').hide(); 352 $('#foto_original').val(''); 353 $('#imagem_simulada').val(''); 354 $('#mensagem').text(''); 355 $('#mensagem_ia').text(''); 356 $('#mensagem').removeClass(); 357 $('#mensagem_ia').removeClass(); 358 $('#btnGerarIA').data('processando', false); 359 $('#btnGerarIA').prop('disabled', false); 360 $('#iconGerarIA').removeClass(); 361 $('#iconGerarIA').addClass('fa fa-magic'); 362}); 363</script> 364 365<script type="text/javascript"> 366$("#form_simulacao").submit(function () { 367 368 event.preventDefault(); 369 var formData = new FormData(this); 370 371 $.ajax({ 372 url: 'paginas/' + pag + "/salvar.php", 373 type: 'POST', 374 data: formData, 375 376 success: function (mensagem) { 377 $('#mensagem').text(''); 378 $('#mensagem').removeClass() 379 if (mensagem.trim() == "Salvo com Sucesso") { 380 381 $('#btn-fechar').click(); 382 383 var pagina = $("#pagina").val(); 384 listarSimulacoes(pagina); 385 386 } else { 387 $('#mensagem').addClass('text-danger') 388 $('#mensagem').text(mensagem) 389 } 390 391 }, 392 393 cache: false, 394 contentType: false, 395 processData: false, 396 397 }); 398 399}); 400</script> 401 402<script type="text/javascript"> 403function excluir(id){ 404 $.ajax({ 405 url: 'paginas/' + pag + "/excluir.php", 406 method: 'POST', 407 data: {id}, 408 dataType: "text", 409 410 success: function (mensagem) { 411 if (mensagem.trim() == "Excluído com Sucesso") { 412 var pagina = $("#pagina").val(); 413 listarSimulacoes(pagina); 414 } else { 415 $('#mensagem-excluir').addClass('text-danger') 416 $('#mensagem-excluir').text(mensagem) 417 } 418 419 }, 420 421 }); 422} 423</script> 424 425<script type="text/javascript"> 426function gerarIAmodal(){ 427 428 var id = $('#id').val(); 429 var botao = $('#btnGerarIA'); 430 var icone = $('#iconGerarIA'); 431 432 $('#mensagem_ia').text(''); 433 $('#mensagem_ia').removeClass(); 434 435 if(id == ""){ 436 $('#mensagem_ia').addClass('text-danger'); 437 $('#mensagem_ia').text('Primeiro salve o registro para gerar a simulação com IA'); 438 return; 439 } 440 441 if(botao.data('processando') == true){ 442 return; 443 } 444 445 botao.data('processando', true); 446 botao.prop('disabled', true); 447 448 icone.removeClass(); 449 icone.addClass('fa fa-spinner fa-spin'); 450 451 $('#mensagem_ia').addClass('text-info'); 452 $('#mensagem_ia').text('Gerando simulação com IA...'); 453 454 $.ajax({ 455 url: 'paginas/simulador/gerar_ia.php', 456 method: 'POST', 457 data: {id}, 458 dataType: "text", 459 460 success: function (mensagem) { 461 462 botao.data('processando', false); 463 botao.prop('disabled', false); 464 465 icone.removeClass(); 466 icone.addClass('fa fa-magic'); 467 468 $('#mensagem_ia').removeClass(); 469 470 if (mensagem.trim() == "Salvo com Sucesso") { 471 472 $('#mensagem_ia').addClass('text-success'); 473 $('#mensagem_ia').text('Simulação gerada com sucesso'); 474 475 var pagina = $("#pagina").val(); 476 listarSimulacoes(pagina); 477 478 $.ajax({ 479 url: 'paginas/simulador/buscar.php', 480 method: 'POST', 481 data: {id}, 482 dataType: "json", 483 484 success: function (dados) { 485 486 if(dados.foto_original != undefined){ 487 $('#foto_original_atual').val(dados.foto_original); 488 } 489 490 if(dados.imagem_simulada != undefined){ 491 $('#imagem_simulada_atual').val(dados.imagem_simulada); 492 } 493 494 if(typeof mostrarNomeArquivosAtuais === 'function'){ 495 mostrarNomeArquivosAtuais(); 496 } 497 498 if(typeof mostrarPreviewAtual === 'function'){ 499 mostrarPreviewAtual(); 500 } 501 } 502 }); 503 504 }else{ 505 506 $('#mensagem_ia').addClass('text-danger'); 507 $('#mensagem_ia').text(mensagem); 508 509 } 510 }, 511 512 error: function () { 513 514 botao.data('processando', false); 515 botao.prop('disabled', false); 516 517 icone.removeClass(); 518 icone.addClass('fa fa-magic'); 519 520 $('#mensagem_ia').removeClass(); 521 $('#mensagem_ia').addClass('text-danger'); 522 $('#mensagem_ia').text('Erro ao processar a simulação com IA'); 523 524 } 525 }); 526} 527</script> 528 529<script type="text/javascript"> 530function abrirCanvas(){ 531 var id = $('#id').val(); 532 533 if(id == ""){ 534 $('#mensagem_ia').removeClass(); 535 $('#mensagem_ia').addClass('text-danger'); 536 $('#mensagem_ia').text('Primeiro salve o registro para abrir o canvas'); 537 return; 538 } 539 540 window.open('paginas/simulador/canvas.php?id=' + id, '_blank'); 541} 542</script> 543 544<script type="text/javascript"> 545function enviarImagemWhatsapp(){ 546 var telefone = $('#telefone_whatsapp_cliente').val(); 547 var imagem = $('#imagem_simulada_dados').attr('src'); 548 var cliente = $('#cliente_dados').text(); 549 550 if(telefone == ""){ 551 alert('Cliente não possui telefone cadastrado.'); 552 return; 553 } 554 555 if(imagem == ""){ 556 alert('Nenhuma imagem simulada disponível.'); 557 return; 558 } 559 560 telefone = telefone.replace(/\D/g, ''); 561 562 if(telefone == ""){ 563 alert('Telefone do cliente inválido.'); 564 return; 565 } 566 567 var nome_imagem = imagem.split('/').pop().split('?')[0]; 568 var url_imagem = window.location.origin + '/sistema/painel/images/simulacoes/' + nome_imagem; 569 570 var texto = 'Olá ' + cliente + ', segue sua simulação de prótese: ' + url_imagem; 571 var url = ''; 572 573 if(/Android|iPhone|iPad|iPod/i.test(navigator.userAgent)){ 574 url = 'https://api.whatsapp.com/send?phone=55' + telefone + '&text=' + encodeURIComponent(texto); 575 }else{ 576 url = 'https://web.whatsapp.com/send?phone=55' + telefone + '&text=' + encodeURIComponent(texto); 577 } 578 579 window.open(url, '_blank'); 580} 581</script>

Leitura linha por linha

LinhaCódigoExplicação técnica
1<?php Abre um bloco PHP. A partir daqui o arquivo passa a executar lógica no servidor.
2@session_start();Inicia ou reaproveita a sessão do usuário logado, permitindo ler permissões e dados de autenticação.
3require_once("verificar.php");Importa `verificar.php` para disponibilizar conexão, sessão, funções utilitárias ou validações necessárias ao restante do fluxo.
4require_once("../conexao.php");Importa `../conexao.php` para disponibilizar conexão, sessão, funções utilitárias ou validações necessárias ao restante do fluxo.
5 Linha em branco usada para separar blocos e melhorar a leitura.
6$pag = 'simulador';Guarda o identificador interno da página, normalmente usado pelo painel para permissões, destaque de menu ou callbacks.
7 Linha em branco usada para separar blocos e melhorar a leitura.
8//verificar se ele tem a permissão de estar nessa páginaComentário do código. Serve para contextualizar o bloco seguinte para quem fizer manutenção.
9if(@$simulador == 'ocultar'){Abre uma condição para validar pré-requisitos ou desviar o fluxo conforme os dados recebidos.
10 echo "<script>window.location='../index.php'</script>";Envia saída para o navegador ou para o AJAX. O conteúdo retornado aqui precisa respeitar o contrato esperado pela tela.
11 exit();Linha de implementação que compõe a lógica normal do arquivo e deve ser lida em conjunto com o bloco onde está inserida.
12}Marca abertura/fechamento de bloco de código, objeto, array ou estrutura de controle.
13 Linha em branco usada para separar blocos e melhorar a leitura.
14?>Fecha o bloco PHP atual para voltar à saída HTML.
15 Linha em branco usada para separar blocos e melhorar a leitura.
16<div class="row top-50">Estrutura o layout HTML da página, modal ou tabela mostrada ao usuário.
17 <div class="col-md-8 float-esq"> Estrutura o layout HTML da página, modal ou tabela mostrada ao usuário.
18 <a class="btn btn-primary" onclick="inserir()" class="btn btn-primary btn-flat btn-pri">Renderiza um elemento de ação da interface, normalmente ligado a evento JavaScript ou navegação.
19 <i class="fa fa-plus" aria-hidden="true"></i> <span class="esc">Nova Simulação</span>Linha de implementação que compõe a lógica normal do arquivo e deve ser lida em conjunto com o bloco onde está inserida.
20 </a>Fecha a estrutura HTML aberta anteriormente, mantendo o documento bem formado.
21 </div>Fecha a estrutura HTML aberta anteriormente, mantendo o documento bem formado.
22 <div class="col-md-3 float-esq">Estrutura o layout HTML da página, modal ou tabela mostrada ao usuário.
23 <input onkeyup="listarSimulacoes()" class="form-control" type="text" name="buscar" id="buscar" placeholder="Buscar por Cliente ou Prótese" style="border-radius: 5px">Renderiza um campo de entrada no HTML. O nome/id deste campo precisa bater com o JavaScript e com o backend.
24 <input type="hidden" id="pagina">Renderiza um campo de entrada no HTML. O nome/id deste campo precisa bater com o JavaScript e com o backend.
25 </div>Fecha a estrutura HTML aberta anteriormente, mantendo o documento bem formado.
26 <div class="col-md-1 float-esq">Estrutura o layout HTML da página, modal ou tabela mostrada ao usuário.
27 <button onclick="listarSimulacoes()" id="btn-buscar" class="btn btn-primary"><i class="fa fa-search"></i></button>Renderiza um elemento de ação da interface, normalmente ligado a evento JavaScript ou navegação.
28 </div>Fecha a estrutura HTML aberta anteriormente, mantendo o documento bem formado.
29</div>Fecha a estrutura HTML aberta anteriormente, mantendo o documento bem formado.
30 Linha em branco usada para separar blocos e melhorar a leitura.
31<div class="bs-example widget-shadow" style="padding:15px" id="listar">Estrutura o layout HTML da página, modal ou tabela mostrada ao usuário.
32 Linha em branco usada para separar blocos e melhorar a leitura.
33</div>Fecha a estrutura HTML aberta anteriormente, mantendo o documento bem formado.
34 Linha em branco usada para separar blocos e melhorar a leitura.
35<div class="modal fade" id="modalForm" tabindex="-1" role="dialog" aria-labelledby="exampleModalLabel" aria-hidden="true">Estrutura o layout HTML da página, modal ou tabela mostrada ao usuário.
36 <div class="modal-dialog modal-lg" role="document">Estrutura o layout HTML da página, modal ou tabela mostrada ao usuário.
37 <div class="modal-content">Estrutura o layout HTML da página, modal ou tabela mostrada ao usuário.
38 <div class="modal-header">Estrutura o layout HTML da página, modal ou tabela mostrada ao usuário.
39 <h4 class="modal-title"><span id="titulo_inserir"></span></h4>Linha de implementação que compõe a lógica normal do arquivo e deve ser lida em conjunto com o bloco onde está inserida.
40 <button id="btn-fechar" type="button" class="close" data-dismiss="modal" aria-label="Close" style="margin-top: -20px">Renderiza um elemento de ação da interface, normalmente ligado a evento JavaScript ou navegação.
41 <span aria-hidden="true">&times;</span>Linha de implementação que compõe a lógica normal do arquivo e deve ser lida em conjunto com o bloco onde está inserida.
42 </button>Fecha a estrutura HTML aberta anteriormente, mantendo o documento bem formado.
43 </div>Fecha a estrutura HTML aberta anteriormente, mantendo o documento bem formado.
44 Linha em branco usada para separar blocos e melhorar a leitura.
45 <form id="form_simulacao" method="post" enctype="multipart/form-data">Abre o formulário que agrupa os campos enviados ao backend.
46 <div class="modal-body">Estrutura o layout HTML da página, modal ou tabela mostrada ao usuário.
47 Linha em branco usada para separar blocos e melhorar a leitura.
48 <div class="row">Estrutura o layout HTML da página, modal ou tabela mostrada ao usuário.
49 <div class="col-md-6">Estrutura o layout HTML da página, modal ou tabela mostrada ao usuário.
50 <div class="form-group">Estrutura o layout HTML da página, modal ou tabela mostrada ao usuário.
51 <label>Cliente</label>Linha de implementação que compõe a lógica normal do arquivo e deve ser lida em conjunto com o bloco onde está inserida.
52 <select class="form-control sel2" name="cliente" id="cliente" style="width:100%" required>Renderiza um campo de seleção. Normalmente ele é preenchido por dados do banco ou controla dependências na tela.
53 <option value="">Selecione um Cliente</option>Cria uma opção disponível dentro do `select`.
54 <?php Abre um bloco PHP. A partir daqui o arquivo passa a executar lógica no servidor.
55 $query = $pdo->query("SELECT * FROM clientes order by nome asc");Executa uma consulta direta no banco. É um ponto que merece atenção extra quando houver dados vindos do usuário.
56 $res = $query->fetchAll(PDO::FETCH_ASSOC);Lê o resultado retornado pelo banco e o converte para uma estrutura PHP que o restante do arquivo consegue consumir.
57 $linhas = @count($res);Define a variável `$linhas`, que será usada pelo restante do arquivo para controlar dados, estado ou resposta.
58 if($linhas > 0){Abre uma condição para validar pré-requisitos ou desviar o fluxo conforme os dados recebidos.
59 for($i=0; $i<$linhas; $i++){Inicia um laço de repetição para percorrer registros, opções ou elementos da interface.
60 ?>Fecha o bloco PHP atual para voltar à saída HTML.
61 <option value="<?php echo $res[$i]['id'] ?>"><?php echo $res[$i]['nome'] ?></option>Cria uma opção disponível dentro do `select`.
62 <?php } } ?>Linha de implementação que compõe a lógica normal do arquivo e deve ser lida em conjunto com o bloco onde está inserida.
63 </select>Fecha a estrutura HTML aberta anteriormente, mantendo o documento bem formado.
64 </div> Fecha a estrutura HTML aberta anteriormente, mantendo o documento bem formado.
65 </div>Fecha a estrutura HTML aberta anteriormente, mantendo o documento bem formado.
66 Linha em branco usada para separar blocos e melhorar a leitura.
67 <div class="col-md-6">Estrutura o layout HTML da página, modal ou tabela mostrada ao usuário.
68 <div class="form-group">Estrutura o layout HTML da página, modal ou tabela mostrada ao usuário.
69 <label>Prótese</label>Linha de implementação que compõe a lógica normal do arquivo e deve ser lida em conjunto com o bloco onde está inserida.
70 <select class="form-control sel2" name="id_protese" id="id_protese" style="width:100%" required>Renderiza um campo de seleção. Normalmente ele é preenchido por dados do banco ou controla dependências na tela.
71 <option value="">Selecione uma Prótese</option>Cria uma opção disponível dentro do `select`.
72 <?php Abre um bloco PHP. A partir daqui o arquivo passa a executar lógica no servidor.
73 $query = $pdo->query("SELECT p.*, c.nome as nome_cliente FROM proteses p INNER JOIN clientes c ON p.cliente = c.id order by p.id desc");Executa uma consulta direta no banco. É um ponto que merece atenção extra quando houver dados vindos do usuário.
74 $res = $query->fetchAll(PDO::FETCH_ASSOC);Lê o resultado retornado pelo banco e o converte para uma estrutura PHP que o restante do arquivo consegue consumir.
75 $linhas = @count($res);Define a variável `$linhas`, que será usada pelo restante do arquivo para controlar dados, estado ou resposta.
76 if($linhas > 0){Abre uma condição para validar pré-requisitos ou desviar o fluxo conforme os dados recebidos.
77 for($i=0; $i<$linhas; $i++){Inicia um laço de repetição para percorrer registros, opções ou elementos da interface.
78 $descricao = $res[$i]['nome_cliente'].' - '.$res[$i]['modelo'];Define a variável `$descricao`, que será usada pelo restante do arquivo para controlar dados, estado ou resposta.
79 ?>Fecha o bloco PHP atual para voltar à saída HTML.
80 <option value="<?php echo $res[$i]['id'] ?>"><?php echo $descricao ?></option>Cria uma opção disponível dentro do `select`.
81 <?php } } ?>Linha de implementação que compõe a lógica normal do arquivo e deve ser lida em conjunto com o bloco onde está inserida.
82 </select>Fecha a estrutura HTML aberta anteriormente, mantendo o documento bem formado.
83 </div> Fecha a estrutura HTML aberta anteriormente, mantendo o documento bem formado.
84 </div>Fecha a estrutura HTML aberta anteriormente, mantendo o documento bem formado.
85 </div>Fecha a estrutura HTML aberta anteriormente, mantendo o documento bem formado.
86 Linha em branco usada para separar blocos e melhorar a leitura.
87 <div class="row">Estrutura o layout HTML da página, modal ou tabela mostrada ao usuário.
88 <div class="col-md-6">Estrutura o layout HTML da página, modal ou tabela mostrada ao usuário.
89 <div class="form-group">Estrutura o layout HTML da página, modal ou tabela mostrada ao usuário.
90 <label>Foto Original</label>Linha de implementação que compõe a lógica normal do arquivo e deve ser lida em conjunto com o bloco onde está inserida.
91 <input type="file" class="form-control" id="foto_original" name="foto_original">Renderiza um campo de entrada no HTML. O nome/id deste campo precisa bater com o JavaScript e com o backend.
92 <small id="nome_foto_original_atual" class="text-muted"></small>Linha de implementação que compõe a lógica normal do arquivo e deve ser lida em conjunto com o bloco onde está inserida.
93 <div id="area_preview_foto_original" style="margin-top: 8px; display:none;">Estrutura o layout HTML da página, modal ou tabela mostrada ao usuário.
94 <img id="preview_foto_original" src="" style="max-width:100%; max-height:160px; border:1px solid #ddd; padding:3px; border-radius:4px;">Linha de implementação que compõe a lógica normal do arquivo e deve ser lida em conjunto com o bloco onde está inserida.
95 </div>Fecha a estrutura HTML aberta anteriormente, mantendo o documento bem formado.
96 </div> Fecha a estrutura HTML aberta anteriormente, mantendo o documento bem formado.
97 </div>Fecha a estrutura HTML aberta anteriormente, mantendo o documento bem formado.
98 Linha em branco usada para separar blocos e melhorar a leitura.
99 <div class="col-md-6">Estrutura o layout HTML da página, modal ou tabela mostrada ao usuário.
100 <div class="form-group">Estrutura o layout HTML da página, modal ou tabela mostrada ao usuário.
101 <label>Imagem Simulada</label>Linha de implementação que compõe a lógica normal do arquivo e deve ser lida em conjunto com o bloco onde está inserida.
102 <input type="file" class="form-control" id="imagem_simulada" name="imagem_simulada">Renderiza um campo de entrada no HTML. O nome/id deste campo precisa bater com o JavaScript e com o backend.
103 <small id="nome_imagem_simulada_atual" class="text-muted"></small>Linha de implementação que compõe a lógica normal do arquivo e deve ser lida em conjunto com o bloco onde está inserida.
104 <div id="area_preview_imagem_simulada" style="margin-top: 8px; display:none;">Estrutura o layout HTML da página, modal ou tabela mostrada ao usuário.
105 <img id="preview_imagem_simulada" src="" style="max-width:100%; max-height:160px; border:1px solid #ddd; padding:3px; border-radius:4px;">Linha de implementação que compõe a lógica normal do arquivo e deve ser lida em conjunto com o bloco onde está inserida.
106 </div>Fecha a estrutura HTML aberta anteriormente, mantendo o documento bem formado.
107 </div> Fecha a estrutura HTML aberta anteriormente, mantendo o documento bem formado.
108 </div>Fecha a estrutura HTML aberta anteriormente, mantendo o documento bem formado.
109 </div>Fecha a estrutura HTML aberta anteriormente, mantendo o documento bem formado.
110 Linha em branco usada para separar blocos e melhorar a leitura.
111 <div class="row">Estrutura o layout HTML da página, modal ou tabela mostrada ao usuário.
112 <div class="col-md-6">Estrutura o layout HTML da página, modal ou tabela mostrada ao usuário.
113 <div class="form-group">Estrutura o layout HTML da página, modal ou tabela mostrada ao usuário.
114 <label>Data da Simulação</label>Linha de implementação que compõe a lógica normal do arquivo e deve ser lida em conjunto com o bloco onde está inserida.
115 <input type="date" class="form-control" id="data_simulacao" name="data_simulacao" value="<?php echo date('Y-m-d') ?>" required>Renderiza um campo de entrada no HTML. O nome/id deste campo precisa bater com o JavaScript e com o backend.
116 </div> Fecha a estrutura HTML aberta anteriormente, mantendo o documento bem formado.
117 </div>Fecha a estrutura HTML aberta anteriormente, mantendo o documento bem formado.
118 Linha em branco usada para separar blocos e melhorar a leitura.
119 <div class="col-md-6">Estrutura o layout HTML da página, modal ou tabela mostrada ao usuário.
120 <div class="form-group">Estrutura o layout HTML da página, modal ou tabela mostrada ao usuário.
121 <label>Observações</label>Linha de implementação que compõe a lógica normal do arquivo e deve ser lida em conjunto com o bloco onde está inserida.
122 <input type="text" class="form-control" id="observacoes" name="observacoes" placeholder="Observações">Renderiza um campo de entrada no HTML. O nome/id deste campo precisa bater com o JavaScript e com o backend.
123 </div> Fecha a estrutura HTML aberta anteriormente, mantendo o documento bem formado.
124 </div>Fecha a estrutura HTML aberta anteriormente, mantendo o documento bem formado.
125 </div>Fecha a estrutura HTML aberta anteriormente, mantendo o documento bem formado.
126 Linha em branco usada para separar blocos e melhorar a leitura.
127 <input type="hidden" name="id" id="id">Renderiza um campo de entrada no HTML. O nome/id deste campo precisa bater com o JavaScript e com o backend.
128 <input type="hidden" name="foto_original_atual" id="foto_original_atual">Renderiza um campo de entrada no HTML. O nome/id deste campo precisa bater com o JavaScript e com o backend.
129 <input type="hidden" name="imagem_simulada_atual" id="imagem_simulada_atual">Renderiza um campo de entrada no HTML. O nome/id deste campo precisa bater com o JavaScript e com o backend.
130 Linha em branco usada para separar blocos e melhorar a leitura.
131 <hr>Linha de implementação que compõe a lógica normal do arquivo e deve ser lida em conjunto com o bloco onde está inserida.
132 Linha em branco usada para separar blocos e melhorar a leitura.
133 <div class="row">Estrutura o layout HTML da página, modal ou tabela mostrada ao usuário.
134 <div class="col-md-6">Estrutura o layout HTML da página, modal ou tabela mostrada ao usuário.
135 <button id="btnGerarIA" type="button" class="btn btn-warning btn-block" onclick="gerarIAmodal()">Renderiza um elemento de ação da interface, normalmente ligado a evento JavaScript ou navegação.
136 <i id="iconGerarIA" class="fa fa-magic"></i> Gerar com IALinha de implementação que compõe a lógica normal do arquivo e deve ser lida em conjunto com o bloco onde está inserida.
137 </button>Fecha a estrutura HTML aberta anteriormente, mantendo o documento bem formado.
138 </div>Fecha a estrutura HTML aberta anteriormente, mantendo o documento bem formado.
139 Linha em branco usada para separar blocos e melhorar a leitura.
140 <div class="col-md-6">Estrutura o layout HTML da página, modal ou tabela mostrada ao usuário.
141 <button type="button" class="btn btn-info btn-block" onclick="abrirCanvas()">Renderiza um elemento de ação da interface, normalmente ligado a evento JavaScript ou navegação.
142 <i class="fa fa-image"></i> Abrir CanvasLinha de implementação que compõe a lógica normal do arquivo e deve ser lida em conjunto com o bloco onde está inserida.
143 </button>Fecha a estrutura HTML aberta anteriormente, mantendo o documento bem formado.
144 </div>Fecha a estrutura HTML aberta anteriormente, mantendo o documento bem formado.
145 </div>Fecha a estrutura HTML aberta anteriormente, mantendo o documento bem formado.
146 Linha em branco usada para separar blocos e melhorar a leitura.
147 <br>Linha de implementação que compõe a lógica normal do arquivo e deve ser lida em conjunto com o bloco onde está inserida.
148 <small><div id="mensagem_ia" align="center"></div></small>Linha de implementação que compõe a lógica normal do arquivo e deve ser lida em conjunto com o bloco onde está inserida.
149 <small><div id="mensagem" align="center"></div></small>Linha de implementação que compõe a lógica normal do arquivo e deve ser lida em conjunto com o bloco onde está inserida.
150 </div>Fecha a estrutura HTML aberta anteriormente, mantendo o documento bem formado.
151 Linha em branco usada para separar blocos e melhorar a leitura.
152 <div class="modal-footer">Estrutura o layout HTML da página, modal ou tabela mostrada ao usuário.
153 <button type="submit" class="btn btn-primary">Salvar</button>Renderiza um elemento de ação da interface, normalmente ligado a evento JavaScript ou navegação.
154 </div>Fecha a estrutura HTML aberta anteriormente, mantendo o documento bem formado.
155 </form>Fecha a estrutura HTML aberta anteriormente, mantendo o documento bem formado.
156 Linha em branco usada para separar blocos e melhorar a leitura.
157 </div>Fecha a estrutura HTML aberta anteriormente, mantendo o documento bem formado.
158 </div>Fecha a estrutura HTML aberta anteriormente, mantendo o documento bem formado.
159</div>Fecha a estrutura HTML aberta anteriormente, mantendo o documento bem formado.
160 Linha em branco usada para separar blocos e melhorar a leitura.
161<div class="modal fade" id="modalDados" tabindex="-1" role="dialog" aria-labelledby="exampleModalLabel" aria-hidden="true">Estrutura o layout HTML da página, modal ou tabela mostrada ao usuário.
162 <div class="modal-dialog modal-lg" role="document">Estrutura o layout HTML da página, modal ou tabela mostrada ao usuário.
163 <div class="modal-content">Estrutura o layout HTML da página, modal ou tabela mostrada ao usuário.
164 <div class="modal-header">Estrutura o layout HTML da página, modal ou tabela mostrada ao usuário.
165 <h4 class="modal-title" id="exampleModalLabel"><span id="nome_dados"></span></h4>Linha de implementação que compõe a lógica normal do arquivo e deve ser lida em conjunto com o bloco onde está inserida.
166 <button id="btn-fechar-perfil" type="button" class="close" data-dismiss="modal" aria-label="Close" style="margin-top: -20px">Renderiza um elemento de ação da interface, normalmente ligado a evento JavaScript ou navegação.
167 <span aria-hidden="true" >&times;</span>Linha de implementação que compõe a lógica normal do arquivo e deve ser lida em conjunto com o bloco onde está inserida.
168 </button>Fecha a estrutura HTML aberta anteriormente, mantendo o documento bem formado.
169 </div>Fecha a estrutura HTML aberta anteriormente, mantendo o documento bem formado.
170 Linha em branco usada para separar blocos e melhorar a leitura.
171 <div class="modal-body">Estrutura o layout HTML da página, modal ou tabela mostrada ao usuário.
172 Linha em branco usada para separar blocos e melhorar a leitura.
173 <input type="hidden" id="telefone_whatsapp_cliente">Renderiza um campo de entrada no HTML. O nome/id deste campo precisa bater com o JavaScript e com o backend.
174 Linha em branco usada para separar blocos e melhorar a leitura.
175 <div class="row" style="margin-bottom: 15px">Estrutura o layout HTML da página, modal ou tabela mostrada ao usuário.
176 <div class="col-md-6" align="center">Estrutura o layout HTML da página, modal ou tabela mostrada ao usuário.
177 <label>Foto Original</label><br>Linha de implementação que compõe a lógica normal do arquivo e deve ser lida em conjunto com o bloco onde está inserida.
178 <img id="foto_original_dados" src="" width="220px">Linha de implementação que compõe a lógica normal do arquivo e deve ser lida em conjunto com o bloco onde está inserida.
179 </div>Fecha a estrutura HTML aberta anteriormente, mantendo o documento bem formado.
180 <div class="col-md-6" align="center">Estrutura o layout HTML da página, modal ou tabela mostrada ao usuário.
181 <label>Imagem Simulada</label><br>Linha de implementação que compõe a lógica normal do arquivo e deve ser lida em conjunto com o bloco onde está inserida.
182 <img id="imagem_simulada_dados" src="" width="220px">Linha de implementação que compõe a lógica normal do arquivo e deve ser lida em conjunto com o bloco onde está inserida.
183 <div style="margin-top: 10px;">Estrutura o layout HTML da página, modal ou tabela mostrada ao usuário.
184 <a href="javascript:void(0)" onclick="enviarImagemWhatsapp()" class="btn btn-success btn-sm">Renderiza um elemento de ação da interface, normalmente ligado a evento JavaScript ou navegação.
185 <i class="fa fa-whatsapp"></i> Enviar no WhatsAppLinha de implementação que compõe a lógica normal do arquivo e deve ser lida em conjunto com o bloco onde está inserida.
186 </a>Fecha a estrutura HTML aberta anteriormente, mantendo o documento bem formado.
187 </div>Fecha a estrutura HTML aberta anteriormente, mantendo o documento bem formado.
188 </div>Fecha a estrutura HTML aberta anteriormente, mantendo o documento bem formado.
189 </div>Fecha a estrutura HTML aberta anteriormente, mantendo o documento bem formado.
190 Linha em branco usada para separar blocos e melhorar a leitura.
191 <div class="row" style="border-bottom: 1px solid #cac7c7;">Estrutura o layout HTML da página, modal ou tabela mostrada ao usuário.
192 <div class="col-md-4"> Estrutura o layout HTML da página, modal ou tabela mostrada ao usuário.
193 <span><b>Cliente: </b></span>Linha de implementação que compõe a lógica normal do arquivo e deve ser lida em conjunto com o bloco onde está inserida.
194 <span id="cliente_dados"></span>Linha de implementação que compõe a lógica normal do arquivo e deve ser lida em conjunto com o bloco onde está inserida.
195 </div> Fecha a estrutura HTML aberta anteriormente, mantendo o documento bem formado.
196 Linha em branco usada para separar blocos e melhorar a leitura.
197 <div class="col-md-4"> Estrutura o layout HTML da página, modal ou tabela mostrada ao usuário.
198 <span><b>Prótese: </b></span>Linha de implementação que compõe a lógica normal do arquivo e deve ser lida em conjunto com o bloco onde está inserida.
199 <span id="protese_dados"></span> Linha de implementação que compõe a lógica normal do arquivo e deve ser lida em conjunto com o bloco onde está inserida.
200 </div>Fecha a estrutura HTML aberta anteriormente, mantendo o documento bem formado.
201 Linha em branco usada para separar blocos e melhorar a leitura.
202 <div class="col-md-4"> Estrutura o layout HTML da página, modal ou tabela mostrada ao usuário.
203 <span><b>Data: </b></span>Linha de implementação que compõe a lógica normal do arquivo e deve ser lida em conjunto com o bloco onde está inserida.
204 <span id="data_simulacao_dados"></span> Linha de implementação que compõe a lógica normal do arquivo e deve ser lida em conjunto com o bloco onde está inserida.
205 </div>Fecha a estrutura HTML aberta anteriormente, mantendo o documento bem formado.
206 </div>Fecha a estrutura HTML aberta anteriormente, mantendo o documento bem formado.
207 Linha em branco usada para separar blocos e melhorar a leitura.
208 <div class="row" style="border-bottom: 1px solid #cac7c7;">Estrutura o layout HTML da página, modal ou tabela mostrada ao usuário.
209 <div class="col-md-12"> Estrutura o layout HTML da página, modal ou tabela mostrada ao usuário.
210 <span><b>Observações: </b></span>Linha de implementação que compõe a lógica normal do arquivo e deve ser lida em conjunto com o bloco onde está inserida.
211 <span id="observacoes_dados"></span>Linha de implementação que compõe a lógica normal do arquivo e deve ser lida em conjunto com o bloco onde está inserida.
212 </div> Fecha a estrutura HTML aberta anteriormente, mantendo o documento bem formado.
213 </div>Fecha a estrutura HTML aberta anteriormente, mantendo o documento bem formado.
214 Linha em branco usada para separar blocos e melhorar a leitura.
215 </div>Fecha a estrutura HTML aberta anteriormente, mantendo o documento bem formado.
216 </div>Fecha a estrutura HTML aberta anteriormente, mantendo o documento bem formado.
217 </div>Fecha a estrutura HTML aberta anteriormente, mantendo o documento bem formado.
218</div>Fecha a estrutura HTML aberta anteriormente, mantendo o documento bem formado.
219 Linha em branco usada para separar blocos e melhorar a leitura.
220<script type="text/javascript">var pag = "<?=$pag?>"</script>Guarda o identificador interno da página, normalmente usado pelo painel para permissões, destaque de menu ou callbacks.
221<script src="js/ajax.js"></script>Abre um bloco JavaScript usado para interações do front-end.
222 Linha em branco usada para separar blocos e melhorar a leitura.
223<script type="text/javascript">Abre um bloco JavaScript usado para interações do front-end.
224 $(document).ready( function () {Manipula uma variável PHP usada na construção do fluxo.
225 listarSimulacoes();Linha de implementação que compõe a lógica normal do arquivo e deve ser lida em conjunto com o bloco onde está inserida.
226 Linha em branco usada para separar blocos e melhorar a leitura.
227 $('.sel2').select2({Manipula uma variável PHP usada na construção do fluxo.
228 dropdownParent: $('#modalForm')Linha de implementação que compõe a lógica normal do arquivo e deve ser lida em conjunto com o bloco onde está inserida.
229 });Marca abertura/fechamento de bloco de código, objeto, array ou estrutura de controle.
230 } );Marca abertura/fechamento de bloco de código, objeto, array ou estrutura de controle.
231</script>Fecha a estrutura HTML aberta anteriormente, mantendo o documento bem formado.
232 Linha em branco usada para separar blocos e melhorar a leitura.
233<script type="text/javascript">Abre um bloco JavaScript usado para interações do front-end.
234function listarSimulacoes(pagina){Declara a função `listarSimulacoes`, responsável por uma parte específica do comportamento da página.
235 Linha em branco usada para separar blocos e melhorar a leitura.
236 $("#pagina").val(pagina);Manipula uma variável PHP usada na construção do fluxo.
237 Linha em branco usada para separar blocos e melhorar a leitura.
238 var busca = $("#buscar").val();Declara uma variável JavaScript usada pelo comportamento do front-end.
239 $.ajax({Manipula uma variável PHP usada na construção do fluxo.
240 url: 'paginas/' + pag + "/listar.php",Linha de implementação que compõe a lógica normal do arquivo e deve ser lida em conjunto com o bloco onde está inserida.
241 method: 'POST',Linha de implementação que compõe a lógica normal do arquivo e deve ser lida em conjunto com o bloco onde está inserida.
242 data: {busca, pagina},Linha de implementação que compõe a lógica normal do arquivo e deve ser lida em conjunto com o bloco onde está inserida.
243 dataType: "html",Linha de implementação que compõe a lógica normal do arquivo e deve ser lida em conjunto com o bloco onde está inserida.
244 Linha em branco usada para separar blocos e melhorar a leitura.
245 success:function(result){Linha de implementação que compõe a lógica normal do arquivo e deve ser lida em conjunto com o bloco onde está inserida.
246 $("#listar").html(result);Manipula uma variável PHP usada na construção do fluxo.
247 }Marca abertura/fechamento de bloco de código, objeto, array ou estrutura de controle.
248 });Marca abertura/fechamento de bloco de código, objeto, array ou estrutura de controle.
249}Marca abertura/fechamento de bloco de código, objeto, array ou estrutura de controle.
250</script>Fecha a estrutura HTML aberta anteriormente, mantendo o documento bem formado.
251 Linha em branco usada para separar blocos e melhorar a leitura.
252<script type="text/javascript">Abre um bloco JavaScript usado para interações do front-end.
253function mostrarNomeArquivosAtuais(){Declara a função `mostrarNomeArquivosAtuais`, responsável por uma parte específica do comportamento da página.
254 var foto_original_atual = $('#foto_original_atual').val();Declara uma variável JavaScript usada pelo comportamento do front-end.
255 var imagem_simulada_atual = $('#imagem_simulada_atual').val();Declara uma variável JavaScript usada pelo comportamento do front-end.
256 Linha em branco usada para separar blocos e melhorar a leitura.
257 if(foto_original_atual != ""){Abre uma condição para validar pré-requisitos ou desviar o fluxo conforme os dados recebidos.
258 $('#nome_foto_original_atual').text('Arquivo atual: ' + foto_original_atual);Manipula uma variável PHP usada na construção do fluxo.
259 }else{Marca abertura/fechamento de bloco de código, objeto, array ou estrutura de controle.
260 $('#nome_foto_original_atual').text('');Manipula uma variável PHP usada na construção do fluxo.
261 }Marca abertura/fechamento de bloco de código, objeto, array ou estrutura de controle.
262 Linha em branco usada para separar blocos e melhorar a leitura.
263 if(imagem_simulada_atual != ""){Abre uma condição para validar pré-requisitos ou desviar o fluxo conforme os dados recebidos.
264 $('#nome_imagem_simulada_atual').text('Arquivo atual: ' + imagem_simulada_atual);Manipula uma variável PHP usada na construção do fluxo.
265 }else{Marca abertura/fechamento de bloco de código, objeto, array ou estrutura de controle.
266 $('#nome_imagem_simulada_atual').text('');Manipula uma variável PHP usada na construção do fluxo.
267 }Marca abertura/fechamento de bloco de código, objeto, array ou estrutura de controle.
268}Marca abertura/fechamento de bloco de código, objeto, array ou estrutura de controle.
269</script>Fecha a estrutura HTML aberta anteriormente, mantendo o documento bem formado.
270 Linha em branco usada para separar blocos e melhorar a leitura.
271<script type="text/javascript">Abre um bloco JavaScript usado para interações do front-end.
272function mostrarPreviewAtual(){Declara a função `mostrarPreviewAtual`, responsável por uma parte específica do comportamento da página.
273 var foto_original_atual = $('#foto_original_atual').val();Declara uma variável JavaScript usada pelo comportamento do front-end.
274 var imagem_simulada_atual = $('#imagem_simulada_atual').val();Declara uma variável JavaScript usada pelo comportamento do front-end.
275 Linha em branco usada para separar blocos e melhorar a leitura.
276 if(foto_original_atual != ""){Abre uma condição para validar pré-requisitos ou desviar o fluxo conforme os dados recebidos.
277 $('#preview_foto_original').attr('src', 'images/simulacoes/' + foto_original_atual + '?v=' + new Date().getTime());Manipula uma variável PHP usada na construção do fluxo.
278 $('#area_preview_foto_original').show();Manipula uma variável PHP usada na construção do fluxo.
279 }else{Marca abertura/fechamento de bloco de código, objeto, array ou estrutura de controle.
280 $('#preview_foto_original').attr('src', '');Manipula uma variável PHP usada na construção do fluxo.
281 $('#area_preview_foto_original').hide();Manipula uma variável PHP usada na construção do fluxo.
282 }Marca abertura/fechamento de bloco de código, objeto, array ou estrutura de controle.
283 Linha em branco usada para separar blocos e melhorar a leitura.
284 if(imagem_simulada_atual != ""){Abre uma condição para validar pré-requisitos ou desviar o fluxo conforme os dados recebidos.
285 $('#preview_imagem_simulada').attr('src', 'images/simulacoes/' + imagem_simulada_atual + '?v=' + new Date().getTime());Manipula uma variável PHP usada na construção do fluxo.
286 $('#area_preview_imagem_simulada').show();Manipula uma variável PHP usada na construção do fluxo.
287 }else{Marca abertura/fechamento de bloco de código, objeto, array ou estrutura de controle.
288 $('#preview_imagem_simulada').attr('src', '');Manipula uma variável PHP usada na construção do fluxo.
289 $('#area_preview_imagem_simulada').hide();Manipula uma variável PHP usada na construção do fluxo.
290 }Marca abertura/fechamento de bloco de código, objeto, array ou estrutura de controle.
291}Marca abertura/fechamento de bloco de código, objeto, array ou estrutura de controle.
292</script>Fecha a estrutura HTML aberta anteriormente, mantendo o documento bem formado.
293 Linha em branco usada para separar blocos e melhorar a leitura.
294<script type="text/javascript">Abre um bloco JavaScript usado para interações do front-end.
295function mostrarPreviewArquivo(input, idImagem, idArea){Declara a função `mostrarPreviewArquivo`, responsável por uma parte específica do comportamento da página.
296 if(input.files && input.files[0]){Abre uma condição para validar pré-requisitos ou desviar o fluxo conforme os dados recebidos.
297 var reader = new FileReader();Declara uma variável JavaScript usada pelo comportamento do front-end.
298 Linha em branco usada para separar blocos e melhorar a leitura.
299 reader.onload = function(e){Linha de implementação que compõe a lógica normal do arquivo e deve ser lida em conjunto com o bloco onde está inserida.
300 $(idImagem).attr('src', e.target.result);Manipula uma variável PHP usada na construção do fluxo.
301 $(idArea).show();Manipula uma variável PHP usada na construção do fluxo.
302 }Marca abertura/fechamento de bloco de código, objeto, array ou estrutura de controle.
303 Linha em branco usada para separar blocos e melhorar a leitura.
304 reader.readAsDataURL(input.files[0]);Linha de implementação que compõe a lógica normal do arquivo e deve ser lida em conjunto com o bloco onde está inserida.
305 }Marca abertura/fechamento de bloco de código, objeto, array ou estrutura de controle.
306}Marca abertura/fechamento de bloco de código, objeto, array ou estrutura de controle.
307</script>Fecha a estrutura HTML aberta anteriormente, mantendo o documento bem formado.
308 Linha em branco usada para separar blocos e melhorar a leitura.
309<script type="text/javascript">Abre um bloco JavaScript usado para interações do front-end.
310$('#foto_original').change(function(){Manipula uma variável PHP usada na construção do fluxo.
311 var arquivo = $(this).val().split('\\').pop();Declara uma variável JavaScript usada pelo comportamento do front-end.
312 Linha em branco usada para separar blocos e melhorar a leitura.
313 if(arquivo != ""){Abre uma condição para validar pré-requisitos ou desviar o fluxo conforme os dados recebidos.
314 $('#nome_foto_original_atual').text('Novo arquivo: ' + arquivo);Manipula uma variável PHP usada na construção do fluxo.
315 mostrarPreviewArquivo(this, '#preview_foto_original', '#area_preview_foto_original');Linha de implementação que compõe a lógica normal do arquivo e deve ser lida em conjunto com o bloco onde está inserida.
316 }else{Marca abertura/fechamento de bloco de código, objeto, array ou estrutura de controle.
317 mostrarNomeArquivosAtuais();Linha de implementação que compõe a lógica normal do arquivo e deve ser lida em conjunto com o bloco onde está inserida.
318 mostrarPreviewAtual();Linha de implementação que compõe a lógica normal do arquivo e deve ser lida em conjunto com o bloco onde está inserida.
319 }Marca abertura/fechamento de bloco de código, objeto, array ou estrutura de controle.
320});Marca abertura/fechamento de bloco de código, objeto, array ou estrutura de controle.
321</script>Fecha a estrutura HTML aberta anteriormente, mantendo o documento bem formado.
322 Linha em branco usada para separar blocos e melhorar a leitura.
323<script type="text/javascript">Abre um bloco JavaScript usado para interações do front-end.
324$('#imagem_simulada').change(function(){Manipula uma variável PHP usada na construção do fluxo.
325 var arquivo = $(this).val().split('\\').pop();Declara uma variável JavaScript usada pelo comportamento do front-end.
326 Linha em branco usada para separar blocos e melhorar a leitura.
327 if(arquivo != ""){Abre uma condição para validar pré-requisitos ou desviar o fluxo conforme os dados recebidos.
328 $('#nome_imagem_simulada_atual').text('Novo arquivo: ' + arquivo);Manipula uma variável PHP usada na construção do fluxo.
329 mostrarPreviewArquivo(this, '#preview_imagem_simulada', '#area_preview_imagem_simulada');Linha de implementação que compõe a lógica normal do arquivo e deve ser lida em conjunto com o bloco onde está inserida.
330 }else{Marca abertura/fechamento de bloco de código, objeto, array ou estrutura de controle.
331 mostrarNomeArquivosAtuais();Linha de implementação que compõe a lógica normal do arquivo e deve ser lida em conjunto com o bloco onde está inserida.
332 mostrarPreviewAtual();Linha de implementação que compõe a lógica normal do arquivo e deve ser lida em conjunto com o bloco onde está inserida.
333 }Marca abertura/fechamento de bloco de código, objeto, array ou estrutura de controle.
334});Marca abertura/fechamento de bloco de código, objeto, array ou estrutura de controle.
335</script>Fecha a estrutura HTML aberta anteriormente, mantendo o documento bem formado.
336 Linha em branco usada para separar blocos e melhorar a leitura.
337<script type="text/javascript">Abre um bloco JavaScript usado para interações do front-end.
338$('#modalForm').on('shown.bs.modal', function () {Manipula uma variável PHP usada na construção do fluxo.
339 mostrarNomeArquivosAtuais();Linha de implementação que compõe a lógica normal do arquivo e deve ser lida em conjunto com o bloco onde está inserida.
340 mostrarPreviewAtual();Linha de implementação que compõe a lógica normal do arquivo e deve ser lida em conjunto com o bloco onde está inserida.
341});Marca abertura/fechamento de bloco de código, objeto, array ou estrutura de controle.
342</script>Fecha a estrutura HTML aberta anteriormente, mantendo o documento bem formado.
343 Linha em branco usada para separar blocos e melhorar a leitura.
344<script type="text/javascript">Abre um bloco JavaScript usado para interações do front-end.
345$('#modalForm').on('hidden.bs.modal', function () {Manipula uma variável PHP usada na construção do fluxo.
346 $('#nome_foto_original_atual').text('');Manipula uma variável PHP usada na construção do fluxo.
347 $('#nome_imagem_simulada_atual').text('');Manipula uma variável PHP usada na construção do fluxo.
348 $('#preview_foto_original').attr('src', '');Manipula uma variável PHP usada na construção do fluxo.
349 $('#preview_imagem_simulada').attr('src', '');Manipula uma variável PHP usada na construção do fluxo.
350 $('#area_preview_foto_original').hide();Manipula uma variável PHP usada na construção do fluxo.
351 $('#area_preview_imagem_simulada').hide();Manipula uma variável PHP usada na construção do fluxo.
352 $('#foto_original').val('');Manipula uma variável PHP usada na construção do fluxo.
353 $('#imagem_simulada').val('');Manipula uma variável PHP usada na construção do fluxo.
354 $('#mensagem').text('');Manipula uma variável PHP usada na construção do fluxo.
355 $('#mensagem_ia').text('');Manipula uma variável PHP usada na construção do fluxo.
356 $('#mensagem').removeClass();Manipula uma variável PHP usada na construção do fluxo.
357 $('#mensagem_ia').removeClass();Manipula uma variável PHP usada na construção do fluxo.
358 $('#btnGerarIA').data('processando', false);Manipula uma variável PHP usada na construção do fluxo.
359 $('#btnGerarIA').prop('disabled', false);Manipula uma variável PHP usada na construção do fluxo.
360 $('#iconGerarIA').removeClass();Manipula uma variável PHP usada na construção do fluxo.
361 $('#iconGerarIA').addClass('fa fa-magic');Manipula uma variável PHP usada na construção do fluxo.
362});Marca abertura/fechamento de bloco de código, objeto, array ou estrutura de controle.
363</script>Fecha a estrutura HTML aberta anteriormente, mantendo o documento bem formado.
364 Linha em branco usada para separar blocos e melhorar a leitura.
365<script type="text/javascript">Abre um bloco JavaScript usado para interações do front-end.
366$("#form_simulacao").submit(function () {Manipula uma variável PHP usada na construção do fluxo.
367 Linha em branco usada para separar blocos e melhorar a leitura.
368 event.preventDefault();Linha de implementação que compõe a lógica normal do arquivo e deve ser lida em conjunto com o bloco onde está inserida.
369 var formData = new FormData(this);Declara uma variável JavaScript usada pelo comportamento do front-end.
370 Linha em branco usada para separar blocos e melhorar a leitura.
371 $.ajax({Manipula uma variável PHP usada na construção do fluxo.
372 url: 'paginas/' + pag + "/salvar.php",Linha de implementação que compõe a lógica normal do arquivo e deve ser lida em conjunto com o bloco onde está inserida.
373 type: 'POST',Linha de implementação que compõe a lógica normal do arquivo e deve ser lida em conjunto com o bloco onde está inserida.
374 data: formData,Linha de implementação que compõe a lógica normal do arquivo e deve ser lida em conjunto com o bloco onde está inserida.
375 Linha em branco usada para separar blocos e melhorar a leitura.
376 success: function (mensagem) {Linha de implementação que compõe a lógica normal do arquivo e deve ser lida em conjunto com o bloco onde está inserida.
377 $('#mensagem').text('');Manipula uma variável PHP usada na construção do fluxo.
378 $('#mensagem').removeClass()Manipula uma variável PHP usada na construção do fluxo.
379 if (mensagem.trim() == "Salvo com Sucesso") {Abre uma condição para validar pré-requisitos ou desviar o fluxo conforme os dados recebidos.
380 Linha em branco usada para separar blocos e melhorar a leitura.
381 $('#btn-fechar').click();Manipula uma variável PHP usada na construção do fluxo.
382 Linha em branco usada para separar blocos e melhorar a leitura.
383 var pagina = $("#pagina").val();Declara uma variável JavaScript usada pelo comportamento do front-end.
384 listarSimulacoes(pagina);Linha de implementação que compõe a lógica normal do arquivo e deve ser lida em conjunto com o bloco onde está inserida.
385 Linha em branco usada para separar blocos e melhorar a leitura.
386 } else {Marca abertura/fechamento de bloco de código, objeto, array ou estrutura de controle.
387 $('#mensagem').addClass('text-danger')Manipula uma variável PHP usada na construção do fluxo.
388 $('#mensagem').text(mensagem)Manipula uma variável PHP usada na construção do fluxo.
389 }Marca abertura/fechamento de bloco de código, objeto, array ou estrutura de controle.
390 Linha em branco usada para separar blocos e melhorar a leitura.
391 },Marca abertura/fechamento de bloco de código, objeto, array ou estrutura de controle.
392 Linha em branco usada para separar blocos e melhorar a leitura.
393 cache: false,Linha de implementação que compõe a lógica normal do arquivo e deve ser lida em conjunto com o bloco onde está inserida.
394 contentType: false,Linha de implementação que compõe a lógica normal do arquivo e deve ser lida em conjunto com o bloco onde está inserida.
395 processData: false,Linha de implementação que compõe a lógica normal do arquivo e deve ser lida em conjunto com o bloco onde está inserida.
396 Linha em branco usada para separar blocos e melhorar a leitura.
397 });Marca abertura/fechamento de bloco de código, objeto, array ou estrutura de controle.
398 Linha em branco usada para separar blocos e melhorar a leitura.
399});Marca abertura/fechamento de bloco de código, objeto, array ou estrutura de controle.
400</script>Fecha a estrutura HTML aberta anteriormente, mantendo o documento bem formado.
401 Linha em branco usada para separar blocos e melhorar a leitura.
402<script type="text/javascript">Abre um bloco JavaScript usado para interações do front-end.
403function excluir(id){Declara a função `excluir`, responsável por uma parte específica do comportamento da página.
404 $.ajax({Manipula uma variável PHP usada na construção do fluxo.
405 url: 'paginas/' + pag + "/excluir.php",Linha de implementação que compõe a lógica normal do arquivo e deve ser lida em conjunto com o bloco onde está inserida.
406 method: 'POST',Linha de implementação que compõe a lógica normal do arquivo e deve ser lida em conjunto com o bloco onde está inserida.
407 data: {id},Linha de implementação que compõe a lógica normal do arquivo e deve ser lida em conjunto com o bloco onde está inserida.
408 dataType: "text",Linha de implementação que compõe a lógica normal do arquivo e deve ser lida em conjunto com o bloco onde está inserida.
409 Linha em branco usada para separar blocos e melhorar a leitura.
410 success: function (mensagem) { Linha de implementação que compõe a lógica normal do arquivo e deve ser lida em conjunto com o bloco onde está inserida.
411 if (mensagem.trim() == "Excluído com Sucesso") { Abre uma condição para validar pré-requisitos ou desviar o fluxo conforme os dados recebidos.
412 var pagina = $("#pagina").val();Declara uma variável JavaScript usada pelo comportamento do front-end.
413 listarSimulacoes(pagina);Linha de implementação que compõe a lógica normal do arquivo e deve ser lida em conjunto com o bloco onde está inserida.
414 } else {Marca abertura/fechamento de bloco de código, objeto, array ou estrutura de controle.
415 $('#mensagem-excluir').addClass('text-danger')Manipula uma variável PHP usada na construção do fluxo.
416 $('#mensagem-excluir').text(mensagem)Manipula uma variável PHP usada na construção do fluxo.
417 }Marca abertura/fechamento de bloco de código, objeto, array ou estrutura de controle.
418 Linha em branco usada para separar blocos e melhorar a leitura.
419 }, Marca abertura/fechamento de bloco de código, objeto, array ou estrutura de controle.
420 Linha em branco usada para separar blocos e melhorar a leitura.
421 });Marca abertura/fechamento de bloco de código, objeto, array ou estrutura de controle.
422}Marca abertura/fechamento de bloco de código, objeto, array ou estrutura de controle.
423</script>Fecha a estrutura HTML aberta anteriormente, mantendo o documento bem formado.
424 Linha em branco usada para separar blocos e melhorar a leitura.
425<script type="text/javascript">Abre um bloco JavaScript usado para interações do front-end.
426function gerarIAmodal(){Declara a função `gerarIAmodal`, responsável por uma parte específica do comportamento da página.
427 Linha em branco usada para separar blocos e melhorar a leitura.
428 var id = $('#id').val();Declara uma variável JavaScript usada pelo comportamento do front-end.
429 var botao = $('#btnGerarIA');Declara uma variável JavaScript usada pelo comportamento do front-end.
430 var icone = $('#iconGerarIA');Declara uma variável JavaScript usada pelo comportamento do front-end.
431 Linha em branco usada para separar blocos e melhorar a leitura.
432 $('#mensagem_ia').text('');Manipula uma variável PHP usada na construção do fluxo.
433 $('#mensagem_ia').removeClass();Manipula uma variável PHP usada na construção do fluxo.
434 Linha em branco usada para separar blocos e melhorar a leitura.
435 if(id == ""){Abre uma condição para validar pré-requisitos ou desviar o fluxo conforme os dados recebidos.
436 $('#mensagem_ia').addClass('text-danger');Manipula uma variável PHP usada na construção do fluxo.
437 $('#mensagem_ia').text('Primeiro salve o registro para gerar a simulação com IA');Manipula uma variável PHP usada na construção do fluxo.
438 return;Linha de implementação que compõe a lógica normal do arquivo e deve ser lida em conjunto com o bloco onde está inserida.
439 }Marca abertura/fechamento de bloco de código, objeto, array ou estrutura de controle.
440 Linha em branco usada para separar blocos e melhorar a leitura.
441 if(botao.data('processando') == true){Abre uma condição para validar pré-requisitos ou desviar o fluxo conforme os dados recebidos.
442 return;Linha de implementação que compõe a lógica normal do arquivo e deve ser lida em conjunto com o bloco onde está inserida.
443 }Marca abertura/fechamento de bloco de código, objeto, array ou estrutura de controle.
444 Linha em branco usada para separar blocos e melhorar a leitura.
445 botao.data('processando', true);Linha de implementação que compõe a lógica normal do arquivo e deve ser lida em conjunto com o bloco onde está inserida.
446 botao.prop('disabled', true);Linha de implementação que compõe a lógica normal do arquivo e deve ser lida em conjunto com o bloco onde está inserida.
447 Linha em branco usada para separar blocos e melhorar a leitura.
448 icone.removeClass();Linha de implementação que compõe a lógica normal do arquivo e deve ser lida em conjunto com o bloco onde está inserida.
449 icone.addClass('fa fa-spinner fa-spin');Linha de implementação que compõe a lógica normal do arquivo e deve ser lida em conjunto com o bloco onde está inserida.
450 Linha em branco usada para separar blocos e melhorar a leitura.
451 $('#mensagem_ia').addClass('text-info');Manipula uma variável PHP usada na construção do fluxo.
452 $('#mensagem_ia').text('Gerando simulação com IA...');Manipula uma variável PHP usada na construção do fluxo.
453 Linha em branco usada para separar blocos e melhorar a leitura.
454 $.ajax({Manipula uma variável PHP usada na construção do fluxo.
455 url: 'paginas/simulador/gerar_ia.php',Linha de implementação que compõe a lógica normal do arquivo e deve ser lida em conjunto com o bloco onde está inserida.
456 method: 'POST',Linha de implementação que compõe a lógica normal do arquivo e deve ser lida em conjunto com o bloco onde está inserida.
457 data: {id},Linha de implementação que compõe a lógica normal do arquivo e deve ser lida em conjunto com o bloco onde está inserida.
458 dataType: "text",Linha de implementação que compõe a lógica normal do arquivo e deve ser lida em conjunto com o bloco onde está inserida.
459 Linha em branco usada para separar blocos e melhorar a leitura.
460 success: function (mensagem) {Linha de implementação que compõe a lógica normal do arquivo e deve ser lida em conjunto com o bloco onde está inserida.
461 Linha em branco usada para separar blocos e melhorar a leitura.
462 botao.data('processando', false);Linha de implementação que compõe a lógica normal do arquivo e deve ser lida em conjunto com o bloco onde está inserida.
463 botao.prop('disabled', false);Linha de implementação que compõe a lógica normal do arquivo e deve ser lida em conjunto com o bloco onde está inserida.
464 Linha em branco usada para separar blocos e melhorar a leitura.
465 icone.removeClass();Linha de implementação que compõe a lógica normal do arquivo e deve ser lida em conjunto com o bloco onde está inserida.
466 icone.addClass('fa fa-magic');Linha de implementação que compõe a lógica normal do arquivo e deve ser lida em conjunto com o bloco onde está inserida.
467 Linha em branco usada para separar blocos e melhorar a leitura.
468 $('#mensagem_ia').removeClass();Manipula uma variável PHP usada na construção do fluxo.
469 Linha em branco usada para separar blocos e melhorar a leitura.
470 if (mensagem.trim() == "Salvo com Sucesso") {Abre uma condição para validar pré-requisitos ou desviar o fluxo conforme os dados recebidos.
471 Linha em branco usada para separar blocos e melhorar a leitura.
472 $('#mensagem_ia').addClass('text-success');Manipula uma variável PHP usada na construção do fluxo.
473 $('#mensagem_ia').text('Simulação gerada com sucesso');Manipula uma variável PHP usada na construção do fluxo.
474 Linha em branco usada para separar blocos e melhorar a leitura.
475 var pagina = $("#pagina").val();Declara uma variável JavaScript usada pelo comportamento do front-end.
476 listarSimulacoes(pagina);Linha de implementação que compõe a lógica normal do arquivo e deve ser lida em conjunto com o bloco onde está inserida.
477 Linha em branco usada para separar blocos e melhorar a leitura.
478 $.ajax({Manipula uma variável PHP usada na construção do fluxo.
479 url: 'paginas/simulador/buscar.php',Linha de implementação que compõe a lógica normal do arquivo e deve ser lida em conjunto com o bloco onde está inserida.
480 method: 'POST',Linha de implementação que compõe a lógica normal do arquivo e deve ser lida em conjunto com o bloco onde está inserida.
481 data: {id},Linha de implementação que compõe a lógica normal do arquivo e deve ser lida em conjunto com o bloco onde está inserida.
482 dataType: "json",Linha de implementação que compõe a lógica normal do arquivo e deve ser lida em conjunto com o bloco onde está inserida.
483 Linha em branco usada para separar blocos e melhorar a leitura.
484 success: function (dados) {Linha de implementação que compõe a lógica normal do arquivo e deve ser lida em conjunto com o bloco onde está inserida.
485 Linha em branco usada para separar blocos e melhorar a leitura.
486 if(dados.foto_original != undefined){Abre uma condição para validar pré-requisitos ou desviar o fluxo conforme os dados recebidos.
487 $('#foto_original_atual').val(dados.foto_original);Manipula uma variável PHP usada na construção do fluxo.
488 }Marca abertura/fechamento de bloco de código, objeto, array ou estrutura de controle.
489 Linha em branco usada para separar blocos e melhorar a leitura.
490 if(dados.imagem_simulada != undefined){Abre uma condição para validar pré-requisitos ou desviar o fluxo conforme os dados recebidos.
491 $('#imagem_simulada_atual').val(dados.imagem_simulada);Manipula uma variável PHP usada na construção do fluxo.
492 }Marca abertura/fechamento de bloco de código, objeto, array ou estrutura de controle.
493 Linha em branco usada para separar blocos e melhorar a leitura.
494 if(typeof mostrarNomeArquivosAtuais === 'function'){Abre uma condição para validar pré-requisitos ou desviar o fluxo conforme os dados recebidos.
495 mostrarNomeArquivosAtuais();Linha de implementação que compõe a lógica normal do arquivo e deve ser lida em conjunto com o bloco onde está inserida.
496 }Marca abertura/fechamento de bloco de código, objeto, array ou estrutura de controle.
497 Linha em branco usada para separar blocos e melhorar a leitura.
498 if(typeof mostrarPreviewAtual === 'function'){Abre uma condição para validar pré-requisitos ou desviar o fluxo conforme os dados recebidos.
499 mostrarPreviewAtual();Linha de implementação que compõe a lógica normal do arquivo e deve ser lida em conjunto com o bloco onde está inserida.
500 }Marca abertura/fechamento de bloco de código, objeto, array ou estrutura de controle.
501 }Marca abertura/fechamento de bloco de código, objeto, array ou estrutura de controle.
502 });Marca abertura/fechamento de bloco de código, objeto, array ou estrutura de controle.
503 Linha em branco usada para separar blocos e melhorar a leitura.
504 }else{Marca abertura/fechamento de bloco de código, objeto, array ou estrutura de controle.
505 Linha em branco usada para separar blocos e melhorar a leitura.
506 $('#mensagem_ia').addClass('text-danger');Manipula uma variável PHP usada na construção do fluxo.
507 $('#mensagem_ia').text(mensagem);Manipula uma variável PHP usada na construção do fluxo.
508 Linha em branco usada para separar blocos e melhorar a leitura.
509 }Marca abertura/fechamento de bloco de código, objeto, array ou estrutura de controle.
510 },Marca abertura/fechamento de bloco de código, objeto, array ou estrutura de controle.
511 Linha em branco usada para separar blocos e melhorar a leitura.
512 error: function () {Linha de implementação que compõe a lógica normal do arquivo e deve ser lida em conjunto com o bloco onde está inserida.
513 Linha em branco usada para separar blocos e melhorar a leitura.
514 botao.data('processando', false);Linha de implementação que compõe a lógica normal do arquivo e deve ser lida em conjunto com o bloco onde está inserida.
515 botao.prop('disabled', false);Linha de implementação que compõe a lógica normal do arquivo e deve ser lida em conjunto com o bloco onde está inserida.
516 Linha em branco usada para separar blocos e melhorar a leitura.
517 icone.removeClass();Linha de implementação que compõe a lógica normal do arquivo e deve ser lida em conjunto com o bloco onde está inserida.
518 icone.addClass('fa fa-magic');Linha de implementação que compõe a lógica normal do arquivo e deve ser lida em conjunto com o bloco onde está inserida.
519 Linha em branco usada para separar blocos e melhorar a leitura.
520 $('#mensagem_ia').removeClass();Manipula uma variável PHP usada na construção do fluxo.
521 $('#mensagem_ia').addClass('text-danger');Manipula uma variável PHP usada na construção do fluxo.
522 $('#mensagem_ia').text('Erro ao processar a simulação com IA');Manipula uma variável PHP usada na construção do fluxo.
523 Linha em branco usada para separar blocos e melhorar a leitura.
524 }Marca abertura/fechamento de bloco de código, objeto, array ou estrutura de controle.
525 });Marca abertura/fechamento de bloco de código, objeto, array ou estrutura de controle.
526}Marca abertura/fechamento de bloco de código, objeto, array ou estrutura de controle.
527</script>Fecha a estrutura HTML aberta anteriormente, mantendo o documento bem formado.
528 Linha em branco usada para separar blocos e melhorar a leitura.
529<script type="text/javascript">Abre um bloco JavaScript usado para interações do front-end.
530function abrirCanvas(){Declara a função `abrirCanvas`, responsável por uma parte específica do comportamento da página.
531 var id = $('#id').val();Declara uma variável JavaScript usada pelo comportamento do front-end.
532 Linha em branco usada para separar blocos e melhorar a leitura.
533 if(id == ""){Abre uma condição para validar pré-requisitos ou desviar o fluxo conforme os dados recebidos.
534 $('#mensagem_ia').removeClass();Manipula uma variável PHP usada na construção do fluxo.
535 $('#mensagem_ia').addClass('text-danger');Manipula uma variável PHP usada na construção do fluxo.
536 $('#mensagem_ia').text('Primeiro salve o registro para abrir o canvas');Manipula uma variável PHP usada na construção do fluxo.
537 return;Linha de implementação que compõe a lógica normal do arquivo e deve ser lida em conjunto com o bloco onde está inserida.
538 }Marca abertura/fechamento de bloco de código, objeto, array ou estrutura de controle.
539 Linha em branco usada para separar blocos e melhorar a leitura.
540 window.open('paginas/simulador/canvas.php?id=' + id, '_blank');Linha de implementação que compõe a lógica normal do arquivo e deve ser lida em conjunto com o bloco onde está inserida.
541}Marca abertura/fechamento de bloco de código, objeto, array ou estrutura de controle.
542</script>Fecha a estrutura HTML aberta anteriormente, mantendo o documento bem formado.
543 Linha em branco usada para separar blocos e melhorar a leitura.
544<script type="text/javascript">Abre um bloco JavaScript usado para interações do front-end.
545function enviarImagemWhatsapp(){Declara a função `enviarImagemWhatsapp`, responsável por uma parte específica do comportamento da página.
546 var telefone = $('#telefone_whatsapp_cliente').val();Declara uma variável JavaScript usada pelo comportamento do front-end.
547 var imagem = $('#imagem_simulada_dados').attr('src');Declara uma variável JavaScript usada pelo comportamento do front-end.
548 var cliente = $('#cliente_dados').text();Declara uma variável JavaScript usada pelo comportamento do front-end.
549 Linha em branco usada para separar blocos e melhorar a leitura.
550 if(telefone == ""){Abre uma condição para validar pré-requisitos ou desviar o fluxo conforme os dados recebidos.
551 alert('Cliente não possui telefone cadastrado.');Linha de implementação que compõe a lógica normal do arquivo e deve ser lida em conjunto com o bloco onde está inserida.
552 return;Linha de implementação que compõe a lógica normal do arquivo e deve ser lida em conjunto com o bloco onde está inserida.
553 }Marca abertura/fechamento de bloco de código, objeto, array ou estrutura de controle.
554 Linha em branco usada para separar blocos e melhorar a leitura.
555 if(imagem == ""){Abre uma condição para validar pré-requisitos ou desviar o fluxo conforme os dados recebidos.
556 alert('Nenhuma imagem simulada disponível.');Linha de implementação que compõe a lógica normal do arquivo e deve ser lida em conjunto com o bloco onde está inserida.
557 return;Linha de implementação que compõe a lógica normal do arquivo e deve ser lida em conjunto com o bloco onde está inserida.
558 }Marca abertura/fechamento de bloco de código, objeto, array ou estrutura de controle.
559 Linha em branco usada para separar blocos e melhorar a leitura.
560 telefone = telefone.replace(/\D/g, '');Linha de implementação que compõe a lógica normal do arquivo e deve ser lida em conjunto com o bloco onde está inserida.
561 Linha em branco usada para separar blocos e melhorar a leitura.
562 if(telefone == ""){Abre uma condição para validar pré-requisitos ou desviar o fluxo conforme os dados recebidos.
563 alert('Telefone do cliente inválido.');Linha de implementação que compõe a lógica normal do arquivo e deve ser lida em conjunto com o bloco onde está inserida.
564 return;Linha de implementação que compõe a lógica normal do arquivo e deve ser lida em conjunto com o bloco onde está inserida.
565 }Marca abertura/fechamento de bloco de código, objeto, array ou estrutura de controle.
566 Linha em branco usada para separar blocos e melhorar a leitura.
567 var nome_imagem = imagem.split('/').pop().split('?')[0];Declara uma variável JavaScript usada pelo comportamento do front-end.
568 var url_imagem = window.location.origin + '/sistema/painel/images/simulacoes/' + nome_imagem;Declara uma variável JavaScript usada pelo comportamento do front-end.
569 Linha em branco usada para separar blocos e melhorar a leitura.
570 var texto = 'Olá ' + cliente + ', segue sua simulação de prótese: ' + url_imagem;Declara uma variável JavaScript usada pelo comportamento do front-end.
571 var url = '';Declara uma variável JavaScript usada pelo comportamento do front-end.
572 Linha em branco usada para separar blocos e melhorar a leitura.
573 if(/Android|iPhone|iPad|iPod/i.test(navigator.userAgent)){Abre uma condição para validar pré-requisitos ou desviar o fluxo conforme os dados recebidos.
574 url = 'https://api.whatsapp.com/send?phone=55' + telefone + '&text=' + encodeURIComponent(texto);Linha de implementação que compõe a lógica normal do arquivo e deve ser lida em conjunto com o bloco onde está inserida.
575 }else{Marca abertura/fechamento de bloco de código, objeto, array ou estrutura de controle.
576 url = 'https://web.whatsapp.com/send?phone=55' + telefone + '&text=' + encodeURIComponent(texto);Linha de implementação que compõe a lógica normal do arquivo e deve ser lida em conjunto com o bloco onde está inserida.
577 }Marca abertura/fechamento de bloco de código, objeto, array ou estrutura de controle.
578 Linha em branco usada para separar blocos e melhorar a leitura.
579 window.open(url, '_blank');Linha de implementação que compõe a lógica normal do arquivo e deve ser lida em conjunto com o bloco onde está inserida.
580}Marca abertura/fechamento de bloco de código, objeto, array ou estrutura de controle.
581</script>Fecha a estrutura HTML aberta anteriormente, mantendo o documento bem formado.

Navegação entre arquivos do grupo