summaryrefslogtreecommitdiff
path: root/includes/model/NeededAngelTypes_model.php
diff options
context:
space:
mode:
Diffstat (limited to 'includes/model/NeededAngelTypes_model.php')
-rw-r--r--includes/model/NeededAngelTypes_model.php138
1 files changed, 74 insertions, 64 deletions
diff --git a/includes/model/NeededAngelTypes_model.php b/includes/model/NeededAngelTypes_model.php
index 3bd3660f..97b085f0 100644
--- a/includes/model/NeededAngelTypes_model.php
+++ b/includes/model/NeededAngelTypes_model.php
@@ -1,5 +1,7 @@
<?php
+use Engelsystem\Database\DB;
+
/**
* Entity needed angeltypes describes how many angels of given type are needed for a shift or in a room.
*/
@@ -7,99 +9,107 @@
/**
* 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?
+ * @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?
+ * @return int|false
*/
-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();
+function NeededAngelType_add($shift_id, $angeltype_id, $room_id, $count)
+{
+ $result = DB::insert('
+ INSERT INTO `NeededAngelTypes` ( `shift_id`, `angel_type_id`, `room_id`, `count`)
+ VALUES (?, ?, ?, ?)
+ ',
+ [
+ $shift_id,
+ $angeltype_id,
+ $room_id,
+ $count,
+ ]);
+ if ($result === false) {
+ return false;
+ }
+
+ return DB::getPdo()->lastInsertId();
}
/**
* Deletes all needed angel types from given shift.
*
- * @param int $shift_id
- * id of the shift
+ * @param int $shift_id id of the shift
+ * @return int count of affected rows
*/
-function NeededAngelTypes_delete_by_shift($shift_id) {
- return sql_query("DELETE FROM `NeededAngelTypes` WHERE `shift_id`='" . sql_escape($shift_id) . "'");
+function NeededAngelTypes_delete_by_shift($shift_id)
+{
+ return (int)DB::delete('DELETE FROM `NeededAngelTypes` WHERE `shift_id` = ?', [$shift_id]);
}
/**
* Deletes all needed angel types from given room.
*
- * @param int $room_id
- * id of the room
+ * @param int $room_id id of the room
+ * @return int count of affected rows
*/
-function NeededAngelTypes_delete_by_room($room_id) {
- return sql_query("DELETE FROM `NeededAngelTypes` WHERE `room_id`='" . sql_escape($room_id) . "'");
+function NeededAngelTypes_delete_by_room($room_id)
+{
+ return (int)DB::delete(
+ 'DELETE FROM `NeededAngelTypes` WHERE `room_id` = ?',
+ [$room_id]
+ );
}
/**
* Returns all needed angeltypes and already taken needs.
*
- * @param int $shiftID
- * id of shift
+ * @param int $shiftId id of shift
+ * @return array
*/
-function NeededAngelTypes_by_shift($shiftId) {
- $needed_angeltypes_source = sql_select("
+function NeededAngelTypes_by_shift($shiftId)
+{
+ $needed_angeltypes_source = DB::select('
SELECT `NeededAngelTypes`.*, `AngelTypes`.`id`, `AngelTypes`.`name`, `AngelTypes`.`restricted`, `AngelTypes`.`no_self_signup`
FROM `NeededAngelTypes`
JOIN `AngelTypes` ON `AngelTypes`.`id` = `NeededAngelTypes`.`angel_type_id`
- WHERE `shift_id`='" . sql_escape($shiftId) . "'
+ WHERE `shift_id` = ?
AND `count` > 0
- ORDER BY `room_id` DESC
- ");
- if ($needed_angeltypes_source === false) {
- engelsystem_error("Unable to load needed angeltypes.");
- }
-
- // Use settings from room
- if (count($needed_angeltypes_source) == 0) {
- $needed_angeltypes_source = sql_select("
+ ORDER BY `room_id` DESC',
+ [$shiftId]
+ );
+ if (DB::getStm()->errorCode() != '00000') {
+ engelsystem_error('Unable to load needed angeltypes.');
+ }
+
+ // Use settings from room
+ if (count($needed_angeltypes_source) == 0) {
+ $needed_angeltypes_source = DB::select('
SELECT `NeededAngelTypes`.*, `AngelTypes`.`name`, `AngelTypes`.`restricted`
FROM `NeededAngelTypes`
JOIN `AngelTypes` ON `AngelTypes`.`id` = `NeededAngelTypes`.`angel_type_id`
JOIN `Shifts` ON `Shifts`.`RID` = `NeededAngelTypes`.`room_id`
- WHERE `Shifts`.`SID`='" . sql_escape($shiftId) . "'
+ WHERE `Shifts`.`SID` = ?
AND `count` > 0
ORDER BY `room_id` DESC
- ");
- if ($needed_angeltypes_source === false) {
- engelsystem_error("Unable to load needed angeltypes.");
+ ', [$shiftId]);
+ if (DB::getStm()->errorCode() != '00000') {
+ engelsystem_error('Unable to load needed angeltypes.');
+ }
}
- }
-
- $shift_entries = ShiftEntries_by_shift($shiftId);
- $needed_angeltypes = [];
- foreach ($needed_angeltypes_source as $angeltype) {
- $angeltype['shift_entries'] = [];
- $angeltype['taken'] = 0;
- foreach ($shift_entries as $shift_entry) {
- if ($shift_entry['TID'] == $angeltype['angel_type_id'] && $shift_entry['freeloaded'] == 0) {
- $angeltype['taken'] ++;
- $angeltype['shift_entries'][] = $shift_entry;
- }
+
+ $shift_entries = ShiftEntries_by_shift($shiftId);
+ $needed_angeltypes = [];
+ foreach ($needed_angeltypes_source as $angeltype) {
+ $angeltype['shift_entries'] = [];
+ $angeltype['taken'] = 0;
+ foreach ($shift_entries as $shift_entry) {
+ if ($shift_entry['TID'] == $angeltype['angel_type_id'] && $shift_entry['freeloaded'] == 0) {
+ $angeltype['taken']++;
+ $angeltype['shift_entries'][] = $shift_entry;
+ }
+ }
+
+ $needed_angeltypes[] = $angeltype;
}
-
- $needed_angeltypes[] = $angeltype;
- }
-
- return $needed_angeltypes;
-}
-?> \ No newline at end of file
+ return $needed_angeltypes;
+}