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('
');
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('');
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('');
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('');
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')
}
});