Zmiana ceny za pomocą PHP

0

Cześć mam sobie mały skrypt który zmienia mi wartość ceny w zależności od tego jaką liczbę podam, działa to prawidłowo, mam tylko pytanie czy można to jakoś prościej zapisać?

Kod

 	if ($cen < 31) {
	echo $cen ." ---> < 30<br />";	
	$ma = $cen + ($cen * 0.30);
    $vat =  $ma + ($ma * 0.23);	
    $cena = $vat;
	}	
	
		if ($cen > 31 and $cen < 75) {
		echo $cen ." ---> < 75<br />";
	$ma = $cen + ($cen * 0.25);
    $vat =  $ma + ($ma * 0.23);	
    $cena = $vat;
	}	
			if ($cen > 75 and $cen < 150) {
		echo $cen ." ---> < 150<br />";
	$ma = $cen + ($cen * 0.20);
    $vat =  $ma + ($ma * 0.23);	
    $cena = $vat;
	//echo  $id ." --------- ". $cena ."<br /><hr />";
	}	
				if ($cen > 150 and $cen < 1500) {
		echo $cen ." ---> > 1500<br />";
	$ma = $cen + ($cen * 0.15);
    $vat =  $ma + ($ma * 0.23);	
    $cena = $vat;
	}	
	
					if ($cen > 1500) {
	$ma = $cen + ($cen * 0.03);
    $vat =  $ma + ($ma * 0.23);	
    $cena = $vat;
	}	

pozdrawiam

0

Wcięcia!:P
Na przykładzie drugiej części:

else if ($cen < 75) { //Drugi warunek jest niepotrzebny, dzięki else program nie wejdzie w kolejną część
  echo $cen ." ---> < 75<br />";
  $ma = $cen * 1.25;  //$cen + (0.25*$cen), wyjmujemy przed nawias %cen(1+0,25), $cen*1,25
  $vat =  $ma * 1.23; // To samo
  $cena = $vat;
}

Btw. nie przewidziałeś pojedyńczych wartości "pomiędzy" ifami, np. 75 (bo samo 75 nie jest ani większe, ani mniejsze od siebie)

0

Jeszcze nie wiem o co ci chodzi z tym

 else if ($cen < 75) { //Drugi warunek jest niepotrzebny, dzięki else program nie wejdzie w kolejną część

Specjalnie tak zrobiłem bo tu chodzi o to ze mam plik xml z niego pobieram cenę netto, potem podwyższam ją o podaną marże ale marża musi być w zakresach czyli tak jak miałem jeśli kwota jest w przedziale pomiędzy 75 - 150 to podnieś ją o 15% potem o VAT (pisze tak bo gdy miałem pojedyncze warunki to coś źle liczyło :) )

Np jedna cena spełniał 5 warunków podaje przykład
Kwota 12 zł jest <30<75<150<1500 i tutaj liczyło z ostatnim czyli 1500zł a powinno liczyć z < 30 rozumiesz :) inaczej to działa ze znakiem większości ale też mi coś źle liczyło dla tego zrobiłem zakres od do, a może za długo nad tym myślałem i sam sobie problem zrobiłem :/

No o wcięciach zapomniałem w sumie nie wiem czemu robię je w odwrotnej kolejności niż każdy inny :),

0

Dziękuję bardzo ci za pomoc działa, juz zrozumiałem o co chodziło :) troszkę logiki i się pogubiłem jak to się mówi

	
          if         ($cen < 31)      { $ma = $cen * 1.30; $vat =  $ma * 1.23; $cena1 = $vat;
	} else if ($cen < 75)    { $ma = $cen * 1.25; $vat =  $ma * 1.23; $cena1 = $vat;
	} else if ($cen < 150)  { $ma = $cen * 1.20; $vat =  $ma * 1.23; $cena1 = $vat;
	} else if ($cen < 1500){ $ma = $cen * 1.15; $vat =  $ma * 1.23; $cena1 = $vat;
	} else if ($cen > 1500){ $ma = $cen * 1.10; $vat =  $ma * 1.23; $cena1 = $vat;
	} 

1 użytkowników online, w tym zalogowanych: 0, gości: 1