Ana içeriğe geç

Yakıt Kayıtları

Yakıt Kayıtları modülü, filonun en büyük gider kalemini uçtan uca takip eder. Her yakıt alımı kayıt edilirken L/100km (veya iş makinelerinde L/saat) tüketimi otomatik hesaplanır; geri yönlü KM girişi sistem tarafından reddedilir; ortalamadan ciddi sapma gösteren araçlar için bildirim üretilir. Petrol Ofisi, Opet, Shell, Asis Otomasyon, Optimum, Turpak ve Mepsan Otomasyon entegrasyonları sayesinde yakıt alımları saatlik otomatik aktarım ile sisteme düşer; manuel pompa fişi girişine gerek kalmaz. Manuel girişler KULLANICI, otomatik gelenler OTOMATIK etiketiyle ayrı izlenir. Filo bünyesindeki yakıt tankları (depo, şantiye tankı vb.) ayrıca yönetilir; tank stoğu kritik seviyenin altına düştüğünde uyarı bildirimi tetiklenir.

:::info Erişim

  • Sol menü: Bakım → Yakıt Kayıtları
  • URL (tüm yakıtlar): https://demo.bulutfilo.com/arac/yakit
  • URL (araç bazlı): https://demo.bulutfilo.com/arac/{id}/yakit
  • URL (yakıt tankları): https://demo.bulutfilo.com/yakit_tanki
  • Yetki anahtarı: arac.yakit.* :::

Yakıt Kayıtları — canlı ekran

Sayfa Sekmeleri (canlı ekrandan)

SekmeAçıklama
YAKIT KAYITLARITüm yakıt alımları
YENİ YAKIT KAYDIYeni alım formu

Liste Sütunları (canlı ekrandan, ilk 15)

SütunKod karşılığı
Araçarac_id
Cinsi 2Arac.cinsi2 (aracCinsler2Liste)
Stoktan Kullanımstoktan_kullanim
Yakıt Tankıyakit_tanki_id
Fatura/İkmal Tarihifatura_tarihi
Fatura/İkmal Saatiikmal_saati
Fatura No / Fiş Nofatura_no
Son Alınan KMson_alinan_km
Son Alınan Saatson_alinan_saat
Yakıtın Alındığı KMyakitin_alindigi_km

Yakıt Girişi Tipi (yakit_girisi)

Yakit::YAKIT_GIRISI constant:

DeğerEtiket
OTOMATIKOtomatik Aktarıldı (Opet, Shell, Petrol Ofisi entegrasyonlarından)
KULLANICIKullanıcı Girişi (manuel kayıt)

Demo'da gerçek otomatik aktarımlar için aşağıdaki entegrasyonlar mevcuttur:

  • Opet: opet_yakit_aktarimlar tablosu
  • Shell: shell_yakit_aktarimlar tablosu

Yeni Yakıt Kaydı

Yeni Yakıt Kaydı formu

