Dış Entegrasyonlar
BulutFilo'nun kod tabanında doğrulanmış tüm dış sistem entegrasyonları. Her entegrasyon ya cron ile otomatik tetiklenir, ya da kullanıcı eylemine bağlı job dispatch eder.
1. Logo ERP
App\Jobs\Logo\ namespace'i altında 9 job Logo ERP REST API'sine veri akıtır.
| Job | Tetikleyici | Açıklama |
|---|---|---|
AmbarTransferAktarimJob | TransferObserver::created (feature-logo-rest-ambar-transferi aktif + transfer_durumu = 'Bölgeye Alındı') | Ambar transferini Logo'ya iletir |
FaturaLogoSatisFaturasiOlusturJob | Fatura kayıt eylemi | Satış faturasını Logo'da oluşturur |
IsKartiLogoAktarimJob | İş kartı kaydı | İş kartını Logo'ya aktarır |
IsMalzemeKartiFirmalaraAktarimJob | İş malzeme kartı kaydı | Birden fazla firmaya malzeme kartı dağıtım |
MalzemeKartiLogoAktarimJob | Malzeme tanımı | Malzeme kartını Logo'ya gönderir |
SabitKiymetKartiLogoAktarimJob | Araç vb. sabit kıymet | Sabit kıymet kartı |
ServisFormuELogoKontrolJob | Yetkili servis formu kayıt | E-Logo onay kontrol |
ServisFormuLogoAlisFaturasiOlusturJob | Servis formu sonrası | Alış faturası oluştur |
ServisFormuLogoSatisFaturasiOlusturJob | Servis formu sonrası | Satış faturası oluştur |
Bu job'lar kuyruğa atılır (queue), Logo API'si yavaş veya hata verirse retry mekanizması devreye girer.
2. Yakıt Entegrasyonları
| Sağlayıcı | Cron | Settings flag |
|---|---|---|
| Petrol Ofisi (PO) | bfy:po_yakit_import (hourly) | yakit-poas-entegrasyon |
| Opet | bfy:opet_yakit_import (hourly) | yakit-opet-entegrasyon |
| Shell | bfy:shell_yakit_import (hourly) | yakit-shell-entegrasyon |
| Asis Otomasyon | bfy:asisotomasyon-yakit-import (hourly) | asisotomasyon-wsdl-url (URL) |
| Optimum | bfy:optimum-import (twiceDaily) | optimum-url |
| Turpak | bfy:turpak-import (twiceDaily) | turpak-url |
| Mepsan Otomasyon | bfy:mepsanotomasyon-yakit-import (twiceDaily) | mepsanotomasyon-wsdl-url |
İlgili tablolar: arac_yakitlar (eklenen kayıtlar), opet_yakit_aktarimlar, shell_yakit_aktarimlar (raw aktarım log'u).
Bu cron'lar yakit_girisi = 'OTOMATIK' flag'iyle araç yakıt kaydı oluşturur — Yakit modelindeki YAKIT_GIRISI const'unun OTOMATIK değeri.
3. HGS / OGS
| Sistem | Cron | Job | Settings |
|---|---|---|---|
| TETRA HGS | bfy:hgs-data-import (daily) | HGSDataImportJob, HgsUrunImportJob | feature-hgs-api-key, feature-hgs-api-secret, feature-hgs-firma-id, config('app.hgs.url') |
| Vakıfbank HGS | bfy:vakifbank-hgs-harcama-import (00:05) | VakifbankHGSHarcamaImportJob, VakifbankHGSAvadanlikImportJob | hgs-vakifbank-client-id, hgs-vakifbank-client-secret, hgs-vakifbank-consent-id, hgs-vakifbank-firma-id |
İlgili job'lar: SendHgsTopluAktiflestirmeMailJob, TetraHGSUrunTopluAktiflestirJob.
4. Kamera (CCTV)
| Sağlayıcı | Cron | Settings |
|---|---|---|
| Hikvision | bfy:kamera:hikvision-update (03:00) | modul-hikvision-camera-aktif |
| Dahua | bfy:kamera:dahua-update (03:10) | modul-dahua-camera-aktif |
GPS Listesi sayfasında kamera durumu sütun olarak görünür.
5. Boschcar (Yetkili Servis)
| Cron | Sıklık | Job | Settings |
|---|---|---|---|
bfy:boschcar-sync-approved | hourly | SyncBoschCarFormJob | feature-boschcar-servis-entegrasyonu-aktif |
bfy:boschcar-retry-failed | dailyAt 01:30 | (aynı) | (aynı) |
Onaylanan yetkili servis formlarını Boschcar sistemine senkronize eder.
6. Arvento (GPS Sağlayıcı)
isArvento() koşuluna bağlı:
| Cron | Sıklık |
|---|---|
arv:get_drivers | her saat *:10 |
arv:get_status | every 5 min |
arv:get_nodes | her saat *:15 |
arv:get_vehicles | dailyAt 02:00 |
7. EKAP (İhale)
| Cron | Sıklık | Açıklama |
|---|---|---|
ihale:ekap | daily | EKAP'tan ihale verisi çek |
ihale:purge | daily | Eski/iptal ihale kayıtlarını temizle |
8. EGM / KGM (Trafik Cezası Sorgulama)
| Job | Açıklama |
|---|---|
CezaGetirEgmJob | EGM (Emniyet Genel Müdürlüğü) ceza sorgu — kullanıcı /{id}/ceza/sorgula route'unu tetikler |
CezaGetirKgmJob | KGM (Karayolları Genel Müdürlüğü) ceza sorgu |
UI: Araç detayında "Ceza Sorgula" butonu bu job'ları dispatch eder.
9. Anadolum Filo / PTT (Kuruma Özel)
isAppName('anadolum-filo') koşulu altında, PTT (Posta ve Telgraf Teşkilatı) ile veri akışı:
| Cron | Saat | Açıklama |
|---|---|---|
bfy:send-ats-data-to-ptt --type=daily | 03:00 | Günlük ATS (Araç Takip Sistemi) verisi |
bfy:send-ats-data-to-ptt --type=monthly | 04:00 | Aylık (kapanış gününde) |
bfy:send-ats-data-to-ptt --type=onizleme | 04:00 | Önizleme (önizleme kapanış günü) |
bfy:ptt-kpapg-ats-report-send | 03:15 | KPAPG ATS raporu |
bfy:ptt-kpapg-sefer-report-send | 03:30 | KPAPG sefer raporu |
bfy:ptt-kpapg-report-send | 16:00 | KPAPG genel rapor |
bfy:ptt-konum-gonderim | every 5 min | Anlık konum |
bfy:ptt-arac-listesi-gonderim | 01:00 | Araç listesi |
bfy:ptt-yakit-ihmal-bildirim | 00:30 | Yakıt ihmal bildirimi |
İlgili job: KPAPG\CreateSeferAndGonderiJob, MaliyetMuhasebesi\PttMaliyetMuhasebesiGiderleriEkleJob, UpdatePttMaliyetMuhasebesiGiderlerAracIdJob.
AylikRaporGonderimTakvimi::getCloseDay($month) ve getOnizlemeCloseDay($month) ile her ayın hangi gününde kapanış yapılacağı parametriktir.
10. Sarılar Group / e-Finans (Kuruma Özel)
isAppName('sarilar') altında 13 ayrı firma için saatlik:
app:efinans_import_dosya_fix --efinans_firma=<firma> --firma_id=<id> — e-Finans portalından her firmanın faturalarını çekip ilgili harcama kaydına bağlar.
11. Maps / Geocoding
| Job | Açıklama |
|---|---|
Maps\GeoCodeAddressJob | Adres → koordinat (geocoding) |
AddressFormatterJob | Adres formatlama |
ParseAddressJob | Adres metnini parse et |
Servis sağlayıcısı: Google Maps API veya OpenStreetMap (settings'e bağlı).
12. OCR (Belge Tanıma)
CloudFileOcrJob — yüklenen belgelerin OCR'ı için iş kuyruğu (örn. ruhsat fotoğrafından plaka okuma).
13. Bordro (Yolcu Sayımı)
hv:passenger_count (every 5 min) — feature-yolcu-sayimi-aktif flag'i aktifse yolcu sayımı verisi toplanır.
Skip / Aktivasyon Mantığı
Tüm dış entegrasyon cron'ları aşağıdaki desenle korunmuştur:
$setCron('bfy:opet_yakit_import')
->hourly()
->emailOutputOnFailure($failAlertMail)
->skip(function () {
return ! settings('yakit-opet-entegrasyon'); // settings yoksa skip
});
Yani settings ayarı boş olan kurumlarda ilgili entegrasyon cron'ları otomatik olarak çalışmaz. Bu sayede tek bir kod tabanı çoklu kurumu güvenli şekilde besler.