You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
111 lines
2.6 KiB
PHP
111 lines
2.6 KiB
PHP
<?php
|
|
use Engelsystem\Database\Db;
|
|
|
|
/**
|
|
* Load a single work log entry.
|
|
* @param int $user_worklog_id
|
|
*/
|
|
function UserWorkLog($user_worklog_id) {
|
|
return Db::selectOne("SELECT * FROM `UserWorkLog` WHERE `id`=?", [$user_worklog_id]);
|
|
}
|
|
|
|
/**
|
|
* Returns all work log entries for a user.
|
|
* @param User $user
|
|
*/
|
|
function UserWorkLogsForUser($user) {
|
|
return Db::select("SELECT * FROM `UserWorkLog` WHERE `user_id`=? ORDER BY `created_timestamp`", [$user['UID']]);
|
|
}
|
|
|
|
/**
|
|
* Delete a work log entry.
|
|
* @param UserWorkLog $userWorkLog
|
|
*/
|
|
function UserWorkLog_delete($userWorkLog)
|
|
{
|
|
$user_source = $userWorkLog['user_id'];
|
|
$result = Db::delete("DELETE FROM `UserWorkLog` WHERE `id`=?", [
|
|
$userWorkLog['id']
|
|
]);
|
|
|
|
engelsystem_log(sprintf('Delete work log for %s, %s hours, %s',
|
|
User_Nick_render($user_source),
|
|
$userWorkLog['work_hours'],
|
|
$userWorkLog['comment']));
|
|
|
|
return $result;
|
|
}
|
|
|
|
/**
|
|
* Update work log entry (only work hours and comment)
|
|
* @param UserWorkLog $userWorkLog
|
|
*/
|
|
function UserWorkLog_update($userWorkLog)
|
|
{
|
|
$user_source = $userWorkLog['user_id'];
|
|
|
|
$result = Db::update("UPDATE `UserWorkLog` SET
|
|
`work_hours`=?,
|
|
`comment`=?
|
|
WHERE `id`=?", [
|
|
$userWorkLog['work_hours'],
|
|
$userWorkLog['comment'],
|
|
$userWorkLog['id']
|
|
]);
|
|
|
|
engelsystem_log(sprintf('Updated work log for %s, %s hours, %s',
|
|
User_Nick_render($user_source),
|
|
$userWorkLog['work_hours'],
|
|
$userWorkLog['comment']));
|
|
|
|
return $result;
|
|
}
|
|
|
|
/**
|
|
* Create a new work log entry
|
|
* @param UserWorkLog $userWorkLog
|
|
*/
|
|
function UserWorkLog_create($userWorkLog)
|
|
{
|
|
global $user;
|
|
|
|
$user_source = $userWorkLog['user_id'];
|
|
|
|
$result = Db::insert("INSERT INTO `UserWorkLog` (
|
|
`user_id`,
|
|
`work_hours`,
|
|
`comment`,
|
|
`created_user_id`,
|
|
`created_timestamp`
|
|
)
|
|
VALUES (?, ?, ?, ?, ?)", [
|
|
$userWorkLog['user_id'],
|
|
$userWorkLog['work_hours'],
|
|
$userWorkLog['comment'],
|
|
$user['UID'],
|
|
time()
|
|
]);
|
|
|
|
engelsystem_log(sprintf('Added work log entry for %s, %s hours, %s',
|
|
User_Nick_render($user_source),
|
|
$userWorkLog['work_hours'],
|
|
$userWorkLog['comment']));
|
|
|
|
return $result;
|
|
}
|
|
|
|
/**
|
|
* New user work log entry
|
|
*
|
|
* @param array[] $user
|
|
*/
|
|
function UserWorkLog_new($user)
|
|
{
|
|
return [
|
|
'user_id' => $user['UID'],
|
|
'work_hours' => 0,
|
|
'comment' => ''
|
|
];
|
|
}
|
|
|
|
?>
|