Головна › Бібліотека › Календар подій

Огляд

Фінансовий календар показує агреговані підсумки дня по всіх ваших об'єктах. Замість окремих подій кожен день відображає до 4 компактних індикаторів:

Дохід (Сплачено)

Зелений чип із шевроном угору — сума всіх платежів за день (оренда та комунальні разом). Натисніть на чип, щоб побачити окремі платежі.

Витрати (Нараховано)

Помаранчевий чип із шевроном униз — сума всіх нарахувань за день: комунальні, оренда та штрафи. Натисніть на чип для деталізації.

Події

Жовтий чип із круглою крапкою — кількість нефінансових подій: показання лічильників, документи, договори, порушення. Натисніть на чип для перегляду списку.

Накопичувальний баланс

Синій чип з іконкою гаманця — загальний борг на кінець дня по всіх об'єктах. Натисніть на чип для детальної розбивки по об'єктах.

Деталі балансу

Натискання на чип балансу (синій, з іконкою гаманця) відкриває детальний звіт по балансу на обрану дату. Звіт розділений на дві секції:

Комунальні

Показує кожен об'єкт з: початковим боргом, нарахуваннями за день, платежами за день та підсумковим балансом. Натисніть на суму нарахувань або платежів, щоб розкрити окремі документи з посиланнями.

Аренда

Та ж структура, що і для комунальних, але для орендних нарахувань. Орендні платежі відстежуються окремо.

Усі суми автоматично конвертуються у вашу валюту за поточними курсами.

Навігація

  • Використовуйте стрілки ‹ › для навігації між місяцями
  • Використовуйте випадаючі списки місяця та року для швидкої навігації
  • Перемикайтесь між видами Місяць та Список
  • Натисніть на іконку фільтра для показу/приховування фільтра по об'єктах

Мобільна версія

На вузьких екранах сітка місяця замінюється вертикальним списком днів: кожен день місяця показано зі своїми чипами на всю ширину, натискання на чип відкриває зведення дня. Баланс відображається компактними картками замість таблиці.

API Endpoints

Дані календаря доступні через REST API для інтеграції із зовнішніми системами.

GET /api/v1/calendar/events?start=2026-02-01&end=2026-03-01

Повертає всі події календаря для авторизованого користувача у вказаному діапазоні дат.

start — Початкова дата (ISO 8601)
end — Кінцева дата (ISO 8601)
property_id — Опціональний фільтр по об'єкту
Response example
[
  {
    "id": "charge-42",
    "title": "14.27 €",
    "start": "2026-02-01",
    "allDay": true,
    "backgroundColor": "#e53935",
    "textColor": "#fff",
    "extendedProps": {
      "type": "charge_with_counter",
      "eventTypeName": "Expense Charge",
      "property": "My Apartment",
      "propertyId": 12,
      "amount": "14.27",
      "currency": "€",
      "expenseTypeName": "Electricity",
      "url": "/properties/12/charges/42"
    }
  },
  {
    "id": "payment-15",
    "title": "500.00 €",
    "start": "2026-02-05",
    "allDay": true,
    "backgroundColor": "#27ae60",
    "textColor": "#fff",
    "extendedProps": {
      "type": "payment",
      "eventTypeName": "Payment",
      "property": "My Apartment",
      "propertyId": 12,
      "amount": "500.00",
      "currency": "€",
      "url": "/properties/12/payments/15"
    }
  }
]
GET /api/v1/calendar/event-types

Повертає доступні типи подій з кольорами та іконками.

Response example
[
  {"type": "charge_with_counter", "color": "#e53935", "label": "Expense Charge"},
  {"type": "rental_charge", "color": "#9c27b0", "label": "Rental Charge"},
  {"type": "payment", "color": "#27ae60", "label": "Payment"},
  {"type": "counter_reading_due", "color": "#ffa726", "label": "Reading Due"},
  {"type": "document", "color": "#7f8c8d", "label": "Document"}
]
GET /api/v1/calendar/daily-balances?start=2026-02-01&end=2026-02-28

