Отримання сумарних витрат часу і фінансів через API: get_costs_total


Приклад get_costs_total запиту

?action=get_costs_total
Повертає загальні часові та фінансові витрати по проєктах або завданню

Необов'язкові параметри:
  • id_project — ID проєкту (сумарні витрати певного проєкту)
  • id_task — ID завдання (сумарні витрати певного завдання)
  • datestart і dateend — діапазон дат для пошуку даних у форматі DD.MM.YYYY (дати рахуються включно)
  • is_timer — тип часових витрат, можливі значення:
    • 1 — внесено з таймеру
      0 — внесено вручну
  • filter — фільтр для отримання даних по декількох проєктах (див. опис нижче)
  • extra — додаткові дані, можливі значення (можна вказувати через кому, наприклад extra=projects,tasks):
  • projects — сумарні та помісячні витрати окремо по кожному проєкту вибірки (по конкретному проєкту або кількох проєктах при використанні id_project чи filter, або по всіх проєктах за відсутності параметрів вибору проєкту). Параметр ігнорується при використанні id_task
    tasks або tasks_top_level — сумарні витрати за кожною задачею та підзадачею або лише за задачами, але з урахуванням підзадач. Працюють лише разом із параметром projects

    Доступні значення для filter (для методу get_costs_total)

    Фільтр по ID
    project=2456
    Фільтр по діапазону ID
    project in (1234, 1240)
    Об'єднання фільтрів
    *через дужки ( ) або оператори andor (мають бути у нижньому регістрі)
(project=2456 and project=2464) or project in (2450, 2470)

Приклад JSON відповіді
При успішному виконанні запиту, відповідь буде містити статус ok і наступні дані:

*без extra=projects
{
"status": "ok",
"total": {
"time": "30:00",
"money": "300.00", }
}
*з extra=projects
{
    "status": "ok",
    "projects": {
        "PROJECT_ID_1": {
            "time": "10:00",
            "money": "100.00",
            "monthly": {
                "2024-04": {
                    "time": "2:00",
                    "money": "20.00"
                },
                "2024-03": {
                    "time": "8:00",
                    "money": "80.00"
                },
                ... ... ...
            },
            "id": "PROJECT_ID_1",
            "name": "PROJECT_NAME_1",
            "page": "/project/PROJECT_ID_1/"
        },
        "PROJECT_ID_2": 
            ... ... ...
        ,
        ... ... ...
    },
    "total": {
        "time": "30:00",
        "money": "300.00"
    }
}
*з extra=projects,tasks
{
    "status": "ok",
    "projects": {
        "PROJECT_ID_1": {
            "time": "10:00",
"money": "100.00",
"monthly": { "2024-04": { "time": "2:00", "money": "20.00" }, ... ... ... }, "tasks": { "TASK_ID": { "id": "TASK_ID", "name": "TASK_NAME_1", "page": "/project/PROJECT_ID_1/TASK_ID/", "status": "done", "priority": "0..10", "time": "1:00", "money": "10.00", }, "SUBTASK_ID": ... ... ... , }, "id": "PROJECT_ID_1", "name": "PROJECT_NAME_1",
"page": "/project/PROJECT_ID_1/" }, "PROJECT_ID_2": ... ... ...
, ... ... ... }, "total": { "time": "30:00", "money": "300.00" } }