From 0a74ab94a8ebc93a7624e0bef90dfd7d8024deaa Mon Sep 17 00:00:00 2001 From: Philip Häusler Date: Sun, 7 Dec 2014 17:07:19 +0100 Subject: add shift entry delete model --- includes/model/ShiftEntry_model.php | 12 +++++++++++- includes/model/Shifts_model.php | 1 + includes/pages/user_myshifts.php | 9 +++++---- includes/pages/user_shifts.php | 6 ++++-- 4 files changed, 21 insertions(+), 7 deletions(-) diff --git a/includes/model/ShiftEntry_model.php b/includes/model/ShiftEntry_model.php index 20d0946f..f84b312f 100644 --- a/includes/model/ShiftEntry_model.php +++ b/includes/model/ShiftEntry_model.php @@ -7,9 +7,12 @@ function ShiftEntries_freeleaded_count() { return sql_select_single_cell("SELECT COUNT(*) FROM `ShiftEntry` WHERE `freeloaded` = 1"); } +/** + * List users subsribed to a given shift. + */ function ShiftEntries_by_shift($shift_id) { return sql_select(" - SELECT `User`.`email`, `User`.`email_shiftinfo`, `User`.`Sprache`, `ShiftEntry`.`UID`, `ShiftEntry`.`TID`, `ShiftEntry`.`SID`, `AngelTypes`.`name` as `angel_type_name`, `ShiftEntry`.`Comment`, `ShiftEntry`.`freeloaded` + SELECT `User`.`Nick`, `User`.`email`, `User`.`email_shiftinfo`, `User`.`Sprache`, `ShiftEntry`.`UID`, `ShiftEntry`.`TID`, `ShiftEntry`.`SID`, `AngelTypes`.`name` as `angel_type_name`, `ShiftEntry`.`Comment`, `ShiftEntry`.`freeloaded` FROM `ShiftEntry` JOIN `User` ON `ShiftEntry`.`UID`=`User`.`UID` JOIN `AngelTypes` ON `ShiftEntry`.`TID`=`AngelTypes`.`id` @@ -31,6 +34,13 @@ function ShiftEntry_create($shift_entry) { `freeloaded`=" . sql_escape($shift_entry['freeloaded'] ? 'TRUE' : 'FALSE')); } +/** + * Delete a shift entry. + */ +function ShiftEntry_delete($shift_entry_id) { + return sql_query("DELETE FROM `ShiftEntry` WHERE `id`=" . sql_escape($shift_entry_id)); +} + /** * Returns next (or current) shifts of given user. * diff --git a/includes/model/Shifts_model.php b/includes/model/Shifts_model.php index 5d0ec4a2..c66cfb83 100644 --- a/includes/model/Shifts_model.php +++ b/includes/model/Shifts_model.php @@ -1,4 +1,5 @@ 0) { $shift = $shift[0]; if (($shift['start'] > time() + $LETZTES_AUSTRAGEN * 3600) || in_array('user_shifts_admin', $privileges)) { - sql_query("DELETE FROM `ShiftEntry` WHERE `id`=" . sql_escape($id) . " LIMIT 1"); - $msg .= success(_("You have been signed off from the shift."), true); + $result = ShiftEntry_delete($id); + if ($result === false) + engelsystem_error('Unable to delete shift entry.'); + success(_("You have been signed off from the shift.")); } else - $msg .= error(_("It's too late to sign yourself off the shift. If neccessary, ask the dispatcher to do so."), true); + error(_("It's too late to sign yourself off the shift. If neccessary, ask the dispatcher to do so.")); } else redirect(page_link_to('user_myshifts')); } - msg(); redirect(page_link_to('users') . '&action=view'); } ?> diff --git a/includes/pages/user_shifts.php b/includes/pages/user_shifts.php index ee8e3b19..07f10ea2 100644 --- a/includes/pages/user_shifts.php +++ b/includes/pages/user_shifts.php @@ -20,7 +20,10 @@ function user_shifts() { $shift_entry_source = sql_select("SELECT `User`.`Nick`, `ShiftEntry`.`Comment`, `ShiftEntry`.`UID`, `Shifts`.*, `Room`.`Name`, `AngelTypes`.`name` as `angel_type` FROM `ShiftEntry` JOIN `User` ON (`User`.`UID`=`ShiftEntry`.`UID`) JOIN `AngelTypes` ON (`ShiftEntry`.`TID` = `AngelTypes`.`id`) JOIN `Shifts` ON (`ShiftEntry`.`SID` = `Shifts`.`SID`) JOIN `Room` ON (`Shifts`.`RID` = `Room`.`RID`) WHERE `ShiftEntry`.`id`=" . sql_escape($entry_id) . " LIMIT 1"); if (count($shift_entry_source) > 0) { $shift_entry_source = $shift_entry_source[0]; - sql_query("DELETE FROM `ShiftEntry` WHERE `id`=" . sql_escape($entry_id) . " LIMIT 1"); + + $result = ShiftEntry_delete($entry_id); + if ($result === false) + engelsystem_error('Unable to delete shift entry.'); engelsystem_log("Deleted " . User_Nick_render($shift_entry_source) . "'s shift: " . $shift_entry_source['name'] . " at " . $shift_entry_source['Name'] . " from " . date("y-m-d H:i", $shift_entry_source['start']) . " to " . date("y-m-d H:i", $shift_entry_source['end']) . " as " . $shift_entry_source['angel_type']); success(_("Shift entry deleted.")); @@ -169,7 +172,6 @@ function user_shifts() { // Schicht löschen bestätigt if (isset($_REQUEST['delete'])) { - sql_query("DELETE FROM `ShiftEntry` WHERE `SID`=" . sql_escape($shift_id)); sql_query("DELETE FROM `NeededAngelTypes` WHERE `shift_id`=" . sql_escape($shift_id)); sql_query("DELETE FROM `Shifts` WHERE `SID`=" . sql_escape($shift_id) . " LIMIT 1"); -- cgit v1.2.3-54-g00ecf