Herkese iyi forumlar.
Elimizdeki sistemde sepet içeriğini arrayde tutup fatura bilgilerini de tablolarda tutan bir sistem var fakat şöyle bir sorunumuz mevcut.
Faturada %18 ve %8 içerikli 2den fazla içerik olduğunda invoice sayfasında ayrı ayrı her üründe gösteriyoruz bunda sorun yok fakat en altta %8 %18 gibi dilimine göre toplam vergiyi gösteremiyoruz.
Sadece 8 ve 18 değil o yüzden 8 e ve 18 e göre filtre yapamıyoruz çünkü Almanya da var sistemde kategoriye göre vergiler değişiyor.
Arrayde toplu gelen veriden filtre ile toplamak adına hazır kod gibi bir isteğim yok ( olursa güzel olur tabi) yol gösterici fikirlerinize açığım.
Faturada vergi dökümü
8
●173
- 05-12-2021, 02:26:52array_reduce fonksiyonunu kullanabilirsiniz.
$items = [ 0 => ['price' => 100, 'tax' => 8], 1 => ['price' => 100, 'tax' => 18], 2 => ['price' => 100, 'tax' => 15], ]; $toplamVergi = array_reduce($items, function($prev, $item){ return $prev + ($item['price'] * $item['tax'] / 100); }); echo $toplamVergi; - 05-12-2021, 05:22:15Yardımınız için teşekkür ederim. Toplam vergiyi alabiliyoruz sorunumuz toplam %8 lik vergighergedan adlı üyeden alıntı: mesajı görüntüle
Toplam %18lik vergi.
1 faturada birden fazla vergi türü içeren ürün olduğunda durum karışıyor. - 05-12-2021, 07:25:27doğru anladıysam şu kod işinizi görecektir;
$items = [ 0 => ['price' => 100, 'tax' => 8], 1 => ['price' => 100, 'tax' => 18], 2 => ['price' => 100, 'tax' => 15], 3 => ['price' => 100, 'tax' => 18], ]; $vergiler = []; foreach($items as $i) $vergiler[$i['tax']][] = $i['price']; $vergiler = array_map(function($v, $k){ return [ 'vergiOrani' => $k, 'toplamTutar' => array_sum($v), 'toplamVergi' => array_reduce($v, function($prev, $item) use($k){ return $prev + ($item * $k / 100); }) ]; }, $vergiler, array_keys($vergiler)); print_r($vergiler);çıktısı şöyle olacaktır;
Array ( [0] => Array ( [vergiOrani] => 8 [toplamTutar] => 100 [toplamVergi] => 8 ) [1] => Array ( [vergiOrani] => 18 [toplamTutar] => 200 [toplamVergi] => 36 ) [2] => Array ( [vergiOrani] => 15 [toplamTutar] => 100 [toplamVergi] => 15 ) ) - 06-12-2021, 03:14:17Allah razı olsun array'i stackoverflow yardımı sizin array tipine çevirdik işlemi tamamladık.ghergedan adlı üyeden alıntı: mesajı görüntüle

