Rentiva v4.62.2 — Lite Vehicle-Limit Counter Hardening
An internal hardening patch ensuring the Lite vehicle-limit counter reflects the true vehicle count independently of the public overflow-hiding filter.
An internal hardening patch ensuring the Lite vehicle-limit counter reflects the true vehicle count independently of the public overflow-hiding filter.
A patch release fixing the Lite VIP transfer route limit counter, which silently failed to enforce the route cap on installs using the current routes table.
When a Pro license expires, catalog items added during the Pro period that exceed the Lite plan limits — vehicles, add-on services, and transfer routes — are now automatically hidden from the public site instead of staying live. Data is never deleted; everything is restored the moment you upgrade to Pro again.
When you approve a vendor payout, Rentiva now generates a printable, sequentially-numbered payment statement for the period — earnings, the platform commission deducted from each, penalties, and the net paid — frozen as an immutable record and emailed to the vendor. This release also adds a vendor agreement acceptance gate on the application form, an "Added by" column that distinguishes operator and vendor vehicles, and one-click day blocking in the Monthly Reservation Calendar.
Matured vendor payouts were silently skipped on single-site installs: a dead SaaS "control plane" gate in the matured-payout worker required a multi-tenant registry row that a normal install never provisions, so no scheduled payout ever finalized automatically. This release removes that gate — the worker now runs unconditionally — and clears out the unused multi-tenant orchestration scaffolding that caused it.
TransferSearchEngine had no location filter — a search for an İstanbul route returned vehicles parked in Ankara and Antalya. This release adds city-based vehicle matching (route origin's city), reusing the rental module's 3-layer hybrid filter (vehicle → vendor inheritance → global default) via a new expand_to_city mode. Plus a batch of UI/content polish: KPI spacing on list-table pages, dashboard card heights, About page hardening, and Vehicles calendar parity with the Bookings page.
AutoComplete cron compared dropoff_date < NOW() at date-only granularity. MySQL cast YYYY-MM-DD to YYYY-MM-DD 00:00:00, so any confirmed booking with a same-day dropoff was auto-completed at midnight — long before the actual return time. has_overlap() then skipped these wrongly-completed bookings (status filter excluded 'completed'), allowing the same vehicle to be double-booked for the remaining rental hours. This release fixes the cron, adds defense-in-depth at has_overlap(), opens a completed → in_progress Status transition, and ships a maintenance script to revert already-contaminated bookings.
Critical fixes for remaining-payment double-tax and orphan WC orders after auto-cancel. Dashboard widgets gain status badges, plate, location, and a deposit/remaining split. The About > Support tab adds a GitHub Issues card, test stats, and a changelog accordion. The License page moves to a 2-column grid, and Messages adopt a React 18 chat bubble UI. 88 new Turkish translations.
Horizontal scroll wrappers added to the remaining admin tables that overflowed on narrow viewports.
Consistent gradient KPI cards now apply across all admin list pages. Vehicles, Bookings, Transfer, and Additional Services adopt the Dashboard/Reports blue/green/amber/grey gradient style.