1jQuery(document).ready(function($){ 2 3function xpertionShowTaxasLoading(){ 4 if(jQuery('#xpertion-taxas-loading').length){ 5 return; 6 } 7 var html = 8 '<div id="xpertion-taxas-loading" class="xpertion-taxas-loading" role="status" aria-live="polite">' + 9 '<span class="xpertion-taxas-spinner" aria-hidden="true"></span>' + 10 '<span class="xpertion-taxas-loading-text">Verificando taxas automáticas (fim de semana e feriados)...</span>' + 11 '</div>'; 12 var target = jQuery('[data-field="itens-obrigatorioss"]').first(); 13 if(!target.length){ 14 target = jQuery('.jet-form').first(); 15 } 16 if(target.length){ 17 target.prepend(html); 18 } else { 19 jQuery('body').prepend(html); 20 } 21} 22 23function xpertionHideTaxasLoading(){ 24 jQuery('#xpertion-taxas-loading').fadeOut(200, function(){ 25 jQuery(this).remove(); 26 }); 27} 28 29function xpertionApplyReservaTaxas(){ 30 var _dates__in = sessionStorage.getItem('_dates__in'); 31 var _dates__out = sessionStorage.getItem('_dates__out'); 32 if(!_dates__in || !_dates__out){ 33 xpertionHideTaxasLoading(); 34 return; 35 } 36 _dates__in = _dates__in.split('/').reverse().join('-'); 37 _dates__out = _dates__out.split('/').reverse().join('-'); 38 _dates__in = new Date(_dates__in); 39 _dates__out = new Date(_dates__out); 40 if(_dates__out.getDay()===6||_dates__out.getDay()===5){ 41 jQuery('[name^="qtd-option-taxa-fds"]').val(parseInt(jQuery('[name^="qtd-option-taxa-fds"]').val())+1).trigger('change'); 42 jQuery('span[for="option-taxa-fds-290"]').trigger('click'); 43 sessionStorage.setItem('seguro_viagem',jQuery('[id^="option-taxa-fds"]').val()); 44 jQuery('[name^="qtd-option-taxa-fds"]').attr('disabled',true); 45 try { 46 jQuery('[name^="qtd-option-taxa-fds"]').parent().parent().show() 47 } catch (error) { 48 49 } 50 51 } 52 if(_dates__in.getDay()==6||_dates__in.getDay()==5){ 53 jQuery('[name^="qtd-option-taxa-fds"]').val(parseInt(jQuery('[name^="qtd-option-taxa-fds"]').val())+1).trigger('change'); 54 jQuery('span[for="option-taxa-fds-290"]').trigger('click'); 55 sessionStorage.setItem('seguro_viagem',jQuery('[id^="option-taxa-fds"]').val()); 56 jQuery('[name^="qtd-option-taxa-fds"]').attr('disabled',true); 57 try { 58 jQuery('[name^="qtd-option-taxa-fds"]').parent().parent().show() 59 } catch (error) { 60 61 } 62 } 63 64 if(typeof ajax_object !== 'undefined'){ 65 jQuery.post({ 66 url: ajax_object.ajax_url, 67 dataType: 'json', 68 data: { 69 action: 'xpertion_check_reserva_taxas', 70 pickup: sessionStorage.getItem('_dates__in'), 71 dropoff: sessionStorage.getItem('_dates__out'), 72 }, 73 success: function(response){ 74 if(!response || !response.success || !response.data){ 75 return; 76 } 77 if(response.data.test_mode){ 78 console.log('[taxa-feriado] modo teste', response.data); 79 } 80 var n = parseInt(response.data.holiday_events, 10) || 0; 81 if(n <= 0){ 82 return; 83 } 84 var input = jQuery('[name^="qtd-option-taxa-feriado"]'); 85 if(!input.length){ 86 return; 87 } 88 if(response.data.holiday_label_html){ 89 sessionStorage.setItem('taxa-feriado-label-html', response.data.holiday_label_html); 90 sessionStorage.setItem('taxa-feriado-label', response.data.holiday_label || 'Taxa feriado nacional'); 91 var opt = jQuery('input[name="itens-obrigatorioss[]"][value^="taxa-feriado"]'); 92 if(opt.length){ 93 var slug = opt.first().val(); 94 var link = opt.first().parent().parent().children('label').find('a').first(); 95 if(link.length){ 96 link.addClass('taxa-feriado-link'); 97 link.html( 98 response.data.holiday_label_html + 99 '<span class="taxa-feriado-detalhe-link"> (+Detalhe)</span>' 100 ); 101 } 102 var desc = jQuery('#description-option-' + slug); 103 if(desc.length){ 104 desc.html( 105 '<p class="taxa-feriado-descricao">Taxa aplicada automaticamente quando a retirada ou a devolução ocorre em feriado nacional.</p>' 106 ); 107 } 108 } 109 } 110 input.val(n).trigger('change'); 111 jQuery('span[for^="option-taxa-feriado"]').first().trigger('click'); 112 input.attr('disabled', true); 113 try { 114 input.parent().parent().show(); 115 } catch (error) { 116 117 } 118 }, 119 complete: function(){ 120 xpertionHideTaxasLoading(); 121 } 122 }); 123 } else { 124 xpertionHideTaxasLoading(); 125 } 126} 127 128 var carros='<div class="main-container"> <div class="steps-container">'+ 129 '<div class="line next-step-in-progress">'+ 130 '</div>'+ 131 '<div class="step in-progress">'+ 132 '<div class="preloader"></div>'+ 133 '<div class="label loading">'+ 134 'VeÃculo'+ 135 '</div>'+ 136 '<div class="icon in-progress">'+ 137 '<i class="fas fa-car"></i>'+ 138 '</div>'+ 139 '</div>'+ 140 '<div class="line prev-step-in-progress"></div>'+ 141 '<div class="step">'+ 142 '<div class="label">'+ 143 'Adicionais'+ 144 '</div>'+ 145 '<div class="icon">'+ 146 '<i class="fas fa-utensils"></i>'+ 147 '</div>'+ 148 '</div>'+ 149 '<div class="line"></div>'+ 150 '<div class="step">'+ 151 '<div class="label">'+ 152 'Dados'+ 153 '</div>'+ 154 '<div class="icon">'+ 155 '<i class="fas fa-id-card"></i>'+ 156 '</div>'+ 157 '</div>'+ 158 '<div class="line"></div>'+ 159 '<div class="step">'+ 160 '<div class="label">'+ 161 'Contrato'+ 162 '</div>'+ 163 '<div class="icon">'+ 164 '<i class="fas fa-file-contract"></i>'+ 165 '</div>'+ 166 '</div>'+ 167 '<div class="line"></div>'+ 168 '<div class="step">'+ 169 '<div class="label" style="text-align:center">
169'+ 170 'Confirmação'+ 171 '</div>'+ 172 '<div class="icon">'+ 173 '<i class="fas fa-money"></i>'+ 174 '</div>'+ 175 '</div>'+ 176 '</div>'+ 177 '</div>'; 178 179 var adicionais='<div class="main-container"> <div class="steps-container">'+ 180 '<div class="step completed">'+ 181 ' <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24">'+ 182 ' <path d="M20.285 2l-11.285 11.567-5.286-5.011-3.714 3.716 9 8.728 15-15.285z" />'+ 183 ' </svg>'+ 184 ' <div class="label completed">'+ 185 ' VeÃculo'+ 186 ' </div>'+ 187 ' <div class="icon completed">'+ 188 ' <i class="fas fa-car"></i>'+ 189 ' </div>'+ 190 '</div>'+ 191 '<div class="line prev-step-in-progress">'+ 192 '</div>'+ 193 '<div class="step in-progress">'+ 194 '<div class="preloader"></div>'+ 195 '<div class="label loading">'+ 196 'Adicionais'+ 197 '</div>'+ 198 '<div class="icon in-progress">'+ 199 '<i class="fas fa-utensils"></i>'+ 200 '</div>'+ 201 '</div>'+ 202 '<div class="line"></div>'+ 203 '<div class="step">'+ 204 '<div class="label">'+ 205 'Dados'+ 206 '</div>'+ 207 '<div class="icon">'+ 208 '<i class="fas fa-id-card"></i>'+ 209 '</div>'+ 210 '</div>'+ 211 '<div class="line"></div>'+ 212 '<div class="step">'+ 213 '<div class="label">'+ 214 'Contrato'+ 215 '</div>'+ 216 '<div class="icon">'+ 217 '<i class="fas fa-file-contract"></i>'+ 218 '</div>'+ 219 '</div>'+ 220 '<div class="line"></div>'+ 221 '<div class="step">'+ 222 '<div class="label" style="text-align:center">'+ 223 'Confirmação'+ 224 '</div>'+ 225 '<div class="icon">'+ 226 '<i class="fas fa-money"></i>'+ 227 '</div>'+ 228 '</div>'+ 229 '</div>'+ 230 '</div>'; 231 232 var passo02='<div class="main-container" style="margin-top:20px"> <div class="steps-container">'+ 233 '<div class="step completed">'+ 234 ' <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24">'+ 235 ' <path d="M20.285 2l-11.285 11.567-5.286-5.011-3.714 3.716 9 8.728 15-15.285z" />'+ 236 ' </svg>'+ 237 ' <div class="label completed">'+ 238 ' VeÃculo'+ 239 ' </div>'+ 240 ' <div class="icon completed">'+ 241 ' <i class="fas fa-car"></i>'+ 242 ' </div>'+ 243 '</div>'+ 244 '<div class="line completed"></div>'+ 245 '<div class="step completed">'+ 246 ' <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24">'+ 247 ' <path d="M20.285 2l-11.285 11.567-5.286-5.011-3.714 3.716 9 8.728 15-15.285z" />'+ 248 ' </svg>'+ 249 ' <div class="label completed">'+ 250 ' Adicionais'+ 251 ' </div>'+ 252 ' <div class="icon completed">'+ 253 ' <i class="fas fa-utensils"></i>'+ 254 ' </div>'+ 255 '</div>'+ 256 '<div class="line prev-step-in-progress">'+ 257 '</div>'+ 258 '<div class="step in-progress">'+ 259 '<div class="preloader"></div>'+ 260 '<div class="label loading">'+ 261 'Dados'+ 262 '</div>'+ 263 '<div class="icon in-progress">'+ 264 '<i class="fas fa-id-card"></i>'+ 265 '</div>'+ 266 '</div>'+ 267 '<div class="line"></div>'+ 268 '<div class="step">'+ 269 '<div class="label">'+ 270 'Contrato'+ 271 '</div>'+ 272 '<div class="icon">'+ 273 '<i class="fas fa-file-contract"></i>'+ 274 '</div>'+ 275 '</div>'+ 276 '<div class="line"></div>'+ 277 '<div class="step">'+ 278 '<div class="label" style="text-align:center">'+ 279 'Confirmação'+ 280 '</div>'+ 281 '<div class="icon">'+ 282 '<i class="fas fa-money"></i>'+ 283 '</div>'+ 284 '</div>'+ 285 '</div>'+ 286 '</div>'; 287 288 var contrato1='<div class="main-container" style="margin-top:40px"> <div class="steps-container">'+ 289 '<div class="step completed">'+ 290 ' <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24">'+ 291 ' <path d="M20.285 2l-11.285 11.567-5.286-5.011-3.714 3.716 9 8.728 15-15.285z" />'+ 292 ' </svg>'+ 293 ' <div class="label completed">'+ 294 ' VeÃculo'+ 295 ' </div>'+ 296 ' <div class="icon completed">'+ 297 ' <i class="fas fa-car"></i>'+
298 ' </div>'+ 299 '</div>'+ 300 '<div class="line completed"></div>'+ 301 '<div class="step completed">'+ 302 ' <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24">'+ 303 ' <path d="M20.285 2l-11.285 11.567-5.286-5.011-3.714 3.716 9 8.728 15-15.285z" />'+ 304 ' </svg>'+ 305 ' <div class="label completed">'+ 306 ' Adicionais'+ 307 ' </div>'+ 308 ' <div class="icon completed">'+ 309 ' <i class="fas fa-utensils"></i>'+ 310 ' </div>'+ 311 '</div>'+ 312 '<div class="line completed"></div>'+ 313 '<div class="step completed">'+ 314 ' <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24">'+ 315 ' <path d="M20.285 2l-11.285 11.567-5.286-5.011-3.714 3.716 9 8.728 15-15.285z" />'+ 316 ' </svg>'+ 317 ' <div class="label completed">'+ 318 ' Dados'+ 319 ' </div>'+ 320 ' <div class="icon completed">'+ 321 ' <i class="fas fa-id-card"></i>'+ 322 ' </div>'+ 323 '</div>'+ 324 '<div class="line prev-step-in-progress">'+ 325 '</div>'+ 326 '<div class="step in-progress">'+ 327 '<div class="preloader"></div>'+ 328 '<div class="label loading">'+ 329 'Contrato'+ 330 '</div>'+ 331 '<div class="icon in-progress">'+ 332 '<i class="fas fa-file-contract"></i>'+ 333 '</div>'+ 334 '</div>'+ 335 '<div class="line"></div>'+ 336 '<div class="step">'+ 337 '<div class="label" style="text-align:center">'+ 338 'Confirmação'+ 339 '</div>'+ 340 '<div class="icon">'+ 341 '<i class="fas fa-money"></i>'+ 342 '</div>'+ 343 '</div>'+ 344 '</div>'+ 345 '</div>'; 346 347 var contrato2='<div class="main-container" style="margin-top:40px"> <div class="steps-container">'+ 348 '<div class="step completed">'+ 349 ' <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24">'+ 350 ' <path d="M20.285 2l-11.285 11.567-5.286-5.011-3.714 3.716 9 8.728 15-15.285z" />'+ 351 ' </svg>'+ 352 ' <div class="label completed">'+ 353 ' VeÃculo'+ 354 ' </div>'+ 355 ' <div class="icon completed">'+ 356 ' <i class="fas fa-car"></i>'+ 357 ' </div>'+ 358 '</div>'+ 359 '<div class="line completed"></div>'+ 360 '<div class="step completed">'+ 361 ' <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24">'+ 362 ' <path d="M20.285 2l-11.285 11.567-5.286-5.011-3.714 3.716 9 8.728 15-15.285z" />'+ 363 ' </svg>'+ 364 ' <div class="label completed">'+ 365 ' Adicionais'+ 366 ' </div>'+ 367 ' <div class="icon completed">'+ 368 ' <i class="fas fa-utensils"></i>'+ 369 ' </div>'+ 370 '</div>'+ 371 '<div class="line completed"></div>'+ 372 '<div class="step completed">'+ 373 ' <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24">'+ 374 ' <path d="M20.285 2l-11.285 11.567-5.286-5.011-3.714 3.716 9 8.728 15-15.285z" />'+ 375 ' </svg>'+ 376 ' <div class="label completed">'+ 377 ' Dados'+ 378 ' </div>'+ 379 ' <div class="icon completed">'+ 380 ' <i class="fas fa-id-card"></i>'+ 381 ' </div>'+ 382 '</div>'+ 383 '<div class="line prev-step-in-progress">'+ 384 '</div>'+ 385 '<div class="step in-progress">'+ 386 '<div class="preloader"></div>'+ 387 '<div class="label loading">'+ 388 'Contrato'+ 389 '</div>'+ 390 '<div class="icon in-progress">'+ 391 '<i class="fas fa-file-contract"></i>'+ 392 '</div>'+ 393 '</div>'+ 394 '<div class="line"></div>'+ 395 '<div class="step">'+ 396 '<div class="label">'+ 397 'Confirmação'+ 398 '</div>'+ 399 '<div class="icon">'+ 400 '<i class="fas fa-envelope"></i>'+ 401 '</div>'+ 402 '</div>'+ 403 '</div>'+ 404 '</div>'; 405 406 var reserva='<div id="reserva-step" class="main-container" style="margin-top:40px"> <div class="steps-container">'+ 407 '<div class="step completed">'+ 408 ' <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24">'+ 409 ' <path d="M20.285 2l-11.285 11.567-5.286-5.011-3.714 3.716 9 8.728 15-15.285z" />'+ 410 ' </svg>'+ 411 ' <div class="label completed">'+ 412 ' VeÃculo'+
413 ' </div>'+ 414 ' <div class="icon completed">'+ 415 ' <i class="fas fa-car"></i>'+ 416 ' </div>'+ 417 '</div>'+ 418 '<div class="line completed"></div>'+ 419 '<div class="step completed">'+ 420 ' <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24">'+ 421 ' <path d="M20.285 2l-11.285 11.567-5.286-5.011-3.714 3.716 9 8.728 15-15.285z" />'+ 422 ' </svg>'+ 423 ' <div class="label completed">'+ 424 ' Adicionais'+ 425 ' </div>'+ 426 ' <div class="icon completed">'+ 427 ' <i class="fas fa-utensils"></i>'+ 428 ' </div>'+ 429 '</div>'+ 430 '<div class="line completed"></div>'+ 431 '<div class="step completed">'+ 432 ' <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24">'+ 433 ' <path d="M20.285 2l-11.285 11.567-5.286-5.011-3.714 3.716 9 8.728 15-15.285z" />'+ 434 ' </svg>'+ 435 ' <div class="label completed">'+ 436 ' Dados'+ 437 ' </div>'+ 438 ' <div class="icon completed">'+ 439 ' <i class="fas fa-id-card"></i>'+ 440 ' </div>'+ 441 '</div>'+ 442 '<div class="line completed"></div>'+ 443 '<div class="step completed">'+ 444 ' <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24">'+ 445 ' <path d="M20.285 2l-11.285 11.567-5.286-5.011-3.714 3.716 9 8.728 15-15.285z" />'+ 446 ' </svg>'+ 447 ' <div class="label completed">'+ 448 ' Dados'+ 449 ' </div>'+ 450 ' <div class="icon completed">'+ 451 ' <i class="fas fa-file-contract"></i>'+ 452 ' </div>'+ 453 '</div>'+ 454 '<div class="line prev-step-in-progress">'+ 455 '</div>'+ 456 '<div class="step in-progress">'+ 457 '<div class="preloader"></div>'+ 458 '<div class="label loading">'+ 459 'Contrato'+ 460 '</div>'+ 461 '<div class="icon in-progress">'+ 462 '<i class="fas fa-envelope"></i>'+ 463 '</div>'+ 464 '</div>'+ 465 '</div>'+ 466 '</div>'; 467 468 469 470 if(window.location.href.includes("/carros/")){ 471 // jQuery("#step").prepend(carros) 472 jQuery('#formulario_alugar button.submit-type-ajax').click( 473 function(event) { 474 let diarias=parseInt(jQuery('#formulario_alugar').find('input[name="noites"]').val()) 475 var passageiros = jQuery('#passageiros').val() 476 if(diarias>=7 && jQuery("input[name='vintercional']:checked").length==0){ 477 event.stopPropagation(); 478 let txt='Selecione se a viagem é nacional ou internacional.<br>' 479 if(passageiros==0) 480 txt+='Selecione a quantidade de passageiros' 481 alertItemObrigatorio(txt) 482 }else{ 483 if(passageiros==0){ 484 event.stopPropagation(); 485 let txt='Selecione a quantidade de passageiros' 486 alertItemObrigatorio(txt) 487 }else{ 488 if(diarias<7) 489 jQuery("#vintercional").prop("checked",true) 490 } 491 } 492 } 493 ); 494 } 495 if(window.location.href.includes("/adicionais/")){ 496 jQuery("#step").prepend(adicionais) 497 } 498 if(window.location.href.includes("/passo-02/")){ 499 jQuery("#step").prepend(passo02) 500 if(sessionStorage.getItem('total_geral2_old')!=null && sessionStorage.getItem('total_geral2_old')!=''){ 501 sessionStorage.setItem('total_geral2',sessionStorage.getItem('total_geral2_old')) 502 jQuery('.jet-form__calculated-field-val').html(" R$ "+parseFloat(sessionStorage.getItem('total_geral2')).toLocaleString('pt-br',{minimumFractionDigits: 2, maximumFractionDigits: 2})); 503 } 504 sessionStorage.setItem('total_geral2_old',sessionStorage.getItem('total_geral2')) 505 jQuery("input[name='formas-pgto']").on('change',function(){ 506 var pagamento=jQuery(this).val()
507 var desconto_cupom=jQuery("#desconto").data('desconto') 508 if(desconto_cupom==null || desconto_cupom==''){ 509 desconto_cupom=0 510 } 511 if(pagamento=="PIX" || pagamento=="Boleto"){ 512 var total=sessionStorage.getItem('total_geral2_old') 513 total=parseFloat(total) 514 var total_tudo=parseFloat(sessionStorage.getItem('total_tudo')) 515 var total_opcional=parseFloat(sessionStorage.getItem('total_opcionais')) 516 var txlimpeza = parseFloat(sessionStorage.getItem('heading')) 517 total_opcional+=txlimpeza 518 total_tudo-=txlimpeza 519 520 var total_desconto=parseFloat(desconto_cupom)+parseFloat(desconto_pix) 521 jQuery("#desconto-pix").html(" "+desconto_pix.toLocaleString('pt-br',{minimumFractionDigits: 0, maximumFractionDigits: 0}) +"%") 522 jQuery("#desconto-pix").parent().show() 523 total = total_tudo*((100-parseFloat(total_desconto))/100) + total_opcional 524 sessionStorage.setItem('total_geral2', total) 525 jQuery('.jet-form__calculated-field-val').html(" R$ "+parseFloat(sessionStorage.getItem('total_geral2')).toLocaleString('pt-br',{minimumFractionDigits: 2, maximumFractionDigits: 2})); 526 }else{ 527 jQuery("#desconto-pix").html(" R$ "+parseFloat(0).toLocaleString('pt-br',{minimumFractionDigits: 2, maximumFractionDigits: 2})) 528 jQuery("#desconto-pix").parent().hide() 529 if(sessionStorage.getItem('total_geral2_old')!=null && sessionStorage.getItem('total_geral2_old')!=''){ 530 sessionStorage.setItem('total_geral2',sessionStorage.getItem('total_geral2_old')) 531 sessionStorage.setItem('total_geral2', parseFloat(sessionStorage.getItem('total_geral2'))*((100-parseFloat(desconto_cupom))/100)) 532 jQuery('.jet-form__calculated-field-val').html(" R$ "+parseFloat(sessionStorage.getItem('total_geral2')).toLocaleString('pt-br',{minimumFractionDigits: 2, maximumFractionDigits: 2})); 533 } 534 } 535 }) 536 setTimeout(() => { 537 const cartao = document.querySelector('input[type="radio"][value="Cartão de crédito"]'); 538 const boleto = document.querySelector('input[type="radio"][value="Boleto"]'); 539 cartao.click(); 540 setTimeout(() => { 541 boleto.click(); 542 console.log(boleto) 543 }, 1000); 544 }, 3000); 545 // Evento onchange para o campo com ID 'cep' 546 document.getElementById('cep').addEventListener('keyup', async (event) => { 547 const cep = event.target.value.replace(/\D/g, ''); 548 549 if (cep.length === 8) { 550 let cepInput= document.getElementById('cep') 551 let spinner = document.getElementById('spinner-cep'); 552 if (!spinner) { 553 try { 554 spinner = document.createElement('div'); 555 spinner.id = 'spinner-cep'; 556 spinner.style.marginLeft = '8px'; 557 spinner.style.display = 'inline-block'; 558 spinner.style.width = '16px'; 559 spinner.style.height = '16px'; 560 spinner.style.border = '2px solid #ccc'; 561 spinner.style.borderTop = '2px solid #000'; 562 spinner.style.borderRadius = '50%'; 563 spinner.style.animation = 'spin 1s linear infinite'; 564 cepInput.parentNode.children[0].append(spinner); 565 } catch (error) { 566 console.log(error) 567 } 568 569 } 570 const resultado = await consultarCEP(cep); 571 if (!resultado.erro) { 572 // Exemplo: Atualizar campos de endereço 573 document.getElementById('Rua').value = resultado.logradouro || ''; 574 document.getElementById('bairro').value = resultado.bairro || ''; 575 document.getElementById('Cidade').value = resultado.localidade || ''; 576 document.getElementById('Estado').value = resultado.uf || ''; 577 document.getElementById('numero').focus() 578 }else{ 579 document.getElementById('Rua').value = ''; 580 document.getElementById('bairro').value = ''; 581 document.getElementById('Cidade').value = ''; 582 document.getElementById('Estado').value = ''; 583 } 584 if (spinner) { 585 try { 586 spinner.remove(); 587 } catch (error) { 588 589 } 590 } 591 } else { 592 console.warn('CEP inválido ou incompleto. Digite um CEP com 8 dÃgitos.'); 593 } 594 595 }); 596 } 597 if(window.location.href.includes("/contrato/")){ 598 jQuery("#step").append(contrato1) 599 } 600 if(window.location.href.includes("/reserva/")){ 601 jQuery("#step").append(reserva) 602 } 603 if(window.location.pathname == '/adicionais/' || window.location.pathname == '/passo-02/'){ 604 if(sessionStorage.getItem('_dates__in') && sessionStorage.getItem('_dates__out')){ 605 xpertionShowTaxasLoading(); 606 } 607 setTimeout(xpertionApplyReservaTaxas, 5000); 608 } 609 }); 610 611 async function consultarCEP(cep) { 612 try { 613 // Validar o formato do CEP (somente números, com 8 dÃgitos) 614 const cepFormatado = cep.replace(/\D/g, ''); 615 if (cepFormatado.length !== 8) { 616 throw new Error('CEP inválido. Certifique-se de digitar um CEP com 8 dÃgitos.'); 617 } 618 619 // URL da API ViaCEP 620 const url = `https://viacep.com.br/ws/${cepFormatado}/json/`; 621 622 // Fazer a requisição para a API 623 const resposta = await fetch(url); 624 625 // Verificar se a requisição foi bem-sucedida 626 if (!resposta.ok) { 627 throw new Error('Erro ao consultar o CEP. Tente novamente mais tarde.'); 628 } 629 630 // Converter a resposta para JSON 631 const dados = await resposta.json(); 632 633 // Verificar se houve erro na consulta do CEP 634 if (dados.erro) { 635 throw new Error('CEP não encontrado. Verifique o CEP digitado.'); 636 } 637 638 // Retornar os dados do CEP 639 return dados; 640 } catch (erro) { 641 console.error(erro.message); 642 return { erro: erro.message }; 643 } 644 }
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.