1
0

Страница Архива

1. Добавлены новые методы
2. Добавлена страница архивных задач.
This commit is contained in:
2026-01-13 11:27:44 +07:00
parent 2d27abc48a
commit 7eb50ed503
6 changed files with 986 additions and 13 deletions

View File

@@ -100,22 +100,25 @@ class Task extends BaseEntity {
return $errors;
}
// Проверка что задача существует и получаем текущую колонку
$task = Database::get($this->db_name, ['id', 'column_id'], ['id' => $this->id]);
// Проверка что задача существует и получаем текущие данные
$task = Database::get($this->db_name, ['id', 'column_id', 'order'], ['id' => $this->id]);
if (!$task) {
$this->addError('task', 'Задача не найдена');
return $this->getErrors();
}
// Получаем текущую колонку
$old_column_id = (int)$task['column_id'];
$new_column_id = (int)$this->column_id;
// Если column_id не передан — оставляем текущий
$new_column_id = $this->column_id !== null ? (int)$this->column_id : $old_column_id;
// Формируем данные для обновления
$update_data = [
'id_department' => $this->id_department,
'id_label' => $this->id_label,
'order' => $this->order,
'column_id' => $this->column_id,
'order' => $this->order ?? $task['order'],
'column_id' => $new_column_id,
'date' => $this->date ?: null,
'id_account' => $this->id_account,
'title' => $this->title,
@@ -168,10 +171,12 @@ class Task extends BaseEntity {
$task = self::check_task($id);
$old_column_id = (int)$task['column_id'];
$new_column_id = (int)$column_id;
$archive = (int)$task['archive'];
// Получаем все карточки целевой колонки (кроме перемещаемой)
// Получаем все карточки целевой колонки с тем же статусом архивации (кроме перемещаемой)
$cards = Database::select('cards_task', ['id', 'order'], [
'column_id' => $column_id,
'archive' => $archive,
'id[!]' => $id,
'ORDER' => ['order' => 'ASC']
]) ?? [];
@@ -297,10 +302,18 @@ class Task extends BaseEntity {
], 400);
}
// Обновляем archive
Database::update('cards_task', [
// Данные для обновления
$update_data = [
'archive' => $archive ? 1 : 0
], [
];
// При разархивировании — возвращаем в колонку "Готово"
if (!$archive) {
$update_data['column_id'] = COLUMN_DONE_ID;
}
// Обновляем в БД
Database::update('cards_task', $update_data, [
'id' => $id
]);