mirror of
https://github.com/grocy/grocy.git
synced 2025-04-29 09:39:57 +00:00
75 lines
1.5 KiB
PHP
75 lines
1.5 KiB
PHP
<?php
|
|
|
|
namespace Grocy\Services;
|
|
|
|
class TasksService extends BaseService
|
|
{
|
|
public function GetCurrent(): \LessQL\Result
|
|
{
|
|
$users = $this->getUsersService()->GetUsersAsDto();
|
|
$categories = $this->getDatabase()->task_categories();
|
|
|
|
$tasks = $this->getDatabase()->tasks_current();
|
|
foreach ($tasks as $task)
|
|
{
|
|
if (!empty($task->assigned_to_user_id))
|
|
{
|
|
$task->assigned_to_user = FindObjectInArrayByPropertyValue($users, 'id', $task->assigned_to_user_id);
|
|
}
|
|
else
|
|
{
|
|
$task->assigned_to_user = null;
|
|
}
|
|
|
|
if (!empty($task->category_id))
|
|
{
|
|
$task->category = FindObjectInArrayByPropertyValue($categories, 'id', $task->category_id);
|
|
}
|
|
else
|
|
{
|
|
$task->category = null;
|
|
}
|
|
}
|
|
|
|
return $tasks;
|
|
}
|
|
|
|
public function MarkTaskAsCompleted($taskId, $doneTime)
|
|
{
|
|
if (!$this->TaskExists($taskId))
|
|
{
|
|
throw new \Exception('Task does not exist');
|
|
}
|
|
|
|
$taskRow = $this->getDatabase()->tasks()->where('id = :1', $taskId)->fetch();
|
|
$taskRow->update([
|
|
'done' => 1,
|
|
'done_timestamp' => $doneTime
|
|
]);
|
|
|
|
return true;
|
|
}
|
|
|
|
public function UndoTask($taskId)
|
|
{
|
|
if (!$this->TaskExists($taskId))
|
|
{
|
|
throw new \Exception('Task does not exist');
|
|
}
|
|
|
|
$taskRow = $this->getDatabase()->tasks()->where('id = :1', $taskId)->fetch();
|
|
$taskRow->update([
|
|
'done' => 0,
|
|
'done_timestamp' => null
|
|
]);
|
|
|
|
return true;
|
|
}
|
|
|
|
private function TaskExists($taskId)
|
|
{
|
|
$taskRow = $this->getDatabase()->tasks()->where('id = :1', $taskId)->fetch();
|
|
return $taskRow !== null;
|
|
}
|
|
}
|