1
0

Добавление логики

1. Получения конфигурациия с бека
2. Время закрытия задачи
3. Изменение фронта под новую локигу конфигурации
4. Обновление структуры бд
This commit is contained in:
2026-01-13 09:11:56 +07:00
parent 7449b46091
commit 2d27abc48a
11 changed files with 157 additions and 53 deletions

View File

@@ -11,6 +11,7 @@ class Task extends BaseEntity {
public $order;
public $column_id;
public $date;
public $date_closed;
public $id_account;
public $title;
public $descript;
@@ -99,15 +100,18 @@ class Task extends BaseEntity {
return $errors;
}
// Проверка что задача существует
$task = Database::get($this->db_name, ['id'], ['id' => $this->id]);
// Проверка что задача существует и получаем текущую колонку
$task = Database::get($this->db_name, ['id', 'column_id'], ['id' => $this->id]);
if (!$task) {
$this->addError('task', 'Задача не найдена');
return $this->getErrors();
}
// Обновляем в БД
Database::update($this->db_name, [
$old_column_id = (int)$task['column_id'];
$new_column_id = (int)$this->column_id;
// Формируем данные для обновления
$update_data = [
'id_department' => $this->id_department,
'id_label' => $this->id_label,
'order' => $this->order,
@@ -117,7 +121,17 @@ class Task extends BaseEntity {
'title' => $this->title,
'descript' => $this->descript ?: null,
'descript_full' => $this->descript_full ?: null
], [
];
// Обновляем date_closed при смене колонки
if ($new_column_id === COLUMN_DONE_ID && $old_column_id !== COLUMN_DONE_ID) {
$update_data['date_closed'] = date('Y-m-d H:i:s');
} elseif ($old_column_id === COLUMN_DONE_ID && $new_column_id !== COLUMN_DONE_ID) {
$update_data['date_closed'] = null;
}
// Обновляем в БД
Database::update($this->db_name, $update_data, [
'id' => $this->id
]);
@@ -151,7 +165,9 @@ class Task extends BaseEntity {
public static function updateOrder($id, $column_id, $to_index) {
// Проверка что задача существует
self::check_task($id);
$task = self::check_task($id);
$old_column_id = (int)$task['column_id'];
$new_column_id = (int)$column_id;
// Получаем все карточки целевой колонки (кроме перемещаемой)
$cards = Database::select('cards_task', ['id', 'order'], [
@@ -165,10 +181,24 @@ class Task extends BaseEntity {
// Пересчитываем order для всех карточек
foreach ($cards as $index => $card) {
Database::update('cards_task', [
$update_data = [
'order' => $index,
'column_id' => $column_id
], [
];
// Только для перемещаемой карточки обновляем date_closed
if ($card['id'] == $id) {
// Перемещаем В колонку "Готово" — устанавливаем дату закрытия
if ($new_column_id === COLUMN_DONE_ID && $old_column_id !== COLUMN_DONE_ID) {
$update_data['date_closed'] = date('Y-m-d H:i:s');
}
// Перемещаем ИЗ колонки "Готово" — обнуляем дату
elseif ($old_column_id === COLUMN_DONE_ID && $new_column_id !== COLUMN_DONE_ID) {
$update_data['date_closed'] = null;
}
}
Database::update('cards_task', $update_data, [
'id' => $card['id']
]);
}
@@ -193,6 +223,7 @@ class Task extends BaseEntity {
'column_id',
'date',
'date_create',
'date_closed',
'file_img',
'title',
'descript',
@@ -253,13 +284,13 @@ class Task extends BaseEntity {
return $task;
}
// Установка статуса архивации задачи (только для задач в колонке 4)
// Установка статуса архивации задачи (только для задач в колонке "Готово")
public static function setArchive($id, $archive = 1) {
// Проверка что задача существует
$task = self::check_task($id);
// Архивировать можно только задачи в колонке 4
if ($archive && $task['column_id'] != 4) {
// Архивировать можно только задачи в колонке "Готово"
if ($archive && (int)$task['column_id'] !== COLUMN_DONE_ID) {
RestApi::response([
'success' => false,
'errors' => ['column' => 'Архивировать можно только задачи из колонки "Готово"']