Added dates to shiften

This commit is contained in:
2019-03-24 21:20:16 +01:00
parent e18bde2a33
commit fe80f6e04e

View File

@@ -1,27 +1,37 @@
<?php <?php
$monthTrans = ['jan' => 'Jan', 'feb' => 'Feb', 'mrt' => 'Mar', 'apr' => 'Apr', 'mei' => 'May', 'jun' => 'Jun', 'jul' => 'Jul', 'aug' => 'Aug', 'sep' => 'Sep',
'okt' => 'Oct', 'nov' => 'Nov', 'dec' => 'Dec'];
$worklist_url = 'https://old.wina.be/worklists'; $worklist_url = 'https://old.wina.be/worklists';
$worklistsData = file_get_contents($worklist_url); $worklistsData = file_get_contents($worklist_url);
preg_match_all('/href="\/worklists\/(\d*)">(.*?)<\/a>/s', $worklistsData, $lists); preg_match_all('/href="\/worklists\/(\d*)">(.*?)<\/a><\/td><td>.*?<\/td><td>(.*?)<\/td>/s', $worklistsData, $lists);
$worklists = []; $worklists = [];
foreach($lists[1] as $key => $list) { foreach($lists[1] as $key => $list) {
$worklists[$list] = $lists[2][$key];
$dateArr = explode(' ', substr($lists[3][$key], 3, 11) . substr($lists[3][$key], 16));
$dateArr[1] = $monthTrans[$dateArr[1]];
$date = \DateTimeImmutable::createFromFormat('d M Y H:i', implode(' ', $dateArr));
$worklists[$list] = [$lists[2][$key], $date];
} }
for($i = 0; $i < 2; $i++) { for($i = 0; $i < 2; $i++) {
$url = 'https://old.wina.be/worklists/past?page=' . $i; $url = 'https://old.wina.be/worklists/past?page=' . $i;
$worklistsData = file_get_contents($url); $worklistsData = file_get_contents($url);
preg_match_all('/href="\/worklists\/(\d*)">(.*?)<\/a>/s', $worklistsData, $lists); preg_match_all('/href="\/worklists\/(\d*)">(.*?)<\/a><\/td><td>.*?<\/td><td>(.*?)<\/td>/s', $worklistsData, $lists);
$dateArr = explode(' ', substr($lists[3][$key], 3, 11) . substr($lists[3][$key], 16));
$dateArr[1] = $monthTrans[$dateArr[1]];
$date = \DateTimeImmutable::createFromFormat('d M Y H:i', implode(' ', $dateArr));
foreach($lists[1] as $key => $list) { foreach($lists[1] as $key => $list) {
$worklists[$list] = $lists[2][$key]; $worklists[$list] = [$lists[2][$key], $date];
} }
} }
natsort($worklists);
$all_names = []; $all_names = [];
$totalShifted = 0; $totalShifted = 0;
$total = 0; $total = 0;
@@ -30,9 +40,6 @@ $checkedLists = [];
if (isset($_GET['worklist'])) { if (isset($_GET['worklist'])) {
$checkedLists = $_GET['worklist']; $checkedLists = $_GET['worklist'];
$monthTrans = ['jan' => 'Jan', 'feb' => 'Feb', 'mrt' => 'Mar', 'apr' => 'Apr', 'mei' => 'May', 'jun' => 'Jun', 'jul' => 'Jul', 'aug' => 'Aug', 'sep' => 'Sep',
'okt' => 'Oct', 'nov' => 'Nov', 'dec' => 'Dec'];
foreach ($checkedLists as $site) { foreach ($checkedLists as $site) {
$site = 'https://old.wina.be/worklists/' . $site; $site = 'https://old.wina.be/worklists/' . $site;
$data = file_get_contents($site); $data = file_get_contents($site);
@@ -69,7 +76,9 @@ if (isset($_GET['worklist'])) {
} }
} }
$avg = $totalShifted / count($all_names); $avg = 0;
if ($totalShifted !== 0 & count($all_names) !== 0)
$avg = $totalShifted / count($all_names);
?> ?>
@@ -96,7 +105,7 @@ $avg = $totalShifted / count($all_names);
<select name="worklist[]" class="selectpicker" data-style="btn-primary" data-live-search="true" multiple> <select name="worklist[]" class="selectpicker" data-style="btn-primary" data-live-search="true" multiple>
<?php <?php
foreach($worklists as $key => $list) { foreach($worklists as $key => $list) {
echo "<option " . (in_array($key, $checkedLists) ? "selected " : '') . "value='$key'>" . $list . "</option>"; echo "<option " . (in_array($key, $checkedLists) ? "selected " : '') . "value='$key'>" . $list[0] . ' ' . $list[1]->format('d/m/Y') . "</option>";
} }
?> ?>
</select> </select>
@@ -104,13 +113,12 @@ $avg = $totalShifted / count($all_names);
<?php <?php
if (count($checkedLists) > 0) { if (count($checkedLists) > 0) {
echo '<p>' . floor($totalShifted) . ' uur en ' . ($totalShifted - floor($totalShifted)) * 60 . ' minuten geshift!<br> echo '<p>' . floor($totalShifted) . ' uur ' . ($totalShifted - floor($totalShifted) > 0 ? ' en ' . ($totalShifted - floor($totalShifted)) * 60 . ' minuten' : '') . ' geshift!<br>
Gemiddeld: ' . floor($avg) . ' uur en ' . round(($avg - floor($avg)) * 60) . ' minuten<p>'; Gemiddeld: ' . floor($avg) . ' uur en ' . round(($avg - floor($avg)) * 60) . ' minuten<p>';
} }
?> ?>
</div> </div>
<div class="table-responsive"> <div class="table-responsive">
<table id="table" class="table"> <table id="table" class="table">
<thead> <thead>