Ana içeriğe geç

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.

JobTetikleyiciAçıklama
AmbarTransferAktarimJobTransferObserver::created (feature-logo-rest-ambar-transferi aktif + transfer_durumu = 'Bölgeye Alındı')Ambar transferini Logo'ya iletir
FaturaLogoSatisFaturasiOlusturJobFatura kayıt eylemiSatış 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
MalzemeKartiLogoAktarimJobMalzeme tanımıMalzeme kartını Logo'ya gönderir
SabitKiymetKartiLogoAktarimJobAraç vb. sabit kıymetSabit kıymet kartı
ServisFormuELogoKontrolJobYetkili servis formu kayıtE-Logo onay kontrol
ServisFormuLogoAlisFaturasiOlusturJobServis formu sonrasıAlış faturası oluştur
ServisFormuLogoSatisFaturasiOlusturJobServis 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ıCronSettings flag
Petrol Ofisi (PO)bfy:po_yakit_import (hourly)yakit-poas-entegrasyon
Opetbfy:opet_yakit_import (hourly)yakit-opet-entegrasyon
Shellbfy:shell_yakit_import (hourly)yakit-shell-entegrasyon
Asis Otomasyonbfy:asisotomasyon-yakit-import (hourly)asisotomasyon-wsdl-url (URL)
Optimumbfy:optimum-import (twiceDaily)optimum-url
Turpakbfy:turpak-import (twiceDaily)turpak-url
Mepsan Otomasyonbfy: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

SistemCronJobSettings
TETRA HGSbfy:hgs-data-import (daily)HGSDataImportJob, HgsUrunImportJobfeature-hgs-api-key, feature-hgs-api-secret, feature-hgs-firma-id, config('app.hgs.url')
Vakıfbank HGSbfy:vakifbank-hgs-harcama-import (00:05)VakifbankHGSHarcamaImportJob, VakifbankHGSAvadanlikImportJobhgs-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ıCronSettings
Hikvisionbfy:kamera:hikvision-update (03:00)modul-hikvision-camera-aktif
Dahuabfy: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)

CronSıklıkJobSettings
bfy:boschcar-sync-approvedhourlySyncBoschCarFormJobfeature-boschcar-servis-entegrasyonu-aktif
bfy:boschcar-retry-faileddailyAt 01:30(aynı)(aynı)

Onaylanan yetkili servis formlarını Boschcar sistemine senkronize eder.


6. Arvento (GPS Sağlayıcı)

isArvento() koşuluna bağlı:

CronSıklık
arv:get_driversher saat *:10
arv:get_statusevery 5 min
arv:get_nodesher saat *:15
arv:get_vehiclesdailyAt 02:00

7. EKAP (İhale)

CronSıklıkAçıklama
ihale:ekapdailyEKAP'tan ihale verisi çek
ihale:purgedailyEski/iptal ihale kayıtlarını temizle

8. EGM / KGM (Trafik Cezası Sorgulama)

JobAçıklama
CezaGetirEgmJobEGM (Emniyet Genel Müdürlüğü) ceza sorgu — kullanıcı /{id}/ceza/sorgula route'unu tetikler
CezaGetirKgmJobKGM (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ışı:

CronSaatAçıklama
bfy:send-ats-data-to-ptt --type=daily03:00Günlük ATS (Araç Takip Sistemi) verisi
bfy:send-ats-data-to-ptt --type=monthly04:00Aylık (kapanış gününde)
bfy:send-ats-data-to-ptt --type=onizleme04:00Önizleme (önizleme kapanış günü)
bfy:ptt-kpapg-ats-report-send03:15KPAPG ATS raporu
bfy:ptt-kpapg-sefer-report-send03:30KPAPG sefer raporu
bfy:ptt-kpapg-report-send16:00KPAPG genel rapor
bfy:ptt-konum-gonderimevery 5 minAnlık konum
bfy:ptt-arac-listesi-gonderim01:00Araç listesi
bfy:ptt-yakit-ihmal-bildirim00:30Yakı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

JobAçıklama
Maps\GeoCodeAddressJobAdres → koordinat (geocoding)
AddressFormatterJobAdres formatlama
ParseAddressJobAdres 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.