1/** 2 * We offer the best and most useful modules PrestaShop and modifications for your online store. 3 * 4 * We are experts and professionals in PrestaShop 5 * 6 * NOTICE OF LICENSE 7 * 8 * This file is not open source! Each license that you purchased is only available for 1 wesite only. 9 * If you want to use this file on more websites (or projects), you need to purchase additional licenses. 10 * You are not allowed to redistribute, resell, lease, license, sub-license or offer our resources to any third party. 11 * 12 * @author PresTeamShop (Registered Trademark) <[email protected]> 13 * @copyright 2011-2022 PresTeamShop 14 * @license Valid for 1 website (or project) for each purchase of license 15 16 * @category PrestaShop 17 * @category Module 18 */ 19 20$(function(){ 21 AppOPC.init(); 22 OPC_External_Validation.init(); 23 OPC_Compatibilities.init(); 24 25 function toggleIcon(e) { 26 $(e.target) 27 .prev('.panel-heading') 28 .find(".more-less") 29 .toggleClass('fa-pts-angle-down fa-pts-angle-up'); 30 } 31 $('#panel_addresses_customer').on('hidden.bs.collapse', toggleIcon); 32 $('#panel_addresses_customer').on('shown.bs.collapse', toggleIcon); 33 34 //$('#checkbox_create_account_guest').trigger('click'); 35}); 36 37var AppOPC = { 38 $opc: false, 39 $opc_step_one: false, 40 $opc_step_two: false, 41 $opc_step_three: false, 42 $opc_step_review: false, 43 initialized: false, 44 load_offer: true, 45 is_valid_opc: false, 46 is_valid_form_login: false, 47 is_valid_form_customer: false, 48 is_valid_form_address_delivery: false, 49 is_valid_form_address_invoice: false, 50 jqOPC: typeof $jqOPC === typeof undefined ? $ : $jqOPC, 51 m4gpdr: false, 52 init: function(){ 53 $(document).on('click', 'button#btn-copy_invoice_address_to_delivery', AppOPC.copyInvoiceAddressToDelivery); 54 55 AppOPC.initialized = true; 56 AppOPC.$opc = $('#onepagecheckoutps'); 57 AppOPC.$opc_step_one = $('#onepagecheckoutps div#onepagecheckoutps_step_one'); 58 AppOPC.$opc_step_two = $('#onepagecheckoutps div#onepagecheckoutps_step_two'); 59 AppOPC.$opc_step_three = $('#onepagecheckoutps div#onepagecheckoutps_step_three'); 60 AppOPC.$opc_step_review = $('#onepagecheckoutps div#onepagecheckoutps_step_review'); 61 62 if (typeof OnePageCheckoutPS !== typeof undefined) 63 { 64 if (typeof paypal_ec_canceled !== typeof undefined && paypal_ec_canceled) { 65 window.location = orderOpcUrl; 66 return false; 67 } 68 69 if (typeof jeoquery !== typeof undefined) { 70 jeoquery.defaultData.countryCode = OnePageCheckoutPS.iso_code_country_delivery_default; 71 jeoquery.defaultData.lang = OnePageCheckoutPS.LANG_ISO; 72 } 73 74 //Se anade funcionalidad para eliminar espacios vacios de principio y fin de la cadena 75 AppOPC.$opc_step_one.find('input:text, input[type="email"]').on('blur', function(e) { 76 var value = $(e.currentTarget).val(); 77 var new_value = value.trim(); 78 79 $(e.currentTarget).val(new_value); 80 }); 81 82 //launch validate fields 83 if (typeof $.formUtils !== typeof undefined && typeof $.validate !== typeof undefined){
84 $.formUtils.loadModules('prestashop.js, security.js, brazil.js', OnePageCheckoutPS.ONEPAGECHECKOUTPS_DIR + 'views/js/lib/form-validator/'); 85 $.validate({ 86 form: 'div#onepagecheckoutps #form_login, div#onepagecheckoutps #form_customer, div#onepagecheckoutps #form_address_delivery, div#onepagecheckoutps #form_address_invoice', 87 validateHiddenInputs: true, 88 language : messageValidate, 89 onError: function ($form) { 90 if ($form.attr('id') == 'form_login') { 91 AppOPC.is_valid_form_login = false; 92 } else if ($form.attr('id') == 'form_customer') { 93 AppOPC.is_valid_form_customer = false; 94 } else if ($form.attr('id') == 'form_address_delivery') { 95 AppOPC.is_valid_form_address_delivery = false; 96 } else if ($form.attr('id') == 'form_address_invoice') { 97 AppOPC.is_valid_form_address_invoice = false; 98 } 99 }, 100 onSuccess: function ($form) { 101 if ($form.attr('id') == 'form_login') { 102 AppOPC.is_valid_form_login = true; 103 } else if ($form.attr('id') == 'form_customer') { 104 AppOPC.is_valid_form_customer = true; 105 } else if ($form.attr('id') == 'form_address_delivery') { 106 AppOPC.is_valid_form_address_delivery = true; 107 } else if ($form.attr('id') == 'form_address_invoice') { 108 AppOPC.is_valid_form_address_invoice = true; 109 } 110 111 return false; 112 } 113 }); 114 } 115 116 $(OnePageCheckoutPS.CONFIGS.OPC_ID_CONTENT_PAGE) 117 .css({ 118 margin: 0 119 }) 120 .addClass('opc_center_column ' + AppOPC.$opc.find('#rc_page').val()) 121 .removeClass('col-sm-push-3'); 122 123 Address.launch(); 124 Fronted.launch(); 125 if (!OnePageCheckoutPS.REGISTER_CUSTOMER) 126 { 127 $(OnePageCheckoutPS.CONFIGS.OPC_ID_CONTENT_PAGE).css({width: '100%'}); 128 129 Carrier.launch(); 130 PaymentPTS.launch(); 131 Review.launch(); 132 } 133 134 if (typeof $.fn.datepicker !== typeof undefined) { 135 AppOPC.$opc_step_one.find('input[data-validation*="isBirthDate"], input[data-validation*="isDate"]').datepicker({ 136 dateFormat: OnePageCheckoutPS.date_format_language, 137 //cuando necesita des-habilitar dias anteriores al actual 138 //minDate: 0, 139 changeMonth: true, 140 changeYear: true, 141 showButtonPanel: true, 142 yearRange: '-100:+0', 143 isRTL: OnePageCheckoutPS.IS_RTL 144 }); 145 } 146 }else{ 147 //redirect to checkout if have he option OPC_REDIRECT_DIRECTLY_TO_OPC actived 148 if ($('a.standard-checkout, .cart_navigation .btn.pull-right, .cart_navigation .btnsns.pull-right, a.proceso_compra').length > 0) { 149 $('a.standard-checkout, .cart_navigation .btn.pull-right, .cart_navigation .btnsns.pull-right, a.proceso_compra').attr('href', baseDir + 'index.php?controller=order-opc&checkout=1'); 150 } else if($('button.btn-continue').length > 0) { 151 $('button.btn-continue').attr('onclick', 'window.location=\''+baseDir + 'index.php?controller=order-opc&checkout=1\''); 152 } 153 154 $('form#voucher').attr('action', baseDir + 'index.php?controller=order-opc'); 155 156 var href_delete_voucher = $('a.price_discount_delete').attr('href'); 157 if (typeof(href_delete_voucher) != 'undefined'){ 158 href_delete_voucher = href_delete_voucher.split('?'); 159 $('a.price_discount_delete').attr('href', baseDir + 'index.php?controller=order-opc&' + href_delete_voucher[1]); 160 } 161 162 //solo funciona con el forzar visualizacion del PS Checkout. 163 if (typeof window.ps_checkout !== typeof undefined) { 164 var initPsCheckout = setTimeout(function() { 165 if (typeof window.ps_checkout.renderCheckout !== typeof undefined) { 166 window.ps_checkout.renderCheckout(); 167 168 clearTimeout(initPsCheckout); 169 } 170 }, 1000); 171 } 172 } 173 }, 174 copyInvoiceAddressToDelivery: function() { 175 var $invoice_fields = $('#panel_address_invoice #form_address_invoice').find('.invoice'); 176 var $form_delivery = $('#panel_address_delivery #form_address_delivery'); 177 178 $.each($invoice_fields, function(i, elem) { 179 var field_name = $(elem).data('field-name'); 180 var value = $(elem).val(); 181 182 if (field_name != 'id' && $form_delivery.find('[data-field-name="'+field_name+'"]').length > 0) { 183 $form_delivery.find('[data-field-name="'+field_name+'"]').val(value); 184 } 185 }); 186 } 187} 188 189var Fronted = { 190 launch: function(){ 191 $('div#onepagecheckoutps #opc_show_login').click(function(){ 192 Fronted.showModal({type:'normal', title:$('#opc_login').attr('title'), title_icon:'fa-pts-user', content:$('#opc_login')}); 193 }); 194 195 AppOPC.$opc.find('#opc_login').on('click', '#btn_login', Fronted.loginCustomer); 196 197 AppOPC.$opc.on('click', '#btn_continue_shopping', function(){ 198 var link = AppOPC.$opc.find('#btn_continue_shopping').attr('data-link'); 199 if (typeof link === typeof undefined) { 200 link = baseDir; 201 } 202 window.location = link; 203 }); 204 205 AppOPC.$opc.find('#opc_login #txt_login_password').keypress(function(e){
206 var code = (e.keyCode ? e.keyCode : e.which); 207 208 if (code == 13) 209 Fronted.loginCustomer(); 210 }); 211 212 //evita el guest checkout cuando solo quiere registrarse o iniciar sesion "rc=1". 213 if (AppOPC.$opc_step_review.length <= 0) { 214 var $create_account_guest = AppOPC.$opc_step_one.find('#field_customer_checkbox_create_account_guest'); 215 if ($create_account_guest.length > 0) { 216 $create_account_guest.hide(); 217 218 if (!$create_account_guest.find('#checkbox_create_account_guest').is(':checked')) { 219 $create_account_guest.find('#checkbox_create_account_guest').trigger('click'); 220 } 221 } 222 } 223 224 //support module: psrecaptcha - v1.1.3 - PrestaShop 225 //------------------------------------------------- 226 if (typeof recaptchaRegistrationForm !== typeof undefined && recaptchaRegistrationForm == "1" && typeof elementRecaptcha !== typeof undefined && !OnePageCheckoutPS.IS_LOGGED) { 227 if ($('#onepagecheckoutps_step_one #form_customer').length) { 228 $('#onepagecheckoutps_step_one #form_customer').append(elementRecaptcha); 229 $('#onepagecheckoutps_step_one #form_customer .g-recaptcha') 230 .first() 231 .attr('id', 'recaptchaRegistrationForm') 232 .css({ 233 "margin-bottom": "15px", 234 "display": "inherit !important", 235 }); 236 } 237 } 238 if (typeof recaptchaLoginForm !== typeof undefined && recaptchaLoginForm == "1" && !OnePageCheckoutPS.IS_LOGGED) { 239 $('#opc_login #form_login #btn_login').before(elementRecaptcha); 240 $('#opc_login #form_login .g-recaptcha') 241 .first() 242 .attr('id', 'recaptchaOnePageCheckoutLoginForm') 243 .css({ 244 "margin-bottom": "15px", 245 "display": "inherit !important", 246 }); 247 } 248 if (typeof executeRecaptcha !== typeof undefined && typeof grecaptcha !== typeof undefined) { 249 setTimeout(function () { 250 grecaptcha.execute(); 251 }, 600); 252 } 253 //------------------------------------------------- 254 255 //evita copiar, pegar y cortar en los campos de confirmacion. 256 /*AppOPC.$opc_step_one.find('#customer_conf_email, #customer_conf_passwd').bind("cut copy paste", function(e) { 257 e.preventDefault(); 258 });*/ 259 }, 260 openCMS: function(params){ 261 var param = $.extend({}, { 262 id_cms: '' 263 }, params); 264 265 var data = { 266 url_call: orderOpcUrl + '?rand=' + new Date().getTime(), 267 is_ajax: true, 268 dataType: 'html', 269 action: 'loadCMS', 270 id_cms: param.id_cms 271 }; 272 273 var _json = { 274 data: data, 275 beforeSend: function() { 276 Fronted.loadingBig(true); 277 }, 278 success: function(html) { 279 if (!$.isEmpty(html)){ 280 Fronted.showModal({name: 'cms_modal', content: html}); 281 } 282 }, 283 complete: function(){ 284 Fronted.loadingBig(false); 285 } 286 }; 287 $.makeRequest(_json); 288 }, 289 loading: function(show, selector){ 290 if (show) { 291 Fronted.loadingBig(true); 292 } 293 }, 294 loadingBig: function(show){ 295 if (show && !AppOPC.$opc.find('> .row').hasClass('.opc_overlay')) { 296 AppOPC.$opc.find('> .row').addClass('opc_overlay'); 297 298 if ($(window).width() >= 1024) { 299 AppOPC.$opc.find('.loading_big').show(); 300 } else { 301 $('div#opc_loading').remove(); 302 $('body').append('<div id="opc_loading">'+OnePageCheckoutPS.Msg.processing_purchase+'<i class="fa-pts fa-pts-spin fa-pts-refresh"></i></div>'); 303 } 304 } else { 305 AppOPC.$opc.find('> .row').removeClass('opc_overlay'); 306 307 if ($(window).width() >= 1024) { 308 AppOPC.$opc.find('.loading_big').hide(); 309 } else { 310 $('div#opc_loading').remove(); 311 } 312 } 313 }, 314 showModal: function(params){ 315 var param = $.extend({}, { 316 name: 'opc_modal', 317 type: 'normal', 318 title: '', 319 title_icon: '', 320 message: '', 321 content: '', 322 close: true, 323 button_ok: false, 324 button_close: false, 325 button_close_text: OnePageCheckoutPS.Msg.close, 326 size: '', 327 callback: '', 328 callback_ok: '', 329 callback_close: '' 330 }, params); 331 332 $('#'+param.name).remove(); 333 334 //var windows_width = $(window).width(); 335 336 var parent_content = ''; 337 if (typeof param.content === 'object'){ 338 parent_content = param.content.parent(); 339 } 340
341 var $modal = $('<div/>').attr({id:param.name, 'class':'modal fade', role:'dialog'}); 342 var $modal_dialog = $('<div/>').attr({'class':'modal-dialog ' + param.size}); 343 var $modal_header = $('<div/>').attr({'class':'modal-header'}); 344 var $modal_content = $('<div/>').attr({'class':'modal-content'}); 345 var $modal_body = $('<div/>').attr({'class':'modal-body'}); 346 var $modal_footer = $('<div/>').attr({'class':'modal-footer'}); 347 var $modal_button_close = $('<button/>') 348 .attr({type:'button', 'class':'close'}) 349 .click(function(){ 350 $('#'+param.name).modal('hide'); 351 }) 352 .append('<i class="fa-pts fa-pts-close"></i>'); 353 var $modal_button_ok_footer = $('<button/>') 354 .attr({type:'button', 'class':'btn btn-primary'}) 355 .click(function(){ 356 if (typeof param.callback_ok !== typeof undefined && typeof param.callback_ok === 'function') { 357 if (!param.callback_ok()) { 358 return false; 359 } 360 $('#'+param.name).modal('hide'); 361 } 362 }) 363 .append('OK'); 364 var $modal_button_close_footer = $('<button/>') 365 .attr({type:'button', 'class':'btn btn-default'}) 366 .click(function(){ 367 $('#'+param.name).modal('hide'); 368 }) 369 .append(param.button_close_text); 370 var $modal_title = ''; 371 372 if (typeof param.message === 'array'){ 373 var message_html = ''; 374 $.each(param.message, function(i, message){ 375 message_html += '- ' + message + '<br/>'; 376 }); 377 param.message = message_html; 378 } 379 380 if (param.type == 'error'){ 381 $modal_title = $('<span/>') 382 .attr({'class':'panel-title'}) 383 .append(param.close ? $modal_button_close : '') 384 .append('<i class="fa-pts fa-pts-times-circle fa-pts-2x" style="color:red"></i>') 385 .append(param.message); 386 }else if (param.type == 'warning'){ 387 $modal_title = $('<span/>') 388 .attr({'class':'panel-title'}) 389 .append(param.close ? $modal_button_close : '') 390 .append('<i class="fa-pts fa-pts-warning fa-pts-2x" style="color:orange"></i>') 391 .append(param.message); 392 } else if (param.type == 'success') { 393 $modal_title = $('<span/>') 394 .attr({ 'class': 'panel-title' }) 395 .append(param.close ? $modal_button_close : '') 396 .append('<i class="fa-pts fa-pts-check fa-pts-2x" style="color:green"></i>') 397 .append(param.message); 398 } 399 else{ 400 $modal_title = $('<span/>') 401 .attr({'class':'panel-title'}) 402 .append(param.close ? $modal_button_close : '') 403 .append('<i class="fa-pts '+param.title_icon+' fa-pts-1x"></i>') 404 .append(param.title); 405 } 406 407 $modal_header.append($modal_title); 408 $modal_content.append($modal_header); 409 410 if (param.type == 'normal'){ 411 if (typeof param.content === 'object'){ 412 param.content.removeClass('hidden').appendTo($modal_body); 413 }else{ 414 $modal_body.append(param.content); 415 } 416 417 $modal_content.append($modal_body); 418 419 if (param.button_close){ 420 $modal_footer.append($modal_button_close_footer); 421 $modal_content.append($modal_footer); 422 } 423 if (param.button_ok){ 424 $modal_footer.append($modal_button_ok_footer); 425 $modal_content.append($modal_footer); 426 } 427 } 428 429 $modal_dialog.append($modal_content); 430 $modal.append($modal_dialog); 431 432 $modal.on('hide.bs.modal', function(){ 433 if (!param.close){ 434 return false; 435 } else { 436 if (typeof param.callback_close !== typeof undefined && typeof param.callback_close === 'function') { 437 if (!param.callback_close()) { 438 return false; 439 } 440 } 441
442 if (!$.isEmpty(parent_content)) { 443 param.content.appendTo(parent_content).addClass('hidden'); 444 } 445 446 $('body').removeClass('modal-open'); 447 } 448 }); 449 450 AppOPC.$opc.prepend($modal); 451 452 $('#'+param.name).modal('show'); 453 454 if (!$('#'+param.name).hasClass('in')) { 455 $('#'+param.name).addClass('in').css({display : 'block'}); 456 } 457 458 /* Autofocus en email al abrirse modal de login */ 459 if ($('#'+param.name).find('#opc_login').length > 0) { 460 $('#opc_login').find('#txt_login_email').trigger('focus'); 461 } 462 463 var modalResize = function() { 464 var paddingTop = 0 465 var windows_height = $(window).height(); 466 467 if (windows_height > $modal_dialog.height() && (AppOPC.$opc.height() / 2) > $modal_dialog.height()) { 468 paddingTop = (windows_height - $modal_dialog.height()) / 2; 469 } 470 471 $('#'+param.name).css({ 472 paddingTop: paddingTop 473 }); 474 }; 475 modalResize(); 476 477 $(window).on('resize', function(){ 478 modalResize(); 479 }); 480 481 Fronted.loadingBig(false); 482 483 if (typeof param.callback !== typeof undefined && typeof param.callback === 'function') 484 param.callback(); 485 486 //fix problem with module: pakkelabels_shipping 487 $('.pakkelabels_modal-backdrop').remove(); 488 489 window.scrollTo(0, $('div#onepagecheckoutps').offset().top); 490 }, 491 loginCustomer: function(){ 492 var email = $('#opc_login #txt_login_email').val(); 493 var password = $('#opc_login #txt_login_password').val(); 494 var login_success = false; 495 496 var data = { 497 is_ajax: true, 498 action: 'loginCustomer', 499 email: email, 500 password: password, 501 'g_recaptcha_response' : $('#opc_login #g-recaptcha-response').val(), 502 'g-recaptcha-response' : $('#opc_login #g-recaptcha-response').val(), 503 }; 504 505 Fronted.validateOPC({valid_form_login: true}); 506 507 if (AppOPC.is_valid_opc) { 508 //no its use makeRequest because dont work.. error weird. 509 $.ajax({
510 type: 'POST', 511 url: orderOpcUrl + '?rand=' + new Date().getTime(), 512 cache: false, 513 dataType: 'json', 514 data: data, 515 beforeSend: function() { 516 $('#opc_login #btn_login').attr('disabled', 'true'); 517 $('#opc_login .alert').empty().addClass('hidden'); 518 }, 519 success: function(json) { 520 if(json.success) { 521 if ($('div#onepagecheckoutps #onepagecheckoutps_step_review_container').length > 0) { 522 window.parent.location.reload(); 523 } else { 524 if (parseInt($('.shopping_cart .ajax_cart_quantity').text()) > 0){ 525 window.parent.location = orderOpcUrl; 526 } else { 527 window.parent.location = baseDir; 528 } 529 } 530 531 login_success = true; 532 } else { 533 if(json.errors){ 534 $('#opc_login .alert').html('• ' + json.errors.join('<br>• ')).removeClass('hidden'); 535 } 536 } 537 }, 538 complete: function(){ 539 if (!login_success) { 540 $('#opc_login #btn_login').removeAttr('disabled'); 541 } 542 } 543 }); 544 } 545 }, 546 removeUniform : function (params){ 547 var param = $.extend({}, { 548 'parent_control' : 'div#onepagecheckoutps', 549 errors : {} 550 }, params); 551 552 if (typeof $.uniform !== 'undefined' && typeof $.uniform.restore !== 'undefined') { 553 $.uniform.restore(param.parent_control + ' select'); 554 $.uniform.restore(param.parent_control + ' input'); 555 $.uniform.restore(param.parent_control + ' a.button'); 556 $.uniform.restore(param.parent_control + ' button'); 557 $.uniform.restore(param.parent_control + ' textarea'); 558 } 559 560 if (typeof $(param.parent_control + ' select').select_unstyle !== 'undefined') { 561 $(param.parent_control + ' select').select_unstyle(); 562 } 563 564 if (typeof $(param.parent_control + ' select').selectBox !== 'undefined') { 565 $(param.parent_control + ' select').selectBox('destroy'); 566 } 567 568 if (typeof $(param.parent_control + ' select').selectBox !== 'undefined') { 569 $(param.parent_control + ' select').selectBox('destroy'); 570 } 571 }, 572 openWindow: function (url){ 573 var LeftPosition = (screen.width) ? (screen.width-700)/2 : 0; 574 var TopPosition = (screen.height) ? (screen.height-500)/2 : 0; 575 window.open(url,'','height=500,width=600,top='+(TopPosition-10)+',left='+LeftPosition+',toolbar=no,directories=no,status=no,menubar=no,modal=yes,scrollbars=yes'); 576 }, 577 validateOPC: function(params){ 578 var param = $.extend({}, { 579 valid_form_login: false, 580 valid_form_customer: false, 581 valid_form_address_delivery: false, 582 valid_form_address_invoice: false, 583 valid_carrier: false, 584 valid_payment: false, 585 valid_condition: false, 586 valid_privacy: false, 587 valid_gdpr: false 588 }, params); 589 590 AppOPC.is_valid_opc = true; 591 592 if (param.valid_form_login) { 593 AppOPC.$opc.find('#form_login').submit(); 594 } 595 if (param.valid_form_customer) { 596 if (($('div#onepagecheckoutps #field_customer_checkbox_change_passwd input[name="checkbox_change_passwd"]').length > 0 597 && !$('div#onepagecheckoutps #field_customer_checkbox_change_passwd input[name="checkbox_change_passwd"]').is(':checked')) 598 || ($('div#onepagecheckoutps #field_customer_checkbox_create_account input[name="checkbox_create_account"]').length > 0 599 && !$('div#onepagecheckoutps #field_customer_checkbox_create_account input[name="checkbox_create_account"]').is(':checked')) 600 || ($('div#onepagecheckoutps #field_customer_checkbox_create_account_guest input[name="checkbox_create_account_guest"]').length > 0 601 && !$('div#onepagecheckoutps #field_customer_checkbox_create_account_guest input[name="checkbox_create_account_guest"]').is(':checked')) 602 ) { 603 $('#onepagecheckoutps input[type="password"]').val(''); 604 } 605 AppOPC.$opc.find('#form_customer').submit(); 606 } 607 if (AppOPC.$opc.find('#form_address_delivery').length > 0 && (!OnePageCheckoutPS.IS_VIRTUAL_CART || OnePageCheckoutPS.CONFIGS.OPC_SHOW_DELIVERY_VIRTUAL) && param.valid_form_address_delivery) { 608 AppOPC.$opc.find('#form_address_delivery').submit(); 609 } 610 if (Address.isSetInvoice() && param.valid_form_address_invoice) { 611 AppOPC.$opc.find('#form_address_invoice').submit(); 612 } 613 614 if (param.valid_form_login && !AppOPC.is_valid_form_login) { 615 AppOPC.is_valid_opc = false; 616 } 617 if (param.valid_form_customer && !AppOPC.is_valid_form_customer) { 618 AppOPC.is_valid_opc = false; 619 } 620 if (AppOPC.$opc.find('#form_address_delivery').length > 0 621 && (!OnePageCheckoutPS.IS_VIRTUAL_CART || OnePageCheckoutPS.CONFIGS.OPC_SHOW_DELIVERY_VIRTUAL) 622 && param.valid_form_address_delivery 623 && !AppOPC.is_valid_form_address_delivery 624 ) { 625 AppOPC.is_valid_opc = false; 626 627 if (OnePageCheckoutPS.IS_LOGGED) { 628 AppOPC.$opc_step_one.find('#delivery_address_container #form_address_delivery').show(400); 629 AppOPC.$opc_step_one.find('.addresses_customer_container.delivery').hide(400); 630 } else if (typeof amazonpay !== typeof undefined && amazonpay.amazonCheckoutSessionId !== false && !OnePageCheckoutPS.IS_LOGGED) { 631 AppOPC.$opc_step_one.find('#delivery_address_container #form_address_delivery').show(400); 632 AppOPC.$opc_step_one.find('.addresses_customer_container.delivery').hide(400); 633 634 $.each(AppOPC.$opc_step_one.find('#delivery_address_container #form_address_delivery .form-group'), function(i, item) { 635 if (!$(item).hasClass('has-error')) { 636 $(item).parent('.row').hide(); 637 } 638 }); 639 } 640 } 641 642 if (Address.isSetInvoice() && param.valid_form_address_invoice && !AppOPC.is_valid_form_address_invoice) { 643 AppOPC.is_valid_opc = false; 644 645 if (OnePageCheckoutPS.IS_LOGGED) { 646 AppOPC.$opc_step_one.find('#invoice_address_container #form_address_invoice').show(400); 647 AppOPC.$opc_step_one.find('.addresses_customer_container.invoice').hide(400); 648 } 649 } 650 651 if (AppOPC.is_valid_opc) { 652 if (param.valid_carrier) { 653 AppOPC.$opc_step_two.removeClass('alert alert-warning'); 654 655 //validate shipping 656 if (AppOPC.$opc_step_two.find('.delivery_options_address').length >= 0 && !OnePageCheckoutPS.IS_VIRTUAL_CART) { 657 var id_carrier = AppOPC.$opc_step_two.find('.delivery_option_radio:checked').val(); 658 659 if (!$.isEmpty(id_carrier)){ 660 Carrier.id_delivery_option_selected = id_carrier; 661 662 AppOPC.is_valid_opc = true; 663 }else{ 664 Carrier.id_delivery_option_selected = null; 665 AppOPC.$opc_step_two.find('#shipping_container').addClass('alert alert-warning'); 666 667 Fronted.showModal({type: 'warning', message: OnePageCheckoutPS.Msg.shipping_method_required}); 668 669 AppOPC.is_valid_opc = false; 670 } 671 } 672 } 673 } 674 675 if (AppOPC.is_valid_opc) { 676 if (param.valid_payment && !OnePageCheckoutPS.CONFIGS.OPC_PAYMENTS_WITHOUT_RADIO) { 677 AppOPC.$opc_step_three.removeClass('alert alert-warning'); 678 679 //validate payments 680 if (AppOPC.$opc_step_three.find('#free_order').length <= 0) { 681 var payment = AppOPC.$opc_step_three.find('input[name="method_payment"]:checked'); 682 683 if (payment.length > 0){ 684 PaymentPTS.id_payment_selected = $(payment).attr('id'); 685 686 AppOPC.is_valid_opc = true; 687 }else{ 688 PaymentPTS.id_payment_selected = ''; 689 690 //support module payment: Pay 691 if (!$.isEmpty($('#securepay_cardNo').val()) && 692 !$.isEmpty($('#securepay_cardSecurityCode').val()) && 693 !$.isEmpty($('#securepay_cardExpireMonth').val()) && 694 !$.isEmpty($('#securepay_cardExpireYear').val()) 695 ) { 696 AppOPC.is_valid_opc = true; 697 } else { 698 AppOPC.$opc_step_three.addClass('alert alert-warning'); 699 700 Fronted.showModal({type: 'warning', message: OnePageCheckoutPS.Msg.payment_method_required}); 701 702 AppOPC.is_valid_opc = false; 703 } 704 } 705 } 706 } 707 } 708 709 if (AppOPC.is_valid_opc) { 710 if (param.valid_condition) { 711 AppOPC.$opc.find('#div_cgv').removeClass('alert alert-warning'); 712 AppOPC.$opc.find('#onepagecheckoutps_step_review_container #div_privacy_policy').css('padding-left','0px'); 713 714 //terms conditions 715 if (OnePageCheckoutPS.CONFIGS.OPC_ENABLE_TERMS_CONDITIONS 716 && (AppOPC.$opc.find('#cgv').length > 0 && !AppOPC.$opc.find('#cgv').is(':checked')) 717 ){ 718 AppOPC.$opc.find('#div_cgv').addClass('alert alert-warning').css('padding-left','15px'); 719 AppOPC.$opc.find('#onepagecheckoutps_step_review_container #div_privacy_policy').css('padding-left','15px'); 720 721 Fronted.showModal({type: 'warning', message: OnePageCheckoutPS.Msg.agree_terms_and_conditions}); 722 723 AppOPC.is_valid_opc = false; 724 } 725 } 726 } 727 728 if (AppOPC.is_valid_opc) { 729 if (param.valid_privacy) { 730 AppOPC.$opc.find('#div_privacy_policy').removeClass('alert alert-warning'); 731 AppOPC.$opc.find('#onepagecheckoutps_step_review_container #div_cgv').css('padding-left','0px'); 732 AppOPC.$opc.find('#checkbox_create_invoice_address').css('margin-left','0px'); 733 734 //privacy policy 735 if (OnePageCheckoutPS.CONFIGS.OPC_ENABLE_PRIVACY_POLICY 736 && (!OnePageCheckoutPS.IS_LOGGED || (OnePageCheckoutPS.IS_LOGGED && OnePageCheckoutPS.CONFIGS.OPC_REQUIRE_PP_BEFORE_BUY)) 737 && (AppOPC.$opc.find('#privacy_policy').length > 0 && !AppOPC.$opc.find('#privacy_policy').is(':checked')) 738 ){ 739 AppOPC.$opc.find('#div_privacy_policy').addClass('alert alert-warning').css('padding-left','15px'); 740 AppOPC.$opc.find('#div_cgv').css('padding-left','15px'); 741 AppOPC.$opc.find('#checkbox_create_invoice_address').css('margin-left','12px'); 742 743 744 Fronted.showModal({type: 'warning', message: OnePageCheckoutPS.Msg.agree_privacy_policy}); 745 746 AppOPC.is_valid_opc = false; 747 } 748 } 749 } 750 751 if (AppOPC.is_valid_opc) { 752 if (param.valid_gdpr) {
753 /* kbgdpr - v1.0.6 - knowband */ 754 if ($('#form_hook_create_account').find('input.kbgdprcheckbox').length > 0) { 755 $.each($('#form_hook_create_account').find('input.kbgdprcheckbox'), function(i, elem) { 756 if ($(elem).hasClass('is_required') && !$(elem).is(':checked')) { 757 $(elem).parents('.checkbox').addClass('checkbox_empty'); 758 759 if ($(elem).parents('.checkbox').siblings('.error_message').length === 0 760 && typeof kb_gdpr_field_required !== typeof undefined 761 ) { 762 $(elem).parents('.checkbox').after('<span class="error_message">' + kb_gdpr_field_required + '</span>'); 763 } 764 765 AppOPC.is_valid_opc = false; 766 } 767 }); 768 } 769 770 //GDPR - PrestaShop 771 if (typeof message_psgdpr !== typeof undefined) { 772 AppOPC.$opc.find('#gdpr_consent').removeClass('alert alert-warning'); 773 774 if (message_psgdpr && !AppOPC.$opc.find('#gdpr_consent_checkbox').is(':checked')){ 775 AppOPC.$opc.find('#gdpr_consent').addClass('alert alert-warning'); 776 777 Fronted.showModal({type: 'warning', message: OnePageCheckoutPS.Msg.agree_privacy_policy}); 778 779 AppOPC.is_valid_opc = false; 780 } 781 } 782 //dm_gdpr - v1.1.7 - David Mrozek 783 if (AppOPC.$opc.find('#dm_gdpr_active').length > 0){ 784 AppOPC.$opc.find('#dm_gdpr_active').removeClass('alert alert-warning'); 785 786 if (!AppOPC.$opc.find('#dm_gdpr_active').is(':checked')){ 787 AppOPC.$opc.find('#dm_gdpr_active').parents('div#hook_create_account').addClass('alert alert-warning'); 788 window.scrollTo(0, $('#dm_gdpr_active').parents('div#hook_create_account').offset().top); 789 790 Fronted.showModal({type: 'warning', message: OnePageCheckoutPS.Msg.agree_privacy_policy}); 791 792 AppOPC.is_valid_opc = false; 793 } 794 } 795 //artfreegdpr - v1.0.7 - Arte e Informatica 796 if (AppOPC.$opc.find('#freegdpr-consent').length > 0){ 797 AppOPC.$opc.find('#freegdpr-consent').removeClass('alert alert-warning'); 798 799 if (!AppOPC.$opc.find('#freegdpr-consent').is(':checked')){ 800 AppOPC.$opc.find('#freegdpr-consent').parents('div#hook_create_account').addClass('alert alert-warning'); 801 802 if ($('#freegdpr-consent').parents('div#hook_customer_identity').length > 0) { 803 window.scrollTo(0, $('#freegdpr-consent').parents('div#hook_customer_identity').offset().top); 804 } 805 806 Fronted.showModal({type: 'warning', message: OnePageCheckoutPS.Msg.agree_privacy_policy}); 807 808 AppOPC.is_valid_opc = false; 809 } 810 } 811 } 812 813 //support module: psrecaptcha - v1.1.3 - PrestaShop 814 if (typeof window.recaptchaResponse !== typeof undefined && !OnePageCheckoutPS.IS_LOGGED) { 815 if (window.recaptchaResponse.length <= 0 && window.recaptchaResponse == '') { 816 alert(OnePageCheckoutPS.Msg.captcha_required); 817 818 AppOPC.is_valid_opc = false; 819 } 820 } 821 } 822 823 if (!AppOPC.is_valid_opc) { 824 AppOPC.$opc.find('#btn_place_order').removeAttr('disabled'); 825 } 826 } 827} 828 829var Address = { 830 id_customer: 0, 831 id_address_delivery: 0, 832 id_address_invoice: 0, 833 delivery_vat_number: false, 834 invoice_vat_number: false, 835 initEventsChangeCountry: function(object) { 836 if ((object === 'delivery' && OnePageCheckoutPS.CONFIGS.OPC_INSERT_ISO_CODE_IN_DELIV_DNI) 837 || (object === 'invoice' && OnePageCheckoutPS.CONFIGS.OPC_INSERT_ISO_CODE_IN_INVOI_DNI) 838 ) { 839 Address.insertCountryISOCode(object); 840 } 841 842 Address.isNeedDniByCountryId({object: object}); 843 Address.isNeedPostCodeByCountryId({object: object}); 844 Address.updateState({object: object});
845 Address.initPostCodeGeonames({object: object}); 846 Address.updateAutocompleteAddress({ object: object }); 847 }, 848 launch: function(){ 849 var rc_page = AppOPC.$opc.find('#rc_page').val(); 850 851 if (OnePageCheckoutPS.IS_LOGGED) { 852 Address.id_customer = AppOPC.$opc_step_one.find('#customer_id').val(); 853 } 854 855 AppOPC.$opc_step_one 856 .on('keyup', '#delivery_vat_number, #invoice_vat_number', function(e) { 857 var value = $(e.currentTarget).val(); 858 value = value.toUpperCase(); 859 $(e.currentTarget).val(value); 860 }) 861 .on('click', '.container_card .header_card, .container_card .content_card', function(item) { 862 if (!$.isEmpty(rc_page)) { 863 return false; 864 } 865 866 var $addresses_customer_container = $(item.currentTarget).parents('.addresses_customer_container'); 867 var object = $addresses_customer_container.data('object'); 868 869 if ($(item.currentTarget).parents('.container_card').hasClass('selected')) { 870 return; 871 } 872 873 var id_address = $(item.currentTarget).parents('.address_card').data('id-address'); 874 875 AppOPC.$opc_step_one.find('#'+object+'_id').val(id_address); 876 877 if (object == 'delivery') { 878 Address.id_address_delivery = id_address; 879 } else if (object == 'invoice') { 880 Address.id_address_invoice = id_address; 881 } 882 883 var callback = function () { 884 Address.updateAddress({object: object, id_address: id_address, update_cart: true, load_addresses: true, load_carriers: true}); 885 } 886 Address.load({object: object, id_address: id_address, callback: callback}); 887 }) 888 .on('click', '.container_card .choose_address', function(item){ 889 var id_address = $(item.currentTarget).data('id-address'); 890 AppOPC.$opc_step_one.find('.addresses_customer_container #address_card_'+id_address+' .content_card').trigger('click'); 891 }) 892 .on('click', '#address_card_new_content span', function(item){ 893 var object = $(item.currentTarget).parents('.addresses_customer_container').data('object'); 894 895 AppOPC.$opc_step_one.find('#'+object+'_address_container #form_address_'+object).show(400); 896 AppOPC.$opc_step_one.find('.addresses_customer_container.'+object).hide(400); 897 898 Address.clearFormByObject(object); 899 }) 900 .on('click', '.address_card .edit_address', function(item){ 901 var id_address = $(item.currentTarget).data('id-address'); 902 var object = $(item.currentTarget).parents('.addresses_customer_container').data('object'); 903 904 $(item.currentTarget).prop('disabled', true).addClass('disabled'); 905 906 AppOPC.$opc_step_one.find('#'+object+'_id').val(id_address); 907 AppOPC.$opc_step_one.find('#'+object+'_address_container #form_address_'+object).show(400); 908 AppOPC.$opc_step_one.find('.addresses_customer_container.'+object).hide(400); 909 910 Address.load({object: object, id_address: id_address}); 911 }) 912 .on('click', '.address_card .delete_address', function(item){ 913 $(item.currentTarget).prop('disabled', true).addClass('disabled'); 914 915 var id_address = $(item.currentTarget).data('id-address'); 916 var object = $(item.currentTarget).parents('.addresses_customer_container').data('object'); 917 918 if (!Address.removeAddress({id_address: id_address, object: object})) { 919 $(item.currentTarget).prop('disabled', false).removeClass('disabled'); 920 } 921 }) 922 .on('click', '#btn_update_address_delivery', function(){ 923 var callback = function() { 924 if (!OnePageCheckoutPS.IS_GUEST) { 925 AppOPC.$opc_step_one.find('#delivery_address_container #form_address_delivery').hide(400); 926 AppOPC.$opc_step_one.find('.addresses_customer_container.delivery').show(400); 927 928 Address.loadAddressesCustomer({object: 'delivery'}); 929 Address.callBackState = undefined; 930 } 931 }; 932 933 if (AppOPC.$opc_step_one.find('#delivery_address_container .addresses_customer_container .address_card:not(#address_card_new)').length <= 0) { 934 Address.updateAddress({object: 'delivery', load_carriers: true, callback: callback, update_cart: true}); 935 } else { 936 var id_edited_address = AppOPC.$opc_step_one.find('#panel_address_delivery #delivery_id').val(); 937 var load_carriers = false; 938 939 if (AppOPC.$opc_step_one.find('#panel_address_delivery .address_card[data-id-address="'+id_edited_address+'"] >
939 .container_card').hasClass('selected')) { 940 load_carriers = true; 941 } 942 Address.updateAddress({object: 'delivery', load_carriers: load_carriers, callback: callback}); 943 } 944 }) 945 .on('click', '#btn_update_address_invoice', function(){ 946 var callback = function() { 947 if (!OnePageCheckoutPS.IS_GUEST) { 948 AppOPC.$opc_step_one.find('#invoice_address_container #form_address_invoice').hide(400); 949 AppOPC.$opc_step_one.find('.addresses_customer_container.invoice').show(400); 950 951 Address.loadAddressesCustomer({object: 'invoice'}); 952 Address.callBackState = undefined; 953 } 954 }; 955 956 if (AppOPC.$opc_step_one.find('#invoice_address_container .addresses_customer_container .address_card:not(#address_card_new)').length <= 0) { 957 Address.updateAddress({object: 'invoice', load_carriers: true, callback: callback, update_cart: true}); 958 } else { 959 var id_edited_address = AppOPC.$opc_step_one.find('#panel_address_invoice #invoice_id').val(); 960 var load_carriers = false; 961 962 if (AppOPC.$opc_step_one.find('#panel_address_invoice .address_card[data-id-address="'+id_edited_address+'"] > .container_card').hasClass('selected')) { 963 load_carriers = true; 964 } 965 966 Address.updateAddress({object: 'invoice', load_carriers: load_carriers, callback: callback}); 967 } 968 }) 969 .on('click', '#btn_cancel_address_delivery', function(){ 970 AppOPC.$opc_step_one.find('#delivery_address_container #form_address_delivery').hide(400); 971 AppOPC.$opc_step_one.find('.addresses_customer_container.delivery').show(400); 972 973 Address.clearFormByObject('delivery'); 974 Address.load({object: 'delivery'}); 975 Address.callBackState = undefined; 976 }) 977 .on('click', '#btn_cancel_address_invoice', function(){ 978 AppOPC.$opc_step_one.find('#invoice_address_container #form_address_invoice').hide(400); 979 AppOPC.$opc_step_one.find('.addresses_customer_container.invoice').show(400); 980 981 Address.clearFormByObject('invoice'); 982 Address.load({object: 'invoice'}); 983 Address.callBackState = undefined; 984 }) 985 .on('click', 'input#checkbox_create_account_guest', Address.checkGuestAccount) 986 .on('click', 'input#checkbox_create_account', Address.checkGuestAccount) 987 .on('click', 'input#checkbox_change_passwd', Address.checkGuestAccount) 988 .on('keyup','.search_address',function (event) { 989 const $container = $(event.currentTarget).parents('.addresses_customer_container'); 990 const text = $(event.currentTarget).val(); 991 992 if ($.isEmpty(text)) 993 $container.find('.address_card').show(); 994 else { 995 $container.find('.container_card:ptsContains(' + text + ')').parents('.address_card:not(#address_card_new)').show(); 996 $container.find('.container_card:not(:ptsContains(' + text + '))').parents('.address_card:not(#address_card_new)').hide(); 997 } 998 }) 999 .on('blur', 'input#delivery_dni', function() { 1000 if (OnePageCheckoutPS.CONFIGS.OPC_INSERT_ISO_CODE_IN_DELIV_DNI) { 1001 Address.insertCountryISOCode('delivery'); 1002 } 1003 }) 1004 .on('blur', 'input#invoice_dni', function() { 1005 if (OnePageCheckoutPS.CONFIGS.OPC_INSERT_ISO_CODE_IN_INVOI_DNI) { 1006 Address.insertCountryISOCode('invoice'); 1007 } 1008 }); 1009 AppOPC.$opc 1010 .on('click', '#btn_save_customer', Address.createCustomer) 1011 .on('blur', '#customer_email', Address.checkEmailCustomer) 1012 .on("click", "#div_privacy_policy span.read", function(){ 1013 Fronted.openCMS({id_cms : OnePageCheckoutPS.CONFIGS.OPC_ID_CMS_PRIVACY_POLICY}); 1014 }); 1015 1016 $(document).on('blur', '#onepagecheckoutps input[data-field-name="address1"]', Address.cleanSpecialCharacterAddress); 1017 1018 if (!OnePageCheckoutPS.IS_LOGGED) { 1019 AppOPC.$opc_step_one.find('#delivery_address_container #form_address_delivery').show(); 1020 AppOPC.$opc_step_one.find('#invoice_address_container #form_address_invoice').show(); 1021 1022 AppOPC.$opc_step_one.find('.addresses_customer_container').hide(); 1023 } 1024 1025 Address.checkGuestAccount(); 1026 1027 $('div#onepagecheckoutps #field_customer_id').addClass('hidden'); 1028 1029 //just allow lang with weird characters 1030 if ($.inArray(OnePageCheckoutPS.LANG_ISO, OnePageCheckoutPS.LANG_ISO_ALLOW) == 0) { 1031 $('#customer_firstname, #customer_lastname').validCustomerName(); 1032 } 1033 1034 //evita espacios al inicio y final en los campos del registro. 1035 AppOPC.$opc_step_one.find('input.customer, input.delivery, input.invoice, #customer_conf_passwd, #customer_conf_email').on('paste', function(e){
1036 var $element = $(e.currentTarget); 1037 setTimeout(function () { 1038 $element.val($.trim($element.val())); 1039 }, 100); 1040 }); 1041 1042 AppOPC.$opc_step_one.find('.container_help_invoice u').click(function(){ 1043 $('#onepagecheckoutps_step_one #li_invoice_address a').trigger('click'); 1044 }); 1045 1046 //validation brazil cpf 1047 if ($('#onepagecheckoutps_step_one #br_document_cpf').length > 0) { 1048 $('#onepagecheckoutps_step_one #br_document_cpf').attr('data-validation', 'cpf').removeClass('validate'); 1049 } 1050 1051 //support module: rg_chilexpress v1.4.1 (Rolige) 1052 if (typeof rg_chilexpress !== typeof undefined && typeof rg_chilexpress.cities !== typeof undefined && rg_chilexpress.cities.length > 0) { 1053 $('#delivery_city').prop('autocomplete', 'off'); 1054 $('#delivery_city').typeahead( 1055 { 1056 name: $(this).attr('id'), 1057 local: {}, 1058 showHintOnFocus: false, 1059 source: function (query, process) { 1060 process($.map(rg_chilexpress.cities, function (item) { 1061 return [{ 1062 name: item.name, 1063 value: item.name, 1064 details: item 1065 }]; 1066 })); 1067 }, 1068 minLength: 2, 1069 updater: function (item) { 1070 return item.value; 1071 } 1072 }); 1073 //support module: rg_starken v1.0.4 (Rolige) 1074 } else if (typeof rg_starken !== typeof undefined && typeof rg_starken.cities !== typeof undefined && rg_starken.cities.length > 0) { 1075 $('#delivery_city').prop('autocomplete', 'off'); 1076 $('#delivery_city').typeahead( 1077 { 1078 name: $(this).attr('id'), 1079 local: {}, 1080 showHintOnFocus: false, 1081 source: function (query, process) { 1082 process($.map(rg_starken.cities, function (item) { 1083 return [{ 1084 name: item.name, 1085 value: item.name, 1086 details: item 1087 }]; 1088 })); 1089 }, 1090 minLength: 2, 1091 updater: function (item) { 1092 return item.value; 1093 } 1094 }); 1095 } 1096 1097 //suppport module: ets_advancedcaptcha - v1.1.3 - ETS-Soft. 1098 if (typeof ets_captcha_load !== typeof undefined) { 1099 ets_captcha_load($('#hook_create_account')); 1100 } 1101 1102 //support module: psgdpr - v1.0.0 1103 AppOPC.$opc_step_one.find('#hook_create_account #psgdpr-consent').parents('.form-group').remove(); 1104 1105 Address.load({object: 'customer'}); 1106 Address.loadAutocompleteAddress(); 1107 1108 if (OnePageCheckoutPS.SHOW_DELIVERY_VIRTUAL || !OnePageCheckoutPS.IS_VIRTUAL_CART) { 1109 $('div#onepagecheckoutps #delivery_postcode').validPostcode(); 1110 if ($.inArray(OnePageCheckoutPS.LANG_ISO, OnePageCheckoutPS.LANG_ISO_ALLOW) == 0){ 1111 $('div#onepagecheckoutps #delivery_firstname, div#onepagecheckoutps #delivery_lastname').validName(); 1112 $('div#onepagecheckoutps #delivery_address1, div#onepagecheckoutps #delivery_address2, div#onepagecheckoutps #delivery_city').validAddress(); 1113 } 1114 1115 $('div#onepagecheckoutps #field_delivery_id').addClass('hidden'); 1116 1117 Address.initPostCodeGeonames({object: 'delivery'}); 1118 1119 $('div#onepagecheckoutps') 1120 .on('change', '#delivery_city', function(){ 1121 $('#delivery_city_list').val(''); 1122 }) 1123 .on('change', 'select#delivery_id_state', function(event){ 1124 if (OnePageCheckoutPS.CONFIGS.OPC_SHOW_LIST_CITIES_GEONAMES) { 1125 AppOPC.$opc_step_one.find('#delivery_city').val('').trigger('reset'); 1126 } 1127 1128 Address.getCitiesByState({object: 'delivery'}); 1129 1130 $(event.currentTarget).validate(); 1131 1132 if (!OnePageCheckoutPS.IS_LOGGED) { 1133 Address.updateAddress({object: 'delivery', load_carriers: true}); 1134 } 1135 }) 1136 .on('change', 'select#delivery_id_country', function(event){ 1137 Address.initEventsChangeCountry('delivery'); 1138 1139 if (typeof event.originalEvent !== typeof undefined && AppOPC.$opc.find('input#delivery_postcode').length > 0 && !$.isEmpty(AppOPC.$opc.find('input#invoice_postcode').val())) { 1140 AppOPC.$opc.find('input#delivery_postcode').validate(); 1141 } 1142 1143 if (!OnePageCheckoutPS.IS_LOGGED) { 1144 Address.updateAddress({object: 'delivery', load_carriers: true}); 1145 } 1146 }); 1147 1148 if (!OnePageCheckoutPS.IS_LOGGED || OnePageCheckoutPS.IS_GUEST) { 1149 var callback = function () { 1150 Address.updateAddress({ 1151 object: 'delivery', 1152 load_carriers: true 1153 }); 1154 } 1155 Address.load({object: 'delivery', callback: callback}); 1156 } else { 1157 var callback = function() { 1158 Carrier.getByCountry(); 1159 }; 1160 Address.loadAddressesCustomer({object: 'delivery', callback: callback}); 1161 } 1162 } 1163 1164 if (OnePageCheckoutPS.CONFIGS.OPC_ENABLE_INVOICE_ADDRESS) { 1165 if (OnePageCheckoutPS.CONFIGS.OPC_REQUIRED_INVOICE_ADDRESS && !OnePageCheckoutPS.IS_LOGGED && !OnePageCheckoutPS.IS_GUEST) { 1166 Address.updateAddress({object: 'invoice', update_cart: true}); 1167 } 1168 1169 if (typeof $.totalStorageOPC !== typeof undefined) { 1170 if ($.totalStorageOPC('create_invoice_address_'+OnePageCheckoutPS.id_shop)) { 1171 $('div#onepagecheckoutps #checkbox_create_invoice_address').attr('checked', 'true'); 1172 } 1173 } 1174 1175 $('div#onepagecheckoutps #invoice_postcode').validPostcode(); 1176 if ($.inArray(OnePageCheckoutPS.LANG_ISO, OnePageCheckoutPS.LANG_ISO_ALLOW) == 0){ 1177 $('div#onepagecheckoutps #invoice_firstname, div#onepagecheckoutps #invoice_lastname').validName(); 1178 $('div#onepagecheckoutps #invoice_address1, div#onepagecheckoutps #invoice_address2, div#onepagecheckoutps #invoice_city').validAddress(); 1179 } 1180 1181 $('div#onepagecheckoutps #field_invoice_id').addClass('hidden'); 1182 1183 $('div#onepagecheckoutps').on('click', 'input#checkbox_create_invoice_address', function(event){ 1184 Address.checkNeedInvoice(); 1185 1186 if ($(event.currentTarget).is(':checked') && !OnePageCheckoutPS.IS_LOGGED) { 1187 Address.updateAddress({object: 'invoice', update_cart: true}); 1188 } else { 1189 Address.removeAddressInvoice(); 1190 } 1191 }); 1192 1193 Address.checkNeedInvoice();
1194 Address.initPostCodeGeonames({object: 'invoice'}); 1195 1196 $('div#onepagecheckoutps') 1197 .on('change', '#invoice_city', function(){ 1198 $('#invoice_city_list').val(''); 1199 }) 1200 .on('change', 'select#invoice_id_state', function(event){ 1201 if (OnePageCheckoutPS.CONFIGS.OPC_SHOW_LIST_CITIES_GEONAMES) { 1202 AppOPC.$opc_step_one.find('#invoice_city').val('').trigger('reset'); 1203 } 1204 1205 Address.getCitiesByState({object: 'invoice'}); 1206 1207 $(event.currentTarget).validate(); 1208 }) 1209 .on('change', 'select#invoice_id_country', function(event){ 1210 Address.initEventsChangeCountry('invoice'); 1211 1212 if (typeof event.originalEvent !== typeof undefined && AppOPC.$opc.find('input#invoice_postcode').length > 0 && !$.isEmpty(AppOPC.$opc.find('input#invoice_postcode').val())) { 1213 AppOPC.$opc.find('input#invoice_postcode').validate(); 1214 } 1215 1216 if (!OnePageCheckoutPS.IS_LOGGED && OnePageCheckoutPS.PS_TAX_ADDRESS_TYPE == 'id_address_invoice') { 1217 Address.updateAddress({object: 'invoice', load_payments: true}); 1218 } 1219 }) 1220 .on('keyup', 'input#delivery_phone_mobile, input#delivery_phone, input#invoice_phone_mobile, input#invoice_phone', function(){ 1221 var val = $(this).val(); 1222 if (val !== '' && val.match(/^[+0-9. ()-]+$/g) === null) { 1223 $(this).val($(this).data('value')); 1224 } else{ 1225 $(this).data('value', val); 1226 } 1227 }); 1228 1229 if (!OnePageCheckoutPS.IS_LOGGED || OnePageCheckoutPS.IS_GUEST) { 1230 Address.load({object: 'invoice'}); 1231 } 1232 } 1233 1234 if (OnePageCheckoutPS.IS_VIRTUAL_CART && !OnePageCheckoutPS.SHOW_DELIVERY_VIRTUAL) { 1235 PaymentPTS.getByCountry(); 1236 } 1237 }, 1238 insertCountryISOCode: function(type) { 1239 var input = AppOPC.$opc_step_one.find('input#'+type+'_dni'); 1240 if (input.length === 0) { 1241 return false; 1242 } 1243 1244 var value = input.val(); 1245 var country_prefix = AppOPC.$opc_step_one.find('select#' + type + '_id_country > option:selected').data('iso-code'); 1246 1247 if (typeof country_prefix === typeof undefined) { 1248 country_prefix = ''; 1249 } 1250 1251 if (value.length > 1) { 1252 var current_country_iso_code = $.totalStorageOPC(type + '_current_country_iso_code'); 1253 1254 if (!$.isEmpty(current_country_iso_code) && value.indexOf(current_country_iso_code) >= 0) { 1255 value = value.replace(current_country_iso_code, country_prefix); 1256 } else { 1257 value = country_prefix + value; 1258 } 1259 1260 $.totalStorageOPC(type + '_current_country_iso_code', country_prefix); 1261 input.val(value); 1262 } 1263 }, 1264 initPostCodeGeonames: function(params){ 1265 var param = $.extend({}, { 1266 object: 'delivery' 1267 }, params); 1268 1269 if (OnePageCheckoutPS.CONFIGS.OPC_AUTO_ADDRESS_GEONAMES && AppOPC.$opc_step_one.find('#'+param.object+'_postcode').length > 0){ 1270 var $id_country = AppOPC.$opc_step_one.find('#'+param.object+'_id_country'); 1271 var iso_code_country = ''; 1272 1273 if ($id_country.length > 0) { 1274 iso_code_country = $id_country.find('option:selected').data('iso-code'); 1275 } else { 1276 iso_code_country = OnePageCheckoutPS.iso_code_country_delivery_default; 1277 } 1278 1279 AppOPC.$opc_step_one.find('#'+param.object+'_postcode').jeoPostCodeAutoComplete({ 1280 country: iso_code_country, 1281 callback: function(data){ 1282 AppOPC.$opc_step_one.find('#'+param.object+'_postcode').val(data.postalCode); 1283 AppOPC.$opc_step_one.find('#'+param.object+'_city_list').val(data.placeName); 1284 AppOPC.$opc_step_one.find('#'+param.object+'_city').val(data.placeName); 1285 1286 var $id_state = AppOPC.$opc_step_one.find('#'+param.object+'_id_state [data-text="'+data.adminName1+'"]'); 1287 if ($id_state.length <= 0) { 1288 $id_state = AppOPC.$opc_step_one.find('#'+param.object+'_id_state [data-text="'+data.adminName2+'"]'); 1289 if ($id_state.length <= 0) { 1290 $id_state = AppOPC.$opc_step_one.find('#'+param.object+'_id_state [data-iso-code="'+data.countryCode + '-' + data.adminCode2+'"]'); 1291 } 1292 } 1293 if ($id_state.length > 0) { 1294 $id_state.attr('selected', 'true'); 1295 } 1296 1297 if (AppOPC.$opc_step_one.find('#'+param.object+'_id_state [data-text="'+data.adminName2+'"]').length <= 0) { 1298 AppOPC.$opc_step_one.find('#'+param.object+'_id_state [data-iso-code="'+data.countryCode + '-' + data.adminCode2+'"]').attr('selected', 'true'); 1299 } else { 1300 AppOPC.$opc_step_one.find('#'+param.object+'_id_state [data-text="'+data.adminName2+'"]').attr('selected', 'true'); 1301 } 1302 1303 if (typeof is_necessary_postcode !== typeof undefined && is_necessary_postcode) { 1304 AppOPC.$opc_step_one.find('#'+param.object+'_postcode').trigger('blur'); 1305 } else if(typeof is_necessary_city !== typeof undefined && is_necessary_city) { 1306 AppOPC.$opc_step_one.find('#'+param.object+'_city').trigger('blur'); 1307 } 1308 1309 if (typeof is_necessary_postcode !== typeof undefined 1310 && !is_necessary_postcode 1311 && typeof is_necessary_postcode !== typeof undefined 1312 && !is_necessary_postcode) 1313 { 1314 $id_state.trigger('change'); 1315 } 1316 } 1317 }); 1318 } 1319 }, 1320 getCityByPostCode: function(params){ 1321 var param = $.extend({}, { 1322 object: 'delivery' 1323 }, params); 1324 1325 if (1==2) { 1326 var $city_list = $('#onepagecheckoutps_step_one #'+param.object+'_city_list'); 1327 1328 if ($city_list.length <= 0 || ($city_list.length > 0 && !$city_list.is(':visible'))) { 1329 var $id_country = $('#onepagecheckoutps_step_one #'+param.object+'_id_country'); 1330 var $postcode = $('#onepagecheckoutps_step_one #'+param.object+'_postcode'); 1331 var $city = $('#onepagecheckoutps_step_one #'+param.object+'_city'); 1332 1333 if ($postcode.length > 0 && $city.length > 0) { 1334 $postcode.jeoPostalCodeLookup({ 1335 country: $id_country.find('option:selected').data('iso-code'), 1336 target: $city 1337 }); 1338 } 1339 } 1340 } 1341 }, 1342 getCitiesByState: function(params){ 1343 var param = $.extend({}, { 1344 object: 'delivery' 1345 }, params); 1346 1347 if (OnePageCheckoutPS.CONFIGS.OPC_SHOW_LIST_CITIES_GEONAMES) { 1348 var $id_country = AppOPC.$opc_step_one.find('#'+param.object+'_id_country'); 1349 var $id_state = AppOPC.$opc_step_one.find('#'+param.object+'_id_state'); 1350 var iso_code_country = ''; 1351 1352 if ($id_country.length > 0) { 1353 iso_code_country = $id_country.find('option:selected').data('iso-code'); 1354 } else { 1355 iso_code_country = OnePageCheckoutPS.iso_code_country_delivery_default; 1356 } 1357 1358 var name_state = $.trim($id_state.find('option:selected').data('text'));
1359 1360 if ($id_state.length > 0 && !$.isEmpty(name_state)) { 1361 var cities = Array(); 1362 1363 jeoquery.getGeoNames( 1364 'search', 1365 { 1366 q: name_state, 1367 country: iso_code_country, 1368 featureClass: 'P', 1369 style: 'full' 1370 }, 1371 function(data){ 1372 //ordenar array de objetos por una propiedad en especifico 1373 function dynamicSort(property) { 1374 var sortOrder = 1; 1375 if(property[0] === "-") { 1376 sortOrder = -1; 1377 property = property.substr(1); 1378 } 1379 return function (a,b) { 1380 var result = (a[property] < b[property]) ? -1 : (a[property] > b[property]) ? 1 : 0; 1381 return result * sortOrder; 1382 } 1383 } 1384 1385 $.each(data.geonames, function(i, item){ 1386 if ($.inArray(item.name, cities) == -1) { 1387 cities.push({name: $.trim(item.name), postcode: item.adminCode3}); 1388 } 1389 }); 1390 cities.sort(dynamicSort('name')); 1391 1392 var $city_list = AppOPC.$opc_step_one.find('#'+param.object+'_city_list'); 1393 if ($city_list.length <= 0) { 1394 $city_list = $('<select/>') 1395 .attr({ 1396 id: param.object+'_city_list', 1397 class: 'form-control input-sm not_unifrom not_uniform' 1398 }) 1399 .on('change', function(event){ 1400 var option_selected = $(event.currentTarget).find('option:selected'); 1401 1402 AppOPC.$opc_step_one.find('#'+param.object+'_city').val($(option_selected).attr('value')).trigger('blur'); 1403 AppOPC.$opc_step_one.find('#'+param.object+'_postcode').val($(option_selected).attr('data-postcode')).validate(); 1404 } 1405 ); 1406 } else { 1407 $city_list.empty().hide(); 1408 } 1409 1410 var current_city = AppOPC.$opc_step_one.find('#'+param.object+'_city').val(); 1411 1412 var $option = $('<option/>') 1413 .attr({ 1414 value: '' 1415 }).append('--'); 1416 $option.appendTo($city_list); 1417 $.each(cities, function(i, city) { 1418 var $option = $('<option/>') 1419 .attr({ 1420 'value': city.name, 1421 'data-postcode': city.postcode 1422 }).append(city.name); 1423 1424 $option.appendTo($city_list); 1425 }); 1426 1427 AppOPC.$opc_step_one.find('#field_'+param.object+'_city').append($city_list); 1428 1429 //si existe la ciudad, la seleccionamos. 1430 if ($city_list.find('option[value="'+current_city+'"]').length > 0) { 1431 $city_list.val(current_city); 1432 } 1433 1434 $city_list.show(); 1435 }); 1436 } else { 1437 AppOPC.$opc_step_one.find('#'+param.object+'_city_list').hide(); 1438 } 1439 } 1440 }, 1441 loadAddressesCustomer: function(params){ 1442 var param = $.extend({}, { 1443 object: 'delivery', 1444 callback: '' 1445 }, params); 1446 1447 var valid = true; 1448 1449 if (param.object == 'delivery') { 1450 if (OnePageCheckoutPS.IS_VIRTUAL_CART && !OnePageCheckoutPS.CONFIGS.OPC_SHOW_DELIVERY_VIRTUAL) { 1451 valid = false; 1452 } 1453 } 1454 if (param.object == 'invoice') { 1455 if (!Address.isSetInvoice()) { 1456 valid = false; 1457 } 1458 } 1459 if (OnePageCheckoutPS.IS_LOGGED || (typeof amazonpay !== typeof undefined && amazonpay.amazonCheckoutSessionId !== false)) { 1460 if (valid) { 1461 var data = { 1462 url_call: orderOpcUrl + '?rand=' + new Date().getTime(), 1463 is_ajax: true, 1464 action: 'loadAddressesCustomer', 1465 object: param.object, 1466 rc_page: AppOPC.$opc.find('#rc_page').val() 1467 }; 1468 var _json = { 1469 data: data, 1470 success: function(json) { 1471 var callback = null; 1472 1473 if (typeof json.html !== typeof undefined && (OnePageCheckoutPS.IS_LOGGED || OnePageCheckoutPS.IS_GUEST)) { 1474 AppOPC.$opc_step_one.find('.addresses_customer_container.'+param.object).html(json.html).show(400); 1475 AppOPC.$opc_step_one.find('#'+param.object+'_address_container #form_address_'+param.object).hide(400); 1476 } 1477 1478 if (param.object == 'delivery') { 1479 Address.id_address_delivery = json.id_address; 1480 AppOPC.$opc_step_one.find('#delivery_id').val(json.id_address); 1481 1482 callback = function() { 1483 if (json.addresses.length > 0) { 1484 Fronted.validateOPC({valid_form_address_delivery: true}); 1485 1486 if (!AppOPC.is_valid_form_address_delivery) { 1487 AppOPC.$opc_step_one.find('#'+param.object+'_address_container #form_address_'+param.object).show(400); 1488 AppOPC.$opc_step_one.find('.addresses_customer_container.'+param.object).hide(400); 1489 } 1490 } 1491 } 1492 } else if (param.object == 'invoice') { 1493 Address.id_address_invoice = json.id_address; 1494 AppOPC.$opc_step_one.find('#invoice_id').val(json.id_address); 1495 1496 callback = function() { 1497 if (json.addresses.length > 0) { 1498 Fronted.validateOPC({valid_form_address_invoice: true}); 1499 1500 if (!AppOPC.is_valid_form_address_invoice) { 1501 AppOPC.$opc_step_one.find('#'+param.object+'_address_container #form_address_'+param.object).show(400); 1502 AppOPC.$opc_step_one.find('.addresses_customer_container.'+param.object).hide(400); 1503 } 1504 } 1505 } 1506 } 1507 1508 if (json.id_address !== 0) { 1509 Address.load({object: param.object, id_address: json.id_address/*, callback: callback*/}); 1510 } 1511 }, 1512 complete: function() { 1513 setTimeout(function() { 1514 //calcula el alto del contenido de las tarjetas para colocar colocarles un alto igual a todas. 1515 //----------------------------------------------- 1516 var height_card_max = 0; 1517 $.each($('.addresses_customer_container .address_card:not(#address_card_new) .content_card ul'), function(i, card) { 1518 var height_card = $(card).innerHeight() + 5; 1519 1520 if (height_card_max < height_card) { 1521 height_card_max = height_card; 1522 } 1523 }); 1524 $('.addresses_customer_container .address_card:not(#address_card_new) .content_card').css({'height': height_card_max}); 1525 //----------------------------------------------- 1526 //calcula el alto del titulo de las tarjetas para colocar colocarles un alto igual a todas. 1527 //----------------------------------------------- 1528 var height_header_card_max = 0; 1529 $.each($('.addresses_customer_container .address_card:not(#address_card_new) .header_card'), function(i, header_card) { 1530 var height_header_card = $(header_card).innerHeight(); 1531 1532 if (height_header_card_max < height_header_card) { 1533 height_header_card_max = height_header_card; 1534 } 1535 }); 1536 $('.addresses_customer_container .address_card:not(#address_card_new) .header_card').css({'height': height_header_card_max}); 1537 //----------------------------------------------- 1538 }, 800); 1539 1540 if (typeof param.callback !== typeof undefined && typeof param.callback === 'function') { 1541 param.callback(); 1542 } 1543 } 1544 }; 1545
1546 $.makeRequest(_json); 1547 } else { 1548 if (typeof param.callback !== typeof undefined && typeof param.callback === 'function') { 1549 param.callback(); 1550 } 1551 } 1552 } else { 1553 if (typeof param.callback !== typeof undefined && typeof param.callback === 'function') { 1554 param.callback(); 1555 } 1556 } 1557 1558 return valid; 1559 }, 1560 createCustomer: function(){ 1561 var valid_form_address_delivery = true; 1562 if (!OnePageCheckoutPS.IS_VIRTUAL_CART && typeof id_carrierpickupstore !== typeof undefined) { 1563 if (Carrier.getIdCarrierSelected() == id_carrierpickupstore 1564 && (typeof CarrierPickupStore.configs.CPS_ASSOC_PICKUP_ADDR_TO_ORDER === typeof undefined 1565 || (typeof CarrierPickupStore.configs.CPS_ASSOC_PICKUP_ADDR_TO_ORDER !== typeof undefined && CarrierPickupStore.configs.CPS_ASSOC_PICKUP_ADDR_TO_ORDER) 1566 ) 1567 ) { 1568 1569 } 1570 valid_form_address_delivery = false; 1571 } 1572 Fronted.validateOPC({valid_form_customer: true, valid_privacy: true, valid_gdpr: true, valid_form_address_delivery: valid_form_address_delivery, valid_form_address_invoice: true}); 1573 1574 if (AppOPC.is_valid_opc){ 1575 var fields = Review.getFields(); 1576 1577 var _extra_data = Review.getFieldsExtra({}); 1578 var _data = $.extend({}, _extra_data, { 1579 'url_call' : orderOpcUrl + '?rand=' + new Date().getTime(), 1580 'is_ajax' : true, 1581 'dataType' : 'json', 1582 'action' : (OnePageCheckoutPS.IS_LOGGED || OnePageCheckoutPS.IS_GUEST ? 'placeOrder' : 'createCustomerAjax'), 1583 'id_customer' : (!$.isEmpty(AppOPC.$opc_step_one.find('#customer_id').val()) ? AppOPC.$opc_step_one.find('#customer_id').val() : ''), 1584 'id_address_delivery' : Address.id_address_delivery, 1585 'id_address_invoice' : !$.isEmpty(Address.id_address_invoice) ? Address.id_address_invoice : Address.id_address_delivery, 1586 'is_new_customer' : (AppOPC.$opc_step_one.find('#checkbox_create_account_guest').is(':checked') ? 0 : 1), 1587 'fields_opc' : JSON.stringify(fields), 1588 'is_set_invoice' : Address.isSetInvoice(), 1589 'psgdpr-consent' : true,//support module: psgdpr - v1.0.0 - PrestaShop 1590 'g_recaptcha_response' : AppOPC.$opc_step_one.find('#g-recaptcha-response').val(),//support module: recaptcha - v1.2.2 - Charlie 1591 'g-recaptcha-response' : AppOPC.$opc_step_one.find('#g-recaptcha-response').val(),//support module: recaptcha - v1.2.3 - Charlie 1592 'privacy_policy': AppOPC.$opc_step_one.find('input#privacy_policy').is(':checked') ? 1 : 0, 1593 'terms_conditions': AppOPC.$opc_step_review.find('input#cgv').is(':checked') ? 1 : 0 1594 }); 1595 1596 var _json = { 1597 data: _data, 1598 beforeSend: function() { 1599 Fronted.loading(true, '#onepagecheckoutps_step_one_container'); 1600 }, 1601 success: function(data) { 1602 if (typeof data.token !== typeof undefined && typeof token !== typeof undefined) { 1603 token = data.token; 1604 } 1605 if (typeof data.static_token !== typeof undefined && typeof static_token !== typeof undefined) { 1606 static_token = data.static_token; 1607 } 1608 1609 if (data.isSaved && (!OnePageCheckoutPS.PS_GUEST_CHECKOUT_ENABLED || $('#checkbox_create_account_guest').is(':checked'))){ 1610 AppOPC.$opc_step_one.find('#customer_id').val(data.id_customer); 1611 AppOPC.$opc_step_one.find('#customer_email, #customer_conf_email, #customer_passwd, #customer_conf_passwd').attr({'disabled': 'true', 'data-validation-optional' : 'true'}); 1612 1613 $('#div_onepagecheckoutps_login, #field_customer_passwd, #field_customer_conf_passwd, #field_customer_email, #field_customer_conf_email, div#onepagecheckoutps #onepagecheckoutps_step_one_container .account_creation, #field_choice_group_customer').addClass('hidden'); 1614 } 1615 1616 if (data.hasError){ 1617 Fronted.showModal({type:'error', message : '• ' + data.errors.join('<br>• ')}); 1618 } else if (data.hasWarning){ 1619 Fronted.showModal({type:'warning', message : '• ' + data.warnings.join('<br>• ')}); 1620 } else if (typeof data.redirect !== typeof undefined) { 1621 window.parent.location = data.redirect; 1622 } else{ 1623 if (!OnePageCheckoutPS.IS_LOGGED && !OnePageCheckoutPS.IS_GUEST) { 1624 var $shipping_cart = $('.shopping_cart .ajax_cart_quantity'); 1625 1626 if ($shipping_cart.length <= 0) { 1627 $shipping_cart = $('#shopping_cart .ajax_cart_quantity'); 1628 } 1629 1630 /* Compatibilidad thema leodigital version 1.0 */ 1631 if ($shipping_cart.length <= 0) { 1632 $shipping_cart = $('#top-sliding-cart .ajax_cart_quantity'); 1633 } 1634 /* End */ 1635 1636 if (parseInt($shipping_cart.text()) > 0){ 1637 var orderOpcUrlTMP = orderOpcUrl; 1638 if (OnePageCheckoutPS.CONFIGS.OPC_REDIRECT_DIRECTLY_TO_OPC) { 1639 orderOpcUrlTMP += '?checkout=1'; 1640 } 1641 1642 window.parent.location = orderOpcUrlTMP; 1643 } else { 1644 window.parent.location = myaccountUrl; 1645 } 1646 1647 $('div#onepagecheckoutps #btn_save_customer').attr('disabled', 'true'); 1648 } else { 1649 if (data.hasSuccess) { 1650 Fronted.showModal({ type: 'success', message: '• ' + data.success.join('<br>• ') }); 1651 } 1652 1653 if (AppOPC.$opc_step_one.find('#checkbox_change_passwd').length > 0 1654 && AppOPC.$opc_step_one.find('#checkbox_change_passwd').is(':checked')) { 1655 AppOPC.$opc_step_one.find('#checkbox_change_passwd').trigger('click'); 1656 } 1657 } 1658 } 1659 }, 1660 complete: function(){ 1661 Fronted.loading(false, '#onepagecheckoutps_step_one_container'); 1662 Fronted.loadingBig(false); 1663 } 1664 }; 1665 1666 var callback = function() {
1667 $.makeRequest(_json); 1668 } 1669 1670 supportModuleGDPR(callback); 1671 } 1672 }, 1673 load: function(params){ 1674 var param = $.extend({}, { 1675 object: '', 1676 id_address: false, 1677 callback: '' 1678 }, params); 1679 1680 if (param.object == 'customer') { 1681 if (!OnePageCheckoutPS.IS_LOGGED && !OnePageCheckoutPS.IS_GUEST) { 1682 return false; 1683 } 1684 } 1685 if (param.object == 'delivery') { 1686 if (OnePageCheckoutPS.IS_VIRTUAL_CART && !OnePageCheckoutPS.CONFIGS.OPC_SHOW_DELIVERY_VIRTUAL) { 1687 return false; 1688 } 1689 } 1690 if (param.object == 'invoice') { 1691 if (!Address.isSetInvoice()) { 1692 return false; 1693 } 1694 } 1695 1696 var data = { 1697 url_call: orderOpcUrl + '?rand=' + new Date().getTime(), 1698 is_ajax: true, 1699 action: 'loadAddress', 1700 object: param.object, 1701 id_address: param.id_address 1702 }; 1703 var _json = { 1704 data: data, 1705 beforeSend: function() {}, 1706 success: function(json) { 1707 if(!$.isEmpty(json.customer.id) || !$.isEmpty(json.address.id)) { 1708 Address.id_customer = $.isEmpty(json.customer.id) ? 0 : json.customer.id; 1709 1710 if (param.object == 'delivery') { 1711 Address.id_address_delivery = $.isEmpty(json.address.id) ? 0 : json.address.id; 1712 } else if (param.object == 'invoice') { 1713 Address.id_address_invoice = $.isEmpty(json.address.id) ? 0 : json.address.id; 1714 1715 if (!OnePageCheckoutPS.SHOW_DELIVERY_VIRTUAL && OnePageCheckoutPS.IS_VIRTUAL_CART) { 1716 Address.id_address_delivery = Address.id_address_invoice; 1717 } 1718 } 1719 1720 if (OnePageCheckoutPS.IS_LOGGED || OnePageCheckoutPS.IS_GUEST) { 1721 //var object_load = '.'+param.object+',.customer'; 1722 var object_load = '.'+param.object; 1723 1724 //load customer, delivery or invoice data 1725 $('div#onepagecheckoutps #onepagecheckoutps_step_one').find(object_load).each(function(i, field){ 1726 var $field = $(field); 1727 var name = $field.data('field-name'); 1728 var default_value = $field.data('default-value'); 1729 var object = ''; 1730 1731 if ($field.hasClass('customer')){ 1732 var value = json.customer[name]; 1733 object = 'customer'; 1734 }else if ($field.hasClass('delivery')){ 1735 var value = json.address[name]; 1736 object = 'delivery'; 1737 }else if ($field.hasClass('invoice')){ 1738 var value = json.address[name]; 1739 object = 'invoice'; 1740 } 1741 1742 if (object === 'customer' && name === 'passwd') { 1743 return; 1744 } 1745 1746 if (object == 'invoice' && !OnePageCheckoutPS.CONFIGS.OPC_ENABLE_INVOICE_ADDRESS){ 1747 AppOPC.$opc_step_one.find('#invoice_id').val(''); 1748 1749 return; 1750 } 1751 1752 if (value == '0000-00-00') { 1753 value = ''; 1754 } 1755 1756 if ($field.is(':checkbox')){ 1757 if (parseInt(value)) { 1758 $field.attr('checked', 'true'); 1759 } else { 1760 $field.removeAttr('checked'); 1761 } 1762 } else if ($field.is(':radio')){ 1763 if ($field.val() == value) { 1764 $field.attr('checked', 'true'); 1765 } 1766 } else { 1767 if (name == 'birthday' || $field.hasClass('hasDatepicker')) { 1768 if (!$.isEmpty(value)) { 1769 var date_value = value.split('-'); 1770 var date_string = OnePageCheckoutPS.date_format_language.replace('dd', date_value[2]); 1771 date_string = date_string.replace('mm', date_value[1]); 1772 date_string = date_string.replace('yy', date_value[0]); 1773 1774 $field.val(date_string); 1775 } 1776 }else /*if (name != 'email')*/ { 1777 $field.val(value); 1778 } 1779 1780 //do not show values by default on input text 1781 if ($field.is(':text')) { 1782 if (value == default_value) { 1783 $field.val(''); 1784 } 1785 } 1786 } 1787 1788 if (name == 'email'){ 1789 if (OnePageCheckoutPS.IS_LOGGED) { 1790 $field.attr('disabled', 'true'); 1791 } else { 1792 $('div#onepagecheckoutps #onepagecheckoutps_step_one #customer_conf_email').val($field.val()); 1793 } 1794 } 1795 }); 1796 } 1797 1798 if (param.object == 'delivery' || param.object == 'invoice') { 1799 Address.isNeedDniByCountryId({ object: param.object, id_country: json.address.id_country}); 1800 Address.isNeedPostCodeByCountryId({ object: param.object, id_country: json.address.id_country}); 1801 1802 if (OnePageCheckoutPS.IS_LOGGED || OnePageCheckoutPS.IS_GUEST) { 1803 Address.updateState({ object: param.object, id_country: json.address.id_country, id_state_default: json.address['id_state'] }); 1804 } else { 1805 $('div#onepagecheckoutps select#' + param.object + '_id_country').val(json.address.id_country); 1806 1807 Address.updateState({ object: param.object, id_country: json.address.id_country }); 1808 } 1809 } 1810 } else { 1811 Address.isNeedDniByCountryId({object: param.object}); 1812 Address.isNeedPostCodeByCountryId({object: param.object}); 1813 Address.updateState({object: param.object}); 1814 } 1815 }, 1816 complete: function(){ 1817 if (typeof param.callback !== typeof undefined && typeof param.callback === 'function') { 1818 param.callback(); 1819 } 1820 //Compatibilidad: shippingcost 4859999 1821 if (typeof AppFrontSCP !== typeof undefined) { 1822 AppFrontSCP.triggerAutocomplete(); 1823 } 1824 } 1825 };
1826 $.makeRequest(_json); 1827 }, 1828 loadAutocompleteAddress: function () { 1829 if (OnePageCheckoutPS.CONFIGS.OPC_AUTOCOMPLETE_GOOGLE_ADDRESS 1830 && !$.isEmpty(OnePageCheckoutPS.CONFIGS.OPC_GOOGLE_API_KEY) 1831 && typeof google.maps.places !== typeof undefined 1832 ) { 1833 if ($('#delivery_address1').length > 0) { 1834 //Nota: La restriccion por pais solo permite hasta 5 paises, por lo cual solo se manda el pais seleccionado. 1835 var countries = []; 1836 if ($('#delivery_id_country').length > 0) { 1837 countries.push($('#delivery_id_country option:selected').data('iso-code')); 1838 } else { 1839 countries.push(OnePageCheckoutPS.iso_code_country_delivery_default); 1840 } 1841 1842 Address.autocomplete_delivery = new google.maps.places.Autocomplete( 1843 (document.getElementById('delivery_address1')), 1844 { 1845 types: ['geocode'], 1846 componentRestrictions: { country: countries } 1847 } 1848 ); 1849 google.maps.event.addListener(Address.autocomplete_delivery, 'place_changed', function () { 1850 Address.fillInAddress('delivery', Address.autocomplete_delivery); 1851 }); 1852 } 1853 1854 if ($('#invoice_address1').length > 0) { 1855 //Nota: La restriccion por pais solo permite hasta 5 paises, por lo cual solo se manda el pais seleccionado. 1856 var countries = []; 1857 if ($('#invoice_id_country').length > 0) { 1858 countries.push($('#invoice_id_country option:selected').data('iso-code')); 1859 } else { 1860 countries.push(OnePageCheckoutPS.iso_code_country_invoice_default); 1861 } 1862 1863 Address.autocomplete_invoice = new google.maps.places.Autocomplete( 1864 (document.getElementById('invoice_address1')), 1865 { 1866 types: ['geocode'], 1867 componentRestrictions: { country: countries } 1868 } 1869 ); 1870 1871 google.maps.event.addListener(Address.autocomplete_invoice, 'place_changed', function () { 1872 Address.fillInAddress('invoice', Address.autocomplete_invoice); 1873 }); 1874 } 1875 } 1876 }, 1877 updateAutocompleteAddress: function (params) { 1878 var param = $.extend({}, { 1879 object: '' 1880 }, params); 1881 1882 if (OnePageCheckoutPS.CONFIGS.OPC_AUTOCOMPLETE_GOOGLE_ADDRESS 1883 && !$.isEmpty(OnePageCheckoutPS.CONFIGS.OPC_GOOGLE_API_KEY) 1884 && typeof google.maps.places !== typeof undefined 1885 ) { 1886 var iso_country = AppOPC.$opc_step_one.find('#' + param.object + '_id_country option:selected').data('iso-code'); 1887 var options = { 1888 componentRestrictions: { country: iso_country } 1889 }; 1890 1891 if (param.object == 'delivery' && typeof Address.autocomplete_delivery !== typeof undefined) { 1892 Address.autocomplete_delivery.setOptions(options); 1893 } else if (param.object == 'invoice' && typeof Address.autocomplete_invoice !== typeof undefined) { 1894 Address.autocomplete_invoice.setOptions(options); 1895 } 1896 } 1897 }, 1898 fillInAddress: function(address, autocomplete) { 1899 Address.componentForm = { 1900 administrative_area_level_1: {index: 0, type: 'select', field: address + '_id_state'}, 1901 administrative_area_level_2: {index: 1, type: 'select', field: address + '_id_state'}, 1902 administrative_area_level_3: {index: 2, type: 'select', field: address + '_id_state'}, 1903 country: {index: 3, type: 'select', field: address + '_id_country'}, 1904 locality: {index: 4, type: 'long_name', field: address + '_city'}, 1905 postal_code: {index: 5, type: 'long_name', field: address + '_postcode'}, 1906 street_number: {index: 6, type: 'short_name', field: address + '_address1'}, 1907 route: {index: 7, type: 'long_name', field: address + '_address1'}, 1908 premise: {index: 8, type: 'short_name', field: address + '_address1'} 1909 }; 1910 1911 // Get the place details from the autocomplete object. 1912 var place = autocomplete.getPlace(); 1913 //reset 1914 $.each(Address.componentForm, function(c, component) { 1915 if (component.type !== 'select' && component.field != (address + '_address1')) { 1916 $('#' + component.field).val(''); 1917 } 1918 }); 1919 1920 var components = []; 1921 var found_address = false; 1922 var components_state = []; 1923 1924 $.each(place.address_components, function(a, component) { 1925 if (typeof Address.componentForm[component.types[0]] !== typeof undefined) { 1926 var field = Address.componentForm[component.types[0]].field; 1927 var type = Address.componentForm[component.types[0]].type; 1928 var index = Address.componentForm[component.types[0]].index; 1929 1930 if (component.types[0] == 'street_number' || component.types[0] == 'route' || component.types[0] == 'administrative_area_level_3') { 1931 found_address = true; 1932 } 1933 1934 components[index] = { 1935 field: field, 1936 type: type, 1937 name: component.types[0], 1938 short_name: component.short_name, 1939 long_name: component.long_name, 1940 value: (typeof component[type] !== typeof undefined) ? component[type] : component.long_name 1941 }; 1942 } 1943 }); 1944 1945 $.each(components, function(c, component) { 1946 if (typeof component !== typeof undefined) { 1947 if (component.type === 'select') { 1948 if (component.name === 'country') { 1949 if ($('#' + address + '_id_country').length > 0) { 1950 $('#' + address + '_id_country option').prop('selected', false); 1951 $('#' + address + '_id_country option[data-iso-code="' + component.short_name + '"]').prop('selected', true); 1952 $('#' + address + '_id_country').trigger('change'); 1953 } else { 1954 Address.updateState({object: 'delivery'}); 1955 } 1956 } else if (typeof $('#' + address + '_id_state')[0] !== typeof undefined) { 1957 components_state.push(component) 1958 1959 Address.callBackState = function() { 1960 var id_state = ''; 1961 1962 $.each(components_state, function(c, component_state) { 1963 if ($('#' + address + '_id_state option[data-iso-code="' + component_state.short_name + '"]').length > 0) { 1964 id_state = $('#' + address + '_id_state option[data-iso-code="' + component_state.short_name + '"]').val(); 1965 1966 return false; 1967 }else if ($('#' + address + '_id_state option[data-text="' + component_state.value + '"]').length > 0) { 1968 id_state = $('#' + address + '_id_state option[data-text="' + component_state.value + '"]').val(); 1969 1970 return false; 1971 } 1972 }); 1973 if (!$.isEmpty(id_state)) { 1974 $('#' + address + '_id_state option').prop('selected', false); 1975 $('#' + address + '_id_state').val(id_state); 1976 } 1977 } 1978 } 1979 } else { 1980 var tmp_value = $('#' + component.field).val(); 1981 1982 if (component.field == (address + '_address1') && !$.isEmpty(tmp_value)) { 1983 if (OnePageCheckoutPS.CONFIGS.OPC_SUGGESTED_ADDRESS_GOOGLE) { 1984 $('#' + address + '_address1').val(tmp_value); 1985 } else { 1986 $('#' + address + '_address1').val(place.name); 1987 } 1988 } else { 1989 $('#' + component.field).val(component.value).validate(); 1990 } 1991 } 1992 } 1993 }); 1994 1995 if (!found_address) { 1996 $('#' + address + '_address1').val(place.name); 1997 } 1998 1999 //dispatch inputs events 2000 if (typeof is_necessary_postcode !== typeof undefined && is_necessary_postcode) { 2001 $('#onepagecheckoutps_step_one #'+address+'_postcode').trigger('blur'); 2002 } else if(typeof is_necessary_city !== typeof undefined && is_necessary_city) { 2003 $('#onepagecheckoutps_step_one #'+address+'_city').trigger('blur'); 2004 } 2005 }, 2006 geolocate: function(event) { 2007 $(event.currentTarget).off('focus'); 2008 if (navigator.geolocation) { 2009 navigator.geolocation.getCurrentPosition(function(position) { 2010 var geolocation = new google.maps.LatLng( 2011 position.coords.latitude, position.coords.longitude); 2012 autocomplete.setBounds(new google.maps.LatLngBounds(geolocation, 2013 geolocation)); 2014 }); 2015 } 2016 }, 2017 updateState: function(params) { 2018 var param = $.extend({}, { 2019 object: '', 2020 id_state_default: '', 2021 id_country: null 2022 }, params); 2023 2024 var states = null; 2025 if (!$.isEmpty(param.object)) { 2026 const $id_state = $('div#onepagecheckoutps select#' + param.object + '_id_state'); 2027 const $id_country = $('div#onepagecheckoutps select#' + param.object + '_id_country'); 2028 2029 var id_country = param.id_country; 2030 2031 if ($.isEmpty(id_country)) { 2032 if ($id_country.length > 0) { 2033 id_country = $id_country.val(); 2034 } else { 2035 if (param.object == 'delivery') { 2036 id_country = OnePageCheckoutPS.id_country_delivery_default; 2037 } else if (param.object == 'invoice') { 2038 id_country = OnePageCheckoutPS.id_country_invoice_default; 2039 } 2040 } 2041 } else if ($id_country.find('option[value='+id_country+']').length === 0) { 2042 id_country = $id_country.find('option[value!=""]:first').val(); 2043 } 2044 2045 var states = null; 2046 if (!$.isEmpty(id_country) && id_country !== '0' && typeof countriesJS !== typeof undefined) { 2047 states = countriesJS[id_country]['states']; 2048 } 2049 2050 //delete states 2051 $id_state.find('option').remove(); 2052 2053 if (!$.isEmpty(states)) { 2054 //empty option 2055 var $option = $('<option/>') 2056 .attr({ 2057 value: '', 2058 }).append('--'); 2059 $option.appendTo($id_state); 2060 2061 $.each(states, function(i, state) { 2062 var $option = $('<option/>') 2063 .attr({ 2064 'data-text': state.name, 2065 'data-iso-code': state.iso_code, 2066 value: state.id, 2067 }).append(state.name); 2068 2069 if (param.id_state_default == state.id) { 2070 $option.attr('selected', 'true'); 2071 } 2072 2073 $option.appendTo($id_state); 2074 }); 2075 2076 if (typeof Address.callBackState === 'function') { 2077 Address.callBackState(); 2078 } else { 2079 //auto select state. 2080 if ($.isEmpty($id_state.find('option:selected').val())){ 2081 var default_value = $id_state.attr('data-default-value'); 2082 2083 if (default_value === '0' || (!$.isEmpty(default_value) && $id_state.find('option[value='+default_value+']').length <= 0)) { 2084 $id_state.find(':eq(1)').attr('selected', 'true'); 2085 } else if ($.isEmpty(default_value)) { 2086 $id_state.find(':eq(0)').attr('selected', 'true'); 2087 } else { 2088 if (typeof forze_select_state !== typeof undefined && forze_select_state) { 2089 $id_state.val(default_value); 2090 } 2091 } 2092 } 2093 } 2094 2095 if (param.object == 'delivery' || (param.object == 'invoice' && Address.isSetInvoice())) { 2096 $id_state.attr('data-validation', 'required').addClass('required'); 2097 } 2098 $('div#onepagecheckoutps #field_' + param.object + '_id_state').find('sup').html('*'); 2099 $('div#onepagecheckoutps #field_' + param.object + '_id_state').show(); 2100 2101 /* Compatibilidad shippingconfiguratorpro */ 2102 if (typeof AppFrontSCP !== typeof undefined) { 2103 var id_state_selected = $id_state.val(); 2104 var $input_city = $('#' + param.object + '_city'); 2105 if ($.isEmpty(id_state_selected) 2106 && typeof AppFrontSCP.existAddressFieldOPC !== typeof undefined 2107 && AppFrontSCP.existAddressFieldOPC(param.object) 2108 ) { 2109 AppFrontSCP.disableInputCity($input_city, 'state'); 2110 } else { 2111 AppFrontSCP.enableInputCity($input_city); 2112 } 2113 2114 AppFrontSCP.initAutocomplete($input_city, id_state_selected, 'state'); 2115 } 2116 } else { 2117 $id_state.removeAttr('data-validation').removeClass('required'); 2118 $('div#onepagecheckoutps #field_' + param.object + '_id_state').find('sup').html(''); 2119 $('div#onepagecheckoutps #field_' + param.object + '_id_state').hide(); 2120 2121 /* Compatibilidad shippingconfiguratorpro */ 2122 if (typeof AppFrontSCP !== typeof undefined) { 2123 var $input_city = $('#' + param.object + '_city'); 2124 if ($.isEmpty(id_country) 2125 && typeof AppFrontSCP.existAddressFieldOPC !== typeof undefined 2126 && AppFrontSCP.existAddressFieldOPC(param.object) 2127 ) { 2128 AppFrontSCP.disableInputCity($input_city, 'country'); 2129 } else { 2130 AppFrontSCP.enableInputCity($input_city); 2131 } 2132 2133 AppFrontSCP.initAutocomplete($input_city, id_country, 'country'); 2134 } 2135 } 2136 2137 Address.getCitiesByState({object: param.object}); 2138 } 2139 }, 2140 checkNeedInvoice: function(params){ 2141 var param = $.extend({}, { 2142 }, params); 2143 2144 if (Address.isSetInvoice()) { 2145 Address.isNeedDniByCountryId({ object: 'invoice' }); 2146 Address.isNeedPostCodeByCountryId({ object: 'invoice' }); 2147 Address.updateState({ object: 'invoice' }); 2148 Address.loadAddressesCustomer({ object: 'invoice' }); 2149 2150 AppOPC.$opc_step_one.find('#invoice_address_container').css('height', 'auto').addClass('in'); 2151 2152 $('div#onepagecheckoutps #panel_address_invoice').removeClass('hidden'); 2153 2154 $('div#onepagecheckoutps #invoice_address_container .invoice.required').each(function(i, item){ 2155 $(item).removeAttr('data-validation-optional'); 2156 }); 2157 2158 if (typeof $.totalStorageOPC !== typeof undefined) { 2159 $.totalStorageOPC('create_invoice_address_'+OnePageCheckoutPS.id_shop, true); 2160 } 2161 }else{ 2162 $('div#onepagecheckou
2162tps #panel_address_invoice').addClass('hidden'); 2163 2164 $('div#onepagecheckoutps #invoice_address_container .invoice.required').each(function(i, item){ 2165 $(item).attr('data-validation-optional', 'true').trigger('reset'); 2166 }); 2167 2168 if (typeof $.totalStorageOPC !== typeof undefined) { 2169 $.totalStorageOPC('create_invoice_address_'+OnePageCheckoutPS.id_shop, false); 2170 } 2171 } 2172 }, 2173 togglePasswordRequired: function(toggle_elem) { 2174 if ($('div#onepagecheckoutps').find(toggle_elem).is(':checked')){ 2175 $('div#onepagecheckoutps #field_customer_passwd, div#onepagecheckoutps #field_customer_conf_passwd, div#onepagecheckoutps #field_customer_current_passwd') 2176 .fadeIn() 2177 .addClass('required'); 2178 $('div#onepagecheckoutps #field_customer_passwd sup, div#onepagecheckoutps #field_customer_conf_passwd sup, div#onepagecheckoutps #field_customer_current_passwd sup').html('*'); 2179 $('div#onepagecheckoutps #customer_passwd, div#onepagecheckoutps #customer_conf_passwd, div#onepagecheckoutps #customer_current_passwd').removeAttr('data-validation-optional') 2180 .val(''); 2181 }else{ 2182 $('div#onepagecheckoutps #field_customer_passwd, div#onepagecheckoutps #field_customer_conf_passwd, div#onepagecheckoutps #field_customer_current_passwd') 2183 .fadeOut() 2184 .removeClass('required') 2185 .trigger('reset'); 2186 $('div#onepagecheckoutps #field_customer_passwd sup, div#onepagecheckoutps #field_customer_conf_passwd sup, div#onepagecheckoutps #field_customer_current_passwd sup').html(''); 2187 $('div#onepagecheckoutps #customer_passwd, div#onepagecheckoutps #customer_conf_passwd, div#onepagecheckoutps #customer_current_passwd').attr('data-validation-optional', 'true') 2188 .val(''); 2189 } 2190 }, 2191 checkGuestAccount: function(){ 2192 if ($('#field_customer_current_passwd').length > 0) { 2193 Address.togglePasswordRequired('#checkbox_change_passwd'); 2194 } else { 2195 if (OnePageCheckoutPS.PS_GUEST_CHECKOUT_ENABLED){ 2196 if (OnePageCheckoutPS.CONFIGS.OPC_SHOW_BUTTON_REGISTER) { 2197 if (AppOPC.$opc_step_one.find('#checkbox_create_account_guest').is(':checked')) { 2198 AppOPC.$opc_step_one.find('#btn_save_customer').show(); 2199 } else { 2200 AppOPC.$opc_step_one.find('#btn_save_customer').hide(); 2201 } 2202 } 2203 Address.togglePasswordRequired('#checkbox_create_account_guest'); 2204 }else{ 2205 if (OnePageCheckoutPS.CONFIGS.OPC_REQUEST_PASSWORD && OnePageCheckoutPS.CONFIGS.OPC_OPTION_AUTOGENERATE_PASSWORD){ 2206 Address.togglePasswordRequired('#checkbox_create_account'); 2207 } 2208 } 2209 } 2210 }, 2211 isSetInvoice: function() { 2212 if (((OnePageCheckoutPS.CONFIGS.OPC_ENABLE_INVOICE_ADDRESS && OnePageCheckoutPS.CONFIGS.OPC_REQUIRED_INVOICE_ADDRESS) || $('div#onepagecheckoutps #checkbox_create_invoice_address').is(':checked')) 2213 && $('#panel_addresses_customer').length > 0 2214 ) { 2215 return true; 2216 } 2217 2218 return false; 2219 }, 2220 isNeedDniByCountryId: function(params){ 2221 var param = $.extend({}, { 2222 object: '', 2223 id_country: null 2224 }, params); 2225 2226 if (!$.isEmpty(param.object)){ 2227 var id_country = param.id_country; 2228 const $id_country = $('#onepagecheckoutps_step_one select#' + param.object + '_id_country'); 2229 2230 if ($.isEmpty(id_country)) { 2231 if ($id_country.length > 0) { 2232 id_country = $id_country.val(); 2233 } else if (typeof OnePageCheckoutPS !== typeof undefined) { 2234 if (param.object == 'delivery') { 2235 id_country = OnePageCheckoutPS.id_country_delivery_default; 2236 } else if (param.object == 'invoice') { 2237 id_country = OnePageCheckoutPS.id_country_invoice_default; 2238 } 2239 } 2240 } else if ($id_country.find('option[value='+id_country+']').length === 0) { 2241 id_country = $id_country.find('option[value!=""]:first').val(); 2242 } 2243 2244 if (!$.isEmpty(id_country) && id_country !== '0' && typeof countriesJS !== typeof undefined && $('#field_' + param.object + '_dni').length > 0){ 2245 if (countriesJS[id_country]['need_identification_number']) { 2246 if ((param.object === 'invoice' && Address.isSetInvoice()) 2247 || param.object === 'delivery') { 2248 $('#field_' + param.object + '_dni').addClass('required').show(); 2249 $('#field_' + param.object + '_dni sup').html('*'); 2250 $('#' + param.object + '_dni').removeAttr('data-validation-optional').addClass('required'); 2251 } else { 2252 if (!$('#field_' + param.object + '_dni').is(':visible')){ 2253 $('#field_' + param.object + '_dni').show(); 2254 } 2255 2256 $('#field_' + param.object + '_dni').removeClass('required').hide(); 2257 $('#field_' + param.object + '_dni sup').html(''); 2258 $('#' + param.object + '_dni').attr('data-validation-optional', 'true').removeClass('required'); 2259 } 2260 } else { 2261 if ($('#' + param.object + '_dni').attr('data-required') == '0'){ 2262 $('#field_' + param.object + '_dni').removeClass('required'); 2263 $('#field_' + param.object + '_dni sup').html(''); 2264 $('#' + param.object + '_dni').attr('data-validation-optional', 'true').removeClass('required'); 2265 2266 if ($('#' + param.object + '_dni').attr('data-active') == '0'){ 2267 $('#field_' + param.object + '_dni').hide(); 2268 } 2269 } 2270 } 2271 } 2272 } 2273 }, 2274 isNeedPostCodeByCountryId: function(params){ 2275 var param = $.extend({}, { 2276 object: '', 2277 id_country: null 2278 }, params); 2279 2280 if (!$.isEmpty(param.object)){ 2281 var id_country = param.id_country; 2282 const $postcode = AppOPC.$opc.find('#' + param.object + '_postcode'); 2283 const $id_country = AppOPC.$opc.find('select#' + param.object + '_id_country'); 2284 2285 if ($.isEmpty(id_country)) { 2286 if ($id_country.length > 0) { 2287 id_country = $id_country.val(); 2288 } else { 2289 if (param.object == 'delivery') { 2290 id_country = OnePageCheckoutPS.id_country_delivery_default; 2291 } else if (param.object == 'invoice') { 2292 id_country = OnePageCheckoutPS.id_country_invoice_default; 2293 } 2294 } 2295 } else if ($id_country.find('option[value='+id_country+']').length === 0) { 2296 id_country = $id_country.find('option[value!=""]:first').val(); 2297 } 2298 2299 if (typeof id_country !== typeof undefined && typeof countriesJS !== typeof undefined && $postcode.length > 0) { 2300 var $postcode_field = AppOPC.$opc.find('#field_' + param.object + '_postcode'); 2301 var default_value = ''; 2302 var format = ''; 2303 var country_iso_code = ''; 2304 var need_zip_code = false; 2305 2306 if (!$.isEmpty(id_country) && id_country !== '0' && !$.isEmpty(countriesJS[id_country]['zip_code_format'])){ 2307 default_value = countriesJS[id_country]['zip_code_format']; 2308 default_value = default_value.replace(/N/g, '0'); 2309 default_value = default_value.replace(/L/g, 'A'); 2310 default_value = default_value.replace(/C/g, countriesJS[id_country]['iso_code']); 2311 2312 country_iso_code = countriesJS[id_country]['iso_code']; 2313 format = countriesJS[id_country]['zip_code_format']; 2314 2315 if (countriesJS[id_country]['need_zip_code']) { 2316 need_zip_code = true; 2317 } 2318 } 2319 2320 $postcode 2321 .data({ 2322 'default-value': default_value, 2323 'format': format, 2324 'country-iso-code': country_iso_code 2325 }) 2326 .attr('placeholder', default_value); 2327 2328 if (need_zip_code) { 2329 $postcode_field.addClass('required').show(); 2330 $postcode_field.find('sup').html('*'); 2331 2332 if (param.object === 'delivery' || (param.object === 'invoice' && AppOPC.$opc.find('#checkbox_create_invoice_address').is(':checked'))) { 2333 $postcode.removeAttr('data-validation-optional').addClass('required'); 2334 } 2335 } else { 2336 $postcode_field.removeClass('required'); 2337 $postcode_field.find('sup').html(''); 2338 $postcode.attr('data-validation-optional', 'true').removeClass('required'); 2339 } 2340 } 2341 } 2342 }, 2343 checkEmailCustomer: function(e){
2344 var email = $(e.currentTarget).val(); 2345 /* Valida si el cliente esta logueado */ 2346 if (OnePageCheckoutPS.IS_LOGGED) { 2347 return true; 2348 } 2349 var data = { 2350 url_call: orderOpcUrl + '?rand=' + new Date().getTime(), 2351 is_ajax: true, 2352 dataType: 'html', 2353 action: 'checkRegisteredCustomerEmail', 2354 email: email 2355 }; 2356 2357 if (!$.isEmpty(email) && $.isEmail(email)){ 2358 var _json = { 2359 data: data, 2360 success: function(id_customer) { 2361 var callback = function(){ 2362 AppOPC.$opc.find('#form_login #txt_login_email').val(AppOPC.$opc.find('#customer_email').val()); 2363 AppOPC.$opc.find('#email_check_modal .modal-footer').append('<button type="button" class="btn btn-primary" onclick="$(\'div#onepagecheckoutps button.close\').trigger(\'click\');$(\'div#onepagecheckoutps #opc_show_login\').trigger(\'click\')" style="margin-left: 15px;">'+OnePageCheckoutPS.Msg.login_customer+'</button>'); 2364 } 2365 var callback_close = function() { 2366 $(e.currentTarget).val('').trigger('reset').focus(); 2367 AppOPC.$opc.find('#customer_conf_email').val('').trigger('reset'); 2368 2369 return true; 2370 } 2371 2372 if (id_customer != 0){ 2373 Fronted.showModal({name: 'email_check_modal', type:'normal', content : OnePageCheckoutPS.Msg.error_registered_email, button_close: true, callback_close: callback_close, callback: callback}); 2374 } 2375 } 2376 }; 2377 $.makeRequest(_json); 2378 } 2379 }, 2380 clearFormByObject: function(object){ 2381 AppOPC.$opc_step_one.find('#form_address_'+object).trigger('reset'); 2382 AppOPC.$opc_step_one.find('.addresses_customer_container .edit_address').removeAttr('disabled').removeClass('disabled'); 2383 2384 Address.initEventsChangeCountry(object); 2385 2386 /* Compatibilidad shippingconfiguratorpro */ 2387 if (typeof AppFrontSCP !== typeof undefined) { 2388 if (typeof AppFrontSCP.existAddressFieldOPC !== typeof undefined && AppFrontSCP.existAddressFieldOPC(object)) { 2389 AppFrontSCP.disableInputCity($('#' + object + '_city'), 'state'); 2390 } else { 2391 AppFrontSCP.triggerAutocomplete(); 2392 } 2393 } 2394 2395 }, 2396 updateAddress: function(params){ 2397 var param = $.extend({}, { 2398 object: '', 2399 id_address: '', 2400 load_carriers: false, 2401 load_payments: false, 2402 load_review: false, 2403 load_addresses: false, 2404 update_cart: false, 2405 callback: '' 2406 }, params); 2407 2408 if (OnePageCheckoutPS.IS_LOGGED) { 2409 if (param.object == 'delivery') { 2410 Fronted.validateOPC({valid_form_address_delivery: true}); 2411 } else if (param.object == 'invoice') { 2412 Fronted.validateOPC({valid_form_address_invoice: true}); 2413 } 2414 } else { 2415 AppOPC.is_valid_opc = true; 2416 } 2417 2418 if (AppOPC.is_valid_opc) { 2419 var fields = Review.getFields({object: param.object}); 2420 var rc_page = AppOPC.$opc.find('#rc_page').val(); 2421 2422 var _extra_data = Review.getFieldsExtra({}); 2423 var data = $.extend({}, _extra_data, { 2424 url_call: orderOpcUrl + '?rand=' + new Date().getTime(), 2425 is_ajax: true, 2426 action: 'updateAddress', 2427 dataType: 'json', 2428 id_customer: AppOPC.$opc.find('#customer_id').val(), 2429 id_address: (!$.isEmpty(param.id_address) ? param.id_address : AppOPC.$opc.find('#'+param.object+'_id').val()), 2430 object: param.object, 2431 update_cart: param.update_cart, 2432 is_set_invoice: Address.isSetInvoice(), 2433 fields: JSON.stringify(fields), 2434 rc_page: rc_page 2435 }); 2436 2437 var _json = { 2438 data: data, 2439 beforeSend: function() { 2440 Fronted.loading(true, '#onepagecheckoutps_step_one_container'); 2441 }, 2442 success: function(json) { 2443 if (typeof json.id_address_delivery !== typeof undefined) { 2444 Address.id_address_delivery = json.id_address_delivery; 2445 } 2446 if (typeof json.id_address_invoice !== typeof undefined) { 2447 Address.id_address_invoice = json.id_address_invoice; 2448 } 2449 2450 if (param.load_addresses) { 2451 Address.loadAddressesCustomer({object: param.object, id_address: param.id_address}); 2452 } 2453 if (param.load_carriers && !OnePageCheckoutPS.IS_VIRTUAL_CART) { 2454 Carrier.getByCountry(); 2455 } 2456 if (param.load_payments || (OnePageCheckoutPS.IS_VIRTUAL_CART && param.load_carriers)) { 2457 PaymentPTS.getByCountry(); 2458 } 2459 if (param.load_review && !param.load_payments) { 2460 Review.display(); 2461 } 2462 }, 2463 complete: function(){ 2464 Fronted.loading(false, '#onepagecheckoutps_step_one_container'); 2465 if (AppOPC.$opc_step_review.length <= 0 || !param.load_carriers) { 2466 Fronted.loadingBig(false); 2467 } 2468 2469 if (typeof param.callback !== typeof undefined && typeof param.callback === 'function') 2470 param.callback(); 2471 } 2472 };
2473 $.makeRequest(_json); 2474 } 2475 }, 2476 removeAddress: function(param){ 2477 var alias_address = AppOPC.$opc_step_one.find('#address_card_'+param.id_address+' .header_card span').text().trim(); 2478 2479 if (confirm(OnePageCheckoutPS.Msg.confirm_remove_address+' "'+alias_address+'"')) { 2480 var data = { 2481 url_call: orderOpcUrl + '?rand=' + new Date().getTime(), 2482 is_ajax: true, 2483 action: 'removeAddress', 2484 dataType: 'json', 2485 id_address: param.id_address 2486 }; 2487 2488 var _json = { 2489 data: data, 2490 beforeSend: function() { 2491 Fronted.loading(true, '#onepagecheckoutps_step_one_container'); 2492 }, 2493 success: function() { 2494 Address.loadAddressesCustomer({object: param.object}); 2495 }, 2496 complete: function(){ 2497 Fronted.loading(false, '#onepagecheckoutps_step_one_container'); 2498 Fronted.loadingBig(false); 2499 } 2500 }; 2501 $.makeRequest(_json); 2502 2503 return true; 2504 } 2505 2506 return false; 2507 }, 2508 removeAddressInvoice: function(params){ 2509 var param = $.extend({}, { 2510 callback: '' 2511 }, params); 2512 2513 if (!$('div#onepagecheckoutps #checkbox_create_invoice_address').is(':checked')){ 2514 var data = { 2515 url_call: orderOpcUrl + '?rand=' + new Date().getTime(), 2516 is_ajax: true, 2517 action: 'removeAddressInvoice', 2518 dataType: 'html' 2519 }; 2520 2521 var _json = { 2522 data: data, 2523 beforeSend: function() { 2524 Fronted.loading(true, '#onepagecheckoutps_step_one_container'); 2525 }, 2526 success: function() { 2527 Carrier.getByCountry(); 2528 }, 2529 complete: function(){ 2530 Fronted.loading(false, '#onepagecheckoutps_step_one_container'); 2531 if (AppOPC.$opc_step_review.length <= 0) { 2532 Fronted.loadingBig(false); 2533 } 2534 2535 if (typeof param.callback !== typeof undefined && typeof param.callback === 'function') 2536 param.callback(); 2537 } 2538 }; 2539 $.makeRequest(_json); 2540 } 2541 }, 2542 cleanSpecialCharacterAddress: function(e) { 2543 var data = $(e.currentTarget); 2544 var value = data.val(); 2545 var reg = '^[^!<>?=+@{}_$%]+$'; 2546 var array_characters = reg.split(""); 2547 2548 $.each(array_characters, function(key, char) { 2549 for (var i = 0;i < value.length; i++) { 2550 value = value.replace(char, ' '); 2551 } 2552 2553 $(e.currentTarget).val(value); 2554 }); 2555 } 2556} 2557 2558var Carrier = { 2559 id_delivery_option_selected : 0, 2560 getIdCarrierSelected: function () { 2561 var id_carrier = 0; 2562 if (AppOPC.$opc_step_two.find('.delivery_option_radio:checked').length > 0) { 2563 var id_carrier = AppOPC.$opc_step_two.find('.delivery_option_radio:checked').val(); 2564 id_carrier = id_carrier.replace(',', ''); 2565 2566 } 2567 2568 return parseInt(id_carrier); 2569 }, 2570 launch: function(){ 2571 if (!OnePageCheckoutPS.IS_VIRTUAL_CART) { 2572 $('div#onepagecheckoutps #gift_message').empty(); 2573 2574 if (!OnePageCheckoutPS.CONFIGS.OPC_SHIPPING_COMPATIBILITY) { 2575 AppOPC.$opc_step_two 2576 .on('click', '.delivery_option .delivery_option_logo', function(event){ 2577 var $option_radio = $(event.currentTarget).parents('.delivery_option').find('.delivery_option_radio'); 2578 if (!$option_radio.is(':checked')) { 2579 $option_radio.attr('checked', true).trigger('change'); 2580 } 2581 }) 2582 .on('click', '.delivery_option .carrier_delay', function(event){ 2583 var $option_radio = $(event.currentTarget).parents('.delivery_option').find('.delivery_option_radio'); 2584 if (!$option_radio.is(':checked')) { 2585 if ($(event.currentTarget).find('#selulozenka, #paczkomatyinpost_selected, .btn.btn-warning').length <= 0) {//support module 'ulozenka' 2586 $option_radio.attr('checked', true).trigger('change'); 2587 } 2588 } 2589 }) 2590 .on('click', '.delivery_option .carrier_price', function(event){ 2591 var $option_radio = $(event.currentTarget).parents('.delivery_option').find('.delivery_option_radio'); 2592 if (!$option_radio.is(':checked')) { 2593 $option_radio.attr('checked', true).trigger('change'); 2594 } 2595 }) 2596 .on('change', '.delivery_option_radio', function (event){ 2597 /* compatibilidad modulo envoimoinscher - v3.3.8 - par Boxtal */ 2598 if ($(event.currentTarget).prop('disabled')) { 2599 return false; 2600 } 2601 //if ($('#onepagecheckoutps_step_two_container div.delivery_date').length <= 0){//support with deliverydate 2602 $('div#onepagecheckoutps #onepagecheckoutps_step_two .delivery_option').removeClass('selected alert alert-info'); 2603 $(this).parents('.delivery_option').addClass('selected alert alert-info'); 2604 2605 //support carrier module: packetery (Packetery, Ltd. v1.17) 2606 if (AppOPC.$opc_step_two.find('.packetery_prestashop_branch_list').length > 0) { 2607 AppOPC.$opc_step_two.find('.packetery_prestashop_branch_list .packetery-branch-list > select').val(''); 2608 AppOPC.$opc_step_two.find('.packetery_prestashop_branch_list').hide(); 2609 AppOPC.$opc_step_two.find('.delivery_option_radio:checked').parents('.delivery_option').next('.packetery_prestashop_branch_list').show(); 2610 } 2611 2612 Carrier.update({delivery_option_selected: $(event.currentTarget), load_carriers: true, load_payments: false, load_review: false}); 2613 //} 2614 }) 2615 //support carrier module: packetery 2616 .on('change.packetery', 'select[name=pobocka]', function(){ 2617 if ($('#onepagecheckoutps_step_two_container div.packetery_prestashop_branch_list').length > 0){ 2618 $('div#onepagecheckoutps #onepagecheckoutps_step_two_container select[name=pobocka]').off('change.packetery'); 2619 Carrier.update({load_carriers: false, load_payments: true, load_review: true, callback: window.updateCarrierSelectionAndGift}); 2620 } 2621 }); 2622 } 2623 2624 AppOPC.$opc_step_two 2625 .on('change', '#recyclable', Carrier.update) 2626 .on('blur', '#gift_message', Carrier.update) 2627 .on('blur', '#id_planning_delivery_slot', Carrier.update)//support module planningdeliverycarrier 2628 .on('click', '#gift', function (event){ 2629 Carrier.update({load_payments : true}); 2630 2631 if ($(event.currentTarget).is(':checked')) 2632 $('div#onepagecheckoutps #gift_div_opc').removeClass('hidden'); 2633 else 2634 $('div#onepagecheckoutps #gift_div_opc').addClass('hidden'); 2635 }); 2636 2637 if (OnePageCheckoutPS.CONFIGS.OPC_SHIPPING_COMPATIBILITY) { 2638 $(document).on('click', '#show_carrier_embed', function() { 2639 AppOPC.$opc_step_two.empty(); 2640 AppOPC.$opc_step_two.html('<div class="row"><div class="col-xs-12 btn-secondary" id="show_carrier_embed"><span><i class="fa-pts fa-pts-check-square-o"></i> '+OnePageCheckoutPS.Msg.choose_carrier_embed+'</span></div></div>'); 2641 2642 $('#opc_payment_methods').show(400); 2643 AppOPC.$opc.find('#onepagecheckoutps_header, #onepagecheckoutps_contenedor').hide(400); 2644 }); 2645 $('#opc_payment_methods').on('click', '#hide_carrier_embed', function() { 2646 Carrier.getByCountry({reset_carrier_embed: false}); 2647 2648 $('#opc_payment_methods').hide(400); 2649 AppOPC.$opc.find('#onepagecheckoutps_header, #onepagecheckoutps_contenedor').show(400); 2650 }); 2651 } 2652 } 2653 }, 2654 getByCountry: function(params){ 2655 var param = $.extend({}, { 2656 callback: '', 2657 reset_carrier_embed: true 2658 }, params); 2659 2660 2661 if (OnePageCheckoutPS.REGISTER_CUSTOMER) 2662 return; 2663 2664 if (!OnePageCheckoutPS.IS_VIRTUAL_CART){ 2665 var extra_params = ''; 2666 $.each(document.location.search.substr(1).split('&'),function(c,q){ 2667 if (q != undefined && q != ''){ 2668 var i = q.split('='); 2669 if ($.isArray(i)){ 2670 extra_params += '&' + i[0].toString(); 2671 if (i[1].toString() != undefined) 2672 extra_params += '=' + i[1].toString(); 2673 } 2674 } 2675 }); 2676 2677 var data = { 2678 url_call: orderOpcUrl + '?rand=' + new Date().getTime() + extra_params, 2679 is_ajax: true, 2680 action: 'loadCarrier', 2681 dataType: 'html' 2682 }; 2683 2684 var _json = { 2685 data: data, 2686 beforeSend: function() { 2687 Fronted.loading(true, '#onepagecheckoutps_step_two_container'); 2688 2689 if (!OnePageCheckoutPS.CONFIGS.OPC_SHIPPING_COMPATIBILITY) { 2690 //support carrier module "packetery" 2691 if (typeof window.prestashopPacketeryInitialized !== typeof undefined) { 2692 window.prestashopPacketeryInitialized = undefined; 2693 } 2694 } 2695 }, 2696 success: function(html) { 2697 if (!$.isEmpty(html)) { 2698 2699 if (OnePageCheckoutPS.CONFIGS.OPC_SHIPPING_COMPATIBILITY && param.reset_carrier_embed) {
2700 var $content_carrier = $('<div/>').html(html); 2701 2702 AppOPC.$opc.find('#opc_shipping_compability_content').empty().append('<iframe id="iframe_opc_shipping_compability" src="' + orderOpcUrl + '?content_only=1&carrier=1"/>'); 2703 2704 Fronted.removeUniform({parent_control: '#opc_payment_methods'}); 2705 2706 if ($content_carrier.find('.alert.alert-warning').length <= 0) { 2707 AppOPC.$opc_step_two.empty(); 2708 AppOPC.$opc_step_two.html('<div class="row"><div class="col-xs-12 btn-secondary" id="show_carrier_embed"><span><i class="fa-pts fa-pts-check-square-o"></i> '+OnePageCheckoutPS.Msg.choose_carrier_embed+'</span></div></div>'); 2709 2710 PaymentPTS.getByCountry(); 2711 2712 return; 2713 } 2714 } 2715 2716 AppOPC.$opc_step_two.html(html); 2717 2718 if (AppOPC.$opc_step_two.find('#gift').is(':checked')) { 2719 AppOPC.$opc_step_two.find('#gift_div_opc').show(); 2720 } 2721 2722 if (!OnePageCheckoutPS.CONFIGS.OPC_SHIPPING_COMPATIBILITY) { 2723 if (typeof id_carrier_selected !== typeof undefined) { 2724 AppOPC.$opc_step_two.find('.delivery_option_radio[value="'+id_carrier_selected+',"]').attr('checked', true); 2725 } 2726 2727 //support carrier module: packetery (Packetery, Ltd. v1.17) 2728 if (AppOPC.$opc_step_two.find('.packetery_prestashop_branch_list').length > 0) { 2729 AppOPC.$opc_step_two.find('.packetery_prestashop_branch_list').hide(); 2730 2731 AppOPC.$opc_step_two.find('.delivery_option_radio:checked').parents('.delivery_option').next('.packetery_prestashop_branch_list').show(); 2732 } 2733 2734 //suppot module deliverydays 2735 if(AppOPC.$opc_step_two.find('#deliverydays_day option').length > 1){ 2736 AppOPC.$opc_step_two.find('#deliverydays_day option:eq(1)').attr('selected', 'true'); 2737 } 2738 2739 if (AppOPC.$opc_step_two.find('.delivery_option_radio').length > 0) { 2740 Carrier.update({load_payments: true}); 2741 } else { 2742 PaymentPTS.getByCountry(); 2743 } 2744 } else { 2745 PaymentPTS.getByCountry(); 2746 } 2747 } 2748 }, 2749 complete: function(){ 2750 Fronted.loading(false, '#onepagecheckoutps_step_two_container'); 2751 2752 Fronted.removeUniform(); 2753 2754 if (!OnePageCheckoutPS.CONFIGS.OPC_SHIPPING_COMPATIBILITY) { 2755 //support module inPost 2756 if (typeof EE_INPOST_MODULE_SETTINGS !== typeof undefined) { 2757 var valF = AppOPC.$opc_step_two.find('.delivery_option_radio:checked').val(); 2758 var parcelLockersSelected = valF.slice(0, -1) == EE_INPOST_MODULE_SETTINGS.parcelsLockers; 2759 var parcelLockersCodSelected = valF.slice(0, -1) == EE_INPOST_MODULE_SETTINGS.parcelsLockersCod; 2760 2761 if (parcelLockersSelected || parcelLockersCodSelected) { 2762 $('#select_parcel_container').show(); 2763 $('#phone_no_parcel').show(); 2764 2765 AppOPC.$opc_step_two.find('#select_parcel').on('click', function(){ 2766 selectedDelivery(valF); 2767 }); 2768 } 2769 } 2770 2771 //support module vcpostnorddk 2772 if (typeof AllInOne !== 'undefined' && typeof AllInOne.Main !== 'undefined') { 2773 AllInOne.Main.initPickupButton(); 2774 AllInOne.Main.checkSelectedCarrier(); 2775 AllInOne.Main.initSimpleAdditionalOptions(); 2776 } 2777 2778 if (typeof GLS !== typeof undefined) { 2779 GLS.is_loaded = false; 2780 GLS.init(); 2781 } 2782 } 2783 2784 $(document).trigger('opc-load-carrier:completed', {}); 2785 2786 if (typeof param.callback !== typeof undefined && typeof param.callback === 'function') { 2787 param.callback(); 2788 } 2789 } 2790 };
2791 $.makeRequest(_json); 2792 }else{ 2793 PaymentPTS.getByCountry(); 2794 } 2795 }, 2796 update: function(params){ 2797 var param = $.extend({}, { 2798 delivery_option_selected: $('div#onepagecheckoutps .delivery_option_radio:checked'), 2799 load_carriers: false, 2800 load_payments: false, 2801 load_review: true, 2802 callback: '' 2803 }, params); 2804 2805 if (!OnePageCheckoutPS.IS_VIRTUAL_CART){ 2806 var data = { 2807 url_call: orderOpcUrl + '?rand=' + new Date().getTime(), 2808 is_ajax: true, 2809 action: 'updateCarrier', 2810 recyclable: ($('#recyclable').is(':checked') ? $('#recyclable').val() : '0'), 2811 gift: ($('#gift').is(':checked') ? $('#gift').val() : '0'), 2812 gift_message: (!$.isEmpty($('#gift_message').val()) ? $('#gift_message').val() : ''), 2813 }; 2814 2815 if ($(param.delivery_option_selected).length > 0) 2816 data[$(param.delivery_option_selected).attr('name')] = $(param.delivery_option_selected).val(); 2817 2818 $('#onepagecheckoutps_step_two input[type="checkbox"]:not(.customer, .delivery, .invoice, [name="gift"], [name="recyclable"]), #onepagecheckoutps_step_two input[type="text"]:not(.customer, .delivery, .invoice),#onepagecheckoutps_step_two input[type="hidden"]:not(.customer, .delivery, .invoice), #onepagecheckoutps_step_two select:not(.customer, .delivery, .invoice)').each(function(i, input){ 2819 var name = $(input).attr('name'); 2820 var value = $(input).val(); 2821 2822 if (!$.isEmpty(name)) 2823 data[name] = value; 2824 }); 2825 2826 var _json = { 2827 data: data, 2828 beforeSend: function() { 2829 Fronted.loading(true, '#onepagecheckoutps_step_two_container'); 2830 }, 2831 success: function(json) { 2832 if (json.hasError){ 2833 Fronted.showModal({type:'error', message : json.errors}); 2834 } else if (json.hasWarning){ 2835 Fronted.showModal({type:'warning', message : json.warnings}); 2836 } 2837 }, 2838 complete: function(){ 2839 Fronted.loading(false, '#onepagecheckoutps_step_two_container'); 2840 2841 if ((typeof mustCheckOffer !== 'undefined' && mustCheckOffer === true) && (typeof elementDeletedOfCart !== "undefined" && elementDeletedOfCart === true)) { 2842 checkOffer(function() { 2843 //Fronted.closeDialog(); 2844 }); 2845 } 2846 2847 if ( typeof mustCheckOffer !== 'undefined' && event_dispatcher !== undefined && event_dispatcher === 'carrier' && AppOPC.load_offer ) { 2848 mustCheckOffer = undefined; 2849 checkOffer(function() { 2850 //Fronted.closeDialog(); 2851 }); 2852 } 2853 2854 if(param.load_carriers) 2855 Carrier.getByCountry(); 2856 if(param.load_payments) 2857 PaymentPTS.getByCountry(); 2858 if(param.load_review && !param.load_payments) 2859 Review.display(); 2860 2861 if (typeof param.callback !== typeof undefined && typeof param.callback === 'function') 2862 param.callback(); 2863 2864 $(document).trigger('opc-update-carrier:completed', {}); 2865 } 2866 }; 2867 $.makeRequest(_json); 2868 } 2869 }, 2870// displayPopupModule_socolissimo: function(id_carrier){ 2871// if ($('#onepagecheckoutps_step_one').hasClass('customer_loaded')){ 2872// if($('#onepagecheckoutps_step_two div.hook_extracarrier > #soFr').length > 0){ 2873// $('#onepagecheckoutps_step_two div.hook_extracarrier > #soFr').attr('src', baseDir+'modules/socolissimo/redirect.php' + serialiseInput(soInputs)).show();
2874// 2875// Fronted.createPopup(true, '', $('#onepagecheckoutps_step_two div.hook_extracarrier > #soFr'), false, false, true, 'Carrier.getByCountry();'); 2876// 2877// $('#dialog_opc').css({width: '600px'}); 2878// 2879// Fronted.centerDialog(true); 2880// } 2881// }else{ 2882// if (confirm(OnePageCheckoutPS.Msg.select_pickup_point)){ 2883// Address.createCustomer('Carrier.displayPopupModule_socolissimo()'); 2884// } 2885// } 2886// }, 2887 displayPopupModule_mondialrelay: function(id_carrier){ 2888 if (typeof PS_MRDisplayWidget !== typeof undefined && typeof displayPickupPlace !== typeof undefined) { 2889 displayPickupPlace = function (info) { 2890 $('#onepagecheckoutps_step_two .delivery_option.selected .extra_info_carrier :not(a)').remove(); 2891 $('#onepagecheckoutps_step_two .delivery_option.selected .extra_info_carrier a') 2892 .removeClass('select_pickup_point') 2893 .addClass('edit_pickup_point') 2894 .html(info); 2895 }; 2896 PS_MRDisplayWidget(id_carrier); 2897 } 2898 }, 2899 displayPopupModule_correos: function(id_carrier){ 2900 var $content_correos = '' 2901 if($('div#onepagecheckoutps #onepagecheckoutps_step_two #shipping_container #correos_content').length > 0){ 2902 $content_correos = $('div#onepagecheckoutps #onepagecheckoutps_step_two #shipping_container #correos_content'); 2903 if (!OnePageCheckoutPS.IS_LOGGED) 2904 $content_correos.find('#correos_email').val(''); 2905 2906 var callback = function(){ 2907 $('div#onepagecheckoutps #correos_content #oficinas_correos_content, div#onepagecheckoutps #correos_content #correosOffices_content').show(); 2908 2909 if (typeof Correos !== typeof undefined && typeof Correos.postcode_from_map !== typeof undefined && !$.isEmpty(Correos.postcode_from_map)) { 2910 $('#correos_postcode').val(Correos.postcode_from_map); 2911 } 2912 2913 if (typeof Correos !== typeof undefined) { 2914 Correos.getOffices(); 2915 } else { 2916 GetcorreosPoint(); 2917 } 2918 2919 if (!$.isEmpty($('#customer_email').val()) && $.isEmpty($('#correos_email').val())) { 2920 $('#correos_email').val($('#customer_email').val()); 2921 } 2922 if (!$.isEmpty($('#delivery_phone_mobile').val()) && $.isEmpty($('#correos_mobile').val())) { 2923 $('#correos_mobile').val($('#delivery_phone_mobile').val()); 2924 } 2925 }; 2926 var callback_ok = function(){ 2927 if (typeof Correos !== typeof undefined) { 2928 if ($('#correosOfficesSelect option').length > 0) { 2929 if (!Correos.is_validMobile($('#correos_mobile').val())) { 2930 alert(CorreosMessage.officeMobileError); 2931 return false; 2932 } 2933 if (!Correos.is_validEmail($('#correos_email').val())) { 2934 alert(CorreosMessage.officeEmailError); 2935 return false; 2936 } 2937 } 2938 2939 $('div#onepagecheckoutps #onepagecheckoutps_step_two_container .delivery_option_radio:checked').trigger('change'); 2940 Correos.updateOfficeInfo(); 2941 } else { 2942 $('div#onepagecheckoutps #onepagecheckoutps_step_two_container .delivery_option_radio:checked').trigger('change'); 2943 update_recoger(); 2944 } 2945 2946 return true; 2947 }; 2948 2949 Fronted.showModal({name:'opc_correos', content: $content_correos, size: 'modal-lg', button_ok: true, callback: callback, callback_ok: callback_ok}); 2950 }else{ 2951 $content_correos = $('div#onepagecheckoutps #onepagecheckoutps_step_two #shipping_container #message_no_office_error'); 2952 2953 Fronted.showModal({name:'opc_correos', content: $content_correos}); 2954 } 2955 }, 2956 displayPopupModule_kiala: function(id_carrier){ 2957 var $content = '' 2958 if($('div#onepagecheckoutps #onepagecheckoutps_step_two #shipping_container #kialapicker').length > 0){ 2959 $content = $('div#onepagecheckoutps #onepagecheckoutps_step_two #shipping_container #kialapicker'); 2960 var callback = function(){ 2961 $('div#onepagecheckoutps #kialapicker').show(); 2962 }; 2963 2964 Fronted.showModal({name:'opc_kiala', content: $content, size: 'modal-lg', button_close: true, callback: callback}); 2965 } 2966 }, 2967 displayPopupModule_furgonetka: function(id_carrier){ 2968 if (typeof getCarrier == 'function') { 2969 callback_furgonetka = function(properties) { 2970 $('#onepagecheckoutps_step_two .delivery_option.selected .extra_info_carrier span').remove(); 2971 $('#onepagecheckoutps_step_two .delivery_option.selected .extra_info_carrier').prepend('<span>'+properties.name+'</span>'); 2972 2973 setReceiverPointData(properties, false); 2974 } 2975 var carrier = getCarrier(id_carrier); 2976 2977 new Map({city: address['city'], street: address['street'], service: getCarrierServices(carrier), elementId: carrier.id_carrier, callback: callback_furgonetka}).view(); 2978 } 2979 }, 2980// displayPopupModule_kialasmall: function(id_carrier){ 2981// $content = $('#onepagecheckoutps_step_two #kiala'); 2982// 2983// if ($('#onepagecheckoutps_step_one').hasClass('customer_loaded')){ 2984// if($content.length > 0){ 2985// Fronted.createPopup(true, '', $content, false, false, true, 'Carrier.getByCountry();'); 2986// 2987// Fronted.centerDialog(true); 2988// } 2989// }else{ 2990// if (confirm(OnePageCheckoutPS.Msg.select_pickup_point)){ 2991// Address.createCustomer('Carrier.displayPopupModule_kialasmall()'); 2992// } 2993// } 2994// }, 2995 displayPopupModule_mycollectionplaces: function(){ 2996 var $content = '' 2997 if($('div#onepagecheckoutps #onepagecheckoutps_step_two #shipping_container #myCollectionPlacesContent').length > 0){ 2998 $content = $('div#onepagecheckoutps #onepagecheckoutps_step_two #shipping_container #myCollectionPlacesContent'); 2999 var callback = function(){ 3000 $('div#onepagecheckoutps #myCollectionPlacesContent').show(); 3001 eval($('#myCollectionPlacesContent a.button_small').attr('href')); 3002 }; 3003 var callback_close = function(){ 3004 if (typeof mycollpsaveCarrier != typeof undefined){ 3005 mycollpsaveCarrier(); 3006 Carrier.getByCountry(); 3007 } 3008 return true; 3009 }; 3010 3011 Fronted.showModal({name:'opc_mycollectionplaces', content: $content, size: 'modal-lg', button_close: true, callback: callback, callback_close: callback_close}); 3012 } 3013 }, 3014 displayPopupModule_yupick: function(id_carrier){ 3015 var $content = '' 3016 if($('div#onepagecheckoutps #onepagecheckoutps_step_two #shipping_container #oficinas_yupick_content').length > 0){ 3017 $content = $('div#onepagecheckoutps #onepagecheckoutps_step_two #shipping_container #oficinas_yupick_content'); 3018 3019 var callback = function(){ 3020 $('div#onepagecheckoutps #onepagecheckoutps_step_two #shipping_container #oficinas_yupick_content').show(); 3021 3022 if (!OnePageCheckoutPS.IS_LOGGED) { 3023 $content.find('#yupick_type_alert_email').val(''); 3024 } 3025 3026 if (!$.isEmpty($('#customer_email').val()) && $.isEmpty($('#yupick_type_alert_email').val())) { 3027 $('#yupick_type_alert_email').val($('#customer_email').val()); 3028 } 3029 if (!$.isEmpty($('#delivery_phone_mobile').val()) && $.isEmpty($('#yupick_type_alert_phone').val())) { 3030 $('#yupick_type_alert_phone').val($('#delivery_phone_mobile').val()); 3031 } 3032 3033 GetYupickPoint(); 3034 }; 3035 var callback_close = function(){ 3036 $('div#onepagecheckoutps #onepagecheckoutps_step_two_container .delivery_option_radio:checked').trigger('change'); 3037 //yupick_update_recoger(); 3038 return true; 3039 }; 3040 3041 Fronted.showModal({name:'opc_yupick', content: $content, size: 'modal-lg', button_close: true, callback: callback, callback_close: callback_close}); 3042 } 3043 }, 3044 displayPopupModule_chronopost: function(id_carrier){ 3045 $content = $('#onepagecheckoutps_step_two #chronorelais_container'); 3046 3047 Fronted.showModal({name:'opc_chronopost', content: $content, size: 'modal-lg', button_close: true, callback_close: function(){Carrier.getByCountry();return true;}}
3047); 3048 3049 toggleRelaisMap(cust_address_clean, cust_codePostal, cust_city); 3050 } 3051} 3052 3053var PaymentPTS = { 3054 id_payment_selected: '', 3055 launch: function(){ 3056 $("div#onepagecheckoutps #onepagecheckoutps_step_three") 3057 .on('click', '.module_payment_container', function(event){ 3058 if (!$(event.target).hasClass('payment_radio')) 3059 $(event.currentTarget).find('.payment_radio').attr('checked', true).trigger('change'); 3060 }) 3061 .on("change", "input[name=method_payment]", function(event){ 3062 var $payment_module = $(event.currentTarget); 3063 var $payment_module_url = $payment_module.next(); 3064 var name_module = $payment_module.val(); 3065 3066 $('div#onepagecheckoutps #onepagecheckoutps_step_review .extra_fee').addClass('hidden'); 3067 $('div#onepagecheckoutps #onepagecheckoutps_step_review .extra_fee_tax').addClass('hidden'); 3068 3069 Review.showRowsExtraFee(); 3070 3071 if ($('div#onepagecheckoutps #payment_method_container input[id^=module_payment_' + cod_id_module_payment + ']').is(':checked')){ 3072 $('div#onepagecheckoutps .cod_fee').show(); 3073 }else{ 3074 $('div#onepagecheckoutps .cod_fee').hide(); 3075 } 3076 3077 if ($('div#onepagecheckoutps #payment_method_container input[id^=module_payment_' + bnkplus_id_module_payment + ']').is(':checked')){ 3078 $('div#onepagecheckoutps .bnkplus_discount').show(); 3079 }else{ 3080 $('div#onepagecheckoutps .bnkplus_discount').hide(); 3081 } 3082 3083 if ($('div#onepagecheckoutps #payment_method_container input[id^=module_payment_' + paypal_id_module_payment + ']').is(':checked')){ 3084 $('div#onepagecheckoutps .paypal_fee').show(); 3085 }else{ 3086 $('div#onepagecheckoutps .paypal_fee').hide(); 3087 } 3088 3089 if ($('div#onepagecheckoutps #payment_method_container input[id^=module_payment_' + sequra_id_module_payment + ']').first().is(':checked')){ 3090 $('div#onepagecheckoutps .sequra_fee').show(); 3091 }else{ 3092 $('div#onepagecheckoutps .sequra_fee').hide(); 3093 } 3094 3095 PaymentPTS.id_payment_selected = $(this).attr('id'); 3096 3097 $('div#onepagecheckoutps #onepagecheckoutps_step_three .module_payment_container').removeClass('selected alert alert-info'); 3098 $('div#onepagecheckoutps #onepagecheckoutps_step_three .payment_content_html').addClass('hidden'); 3099 $(this).parent().parent().addClass('selected alert alert-info').find('.payment_content_html').removeClass('hidden'); 3100 3101 //compatibilidad con modulo: paymentdiscountssurcharges v1.0.1 de Silbersaiten 3102 if (typeof pds_path !== typeof undefined) { 3103 $.post(pds_path + 'ajax.php', {module: name_module}, function() {}); 3104 } 3105 }); 3106 }, 3107 getByCountry: function(params){ 3108 var param = $.extend({}, { 3109 callback: '', 3110 show_loading: true 3111 }, params); 3112 3113 if (OnePageCheckoutPS.REGISTER_CUSTOMER) { 3114 return; 3115 } 3116 3117 if (!OnePageCheckoutPS.IS_VIRTUAL_CART) { 3118 if ($('div#onepagecheckoutps #onepagecheckoutps_step_two').find('.delivery_option_radio').length <= 0 && have_ship_to_pay) { 3119 $('div#onepagecheckoutps #onepagecheckoutps_step_three').html('<p class="alert alert-warning col-xs-12">'+OnePageCheckoutPS.Msg.shipping_method_required+'</p>'); 3120 3121 Review.display(); 3122 return; 3123 } 3124 } 3125 3126 var extra_params = ''; 3127 $.each(document.location.search.substr(1).split('&'),function(c,q){ 3128 if (q != undefined && q != ''){ 3129 var i = q.split('='); 3130 if ($.isArray(i)){ 3131 extra_params += '&' + i[0].toString(); 3132 if (i[1].toString() != undefined) 3133 extra_params += '=' + i[1].toString(); 3134 } 3135 } 3136 }); 3137 3138 var data = { 3139 url_call: orderOpcUrl + '?rand=' + new Date().getTime() + extra_params, 3140 is_ajax: true, 3141 dataType: 'html', 3142 action: 'loadPayment' 3143 }; 3144 3145 var _json = { 3146 data: data, 3147 beforeSend: function() { 3148 if(param.show_loading) { 3149 Fronted.loading(true, '#onepagecheckoutps_step_three_container'); 3150 } 3151 3152 if ($('#onepagecheckoutps_step_three #braintree_cc_submit').length > 0) { 3153 if (typeof $.totalStorageOPC !== typeof undefined) { 3154 $.totalStorageOPC('braintree-card-number', $('#onepagecheckoutps_step_three #braintree_cc_submit #card_number').val()); 3155 $.totalStorageOPC('braintree-card-cvc', $('#onepagecheckoutps_step_three #braintree_cc_submit #cvv').val()); 3156 $.totalStorageOPC('braintree-card-expiry-month', $('#onepagecheckoutps_step_three #braintree_cc_submit select[name="expiration_month"]').val()); 3157 $.totalStorageOPC('braintree-card-expiry-year', $('#onepagecheckoutps_step_three #braintree_cc_submit select[name="expiration_year"]').val()); 3158 } 3159 } 3160 }, 3161 success: function(html) { 3162 $('div#onepagecheckoutps #onepagecheckoutps_forms').html(''); 3163 $('div#onepagecheckoutps #onepagecheckoutps_step_three').html(html); 3164 3165 if (!$.isEmpty(PaymentPTS.id_payment_selected)){ 3166 $('div#onepagecheckoutps #onepagecheckoutps_step_three #payment_method_container #' + PaymentPTS.id_payment_selected).parent().parent().trigger('click'); 3167 } else if ($('#onepagecheckoutps_step_three #payment_method_container .module_payment_container').length == 1){ 3168 $('#onepagecheckoutps_step_three #payment_method_container .module_payment_container').trigger('click'); 3169 } else if (!$.isEmpty(OnePageCheckoutPS.CONFIGS.OPC_DEFAULT_PAYMENT_METHOD)){ 3170 $('div#onepagecheckoutps #onepagecheckoutps_step_three #payment_method_container [value="'+ OnePageCheckoutPS.CONFIGS.OPC_DEFAULT_PAYMENT_METHOD + '"]').parent().parent().trigger('click'); 3171 } 3172 3173 $('div#onepagecheckoutps #onepagecheckoutps_step_three .module_payment_container.selected').find('.payment_content_html').removeClass('hidden'); 3174 3175 //support module paypalpro 3176 if(typeof $('#pppro_form') !== typeof undefined && !OnePageCheckoutPS.IS_LOGGED) 3177 $('#pppro_form #pppro_cc_fname, #pppro_form #pppro_cc_lname').val(''); 3178 }, 3179 complete: function(){ 3180 /*if (!$.isEmpty($('.braintree-payment-errors').html())) { 3181 Fronted.showModal({type:'error', message : $('.braintree-payment-errors').html()}); 3182 }*/ 3183 3184 if ($('#onepagecheckoutps_step_three #authorizeaim_form').length > 0) { 3185 var full_name = $('#onepagecheckoutps_step_one #customer_firstname').val() + ' ' + $('#onepagecheckoutps_step_one #customer_lastname').val(); 3186 $('#onepagecheckoutps_step_three #authorizeaim_form #fullname').val(full_name); 3187 } 3188 3189 if (!OnePageCheckoutPS.IS_LOGGED && $('#onepagecheckoutps_step_three #adn_form').length > 0) { 3190 $('#onepagecheckoutps_step_three #adn_form #adn_cc_fname').val($('#onepagecheckoutps_step_one #customer_firstname').val()); 3191 $('#onepagecheckoutps_step_three #adn_form #adn_cc_lname').val($('#onepagecheckoutps_step_one #customer_lastname').val()); 3192 $('#onepagecheckoutps_step_three #adn_form input[name=adn_cc_address]').val(''); 3193 $('#onepagecheckoutps_step_three #adn_form input[name=adn_cc_city]').val(''); 3194 $('#onepagecheckoutps_step_three #adn_form input[name=adn_cc_zip]').val(''); 3195 } 3196 3197 if ($('#onepagecheckoutps_step_three #braintree_cc_submit').length > 0) { 3198 if (typeof $.totalStorageOPC !== typeof undefined) { 3199 $('#onepagecheckoutps_step_three #braintree_cc_submit #card_number').val($.totalStorageOPC('braintree-card-number')); 3200 $('#onepagecheckoutps_step_three #braintree_cc_submit #cvv').val($.totalStorageOPC('braintree-card-cvc')); 3201 $('#onepagecheckoutps_step_three #braintree_cc_submit select[name="expiration_month"]').val($.totalStorageOPC('braintree-card-expiry-month')); 3202 $('#onepagecheckoutps_step_three #braintree_cc_submit select[name="expiration_year"]').val($.totalStorageOPC('braintree-card-expiry-year')); 3203 } 3204 } 3205 3206 if (typeof pmtSimulator !== typeof undefined){ 3207 pmtSimulator.simulator_app.load_jquery(); 3208 } 3209 3210 //support module soflexibilite 3211 //if (typeof initSoFlexibiliteEngine !== typeof undefined) { 3212 //initSoFlexibiliteEngine(); 3213 //} 3214 3215 if(param.show_loading) { 3216 Fronted.loading(false, '#onepagecheckoutps_step_three_container'); 3217 } 3218 3219 Fronted.removeUniform(); 3220 3221 $(document).trigger('opc-load-payment:completed', {}); 3222 3223 if (typeof param.callback !== typeof undefined && typeof param.callback === 'function') { 3224 param.callback(); 3225 } else { 3226 Review.display(); 3227 } 3228 3229 OPC_Compatibilities.execute('payment'); 3230 } 3231 };
3232 $.makeRequest(_json); 3233 }, 3234 change: function(){ 3235 if ( !AppOPC.load_offer || typeof mustCheckOffer === 'undefined' || (event_dispatcher !== undefined && event_dispatcher !== 'payment_method') ) { 3236// Payment.validateSelected(); 3237 } else { 3238 checkOffer(function() { 3239// PaymentPTS.validateSelected(); 3240 }); 3241 } 3242 } 3243} 3244 3245var Review = { 3246 processing: false, 3247 message_order: '', 3248 launch: function(){ 3249 AppOPC.$opc.on('click', '#btn_place_order', function (){ 3250 if (parseInt(OnePageCheckoutPS.CONFIGS.OPC_PAYMENTS_WITHOUT_RADIO) && $('div#onepagecheckoutps #onepagecheckoutps_step_three #free_order').length <= 0) { 3251 window.scrollTo(0, $('#onepagecheckoutps').offset().top); 3252 $('#onepagecheckoutps_step_three').addClass('alert alert-warning'); 3253 return false; 3254 }else{ 3255 Review.placeOrder(); 3256 } 3257 }) 3258 .on("change", '#cgv', function(e) { 3259 if ( typeof mustCheckOffer !== 'undefined' && event_dispatcher !== undefined && event_dispatcher === 'terms' && AppOPC.load_offer ) { 3260 if ( $(e.target).is(':checked') ) { 3261 //if ( !offerApplied ) { 3262 checkOffer(function() { 3263 $(e.target).unbind('change'); 3264 //Fronted.closeDialog(); 3265 }); 3266 //} 3267 } 3268 } 3269 }) 3270 .on("click", "#div_cgv span.read", function(){ 3271 Fronted.openCMS({id_cms : OnePageCheckoutPS.CONFIGS.OPC_ID_CMS_TEMRS_CONDITIONS}); 3272 }); 3273 3274 $("#onepagecheckoutps_step_review") 3275 .on("click", ".voucher_name", Review.addVoucher) 3276 .on("click", "#submitAddDiscount", Review.processDiscount) 3277 3278 .on("click", "#payment_paypal_express_checkout", function(){ 3279 $('#paypal_payment_form').submit(); 3280 }) 3281 .on('keypress', '.cart_quantity_input', function(){ 3282 AppOPC.$opc.find('#btn_place_order').attr('disabled', 'true'); 3283 }) 3284 .on("blur", "#div_leave_message #message", function(){ 3285 Review.message_order = $(this).val(); 3286 }); 3287 3288 //Compatibilidad con modulo premiumflatrate (v2.1.2 - by idnovate) 3289 $(document).on("change", 'select#premiumflatrate_options, label#premiumflatrate_options_radio', Review.display); 3290 }, 3291 display: function(params){ 3292 var param = $.extend({}, { 3293 callback: '' 3294 }, params); 3295 3296 if (OnePageCheckoutPS.REGISTER_CUSTOMER) { 3297 return; 3298 } 3299 3300 if (OnePageCheckoutPS.CONFIGS.OPC_ENABLE_TERMS_CONDITIONS) { 3301 var privacy_policy = AppOPC.$opc.find('#privacy_policy').is(':checked'); 3302 } 3303 if (OnePageCheckoutPS.CONFIGS.OPC_ENABLE_PRIVACY_POLICY) { 3304 var cgv = AppOPC.$opc.find('#cgv').is(':checked'); 3305 } 3306 3307 var data = { 3308 url_call: orderOpcUrl + '?rand=' + new Date().getTime(), 3309 is_ajax: true, 3310 dataType: 'html', 3311 action: 'loadReview' 3312 }; 3313 3314 var _json = { 3315 data: data, 3316 beforeSend: function() { 3317 Fronted.loading(true, '#onepagecheckoutps_step_review_container'); 3318 3319 //se quita del complete para colocarse en el beforeSend, pues despues de cargado el resumen de carrito 3320 //ya no tiene las direcciones, solo antes. 3321 if (typeof ajaxCart !== typeof undefined && typeof ajaxCart.refresh !== typeof undefined) { 3322 if (typeof pc_cart === typeof undefined) { 3323 //corrige el problema de productos duplicados en el carrito del top. 3324 $('#header #cart_block_list .products dt, #header .cart_block_list .products dt').remove(); 3325 $('#header #cart_block_list .products dd, #header .cart_block_list .products dd').remove(); 3326 $('#side_cart_block #cart_block_list .products dt, #side_cart_block .cart_block_list .products dt').remove(); 3327 $('#side_cart_block #cart_block_list .products dd, #side_cart_block .cart_block_list .products dd').remove(); 3328 $('#sns_header_bottom .cart_block_list .products dt').remove(); 3329 3330 ajaxCart.refresh();
3331 } 3332 } 3333 }, 3334 success: function(html) { 3335 $("div#onepagecheckoutps #onepagecheckoutps_step_review").html(html); 3336 3337 if (typeof summary_opc === typeof undefined && !OnePageCheckoutPS.CONFIGS.OPC_COMPATIBILITY_REVIEW) { 3338 window.parent.location.reload(); 3339 } 3340 if (AppOPC.$opc_step_review.find('#order-detail-content .cart_item').length <= 0 ) { 3341 window.parent.location.reload(); 3342 } 3343 3344 if (OnePageCheckoutPS.CONFIGS.OPC_ENABLE_TERMS_CONDITIONS && cgv) { 3345 AppOPC.$opc.find('#cgv').attr('checked', 'true'); 3346 } 3347 if (OnePageCheckoutPS.CONFIGS.OPC_ENABLE_PRIVACY_POLICY && privacy_policy) { 3348 AppOPC.$opc.find('#privacy_policy').attr('checked', 'true'); 3349 } 3350 3351 $('div#onepagecheckoutps input[name="method_payment"]:checked').trigger('change'); 3352 }, 3353 complete: function(){ 3354// Fronted.loading(false, '#onepagecheckoutps_step_review_container'); 3355 Fronted.loadingBig(false); 3356 3357 //if no exist carriers, do not show cost shipping 3358 if (!OnePageCheckoutPS.IS_VIRTUAL_CART) { 3359 if (AppOPC.$opc_step_two.find('.delivery_options .delivery_option').length <= 0) { 3360 AppOPC.$opc_step_review.find('#remaining_amount_free_shipping').hide(); 3361 AppOPC.$opc_step_review.find('.item_total:not(.cart_total_product, .cart_total_voucher, .cart_discount)').hide(); 3362// AppOPC.$opc_step_review.find('#list-voucher-allowed').hide(); 3363 } 3364 } 3365 3366 //remove express checkout paypal on review 3367 $('#container_express_checkout').remove(); 3368 3369 if (OnePageCheckoutPS.CONFIGS.OPC_SHOW_ZOOM_IMAGE_PRODUCT) { 3370 //image zoom on product list. 3371 $('div#onepagecheckoutps #order-detail-content .cart_item a > img').mouseenter(function(event){ 3372 $('div#onepagecheckoutps #order-detail-content .image_zoom').hide(); 3373 $(event.currentTarget).parents('.image_product').find('.image_zoom').show(); 3374 }); 3375 $('div#onepagecheckoutps #order-detail-content .image_zoom').click(function(event){ 3376 $(event.currentTarget).toggle(); 3377 }); 3378 $('div#onepagecheckoutps #order-detail-content .image_zoom').hover(function(event){ 3379 $(event.currentTarget).show(); 3380 }, function(event){ 3381 $(event.currentTarget).hide(); 3382 }); 3383 } 3384 3385 //se comenta esto porque da error al eliminar si no se tiene instalado el LMOPC. 3386 //revisar issue: OPC-733 para solucionarlo en una proxima version del OPC. 3387 /*$('.cart_quantity_delete').click(function(e){ 3388 elementDeletedOfCart = true; 3389 mustCheckOffer = true; 3390 });*/ 3391 3392 //Se comenta esto para cumplicar con las politicas de alemania y suecia y posiblemente otros paises. 3393 //if (typeof $.totalStorageOPC !== typeof undefined) { 3394 // if ($.totalStorageOPC('cms_terms_condifitions')) { 3395 // AppOPC.$opc.find('#cgv').attr('checked', 'true'); 3396 // } 3397 //} 3398 3399 var intervalLoadJavaScriptReview = setInterval( 3400 function() { 3401 loadJavaScriptReview(); 3402 clearInterval(intervalLoadJavaScriptReview); 3403 } 3404 , (typeof csoc_prefix !== 'undefined' ? 5001 : 0)); 3405 3406 //last minute opc 3407 if ( typeof mustCheckOffer !== 'undefined' && event_dispatcher !== undefined && event_dispatcher === 'init' && AppOPC.load_offer ) { 3408 mustCheckOffer = undefined; 3409 3410 setTimeout(checkOffer, time_load_offer * 1000); 3411 } 3412 3413 if (OnePageCheckoutPS.CONFIGS.OPC_CONFIRMATION_BUTTON_FLOAT && !OnePageCheckoutPS.CONFIGS.OPC_PAYMENTS_WITHOUT_RADIO){ 3414 var $container_float_review = $("div#onepagecheckoutps div#onepagecheckoutps_step_review #container_float_review"); 3415 var $container_float_review_point = $("div#onepagecheckoutps div#onepagecheckoutps_step_review #container_float_review_point"); 3416 3417 $(window).scroll(function() { 3418 var time_out = setTimeout(function() { 3419 if (AppOPC.$opc.find('.loading_big').is(':visible')) { 3420 $container_float_review.removeClass('stick_buttons_footer'); 3421 } else { 3422 if (!$container_float_review_point.visible() && $(window).height() > 640) { 3423 if ($container_float_review_point.offset().top > $(window).scrollTop()){ 3424 $container_float_review.addClass('stick_buttons_footer').css({width : $('#onepagecheckoutps_step_review').outerWidth()}); 3425 } 3426 } else { 3427 $container_float_review.removeClass('stick_buttons_footer').removeAttr('style'); 3428 } 3429 } 3430 clearTimeout(time_out); 3431 }, 400); 3432 }); 3433 3434 $(window).resize(function(){ 3435 $(window).trigger('scroll'); 3436 }); 3437 $(window).trigger('scroll'); 3438 } 3439 3440 if (typeof FB !== typeof undefined && typeof FB.XFBML.parse == 'function') { 3441 FB.XFBML.parse(); 3442 } 3443 3444 if (!$.isEmpty(Review.message_order)) { 3445 $('div#onepagecheckoutps #onepagecheckoutps_step_review_container #message').val(Review.message_order); 3446 } 3447 3448 if (typeof getAppliedOffers !== typeof undefined && typeof getAppliedOffers === 'function') { 3449 getAppliedOffers(); 3450 } 3451 3452 //support module: configurator 3453 if (typeof cartDetails !== 'undefined') { 3454 if (typeof orderSummaryHandler === 'object' && typeof orderSummaryHandler.init === 'function') { 3455 orderSummaryHandler.init("order", cartDetails); 3456 } 3457 } 3458 3459 //support module: customtextdesign 3460 if (typeof ctd_special !== typeof undefined) { 3461 $('div#onepagecheckoutps div#onepagecheckoutps_step_review div[id^=product_' + ctd_special + '_').hide(); 3462 } 3463 //support module: productcomposer - v1.8.4 - Tuni-Soft 3464 if (typeof pc_cart !== typeof undefined) { 3465 pc_cart.init(); 3466 if (AppOPC.$opc_step_review.find('.cart_item.customization .pc_selection').length > 0) { 3467 $.each(AppOPC.$opc_step_review.find('.cart_item.customization .pc_selection'), function(i, item){ 3468 var src = $(item).find('.pc_image').attr('src'); 3469 var $item_product = $(item).parents('.cart_item.customization').prev(); 3470 3471 $(item).find('.pc_image').parents('.cart_item.customization').prev().find('.img-thumbnail').attr('src', src); 3472 $(item).find('.pc_image').parents('.cart_item.customization').prev().find('.image_zoom img').attr('src', src); 3473 3474 var pc_price = $(item).data('unitprice'); 3475 var pc_total = $(item).data('totalprice'); 3476 3477 $($item_product).find('[id*="product_price_"] .price').text(pc_price); 3478 $($item_product).find('[id*="total_product_price_"]').text(pc_total); 3479 }); 3480 } 3481 } 3482 3483 //$('#btn_continue_shopping').attr('data-link', document.referrer); 3484 3485 Fronted.removeUniform(); 3486 3487 /* Compatibilidad con el módulo darique - V2.4.16 de Silbersaiten */ 3488 if ($('#dariqueWrapper').length === 0 && typeof dariqueModule !== typeof undefined) { 3489 dariqueModule.refreshing = false; 3490 dariqueModule.existsDariqueWrapper = 0; 3491 dariqueModule.refreshPresents($('#onepagecheckoutps #container_float_review_point')); 3492 } 3493 3494 $(document).trigger('opc-load-review:completed', {}); 3495 3496 if (typeof param.callback !== typeof undefined && typeof param.callback === 'function') 3497 param.callback(); 3498 } 3499 };
3500 $.makeRequest(_json); 3501 }, 3502 addVoucher: function(event) { 3503 var code = $(event.currentTarget).attr('data-code'); 3504 $('#discount_name').val(code); 3505 Review.processDiscount(); 3506 }, 3507 processDiscount: function(params) { 3508 var p = $.extend({}, { 3509 id_discount: null, 3510 action: 'add' 3511 }, params); 3512 3513 if($.isEmpty(p.action)) return; 3514 3515 if(p.action != 'delete'){ 3516 if($.isEmpty($('#discount_name').val())) 3517 return; 3518 } 3519 3520 var data = { 3521 url_call: orderOpcUrl + '?rand=' + new Date().getTime(), 3522 is_ajax: true, 3523 action: 'processDiscount', 3524 action_discount: p.action, 3525 discount_name: $('#discount_name').val(), 3526 id_discount: p.id_discount 3527 }; 3528 3529 var _json = { 3530 data: data, 3531 beforeSend: function(){ 3532 Fronted.loading(true, '#onepagecheckoutps_step_review_container'); 3533 $('#onepagecheckoutps_step_review #submitAddDiscount').attr('disabled', true); 3534 }, 3535 success: function(json) { 3536 if (json.hasError){ 3537 Fronted.loading(false, '#onepagecheckoutps_step_review_container'); 3538 Fronted.showModal({type:'error', message : '• ' + json.errors.join('<br>• ')}); 3539 } else if (json.hasWarning){ 3540 Fronted.loading(false, '#onepagecheckoutps_step_review_container'); 3541 Fronted.showModal({type:'warning', message : '• ' + json.warnings.join('<br>• ')}); 3542 } else { 3543 if (OnePageCheckoutPS.IS_VIRTUAL_CART){ 3544 PaymentPTS.getByCountry(); 3545 }else{ 3546 Carrier.getByCountry(); 3547 } 3548 } 3549 }, 3550 complete: function(){ 3551 $('#onepagecheckoutps_step_review #submitAddDiscount').attr('disabled', false); 3552 } 3553 }; 3554 $.makeRequest(_json); 3555 }, 3556 getFields: function(params){ 3557 var param = $.extend({}, { 3558 object: '' 3559 }, params); 3560 3561 var fields = Array(); 3562 3563 var valid_delivery_address = true; 3564 if (AppOPC.$opc_step_two.find('.delivery_option_radio:checked').length > 0 3565 && typeof id_carrierpickupstore !== typeof undefined 3566 && !$('form#form_address_delivery').is(':visible') 3567 ) { 3568 if (id_carrierpickupstore == Carrier.getIdCarrierSelected() 3569 && (typeof CarrierPickupStore.configs.CPS_ASSOC_PICKUP_ADDR_TO_ORDER === typeof undefined 3570 || (typeof CarrierPickupStore.configs.CPS_ASSOC_PICKUP_ADDR_TO_ORDER !== typeof undefined && CarrierPickupStore.configs.CPS_ASSOC_PICKUP_ADDR_TO_ORDER) 3571 ) 3572 ) { 3573 valid_delivery_address = false; 3574 } 3575 } 3576 3577 var $paypalpro_payment_form = $('#onepagecheckoutps_step_three #paypalpro-payment-form'); 3578 3579 var $selector = $('div#onepagecheckoutps div#onepagecheckoutps_step_one .customer, \n\ 3580 div#onepagecheckoutps div#onepagecheckoutps_step_one .delivery, \n\ 3581 div#onepagecheckoutps div#onepagecheckoutps_step_one .invoice'); 3582 3583 if (param.object == 'customer') { 3584 $selector = AppOPC.$opc_step_one.find('.customer'); 3585 } else if (param.object == 'delivery') { 3586 $selector = AppOPC.$opc_step_one.find('.delivery'); 3587 } else if (param.object == 'invoice') { 3588 $selector = AppOPC.$opc_step_one.find('.invoice'); 3589 } 3590 3591 $selector.each(function(i, field){ 3592 if ($(field).is('span')) 3593 return true; 3594 3595 var name = $(field).attr('data-field-name'); 3596 var value = ''; 3597 var object = ''; 3598 3599 if ($.isEmpty(name)) 3600 return true; 3601 3602 if ($(field).hasClass('customer')){ 3603 object = 'customer'; 3604 }else if ($(field).hasClass('delivery')){ 3605 object = 'delivery'; 3606 }else if ($(field).hasClass('invoice')){ 3607 object = 'invoice'; 3608 } 3609 3610 if (object == 'invoice' && $('div#onepagecheckoutps #checkbox_create_invoice_address').length > 0) { 3611 if (!$('div#onepagecheckoutps #checkbox_create_invoice_address').is(':checked')) 3612 return true; 3613 } 3614 3615 if (object == 'delivery' && !valid_delivery_address) { 3616 return true; 3617 } 3618 3619 if (($('div#onepagecheckoutps #field_customer_checkbox_change_passwd input[name="checkbox_change_passwd"]').length > 0 3620 && !$('div#onepagecheckoutps #field_customer_checkbox_change_passwd input[name="checkbox_change_passwd"]').is(':checked')) 3621 || ($('div#onepagecheckoutps #field_customer_checkbox_create_account input[name="checkbox_create_account"]').length > 0 3622 && !$('div#onepagecheckoutps #field_customer_checkbox_create_account input[name="checkbox_create_account"]').is(':checked')) 3623 || ($('div#onepagecheckoutps #field_customer_checkbox_create_account_guest input[name="checkbox_create_account_guest"]').length > 0 3624 && !$('div#onepagecheckoutps #field_customer_checkbox_create_account_guest input[name="checkbox_create_account_guest"]').is(':checked')) 3625 ) { 3626 if (name == 'current_passwd' || name == 'passwd_confirmation' || name == 'passwd') { 3627 return true; 3628 } 3629 } 3630 3631 if (!$.isEmpty(object)){ 3632 if ($(field).is(':checkbox')){ 3633 value = $(field).is(':checked') ? 1 : 0; 3634 }else if ($(field).is(':radio')){ 3635 var tmp_value = $('input[name="' + name + '"]:checked').val(); 3636 if (typeof tmp_value !== typeof undefined) 3637 value = tmp_value; 3638 }else{ 3639 value = $(field).val(); 3640 3641 if (value === null) 3642 value = ''; 3643 } 3644 3645 if ($.strpos(value, '\\')){ 3646 value = addslashes(value); 3647 } 3648 3649 if ($.strpos(value, '\n')){ 3650 value = value.replace(/\n/gi, '\\n'); 3651 } 3652 3653 if (!$.isEmpty(value) && typeof value == 'string'){ 3654 value = value.replace(/\"/g, '\''); 3655 } 3656 3657 value = $.trim(value); 3658 3659 if ($.isEmpty(value) && $(field).data('required') == 1) { 3660 value = $(field).data('default-value'); 3661 } 3662 3663 fields.push({'object' : object, 'name' : name, 'value' : value}); 3664 3665 //support payment module: StripeJS 3666 if (typeof stripe_billing_address !== typeof undefined && object == 'invoice') {
3667 stripe_billing_address[name] = value; 3668 3669 if (name == 'id_country') { 3670 stripe_billing_address['country'] = $(field).find('option:selected').data('text'); 3671 } 3672 } 3673 3674 //support payment module: nPaypalPro - prestashop - 1.3.7 3675 if(object == 'customer' && $paypalpro_payment_form.length > 0) { 3676 if (name == 'firstname') { 3677 $paypalpro_payment_form.find('.paypalpro-firstname').val(value); 3678 } 3679 if (name == 'lastname') { 3680 $paypalpro_payment_form.find('.paypalpro-lastname').val(value); 3681 } 3682 } 3683 } 3684 }); 3685 3686 return fields; 3687 }, 3688 getFieldsExtra: function(_data){ 3689 $('div#onepagecheckoutps input[type="text"]:not(.customer, .delivery, .invoice), div#onepagecheckoutps input[type="hidden"]:not(.customer, .delivery, .invoice), div#onepagecheckoutps select:not(.customer, .delivery, .invoice)').each(function(i, input){ 3690 var name = $(input).attr('name'); 3691 var value = $(input).val(); 3692 3693 if (name == 'action' || name === 'controller' || (name === 'module' && value === 'sisow') || (name === 'fc' && value === 'module')) { 3694 return true; 3695 } 3696 3697 //compatibilidad modulo eydatepicker 3698 if (name == 'shipping_date_raw') 3699 name = 'shipping_date'; 3700 3701 if (!$.isEmpty(name)) 3702 _data[name] = value; 3703 }); 3704 3705 $('div#onepagecheckoutps input[type="checkbox"]:not(.customer, .delivery, .invoice)').each(function(i, input){ 3706 var name = $(input).attr('name'); 3707 var value = $(input).is(':checked') ? $(input).val() : ''; 3708 3709 if (!$.isEmpty(name)) 3710 _data[name] = value; 3711 }); 3712 3713 /* carrierpickupstore - V2.0.3 de PresTeamShop */ 3714 var cps_fields = $('div#stores-container div#carrierpickupstore_form').find('select, input'); 3715 if (cps_fields.length > 0) { 3716 $.each(cps_fields, function(i, field) { 3717 var name = $(field).attr('name'); 3718 var value = $(field).val(); 3719 3720 if (!$.isEmpty(name)) 3721 _data[name] = value; 3722 }); 3723 } 3724 3725 $('div#onepagecheckoutps input[type="radio"]:not(.customer, .delivery, .invoice):checked').each(function(i, input){ 3726 var name = $(input).attr('name'); 3727 var value = $(input).val(); 3728 3729 if (!$.isEmpty(name)) 3730 _data[name] = value; 3731 }); 3732 3733 delete _data['id_customer']; 3734 _data['id_customer']; 3735 _data['id_customer']; 3736 3737 return _data; 3738 }, 3739 placeOrder: function(params){ 3740 var param = $.extend({}, { 3741 validate_payment: true, 3742 position_element: null 3743 }, params); 3744 3745 Fronted.removeUniform(); 3746 3747 if (!OPC_External_Validation.execute('review:placeOrder')){ 3748 return false; 3749 } 3750 3751 /* compatibilidad carrierpickupstore - v2.0.3 - PresTeamShop */ 3752 var valid_form_address_delivery = true; 3753 if (!OnePageCheckoutPS.IS_VIRTUAL_CART && typeof id_carrierpickupstore !== typeof undefined) { 3754 if (Carrier.getIdCarrierSelected() == id_carrierpickupstore 3755 && (typeof CarrierPickupStore.configs.CPS_ASSOC_PICKUP_ADDR_TO_ORDER === typeof undefined 3756 || (typeof CarrierPickupStore.configs.CPS_ASSOC_PICKUP_ADDR_TO_ORDER !== typeof undefined && CarrierPickupStore.configs.CPS_ASSOC_PICKUP_ADDR_TO_ORDER) 3757 ) 3758 ) { 3759 valid_form_address_delivery = false; 3760 } 3761 } 3762 3763 if (OnePageCheckoutPS.IS_LOGGED) { 3764 if (AppOPC.$opc.find('#form_address_delivery').is(':visible') || AppOPC.$opc.find('#form_address_invoice').is(':visible')) { 3765 Fronted.showModal({type:'warning', message : OnePageCheckoutPS.Msg.finalize_address_update}); 3766 return false; 3767 } 3768 3769 if (!OnePageCheckoutPS.IS_VIRTUAL_CART || OnePageCheckoutPS.CONFIGS.OPC_SHOW_DELIVERY_VIRTUAL) { 3770 if (AppOPC.$opc_step_one.find('#delivery_address_container .address_card').length <= 1 3771 && valid_form_address_delivery 3772 ) { 3773 Fronted.showModal({type:'warning', message : OnePageCheckoutPS.Msg.need_add_delivery_address}); 3774 return false; 3775 } 3776 if (AppOPC.$opc.find('.addresses_customer_container.delivery .container_
3776card.selected').length <= 0 3777 && valid_form_address_delivery 3778 ) { 3779 Fronted.showModal({type:'warning', message : OnePageCheckoutPS.Msg.select_delivery_address}); 3780 return false; 3781 } 3782 } 3783 3784 if (Address.isSetInvoice() && AppOPC.$opc.find('.addresses_customer_container.invoice .container_card.selected').length <= 0) { 3785 Fronted.showModal({type:'warning', message : OnePageCheckoutPS.Msg.select_invoice_address}); 3786 return false; 3787 } 3788 } 3789 3790 AppOPC.$opc.find('#btn_place_order').attr('disabled', 'true'); 3791 3792 Fronted.validateOPC({ 3793 valid_form_customer: true, 3794 valid_form_address_delivery: valid_form_address_delivery, 3795 valid_form_address_invoice: true, 3796 valid_carrier: true, 3797 valid_payment: true, 3798 valid_privacy: true, 3799 valid_gdpr: true, 3800 valid_condition: true 3801 }); 3802 3803 if (AppOPC.is_valid_opc) { 3804 if (!OnePageCheckoutPS.IS_LOGGED || OnePageCheckoutPS.IS_GUEST) { 3805 var fields = Review.getFields(); 3806 } else { 3807 var fields = Review.getFields({object: 'customer'}); 3808 } 3809 3810 if (fields && !Review.processing) { 3811 Review.processing = true; 3812 //support module: correos. Carrier international. 3813 if (typeof CorreosConfig !== typeof undefined && !OnePageCheckoutPS.IS_VIRTUAL_CART) { 3814 if ($.inArray(Carrier.getIdCarrierSelected().toString(), CorreosConfig.carrierInternacional) == 0) { 3815 if (AppOPC.$opc_step_two.find('#cr_international_mobile').length > 0 && $.isEmpty(AppOPC.$opc_step_two.find('#cr_international_mobile').val())) { 3816 var phone_mobile = $('#delivery_phone_mobile').val(); 3817 3818 if ($.isEmpty(phone_mobile)) { 3819 phone_mobile = $('#delivery_phone').val(); 3820 } 3821 3822 AppOPC.$opc_step_two.find('#cr_international_mobile').val(phone_mobile).trigger('change'); 3823 } 3824 } 3825 } 3826 3827 //support module yupik 3828 if ($('#yupick_type_alert_phone').length > 0 && $('#onepagecheckoutps_step_one #delivery_phone_mobile').length > 0) { 3829 $('#yupick_type_alert_phone').val($('#onepagecheckoutps_step_one #delivery_phone_mobile').val()); 3830 } 3831 if ($('#yupick_type_alert_email').length > 0 && $('#onepagecheckoutps_step_one #customer_email').length > 0) { 3832 $('#yupick_type_alert_email').val($('#onepagecheckoutps_step_one #customer_email').val()); 3833 } 3834 3835 /* compatibilidad carrierpickupstore - v2.0.3 - PresTeamShop */ 3836 if (typeof id_carrierpickupstore !== typeof undefined && Carrier.getIdCarrierSelected() == id_carrierpickupstore) { 3837 Address.id_address_delivery = 0; 3838 3839 if (!Address.isSetInvoice()) { 3840 Address.id_address_invoice = 0; 3841 } 3842 } 3843 3844 var _extra_data = Review.getFieldsExtra({}); 3845 var _data = $.extend({}, _extra_data, { 3846 'url_call' : orderOpcUrl + '?rand=' + new Date().getTime(), 3847 'is_ajax' : true, 3848 'action' : 'placeOrder', 3849 'id_customer' : (!$.isEmpty(AppOPC.$opc_step_one.find('#customer_id').val()) ? AppOPC.$opc_step_one.find('#customer_id').val() : ''), 3850 'id_address_delivery' : Address.id_address_delivery, 3851 'id_address_invoice' : !$.isEmpty(Address.id_address_invoice) ? Address.id_address_invoice : Address.id_address_delivery, 3852 'fields_opc' : JSON.stringify(fields), 3853 'message' : (!$.isEmpty(AppOPC.$opc_step_review.find('#message').val()) ? AppOPC.$opc_step_review.find('#message').val() : ''), 3854 'is_new_customer' : (AppOPC.$opc_step_one.find('#checkbox_create_account_guest').is(':checked') ? 0 : 1), 3855 'token' : static_token, 3856 'psgdpr-consent' : true,//support module: psgdpr - v1.0.0 - PrestaShop 3857 'g_recaptcha_response' : $('#g-recaptcha-response').val(),//support module: recaptcha - v1.2.2 - Charlie
3858 'g-recaptcha-response' : $('#g-recaptcha-response').val()//support module: recaptcha - v1.2.3 - Charlie 3859 }); 3860 3861 var callback_load_address = ''; 3862 3863 var _json = { 3864 data: _data, 3865 beforeSend: function() { 3866 Fronted.loadingBig(true); 3867 window.scrollTo(0, AppOPC.$opc.outerHeight() / 3); 3868 }, 3869 success: function(data) { 3870 if (!$.isEmpty(data.redirect)) { 3871 document.location.href = data.redirect; 3872 } else { 3873 if (typeof data.token !== typeof undefined && typeof token !== typeof undefined) { 3874 token = data.token; 3875 } 3876 if (typeof data.static_token !== typeof undefined && typeof static_token !== typeof undefined) { 3877 static_token = data.static_token; 3878 } 3879 3880 if (data.isSaved) { 3881 if ((!OnePageCheckoutPS.PS_GUEST_CHECKOUT_ENABLED || $('#checkbox_create_account_guest').is(':checked'))) { 3882 AppOPC.$opc_step_one.find('#customer_email, #customer_conf_email, #customer_passwd, #customer_conf_passwd') 3883 .attr({ 3884 'disabled': 'true', 3885 'data-validation-optional': 'true' 3886 }) 3887 .addClass('disabled') 3888 .trigger('reset'); 3889 3890 $('#div_onepagecheckoutps_login, #field_customer_passwd, #field_customer_conf_passwd, div#onepagecheckoutps #onepagecheckoutps_step_one_container .account_creation, #field_choice_group_customer, #field_customer_checkbox_create_account, #field_customer_checkbox_create_account_guest').addClass('hidden'); 3891 3892 AppOPC.$opc_step_one.find('#div_save_customer').remove(); 3893 AppOPC.$opc_step_one.find('#div_create_invoide_address').remove(); 3894 AppOPC.$opc_step_one.find('#opc_show_login').remove(); 3895 AppOPC.$opc_step_one.find('#label_help_invoice').remove(); 3896 AppOPC.$opc_step_one.find('#div_privacy_policy').remove(); 3897 3898 AppOPC.$opc_step_one.find('#action_address_delivery').removeClass('hidden'); 3899 AppOPC.$opc_step_one.find('#action_address_delivery').removeClass('hidden'); 3900 } 3901 3902 OnePageCheckoutPS.IS_LOGGED = data.isLogged; 3903 OnePageCheckoutPS.IS_GUEST = data.isGuest; 3904 } 3905 3906 if (data.hasError){ 3907 Fronted.showModal({type:'error', message : '• ' + data.errors.join('<br>• ')}); 3908 } else if (data.hasWarning){ 3909 Fronted.showModal({type:'warning', message : '• ' + data.warnings.join('<br>• ')}); 3910 } else { 3911 Address.id_customer = data.id_customer; 3912 Address.id_address_delivery = data.id_address_delivery; 3913 Address.id_address_invoice = data.id_address_invoice; 3914 3915 AppOPC.$opc_step_one.find('#customer_id').val(Address.id_customer); 3916 AppOPC.$opc_step_one.find('#delivery_id').val(Address.id_address_delivery); 3917 AppOPC.$opc_step_one.find('#invoice_id').val(Address.id_address_invoice); 3918 3919 callback_load_address = function() { 3920 //plugin last minute offer 3921 if ( !AppOPC.load_offer || typeof mustCheckOffer === 'undefined' || (event_dispatcher !== undefined && event_dispatcher !== 'confirm') ) { 3922 window['checkOffer'] = function(callback) { 3923 callback(); 3924 }; 3925 } 3926 3927 if($('div#onepagecheckoutps #onepagecheckoutps_step_three #free_order').length > 0){ 3928 confirmFreeOrder(); 3929 return; 3930 } 3931 3932 //support module payment: Pay 3933 if (!$.isEmpty($('#securepay_cardNo').val()) && 3934 !$.isEmpty($('#securepay_cardSecurityCode').val()) && 3935 !$.isEmpty($('#securepay_cardExpireMonth').val()) && 3936 !$.isEmpty($('#securepay_cardExpireYear').val())) 3937 { 3938 CardpaySubmit(); 3939 return; 3940 } 3941 3942 var callback_placeorder = ''; 3943 if(param.validate_payment === true){ 3944 var callback_placeorder = function(){ 3945 var radio_method_payment = $('div#onepagecheckoutps #onepagecheckoutps_step_three #payment_method_container #' + PaymentPTS.id_payment_selected + ':checked'); 3946 var input_url_method_payment = $(radio_method_payment).next(); 3947 3948 var id_payment = $(radio_method_payment).attr('id').split('_')[2]; 3949 var name_payment = $(radio_method_payment).val(); 3950 var url_payment = $(input_url_method_payment).val(); 3951 3952 if (name_payment === 'pts_payplug') { 3953 var $pp_credit_card = $('div#onepagecheckoutps div#onepagecheckoutps_step_three input[name="pp_credit_card"]:checked'); 3954 if (typeof configs_pts_payplug !== typeof undefined && configs_pts_payplug.PP_SAVE_CARD && $pp_credit_card.length > 0) { 3955 var card_selected = $pp_credit_card.val(); 3956 3957 if (card_selected !== 'new_card') { 3958 url_payment = "$('#onepagecheckoutps div#onepagecheckoutps_contenedor > .pp_payment_module button#btn-pay_save_card').trigger('click')"; 3959 } 3960 } 3961 } else if (name_payment === 'paysera' && $('#payseraPaySubmit > span').length > 0) { 3962 url_payment = "$('#payseraPaySubmit > span').trigger('click')"; 3963 } 3964 3965 var onclick_payment = $(input_url_method_payment).length > 0 ? $(input_url_method_payment).get(0).getAttribute("onclick") : ''; 3966 if ($.isEmpty(id_payment) && $.isEmpty(url_payment) && $.isEmpty(onclick_payment)) 3967 return; 3968 3969 if(!$.isEmpty(onclick_payment)){ 3970 if (name_payment == 'klikandpay' || name_payment == 'banesto' || name_payment == 'paypal') { 3971 if(!eval(onclick_payment)) 3972 return; 3973 } 3974 } 3975 3976 checkOffer(function() { 3977 if (url_payment == 'iframe'){//compatibilidad con paypal integral. 3978 $(OnePageCheckoutPS.CONFIGS.OPC_ID_CONTENT_PAGE).html($('#iframe_payment_module_' + id_payment).val()); 3979 window.scrollTo(0, $(OnePageCheckoutPS.CONFIGS.OPC_ID_CONTENT_PAGE).offset().top); 3980 Fronted.loadingBig(false); 3981 } else if (!$.isUrlValid(url_payment)){ 3982 //compatibilidad con modulo bbva 3983 if (name_payment == 'bbva'){ 3984 var peticion_bbva = $('#bbva_form input').val(); 3985 var _tmp = peticion_bbva.split('key='); 3986 var old_secure_key = _tmp[1].substr(0, 32); 3987 peticion_bbva = peticion_bbva.replace(old_secure_key, data.secure_key); 3988 3989 $('#bbva_form input').val(peticion_bbva); 3990 } 3991 3992 eval(url_payment); 3993 3994 if ((name_payment === 'redsys' || name_payment === 'payplug' || name_payment == 'kxpay') && typeof url_payment !== typeof undefined) { 3995 Fronted.loadingBig(false); 3996 } 3997 3998 return false; 3999 }else{ 4000 var arr_payments_without_popup = payments_without_popup.split(','); 4001 4002 if ($.strpos(url_payment, '?pm='+name_payment)) { 4003 if (OnePageCheckoutPS.CONFIGS.OPC_REDIRECT_DIRECTLY_TO_OPC) { 4004 document.location.href = orderOpcUrl + '?mp=' + name_payment + '&checkout=1'; 4005 } else { 4006 document.location.href = orderOpcUrl + '?mp=' + name_payment; 4007 } 4008 4009 return false; 4010 } 4011 4012 if ($.inArray(name_payment, arr_payments_without_popup) >= 0 || $(radio_method_payment).hasClass('payment_eu')) { 4013 window.location = url_payment; 4014 4015 return false; 4016 } 4017 4018 _callbackCheckout = function() { 4019 var arr_payment_with_content_only = ['braintreejs']; 4020 4021 if ($.inArray(name_payment, arr_payment_with_content_only) != -1) { 4022 AppOPC.jqOPC('<div/>').load(url_payment+'?content_only=1', function(){ 4023 $(this).find('.page-heading, #cart_navigation').remove(); 4024 4025 Fronted.showModal({name: 'payment_modal_'+name_payment, type:'normal', title: OnePageCheckoutPS.Msg.confirm_payment_method, title_icon: 'fa-pts-credit-card', content : $(this).html(), close : true}); 4026 }); 4027 } else { 4028 AppOPC.jqOPC('<div/>').load(url_payment, function(){ 4029 //redirecciona a metodos de pagos que se realicen por fuera de la tienda. 4030 var $that = $(this).find(OnePageCheckoutPS.CONFIGS.OPC_ID_CONTENT_PAGE); 4031 4032 if (!OnePageCheckoutPS.CONFIGS.OPC_SHOW_POPUP_PAYMENT){ 4033 if (($that.find('input[type=submit]').length == 1 || $that.find('button[type=submit]').length == 1)){ 4034 $that.hide().appendTo('body'); 4035 $that.find('input[type=submit]').attr('onclick','').trigger('click'); 4036 $that.find('button[type=submit]').attr('onclick','').trigger('click'); 4037 4038 return false; 4039 } 4040 4041 //support module: add_gopay_new 4042 if (($that.find('#submit_payment').length == 1)){ 4043 $that.hide().appendTo('body'); 4044 $that.find('#submit_payment').trigger('click'); 4045 4046 return false; 4047 } 4048 } 4049 4050 //limpiamos el html devuelto por el metodo de pago para no colocar basura 4051 $that.find('h2, h1').first().remove(); 4052 $that.find('.breadcrumb').remove(); 4053 $that.find('#order_step').remove(); 4054 $that.find('#currency_payment').hide(); //remueve el select de las divisas que hace recargar la web. 4055 $that.find(OnePageCheckoutPS.CONFIGS.OPC_ID_CONTENT_PAGE).attr('style', 'width: auto!important'); 4056 $that.find('button[type="submit"]').removeAttr('class').addClass('button btn btn-primary'); 4057 4058 $.each($that.find('a'), function(i, a){ 4059 if ($.strpos($(a).attr('href'), 'step=3')) 4060 $(a).remove(); 4061 }); 4062 4063 //elimina esta clase del input del carrito, para que salgan de nuevo los popup para seleccionar punto de envio. 4064 $('div#onepagecheckoutps #onepagecheckoutps_step_two #shipping_container .module_carrier').each(function(i, carrier){ 4065 var id_delivery_option_selected = $(carrier).val(); 4066 $('#' + id_delivery_option_selected).removeClass('point_selected'); 4067
4067 }); 4068 4069 Fronted.showModal({name: 'payment_modal', type:'normal', title: OnePageCheckoutPS.Msg.confirm_payment_method, title_icon: 'fa-pts-credit-card', content : $that, close : true}); 4070 }); 4071 } 4072 4073 if (OnePageCheckoutPS.CONFIGS.OPC_SHOW_POPUP_PAYMENT){ 4074 Address.load({object: 'customer'}); 4075 4076 //recarga las listas de las direcciones 4077 if (OnePageCheckoutPS.IS_LOGGED && !OnePageCheckoutPS.CONFIGS.OPC_PAYMENTS_WITHOUT_RADIO) { 4078 Address.loadAddressesCustomer({object: 'delivery'}); 4079 Address.loadAddressesCustomer({object: 'invoice'}); 4080 } 4081 } 4082 } 4083 4084 if ( !AppOPC.load_offer || typeof mustCheckOffer === 'undefined' || (event_dispatcher !== undefined && event_dispatcher !== 'confirm') ) { 4085 _callbackCheckout(); 4086 } 4087 } 4088 }); 4089 } 4090 }else{ 4091 var callback_placeorder = function(){ 4092 $.each(events_payments, function(k, items){ 4093 if (param.position_element.item_parent == k){ 4094 $.each(items, function(i, item){ 4095 if (param.position_element.item_child == i){ 4096 //support paypal 4097 if (item.module_name == 'paypal'){ 4098 if ($(item.element).attr('id') == 'paypal_process_payment') { 4099 $("#onepagecheckoutps_step_three #paypal_payment_form, #onepagecheckoutps_step_three #paypal_payment_form_payment")[0].submit(); 4100 return false; 4101 } 4102 } 4103 4104 $(item.element).attr('onclick', '').unbind('click'); 4105 4106 if (typeof item.event !== typeof undefined){ 4107 $(item.element).click(item.event); 4108 } 4109 4110 if (typeof item.onclick !== typeof undefined) 4111 { 4112 $(item.element).attr('onclick', item.onclick); 4113 } 4114 4115 $('div#onepagecheckoutps #onepagecheckoutps_step_three form').on('submit', function(event) { 4116 $(event.target)[0].submit(); 4117 event.preventDefault(); 4118 event.stopPropagation(); 4119 }); 4120 4121 if ($(item.element).is('a, span')){ 4122 $(item.element)[0].click(); 4123 }else{ 4124 $(item.element).click(); 4125 } 4126 4127 Fronted.loadingBig(false); 4128 4129 return false; 4130 } 4131 }); 4132 } 4133 }); 4134 } 4135 } 4136 4137 var force_load_payments = false; 4138 4139 //recarga de nuevo los metodos de pago para actualizar los formularios que tengan datos del cliente por defecto. 4140 if ((data.isSaved && !OnePageCheckoutPS.CONFIGS.OPC_PAYMENTS_WITHOUT_RADIO) || force_load_payments) 4141 { 4142 var arr_exception_modules = ['authorizedotnet', 'stripe_official']; 4143 var name_payment = AppOPC.$opc_step_three.find('.payment_radio:checked').val(); 4144 4145 if ($.inArray(name_payment, arr_exception_modules) == -1) { 4146 PaymentPTS.getByCountry({show_loading: false, callback: callback_placeorder}); 4147 } else { 4148 if (typeof callback_placeorder === 'function') { 4149 callback_placeorder(); 4150 } 4151 } 4152 } 4153 else { 4154 if (typeof callback_placeorder === 'function') { 4155 callback_placeorder(); 4156 } 4157 } 4158 } 4159 } 4160 } 4161 }, 4162 complete: function() { 4163 if (typeof $.totalStorageOPC !== typeof undefined) { 4164 $.totalStorageOPC('create_invoice_address_'+OnePageCheckoutPS.id_shop, false); 4165 } 4166 4167 AppOPC.$opc.find('#btn_place_order').removeAttr('disabled'); 4168 4169 if (typeof callback_load_address === 'function') { 4170 callback_load_address(); 4171 } 4172 Review.processing = false; 4173 }, 4174 error: function(data){ 4175 alert(data); 4176 Fronted.loadingBig(false); 4177 AppOPC.$opc.find('#btn_place_order').removeAttr('disabled'); 4178 } 4179 }; 4180 4181 var callback = function() {
4182 $.makeRequest(_json); 4183 } 4184 4185 if (OnePageCheckoutPS.CONFIGS.OPC_CONFIRM_ADDRESS 4186 && (!OnePageCheckoutPS.IS_VIRTUAL_CART || (OnePageCheckoutPS.IS_VIRTUAL_CART && OnePageCheckoutPS.CONFIGS.OPC_SHOW_DELIVERY_VIRTUAL)) 4187 && (typeof module_carrier_selected === typeof undefined || (typeof module_carrier_selected !== typeof undefined && $.inArray(module_carrier_selected, ['mondialrelay', 'carrierpickupstore']) === -1)) 4188 ) { 4189 var address = AppOPC.$opc_step_one.find('#delivery_address1').length > 0 ? AppOPC.$opc_step_one.find('#delivery_address1').val() : ''; 4190 var address2 = AppOPC.$opc_step_one.find('#delivery_address2').length > 0 ? ', ' + AppOPC.$opc_step_one.find('#delivery_address2').val() : ''; 4191 var postcode = AppOPC.$opc_step_one.find('#delivery_postcode').length > 0 ? ', ' + AppOPC.$opc_step_one.find('#delivery_postcode').val() : ''; 4192 var city = AppOPC.$opc_step_one.find('#delivery_city').length > 0 ? ', ' + AppOPC.$opc_step_one.find('#delivery_city').val() : ''; 4193 var state = AppOPC.$opc_step_one.find('#delivery_id_state option').length > 0 ? ' (' + AppOPC.$opc_step_one.find('#delivery_id_state option:selected').data('text') + ')' : ''; 4194 var customer_address = '<b>' + address + address2 + postcode + city + state + '</b>'; 4195 customer_address = OnePageCheckoutPS.Msg.message_validate_address.replace('%address%', customer_address); 4196 4197 Fronted.showModal({ 4198 name: 'modal_confirm_address', 4199 type:'normal', 4200 title: OnePageCheckoutPS.Msg.validate_address, 4201 title_icon: 'fa-pts-map-marker ', 4202 content : customer_address, 4203 button_close: true, 4204 button_close_text: OnePageCheckoutPS.Msg.no, 4205 button_ok: true, 4206 callback_ok: function(){ 4207 supportModuleGDPR(callback); 4208 return true; 4209 }, 4210 callback_close: function() { 4211 AppOPC.$opc.find('#btn_place_order').removeAttr('disabled'); 4212 Review.processing = false; 4213 4214 return true; 4215 } 4216 }); 4217 } else { 4218 supportModuleGDPR(callback); 4219 } 4220 } 4221 } 4222 4223 return true; 4224 }, 4225 showRowsExtraFee: function() { 4226 var name_module = AppOPC.$opc_step_three.find('input[name="method_payment"]:checked').val(); 4227 if (typeof payment_modules_fee !== typeof undefined) { 4228 $.each(payment_modules_fee, function(name_module_fee, payment){ 4229 var various_payment = false; 4230 var name_module_alt = name_module + '_' + payment.id; 4231 4232 if (name_module_alt == name_module_fee) { 4233 //support module custompaymentmethod 4234 if ($.strpos(name_module_fee, 'custompaymentmethod') !== false) { 4235 var url_payment = $payment_module_url.val(); 4236 var arr_url_payment = url_payment.split('='); 4237 var id_payment = arr_url_payment[1]; 4238 4239 if (id_payment == payment.id) { 4240 various_payment = true; 4241 } 4242 } 4243 } 4244 4245 if (name_module == name_module_fee || various_payment){ 4246 $('div#onepagecheckoutps #onepagecheckoutps_step_review .extra_fee').removeClass('hidden'); 4247 $('div#onepagecheckoutps #onepagecheckoutps_step_review #extra_fee_label').text(payment.label_fee); 4248 $('div#onepagecheckoutps #onepagecheckoutps_step_review #extra_fee_price').text(payment.fee); 4249 $('div#onepagecheckoutps #onepagecheckoutps_step_review #extra_fee_total_price_label').text(payment.label_total); 4250 $('div#onepagecheckoutps #onepagecheckoutps_step_review #extra_fee_total_price').text(payment.total_fee); 4251 4252 if (typeof payment.fee_tax !== typeof undefined && !$.isEmpty(payment.fee_tax)) { 4253 $('div#onepagecheckoutps #onepagecheckoutps_step_review .extra_fee_tax').removeClass('hidden'); 4254 $('div#onepagecheckoutps #onepagecheckoutps_step_review #extra_fee_tax_label').text(payment.label_fee_tax); 4255 $('div#onepagecheckoutps #onepagecheckoutps_step_review #extra_fee_tax_price').text(payment.fee_tax); 4256 } 4257 4258 return false; 4259 } 4260 }); 4261 } 4262 } 4263} 4264 4265var OPC_Compatibilities = { 4266 steps: [], 4267 init: function () { 4268 OPC_Compatibilities.steps['payment'] = new Array(); 4269 4270 //support module: amazonpay - v1.1.6 - patworx multimedia GmbH 4271 OPC_Compatibilities.steps['payment'].push(function() { 4272 if (typeof amazonpay !== typeof undefined && amazonpay.amazonCheckoutSessionId !== false && !OnePageCheckoutPS.IS_LOGGED) { 4273 Address.loadAddressesCustomer({object: 'delivery'}); 4274 } 4275 }); 4276 }, 4277 execute: function (step) { 4278 if (typeof OPC_Compatibilities.steps[step] !== typeof undefined) { 4279 $.each(OPC_Compatibilities.steps[step], function (i, compatibility) { 4280 compatibility(); 4281 }); 4282 } 4283 } 4284}; 4285 4286var OPC_External_Validation = { 4287 validations: [], 4288 init: function(){ 4289 OPC_External_Validation.validations['review:placeOrder'] = Array(); 4290 4291 // <editor-fold defaultstate="collapsed" desc="validations"> 4292 OPC_External_Validation.validations['review:placeOrder'].push(function() { 4293 if (typeof carrier_selector !== typeof undefined && typeof sf_carriers_id !== typeof undefined && typeof sf_delivery_mode_is_selected !== typeof undefined) { 4294 var selected_carrier = $(carrier_selector + ':checked').length ? 4295 $(carrier_selector + ':checked') : $(carrier_selector + '[checked=checked]'); 4296 var result = selected_carrier.val().match('^([0-9]*)')[1]; 4297 4298 if (!in_array(result, sf_carriers_id)){ 4299 return (true); 4300 } 4301 4302 if (!sf_delivery_mode_is_selected){ 4303 alert($('#must-select').val()); 4304 return false; 4305 } 4306 } 4307 }); 4308 OPC_External_Validation.validations['review:placeOrder'].push(function() { 4309 if ($('#deliverydays_day option').length > 0) { 4310 if($.isEmpty($('#deliverydays_day').val())){ 4311 alert(OnePageCheckoutPS.Msg.select_date_shipping); 4312 4313 return false; 4314 } 4315 } 4316 }); 4317 OPC_External_Validation.validations['review:placeOrder'].push(function() { 4318 if ($('#shipping_date').length > 0) { 4319 if($.isEmpty($('#shipping_date').val())){ 4320 alert(OnePageCheckoutPS.Msg.select_date_shipping); 4321 return false; 4322 } 4323 } 4324 }); 4325 OPC_External_Validation.validations['review:placeOrder'].push(function() { 4326 /* support planningdeliverybycarrier */ 4327 if ($('#day_slots #date_delivery').length > 0) { 4328 if($.isEmpty($('#day_slots #date_delivery').val())){ 4329 alert(OnePageCheckoutPS.Msg.select_date_shipping); 4330 return false; 4331 } 4332 } 4333 }); 4334 OPC_External_Validation.validations['review:placeOrder'].push(function() { 4335 if ($('#day_slots #id_planning_delivery_slot').length > 0) { 4336 if($('#day_slots #id_planning_delivery_slot').val() == '-'){ 4337 alert(OnePageCheckoutPS.Msg.select_date_shipping); 4338 return false; 4339 } 4340 } 4341 }); 4342 OPC_External_Validation.validations['review:placeOrder'].push(function() { 4343 if ($('#onepagecheckoutps_step_two .delivery_option.selected div.extra_info_carrier a.select_pickup_point').length > 0){ 4344 if (AppOPC.$opc_step_two.find('#relay_point_selected_box').length <= 0) { 4345 Fronted.showModal({type:'error', message : OnePageCheckoutPS.Msg.need_select_pickup_point}); 4346 4347 $('#onepagecheckoutps_step_two .delivery_option.selected div.extra_info_carrier a.select_pickup_point').trigger('click'); 4348 4349 return false; 4350 } 4351 } 4352 }); 4353 OPC_External_Validation.validations['review:placeOrder'].push(function() { 4354 if ($('#onepagecheckoutps_step_two .delivery_option.selected #correospaq').length > 0 && 4355 $('#onepagecheckoutps_step_two .delivery_option.selected #correospaq #selectedpaq_code').val() == '') 4356 { 4357 if (typeof Correos !== typeof undefined) { 4358 Correos.callAlert(CorreosMessage.noPaqsSelected); 4359 } else { 4360 alert(OnePageCheckoutPS.Msg.need_select_pickup_point); 4361 } 4362 4363 return false; 4364 } 4365 }); 4366 OPC_External_Validation.validations['review:placeOrder'].push(function() { 4367 if ($('#onepagecheckoutps_step_two .packetery-branch-list select').length > 0 && 4368 $('#onepagecheckoutps_step_two .packetery-branch-list select').val() == '' && 4369 Boolean($('.delivery_option_radio:checked').attr('packetery-initialized'))) 4370 { 4371 alert(OnePageCheckoutPS.Msg.need_select_pickup_point); 4372 4373 return false; 4374 } 4375 }); 4376 OPC_External_Validation.validations['review:placeOrder'].push(function() { 4377 //support carrier module - shaim_baliknapostu v1.7.4 4378 if ($('#onepagecheckoutps_step_two .hook_extracarrier #najdi_postu').length > 0) 4379 { 4380 if ($('#onepagecheckoutps_step_two .hook_extracarrier #najdi_postu').is(':visible')) { 4381 alert(OnePageCheckoutPS.Msg.need_select_pickup_point); 4382 4383 return false; 4384 } 4385 } 4386 }); 4387 OPC_External_Validation.validations['review:placeOrder'].push(function() { 4388 //support module: carrierpickupstore 4389 if (typeof id_carrierpickupstore !== typeof undefined && !OnePageCheckoutPS.IS_VIRTUAL_CART) { 4390 if (AppOPC.$opc_step_two.find('.delivery_option.selected .delivery_option_radio[value=\'' + id_carrierpickupstore + ',\']').is(':checked')) { 4391 if (AppOPC.$opc_step_two.find('.opt_id_store').val() == '0') { 4392 alert(OnePageCheckoutPS.Msg.need_select_pickup_point); 4393 4394 return false; 4395 } 4396 } 4397 } 4398 }); 4399 OPC_External_Validation.validations['review:placeOrder'].push(function() { 4400 //support module: deliverydateswizard 4401 if (typeof ddw !== typeof undefined) { 4402 var ddw_error = false; 4403 4404 if ($("input[name='chk_timeslot']").length > 0 && $("input[name='chk_timeslot']").is(":checked") == false) 4405 ddw_error = true; 4406 4407 if (ddw.$input_ddw_order_date.val() == '0000-00-00 00:00:00' || ddw.$input_ddw_order_date.val() == '') 4408 ddw_error = true; 4409 4410 if (ddw_error && ddw.required == 1){ 4411 ddw.showRequiredError(); 4412 4413 return false; 4414 } 4415 } 4416 }); 4417 OPC_External_Validation.validations['review:placeOrder'].push(function() { 4418 //support module: envoimoinscher 4419 if (typeof Emc !== typeof undefined) { 4420 if (typeof Emc.validateCarrierForm !== typeof undefined) { 4421 if (!Emc.validateCarrierForm(true)) { 4422 return false; 4423 } 4424 } 4425 } 4426 }); 4427 OPC_External_Validation.validations['review:placeOrder'].push(function() { 4428 /* Support module: selltickets - V3.2.1 - Avellana Digital SL */ 4429 if (typeof continueorder !== typeof undefined) { 4430 if (!continueorder) { 4431 Fronted.showModal({type:'error', message : '• ' + OnePageCheckoutPS.Msg.selltickets_error}); 4432 return false; 4433 } 4434 } 4435 }); 4436 OPC_External_Validation.validations['review:placeOrder'].push(function() { 4437 /* support module: deliverytime v3.0.1 (Innercode) */ 4438 if (typeof checkDeliveryTimeSelection === 'function') { 4439 if (! checkDeliveryTimeSelection()) { 4440 alert(OnePageCheckoutPS.Msg.need_select_time); 4441 return false; 4442 } 4443 } 4444 }); 4445 // </editor-fold> 4446 }, 4447 execute: function(step) { 4448 var is_valid = true; 4449 4450 if (typeof OPC_External_Validation.validations[step] !== typeof undefined) { 4451 $.each(OPC_External_Validation.validations[step], function(i, external_validation) { 4452 if (external_validation() === false) { 4453 is_valid = false; 4454 4455 return false; 4456 } 4457 }); 4458 } 4459 4460 return is_valid; 4461 } 4462} 4463 4464function updateExtraCarrier(id_delivery_option, id_address) 4465{ 4466 $.ajax({
4467 type: 'POST', 4468 url: orderOpcUrl + '?rand=' + new Date().getTime(), 4469 cache: false, 4470 dataType : "json", 4471 data: 'is_ajax=true' 4472 +'&action=updateExtraCarrier' 4473 +'&id_address='+id_address 4474 +'&id_delivery_option='+id_delivery_option 4475 +'&token='+static_token 4476 +'&allow_refresh=1', 4477 success: function(jsonData) 4478 { 4479 $('#HOOK_EXTRACARRIER_'+id_address).html(jsonData['content']); 4480 } 4481 }); 4482} 4483 4484function confirmFreeOrder() 4485{ 4486 $.ajax({ 4487 type: 'POST', 4488 headers: { "cache-control": "no-cache" }, 4489 url: orderOpcUrl + '?rand=' + new Date().getTime(), 4490 cache: false, 4491 dataType : "html", 4492 data: 'ajax=true&method=makeFreeOrder&token=' + static_token , 4493 success: function(html) 4494 { 4495 AppOPC.$opc.find('#btn_place_order').removeClass('disabled'); 4496 var array_split = html.split(':'); 4497 if (array_split[0] == 'freeorder') 4498 { 4499 if (!$('#checkbox_create_account_guest').is(':checked') && !OnePageCheckoutPS.IS_LOGGED) 4500 document.location.href = OnePageCheckoutPS.GUEST_TRACKING_URL+'?id_order='+encodeURIComponent(array_split[1])+'&email='+encodeURIComponent(array_split[2]); 4501 else 4502 document.location.href = OnePageCheckoutPS.HISTORY_URL; 4503 }else{ 4504 //Fronted.closeDialog(); 4505 } 4506 }, 4507 error: function(XMLHttpRequest, textStatus, errorThrown) { 4508 console.log('ERROR AJAX: ' + textStatus, errorThrown); 4509 } 4510 }); 4511} 4512 4513function supportModuleGDPR(callback) { 4514 //support module: m4gdpr - v1.1.2 - PrestaAddons 4515 if (typeof m4gdprConsent !== typeof undefined && !AppOPC.m4gpdr && (!OnePageCheckoutPS.IS_LOGGED || OnePageCheckoutPS.IS_GUEST)) { 4516 $.each(m4gdprConsent.elements, function (i, element) { 4517 if (element.element == 'onepagecheckoutps') { 4518 function disableSubmitButton() { 4519 $('.vex-dialog-buttons button[type="submit"]').prop('disabled', true); 4520 } 4521 function enableSubmitButton() { 4522 $('.vex-dialog-buttons button[type="submit"]').prop('disabled', false); 4523 } 4524 function isAllChecked(id) { 4525 var allChecked = true; 4526 $('#m4gdpr-dialog-' + id + ' input[type="checkbox"]').each(function() { 4527 if ($(this).hasClass('required') && false == $(this).prop('checked')) { 4528 allChecked = false; 4529 } 4530 }); 4531 4532 return allChecked; 4533 } 4534 4535 var buttons = [ 4536 jQuery.extend({}, vex.dialog.buttons.YES, { 4537 text: element.count ? m4gdprConsent.buttonText.submit : m4gdprConsent.buttonText.accept 4538 }) 4539 ]; 4540 4541 if (element.count) { 4542 buttons.push( 4543 jQuery.extend({}, vex.dialog.buttons.NO, { 4544 text: m4gdprConsent.buttonText.cancel, click: function() { 4545 AppOPC.$opc.find('#btn_place_order').removeAttr('disabled'); 4546 this.value = false; 4547 this.close(); 4548 return false; 4549 } 4550 }) 4551 ); 4552 } 4553 4554 var vexDialog = vex.dialog.open({ 4555 unsafeMessage: m4gdprConsent.message, 4556 input: (element && element.input) ? element.input.join('') : '', 4557 buttons: buttons, 4558 className: m4gdprConsent.className, 4559 afterOpen: function() { 4560 $('#m4gdpr-dialog-' + element.id).on('change', 'input[type="checkbox"]', function() {
4561 if (isAllChecked(element.id)) { 4562 enableSubmitButton(); 4563 } else { 4564 disableSubmitButton(); 4565 } 4566 }); 4567 }, 4568 onSubmit: function(e) { 4569 e.preventDefault(); 4570 e.stopPropagation(); 4571 e.stopImmediatePropagation(); 4572 4573 if (!isAllChecked(element.id)) { 4574 disableSubmitButton(); 4575 return false; 4576 } else { 4577 var params = $('.vex-dialog-form').serializeArray(); 4578 4579 params.push({'name': 'from', 'value': AppOPC.$opc_step_one.find('#customer_email').val()}); 4580 4581 $.post(m4gdprBaseUri + 'index.php', params); 4582 4583 AppOPC.m4gpdr = true; 4584 4585 vexDialog.close(); 4586 callback(); 4587 } 4588 } 4589 }); 4590
4591 if (isAllChecked(element.id)) { 4592 enableSubmitButton(); 4593 } else { 4594 disableSubmitButton(); 4595 } 4596 } 4597 }); 4598 4599 return false; 4600 } 4601 4602 callback(); 4603} 4604 4605function updateCarrierSelectionAndGift(){} 4606function updateCarrierList(){} 4607function updatePaymentMethods(){} 4608function updatePaymentMethodsDisplay(){} 4609function cleanSelectAddressDelivery(){} 4610 4611//compatibilidad modulo crosselling 4612function loadJavaScriptReview(){ 4613 $(function(){ 4614 if ($('#crossselling_list_car').length > 0) { 4615 if (!!$.prototype.bxSlider) { 4616 $('#crossselling_list_car').bxSlider({ 4617 minSlides: 2, 4618 maxSlides: 6, 4619 slideWidth: 178, 4620 slideMargin: 20, 4621 pager: false, 4622 nextText: '', 4623 prevText: '', 4624 moveSlides:1, 4625 infiniteLoop:false, 4626 hideControlOnEnd: true 4627 }); 4628 } 4629 } 4630// if($('#crossselling_list').length > 0) 4631// { 4632// //init the serialScroll for thumbs 4633// cs_serialScrollNbImages = $('#crossselling_list li').length; 4634// cs_serialScrollNbImagesDisplayed = 5; 4635// cs_serialScrollActualImagesIndex = 0; 4636// $('#crossselling_list').serialScroll({ 4637// items:'li', 4638// prev:'a#crossselling_scroll_left', 4639// next:'a#crossselling_scroll_right', 4640// axis:'x', 4641// offset:0, 4642// stop:true, 4643// onBefore:cs_serialScrollFixLock, 4644// duration:300, 4645// step: 1, 4646// lazy:true, 4647// lock: false, 4648// force:false, 4649// cycle:false 4650// }); 4651// $('#crossselling_list').trigger( 'goto', [ (typeof cs_middle !== 'undefined' ? cs_middle : middle)-3] ); 4652// } 4653 4654// $('#onepagecheckoutps_step_review #gift-products_block .ajax_add_to_cart_button').die('click'); 4655 4656// 4657 $('#onepagecheckoutps_step_review .ajax_add_to_cart_button').unbind('click').click(function(event){ 4658 var idProduct = 0; 4659 4660 if (!$.isEmpty($(event.currentTarget).attr('data-id-product'))) 4661 idProduct = $(event.currentTarget).attr('data-id-product'); 4662 else 4663 idProduct = $(this).attr('rel').replace('ajax_id_product_', ''); 4664 4665 if ($('#onepagecheckoutps_step_review #gift-products_block').length > 0){ 4666 event.preventDefault(); 4667 window.location = $(event.currentTarget).attr('href'); 4668 4669 return false; 4670 } 4671 4672 if (!$.isEmpty(idProduct)){ 4673 ajaxCart.add(idProduct, null, false, this); 4674 Carrier.getByCountry(); 4675 4676 return false; 4677 } 4678 }); 4679// } 4680 4681 $('#onepagecheckoutps_step_review .ajax_add_to_cart_button').css({visibility: 'visible'}); 4682 4683 //compatibilidad con modulo CheckoutFields 4684 if (typeof checkoutfields !== 'undefined') 4685 checkoutfields.bindAjaxSave(); 4686 4687 //compatibilidad con modulo paragonfaktura 4688 $('#pfform input').click(function(){ 4689 var value = $('#pfform input:checked').val(); 4690 var id_cart = $('#pfform #pf_id').val(); 4691 $.ajax({
4692 type: "POST", 4693 url: "modules/paragonfaktura/save.php", 4694 data: { value: value, id_cart: id_cart } 4695 }).done(function( msg ) { 4696 4697 }); 4698 }); 4699 }); 4700} 4701 4702function opc_callback_error_payment(name_module, params) { 4703 if (name_module == 'braintree') { 4704 Fronted.loadingBig(false); 4705 4706 if (typeof params.errorMsg !== typeof undefined && params.errorMsg) { 4707 Fronted.showModal({type: 'warning', message: params.msg}); 4708 } 4709 } 4710} 4711 4712//support module payment: Sveawebpay 4713function getAddressSveawebpay(){ 4714 var ssn = $("#sveawebpay_security_number").val(); 4715 var md5v = $("#sveawebpay_md5").val(); 4716 4717 $.get(baseDir + 'modules/sveawebpay/sveagetaddress.php', {ssn: ssn, md5:hex_md5(ssn+md5v), email:'', iscompany:false, sveatype: 1, country: 'SE', isinvoice: true, quickcall: true}, 4718 function(data){ 4719 if(data!='-1') 4720 { 4721 var parts = data.split('*'); 4722 var names = parts[0].split(' '); 4723 var lastname = $.trim(names[0]); 4724 var firstname = ''; 4725 var address_one=$.trim(parts[1]); 4726 var address_two=$.trim(parts[2]); 4727 if(address_one=='') 4728 { 4729 address_one=address_two; 4730 address_two=''; 4731 } 4732 for(var i in names) 4733 { 4734 if(i!=0) 4735 { 4736 firstname = firstname + ' ' + names[i]; 4737 firstname = firstname.replace(",", ""); 4738 } 4739 } 4740 lastname = lastname.replace(",", ""); 4741 $('#customer_firstname').val($.trim(firstname)); 4742 $('#customer_lastname').val(lastname); 4743 $('#delivery_address1').val(address_one); 4744 $('#delivery_address2').val(address_two); 4745 $('#delivery_postcode').val($.trim(parts[3])); 4746 $('#delivery_city').val($.trim(parts[4])); 4747 $('#delivery_dni').val(ssn); 4748 } 4749 }); 4750} 4751 4752function reloadPage(){ 4753 location.reload(); 4754} 4755function addslashes(str) { 4756 // discuss at: http://phpjs.org/functions/addslashes/ 4757 // original by: Kevin van Zonneveld (http://kevin.vanzonneveld.net) 4758 // improved by: Ates Goral (http://magnetiq.com) 4759 // improved by: marrtins 4760 // improved by: Nate 4761 // improved by: Onno Marsman 4762 // improved by: Brett Zamir (http://brett-zamir.me) 4763 // input by: Denny Wardhana 4764 // example 1: addslashes("kevin's birthday"); 4765 // returns 1: "kevin\\'s birthday" 4766 4767 return (str + '') 4768 .replace(/[\\"']/g, '\\$&') 4769 .replace(/\u0000/g, '\\0'); 4770} 4771 4772function version_compare(v1, v2, operator) { // eslint-disable-line camelcase 4773 // discuss at: http://locutus.io/php/version_compare/ 4774 // original by: Philippe Jausions (http://pear.php.net/user/jausions) 4775 // original by: Aidan Lister (http://aidanlister.com/) 4776 // reimplemented by: Kankrelune (http://www.webfaktory.info/) 4777 // improved by: Brett Zamir (http://brett-zamir.me) 4778 // improved by: Scott Baker 4779 // improved by: Theriault (https://github.com/Theriault) 4780 // example 1: version_compare('8.2.5rc', '8.2.5a') 4781 // returns 1: 1 4782 // example 2: version_compare('8.2.50', '8.2.52', '<') 4783 // returns 2: true 4784 // example 3: version_compare('5.3.0-dev', '5.3.0') 4785 // returns 3: -1 4786 // example 4: version_compare('4.1.0.52','4.01.0.51') 4787 // returns 4: 1 4788 4789 // Important: compare must be initialized at 0. 4790 var i 4791 var x 4792 var compare = 0 4793 4794 var vm = { 4795 'dev': -6, 4796 'alpha': -5, 4797 'a': -5, 4798 'beta': -4, 4799 'b': -4, 4800 'RC': -3, 4801 'rc': -3, 4802 '#': -2, 4803 'p': 1, 4804 'pl': 1 4805 } 4806 4807 var _prepVersion = function (v) { 4808 v = ('' + v).replace(/[_\-+]/g, '.') 4809 v = v.replace(/([^.\d]+)/g, '.$1.').replace(/\.{2,}/g, '.') 4810 return (!v.length ? [-8] : v.split('.')) 4811 } 4812 4813 var _numVersion = function (v) { 4814 return !v ? 0 : (isNaN(v) ? vm[v] || -7 : parseInt(v, 10)) 4815 } 4816 4817 v1 = _prepVersion(v1) 4818 v2 = _prepVersion(v2) 4819 x = Math.max(v1.length, v2.length) 4820 for (i = 0; i < x; i++) { 4821 if (v1[i] === v2[i]) { 4822 continue 4823 } 4824 v1[i] = _numVersion(v1[i]) 4825 v2[i] = _numVersion(v2[i]) 4826 if (v1[i] < v2[i]) { 4827 compare = -1 4828 break 4829 } else if (v1[i] > v2[i]) { 4830 compare = 1 4831 break 4832 } 4833 } 4834 if (!operator) { 4835 return compare 4836 } 4837 4838 switch (operator) { 4839 case '>': 4840 case 'gt': 4841 return (compare > 0) 4842 case '>=': 4843 case 'ge': 4844 return (compare >= 0) 4845 case '<=': 4846 case 'le': 4847 return (compare <= 0) 4848 case '===': 4849 case '=': 4850 case 'eq': 4851 return (compare === 0) 4852 case '<>': 4853 case '!==':
4854 case 'ne': 4855 return (compare !== 0) 4856 case '': 4857 case '<': 4858 case 'lt': 4859 return (compare < 0) 4860 default: 4861 return null 4862 } 4863} 4864 4865jQuery.expr[':'].ptsContains = function(a, i, m) { return jQuery(a).text().toUpperCase() .indexOf(m[3].toUpperCase()) >= 0; }; 4866 4867var reload_init_opc = setInterval(function(){ 4868 if (typeof AppOPC !== typeof undefined){ 4869 if(!AppOPC.initialized) 4870 AppOPC.init(); 4871 else 4872 clearInterval(reload_init_opc) 4873 } 4874}, 2000); 4875 4876var remove_uniform_aux = false; 4877var remove_uniform = setInterval(function(){ 4878 if(!remove_uniform_aux){ 4879 Fronted.removeUniform(); 4880 remove_uniform_aux = true; 4881 }else 4882 clearInterval(remove_uniform) 4883}, 10000);
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.