Merhaba,
Bir sistemde akaryakıt ekleme ve akaryakıt harcama modüllerim var.
Akaryakıt tablom akaryakit_add , akaryakıt harcama tablom akaryakıt_out
akaryakit_add 'a yeni bir veri ekliyorum. YapilanAlim = 500 lt , BirimFiyat = 25 ₺/lt
akaryakit_add 'a yeni bir veri daha ekliyorum. YapilanAlim = 750 lt , BirimFiyat = 40 ₺/lt
İşte sormak istediğim asıl noktada burası;
Şimdi akaryakit_out için index.blade'te işlem yapıyorum. Inputtan gelen rakam için maliyetlendirme yapacağım.
$request->KullanilanLitre değeri geliyor controller'a. Diyelim ki gelen istek yani KullanilanLitre = 750 lt.
Bundan sonrasını matematiksel olarak canlandırıyorum. akaryakit_add 'te ilk veriye gidecek 500 lt'sini ilk veriden alacak. Ve onun BirimFiyat'ı 25 ₺/lt olarak çarpacak.
Sonra ikinci eklenen veriye gidecek 250 lt'de oradan ekleyecek, onuda 40 ₺/lt olarak maliyetlendirecek.
Yani (500x25)+(250x40) = 22.500 TL maliyet çıkmış olacak karşıma.
Ancak bunu laravelde nasıl fonksiyon haline getirebilirim tam oturtamadım kafamda. Birde sadece 2 tablo ile bunu yapmak mantıksız zannediyorum, çünkü aynı işlemi tekrarladığımızda yine ilk kayıt'a ve ikinci kayıta gidecek. Ve belki bu şekilde stok yetmedikçe 4. kayıta gidecek. Her seferinde aynı işlemi yapacak. akaryakit_stok diye bir tablo oluştursam sistemde kullanıcılar ve alt kullanıcılarda var iş iyice karışıyor.
Ücretli veya ücretsiz olarak yardımcı olabilecek arkadaşlardan PM bekliyorum,
İyi çalışmalar.
Laravel 9 (FIFO - First In First Out) konusunda destek olabilecek tecrübeli arkadaş arıyorum
1
●182
- 21-03-2023, 18:26:56kullanılan_miktar= 750
maliyet = 0
while(kullanılan_miktar !=0){
kayıt = select * from akaryakıt_add order by id
if(kullanılan_miktar >=kayıt.miktar){
kullanılan_miktar = kullanılan_miktar - kayıt.miktar
delete from akaryakıt_add where kayıt...
insert into akaryakıt_out (kayıt.miktar,kayıt.birim fiyat,tarih)
maliyet = maliyet + (kayıt.miktar * kayıt.birim fiyat)
}
else{
insert into akaryakıt_out (kullanılan_miktar ,kayıt.birim fiyat,tarih)
update akaryakıt_add set kayıt.miktar = kayıt.miktar - kullanılan_miktar
maliyet = maliyet + (kayıt.miktar - kullanılan_miktar * kayıt.birim fiyat)
kullanılan_miktar = 0
}
}
kabaca bu şekilde bir fonksiyon ile halledilir sanırım.