Przegląd
Kalendarz finansowy pokazuje zagregowane dzienne podsumowania dla wszystkich Twoich nieruchomości. Zamiast pojedynczych zdarzeń, każdy dzień wyświetla do 4 kompaktowych wskaźników:
Zielony chip z szewronem w górę — łączne wpłaty otrzymane w tym dniu (czynsz i media razem). Kliknij chip, aby zobaczyć poszczególne płatności.
Pomarańczowy chip z szewronem w dół — łączne opłaty naliczone w tym dniu: media, czynsz i kary. Kliknij chip, aby zobaczyć szczegóły.
Żółty chip z okrągłą kropką — liczba zdarzeń niefinansowych: odczyty liczników, dokumenty, umowy, naruszenia. Kliknij chip, aby zobaczyć listę.
Niebieski chip z ikoną portfela — całkowite zadłużenie na koniec dnia dla wszystkich nieruchomości. Kliknij chip, aby zobaczyć szczegółowy podział.
Szczegóły salda
Kliknięcie chipa salda (niebieskiego, z ikoną portfela) otwiera szczegółowy raport salda na wybraną datę. Raport jest podzielony na dwie sekcje:
Pokazuje każdą nieruchomość z: saldem otwarcia, opłatami naliczonymi dzisiaj, płatnościami otrzymanymi dzisiaj i saldem zamknięcia. Kliknij kwotę opłat lub płatności, aby rozwinąć poszczególne dokumenty.
Ta sama struktura co dla mediów, ale dla opłat czynszowych. Płatności czynszu są śledzone oddzielnie.
Wszystkie kwoty są automatycznie przeliczane na Twoją walutę po bieżących kursach.
Nawigacja
- Użyj strzałek ‹ › do nawigacji między miesiącami
- Użyj rozwijanych list miesiąca i roku do szybkiej nawigacji
- Przełączaj między widokami Miesiąc i Lista
- Kliknij ikonę filtra, aby pokazać/ukryć filtr nieruchomości
Widok mobilny
Na wąskich ekranach siatka miesiąca jest zastępowana pionową listą dni: każdy dzień miesiąca ma swoje chipy na pełną szerokość, a kliknięcie chipa otwiera podsumowanie dnia. Saldo wyświetlane jest w kompaktowych kartach zamiast tabeli.
Endpointy API
Dane kalendarza są dostępne przez REST API do integracji z zewnętrznymi systemami.
GET
/api/v1/calendar/events?start=2026-02-01&end=2026-03-01
Zwraca wszystkie zdarzenia kalendarza dla uwierzytelnionego użytkownika w podanym zakresie dat.
start — Data początkowa (ISO 8601)end — Data końcowa (ISO 8601)property_id — Opcjonalny filtr nieruchomościResponse 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
Zwraca dostępne typy zdarzeń z kolorami i ikonami.
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
Zwraca saldo początkowe + dzienne delty do obliczania skumulowanego salda. Wszystkie kwoty w walucie użytkownika.
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
Szczegółowe saldo na nieruchomość na datę: media i czynsz oddzielnie, ze szczegółami (poszczególne dokumenty).
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
Zwraca tylko opłaty (media, czynsz, kary) za określoną datę.
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
Zwraca tylko płatności (przychody, zwroty, kompensacje) za określoną datę.
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
Zwraca nieruchomości dostępne do filtrowania kalendarza.
Response example
[
{"id": 12, "name": "My Apartment", "address": "Kyiv, Khreschatyk 1"},
{"id": 14, "name": "Beach House", "address": "Odessa, Deribasovska 5"}
]