Повертає початковий баланс + денні дельти для обчислення кумулятивного балансу. Всі суми у валюті користувача.

Response example
{
  "startBalance": -28159.58,
  "dailyDeltas": {"2026-02-01": -656.43, "2026-02-02": 2282.16},
  "dayCharges": {"2026-02-01": 688.63},
  "dayPaid": {"2026-02-01": 32.20},
  "rangeStart": "2026-02-01",
  "rangeEnd": "2026-02-28",
  "currency": "€"
}
GET /api/v1/calendar/balance?date=2026-02-01

Детальний баланс по об'єктах на дату: комунальні та оренда окремо, з розшифровкою (окремі документи).

Response example
{
  "properties": [{
    "propertyName": "My Apartment",
    "utilityDebtBefore": 1338.51,
    "utilityChargedDay": 14.27,
    "utilityPaidDay": 10.40,
    "utilityDebt": 1342.38,
    "utilityDayItems": [
      {"label": "Electricity", "desc": "Monthly", "amount": 14.27, "url": "/properties/12/charges/42"}
    ],
    "rentalDebt": 486.18,
    "totalDebt": 1828.56
  }],
  "currency": "€"
}
GET /api/v1/calendar/charges?date=2026-02-01

Повертає тільки нарахування (комунальні, оренда, штрафи) за вказану дату.

Response example
[
  {
    "id": "charge-42",
    "title": "14.27 €",
    "start": "2026-02-01",
    "allDay": true,
    "backgroundColor": "#e53935",
    "textColor": "#fff",
    "extendedProps": {
      "type": "charge_with_counter",
      "eventTypeName": "Начисление расходов",
      "property": "Квартира на Хрещатику",
      "propertyId": 12,
      "amount": "14.27",
      "currency": "€",
      "expenseTypeName": "Электричество",
      "url": "/properties/12/charges/42"
    }
  },
  {
    "id": "rental-7",
    "title": "486.18 €",
    "start": "2026-02-01",
    "allDay": true,
    "backgroundColor": "#9c27b0",
    "textColor": "#fff",
    "extendedProps": {
      "type": "rental_charge",
      "eventTypeName": "Начисление аренды",
      "property": "Квартира на Хрещатику",
      "propertyId": 12,
      "amount": "486.18",
      "currency": "€",
      "url": "/properties/12/rental-charges/7"
    }
  }
]
GET /api/v1/calendar/payments?date=2026-02-01

Повертає тільки платежі (дохід, повернення, компенсації) за вказану дату.

Response example
[
  {
    "id": "payment-15",
    "title": "500.00 €",
    "start": "2026-02-01",
    "allDay": true,
    "backgroundColor": "#27ae60",
    "textColor": "#fff",
    "extendedProps": {
      "type": "payment",
      "eventTypeName": "Платёж",
      "property": "Квартира на Хрещатику",
      "propertyId": 12,
      "amount": "500.00",
      "currency": "€",
      "url": "/properties/12/payments/15"
    }
  },
  {
    "id": "compensation-3",
    "title": "50.00 €",
    "start": "2026-02-01",
    "allDay": true,
    "backgroundColor": "#16a085",
    "textColor": "#fff",
    "extendedProps": {
      "type": "repair_compensation",
      "eventTypeName": "Компенсация за ремонт",
      "property": "Квартира на Хрещатику",
      "propertyId": 12,
      "amount": "50.00",
      "currency": "€",
      "url": "/properties/12/repair-compensations/3"
    }
  }
]
GET /api/v1/calendar/properties

Повертає об'єкти доступні для фільтрації календаря.

Response example
[
  {"id": 12, "name": "My Apartment", "address": "Kyiv, Khreschatyk 1"},
  {"id": 14, "name": "Beach House", "address": "Odessa, Deribasovska 5"}
]