count('job_tracking');
} else {
$out['recordsTotal'] = $database->count('job_tracking', ['uid' => $managed_uids]);
}
$filter = false;
// sort
$order = null;
$sortby = "DESC";
if ($VARS['order'][0]['dir'] == 'asc') {
$sortby = "ASC";
}
switch ($VARS['order'][0]['column']) {
case 2:
$order = ["jobname" => $sortby];
break;
case 3:
$order = ["start" => $sortby];
break;
case 4:
$order = ["end" => $sortby];
break;
}
// search
if (!is_empty($VARS['search']['value'])) {
$filter = true;
$wherenolimit = [
"AND" => [
"OR" => [
"jobname[~]" => $VARS['search']['value'],
"jobcode[~]" => $VARS['search']['value'],
"start[~]" => $VARS['search']['value'],
"end[~]" => $VARS['search']['value'],
],
"uid" => $managed_uids
]
];
if ($managed_uids !== false) {
$where["AND"]["uid"] = $managed_uids;
}
$where = $wherenolimit;
$where["LIMIT"] = [$VARS['start'], $VARS['length']];
} else {
$where = ["LIMIT" => [$VARS['start'], $VARS['length']]];
if ($managed_uids !== false) {
$where["uid"] = $managed_uids;
}
}
if (!is_null($order)) {
$where["ORDER"] = $order;
}
$jobs = $database->select('job_tracking', ['[>]jobs' => ['jobid']], [
'id',
'job_tracking.jobid',
'uid',
'start',
'end',
'jobname',
'jobcode',
'color',
'deleted'
], $where);
$usercache = [];
$editself = account_has_permission($_SESSION['username'], "QWIKCLOCK_EDITSELF");
for ($i = 0; $i < count($jobs); $i++) {
// Get user info
if (!isset($usercache[$jobs[$i]['uid']])) {
$usercache[$jobs[$i]['uid']] = getUserByID($jobs[$i]['uid']);
}
$jobs[$i][0] = "";
if ($_SESSION['uid'] == $jobs[$i]['uid']) {
if ($editself) {
$jobs[$i][1] = ' ' . lang("edit", false) . '';
} else {
$jobs[$i][1] = "";
}
} else if ($showmanaged) {
$jobs[$i][1] = ' ' . lang("edit", false) . '';
} else {
$jobs[$i][1] = "";
}
$jobs[$i][2] = ' ' . ($jobs[$i]['deleted'] == 1 ? "" : "") . $jobs[$i]['jobname'] . ($jobs[$i]['deleted'] == 1 ? "" : "");
$jobs[$i][3] = date(DATETIME_FORMAT, strtotime($jobs[$i]['start']));
if (is_null($jobs[$i]['end'])) {
$jobs[$i][4] = lang("na", false);
} else {
$jobs[$i][4] = date(DATETIME_FORMAT, strtotime($jobs[$i]['end']));
}
$jobs[$i][5] = $usercache[$jobs[$i]['uid']]['name'];
}
$out['status'] = "OK";
if ($filter) {
$recordsFiltered = $database->count('job_tracking', ['[>]jobs' => ['jobid']], 'job_tracking.id', $wherenolimit);
} else {
$recordsFiltered = $out['recordsTotal'];
}
$out['recordsFiltered'] = $recordsFiltered;
$out['data'] = $jobs;
echo json_encode($out);