diff options
author | msquare <msquare@notrademark.de> | 2016-11-09 17:43:56 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2016-11-09 17:43:56 +0100 |
commit | d43eb41d25d0d5c0509417247030dd6c21118cf6 (patch) | |
tree | 2c3f78bf8fbd4215e70af7dbc2ce30cfef674816 /includes/model/NeededAngelTypes_model.php | |
parent | d5d2acc7d80920eef5f0ed779a3738a12d5db348 (diff) | |
parent | 22520532c78b3a032aec6ececb7623ba094da8de (diff) |
Merge pull request #274 from engelsystem/task-164-shift-view
Task 164 shift view
Diffstat (limited to 'includes/model/NeededAngelTypes_model.php')
-rw-r--r-- | includes/model/NeededAngelTypes_model.php | 62 |
1 files changed, 55 insertions, 7 deletions
diff --git a/includes/model/NeededAngelTypes_model.php b/includes/model/NeededAngelTypes_model.php index 96ceca83..48f8ed20 100644 --- a/includes/model/NeededAngelTypes_model.php +++ b/includes/model/NeededAngelTypes_model.php @@ -1,13 +1,63 @@ <?php /** + * Entity needed angeltypes describes how many angels of given type are needed for a shift or in a room. + */ + +/** + * Insert a new needed angel type. + * + * @param int $shift_id + * The shift. Can be null, but then a room_id must be given. + * @param int $angeltype_id + * The angeltype + * @param int $room_id + * The room. Can be null, but then a shift_id must be given. + * @param int $count + * How many angels are needed? + */ +function NeededAngelType_add($shift_id, $angeltype_id, $room_id, $count) { + $result = sql_query(" + INSERT INTO `NeededAngelTypes` SET + `shift_id`=" . sql_null($shift_id) . ", + `angel_type_id`='" . sql_escape($angeltype_id) . "', + `room_id`=" . sql_null($room_id) . ", + `count`='" . sql_escape($count) . "'"); + if ($result === false) { + return false; + } + return sql_id(); +} + +/** + * Deletes all needed angel types from given shift. + * + * @param int $shift_id + * id of the shift + */ +function NeededAngelTypes_delete_by_shift($shift_id) { + return sql_query("DELETE FROM `NeededAngelTypes` WHERE `shift_id`='" . sql_escape($shift_id) . "'"); +} + +/** + * Deletes all needed angel types from given room. + * + * @param int $room_id + * id of the room + */ +function NeededAngelTypes_delete_by_room($room_id) { + return sql_query("DELETE FROM `NeededAngelTypes` WHERE `room_id`='" . sql_escape($room_id) . "'"); +} + +/** * Returns all needed angeltypes and already taken needs. * - * @param shiftID id of shift + * @param int $shiftID + * id of shift */ function NeededAngelTypes_by_shift($shiftId) { $needed_angeltypes_source = sql_select(" - SELECT `NeededAngelTypes`.*, `AngelTypes`.`name`, `AngelTypes`.`restricted` + SELECT `NeededAngelTypes`.*, `AngelTypes`.`id`, `AngelTypes`.`name`, `AngelTypes`.`restricted` FROM `NeededAngelTypes` JOIN `AngelTypes` ON `AngelTypes`.`id` = `NeededAngelTypes`.`angel_type_id` WHERE `shift_id`='" . sql_escape($shiftId) . "' @@ -15,7 +65,7 @@ function NeededAngelTypes_by_shift($shiftId) { ORDER BY `room_id` DESC "); if ($needed_angeltypes_source === false) { - return false; + engelsystem_error("Unable to load needed angeltypes."); } // Use settings from room @@ -30,18 +80,16 @@ function NeededAngelTypes_by_shift($shiftId) { ORDER BY `room_id` DESC "); if ($needed_angeltypes_source === false) { - return false; + engelsystem_error("Unable to load needed angeltypes."); } } $needed_angeltypes = []; foreach ($needed_angeltypes_source as $angeltype) { $shift_entries = ShiftEntries_by_shift_and_angeltype($shiftId, $angeltype['angel_type_id']); - if ($shift_entries === false) { - return false; - } $angeltype['taken'] = count($shift_entries); + $angeltype['shift_entries'] = $shift_entries; $needed_angeltypes[] = $angeltype; } |