v2.5.2
Giriş yap

Php fiyatlandırma hk

wwx
301 defa görüntülendi

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;
	}

} 
?>
Cevap yaz
Cevaplar (3)
munzevi
709 gün önce

samsunlu bir arkadaşımın dediği gibi, uyku semesemesine yanlış yapmışım. : )

$gun > $tarihsel ? ($tarihsel * $ozelFiyat) + (($gun - 2) * $normalFiyat) : $gun * $ozelFiyat;
wwx
709 gün önce
 $gun = 3;
 $tarihsel = 2;
 $ozelFiyat = 100;
 $normalFiyat = 150;

 if ($_SESSION['yetiskin'] == 1) {
	echo $gun > $tarihsel ? ($tarihsel * $ozelFiyat) + ($gun - $tarihsel * $normalFiyat) : $gun * $ozelFiyat;
} 

Çıktının 350 olması gerekirken -97 alıyorum hocam

munzevi
709 gün önce

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.