Php fiyatlandırma hk
Merhabalar tarihsel fiyatlandırma olarak bir alanım var iki tarih için de fiyatlar ona göre değişiyor
Şöyle bir sorunum var tarihsel fiyatlandırma sadece 2 günü kapsıyor diyelim ben 3 günlük bir rezervasyon yapınca direkt olarak tarihsel fiyatlandırma üzerinden hesaplama yapıyor
İstediğim ise tarihsel fiyatlandırma sadece 2 günü kapsayacak şekilde hesaplayıp kalan günü normal olarak hesaplayıp toplam bir fiyat vermesi
Edit hazır bir script düzenliyorum alt yapıyı ben oluşturmadım :)
<?php
if ($alt['tarihsel'] != '""') {
$formatS = json_decode($alt['tarihsel']);
$selDateOne = strtotime(str_replace('/', '-', $_SESSION['alistarih']));
$selDateTwo = strtotime(str_replace('/', '-', $_SESSION['iadetarih']));
foreach ($formatS as $formats) {
$parts = explode('|', $formats);
$dateOne = strtotime($parts[0]);
$dateTwo = strtotime($parts[1]);
if ($dateOne <= $selDateOne && $dateOne <= $selDateTwo || $dateTwo <= $selDateOne && $dateTwo <= $selDateTwo) {
$alt['priceOne'] = $parts[2];
$alt['priceTwo'] = $parts[3];
$alt['priceThree'] = $parts[4];
$alt['priceFour'] = $parts[5];
$alt['priceFive'] = $parts[6];
}
}
if ($_SESSION['yetiskin'] == 1) {
echo ($alt['priceOne'] * $_GET['gun']) + $cocukfiyat;
} else if ($_SESSION['yetiskin'] == 2) {
echo ($alt['priceTwo'] * $_GET['gun']) + $cocukfiyat;
} else if ($_SESSION['yetiskin'] == 3) {
echo ($alt['priceThree'] * $_GET['gun']) + $cocukfiyat;
} else if ($_SESSION['yetiskin'] == 4) {
echo ($alt['priceFour'] * $_GET['gun']) + $cocukfiyat;
} else if ($_SESSION['yetiskin'] == 5) {
echo ($alt['priceFive'] * $_GET['gun']) + $cocukfiyat;
}
}
?>
Soru hatalı mı? 👎
Eğer sorunun kurallara aykırı olduğunu düşünüyorsanız lütfen bize bildirin!
Cevaplar (3)
yeni uyandım, tam olarak kafamı toplayamadım ama anladığım kadarıyla cevap vereceğim. sayfadaki kodların çoğunu gereksiz buluyorum, bunu basit bir matematik işlemi olarak ele almanı öneririm;
function fiyatHesapla($gun){
return $gun > 2 ? (2 * $ozelFiyat) + ($gun - 2 * $normalFiyat) : $gun * $ozelFiyat;
}
burada dedik ki, kişi 2 günden fazla kalacaksa önce 2 günlük özel fiyatı hesapla ve kalan günleri normal fiyat üzerinden hesaplayıp topla. iki günden fazla kalmayacaksa sadece ozel fiyatı uygula.