codice:
function disegna_consegne(consegne,fattorini) {
var html='';
var start_div = '<div class="timetable_font timetable_colonna_riga_sotto timetable_zone_parametri">';
intervalli_orari.forEach(function(orario) {
var stringa = '', numpizze = 0, numconsegne = 0, impegno= 'basso', numbibite=0, Riaccoppiate = 0, rientro_minuti = 0 , FATTORINI_secondi = 0, orario_inquesto_momento = '', orario_consegna = '' , ORA_orario_consegna = '' , MINUTI_orario_consegna = '' , tempo_restante = 0 , rientro_secondi = 0;
FATTORINI_secondi += (fattorini[orario].tempo_fattorino );
var lettere_zona = [];
var zona = [];
var zona_html = [];
var zona_stampa = '';
var lettera_zona_cancelletto = '';
var numero_zona_cancelletto = 0;
var consegna_presente = false;
if (consegne['zone']) {
var zone_all = consegne['zone'].slice();
}
consegne[orario] && consegne[orario].forEach(function(consegna){
accoppiate.push(consegna);
if(consegna.ord_id_accoppiata != "") {
Riaccoppiate++
}
rientro_minuti += (consegna.rientro_minuti)*2/2;
rientro_secondi = rientro_minuti*60;
orario_consegna = consegna.orario;
ORA_orario_consegna = orario_consegna.substring(0, 2);
MINUTI_orario_consegna = orario_consegna.substring(3, 5);
rientro_secondi = Math.round(rientro_secondi);
orario_inquesto_momento = consegna.orario_inquesto_momento;
ora_inquesto_momento = orario_inquesto_momento.substring(0, 2);
minuto_inquesto_momento = orario_inquesto_momento.substring(3, 5);
secondi_inquesto_momento = minuto_inquesto_momento*60;
tempo_restante = FATTORINI_secondi-rientro_secondi;
var fattorino_locale = parseInt(consegna.ord_consegna) == 0;
if (fattorino_locale == false) {
var arr_cons = consegne[orario];
var arr_cons_find = arr_cons.filter(function(obj) {
return obj.zona == consegna.zona;
});
var numero_zona = arr_cons_find.length;
zona[consegna.zona] = numero_zona;
lettera_zona_cancelletto = '#';
if (parseInt(consegna.ord_consegna) == 1) { //Appena_possibile
if (numero_zona_cancelletto == 0) {numero_zona_cancelletto = 1;}
else {numero_zona_cancelletto++;}
}
}
numpizze += consegna.numpizze;
numbibite += consegna.numbibite;
});
var zone_obj = [];
zone_all && zone_all.forEach(function(z) {
if (typeof zona[z] == 'undefined') {
/* Inserisco un div vuoto perché altrimenti non sistema bene le zone nel blocco */
zone_obj.push({lettera: z, numero: '<div class="numero_vuoto"></div>'});
} else {
zone_obj.push({lettera: z, numero: zona[z]});
}
});
for (var z2 in zona) {
if(parseInt(zona[z2]) > 0) {consegna_presente = true;}
}
zone_obj.sort(function(a, b){
return ( (a.lettera < b.lettera) ? -1 : ( ( a.lettera > b.lettera ) ? 1 : 0 ) );
});
for (var z2 in zone_obj) {
if(consegna_presente == true) {
zona_html.push(start_div + zone_obj[z2].numero + ' ' + zone_obj[z2].lettera + '</div>');
}
}
zona_stampa = zona_html.join(" ");
if (numero_zona_cancelletto == 0) {numero_zona_cancelletto = '';}
if(fattorini[orario]){
if(fattorini[orario].pxo <= numpizze) {
impegno = 'medio';
}
if(fattorini[orario].fatt <= numconsegne) {
impegno = 'intenso';
}
if(fattorini[orario].fatt == -1) {
impegno = 'scaduto';
}
} else {
impegno = 'scaduto';
fattorini[orario] = {fatt: 0};
}
if (fattorini[orario].fatt <= 0) {fattorini[orario].fatt = ' ';}
if (numconsegne <= 0) {numconsegne = ' ';}
if (numbibite <= 0) {numbibite = ' ';}
if (numero_zona_cancelletto == 0) { /* Div vuoto - altrimenti sballa il layout */
numero_zona_cancelletto = '<div class="numero_vuoto"></div>';
}
stringa = '<div class="timetable_riga"> <div> <span class="timetable_font_sopra">' + fattorini[orario].fatt + '</span> <p>Pony</p> </div> <div> <span class="timetable_font_sopra">' + numconsegne + '</span> <p>Consegne</p> </div> <div> <span class="timetable_font_sopra">' + numpizze + '</span> <p>Pizze</p> </div> <div></div></div><div class="timetable_riga timetable_zone timetable_sotto"><div class="timetable_font timetable_colonna_riga_sotto timetable_zone_parametri">' + tempo_restante + ' ' + lettera_zona_cancelletto + '</div>'+ zona_stampa + '</div></div>';
$("#H" + orario.replace(':', '')).attr("class", impegno).html(stringa);
});
/* Inserisco la zona della comanda attuale */
var zone_reali = JSON.parse($('#zone_orari').val());
var zona_comanda_array = zona_comanda.split(',');
zona_comanda_array[0] = zone_reali[zona_comanda_array[0]];
$("#orario_vuoto_0").html('<span id="zona_grande">' + zona_comanda_array[0] + '</span>');
}
per me è una branda, mi viene il mal di testa solo a fare copia e incolla..
quello che fa è: prende i dati, li mette in un array e cicla con i quarti d'ora tutte le consegne che ci sono.
L'output lo fa con la variabile "stringa" ma se non ci sono consegne non valorizza nemmeno le variabili che dovrebbero invece essere ok come quelle sopracitate: cioè se io faccio:
codice:
stringa = '<div class="timetable_riga">
<div> <span class="timetable_font_sopra">' + fattorini[orario].fatt + '</span> <p>Pony</p> </div>
<div> <span class="timetable_font_sopra">' + numconsegne + '</span> <p>Consegne</p> </div>
<div> <span class="timetable_font_sopra">' + numpizze + '</span> <p>Pizze</p> </div>
<div></div></div>
<div class="timetable_riga timetable_zone timetable_sotto">
<div class="timetable_font timetable_colonna_riga_sotto timetable_zone_parametri">' + FATTORINI_secondi+ ' ' + lettera_zona_cancelletto + '</div>'+ zona_stampa + '</div></div>';
anche dove non ci sono consegne mi scrive un valore sopra i 750 che è giusto..
ma la variabile "tempo_restante " me la mette corretta solo dove ci sono delle consegne, nel resto dei blocchi è 0
grazie e ti capirò se non mi rispondi perchè il codice è un casino, e infatti non l'ho scritto io, l'ho ereditato