engelsystem/includes/pages/admin_arrive.php

202 lines
6.6 KiB
PHP
Raw Normal View History

<?php
2015-07-12 14:45:58 +02:00
2013-11-25 21:04:58 +01:00
function admin_arrive_title() {
return _("Arrived angels");
}
function admin_arrive() {
2012-12-26 14:02:27 +01:00
$msg = "";
$search = "";
if (isset($_REQUEST['search'])) {
2012-12-26 14:02:27 +01:00
$search = strip_request_item('search');
}
2013-11-28 22:49:15 +01:00
if (isset($_REQUEST['reset']) && preg_match("/^[0-9]*$/", $_REQUEST['reset'])) {
2016-09-29 12:45:06 +02:00
$user_id = $_REQUEST['reset'];
$user_source = User($user_id);
2013-11-28 22:49:15 +01:00
if ($user_source != null) {
2016-09-29 12:45:06 +02:00
sql_query("UPDATE `User` SET `Gekommen`=0, `arrival_date` = NULL WHERE `UID`='" . sql_escape($user_id) . "' LIMIT 1");
engelsystem_log("User set to not arrived: " . User_Nick_render($user_source));
success(_("Reset done. Angel has not arrived."));
redirect(user_link($user_source));
} else {
2014-08-22 22:34:13 +02:00
$msg = error(_("Angel not found."), true);
}
2013-11-28 22:49:15 +01:00
} elseif (isset($_REQUEST['arrived']) && preg_match("/^[0-9]*$/", $_REQUEST['arrived'])) {
2016-09-29 12:45:06 +02:00
$user_id = $_REQUEST['arrived'];
$user_source = User($user_id);
2013-11-28 22:49:15 +01:00
if ($user_source != null) {
2016-09-29 12:45:06 +02:00
sql_query("UPDATE `User` SET `Gekommen`=1, `arrival_date`='" . time() . "' WHERE `UID`='" . sql_escape($user_id) . "' LIMIT 1");
engelsystem_log("User set has arrived: " . User_Nick_render($user_source));
success(_("Angel has been marked as arrived."));
redirect(user_link($user_source));
} else {
2014-08-22 22:34:13 +02:00
$msg = error(_("Angel not found."), true);
}
2012-12-26 14:02:27 +01:00
}
2013-11-28 22:49:15 +01:00
2012-12-26 14:02:27 +01:00
$users = sql_select("SELECT * FROM `User` ORDER BY `Nick`");
2015-08-15 14:54:25 +02:00
$arrival_count_at_day = [];
2015-08-16 23:08:02 +02:00
$planned_arrival_count_at_day = [];
$planned_departure_count_at_day = [];
2015-08-15 14:54:25 +02:00
$users_matched = [];
if ($search == "") {
2015-08-15 14:54:25 +02:00
$tokens = [];
} else {
2012-12-26 14:02:27 +01:00
$tokens = explode(" ", $search);
}
2012-12-26 14:02:27 +01:00
foreach ($users as $usr) {
if (count($tokens) > 0) {
$match = false;
2013-12-27 18:45:27 +01:00
$index = join(" ", $usr);
foreach ($tokens as $t) {
2012-12-27 14:24:05 +01:00
if (stristr($index, trim($t))) {
2013-11-28 22:49:15 +01:00
$match = true;
break;
}
}
if (! $match) {
2012-12-26 14:02:27 +01:00
continue;
}
2012-12-26 14:02:27 +01:00
}
2015-07-18 21:27:30 +02:00
2013-11-28 22:49:15 +01:00
$usr['nick'] = User_Nick_render($usr);
if ($usr['planned_departure_date'] != null) {
2015-08-15 14:54:25 +02:00
$usr['rendered_planned_departure_date'] = date('Y-m-d', $usr['planned_departure_date']);
} else {
2015-08-15 14:54:25 +02:00
$usr['rendered_planned_departure_date'] = '-';
}
2015-07-18 21:27:30 +02:00
$usr['rendered_planned_arrival_date'] = date('Y-m-d', $usr['planned_arrival_date']);
$usr['rendered_arrival_date'] = $usr['arrival_date'] > 0 ? date('Y-m-d', $usr['arrival_date']) : "-";
2013-11-28 22:49:15 +01:00
$usr['arrived'] = $usr['Gekommen'] == 1 ? _("yes") : "";
$usr['actions'] = $usr['Gekommen'] == 1 ? '<a href="' . page_link_to('admin_arrive') . '&reset=' . $usr['UID'] . '&search=' . $search . '">' . _("reset") . '</a>' : '<a href="' . page_link_to('admin_arrive') . '&arrived=' . $usr['UID'] . '&search=' . $search . '">' . _("arrived") . '</a>';
2015-07-18 21:27:30 +02:00
2015-08-16 23:08:02 +02:00
if ($usr['arrival_date'] > 0) {
$day = date('Y-m-d', $usr['arrival_date']);
if (! isset($arrival_count_at_day[$day])) {
2015-08-15 14:54:25 +02:00
$arrival_count_at_day[$day] = 0;
}
2015-08-16 23:08:02 +02:00
$arrival_count_at_day[$day] ++;
}
if ($usr['planned_arrival_date'] != null) {
$day = date('Y-m-d', $usr['planned_arrival_date']);
if (! isset($planned_arrival_count_at_day[$day])) {
2015-08-16 23:08:02 +02:00
$planned_arrival_count_at_day[$day] = 0;
}
2015-08-16 23:08:02 +02:00
$planned_arrival_count_at_day[$day] ++;
}
if ($usr['planned_departure_date'] != null && $usr['Gekommen'] == 1) {
$day = date('Y-m-d', $usr['planned_departure_date']);
if (! isset($planned_departure_count_at_day[$day])) {
2015-08-16 23:08:02 +02:00
$planned_departure_count_at_day[$day] = 0;
}
2015-08-16 23:08:02 +02:00
$planned_departure_count_at_day[$day] ++;
2015-08-15 14:54:25 +02:00
}
2013-11-28 22:49:15 +01:00
$users_matched[] = $usr;
2012-12-26 14:02:27 +01:00
}
2015-08-16 23:08:02 +02:00
2015-07-18 21:27:30 +02:00
ksort($arrival_count_at_day);
2015-08-16 23:08:02 +02:00
ksort($planned_arrival_count_at_day);
ksort($planned_departure_count_at_day);
2015-07-18 21:27:30 +02:00
2015-08-16 23:08:02 +02:00
$arrival_at_day = [];
2015-07-18 21:27:30 +02:00
$arrival_sum = 0;
foreach ($arrival_count_at_day as $day => $count) {
2015-08-16 23:08:02 +02:00
$arrival_sum += $count;
$arrival_at_day[$day] = [
2015-07-18 21:27:30 +02:00
'day' => $day,
'count' => $count,
2015-08-16 23:08:02 +02:00
'sum' => $arrival_sum
];
}
2016-08-21 18:00:24 +02:00
$planned_arrival_at_day = [];
2015-08-16 23:08:02 +02:00
$planned_arrival_sum = 0;
2015-08-16 23:32:39 +02:00
foreach ($planned_arrival_count_at_day as $day => $count) {
2015-08-16 23:08:02 +02:00
$planned_arrival_sum += $count;
$planned_arrival_at_day[$day] = [
'day' => $day,
'count' => $count,
'sum' => $planned_arrival_sum
];
}
$planned_departure_at_day = [];
$planned_departure_sum = 0;
foreach ($planned_departure_count_at_day as $day => $count) {
$planned_departure_sum += $count;
$planned_departure_at_day[$day] = [
'day' => $day,
'count' => $count,
'sum' => $planned_departure_sum
2015-08-15 14:54:25 +02:00
];
2015-07-18 21:27:30 +02:00
}
return page_with_title(admin_arrive_title(), [
2013-11-28 22:49:15 +01:00
msg(),
form([
2013-11-28 22:49:15 +01:00
form_text('search', _("Search"), $search),
form_submit('submit', _("Search"))
]),
table([
2013-11-28 22:49:15 +01:00
'nick' => _("Nickname"),
2015-08-15 14:54:25 +02:00
'rendered_planned_arrival_date' => _("Planned arrival"),
2013-11-28 22:49:15 +01:00
'arrived' => _("Arrived?"),
2015-07-18 21:27:30 +02:00
'rendered_arrival_date' => _("Arrival date"),
2015-08-15 14:54:25 +02:00
'rendered_planned_departure_date' => _("Planned departure"),
2013-11-28 22:49:15 +01:00
'actions' => ""
], $users_matched),
2015-08-16 23:08:02 +02:00
div('row', [
div('col-md-4', [
heading(_("Planned arrival statistics"), 2),
bargraph('planned_arrives', 'day', [
'count' => _("arrived"),
'sum' => _("arrived sum")
], [
'count' => '#090',
'sum' => '#888'
], $planned_arrival_at_day),
table([
'day' => _("Date"),
'count' => _("Count"),
'sum' => _("Sum")
], $planned_arrival_at_day)
]),
div('col-md-4', [
heading(_("Arrival statistics"), 2),
bargraph('arrives', 'day', [
'count' => _("arrived"),
'sum' => _("arrived sum")
], [
'count' => '#090',
'sum' => '#888'
], $arrival_at_day),
table([
'day' => _("Date"),
'count' => _("Count"),
'sum' => _("Sum")
], $arrival_at_day)
]),
div('col-md-4', [
heading(_("Planned departure statistics"), 2),
bargraph('planned_departures', 'day', [
'count' => _("arrived"),
'sum' => _("arrived sum")
], [
'count' => '#090',
'sum' => '#888'
], $planned_departure_at_day),
table([
'day' => _("Date"),
'count' => _("Count"),
'sum' => _("Sum")
], $planned_departure_at_day)
])
])
]);
}
2012-12-27 14:24:05 +01:00
?>