function fillCombo($sel, data, labelField, valueField, empty, dataField) { $sel.empty(); if (empty) { $sel.append(''); } for (var ix = 0; ix < data.length; ix++) { var r = data[ix]; var dataFieldAppend = ''; if(dataField!=undefined && dataField!=null && dataField!=''){ dataFieldAppend = 'data-parent="' + dataField + '"'; } $sel.append(''); } } function initForms() { // // INIT FORM LOGIN // $("#frmFidelity").submit(function (e) { e.preventDefault(); }).validate({ rules: { fidelity: { required: true } }, submitHandler: function (form) { $(form).ajaxSubmit({ dataType: 'json', success: function (data) { $("#frmFidelity .alert").remove(); if (data.status == 'ko') $("#frmFidelity .modal-body").prepend('
×' + data.message + '
'); else { $('#modalFidelity').modal('hide'); swal('Fidelity card', 'Grazie, la tua fidelity card è stata registrata correttamente', 'success'); } } }); } }); $("#frmLogin").on('submit', function (e) { e.preventDefault(); $('#frmLogin').ajaxSubmit({ dataType: 'json', success: function (data) { $("#frmLogin .alert").remove(); if (data.status == 'ko') $("#frmLogin").prepend('
×' + data.message + '
'); else { location.reload(); } } }); })/*.validate({ rules: { uname: { required: true, email: true }, passw: { required: true } }, submitHandler: function (form) { $(form).ajaxSubmit({ dataType: 'json', success: function (data) { $("#frmLogin .alert").remove(); if (data.status == 'ko') $("#frmLogin .modal-body").prepend('
×' + data.message + '
'); else { location.reload(); } } }); } })*/; $("#frmLogin1").submit(function (e) { e.preventDefault(); }).validate({ rules: { clientiId: { required: true, }, Ncliente: { required: true }, negoziId: { required: true } }, submitHandler: function (form) { $(form).ajaxSubmit({ dataType: 'json', success: function (data) { $("#frmLogin1 .alert").remove(); if (data.status == 'ko') $("#frmLogin1 .modal-body").prepend('
×' + data.message + '
'); else { location.reload(); } } }); } }); // // INIT FORM REGISTER // $("#frmRegister").submit(function (e) { e.preventDefault(); }).validate({ messages: { confermapwdc: 'Il valore non corrisponde alla password' }, rules: { uname: { required: true, email: true, remote: { url: "ajax/check-email.php", type: "post", data: { email: function () { // Non possiamo usare l'id perchè nel form login c'è lo stesso campo return $("#reguname").val(); } } } }, cognome: { required: true }, nome: { required: true }, cf_piva: { required: true }, indirizzo: { required: true }, cap: { required: true, digits: true, minlength: 5, maxlength: 5 }, regioni_id: { required: true }, province_id: { required: true }, comuni_id: { required: true }, telefono: { required: true, digits: true }, negozi_id: { required: true }, privacy_agreement: { required: true }, pwdc: { minlength: 8, }, confermapwdc: { equalTo: '#pwdc' } }, errorPlacement: function (error, element) { if (element.attr("name") == "privacy_agreement") { error.insertAfter("#lblPrivacyContainer"); } else { error.insertAfter(element); } }, submitHandler: function (form) { $("#registratiButton").button('loading'); $(form).ajaxSubmit({ dataType: 'json', complete: function () { $("#registratiButton").button('reset'); }, success: function (data) { if (data.status == 'ok') { //toastr.success('Registrazione effettuata con successo', '', { timeOut: 5000 }); $("#register").offcanvas('hide'); swal({ title: 'Complimenti!', html: 'Ti sei appena registrato sul nostro servizio di prenotazione libri e abbiamo spedito le tue credenziali di accesso al tuo indirizzo e-mail.

Controlla la tua casella e-mail (anche in spam), recupera le credenziali di accesso e clicca sul pulsante ACCEDI qui sotto per effettuare il login.', type: 'info', showCancelButton: true, cancelButtonText: "Annulla", confirmButtonText: "ACCEDI", allowOutsideClick: false }).then( function () { $("#modalLogin").offcanvas('show'); } ).catch(swal.noop); } else { swal('Errore', 'La e-mail inserita è già registrata', 'error'); } } }); } }); $("#frmAggiornascheda").submit(function (e) { e.preventDefault(); }).validate({ messages: { confermapwdc: 'Il valore non corrisponde alla password' }, rules: { uname: { required: true, email: true, remote: { url: "ajax/check-email.php", type: "post", data: { email: function () { // Non possiamo usare l'id perchè nel form login c'è lo stesso campo return $("#reguname").val(); } } } }, cognome: { required: true }, nome: { required: true }, cf_piva: { required: false }, indirizzo: { required: true }, cap: { required: true, digits: true, minlength: 5, maxlength: 5 }, regioni_id: { required: true }, province_id: { required: true }, comuni_id: { required: true }, telefono: { required: true, digits: true }, negozi_id: { required: true }, pwdc: { minlength: 5, }, confermapwdc: { equalTo: '#pwdc' } }, submitHandler: function (form) { $("#aggiornaschedaButton").button('loading'); $(form).ajaxSubmit({ dataType: 'json', complete: function () { $("#aggiornaschedaButton").button('reset'); }, success: function (data) { if (data.status == 'ok') { location.href = "/"; } } }); } }); $("#frmContatti").submit(function (e) { e.preventDefault(); }).validate({ rules: { nome: { required: true }, email: { required: true, email: true }, titolo: { required: true }, messaggio: { required: true } }, errorPlacement: function (error, element) { error.insertAfter(element); }, submitHandler: function (form) { $("#contattiButton").button('loading'); $(form).ajaxSubmit({ dataType: 'json', complete: function () { $("#contattiButton").button('reset'); }, success: function (data) { if (data.status == 'ok') { location.reload(); } } }); } }); } function initUI() { $('#uname').val(""); $('#cognome').val(""); $('#nome').val(""); $('#cf_piva').val(""); $('#richiede_fattura').prop('checked',""); $('#indirizzo').val(""); $('#cap').val(""); $('#telefono').val(""); var theRegioniId; var theProvinceId; var theComuniId; // // Caricamento Regioni // $.ajax({ url: 'ajax/locations.php', data: { 'm': 'getRegioni' }, dataType: 'json', success: function (data) { var options = ''; $.each(data, function () { if (this.ID == '0') { options += "" theRegioniId = this.ID; } else { options += "" } }); $("#regioni_id").html(options); } }); // // CHANGE REGIONE => CARICA PROVINCE // $('#regioni_id').on('change', function () { $.ajax({ url: 'ajax/locations.php', data: { 'm': 'getProvince', 'id': $('#regioni_id').val() }, dataType: 'json', success: function (data) { var options = ''; $.each(data, function () { if (this.ID ==0) { options += "" } else { options += "" } }); $("#province_id").html(options); // Reset Comuni $("#comuni_id").html(''); } }); }); // // CHANGE PROVINCIA => CARICA COMUNE // $('#province_id').on('change', function () { $.ajax({ url: 'ajax/locations.php', data: { 'm': 'getComuni', 'id': $('#province_id').val() }, dataType: 'json', success:function (data) { var options = ''; $.each(data, function () { if (this.ID ==0) { options += "" } else { options += "" } }); $("#comuni_id").html(options); } }); }); } function modalEvents() { // Resettiamo il form su chiusura $('#modalLogin').on('hidden.bs.offcanvas', function () { $("#frmLogin")[0].reset(); $("#frmLogin .alert").remove(); // $("#frmLogin1")[0].reset(); // $("#frmLogin1 .alert").remove(); $(".form-control").toggleClass('error', false); $("label.error").remove(); }); $('#modalContatti').on('hidden.bs.offcanvas', function () { $("#frmContatti")[0].reset(); $("#frmContatti .alert").remove(); $(".form-control").toggleClass('error', false); $("label.error").remove(); }); $('#modalRegister').on('hidden.bs.offcanvas', function () { $("#province_id").html(''); $("#comuni_id").html(''); $("#frmRegister")[0].reset(); $(".form-control").toggleClass('error', false); $("label.error").remove(); }); } function addToCart(PRODOTTI_ID, QUANTITA, COPERTINATO, PREZZO, SCONTO, PREZZOSCONTATO, ALIVA) { $.ajax({ url: "ajax/addToCart.php", data: { PRODOTTI_ID: PRODOTTI_ID, QUANTITA: QUANTITA, COPERTINATO: COPERTINATO, PREZZO: PREZZO, SCONTO: SCONTO, PREZZOSCONTATO: PREZZOSCONTATO, ALIVA: ALIVA }, method: "POST", success: function (data) { if (data.indexOf('ALTERNATIVI') > -1) { $('#shoppingCart').offcanvas('hide'); var alt = data.split('-'); if (alt[1] == '0') { var mess = alt[2] == 'digitale' ? 'digitale' : 'fuori catalogo'; swal({ title: "Prodotto " + mess, type: "question", html: "Gentile cliente ti comunichiamo che il libro richiesto non è procurabile. " + alt[4], showCancelButton: false, confirmButtonText: "OK", allowOutsideClick: true }).then(function () { // history.back(); }); } else { var mess = alt[2] == 'digitale' ? 'digitale' : 'non procurabile'; swal({ title: "Prodotto " + mess, type: "question", html: "Gentile cliente ti comunichiamo che il libro richiesto non è procurabile. In alternativa ti comunichiamo il codice ISBN della versione alternativa. Digitando sul codice ISBN puoi inserire direttamente il libro cartaceo nel tuo ordine." + "

" + 'Prodotto alternativo: ' + alt[1] + '
' + alt[4], showCancelButton: true, cancelButtonText: "Annulla", confirmButtonText: "Acquista edizione consigliata", allowOutsideClick: false }).then(function () { location.href = '/prodotto.php?id=' + alt['3'] }); } } else { $('#quickView').modal('hide'); $('#search').offcanvas('hide'); app.cart = JSON.parse(data); } } }); } function updToCart(PRODOTTI_ID, QUANTITA) { $.ajax({ url: "ajax/updToCart.php", data: { PRODOTTI_ID: PRODOTTI_ID, QUANTITA: QUANTITA }, method: "POST", success: function (data) { const ix = app.cart.findIndex(a => a.PRODOTTI_ID==PRODOTTI_ID); app.cart[ix].QUANTITA = QUANTITA; if(QUANTITA==0) { app.cart.splice(ix, 1); } app.$forceUpdate(); } }); } function evvai(aggiungiColibri, digitalwallet, rimborso) { if (digitalwallet == undefined) { digitalwallet = 0; } if (rimborso == undefined) { rimborso = 0; } var conrit = $('#consegnaritardata').val(); $.ajax({ url: "https://software.fratellipetrillodistribuzione.it/software/clienti/ordini.json?m=creaOrdineDaEcommerce&sid=60mn1qf49pcosqdu29ias65j8j&token=da4fb5c6e93e74d3df8527599fa62642&conrit=" + conrit + "&spedizione=&aggiungiColibri=" + aggiungiColibri + "&clienti_id=&scontoExtraPerc=&scontoExtraValFatto=&digitalwallet=" + digitalwallet + "&rimborso=".rimborso, success: function (data) { location.href = "sendEmail.php?instance=click-rebillo"; } }); } function inviaOrdine() { swal({ title: 'Attenzione', html: 'Se sei già registrato, o hai effettuato acquisti presso i nostri punti vendita, effettua il login.

Altrimenti registrati.', type: 'question', width: '80%', showCancelButton: true, cancelButtonText: "Voglio registrarmi.", confirmButtonText: "Voglio effettuare il login.", allowOutsideClick: false }).then( function () { $("#modalLogin").modal('show'); }, function () { $("#modalRegister").modal('show'); } ).catch(swal.noop); } function annullaOrd(ids) { swal({ title: 'Vuoi davvero annullare il tuo ordine?', html: '', type: 'question', showCancelButton: true, cancelButtonText: "No", confirmButtonText: "Sì", allowOutsideClick: false }).then( function () { arrIds = ids.split(','); if (arrIds.length > 1) { a = prompt("Quante copie desideri annullare?"); if (a == null) { return; } if (isNaN(a * 1) || a > arrIds.length) { alert("Inserire un numero compreso tra 1 e " + arrIds.length); return; } theid = ''; for (i = 0; i < a; i++) { theid += arrIds[i] + ","; } $.ajax({ url: 'https://software.fratellipetrillodistribuzione.it/software/clienti/ordini.json?m=cancellaOrdineDettaglioDaEcommerce&token=da4fb5c6e93e74d3df8527599fa62642&ordinidettaglio_id=' + theid.substr(0, theid.length - 1), success: function (data) { location.href = "situazioneCliente.php?instance=click-rebillo"; } }); } else { $.ajax({ url: 'https://software.fratellipetrillodistribuzione.it/software/clienti/ordini.json?m=cancellaOrdineDettaglioDaEcommerce&token=da4fb5c6e93e74d3df8527599fa62642&ordinidettaglio_id=' + ids, success: function (data) { location.href = "situazioneCliente.php?instance=click-rebillo"; } }); } }, function () { return false; } ).catch(swal.noop); } function aggiungiColibri(ids) { swal({ title: 'Confermi di voler aggiungere le copertine ai libri selezionati al prezzo di € 0,00 cadauna?', html: '', type: 'question', showCancelButton: true, cancelButtonText: "No", confirmButtonText: "Sì", allowOutsideClick: false }).then( function () { $.ajax({ url: 'https://software.fratellipetrillodistribuzione.it/software/clienti/ordini.json?m=aggiungiColibriDaEcommerce&token=da4fb5c6e93e74d3df8527599fa62642&ordinidettaglio_id=' + ids, success: function (data) { location.href = "situazioneCliente.php?instance=click-rebillo"; } }); }, function () { return false; } ).catch(swal.noop); } function rimuoviColibri(ids) { var msg = ''; if (ids.split(',').length > 1) { msg = 'Confermi di voler rimuovere il servizio copertinatura da tutti i libri selezionati?'; } else { msg = 'Confermi di voler rimuovere il servizio copertinatura dal libro selezionato?' } swal({ title: msg, html: '', type: 'question', showCancelButton: true, cancelButtonText: "No", confirmButtonText: "Sì", allowOutsideClick: false }).then( function () { $.ajax({ url: 'https://software.fratellipetrillodistribuzione.it/software/clienti/ordini.json?m=rimuoviColibriDaEcommerce&token=da4fb5c6e93e74d3df8527599fa62642&ordinidettaglio_id=' + ids, success: function (data) { location.href = "situazioneCliente.php?instance=click-rebillo"; } }); }, function () { return false; } ).catch(swal.noop); } function showMovie(movie) { $("#movieDiv").show(); $("#movieDiv").html('
[X] CHIUDI
'); } function formatValue(imp) { imp = Math.round(imp * 100) / 100; //imp = Math.round(imp); imp = imp + ''; imp = imp.replace('.', ','); if (imp.length < 4) { var ix = imp.indexOf(','); if (ix < 0) { imp = imp + ',00'; } else { if (imp.substring(ix + 1).length < 2) { imp += '0'; } } return imp; } var tmp = ''; var j = 0; for (var i = imp.length - 1; i >= 0; i--) { j++; if (imp[i] == ',') { j = 0; } tmp = imp[i] + tmp; if (j > 0 && i > 0 && j % 3 == 0 && j != imp.length) { tmp = '.' + tmp; } } var ix = tmp.indexOf(','); if (ix < 0) { tmp = tmp + ',00'; } else { if (tmp.substring(ix + 1).length < 2) { tmp += '0'; } } return tmp; } function showpreview(a) { var prod = JSON.parse($('span.data-prod', a).text()); $('#qv_prodotti_id').val(prod.ID); $('#quickView .product-info-name').text(prod.TITOLO); $('#quickView .value-currentColor').text(prod.AUTORE); $('#quickView .value-currentIsbn').text(prod.SKU); if(prod.PREZZO>prod.PREZZOSCONTATO) { $('#quickView .price-old').html(formatValue(prod.PREZZO)+'€'); $('#quickView .price-new').html(formatValue(prod.PREZZOSCONTATO)+'€'); $('#quickView .price-new').show(); } else { $('#quickView .price-old').hide(); $('#quickView .price-new').html(formatValue(prod.PREZZO)+'€'); } $('#quickView .tf-product-media-wrap img').data('src', prod.IMG.substring(1)); $('#quickView .tf-product-media-wrap img').attr('src', prod.IMG.substring(1)); $('#quickView .add-to-cart-btn').off('click'); $('#quickView .add-to-cart-btn').on('click', function(){ addToCart(prod.ID, $('#quickView #qv_qty').val(), 1, prod.PREZZO, Math.round((1-prod.PREZZOSCONTATO/prod.PREZZO)*100), prod.PREZZOSCONTATO, prod.ALIVA); }); //TODO add on click aggiungi al carrello //onclick="addToCart(, 1, 1, , 0, , )" } $(document).ready(function(){ initForms(); initUI(); modalEvents(); }); Vue.config.productionTip = false; Vue.prototype.$currency = (e) => { try { return new Number(e).toLocaleString('it-IT', { style: 'currency', currency: 'EUR' }); } catch(err) { console.error(err); return ''; } } window.app = new Vue({ el: '#main-content', data: { cart: JSON.parse(atob($('meta[name=cart]').attr('content'))), }, computed: { kitpremium_id(){ return 352655; }, costocopertina(){ return 1.0; }, spesespedizione() { return 9.99; } }, methods: { shipping(){ if(!this.hasKit()){ return this.spesespedizione; } else { return 0; } }, total(){ return this.cart.reduce((acc,curr) => acc+this.costoRiga(curr), 0); }, grandTotal() { return this.shipping() + this.total(); }, items() { return this.cart.reduce((acc,curr) => acc+(curr.QUANTITA||0)*1, 0); }, hasKit() { return this.cart.find(k => k.PRODOTTI_ID==this.kitpremium_id)!=null }, plusBtn(c) { c.QUANTITA++; updToCart(c.PRODOTTI_ID, c.QUANTITA); }, minusBtn(c) { if(c.QUANTITA>1) { c.QUANTITA--; updToCart(c.PRODOTTI_ID, c.QUANTITA); } }, deleteItem(c) { updToCart(c.PRODOTTI_ID, 0); }, costocopertinalibro(c) { if(c.COPERTINATO && !this.hasKit()){ return this.costocopertina*c.QUANTITA*c.TOMI; } else { return 0; } }, costoUnitario(c){ return (!this.hasKit() ? c.PREZZOSCONTATO : c.PREZZO)*((100+c.ALIVA*1)/100); }, costoRiga(c) { return this.costoUnitario(c)*c.QUANTITA + this.costocopertinalibro(c); } }, mounted() { console.info('mounted') } });