Strona główna › Biblioteka › Kalendarz wydarzeń

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:

Przychód (Zapłacono)

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.

Wydatki (Naliczone)

Pomarańczowy chip z szewronem w dół — łączne opłaty naliczone w tym dniu: media, czynsz i kary. Kliknij chip, aby zobaczyć szczegóły.

Zdarzenia

Żółty chip z okrągłą kropką — liczba zdarzeń niefinansowych: odczyty liczników, dokumenty, umowy, naruszenia. Kliknij chip, aby zobaczyć listę.

Skumulowane saldo

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:

Media

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.

Wynajem

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ści
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

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"}
]