update
This commit is contained in:
@@ -0,0 +1,99 @@
|
||||
Object.defineProperties(Array.prototype, {
|
||||
count: {
|
||||
value: function (query) {
|
||||
/*
|
||||
Counts number of occurrences of query in array, an integer >= 0
|
||||
Uses the javascript == notion of equality.
|
||||
*/
|
||||
var count = 0;
|
||||
for(let i = 0; i < this.length; i++)
|
||||
if(this[i] == query)
|
||||
count++;
|
||||
return count;
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
rows = $(".table-div table .worker-row");
|
||||
//console.log(trs)
|
||||
|
||||
workers = {};
|
||||
|
||||
rows.each((n, tr) => {
|
||||
|
||||
//console.log(tr);
|
||||
|
||||
worker_td = $(tr).find("td:first");
|
||||
|
||||
worker = worker_td.attr("data-worker");
|
||||
|
||||
shift_tds = $(tr).find(".rota-day");
|
||||
shifts = []
|
||||
|
||||
shift_tds.each((n, td) => {
|
||||
shifts.push($(td).attr("data-shift"));
|
||||
})
|
||||
|
||||
shifts_unique = new Set(shifts);
|
||||
shifts_unique.delete("");
|
||||
//console.log(shifts_unique);
|
||||
|
||||
weekends_worked = 0;
|
||||
|
||||
weeks = shift_tds.length / 7;
|
||||
|
||||
whole_weekends_worked = 0;
|
||||
|
||||
for(var i = 1; i <= weeks; i++) {
|
||||
//console.log($(tr).find(`[data-week='${i}'][data-day='Sat']`));
|
||||
if($(tr).find(`[data-week='${i}'][data-day='Sat']`).attr("data-shift") != "" || $(tr).find(`[data-week='${i}'][data-day='Sun']`).attr("data-shift") != "") { weekends_worked = weekends_worked + 1; }
|
||||
if($(tr).find(`[data-week='${i}'][data-day='Sat']`).attr("data-shift") != "" && $(tr).find(`[data-week='${i}'][data-day='Sun']`).attr("data-shift") != "") { whole_weekends_worked = whole_weekends_worked + 1; }
|
||||
}
|
||||
|
||||
shift_counts = {};
|
||||
|
||||
total_shifts = 0;
|
||||
days_lost = 0;
|
||||
shifts_unique.forEach(el => {
|
||||
//console.log(el);
|
||||
shift_counts[el] = shifts.count(el);
|
||||
total_shifts = total_shifts + shifts.count(el);
|
||||
|
||||
if(el == "night_weekday") { days_lost = days_lost + shifts.count(el) / 4 * 5 }
|
||||
if(el == "night_weekend") {
|
||||
days_lost = days_lost + shifts.count(el) / 3 * 4
|
||||
whole_weekends_worked = whole_weekends_worked - shifts.count(el) / 3
|
||||
}
|
||||
|
||||
});
|
||||
|
||||
days_lost = days_lost + whole_weekends_worked
|
||||
console.log(worker, whole_weekends_worked);
|
||||
|
||||
//days_lost = days_lost + whole_weekends_worked;
|
||||
//console.log(shift_counts);
|
||||
|
||||
workers[worker] = {
|
||||
"site": worker_td.attr("data-site"),
|
||||
"nwds": worker_td.attr("data-nwds"),
|
||||
"fte": worker_td.attr("data-fte_adj"),
|
||||
"end_date": worker_td.attr("data-end_date"),
|
||||
"shifts": shifts,
|
||||
"shift_types": shifts_unique,
|
||||
"weekends_worked": weekends_worked,
|
||||
"shift_counts": shift_counts,
|
||||
"days_lost": days_lost,
|
||||
//"shifts"
|
||||
}
|
||||
|
||||
sc = JSON.stringify(shift_counts);
|
||||
|
||||
worker_td.after(`<div class='worker-summary'><span>Total shifts: ${total_shifts}, </span><span>Weekends: ${weekends_worked}, </span><span>Training days lost: ${days_lost}, </span><span class=''>${sc}</span></div>`)
|
||||
|
||||
})
|
||||
|
||||
$("th.worker").append($("<button>Toggle Summary</button>").click(() => {
|
||||
$(".rota-day").toggle();
|
||||
$(".worker-summary").toggle();
|
||||
|
||||
}))
|
||||
Reference in New Issue
Block a user