Strona główna › Biblioteka › Naruszenia umów

Naruszenia umów

Śledź i dokumentuj naruszenia warunków umowy przez najemców

Przegląd

Moduł naruszeń umowy pozwala dokumentować i śledzić przypadki nieprzestrzegania warunków umowy najmu. Każde naruszenie może być powiązane z konkretnymi punktami umowy i potwierdzone dowodami fotograficznymi.

!

Śledzenie naruszeń

Prowadź historię wszystkich naruszeń dla każdej nieruchomości i umowy

Powiązanie z punktami

Wskaż, które punkty umowy zostały naruszone

Dowody fotograficzne

Dołączaj zdjęcia i dokumenty potwierdzające naruszenia

Poziomy ważności

Oceniaj wagę naruszeń w skali od 1 do 10

Poziomy ważności

System używa 4 poziomów ważności do klasyfikacji naruszeń:

1-3

Niski - drobne naruszenia, ostrzeżenia

4-5

Średni - umiarkowane naruszenia, wymagają uwagi

6-8

Wysoki - poważne naruszenia, mogą skutkować karami

9-10

Krytyczny - podstawa do rozwiązania umowy

Proces pracy

Typowy proces dokumentowania naruszenia:

1

Wykrycie

Właściciel wykrywa naruszenie warunków umowy

2

Dokumentacja

Utworzenie wpisu z opisem, datą i poziomem ważności

3

Dowody

Dołączenie zdjęć i powiązanie z punktami umowy

4

Powiadomienie

Naruszający może zobaczyć zarejestrowane naruszenie

Uprawnienia

Różni użytkownicy mają różne uprawnienia:

Akcja Kto może
Utworzenie naruszenia Właściciele, administratorzy
Wyświetlenie naruszenia Właściciele, administratorzy, naruszający
Edycja naruszenia Właściciele, administratorzy
Usunięcie naruszenia Właściciele, administratorzy
Dołączenie dokumentów Właściciele, administratorzy

Automatic Overdue Payment Control

The system automatically detects late payments and creates contract violations. A daily cron job (app:payments:check-overdue) runs at 05:00 UTC and checks the previous month's payments.

How it works

  1. For each property with an active contract, the system reads RENT_PAYMENT_DAY and UTILITIES_PAYMENT_DAY + grace period from the contract blocks
  2. Finds payments made after the deadline (charge date + grace period)
  3. Groups overdue payments by deadline date
  4. Creates a ContractViolation with auto-generated description in the tenant's language
  5. Links overdue payments to the violation via violation_overdue_payments junction table

Severity rules

Days overdueSeverityLevel
1–53Low
6–145Medium
15–307High
31+9Critical

Utilities overdue always gets severity 5 (medium).

If a contract does not have RENT_PAYMENT_DAY or UTILITIES_PAYMENT_DAY blocks — no violation is created for that type.

Payment linking

Each violation can be linked to one or more overdue payments. One payment can be linked to at most one violation (UNIQUE constraint). Payments can also be linked manually when creating or editing a violation.

REST API

REST API do integracji z zewnętrznymi systemami:

Uwaga dotycząca warstwy usługowej

GET    /api/v1/properties/{id}/violations           - Lista naruszeń
POST   /api/v1/properties/{id}/violations           - Utwórz naruszenie
GET    /api/v1/properties/{id}/violations/{vid}     - Szczegóły naruszenia
PUT    /api/v1/properties/{id}/violations/{vid}     - Zaktualizuj naruszenie
DELETE /api/v1/properties/{id}/violations/{vid}     - Usuń naruszenie
POST   /api/v1/properties/{id}/violations/{vid}/documents      - Dołącz dokument
DELETE /api/v1/properties/{id}/violations/{vid}/documents/{did} - Odłącz dokument

GET    /api/v1/properties/{id}/violations/{vid}/overdue-payments          - List linked overdue payments
POST   /api/v1/properties/{id}/violations/{vid}/overdue-payments          - Link payments (payment_ids[])
DELETE /api/v1/properties/{id}/violations/{vid}/overdue-payments/{payId}  - Unlink payment
GET    /api/v1/properties/{id}/overdue-payments                          - List unlinked overdue payments

Przykładowa odpowiedź

{
  "data": [
    {
      "id": 1,
      "property_id": 5,
      "contract_id": 12,
      "violation_date": "2026-01-10",
      "severity": 7,
      "severity_level": "high",
      "description": "Unauthorized subletting of the property to third party",
      "violator": {
        "id": 15,
        "name": "John Tenant"
      },
      "created_by": {
        "id": 8,
        "name": "Owner Name"
      },
      "documents_count": 2,
      "blocks": [
        {
          "id": 5,
          "code": "SUBLETTING",
          "name": "Subletting Prohibition"
        }
      ],
      "created_at": "2026-01-10T14:30:00+00:00"
    }
  ],
  "total": 1,
  "page": 1,
  "totalPages": 1
}

Swagger / OpenAPI

Pełna dokumentacja API jest dostępna pod adresem /api/v1/doc