= 35 && event.keyCode <= 39)) {
// let it happen, don't do anything
return;
}
else {
// Ensure that it is a number and stop the keypress
if (event.shiftKey || (event.keyCode < 48 || event.keyCode > 57) && (event.keyCode < 96 || event.keyCode > 105 )) {
event.preventDefault();
}
}
});
}
/*----------------------------------------------------------------------*/
function isNumber(n) {
'use strict';
n = n.replace(/\./g, '').replace(',', '.');
return !isNaN(parseFloat(n)) && isFinite(n);
}
/*----------------------------------------------------------------------*/
function input_solo_numeri_virgola_mobile(obj_input) {
obj_input.keydown(function(event) {
if (
//backspace, delete, tab, escape
event.keyCode == 46 || event.keyCode == 8 || event.keyCode == 9 || event.keyCode == 27 ||
//enter
event.keyCode == 13 ||
//Ctrl+A
(event.keyCode == 65 && event.ctrlKey === true) ||
//home, end, left, right
(event.keyCode >= 35 && event.keyCode <= 39)
) {
// let it happen, don't do anything
return;
}
else {
// Ensure that it is a number and stop the keypress
if (event.shiftKey || event.keyCode == 44 || (event.keyCode < 48 || event.keyCode > 57) && (event.keyCode < 96 || event.keyCode > 105 )) {
event.preventDefault();
}
}
});
}
/*----------------------------------------------------------------------*/
function input_validate(obj_input) {
var valore_input_precedente = obj_input.val();
obj_input.on('change keyup', function(event) {
if ( !event.target.validity.valid ) {
obj_input.val( valore_input_precedente );
}
else {
valore_input_precedente = obj_input.val();
}
});
}
/*----------------------------------------------------------------------*/
function em(input) {
var emSize = parseFloat($("body").css("font-size"));
return (emSize * input);
}
/*----------------------------------------------------------------------*/
function form_provincia(path, name_provincia, name_comune, id_database_comune, prefisso_comune) {
var select_provincia = $(path + " select[name='" + name_provincia + "']");
var provincia_selezionata = select_provincia.val();
var comune;
var comune_messaggio = $(path + " ." + prefisso_comune + "_messaggio");
var comune_box = $(path + " ." + prefisso_comune + "_box");
select_provincia.chosen({width: "200px", allow_single_deselect: true});
select_provincia.trigger("chosen:updated");
select_provincia.chosen().change(function(e) {
comune_box.html("Selezionare prima una provincia");
});
if (provincia_selezionata == '0') {
comune_messaggio.html("Selezionare prima una provincia").show();
comune_box.hide();
}
if (id_database_comune != '' && provincia_selezionata != '0') {
$.ajax({
type: "POST",
url: (typeof dominio === 'undefined' || !dominio ? "" : dominio) + "ajax_comuni.asp",
contentType: "application/x-www-form-urlencoded;charset=ISO-8859-15",
data: {'provincia' : provincia_selezionata, 'id_comune' : id_database_comune, 'nome_select_comune' : prefisso_comune},
success: function(msg){
if(msg == "errore") {
}
else {
comune_box.html(msg);
comune_box.show();
comune_messaggio.hide();
comune = $(path + " select[name='" + name_comune + "']");
comune.chosen({allow_single_deselect: true});
comune.trigger("chosen:updated");
}
},
error: function(xhr, status, error) {
}
});
}
if (select_provincia.attr("change") != "ok") {
select_provincia.change(function() {
provincia_selezionata = select_provincia.val();
if (provincia_selezionata == '0') {
comune_messaggio.html("Selezionare prima una provincia").show();
comune_box.hide();
}
else {
$.ajax({
type: "POST",
url: (typeof dominio === 'undefined' || !dominio ? "" : dominio) + "ajax_comuni.asp",
contentType: "application/x-www-form-urlencoded;charset=ISO-8859-15",
data: {'provincia' : provincia_selezionata, 'id_comune' : id_database_comune, 'nome_select_comune' : prefisso_comune},
success: function(msg){
if(msg == "errore") {
}
else {
comune_box.html(msg).show();
comune_messaggio.hide();
comune = $(path + " select[name='" + name_comune + "']");
comune.chosen({allow_single_deselect: true});
comune.trigger("chosen:updated");
}
},
error: function(xhr, status, error) {
}
});
}
});
}
select_provincia.attr("change", "ok");
}
/*----------------------------------------------------------------------*/
function GetURLParameter(sParam) {
var sPageURL = window.location.search.substring(1);
var sURLVariables = sPageURL.split('&');
for (var i = 0; i < sURLVariables.length; i++)
{
var sParameterName = sURLVariables[i].split('=');
if (sParameterName[0] == sParam)
{
return sParameterName[1];
}
}
}
/*----------------------------------------------------------------------*/
function VarSet(varString, newValue) {
eval(varString + " = " + newValue);
}
/*----------------------------------------------------------------------*/
function Select_HTML_da_JSON(shj_json, shj_valore_selezionato, shj_option, shj_value, shj_name_select) {
var shj_output;
shj_output = "";
return shj_output;
}
/*----------------------------------------------------------------------*/
/************************* VARIE *************************/
/*----------------------------------------------------------------------*/
// function login_esegui() {
// $.ajax({
// url: dominio + "login_punto_ajax.asp?piattaforma=" + piattaforma,
// contentType: "application/x-www-form-urlencoded;charset=ISO-8859-1",
// type: "POST",
// data: $("#pannello_login .pannello_login_form").serialize(),
// dataType: "text",
// success: function(data) {
// var login = $.parseJSON(data);
// if ( login.Risposta == "Errore") {
// //dati errati
// $( "#pannello_login .pannello_login_scorrevole_status" ).html( login.Testo_errore ).css('background-color','#C00');
// if ( login.Codice_errore == "8") {
// $( "#pannello_login .pannello_login_scorrevole_status" ).append("Rinnova online");
// }
// return false
// }
// else {
// //dati corretti
// id_label = login.ID_label;
// id_attivita = login.ID_attivita;
// id_punto = login.ID_punto;
// id_operatore = login.ID_operatore;
// id_culture = login.Culture.ID_culture;
// id_agente = login.ID_agente;
// Agente = login.Agente;
// Nome_Punto = login.Nome_punto;
// Provincia_Punto = login.Provincia_Punto;
// Email_Punto = login.Email_punto;
// Computer_Punto = login.Computer_Punto;
// Telefono_Punto = login.Telefono_Punto;
// Cellulare_Punto = login.Cellulare_Punto;
// Stampante_Fiche_Punto = login.Stampante_Fiche_Punto;
// Stampante_Ricevute_Punto = login.Stampante_Ricevute_Punto;
// Scadenza = login.Scadenza;
// a1 = login.a1;
// a2 = login.a2;
// a3 = login.a3;
// a4 = login.a4;
// Consulenza = login.Consulenza;
// App_clienti = login.App_clienti;
// Prenotado = login.Prenotado;
// Culture = login.Culture;
// $("#pannello_login input[type='button']").hide();
// $( "#pannello_login .pannello_login_scorrevole_status" ).html( "Accesso in corso" ).css('background-color','#090');
// carica_pannelli( login.File, 0);
// $(".pannello_login_immagini").backstretch("destroy", true);
// if (piattaforma == "desktop") {
// //comunica le impostazioni di rete al server remoto
// Handshake_print_server( id_punto );
// }
// }
// },
// error: function (xhr, ajaxOptions, thrownError) {
// $("#pannello_login input[type='button']").show();
// //alert(xhr.status);
// //alert("login errore " + xhr.responseText);
// //alert(thrownError);
// }
// });
// }
/*----------------------------------------------------------------------*/
function login2_esegui(le_form, le_button, le_status, le_spinner) {
//aggiorna l'interfaccia
le_button.hide();
le_spinner.show();
let form = {username: le_form.find('[name="username"]').val(), password: le_form.find('[name="password"]').val()};
let qs = "";
if (getDeviceInfo() === "chrome" || getDeviceInfo() === "safari") {
qs = "&useragent=" + getDeviceInfo();
}
if (form.username.length === 0 || form.password.length === 0) {
le_button.show();
le_spinner.hide();
le_status.html( "Non hai inserito le credenziali" ).css({"background-color":"#C00", "color":"#FFF"}).show();
return;
}
if (!login_in_corso) {
login_in_corso = true;
$.ajax({
url: dominio + "login_punto_ajax.asp?piattaforma=" + piattaforma + "&e=" + env,
contentType: "application/x-www-form-urlencoded;charset=ISO-8859-1",
type: "POST",
data: le_form.serialize() + qs,
timeout: 2500,
dataType: "text",
success: function(data) {
var login = $.parseJSON(data);
if ( login.Risposta == "Errore") {
//dati errati
le_status.html( login.Testo_errore ).css({"background-color":"#C00", "color":"#FFF"}).show();
if ( login.Codice_errore == "8") {
le_status.append("Per informazioni chiamare il numero: 091.5640490.
");
}
le_button.show();
le_spinner.hide();
login_in_corso = false;
return false
}
else {
//dati corretti
le_form.find(".password_container i").remove();
const mpwa_providers = "|MPWA1|MPWA2|MPWA3|MPWA4|MPWA5|";
D = login.D;
id_label = login.ID_label;
id_attivita = login.ID_attivita;
id_punto = login.ID_punto;
id_operatore = login.ID_operatore;
id_culture = login.Culture.ID_culture;
id_agente = login.ID_agente;
id_calendly = login.ID_calendly;
ID_esterno = login.ID_E;
Codice_WG = login.ID_C;
Agente = login.Agente;
Nome_Punto = login.Nome_punto;
Indirizzo = login.Indirizzo;
Civico = login.Civico;
Comune_Punto = login.Comune_Punto;
Provincia_Punto = login.Provincia_Punto;
Regione_Punto = login.Regione_Punto;
Cap_Punto = login.Cap_Punto;
Email_Punto = login.Email_punto;
Pec = login.Pec;
Amministratore_Nome = login.Amministratore_Nome;
Amministratore_Cognome = login.Amministratore_Cognome;
Computer_Punto = login.Computer_Punto;
Telefono_Punto = login.Telefono_Punto;
Cellulare_Punto = login.Cellulare_Punto;
Codice_Destinatario = login.Codice_Destinatario;
Piva = login.Piva;
Stampante_Fiche_Punto = login.Stampante_Fiche_Punto;
Stampante_Ricevute_Punto = login.Stampante_Ricevute_Punto;
Stampante_Scontrini = login.Stampante_Scontrini;
Emissione_Scontrino_Digitale = login.Emissione_Scontrino_Digitale;
Prodotto_consulenza = login.Prodotto_consulenza;
Virtual_configurato = login.Virtual_configurato;
Scadenza = login.Scadenza;
Scadenza_app = login.Scadenza_app;
Scadenza_plus = login.Scadenza_plus;
ScadenzaT = login.ScadenzaT;
a1 = login.a1;
b12 = login.b12;
a2 = login.a2;
a3 = login.a3;
a4 = login.a4;
ftp1 = login.FTP1;
ftp2 = login.FTP2;
Punto_attivo = login.Punto_attivo;
Consulenza = login.Consulenza;
Landing = login.Landing;
Whatsapp = login.WA;
Whatsapp_P = login.WAP;
Whatsapp_S = login.WAS;
isMPWA = mpwa_providers.includes("|" + login.WAS + "|");
App_clienti = login.App_clienti;
Prenotado = login.Prenotado;
Invia_notifiche = login.Invia_notifiche;
TW = login.TW;
WAI = login.WAI;
Culture = login.Culture;
Versione_software = login.Versione_software;
Scarica_anagrafica = login.SC;
Accetta_Contratto = login.AC;
Contratto_Accettato = login.CA;
ID_consulente = login.ID_consulente;
ID_ChargeBee = login.ID_ChargeBee;
ID_ChargeBee_WeGest = login.ID_ChargeBee_WeGest;
ID_ChargeBee_App = login.ID_ChargeBee_App;
ID_ChargeBee_WeGestPlus = login.ID_ChargeBee_WeGestPlus;
Settore1 = login.Settore1;
Settore2 = login.Settore2;
Settore3 = login.Settore3;
Icone_categorie = login.Icone_categorie;
Stile_grafico = login.St;
Pet = login.Pe;
SG = login.SG;
SGN = login.SGN;
PaMa = login.PaMa ? login.PaMa : "no";
PaSt = login.PaSt ? login.PaSt : "no";
Etichette = login.Etichette;
Nexi_attivo = login.POS_attivo;
ID_POS = login.ID_POS;
ID_Business = login.ID_Business;
Controlla_progressivo_fatture = login.Controlla_progressivo_fatture;
Scarica_privacy_clienti = login.Scarica_privacy_clienti;
Privilegi = [];
Login_as = new URLSearchParams(window.location.search).get('login');
moment.locale(Culture.Locale);
document.title = "WeGest - " + Nome_Punto;
le_status.html( "Accesso in corso" ).css({"background-color":"#090", "color":"#FFF"});
carica_pannelli3( login.File, 0);
if (piattaforma == "electron") {
localStorage.clear();
}
if (piattaforma == "desktop") {
//comunica le impostazioni di rete al server remoto
Handshake_print_server( id_punto );
}
}
},
error: function (xhr, ajaxOptions, thrownError) {
le_button.show();
le_spinner.hide();
login_in_corso = false;
if (ajaxOptions == "timeout") {
le_status.html( "Stiamo riscontrando dei problemi in fase di accesso. La invitiamo a riavviare il modem, verificare la sua connessione di rete riprovare tra qualche minuto." ).css({"background-color":"#C00", "color":"#FFF"}).show();
}
}
});
}
}
/*----------------------------------------------------------------------*/
function stringa_url() {
var d_ts = new Date();
var n_ts = d_ts.getTime();
return "id_attivita=" + id_attivita +
"&id_punto=" + id_punto +
"&id_operatore=" + id_operatore +
"&id_culture=" + id_culture +
"&a1=" + a1 + "&a2=" + a2 + "&a3=" + a3 + "&a4=" + a4 +
"&piattaforma=" + piattaforma +
"&env=" + env +
"×tamp=" + n_ts;
}
/*----------------------------------------------------------------------*/
function dateAdd(date, interval, units) {
var ret = new Date(date);
switch(interval) {
case 'year' : ret.setFullYear(ret.getFullYear() + units); break;
case 'quarter': ret.setMonth(ret.getMonth() + 3*units); break;
case 'month' : ret.setMonth(ret.getMonth() + units); break;
case 'week' : ret.setDate(ret.getDate() + 7*units); break;
case 'day' : ret.setDate(ret.getDate() + units); break;
case 'hour' : ret.setTime(ret.getTime() + units*3600000); break;
case 'minute' : ret.setTime(ret.getTime() + units*60000); break;
case 'second' : ret.setTime(ret.getTime() + units*1000); break;
default : ret = undefined; break;
}
return ret;
}
/*----------------------------------------------------------------------*/
function getDatePlusNMonths(date, months){
var splitted = date.split("/");
var date_dd = parseInt(splitted[0]) < 10 ? ("0" + parseInt(splitted[0])) : parseInt(splitted[0]);
var date_mm = parseInt(splitted[1]) < 10 ? ("0" + parseInt(splitted[1])) : parseInt(splitted[1]);
var date_yyyy = parseInt(splitted[2]);
date = new Date(date_mm + "/" + date_dd + "/" + date_yyyy);
var newDate = new Date(date.setMonth(date.getMonth() + months));
var dd = (newDate.getDate());
var mm = (newDate.getMonth() +1);
var aaaa = (newDate.getFullYear());
if (dd < 10) {
dd = "0" + dd;
}
if (mm < 10) {
mm = "0" + mm;
}
return dd + "/" + mm + "/" + aaaa;
}
/*----------------------------------------------------------------------*/
function getCurrentTime() {
const now = new Date();
const hours = now.getHours().toString().padStart(2, '0');
const minutes = now.getMinutes().toString().padStart(2, '0');
const seconds = now.getSeconds().toString().padStart(2, '0');
const milliseconds = now.getMilliseconds().toString().padStart(3, '0');
return `${hours}:${minutes}:${seconds} ${milliseconds}`;
}
/*----------------------------------------------------------------------*/
function parseDateFromXml(date){
var amd = date.split('-');
return amd[2] + "/" + amd[1] + "/" + amd[0];
}
/*----------------------------------------------------------------------*/
function convertHex(hex, opacity){
hex = hex.replace('#','');
r = parseInt(hex.substring(0,2), 16);
g = parseInt(hex.substring(2,4), 16);
b = parseInt(hex.substring(4,6), 16);
result = 'rgba('+r+','+g+','+b+','+opacity/100+')';
return result;
}
/*----------------------------------------------------------------------*/
function convertHex2RGB(hex){
hex = hex.replace('#','');
r = parseInt(hex.substring(0,2), 16);
g = parseInt(hex.substring(2,4), 16);
b = parseInt(hex.substring(4,6), 16);
result = 'rgb(' + r + ',' + g + ',' + b + ')';
return result;
}
/*----------------------------------------------------------------------*/
function ahex2rgba(hex){
hex = hex.replace('#','');
a = parseInt(hex.substring(0,2), 16);
r = parseInt(hex.substring(0,2), 16);
g = parseInt(hex.substring(2,4), 16);
b = parseInt(hex.substring(4,6), 16);
//create rgba string
var rgba = "rgba(" + r + "," + g + "," + b + "," + (a/100) + ")";
//return rgba colour
return rgba;
}
/*----------------------------------------------------------------------*/
function shadeRGBColor(color, percent) {
var f = color.split(",");
var t = percent < 0 ? 0 :255;
var p = percent < 0 ? percent*-1 : percent;
var R = parseInt(f[0].slice(4));
var G = parseInt(f[1]);
var B = parseInt(f[2]);
return "rgb(" + (Math.round((t-R)*p)+R) + "," + (Math.round((t-G)*p) + G) + "," + (Math.round((t-B)*p)+B) + ")";
}
/*----------------------------------------------------------------------*/
function shadeHexColor(colore, quantita) {
var r = parseInt(colore.substring(0,2), 16);
var g = parseInt(colore.substring(2,4), 16);
var b = parseInt(colore.substring(4,6), 16);
r = Math.round(Math.min(Math.max(0, r - quantita), 255));
g = Math.round(Math.min(Math.max(0, g - quantita), 255));
b = Math.round(Math.min(Math.max(0, b - quantita), 255));
return "rgb("+r+","+g+","+b+")";
}
/*----------------------------------------------------------------------*/
function Button_Accordion_Inizializza( bai_prefix ) {
//inizializza i pulsanti statistiche
bai_prefix.find(".button_accordion").each(function( index ) {
$(this)
.find(".nome_button").html( " " + $(this).attr("nome") )
.end()
.find(".riga_dati:even").addClass("alternata");
});
//espande o contrae i dati
bai_prefix.find(".button_accordion").not("input").click(function(e) {
if ( $(this).find(".totale_riepilogo").is(":visible") ) {
$(this)
.find(".totale_riepilogo").fadeOut()
.end()
.find(".nome_button").html( " " + $(this).attr("nome") );
$(this).find(".button_dati").slideToggle( "slow" );
}
else {
if (e.target.type != "text" && $(e.target).hasClass('no_accordion_click') == false) {
$(this)
.find(".totale_riepilogo").fadeIn()
.end()
.find(".nome_button").html( " " + $(this).attr("nome") );
$(this).find(".button_dati").slideToggle( "slow" );
}
}
});
//Apre il primo
bai_prefix.find(".button_accordion:first").click();
}
/*----------------------------------------------------------------------*/
function ValidateEmail(value) {
var mailformat = /(?:[a-z0-9!#$%&'*+/=?^_`{|}~-]+(?:\.[a-z0-9!#$%&'*+/=?^_`{|}~-]+)*|"(?:[\x01-\x08\x0b\x0c\x0e-\x1f\x21\x23-\x5b\x5d-\x7f]|\\[\x01-\x09\x0b\x0c\x0e-\x7f])*")@(?:(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?|\[(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?|[a-z0-9-]*[a-z0-9]:(?:[\x01-\x08\x0b\x0c\x0e-\x1f\x21-\x5a\x53-\x7f]|\\[\x01-\x09\x0b\x0c\x0e-\x7f])+)\])/;
if (value.match(mailformat) === null) {
return false;
} else {
return true;
}
}
/*----------------------------------------------------------------------*/
function ValidateUrl(value) {
var urlformat = /http(s?):\/\/(www\.)?[A-Za-z0-9\.-]{3,}\.[A-Za-z]{2,}/g;
if (value.match(urlformat) === null) {
return false;
} else {
return true;
}
}
/*----------------------------------------------------------------------*/
function ValidateNumber(value, decimal_separator) {
var numberformat;
if (decimal_separator === ".") {
numberformat = /^(\d+|\d{1,3}(\,\d{3})*)(.\d+)?$/;
}
else {
numberformat = /^(\d+|\d{1,3}(\.\d{3})*)(,\d+)?$/;
}
if (value.match(numberformat) === null) {
return false;
} else {
return true;
}
}
/*----------------------------------------------------------------------*/
function LogHandler(args){
var url = "https://www.t0p.it/logs/";
var userAgent = navigator ? navigator.userAgent : "-";
var origine = window.location.href ? window.location.href : "/?";
var parametri = args.Parametri;
var risposta = args.Risposta;
if (typeof args.Parametri != "string"){
parametri = JSON.stringify(args.Parametri);
}
if (args.Risposta){
if (typeof args.Risposta != "string"){
risposta = JSON.stringify(args.Risposta);
}
}
else{
risposta = "";
}
$.ajax({
type: "POST",
url: url,
data: {
ID_punto: id_punto,
ID_cliente: args.ID_cliente,
Piattaforma: "wegest",
Url: args.Url,
Metodo: args.Metodo,
Parametri: parametri,
Risposta: risposta,
Risposta_codice: args.Risposta_codice,
Etichetta: args.Etichetta,
Note: args.Note,
UserAgent: userAgent,
Origine: origine
},
success: function (r) {}
});
}
/*----------------------------------------------------------------------*/
function LogAppuntamenti(args){
$.ajax({
type: "POST",
url: "https://www.t0p.it/logs/agenda/",
data: {
ID_appuntamento: args.ID_appuntamento,
ID_punto: id_punto,
ID_cliente: args.ID_cliente,
Data: args.Data,
Inizio: args.Inizio,
Azione: args.Azione,
Servizi: args.Servizi,
Piattaforma: "wegest",
Note: args.Note
},
success: function (r) {}
});
}
/*----------------------------------------------------------------------*/
function LogsAppuntamenti(azione, dettagli_servizi){
var ID_Cliente, ID_appuntamento;
switch (azione) {
case "creazione":
case "eliminazione":
case "modifica":
var dettagli = [];
var inizio_servizio = "", fine_servizio, time;
for (let i = 0; i < dettagli_servizi.servizio.length; i++) {
const s = dettagli_servizi.servizio[i];
ID_Cliente = dettagli_servizi.ID_Cliente;
ID_appuntamento = dettagli_servizi.ID_appuntamento;
if( inizio_servizio == "") inizio_servizio = dettagli_servizi.inizio[0];
if( inizio_servizio.split(":")[1] == "0" ) inizio_servizio = inizio_servizio.split(":")[0] + ":00";
time = moment(inizio_servizio, "HH:mm");
time.add(dettagli_servizi["durata_operatore_" + s][0], 'minutes');
fine_servizio = time.format("HH:mm");
if(dettagli_servizi["eliminato_" + s] == "no"){
dettagli.push({
ID_servizio: dettagli_servizi["id_servizio_" + s][0],
ID_operatore: dettagli_servizi["operatore_" + s][0],
ID_cliente: dettagli_servizi.ID_Cliente,
ID_appuntamento: dettagli_servizi.ID_appuntamento,
Note: dettagli_servizi.Note,
Data_appuntamento: dettagli_servizi.data[0],
Inizio_servizio: inizio_servizio,
Fine_servizio: fine_servizio
});
}
inizio_servizio = fine_servizio
}
break;
case "spostamento":
var appuntamenti = {};
var data = dettagli_servizi.data[0];
for (var key in dettagli_servizi) {
if (key.startsWith('id_appuntamento_servizio_')) {
var appuntamentoId = dettagli_servizi[key][0];
if (!appuntamenti[appuntamentoId]) {
appuntamenti[appuntamentoId] = { Appuntamento: appuntamentoId, Servizi: [] };
}
var servizioId = key.split('_')[3];
var servizioObj = {};
for (var k in dettagli_servizi) {
if (k.endsWith('_' + servizioId)) {
var newKey = k.split('_servizio_' + servizioId)[0];
// Rinomino le chiavi per rispettare la coerenza con gli altri case
if (newKey === 'id_r') newKey = 'ID_servizio';
else if (newKey === 'id_appuntamento') newKey = 'ID_appuntamento';
else if (newKey === 'inizio') newKey = 'Inizio_servizio';
else if (newKey === 'durata') newKey = 'durata_servizio';
else if (newKey === 'operatore') newKey = 'ID_operatore';
else if (newKey === 'id_cliente') newKey = 'ID_cliente';
else true;
// i valori di ogni chiave sono sempre array con un elemento
// quindi seleziono il primo
servizioObj[newKey] = dettagli_servizi[k][0];
}
}
// Calcola la Fine_servizio
var inizio = moment(servizioObj['Inizio_servizio'], 'HH:mm');
var fine = inizio.clone().add(parseInt(servizioObj['durata_servizio']), 'minutes');
servizioObj['Fine_servizio'] = fine.format('HH:mm');
servizioObj["Data_appuntamento"] = data;
appuntamenti[appuntamentoId].Servizi.push(servizioObj);
}
}
var dettagli = Object.values(appuntamenti);
break;
default:
break;
}
$.ajax({
type: "POST",
url: "https://www.t0p.it/logs/agenda/index3.php",
data: {data: JSON.stringify({
ID_punto: id_punto,
Azione: azione,
Piattaforma: "wegest",
ID_cliente: ID_Cliente,
ID_appuntamento: ID_appuntamento,
Dettagli: dettagli
})},
success: function (r) {}
});
}
/*----------------------------------------------------------------------*/
function LogAnagrafica(args){
$.ajax({
type: "POST",
url: "https://www.t0p.it/logs/anagrafica/",
data: {
ID_punto: id_punto,
ID_cliente: args.ID_cliente,
Azione: args.Azione,
Nome_precedente: args.Nome_precedente,
Nome: args.Nome,
Dettagli: args.Dettagli,
Piattaforma: "wegest",
Note: args.Note
},
success: function (r) {}
});
}
/*----------------------------------------------------------------------*/
function LogNoteTecniche(args){
$.ajax({
type: "POST",
url: "https://www.t0p.it/logs/note_tecniche/index.php",
data: {
ID_punto: id_punto,
ID_cliente: args.ID_cliente,
ID_nota_tecnica: args.ID_nota_tecnica,
Dettagli: args.Dettagli,
Azione: args.Azione,
Piattaforma: "wegest",
},
success: function (r) {}
});
}
/*----------------------------------------------------------------------*/
// trasforma una querystring in oggetto javascript
// gestisce anche chiavi duplicate, creando sempre array
function convertURLParamsToObj(urlEncodedString){
const urlParams = new URLSearchParams(urlEncodedString);
const obj = {};
for (const [key, value] of urlParams) {
if (obj[key]) {
obj[key].push(value);
} else {
obj[key] = [value];
}
}
return obj;
}
/*----------------------------------------------------------------------*/
// trasforma un oggetto javascript in querystring
function objectToUri(obj) {
const keyValuePairs = [];
for (const key in obj) {
if (Object.hasOwnProperty.call(obj, key)) {
const value = encodeURIComponent(obj[key]);
keyValuePairs.push(`${key}=${value}`);
}
}
return `?${keyValuePairs.join('&')}`;
}
/*----------------------------------------------------------------------*/
function smsContaCaratteri(cc_oggetto, cc_textarea) {
var cc_testo;
var cc_lunghezza_testo;
var cc_num_caratteri_speciali;
var cc_lunghezza_testo_con_speciali;
var cc_numero_messaggi;
var cc_output = "";
cc_testo = cc_textarea.val();
cc_lunghezza_testo = cc_testo.length;
cc_lunghezza_testo_con_speciali = 0;
cc_num_caratteri_speciali = 0;
cc_num_caratteri_speciali += (cc_testo.length - cc_testo.replace(/€/g, "").length);
cc_num_caratteri_speciali += (cc_testo.length - cc_testo.replace(/^/g, "").length);
cc_num_caratteri_speciali += (cc_testo.length - cc_testo.replace(/{/g, "").length);
cc_num_caratteri_speciali += (cc_testo.length - cc_testo.replace(/}/g, "").length);
cc_num_caratteri_speciali += (cc_testo.length - cc_testo.replace(/\\/g, "").length);
cc_num_caratteri_speciali += (cc_testo.length - cc_testo.replace(/\[/g, "").length);
cc_num_caratteri_speciali += (cc_testo.length - cc_testo.replace(/~/g, "").length);
cc_num_caratteri_speciali += (cc_testo.length - cc_testo.replace(/]/g, "").length);
cc_num_caratteri_speciali += (cc_testo.length - cc_testo.replace(/|/g, "").length);
cc_lunghezza_testo_con_speciali = parseInt(cc_lunghezza_testo + cc_num_caratteri_speciali);
cc_numero_messaggi = parseInt(cc_lunghezza_testo_con_speciali / 160);
if (cc_lunghezza_testo_con_speciali % 160 > 0) {
cc_numero_messaggi += 1
}
// Composizione del testo
if (cc_numero_messaggi > 1) {
cc_output = " " + cc_numero_messaggi + " " + LinguaT({sezione:"SAT", tag:"Messaggi"}) + "";
}
else {
cc_output = cc_numero_messaggi + " " + (cc_numero_messaggi == 1 ? LinguaT({sezione:"SAT", tag:"Messaggio"}) : LinguaT({sezione:"SAT", tag:"Messaggi"}));
}
cc_output += " / " + cc_lunghezza_testo_con_speciali + " " + (cc_lunghezza_testo_con_speciali == 1 ? LinguaT({sezione:"SAT", tag:"Carattere"}) : LinguaT({sezione:"SAT", tag:"Caratteri"}));
cc_oggetto.find("." + cc_textarea.attr("area_messaggio")).html( cc_output );
}
function getDeviceInfo() {
let userAgent = navigator.userAgent.toLowerCase();
if (userAgent.includes("chrome") && !userAgent.includes("edg") && !userAgent.includes("opr")) {
return "chrome";
} else if (userAgent.includes("safari") && !userAgent.includes("chrome")) {
return "safari";
} else if (userAgent.includes("firefox")) {
return "firefox";
} else if (userAgent.includes("edg")) {
return "edge";
} else if (userAgent.includes("opr") || userAgent.includes("opera")) {
return "opera";
}
return "";
}
/*----------------------------------------------------------------------*/
/*----------------------------------------------------------------------*/
var obj_window;
var obj_window_altezza;
var obj_window_larghezza;
var box_wrapper;
var box_wrapper_altezza;
var box_wrapper_larghezza;
var box_pannelli;
var box_menu;
/*----------------------------------------------------------------------*/
function ReLayout() {
//window
obj_window = $(window);
obj_window_altezza = obj_window.height();
obj_window_larghezza = obj_window.width();
//wrapper
box_wrapper = $("#wrapper");
box_wrapper.outerHeight( obj_window_altezza );
box_wrapper.outerWidth( obj_window_larghezza );
box_wrapper_altezza = obj_window_altezza;
box_wrapper_larghezza = obj_window_larghezza;
//pannelli
box_pannelli = $(".pannello");
box_pannelli.outerHeight( box_wrapper_altezza );
box_pannelli.each(function(index, element) {
if ($(this).attr("relayout") != "no") {
$(this).outerWidth( box_wrapper_larghezza );
}
});
$(".pannello_interno").css('max-height', (box_wrapper_altezza - parseInt($(".pannello_interno").css('margin-top'))) + "px");
//menu
box_menu = $("#menu");
box_menu.outerHeight( box_wrapper_altezza );
}
/*----------------------------------------------------------------------*/
$(function() {
//pulsante impostazioni
$("#pulsante_impostazioni").click(function(e) {
$("#menu .pulsante_menu").removeClass("selezionato");
box_pannelli.hide();
$( "#pannello_impostazioni" ).show();
eval( "pannello_impostazioni_inizializza()" );
});
$(window).resize(function() {
ReLayout();
});
});
/*----------------------------------------------------------------------*/
function carica_pannelli(cp_array_pannelli, cp_indice) {
var numero_pannelli = cp_array_pannelli.length;
if (cp_indice < numero_pannelli) {
$.each(cp_array_pannelli[cp_indice], function(key, value) {
if (value.indexOf(".js") > 0) {
$.getScript(dominio + value, function (pannello) {
$("#bip").html(key);
carica_pannelli(cp_array_pannelli, cp_indice + 1);
});
}
else {
$.get(dominio + value, function (pannello) {
box_wrapper.append(pannello);
$("#bip").html(key);
carica_pannelli(cp_array_pannelli, cp_indice + 1);
});
}
});
}
else {
ReLayout();
$( "#pannello_dashboard" ).css({"display":"flex"});
$( "#pannello_menu" ).show();
pannello_dashboard_inizializza();
//fa sparire il pannello di login
$("#pannello_login").animate({'top': (obj_window_altezza +30)*-1},
{
duration:900, complete: function() {
$(this).hide();
$("#pulsante_impostazioni").show();
}
}
);
$("input").keypress(function (e) {
if (e.which == 13) {
e.preventDefault();
}
});
$("button").click(function(e) {
e.preventDefault();
});
}
}
/*----------------------------------------------------------------------*/
function carica_pannelli2(cp_array_pannelli, cp_indice) {
var numero_pannelli = cp_array_pannelli.length;
if (cp_indice < numero_pannelli) {
$.each(cp_array_pannelli[cp_indice], function(key, value) {
if (value.indexOf(".js") > 0) {
$.getScript(dominio + value, function (pannello) {
//box_wrapper.append(pannello);
$("#pannello_login .avanzamento").html(key);
carica_pannelli2(cp_array_pannelli, cp_indice + 1);
});
}
else {
$.get(dominio + value, function (pannello) {
if (key == "Menu") {
box_wrapper.find(".wrapper_menu").append(pannello);
}
else {
box_wrapper.find(".wrapper_contents").append(pannello);
}
// box_wrapper.append(pannello);
$("#pannello_login .avanzamento").html(key);
carica_pannelli2(cp_array_pannelli, cp_indice + 1);
});
}
});
}
else {
$("#wrapper .wrapper_contents").show();
$("#wrapper .wrapper_menu").show();
ReLayout();
box_pannelli.hide();
$( "#pannello_menu" ).show();
setTimeout(function() {
switch (a1) {
case "0":
case "1":
$( "#pannello_dashboard" ).show();
pannello_dashboard_inizializza();
break;
case "2":
$( "#pannello_statistiche" ).show();
pannello_statistiche_inizializza();
break;
case "3":
$( "#pannello_magazzino" ).show();
pannello_magazzino_inizializza();
break;
default:
break;
}
}, 100);
//fa sparire il pannello di login
$("#pannello_login").animate({'top': (obj_window_altezza +30)*-1},
{
duration:900, complete: function() {
$(this).hide();
// nuona impostazione per nascondere il pulsante impostazione
if (a1 == '1' && b12 == 'no') {
$("#pulsante_impostazioni").hide();
} else {
$("#pulsante_impostazioni").show();
}
}
}
);
$("input").keypress(function (e) {
if (e.which == 13) {
e.preventDefault();
}
});
$("button").click(function(e) {
e.preventDefault();
});
}
}
/*----------------------------------------------------------------------*/
var carica_pannelli3_bool = false;
function carica_pannelli3(cp_array_pannelli, cp_indice) {
var numero_pannelli = cp_array_pannelli.length;
var pannello;
if (carica_pannelli3_bool == false) {
$.getScript(dominio + "js/layout_load.js?d=" + (new Date().getTime()), function () {
carica_pannelli3_bool = true;
carica_pannelli3(cp_array_pannelli, cp_indice);
});
}
else {
if (cp_indice < numero_pannelli) {
// Ci sono ancora pannelli da caricare
if (typeof cp_array_pannelli[cp_indice].S != "undefined") {
// nuovo formato json
pannello = cp_array_pannelli[cp_indice];
pannello.loaded = false;
pannello.lastOpened = null;
// Carica solo se l'azione è l (l -> load, dl -> don't load)
if (pannello.A == "l") {
// Cicla tra tutti i file
for (var i = 0; i < pannello.F.length; i++) {
layout_load({
slug: pannello.S,
element: pannello.F[i],
type: (pannello.F[i].indexOf(".js") > 0 ? "js" : "html"),
callback: function() {
$("#pannello_login .avanzamento").html(pannello.S);
}
});
}
// Caricato
pannello.loaded = true;
}
// Aggiunge all'array globale
layout_sezioni_caricate.push(pannello);
// Carica il pannello successivo
carica_pannelli3(cp_array_pannelli, cp_indice + 1);
}
else {
// formato json classico
$.each(cp_array_pannelli[cp_indice], function(key, value) {
layout_load({
slug: key,
element: value,
type: (value.indexOf(".js") > 0 ? "js" : "html"),
callback: function() {
$("#pannello_login .avanzamento").html(key);
carica_pannelli3(cp_array_pannelli, cp_indice + 1);
}
});
});
}
}
else {
// Ha completato l'array
$("#wrapper .wrapper_contents").show();
$("#wrapper .wrapper_menu").show();
ReLayout();
box_pannelli.hide();
$( "#pannello_menu" ).show();
setTimeout(function() {
switch (a1) {
case "0":
case "1":
$( "#pannello_dashboard" ).show();
pannello_dashboard_inizializza();
break;
case "2":
$( "#pannello_statistiche" ).show();
pannello_statistiche_inizializza();
break;
default:
break;
}
}, 100);
//fa sparire il pannello di login
$("#pannello_login").animate({'top': (obj_window_altezza +30)*-1},
{
duration:900, complete: function() {
$(this).hide();
// nuona impostazione per nascondere il pulsante impostazione
if (a1 == '1' && b12 == 'no') {
$("#pulsante_impostazioni").hide();
} else {
if (Privilegi.length < 5 && !(Privilegi.includes("Impostazioni"))) {
$("#pulsante_impostazioni").hide();
} else {
$("#pulsante_impostazioni").show();
}
}
}
}
);
$("input").keypress(function (e) {
if (e.which == 13) {
e.preventDefault();
}
});
$("button").click(function(e) {
e.preventDefault();
});
}
}
}
/*----------------------------------------------------------------------*/
function layout_attach(panel) {
if (panel.Cache != "") {
box_wrapper.find(" > .wrapper_contents").append(panel.Cache);
box_pannelli = box_wrapper.find("> .wrapper_contents > .pannello");
box_pannelli.filter( "#" + panel.Panel_Name ).show();
panel.Cache = "";
}
}
/*----------------------------------------------------------------------*/
function layout_detach(panel) {
if (panel.Cache == "") {
if (panel.DOM.Pannello.is(":hidden")) {
panel.Cache = box_pannelli.filter( "#" + panel.Panel_Name ).detach();
}
}
}
/*----------------------------------------------------------------------*/
/*----------------------------------------------------------------------*/
piattaforma = GetURLParameter("piattaforma");
env = typeof GetURLParameter("e") == "undefined" ? "" : GetURLParameter("e");
versione = parseInt(GetURLParameter("v"));
/*----------------------------------------------------------------------*/
dominio = "http://www.i-salon.eu/";
dominio = window.location.protocol + "//" + window.location.host + "/";
/*----------------------------------------------------------------------*/
ajax_timeout = 6000;
ajax_timeout_msg_errore = "Tempo assegnato all'operazione scaduto: verificare la connessione e riprovare.";
/*----------------------------------------------------------------------*/
//modifica per formattazione euro
Number.prototype.formatEuro = function(c, d, t){
var n = this,
c = isNaN(c = Math.abs(c)) ? 2 : c,
d = d == undefined ? "," : d,
t = t == undefined ? "." : t,
s = n < 0 ? "-" : "",
i = parseInt(n = Math.abs(+n || 0).toFixed(c)) + "",
j = (j = i.length) > 3 ? j % 3 : 0;
return s + (j ? i.substr(0, j) + t : "") + i.substr(j).replace(/(\d{3})(?=\d)/g, "$1" + t) + (c ? d + Math.abs(n - i).toFixed(c).slice(2) : "");
};
/*----------------------------------------------------------------------*/
//serve per rendere case insensitive la ricerca
jQuery.expr[':'].Contains = function(a,i,m){
return (a.textContent || a.innerText || "").toUpperCase().indexOf(m[3].toUpperCase())>=0;
};
/*----------------------------------------------------------------------*/
// $.datepicker.setDefaults( $.datepicker.regional[ "it" ] );
/*----------------------------------------------------------------------*/
//imposta la lingua italiana sulla libreria moment
moment.lang('it', {
relativeTime : {
future: "%s",
past: "%s",
s: "alcuni secondi",
m: "un minuto",
mm: "%d minuti",
h: "un'ora",
hh: "%d ore",
d: "un giorno",
dd: "%d giorni",
M: "un mese",
MM: "%d mesi",
y: "un anno",
yy: "%d anni"
}
});
/*----------------------------------------------------------------------*/
// deprecato
giorni_settimana_DB = ["Lunedi","Martedi","Mercoledi","Giovedi","Venerdi","Sabato","Domenica"];
/*----------------------------------------------------------------------*/
ion.sound({
sounds: [
{
name: "computer_error"
},
{
name: "glass",
}
],
volume: 1,
path: dominio + "media/suoni/",
preload: true
});
/*----------------------------------------------------------------------*/
$(function() {
$.datepicker.setDefaults( $.datepicker.regional[ "it" ] );
ReLayout();
$("#pannello_login").show();
pollici_schermo = parseInt(get_pollici_schermo());
//alert(pollici_schermo);
if (box_wrapper_larghezza > 1600 && box_wrapper_larghezza < 2000) {
$("body").css("font-size","18px");
}
else if (box_wrapper_larghezza >= 2000) {
$("body").css("font-size","22px");
}
$.support.cors = true;
});
/*----------------------------------------------------------------------*/
//alert(document.documentMode);
//alert(navigator.userAgent);
//// if (navigator.userAgent.indexOf("MSIE", 0) != -1 || navigator.userAgent.indexOf("Trident", 0) != -1) {
if (navigator.userAgent.indexOf("MSIE", 0) != -1 || navigator.userAgent.indexOf("Trident", 0) != -1 || navigator.userAgent.indexOf("Edge/", 0) != -1) {
window.location = dominio + "browser_non_compatibile.asp";
}
else {
if (piattaforma != "electron") {
window.onbeforeunload = function() {
return 'Sei sicuro di voler lasciare la pagina?';
};
}
}
/*----------------------------------------------------------------------*/