From 29574f5ae48b0f260e0dc65c7078c3f79f18db9a Mon Sep 17 00:00:00 2001 From: patrick Date: Tue, 10 Sep 2019 03:21:41 +1000 Subject: [PATCH] km is calculated and driver is identified --- html/staff.html | 3 ++- js/bts_office.js | 28 +++++++++++++++++++--------- 2 files changed, 21 insertions(+), 10 deletions(-) diff --git a/html/staff.html b/html/staff.html index d7d9fbd..8acbb08 100644 --- a/html/staff.html +++ b/html/staff.html @@ -14,7 +14,8 @@ {{firstname}},{{lastname}}
{{mobile}}
{{email}}
-
+
petrol:{{petrol}} km
+
notes
diff --git a/js/bts_office.js b/js/bts_office.js index ade095c..951dc23 100644 --- a/js/bts_office.js +++ b/js/bts_office.js @@ -1808,6 +1808,7 @@ //filter some of them; staffs.forEach(function(e){ $('div.workspace div.jobTable[data-staff="' + e + '"]').addClass(class_name); + $('div.workspace div.jobTable[data-driver="' + e + '"]').addClass(class_name); }); $('div.workspace div.jobTable.' + class_name).fadeIn(); @@ -1921,25 +1922,28 @@ var kms={}; $('div.jobTable[data-staff="' + id + '"]:visible').each(function(){ var el = this; - var matches = find_driving_partner_job(el); - console.assert(matches.length == 1); //only one match - if (matches.length != 1) - return; + var match = find_driving_partner_job(el); - var staff = $('#' + matches[0]).data().staff; + var staff = $('#' + match).data().staff; if (typeof kms[staff] =='undefined'){ kms[staff] = 0; } kms[staff] += convert_driving_to_km(el); //console.log($(this).attr('id'), matches, kms); + }); + //console.log(kms); + for (var staff in kms ){ bts().staff_people[staff].set_km(kms[staff]); console.log(bts().staff_map[staff]); ensure_visible(bts().staff_people[staff].selector); - }); - //console.log(kms); + } } function find_driving_partner_job(selector){ + + if (typeof $(selector).attr('data-parent') != "undefined" && $(selector).attr('data-parent') !="") + return $(selector).attr('data-parent'); + var job = $(selector).data(); var start = new Date(job.start); var client = job.client; @@ -1950,10 +1954,16 @@ s = new Date(match.start); c = match.client; if ((start - s == 0) && (client == c) && staff != bts().driving){ - matches.push($(this).attr('id')); + matches.push({parent:$(this).attr('id'), driver: staff}); } }); - return matches; + if (matches.length != 1){ + console.warn("1 driving job has more than 1 matching", $(selector).attr('id'), matches); + } + $(selector).attr('data-driver', matches[0].driver); + $(selector).attr('data-parent', matches[0].parent); + $(selector).find('.bstaff').html("Driving/" + bts().staff_map[matches[0].driver].display_name); + return matches[0].parent; } function convert_driving_to_km(selector){