Ana içeriğe geç

Version Pro Updated

Pro özelliği

Bu sayfa MHM Rentiva Pro eklentisinin bir yeteneğini anlatır. WordPress.org'daki ücretsiz Lite sürümünün parçası değildir; Lite'ın yanına kurulu Pro ve geçerli bir lisans gerektirir. Tam ayrım için: Sürümler — Lite ve Pro farkı. Pro'yu edinmek için: wpalemi.com/rentiva.

Amaç

MHM Rentiva, tedarikçilere gerçek zamanlı iş zekası (Business Intelligence) sağlar. Bu doküman, KPI kartlarının hesaplanması, trend analizleri ve veritabanı seviyesindeki veri toplama stratejilerini açıklar.

📊 Analiz ve Raporlama Sistemi

Sistemin finansal analizleri için tek gerçeklik kaynağı (Source of Truth) Ledger tablosudur. Operasyonel analizler ise rezervasyon statüleri üzerinden dinamik olarak hesaplanır.


🏗️ 1. Veri Toplama Stratejisi (AnalyticsService)

AnalyticsService, Ledger tablosu üzerinde status = 'cleared' ve vendor_id filtreleri ile çalışır.

Finansal Metrikler

  • Net Gelir: Belirli bir tarih aralığındaki commission_credit (artı) ve commission_refund (eksi) kayıtlarının toplamıdır.
  • Ortalama Rezervasyon Değeri (ABV): Toplam net gelirin, benzersiz (distinct) booking_id sayısına bölünmesiyle elde edilir.

Operasyonel Metrikler

  • Doluluk Oranı (Occupancy): (Kiralanan Gün Sayısı / Toplam Mevcut Gün Sayısı) * 100.
  • İptal Oranı: (İptal Edilen Rezervasyonlar / Toplam Talep Sayısı) * 100.

📉 2. Büyüme ve Trend Analizi

Sistem, seçilen tarih aralığını bir önceki benzer period ile karşılaştırarak büyüme oranlarını hesaplar.

Hesaplama Modeli

Büyüme = ((Mevcut Dönem - Önceki Dönem) / Önceki Dönem) * 100

Teknik Detaylar:

  • Pencere Aynalama: Eğer son 7 gün seçildiyse, önceki dönem olarak ondan önceki 7 gün (overlap olmadan) baz alınır.
  • Sıfır Bölme Koruması: Önceki dönem geliri 0 ise, büyüme oranı %0 yerine NULL döner. Bu durum arayüzde "—" olarak maskelenir.

📈 3. Sparkline Veri Yapısı

Dashboard üzerindeki trend grafikleri için get_sparkline_data() metodu kullanılır.

  • Backfilling: Aktivite olmayan günler için veritabanından boş dönen tarihler, PHP tarafında otomatik olarak 0.0 ile doldurulur.
  • UTC Sabiti: Zaman dilimi kaymalarını engellemek için tüm tarih gruplamaları MySQL DATE() fonksiyonuyla UTC üzerinden yapılır.

⚡ 4. Performans ve Caching (MetricCacheManager)

Analiz verileri pahalı SQL sorguları olduğu için çok katmanlı bir önbellekleme mekanizması kullanılır.

KatmanSüreGeçersiz kılma (Invalidation)
Transients15 DakikaYeni rezervasyon, ödeme onayı veya statü değişikliği.
Object CachePer-SessionDashboard sekme geçişlerinde tekrar sorgulama yapılmaz.
Bypass-Özel tarih aralığı aramalarında (Custom Range) cache devre dışı bırakılır.

⚙️ 5. Teknik API Referansı

Gelir Hesaplama

// AnalyticsService::get_revenue_period($vendor_id, $from_ts, $to_ts)
// PostgreSQL/MySQL uyumlu UTC normalization.

Araç Bazlı Performans

// AnalyticsService::get_vehicle_performance($vehicle_id, $from_ts, $to_ts)
// Belirli bir aracın özel doluluk ve gelir raporunu döner.

Bölüm Sonu Özeti

  • Finansal raporlarda sadece cleared durumundaki ledger kayıtları baz alınır.
  • Büyüme oranları lineer zaman kaydırma algoritmasıyla hesaplanır.
  • MetricCacheManager ile veritabanı yükü minimuma indirilmiştir.

Değişiklik Günlüğü

TarihSürümNot
19.03.20264.21.2Ledger tabanlı analiz ve büyüme formülleri dökümante edildi.