84 lines
2.3 KiB
PHP
84 lines
2.3 KiB
PHP
<?php
|
|
|
|
class Project extends BaseEntity {
|
|
|
|
protected $db_name = 'project';
|
|
|
|
// Получение всех проектов
|
|
public function getAll() {
|
|
return Database::select($this->db_name, [
|
|
'id',
|
|
'id_order',
|
|
'name',
|
|
'id_ready'
|
|
], [
|
|
'ORDER' => ['id_order' => 'ASC']
|
|
]);
|
|
}
|
|
|
|
// Получение одного проекта
|
|
public static function get($id) {
|
|
return Database::get('project', [
|
|
'id',
|
|
'id_order',
|
|
'name',
|
|
'id_ready'
|
|
], ['id' => $id]);
|
|
}
|
|
|
|
// Получение id_ready (ID колонки "Готово") по ID проекта
|
|
public static function getReadyColumnId($project_id) {
|
|
$project = Database::get('project', ['id_ready'], ['id' => $project_id]);
|
|
return $project ? (int)$project['id_ready'] : null;
|
|
}
|
|
|
|
// Получение колонок проекта
|
|
public static function getColumns($project_id) {
|
|
return Database::select('columns', [
|
|
'id',
|
|
'name_columns',
|
|
'color',
|
|
'id_order'
|
|
], [
|
|
'id_project' => $project_id,
|
|
'ORDER' => ['id_order' => 'ASC']
|
|
]);
|
|
}
|
|
|
|
// Получение отделов проекта
|
|
public static function getDepartments($project_id) {
|
|
return Database::select('departments', [
|
|
'id',
|
|
'name_departments',
|
|
'color'
|
|
], [
|
|
'id_project' => $project_id
|
|
]);
|
|
}
|
|
|
|
// Получение всех данных проекта (проект + колонки + отделы + метки)
|
|
public static function getProjectData($project_id) {
|
|
$project = self::get($project_id);
|
|
if (!$project) {
|
|
return null;
|
|
}
|
|
|
|
// Получаем метки (глобальные)
|
|
$labels = Database::select('labels', [
|
|
'id',
|
|
'name_labels',
|
|
'icon',
|
|
'color'
|
|
]);
|
|
|
|
return [
|
|
'project' => $project,
|
|
'columns' => self::getColumns($project_id),
|
|
'departments' => self::getDepartments($project_id),
|
|
'labels' => $labels
|
|
];
|
|
}
|
|
}
|
|
|
|
?>
|