Canlı Form Alanları (DOM'dan, 28 alan)

Plaka, Yakıt Girişi (OTOMATIK/KULLANICI), Stoktan Kullanım (checkbox), İkmal Tarihi, İkmal Saati, Fatura No / Fiş No, UTTS Pompasından Alındı, Yakıt İstasyonu, İkmal Yaptıran Personel, Sürücü, Son Alınan KM, Yakıtın Alındığı KM, Miktar, Yakıt Tüketimi, Tutar, İndirim, KDV Yüzde, KDV Tutarı, Toplam, Litre Fiyatı, Araç Cinsi, Yakıt Tipi, Yakıt Kapasitesi, Araç Ruhsat Sahibi, Araç Bölgesi, Araç Alt Bölgesi, Açıklama (textarea).

Validasyon (Yakit::$rules['ekle'])

Zorunlu Alanlar

AlanKuralAçıklama
arac_idrequired, numericYakıt alan araç
fatura_tarihirequired, dateFatura/ikmal tarihi
kdv_yuzderequired, numeric, gte:0KDV %
toplamrequired, numericToplam tutar

Opsiyonel Alanlar

AlanKuralAçıklama
fatura_nostringFatura/fiş numarası
son_alinan_kmnumericBir önceki alımdaki KM
yakitin_alindigi_kmnumericBu alımdaki KM
son_alinan_saatnumericİş makinesi: önceki saat
yakitin_alindigi_saatnumericİş makinesi: şu anki saat
miktardecimal(7,2)Alınan litre
yakit_tuketimidecimal(19,4)Hesaplanan tüketim
yakit_tuketim_turustringVarsayılan lt/km
litre_fiyatidecimal(19,2)Birim litre fiyatı
tutardecimal(19,2)KDV hariç tutar
indirim_tutardecimal(19,2)İndirim
kdv_tutardecimal(19,2)KDV tutarı
yakit_tipistringBenzin / Motorin / LPG / Elektrik / vb.
bolgeexists:bolgeler.adiBölge
alt_bolge_idexists:bolgeler.id (alt=1)Alt bölge
yakit_tanki_idnumericFK → yakit_tanklari.id
stoktan_kullanimnumeric0/1 — tank stoğundan mı
personel_idexists:personellerGenel personel
surucu_idexists:personellerSürücü (alımı yapan)
user_idexists:usersKaydı oluşturan kullanıcı
istasyonstringAkaryakıt istasyonu adı
ikmal_saatitime, default 00:00:00İkmal saati
utts_pompasiintUTTS (Ulusal Taşıt Tanıma Sistemi) pompa kodu
aciklamatextAçıklama

Tüketim Hesabı

yakit_tuketimi her alımda hesaplanır ve getYakitTuketimiReadableAttribute ile 4 ondalık + birim ile gösterilir:

yakit_tuketimi = (yakitin_alindigi_km - son_alinan_km) / miktar (lt/km)

İş makineleri için yakitin_alindigi_saat - son_alinan_saat üzerinden saatlik tüketim hesaplanır (yakit_tuketim_turu = 'lt/saat').

Validasyon mesajları:

HataMesaj
max"Yakıtın alındığı KM'den düşük olmalı"
min"Son alınan KM'den yüksek olmalı"

Yani bu alımın KM'si, bir önceki alımın KM'sinden büyük olmak zorundadır — geriye doğru kayıt sistemi reddeder.


Yakıt Tankları

YakitTanki modeli (yakit_tanklari tablosu) firma içi yakıt tanklarını temsil eder. Tank içi hareketler Fis modeli (yakit_tanki_fisler tablosu) üzerinden takip edilir.

AlanAçıklama
yakit_tanki_idYakıt kaydının bağlı olduğu tank
yakit_tanki_fis_idİlgili tank fişi (FK → yakit_tanki_fisler.id)
stoktan_kullanim1 ise tank stoğundan düşülür

Tank stoğundan kullanımda araç yakıt kaydı oluşturulurken otomatik olarak ilgili tank fişi üretilir.


Liste Sütunları ($aranabilir)

AlanTipEtiket
arac_idselectizePlakaAraç
arac_cinsi2selectizeCinsi 2
stoktan_kullanimselectizeStoktan Kullanım
yakit_tanki_idselectizeYakıt Tankı
fatura_tarihidateFatura/İkmal Tarihi
ikmal_saatitimeFatura/İkmal Saati
fatura_notextFatura No / Fiş No
son_alinan_kmrangeSon Alınan KM
yakitin_alindigi_kmrangeYakıtın Alındığı KM
miktarrangeLitre
yakit_tuketimirangeTüketim
litre_fiyatirangeLitre Fiyatı
tutarrangeTutar
kdv_tutarrangeKDV
indirim_tutarrangeİndirim
toplamrangeToplam
yakit_tipitextYakıt Tipi
bolgeselectizeBölge
istasyontextİstasyon
personel_id / surucu_idtextPersonel / Sürücü
yakit_girisiselectizeOtomatik / Kullanıcı
aciklamatextAçıklama

Routes — Tam Liste

HTTPURLRoute Adı
GET/arac/yakitarac.yakit.tumu
GET/arac/{id}/yakitarac.yakit.liste
GET/arac/{id}/yakit/{yakit_id}arac.yakit.detay
PUT/arac/{id}/yakit/{yakit_id}arac.yakit.update
GET/arac/{id}/yakit/{yakit_id}/silarac.yakit.sil
GET/arac/{id}/yakit/eklearac.yakit.ekle
POST/arac/{id}/yakit/eklearac.yakit.post_ekle
GET/arac/{id}/yakit/son_kmarac.yakit.son_km
GET/arac/{id}/yakit/surucuarac.yakit.surucu (form için sürücü dropdown)
GET/arac/yakit/importarac.yakit.import
POST/arac/yakit/uploadarac.yakit.upload
POST/arac/yakit/importarac.yakit.post_import
POST/arac/yakit/toplu-silarac.yakit.toplu-sil
POST/arac/yakit/toplu-yakit-girisi-guncellearac.yakit.toplu_yakit_girisi_guncelle

İlişkili Modüller

Modelİlişki
AracbelongsTo (Draft scope hariç)
Personel (sürücü, personel)İki ayrı belongsTo
UserbelongsTo — kaydı yapan
Firma (ruhsatSahibiFirma)belongsTo
Bolge (alt_bolge)belongsTo
YakitTankibelongsTo
YakitTanki\Fisyakit_tanki_fis_id üzerinden
CloudFilemorphToMany — fiş/fatura görselleri
MaliyetRaporu"Yakıt Maliyetleri" tablosunda görünür
Yakıt Raporlarıtüketim ve maliyet kırılımları için kaynak
Opet/Shell Aktarımlarıotomatik yakıt girişlerinin kaynağı

Audit (Hareket Geçmişi)

HistoryTrait ile model üzerindeki tüm alan değişiklikleri zaman damgalı olarak kaydedilir. Boot hook'ları create/update/delete olaylarını Hareket tablosuna yazar.


Otomasyonlar

Yakıt Cron'ları (Otomatik İmport)

Aşağıdaki cron'lar her saat / iki kez gün araç yakıt kayıtlarını otomatik üretir. Her biri ilgili settings(...) flag'ine bağlıdır; flag yoksa skip edilir.

CronSıklıkSettings flagJob
bfy:po_yakit_importhourlyyakit-poas-entegrasyon(komut)
bfy:opet_yakit_importhourlyyakit-opet-entegrasyon(komut)
bfy:shell_yakit_importhourlyyakit-shell-entegrasyon(komut)
bfy:asisotomasyon-yakit-importhourlyasisotomasyon-wsdl-url(komut)
bfy:optimum-importtwiceDailyoptimum-url(komut)
bfy:turpak-importtwiceDailyturpak-url(komut)
bfy:mepsanotomasyon-yakit-importtwiceDailymepsanotomasyon-wsdl-url(komut)

Bu cron'lar yakit_girisi = 'OTOMATIK' flag'iyle kayıt oluşturur. Manuel girişler KULLANICI olarak işaretlenir.

Diğer Otomasyonlar

MekanizmaTetiklenmeYan etki
AracYakitImportJobExcel import (UI)Toplu yakıt kaydı
YakitImportManuelYakıt Excel import
YakitTankiMiktarHesaplaCommandManuel CLITank miktar yeniden hesabı
YakitIhmalBildirimCommand(Anadolum: bfy:ptt-yakit-ihmal-bildirim 00:30)Yakıt ihmal bildirimi
HistoryTraitLifecycleSnapshot
Widget\YakitGiderControllerDashboard widgetYakıt gider widget'ı

Tüketim Hesaplama Hook'u

son_alinan_km ve yakitin_alindigi_km arasındaki fark üzerinden yakit_tuketimi her kayıt sırasında otomatik hesaplanır. Anormal sapma (örn. ortalamadan ±%30) bildirim sistemine düşebilir.

Detay: bkz. Sistem & İş Akışları → Entegrasyonlar