integrate shift type into shifts
This commit is contained in:
parent
634a3739b2
commit
a791a75b0a
|
@ -11,6 +11,13 @@ ALTER TABLE `ShiftTypes` ADD FOREIGN KEY ( `angeltype_id` ) REFERENCES `engelsys
|
|||
INSERT INTO `engelsystem`.`Privileges` (`id`, `name`, `desc`) VALUES (NULL , 'shifttypes', 'Administrate shift types');
|
||||
INSERT INTO `GroupPrivileges` SET `group_id`=-5, `privilege_id`=(SELECT `id` FROM `Privileges` WHERE `name`='shifttypes');
|
||||
|
||||
ALTER TABLE `Shifts` ADD `shifttype_id` INT NOT NULL AFTER `SID`, ADD INDEX ( `shifttype_id` );
|
||||
INSERT INTO `ShiftTypes` SELECT DISTINCT NULL , `name` , NULL , '' FROM `Shifts`;
|
||||
UPDATE `Shifts` SET `shifttype_id`=(SELECT `id` FROM `ShiftTypes` WHERE `ShiftTypes`.`name`=`Shifts`.`name`);
|
||||
ALTER TABLE `Shifts` DROP `name`;
|
||||
ALTER TABLE `Shifts` ADD FOREIGN KEY ( `shifttype_id` ) REFERENCES `engelsystem`.`ShiftTypes` (`id`) ON DELETE CASCADE ON UPDATE CASCADE;
|
||||
ALTER TABLE `Shifts` ADD `title` TEXT NULL AFTER `SID`;
|
||||
|
||||
/* cleanup */
|
||||
ALTER TABLE `User` DROP `ICQ` ;
|
||||
|
||||
|
|
|
@ -48,7 +48,14 @@ function shifts_json_export_controller() {
|
|||
require_once realpath(__DIR__ . '/../pages/user_shifts.php');
|
||||
view_user_shifts();
|
||||
} else {
|
||||
$ical_shifts = sql_select("SELECT `Shifts`.*, `Room`.`Name` as `room_name` FROM `ShiftEntry` INNER JOIN `Shifts` ON (`ShiftEntry`.`SID` = `Shifts`.`SID`) INNER JOIN `Room` ON (`Shifts`.`RID` = `Room`.`RID`) WHERE `UID`=" . sql_escape($user['UID']) . " ORDER BY `start`");
|
||||
$ical_shifts = sql_select("
|
||||
SELECT `ShiftTypes`.`name`, `Shifts`.*, `Room`.`Name` as `room_name`
|
||||
FROM `ShiftEntry`
|
||||
INNER JOIN `Shifts` ON (`ShiftEntry`.`SID` = `Shifts`.`SID`)
|
||||
INNER JOIN `ShiftTypes` ON (`Shifts`.`shifttype_id`=`ShiftTypes`.`id`)
|
||||
INNER JOIN `Room` ON (`Shifts`.`RID` = `Room`.`RID`)
|
||||
WHERE `UID`=" . sql_escape($user['UID']) . "
|
||||
ORDER BY `start`");
|
||||
}
|
||||
|
||||
header("Content-Type: application/json; charset=utf-8");
|
||||
|
|
|
@ -76,7 +76,8 @@ function ShiftEntries_upcoming_for_user($user) {
|
|||
return sql_select("
|
||||
SELECT *
|
||||
FROM `ShiftEntry`
|
||||
JOIN `Shifts` ON `Shifts`.`SID`=`ShiftEntry`.`SID`
|
||||
JOIN `Shifts` ON (`Shifts`.`SID` = `ShiftEntry`.`SID`)
|
||||
JOIN `ShiftTypes` ON `ShiftTypes`.`id` = `Shifts`.`shifttype_id`
|
||||
WHERE `ShiftEntry`.`UID`=" . sql_escape($user['UID']) . "
|
||||
AND `Shifts`.`end` > " . sql_escape(time()) . "
|
||||
ORDER BY `Shifts`.`end`
|
||||
|
|
|
@ -12,7 +12,7 @@ function Shift_delete_by_psid($shift_psid) {
|
|||
*/
|
||||
function Shift_delete($shift_id) {
|
||||
mail_shift_delete(Shift($shift_id));
|
||||
|
||||
|
||||
return sql_query("DELETE FROM `Shifts` WHERE `SID`=" . sql_escape($shift_id));
|
||||
}
|
||||
|
||||
|
@ -22,12 +22,13 @@ function Shift_delete($shift_id) {
|
|||
function Shift_update($shift) {
|
||||
$old_shift = Shift($shift['SID']);
|
||||
mail_shift_change(Shift($shift['SID']), $shift);
|
||||
|
||||
|
||||
return sql_query("UPDATE `Shifts` SET
|
||||
`shifttype_id`=" . sql_escape($shift['shifttype_id']) . ",
|
||||
`start`=" . sql_escape($shift['start']) . ",
|
||||
`end`=" . sql_escape($shift['end']) . ",
|
||||
`RID`=" . sql_escape($shift['RID']) . ",
|
||||
`name`=" . sql_null($shift['name']) . ",
|
||||
`title`=" . sql_null($shift['title']) . ",
|
||||
`URL`=" . sql_null($shift['URL']) . ",
|
||||
`PSID`=" . sql_null($shift['PSID']) . "
|
||||
WHERE `SID`=" . sql_escape($shift['SID']));
|
||||
|
@ -53,10 +54,11 @@ function Shift_update_by_psid($shift) {
|
|||
*/
|
||||
function Shift_create($shift) {
|
||||
$result = sql_query("INSERT INTO `Shifts` SET
|
||||
`shifttype_id`=" . sql_escape($shift['shifttype_id']) . ",
|
||||
`start`=" . sql_escape($shift['start']) . ",
|
||||
`end`=" . sql_escape($shift['end']) . ",
|
||||
`RID`=" . sql_escape($shift['RID']) . ",
|
||||
`name`=" . sql_null($shift['name']) . ",
|
||||
`title`=" . sql_null($shift['title']) . ",
|
||||
`URL`=" . sql_null($shift['URL']) . ",
|
||||
`PSID`=" . sql_null($shift['PSID']));
|
||||
if ($result === false)
|
||||
|
@ -72,6 +74,7 @@ function Shifts_by_user($user) {
|
|||
SELECT *
|
||||
FROM `ShiftEntry`
|
||||
JOIN `Shifts` ON (`ShiftEntry`.`SID` = `Shifts`.`SID`)
|
||||
JOIN `ShiftTypes` ON (`ShiftTypes`.`id` = `Shifts`.`shifttype_id`)
|
||||
JOIN `Room` ON (`Shifts`.`RID` = `Room`.`RID`)
|
||||
WHERE `UID`=" . sql_escape($user['UID']) . "
|
||||
ORDER BY `start`
|
||||
|
@ -130,7 +133,11 @@ function Shifts_filtered() {
|
|||
* ID
|
||||
*/
|
||||
function Shift($id) {
|
||||
$shifts_source = sql_select("SELECT * FROM `Shifts` WHERE `SID`=" . sql_escape($id) . " LIMIT 1");
|
||||
$shifts_source = sql_select("
|
||||
SELECT `Shifts`.*, `ShiftTypes`.`name`
|
||||
FROM `Shifts`
|
||||
JOIN `ShiftTypes` ON (`ShiftTypes`.`id` = `Shifts`.`shifttype_id`)
|
||||
WHERE `SID`=" . sql_escape($id));
|
||||
$shiftsEntry_source = sql_select("SELECT `TID` , `UID` , `freeloaded` FROM `ShiftEntry` WHERE `SID`=" . sql_escape($id));
|
||||
|
||||
if ($shifts_source === false)
|
||||
|
@ -160,8 +167,9 @@ function Shift($id) {
|
|||
*/
|
||||
function Shifts() {
|
||||
$shifts_source = sql_select("
|
||||
SELECT `Shifts`.*, `Room`.`RID`, `Room`.`Name` as `room_name`
|
||||
SELECT `ShiftTypes`.`name`, `Shifts`.*, `Room`.`RID`, `Room`.`Name` as `room_name`
|
||||
FROM `Shifts`
|
||||
JOIN `ShiftTypes` ON (`ShiftTypes`.`id` = `Shifts`.`shifttype_id`)
|
||||
JOIN `Room` ON `Room`.`RID` = `Shifts`.`RID`
|
||||
");
|
||||
if ($shifts_source === false)
|
||||
|
|
|
@ -32,7 +32,14 @@ function admin_active() {
|
|||
$limit = " LIMIT " . $count;
|
||||
if (isset($_REQUEST['ack'])) {
|
||||
sql_query("UPDATE `User` SET `Aktiv` = 0 WHERE `Tshirt` = 0");
|
||||
$users = sql_select("SELECT `User`.*, COUNT(`ShiftEntry`.`id`) as `shift_count`, ${shift_sum_formula} as `shift_length` FROM `User` LEFT JOIN `ShiftEntry` ON `User`.`UID` = `ShiftEntry`.`UID` LEFT JOIN `Shifts` ON `ShiftEntry`.`SID` = `Shifts`.`SID` WHERE `User`.`Gekommen` = 1 AND `User`.`force_active`=0 GROUP BY `User`.`UID` ORDER BY `force_active` DESC, `shift_length` DESC" . $limit);
|
||||
$users = sql_select("
|
||||
SELECT `User`.*, COUNT(`ShiftEntry`.`id`) as `shift_count`, ${shift_sum_formula} as `shift_length`
|
||||
FROM `User`
|
||||
LEFT JOIN `ShiftEntry` ON `User`.`UID` = `ShiftEntry`.`UID`
|
||||
LEFT JOIN `Shifts` ON `ShiftEntry`.`SID` = `Shifts`.`SID`
|
||||
WHERE `User`.`Gekommen` = 1 AND `User`.`force_active`=0
|
||||
GROUP BY `User`.`UID`
|
||||
ORDER BY `force_active` DESC, `shift_length` DESC" . $limit);
|
||||
$user_nicks = array();
|
||||
foreach ($users as $usr) {
|
||||
sql_query("UPDATE `User` SET `Aktiv` = 1 WHERE `UID`=" . sql_escape($usr['UID']));
|
||||
|
@ -85,7 +92,13 @@ function admin_active() {
|
|||
$msg = error(_("Angel not found."), true);
|
||||
}
|
||||
|
||||
$users = sql_select("SELECT `User`.*, COUNT(`ShiftEntry`.`id`) as `shift_count`, ${shift_sum_formula} as `shift_length` FROM `User` LEFT JOIN `ShiftEntry` ON `User`.`UID` = `ShiftEntry`.`UID` LEFT JOIN `Shifts` ON `ShiftEntry`.`SID` = `Shifts`.`SID` WHERE `User`.`Gekommen` = 1 GROUP BY `User`.`UID` ORDER BY `force_active` DESC, `shift_length` DESC" . $limit);
|
||||
$users = sql_select("
|
||||
SELECT `User`.*, COUNT(`ShiftEntry`.`id`) as `shift_count`, ${shift_sum_formula} as `shift_length`
|
||||
FROM `User` LEFT JOIN `ShiftEntry` ON `User`.`UID` = `ShiftEntry`.`UID`
|
||||
LEFT JOIN `Shifts` ON `ShiftEntry`.`SID` = `Shifts`.`SID`
|
||||
WHERE `User`.`Gekommen` = 1
|
||||
GROUP BY `User`.`UID`
|
||||
ORDER BY `force_active` DESC, `shift_length` DESC" . $limit);
|
||||
|
||||
$matched_users = array();
|
||||
if ($search == "")
|
||||
|
|
|
@ -27,7 +27,15 @@ function admin_free() {
|
|||
foreach ($angel_types_source as $angel_type)
|
||||
$angel_types[$angel_type['id']] = $angel_type['name'];
|
||||
|
||||
$users = sql_select("SELECT `User`.* FROM `User` ${angeltypesearch} LEFT JOIN `ShiftEntry` ON `User`.`UID` = `ShiftEntry`.`UID` LEFT JOIN `Shifts` ON (`ShiftEntry`.`SID` = `Shifts`.`SID` AND `Shifts`.`start` < " . sql_escape(time()) . " AND `Shifts`.`end` > " . sql_escape(time()) . ") WHERE `User`.`Gekommen` = 1 AND `Shifts`.`SID` IS NULL GROUP BY `User`.`UID` ORDER BY `Nick`");
|
||||
$users = sql_select("
|
||||
SELECT `User`.*
|
||||
FROM `User`
|
||||
${angeltypesearch}
|
||||
LEFT JOIN `ShiftEntry` ON `User`.`UID` = `ShiftEntry`.`UID`
|
||||
LEFT JOIN `Shifts` ON (`ShiftEntry`.`SID` = `Shifts`.`SID` AND `Shifts`.`start` < " . sql_escape(time()) . " AND `Shifts`.`end` > " . sql_escape(time()) . ")
|
||||
WHERE `User`.`Gekommen` = 1 AND `Shifts`.`SID` IS NULL
|
||||
GROUP BY `User`.`UID`
|
||||
ORDER BY `Nick`");
|
||||
|
||||
$free_users_table = array();
|
||||
if ($search == "")
|
||||
|
|
|
@ -22,7 +22,14 @@ function user_ical() {
|
|||
require_once realpath(__DIR__ . '/user_shifts.php');
|
||||
view_user_shifts();
|
||||
} else {
|
||||
$ical_shifts = sql_select("SELECT `Shifts`.*, `Room`.`Name` as `room_name` FROM `ShiftEntry` INNER JOIN `Shifts` ON (`ShiftEntry`.`SID` = `Shifts`.`SID`) INNER JOIN `Room` ON (`Shifts`.`RID` = `Room`.`RID`) WHERE `UID`=" . sql_escape($user['UID']) . " ORDER BY `start`");
|
||||
$ical_shifts = sql_select("
|
||||
SELECT `ShiftTypes`.`name`, `Shifts`.*, `Room`.`Name` as `room_name`
|
||||
FROM `ShiftEntry`
|
||||
INNER JOIN `Shifts` ON (`ShiftEntry`.`SID` = `Shifts`.`SID`)
|
||||
JOIN `ShiftTypes` ON (`ShiftTypes`.`id` = `Shifts`.`shifttype_id`)
|
||||
INNER JOIN `Room` ON (`Shifts`.`RID` = `Room`.`RID`)
|
||||
WHERE `UID`=" . sql_escape($user['UID']) . "
|
||||
ORDER BY `start`");
|
||||
}
|
||||
|
||||
header("Content-Type: text/calendar; charset=utf-8");
|
||||
|
|
|
@ -35,12 +35,14 @@ function user_myshifts() {
|
|||
`ShiftEntry`.`freeload_comment`,
|
||||
`ShiftEntry`.`Comment`,
|
||||
`ShiftEntry`.`UID`,
|
||||
`ShiftTypes`.`name`,
|
||||
`Shifts`.*,
|
||||
`Room`.`Name`,
|
||||
`AngelTypes`.`name` as `angel_type`
|
||||
FROM `ShiftEntry`
|
||||
JOIN `AngelTypes` ON (`ShiftEntry`.`TID` = `AngelTypes`.`id`)
|
||||
JOIN `Shifts` ON (`ShiftEntry`.`SID` = `Shifts`.`SID`)
|
||||
JOIN `ShiftTypes` ON (`ShiftTypes`.`id` = `Shifts`.`shifttype_id`)
|
||||
JOIN `Room` ON (`Shifts`.`RID` = `Room`.`RID`)
|
||||
WHERE `ShiftEntry`.`id`=" . sql_escape($id) . "
|
||||
AND `UID`=" . sql_escape($shifts_user['UID']) . " LIMIT 1");
|
||||
|
@ -76,7 +78,11 @@ function user_myshifts() {
|
|||
redirect(page_link_to('user_myshifts'));
|
||||
} elseif (isset($_REQUEST['cancel']) && preg_match("/^[0-9]*$/", $_REQUEST['cancel'])) {
|
||||
$id = $_REQUEST['cancel'];
|
||||
$shift = sql_select("SELECT `Shifts`.`start` FROM `Shifts` INNER JOIN `ShiftEntry` USING (`SID`) WHERE `ShiftEntry`.`id`=" . sql_escape($id) . " AND `UID`=" . sql_escape($shifts_user['UID']) . " LIMIT 1");
|
||||
$shift = sql_select("
|
||||
SELECT `Shifts`.`start`
|
||||
FROM `Shifts`
|
||||
INNER JOIN `ShiftEntry` USING (`SID`)
|
||||
WHERE `ShiftEntry`.`id`=" . sql_escape($id) . " AND `UID`=" . sql_escape($shifts_user['UID']));
|
||||
if (count($shift) > 0) {
|
||||
$shift = $shift[0];
|
||||
if (($shift['start'] > time() + $LETZTES_AUSTRAGEN * 3600) || in_array('user_shifts_admin', $privileges)) {
|
||||
|
|
|
@ -17,7 +17,15 @@ function user_shifts() {
|
|||
else
|
||||
redirect(page_link_to('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");
|
||||
$shift_entry_source = sql_select("
|
||||
SELECT `User`.`Nick`, `ShiftEntry`.`Comment`, `ShiftEntry`.`UID`, `ShiftTypes`.`name`, `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 `ShiftTypes` ON (`ShiftTypes`.`id` = `Shifts`.`shifttype_id`)
|
||||
JOIN `Room` ON (`Shifts`.`RID` = `Room`.`RID`)
|
||||
WHERE `ShiftEntry`.`id`=" . sql_escape($entry_id));
|
||||
if (count($shift_entry_source) > 0) {
|
||||
$shift_entry_source = $shift_entry_source[0];
|
||||
|
||||
|
@ -44,7 +52,11 @@ function user_shifts() {
|
|||
* if (sql_num_query("SELECT * FROM `ShiftEntry` WHERE `SID`=" . sql_escape($shift_id) . " LIMIT 1") > 0) { error("Du kannst nur Schichten bearbeiten, bei denen niemand eingetragen ist."); redirect(page_link_to('user_shift')); }
|
||||
*/
|
||||
|
||||
$shift = sql_select("SELECT * FROM `Shifts` JOIN `Room` ON (`Shifts`.`RID` = `Room`.`RID`) WHERE `SID`=" . sql_escape($shift_id) . " LIMIT 1");
|
||||
$shift = sql_select("
|
||||
SELECT `ShiftTypes`.`name`, `Shifts`.*, `Room`.* FROM `Shifts`
|
||||
JOIN `Room` ON (`Shifts`.`RID` = `Room`.`RID`)
|
||||
JOIN `ShiftTypes` ON (`ShiftTypes`.`id` = `Shifts`.`shifttype_id`)
|
||||
WHERE `SID`=" . sql_escape($shift_id));
|
||||
if (count($shift) == 0)
|
||||
redirect(page_link_to('user_shifts'));
|
||||
$shift = $shift[0];
|
||||
|
@ -171,7 +183,12 @@ function user_shifts() {
|
|||
else
|
||||
redirect(page_link_to('user_shifts'));
|
||||
|
||||
$shift = sql_select("SELECT * FROM `Shifts` JOIN `Room` ON (`Shifts`.`RID` = `Room`.`RID`) WHERE `SID`=" . sql_escape($shift_id) . " LIMIT 1");
|
||||
$shift = sql_select("
|
||||
SELECT `Shifts`.*, `ShiftTypes`.`name`, `Room`.*
|
||||
FROM `Shifts`
|
||||
JOIN `Room` ON (`Shifts`.`RID` = `Room`.`RID`)
|
||||
JOIN `ShiftTypes` ON (`ShiftTypes`.`id` = `Shifts`.`shifttype_id`)
|
||||
WHERE `SID`=" . sql_escape($shift_id));
|
||||
if (count($shift) == 0)
|
||||
redirect(page_link_to('user_shifts'));
|
||||
$shift = $shift[0];
|
||||
|
@ -197,7 +214,12 @@ function user_shifts() {
|
|||
else
|
||||
redirect(page_link_to('user_shifts'));
|
||||
|
||||
$shift = sql_select("SELECT * FROM `Shifts` JOIN `Room` ON (`Shifts`.`RID` = `Room`.`RID`) WHERE `SID`=" . sql_escape($shift_id) . " LIMIT 1");
|
||||
$shift = sql_select("
|
||||
SELECT `ShiftTypes`.`name`, `Shifts`.*, `Room`.*
|
||||
FROM `Shifts`
|
||||
JOIN `Room` ON (`Shifts`.`RID` = `Room`.`RID`)
|
||||
JOIN `ShiftTypes` ON (`ShiftTypes`.`id` = `Shifts`.`shifttype_id`)
|
||||
WHERE `SID`=" . sql_escape($shift_id));
|
||||
if (count($shift) == 0)
|
||||
redirect(page_link_to('user_shifts'));
|
||||
$shift = $shift[0];
|
||||
|
@ -214,7 +236,11 @@ function user_shifts() {
|
|||
}
|
||||
|
||||
// Another shift the user is signed up for collides with this one
|
||||
if (! in_array('user_shifts_admin', $privileges) && sql_num_query("SELECT `Shifts`.`SID` FROM `Shifts` INNER JOIN `ShiftEntry` ON (`Shifts`.`SID` = `ShiftEntry`.`SID` AND `ShiftEntry`.`UID` = " . sql_escape($user['UID']) . ") WHERE `start` < '" . sql_escape($shift['end']) . "' AND `end` > '" . sql_escape($shift['start']) . "'") > 0) {
|
||||
if (! in_array('user_shifts_admin', $privileges) && sql_num_query("
|
||||
SELECT `Shifts`.`SID`
|
||||
FROM `Shifts`
|
||||
INNER JOIN `ShiftEntry` ON (`Shifts`.`SID` = `ShiftEntry`.`SID` AND `ShiftEntry`.`UID` = " . sql_escape($user['UID']) . ")
|
||||
WHERE `start` < '" . sql_escape($shift['end']) . "' AND `end` > '" . sql_escape($shift['start']) . "'") > 0) {
|
||||
error(_("You already subscribed to shift in the same timeslot. Please contact a dispatcher to join the shift."));
|
||||
redirect(page_link_to('user_shifts'));
|
||||
}
|
||||
|
@ -304,7 +330,10 @@ function view_user_shifts() {
|
|||
global $ical_shifts;
|
||||
|
||||
$ical_shifts = array();
|
||||
$days = sql_select_single_col("SELECT DISTINCT DATE(FROM_UNIXTIME(`start`)) AS `id`, DATE(FROM_UNIXTIME(`start`)) AS `name` FROM `Shifts` ORDER BY `start`");
|
||||
$days = sql_select_single_col("
|
||||
SELECT DISTINCT DATE(FROM_UNIXTIME(`start`)) AS `id`, DATE(FROM_UNIXTIME(`start`)) AS `name`
|
||||
FROM `Shifts`
|
||||
ORDER BY `start`");
|
||||
|
||||
if (count($days) == 0) {
|
||||
error(_("The administration has not configured any shifts yet."));
|
||||
|
@ -409,9 +438,10 @@ function view_user_shifts() {
|
|||
0
|
||||
);
|
||||
|
||||
$SQL = "SELECT DISTINCT `Shifts`.*, `Room`.`Name` as `room_name`, nat2.`special_needs` > 0 AS 'has_special_needs'
|
||||
$SQL = "SELECT DISTINCT `ShiftTypes`.`name`, `Shifts`.*, `Room`.`Name` as `room_name`, nat2.`special_needs` > 0 AS 'has_special_needs'
|
||||
FROM `Shifts`
|
||||
INNER JOIN `Room` USING (`RID`)
|
||||
INNER JOIN `ShiftTypes` ON (`ShiftTypes`.`id` = `Shifts`.`shifttype_id`)
|
||||
LEFT JOIN (SELECT COUNT(*) AS special_needs , nat3.`shift_id` FROM `NeededAngelTypes` AS nat3 WHERE `shift_id` IS NOT NULL GROUP BY nat3.`shift_id`) AS nat2 ON nat2.`shift_id` = `Shifts`.`SID`
|
||||
INNER JOIN `NeededAngelTypes` AS nat ON nat.`count` != 0 AND nat.`angel_type_id` IN (" . implode(',', $_SESSION['user_shifts']['types']) . ") AND ((nat2.`special_needs` > 0 AND nat.`shift_id` = `Shifts`.`SID`) OR ((nat2.`special_needs` = 0 OR nat2.`special_needs` IS NULL) AND nat.`room_id` = `RID`))
|
||||
LEFT JOIN (SELECT se.`SID`, se.`TID`, COUNT(*) as count FROM `ShiftEntry` AS se GROUP BY se.`SID`, se.`TID`) AS entries ON entries.`SID` = `Shifts`.`SID` AND entries.`TID` = nat.`angel_type_id`
|
||||
|
@ -429,7 +459,11 @@ function view_user_shifts() {
|
|||
$SQL .= "
|
||||
ORDER BY `start`";
|
||||
$shifts = sql_select($SQL);
|
||||
$ownshifts_source = sql_select("SELECT `Shifts`.* FROM `Shifts` INNER JOIN `ShiftEntry` ON (`Shifts`.`SID` = `ShiftEntry`.`SID` AND `ShiftEntry`.`UID` = '" . sql_escape($user['UID']) . "')
|
||||
$ownshifts_source = sql_select("
|
||||
SELECT `ShiftTypes`.`name`, `Shifts`.*
|
||||
FROM `Shifts`
|
||||
INNER JOIN `ShiftTypes` ON (`ShiftTypes`.`id` = `Shifts`.`shifttype_id`)
|
||||
INNER JOIN `ShiftEntry` ON (`Shifts`.`SID` = `ShiftEntry`.`SID` AND `ShiftEntry`.`UID` = '" . sql_escape($user['UID']) . "')
|
||||
WHERE `Shifts`.`RID` IN (" . implode(',', $_SESSION['user_shifts']['rooms']) . ")
|
||||
AND `start` BETWEEN " . $starttime . " AND " . $endtime);
|
||||
$ownshifts = array();
|
||||
|
|
Loading…
Reference in New Issue