Ana içeriğe geç

Sistem & İş Akışları

Bu bölüm, BulutFilo'nun arka planda otomatik olarak çalışan iş akışlarını anlatır. Sistem yazılım ekibi ve sistem yöneticileri için referans niteliğinde; standart son kullanıcılar bu bölümü pas geçebilir. Saatlik yakıt aktarımları, gece toplu işleri, vade ve bildirim mailleri, kamera durum senkronizasyonu, Logo ERP REST aktarımları, audit/snapshot mekanizması ve dış sistem entegrasyonları gibi otomatik süreçler burada listelenir.

SayfaKapsam
Cron / Zamanlanmış İşlerapp/Console/Kernel.php içinde tanımlı ~50 cron komutunun tam listesi (sıklık, settings flag, kuruma özel skip)
Observer'lar6 observer ve ne tetiklediği (Logo ERP transferi, kupon hareketleri, personel kart geçmişi, snapshot/audit)
Audit & SnapshotHistoryObserver ve Snapshot mekanizması — tüm kayıtların değişiklik geçmişi nasıl tutuluyor
Dış EntegrasyonlarLogo ERP, Petrol Ofisi, Opet, Shell, HGS (TETRA / Vakıfbank), Boschcar, Hikvision, Dahua, EKAP, EGM/KGM ceza sorgu
Bildirim & Mail53 mail template'i + bildirim üreten cron/job'lar

Genel Mimari

┌──────────────┐ ┌────────────────────┐ ┌───────────────┐
│ Kullanıcı │ ───→ │ Controller / Form │ ───→ │ Model boot() │
│ eylemi │ │ Request validation│ │ hook'ları │
└──────────────┘ └────────────────────┘ └───────┬───────┘

┌───────────────────────────────┤
▼ ▼
┌──────────────┐ ┌──────────────┐
│ Observer │ │ Hareket / │
│ (6 adet) │ │ Snapshot │
└──────┬───────┘ │ audit log'a │
│ │ yazar │
▼ └──────────────┘
┌──────────────┐
│ Job kuyruğu │
│ (98 adet) │
└──────┬───────┘


┌──────────────┐
│ Mail / Logo │
│ ERP / vb. │
└──────────────┘

┌──────────────────────┐
│ Cron (~50 komut) │
│ her dakika–aylık │ ───→ Job dispatch eder
└──────────────────────┘

Hızlı Referans — Sayısal Envanter

MekanizmaSayıNotlar
Cron komutu~50 distinctBazıları kuruma özel (isAppName('anadolum-filo'/'sarilar'/'arnavutkoy'))
Observer6Transfer, Snapshot, PersonelKart, KuponKodu, YetkiliServisKuponKodu, History
Async Job98%50'si Excel/PDF export, %20'si Logo ERP, %20'si import
FormRequest172Her CRUD işlemi için ayrı validation
Mail template53Bildirim, alarm, hatırlatma maili
Model boot hook~92saving/created/updated/deleted lifecycle
Settings feature flag30+settings('feature-XYZ-aktif') ile açılıp kapanır

Multi-Tenant ve Kuruma Özel Davranış

Kernel::schedule() her cron'u --env=<tenant> parametresiyle çalıştırır (multi-tenant). Bazı cron'lar yalnızca belirli kurumlar için aktiftir:

KoşulEtkilenen Cron Sayısı
isAppName('anadolum-filo')6 (PTT raporlama)
isAppName('arnavutkoy')1 (görev şoförleri kart yetkilendirmesi)
isAppName('sarilar')13 (e-Finans firma import)
isAppName(['fatih'])UI: Ceza sayfasında "UHM No" sütunu
isArvento()4 (Arvento GPS senkron)

settings('feature-XXX-aktif') flag'i ile açılıp kapanan tüm cron'lar flag yoksa otomatik skip edilir (->skip(fn() => ! settings(...))).


Hata Durumunda

Cron komutları başarısız olursa otomatik olarak yazilim@bulutfilo.com adresine mail atılır (emailOutputOnFailure($failAlertMail)). Tek istisna: bfy:vakifbank-hgs-harcama-import mail göndermez (->skip koşulu yetersiz config olduğunda zaten devreyi düşürür).


Saat Dilimi

Tüm cron'lar Europe/Istanbul saat diliminde çalışır (Kernel::scheduleTimezone()).