Config: Removed nightshifts query
This commit is contained in:
parent
0734807eef
commit
2a134e6c0b
|
@ -79,23 +79,13 @@ return [
|
|||
// local timezone
|
||||
'timezone' => env('TIMEZONE', 'Europe/Berlin'),
|
||||
|
||||
// weigh every shift the same
|
||||
//'shift_sum_formula' => 'SUM(`end` - `start`)',
|
||||
|
||||
// Multiply 'night shifts' and freeloaded shifts (start or end between 2 and 6 exclusive) by 2
|
||||
'shift_sum_formula' => '
|
||||
SUM(
|
||||
(1 +
|
||||
(
|
||||
(HOUR(FROM_UNIXTIME(`Shifts`.`end`)) > 2 AND HOUR(FROM_UNIXTIME(`Shifts`.`end`)) < 6)
|
||||
OR (HOUR(FROM_UNIXTIME(`Shifts`.`start`)) > 2 AND HOUR(FROM_UNIXTIME(`Shifts`.`start`)) < 6)
|
||||
OR (HOUR(FROM_UNIXTIME(`Shifts`.`start`)) <= 2 AND HOUR(FROM_UNIXTIME(`Shifts`.`end`)) >= 6)
|
||||
)
|
||||
)
|
||||
* (`Shifts`.`end` - `Shifts`.`start`)
|
||||
* (1 - 3 * `ShiftEntry`.`freeloaded`)
|
||||
)
|
||||
',
|
||||
'night_shifts' => [
|
||||
'enabled' => true, // Disable to weigh every shift the same
|
||||
'start' => 2,
|
||||
'end' => 6,
|
||||
'multiplier' => 2,
|
||||
],
|
||||
|
||||
// Voucher calculation
|
||||
'voucher_settings' => [
|
||||
|
@ -109,10 +99,10 @@ return [
|
|||
'en_US.UTF-8' => 'English',
|
||||
],
|
||||
|
||||
'default_locale' => env('DEFAULT_LOCALE', 'en_US.UTF-8'),
|
||||
'default_locale' => env('DEFAULT_LOCALE', 'en_US.UTF-8'),
|
||||
|
||||
// Available T-Shirt sizes, set value to null if not available
|
||||
'tshirt_sizes' => [
|
||||
'tshirt_sizes' => [
|
||||
'S' => 'S',
|
||||
'S-G' => 'S Girl',
|
||||
'M' => 'M',
|
||||
|
|
|
@ -128,17 +128,21 @@ function stats_angels_needed_three_hours()
|
|||
}
|
||||
|
||||
/**
|
||||
* Returns the number of needed angels for nightshifts (between 2 and 8)
|
||||
* Returns the number of needed angels for nightshifts (see config)
|
||||
*
|
||||
* @return int|string
|
||||
*/
|
||||
function stats_angels_needed_for_nightshifts()
|
||||
{
|
||||
$nightShiftsConfig = config('night_shifts');
|
||||
$nightStartTime = $nightShiftsConfig['start'];
|
||||
$nightEndTime = $nightShiftsConfig['end'];
|
||||
|
||||
$night_start = parse_date(
|
||||
'Y-m-d H:i',
|
||||
date('Y-m-d', time() + 12 * 60 * 60) . ' 02:00'
|
||||
date('Y-m-d', time() + 12 * 60 * 60) . ' ' . $nightStartTime . ':00'
|
||||
);
|
||||
$night_end = $night_start + 6 * 60 * 60;
|
||||
$night_end = $night_start + ($nightEndTime - $nightStartTime) * 60 * 60;
|
||||
$result = Db::selectOne("
|
||||
SELECT SUM(`count`) AS `count` FROM (
|
||||
SELECT
|
||||
|
|
|
@ -26,8 +26,7 @@ function User_delete($user_id)
|
|||
*/
|
||||
function User_tshirt_score($user)
|
||||
{
|
||||
$shift_sum_formula = config('shift_sum_formula');
|
||||
|
||||
$shift_sum_formula = User_get_shifts_sum_query();
|
||||
$result_shifts = DB::selectOne('
|
||||
SELECT ROUND((' . $shift_sum_formula . ') / 3600, 2) AS `tshirt_score`
|
||||
FROM `User` LEFT JOIN `ShiftEntry` ON `User`.`UID` = `ShiftEntry`.`UID`
|
||||
|
@ -530,3 +529,34 @@ function User_get_eligable_voucher_count(&$user)
|
|||
|
||||
return $eligable_vouchers;
|
||||
}
|
||||
|
||||
/**
|
||||
* Generates the query to sum night shifts
|
||||
*
|
||||
* @return string
|
||||
*/
|
||||
function User_get_shifts_sum_query()
|
||||
{
|
||||
$nightShifts = config('night_shifts');
|
||||
if (!$nightShifts['enabled']) {
|
||||
return 'SUM(`end` - `start`)';
|
||||
}
|
||||
|
||||
return sprintf('
|
||||
SUM(
|
||||
(1 +
|
||||
(
|
||||
(HOUR(FROM_UNIXTIME(`Shifts`.`end`)) > %1$d AND HOUR(FROM_UNIXTIME(`Shifts`.`end`)) < %2$d)
|
||||
OR (HOUR(FROM_UNIXTIME(`Shifts`.`start`)) > %1$d AND HOUR(FROM_UNIXTIME(`Shifts`.`start`)) < %2$d)
|
||||
OR (HOUR(FROM_UNIXTIME(`Shifts`.`start`)) <= %1$d AND HOUR(FROM_UNIXTIME(`Shifts`.`end`)) >= %2$d)
|
||||
)
|
||||
)
|
||||
* (`Shifts`.`end` - `Shifts`.`start`)
|
||||
* (1 - (%3$d + 1) * `ShiftEntry`.`freeloaded`)
|
||||
)
|
||||
',
|
||||
$nightShifts['start'],
|
||||
$nightShifts['end'],
|
||||
$nightShifts['multiplier']
|
||||
);
|
||||
}
|
||||
|
|
|
@ -16,7 +16,7 @@ function admin_active_title()
|
|||
function admin_active()
|
||||
{
|
||||
$tshirt_sizes = config('tshirt_sizes');
|
||||
$shift_sum_formula = config('shift_sum_formula');
|
||||
$shift_sum_formula = User_get_shifts_sum_query();
|
||||
$request = request();
|
||||
|
||||
$msg = '';
|
||||
|
|
|
@ -532,6 +532,7 @@ function User_view(
|
|||
$admin_user_worklog_privilege,
|
||||
$user_worklogs
|
||||
) {
|
||||
$nightShiftsConfig = config('night_shifts');
|
||||
$user_name = htmlspecialchars($user_source['Vorname']) . ' ' . htmlspecialchars($user_source['Name']);
|
||||
$myshifts_table = '';
|
||||
if ($its_me || $admin_user_privilege) {
|
||||
|
@ -619,8 +620,12 @@ function User_view(
|
|||
]),
|
||||
($its_me || $admin_user_privilege) ? '<h2>' . __('Shifts') . '</h2>' : '',
|
||||
$myshifts_table,
|
||||
$its_me ? info(
|
||||
glyph('info-sign') . __('Your night shifts between 2 and 8 am count twice.'),
|
||||
($its_me && $nightShiftsConfig['enabled']) ? info(
|
||||
glyph('info-sign') . sprintf(
|
||||
__('Your night shifts between %d and %d am count twice.'),
|
||||
$nightShiftsConfig['start'],
|
||||
$nightShiftsConfig['end']
|
||||
),
|
||||
true
|
||||
) : '',
|
||||
$its_me && count($shifts) == 0
|
||||
|
|
Binary file not shown.
|
@ -2,7 +2,7 @@ msgid ""
|
|||
msgstr ""
|
||||
"Project-Id-Version: Engelsystem 2.0\n"
|
||||
"POT-Creation-Date: 2017-12-29 19:01+0100\n"
|
||||
"PO-Revision-Date: 2018-08-27 22:26+0200\n"
|
||||
"PO-Revision-Date: 2018-09-17 12:10+0200\n"
|
||||
"Last-Translator: msquare <msquare@notrademark.de>\n"
|
||||
"Language-Team: \n"
|
||||
"Language: de_DE\n"
|
||||
|
@ -2768,8 +2768,9 @@ msgid "JSON Export"
|
|||
msgstr "JSON Export"
|
||||
|
||||
#: /Users/msquare/workspace/projects/engelsystem/includes/view/User_view.php:598
|
||||
msgid "Your night shifts between 2 and 8 am count twice."
|
||||
msgstr "Deine Nachtschichten zwischen 2 und 8 Uhr zählen doppelt."
|
||||
#, php-format
|
||||
msgid "Your night shifts between %d and %d am count twice."
|
||||
msgstr "Deine Nachtschichten zwischen %d und %d Uhr zählen doppelt."
|
||||
|
||||
#: /Users/msquare/workspace/projects/engelsystem/includes/view/User_view.php:603
|
||||
#, php-format
|
||||
|
|
Binary file not shown.
|
@ -2,7 +2,7 @@ msgid ""
|
|||
msgstr ""
|
||||
"Project-Id-Version: Engelsystem 2.0\n"
|
||||
"POT-Creation-Date: 2017-04-25 05:23+0200\n"
|
||||
"PO-Revision-Date: 2017-04-25 05:23+0200\n"
|
||||
"PO-Revision-Date: 2018-09-17 12:11+0200\n"
|
||||
"Last-Translator: samba <samba@autistici.org>\n"
|
||||
"Language-Team: \n"
|
||||
"Language: pt_BR\n"
|
||||
|
@ -2385,8 +2385,9 @@ msgid "Action"
|
|||
msgstr "Ação"
|
||||
|
||||
#: includes/view/User_view.php:373
|
||||
msgid "Your night shifts between 2 and 8 am count twice."
|
||||
msgstr "Os seus turnos noturnos entre 2h e 8h contam como dois."
|
||||
#, php-format
|
||||
msgid "Your night shifts between %d and %d am count twice."
|
||||
msgstr "Os seus turnos noturnos entre %dh e %dh contam como dois."
|
||||
|
||||
#: includes/view/User_view.php:374
|
||||
#, php-format
|
||||
|
|
Loading…
Reference in New Issue